全4113文字
PR

 企業の公開Webサーバーを狙ったサイバー攻撃が相次いでいる。特に脅威なのがWebサーバーソフトやWebアプリケーションの脆弱性を突く「ゼロデイ攻撃」だ。ゼロデイ攻撃とは、脆弱性を修正するアップデートプログラムが公開される前の攻撃である。きちんとアップデートを適用している組織でも被害に遭う。

 またアップデート公開直後の攻撃も脅威だ。多くの組織では、本番環境にすぐにアップデートを適用することは難しい。検証の時間が必要だろう。検証中に攻撃を受けた場合、ゼロデイ攻撃を受けたのと同じ状況になる。

 以上のような攻撃に有効な対策の1つがWAFである。WAFはWeb Application Firewallの略。文字通りWebアプリケーションを守るファイアウオールだ。攻撃の特徴を表すシグネチャーを設定しておけば、それに合致する通信をブロックし、Webアプリケーションを攻撃から守る。

 筆者らはNTTグループのCSIRTであるNTT-CERTに所属している。NTT-CERTではWAFのシグネチャーを作成して、脆弱性を悪用する攻撃から組織を守っている。

 そこで本特集では、脆弱性悪用攻撃への対応ならびにWAFを活用したセキュリティー対策を解説する。OSSのWAFである「ModSecurity」の利用を前提とするので、製品購入のコストはかからない。

 第1回となる今回は、脆弱性を悪用する攻撃への対応フローと、対応フローの初手となる脆弱性情報の収集方法を解説する。

対応は3段階

 脆弱性悪用攻撃への対応フローは、多くの場合「脆弱性情報の収集と分析」「PoCコードの検証と脆弱性の分析」「シグネチャーの作成と改良」の3段階になる。

 ここでのPoCコードとは、脆弱性を突いた攻撃が可能かどうかを確認するための 検証コードのこと。PoCはProof of Conceptの略である。

・脆弱性情報の収集と分析

 脆弱性情報が公開されたらシステムへの影響度を判定し、情報収集を開始する。

 脆弱性の詳細については、開発元ベンダーからの発表内容だけでは分からないことが多いので、第三者による解析記事がWebで公開されていないか、PoCコードが公開されていないかといった情報を継続的に収集する。

 ベンダーがアップデートを公開している場合は、元のプログラムとアップデートの差分を調べることで、脆弱性を分析する。ただしアップデートに該当の脆弱性の修正以外が含まれる場合には分析が難しくなる。

・PoCコードの検証と脆弱性の分析

 PoCコードが公開されたことを検知した場合には、そのPoCコードの動作を検証し、どのようなリクエストがWebアプリケーションに送信されるのかを調べる。

 そしてそのリクエストを受け取った場合、Webアプリケーションはどのように振る舞うかをソースコードレベルで分析する。同時に他の攻撃パターンがないかを検討する。

・シグネチャーの作成と改良

 PoCコードの検証が済んだら、影響を与えるリクエストをWAFで防ぐためのシグネチャーを作成する。そしてそのシグネチャーの精度を確認するとともに、他の攻撃パターンも防げるようにシグネチャーに改良を加える。

脆弱性悪用攻撃への対応フロー例
脆弱性悪用攻撃への対応フロー例
[画像のクリックで拡大表示]