3.Webサーバ型ハニーポットとデータ解析
3.1. サーバへの攻撃
3.1.1. サーバ自体への攻撃
サーバが提供するサービスにはWebだけではなく、NTPやDNSなど様々存在する。 サーバを標的にする攻撃の多くはサーバが提供するサービスにより異なった手段がとられる。
例えばNTPサーバは攻撃の標的をアクセス元を偽った問い合わせに対し、多くの情報を送付してしまうためアンプ攻撃やリフレクション攻撃と呼ばれる高度なDDos攻撃の発信元として悪用される。 また、メールサーバはDDos攻撃を受ける場合や、スパムメール送信やなりすましを目的とした不正ログインを受ける場合がある。
Webサーバは多くの場合、最もサイバー攻撃の対象となっている。
3.1.2. Webサーバへの攻撃
クライアントはWebブラウザによりWebサーバにアクセスする。
この際にHTTP/HTTPSが用いられる。
クライアントからサーバへサービスの提供を要求するHTTPリクエストメッセージを送信し、サーバからクライアントへの応答をHTTPレスポンスメッセージという形で返却する。
HTTPリクエストメッセージには「リクエスト行」「ヘッダ」「ボディ」で構成され、リクエスト行に使用するメソッド(GET,POSTなど)と宛先パス名、バージョン情報が記述されている。
Webサーバに対して特定の変数に不正な入力値を与える攻撃ではGETメソッドとPOSTメソッドが用いられることが多い。
なおGETメソッドの変数と入力値はリクエスト行に、POSTメソッドの場合はボディに記載される。
ヘッダには多くの情報が入力できるように規定されており、RefererやUser-Agentなどサイバー攻撃対象において重要な情報を記述されている一方で高度な攻撃に悪用される場合もある。
HTTPレスポンスメッセージでは、レスポンス行に結果が表示される。
ステータスコード | 説明 |
---|---|
100番台 | 情報の提供 |
200番台 | 成功(肯定的な応答) |
300番台 | リダイレクト(転送要求) |
400番台 | クライアントサイド起因エラー |
500番台 | サーバサイド起因エラー |
サーバの攻撃は以下の種類に分けられる。
- ソフトウェアの脆弱性を悪用する攻撃
- SQLインジェクション
- XSS
- ファイルインクルージョン
- ソフトウェアの脆弱性を悪用しない攻撃
- DDos攻撃を実施する場合
- 不正ログインを実施する場合
マルウェア感染攻撃はソフトウェアの脆弱性を悪用する攻撃の場合が多い。 またWebサーバ上で動作するソフトウェアの脆弱性を悪用する攻撃は以下が狙われる。
- プラットフォームのソフトウェアへの攻撃
- Apache/Struts/Tomcat
- bash
- Webアプリケーションソフトウェアへの攻撃
- WordPress/Drupal/Joomla!
- Rails/CakePHP
また、OWASPが影響の大きな攻撃をOWASP TOP 10として対策方法を公開している。
3.1.3. 標的の選定
Webサーバへの攻撃は特定の組織を標的に実施する場合と、インターネット上のWebサーバから標的を選定する場合がある。 インターネット上のWebサーバから標的を選定する場合は80/443ポートのスキャンでアクセス可否をスキャンする場合よりも。Google Hacking(Google Dorks)の内容を高度化して調査する。
Google Dorksはコチラより
ソフトウェアをインストールする際にデフォルトとなるパスが存在し、インストール実施者が意図的にパス構造を変更しない限りデフォルトのパス構造が採用される。 そのためWebサーバのパスの構造からインストールされているWebアプリケーションを推測できる。
3.1.4. Webサーバへの代表的な攻撃
攻撃者は選定した標的に対し、攻撃の宛先URLに事前にアクセスし標的となる脆弱なプログラムが動作しているか確認する場合が多い。 こういったスキャンは検索エンジン事業者がWebページの有無を確認するために実施するクローニングと類似している。
Webサーバへの攻撃には複数の種類が存在する。 よく利用される攻撃はOWASPに基づくと以下の通り。
- SQLインジェクション
- クロスサイトスクリプティング(XSS)
- ディレクトリトラバーサル
- OSコマンドインジェクション
- ファイルインクルージョン
各攻撃の解説はコチラから。
3.1.5. Webサーバを保護するセキュリティアプライアンス
ファイアウォールやIDS/IPSに代表されるセキュリティアプライアンスは攻撃の際の通信の特徴をシグネチャと呼ばれる形で検知する。 シグネチャはセキュリティベンダーやコミュニティから配信されるが、自分自身でサイバー攻撃を観測し得られた情報をシグネチャとして追加できる。
セキュリティアプライアンスは以下の表のように分類できる。
機器 | 対象レイヤ | 概要 |
---|---|---|
UTM | アプリケーション層~NW層 | FWやIDS/IPSやアンチウィルスの機能を統合 |
WAF | アプリケーション層~セッション層 | HTTPリクエストからWebサーバの攻撃を検知して防衛 |
IDS | アプリケーション層~NW層 | ネットワーク上の通信内容を監視し、攻撃を検知してアラート出力 |
IPS | アプリケーション層~NW層 | ネットワーク上の通信内容を監視し、攻撃を検知してアラート出力と防衛 |
FW | トランクポート層~NW層 | 5-tupleから攻撃を検知して防衛 |
3.2. Webサーバ型ハニーポットを用いた観測/データ解析
3.2.1. 高対話型Webサーバ型ハニーポット:HIHAT
3.2.2. 低対話型Webサーバ型ハニーポット:Glastof
3.2.3. Webサーバ型ハニーポットのデータ解析
Webサーバ型ハニーポットで観測できるデータはセキュリティアプライアンスのシグネチャ生成に活用できる。
攻撃と正常アクセスの識別
Webサーバ型ハニーポットは多くの場合、インターネットに接続して攻撃を観測するため、検索エンジンのクローラや一般ユーザによる誤ったアクセスを受信する可能性がある。 このため攻撃を正確に識別し、攻撃データのみをシグネチャ生成に用いる必要がある。実際は検索エンジンのクローラと攻撃の識別は非常に難しい。
例えば以下のアクセスはリモートファイルインクルージョンと誤判定する可能性がある。 もし以下がクローラからのリクエストだった場合はIPアドレスやUser-Agentで識別が行えるが、単純なリクエストだけではわからない場合が多い。
/index.php?option=com_newsfeeds&task=view&feedid=https://www.example.com&itemid=7
観測できない攻撃
ほとんどのWebサーバ型ハニーポットは多くの場合、個人情報や機密情報を管理しない。 そのため貴重な情報を不正に入手するための高度な攻撃はWebサーバ型ハニーポットでは観測できない場合がある。
Webサーバ型ハニーポットの観測データの解析の際は"核攻撃が何を意図するものなのかを推測し解析する必要"がある。