SDP(Software-Defined Perimeter)において、制御を行うサーバはインターネット上に公開される必要がある。しかし、インターネットに公開されることは、正規利用者以外にも、攻撃者からもアクセスできることを意味する。
そのための対応として、通信の最初の最初の段階で、正規利用者と攻撃者を見分ける方法が考えられてきた。
ここでは、初期のアイデアである「ポートノッキング」と呼ばれる認証方式をまず説明したあと、その発展形であるSPA(Single Packet Authorization)について説明をする。
⏩
ポートノッキング
VPNの問題のところで説明したように、インターネットに公開しているサービスには、攻撃者もアクセスできてしまう問題がある。
その対応として、ポートノッキング(Port knocking、knockingはドアをコンコンと叩くノックのこと)と呼ばれているプロトコルがある。
ポートノッキングでは、非公開ポートも含めて予め定めた特定の順番で接続を試みると、目的のポートへの通信が許可されるようになる仕組みである。
例えば、22番ポートへのアクセスを許可したい場合、そのまま公開すると攻撃者もアクセスできてしまう。そこで、ポートノッキングを利用して、20000番⇨5000番⇨9000番の順に接続を試みると、当該接続元からは22番に接続できるようにするというルールを導入する。こうすることにより、攻撃者がこの順番で接続を試みない限り、22番ポートに接続することはできず、22番ポートが利用できることを秘匿することが可能になる。
⏩
ポートノッキングのメリット
①攻撃者からの攻撃通信を受け付けない
サーバに送られてくるパケットは、デフォルトでは全て破棄(ドロップ)することになる。これにより、サーバが提供しているサービスを非可視化することができ、サービス自体を攻撃者から保護することができます。
別の言葉でいうと、攻撃者は、攻撃対象となるサービスを探索する際、公開されているポートを検索(ポートスキャン)するが、公開されているポートを見つけることができず、攻撃が非常に困難になる。
②(一部の)DoS/DDoS攻撃を最小化できる
ポートノッキング用の順番にならないパケットは全て破棄されるため、SYNフラッド攻撃のような公開されているポートに対する通信を大量に行う、サーバのリソースを枯渇させるタイプのDoS・DDoS攻撃に対して、耐性が高くなる。(ネットワーク回線を専有されるタイプのDoS・DDoS攻撃は対応不可)
ポートノッキングの課題
ただ、このポートノッキングには弱点がある。
①リプレイ攻撃への耐性が低い
ネットワークを盗聴されると秘密であるポートの順番を見破られてしまい、攻撃者に接続を許してしまう。
②正規利用者の接続の妨害が可能
ポートノッキングのポート番号の順番がわからないとしても、攻撃者が正規利用者の送信元IPアドレスに詐称して(技術的に可能)、適当なポートに接続を試みた場合、正規利用者が接続できなくなってしまう。これは、サーバ側からすると、ポートノッキングの通信が正規利用者がだしたものなのか、攻撃者が出したものなのかがわからないため混合して順番を判定してしまい、正しい順番になっていないと判定してしまうためである。
⏩
SPA(Single Packet Authorization)
上記の対策をしたものがSPA(Single Packet Authorization、単一パケットでの認証)と呼ばれているプロトコルである。
SPAは、その名の通り、クライアントからサーバに対して最初に行われる1発目の通信に認証情報を持たせ、認証が通った場合のみ後続通信が成立するという考え方である。
そのため、認証情報を持たない攻撃者が接続を試みた場合、サーバ側から応答がないため、そこにサーバがあることすら知ることができない。
SPAゲートウェイが認証をし、認証できた場合のみ②番以降が行われる。
含まれないため、SPAゲートウェイは応答をしない。
そのため、攻撃者からはそのサービスが存在するかどうかを知ることすらできない
SPAの実装はTCPでもUDPでもできるが、UDPの方が処理は簡単であるためUDPで実装されることが多いようである。
SPAの実装は様々だが、SPAに求められる最低限の要件は3種類あると言われている。(CSA Japanのブログ記事)。
満たすべき要件
- SPAパケットは、暗号化し、認証機能を持たなければならない。
- SPAパケットは、必要な情報をすべて1つのパケットの中に含めなければならない。
- SPAパケットを受け取ったサーバは、応答しないし、何も送信しない。
⏩
SPAのメリット
①攻撃者からの攻撃通信を受け付けない
サーバがSPAパケットを受け取っても応答を返す必要がないため、認証されなかった通信は無視できる。そのため、攻撃者からの通信には応答を返すことがないため、攻撃者からはサービスの存在有無すら確認することができない。
②(一部の)DoS・DDoS攻撃を最小化できる
SPAパケット以外は無視できるため、DoS・DDoS攻撃によるサーバのリソースの枯渇を回避できる。(ネットワーク回線を専有されるタイプのDoS・DDoS攻撃は対応不可)
③ リプレイ攻撃への対応能力の向上
SPAパケットにランダムな文字列を含ませることにより、サーバ側では、同じSPAパケットが来た場合は攻撃と判断することができる。そのため、盗聴に成功した攻撃者が同じSPAパケットを利用しても認証を突破することができない。
④正規利用者に対するサービス利用妨害を防止
ポートノッキングでは、正規利用者と攻撃者の接続試行をサーバが見分けることができない問題があり、攻撃者は正規利用者のサービス利用を妨害できたが、SPAでは1パケットしかないため、その問題が発生しない。
⑤より多くの認証情報を送信可能
ポートノッキングでは、ユーザ名などの情報を送ることができなかった(手の込んだポートノッキングを使えば可能であるが、その分、通信開始までにかかるノック数が増える)。一方で、SPAパケットのサイズに収まるのであれば、様々な認証情報を含めることが可能であり、利用者に応じた対応が可能になる。
SPAの課題
ポートノッキングにも存在する課題ではあるが、SPAサーバにも課題はあると考えられる。
それは、1パケットといえども、攻撃者のパケットがサーバに届いてしまうことである。SPAサーバの処理に脆弱性がある場合、その1パケットの中に攻撃コードを埋め込まれることでSPAサーバが攻撃を受け、認証迂回、サービス停止などを被る可能性がある。
サーバにパケットが届く前に、パケットの中身に問題がないかを確認するような機構が必要かもしれない。
0 件のコメント:
コメントを投稿