第10講では、ブルートフォース攻撃からレインボー攻撃までをご紹介しました。
引き続き、第11講ではさらに深い攻撃手法を見ていきましょう。これらの攻撃手法を理解することで、セキュリティ対策の重要性をより深く認識できるようになります。
この講座の学習ポイント
- バッファオーバーフロー攻撃
- SQLインジェクション
- クロスサイトスクリプティング
- ディレクトリトラバーサル
- セッションハイジャック
- OSコマンドインジェクション
- クリックジャッキング
- ドライブバイダウンロード攻撃
第11講では、バッファオーバーフロー攻撃から再開します。第10講の後半です。
- ブルートフォース攻撃
- リバースブルートフォース攻撃
- パスワードスプレー攻撃
- 辞書攻撃
- スニッフィング
- リプレイ攻撃
- パスワードリスト攻撃
- レインボー攻撃
- バッファオーバーフロー攻撃(ここから)
- SQLインジェクション
- クロスサイトスクリプティング
- ディレクトリトラバーサル
- セッションハイジャック
- OSコマンドインジェクション
- クリックジャッキング
- ドライブバイダウンロード攻撃
バッファオーバーフロー攻撃
システムが割り当てられたメモリ領域(バッファ)を超えてデータを入力された場合に発生します。この攻撃により、攻撃者は、システムに不正なコードを実行させることが可能になります。
対策
プログラムの入力チェックを徹底し、入力データのサイズを制限すること。セキュリティ向けのコンパイラオプション(例:Stack Canaries)を使用することなどが挙げられます。
また、C言語がバッファオーバーフローを狙われやすいとも言われているので、コーディングの際には、セキュアにコーディングする必要があります。
SQLインジェクション
攻撃者がWebアプリケーションに対して、不正なSQLクエリを注入することで、データベースから情報を盗んだり、データを操作したりする攻撃手法です。
例えば、検索ボックスでワイルドカード「」が使えるような設計だと、SQLインジェクションのリスクが高くなります。この「」を単なる文字として変換させる必要があります。
対策
所定の記号で誤作動が起きないように、特殊な文字列はエスケープ(特殊文字を無害化すること)として入力値が扱われるように設計します。
クロスサイトスクリプティング(XSS)
攻撃者が悪意のあるスクリプトをWebページに埋め込み、他のユーザーに実行させる攻撃です。クッキー情報の盗難や、ユーザーの操作が乗っ取られる可能性があります。
対策
すべてのユーザー入力を制御し、スクリプトを実行できないようにする。または、コードを送信できないように送信ボタン後の処理を設計します。
ディレクトリトラバーサル
攻撃者がWebサーバーのディレクトリ構造を不正に操作することで、通常アクセスできないファイルにアクセスする攻撃手法です。
対策
サーバー側で、ユーザーがアクセスできるディレクトリを明確に制限し、ファイルパスの入力に対して厳格な検証を行うことで、意図しないファイルへのアクセスを防ぎます。
セッションハイジャック
攻撃者がユーザーのセッションIDを盗み取ることで、そのユーザーになりすまし、不正アクセスを行う攻撃です。
対策
サーバー側で、IPアドレスやユーザーエージェント情報を監視し、通常とは異なるアクセスが検出された場合、自動的にセッションを無効化します。また、セッションIDを定期的に更新し、HTTPS通信を使用してセッションIDの盗難を防ぐことができます。
OSコマンドインジェクション
攻撃者がコンピューターシステムに不適切な指示を送り込んで、勝手に操作しようとする攻撃です。これも日常の例で考えてみましょう。
レストランで注文票に「ステーキ」と書く代わりに「ステーキ、それと金庫も開けて」と書いて、店員がその通りに動いてしまうようなものです。
Webサイトの検索ボックスに、検索ワードではなくコンピューターへの命令を入力することで、システムの情報を盗んだり、勝手に操作したりすることができてしまいます。
対策
入力データを適切にサニタイズし、ユーザー入力がOSコマンドとして直接実行されないようにする。または、アプリケーションに必要最低限の権限だけを付与し、攻撃者が不正な操作を行えないようにします。
サニタイズというのは、データや入力値を安全な形式に変換することです。悪意がないかチェックするようなイメージですね。
クリックジャッキング
ユーザーが知らないうちに、攻撃者の意図する操作を行ってしまう攻撃手法です。
攻撃者は、ユーザーに表示されたリンクやボタンの上に、透明なレイヤーを重ねてリンク操作を誘導します。
対策
クリックジャッキングを防ぐためには、Webページが他のサイトでフレームに表示されないようにする「X-Frame-Optionsヘッダー」を設定することが重要です。
これにより、透明なフィルムを利用したトラップを防ぐことができます。
ドライブバイダウンロード攻撃
ドライブバイダウンロード攻撃は、ユーザーが悪意のあるWebサイトにアクセスした際に、ユーザーの意図しない形で、マルウェアが自動的にダウンロードされる攻撃です。
対策
ブラウザやプラグインを最新の状態に保ち、脆弱性を利用されないようにする。または、信頼できないサイトにはアクセスしないよう、フィルタリングソフトウェアを導入します。
第11講のまとめ
バッファオーバーフロー攻撃からドライブバイダウンロード攻撃まで、さまざまな攻撃手法について学びました。
これらの攻撃を理解することで、情報セキュリティの知識が一層深まり、具体的な対策を講じることが可能になります。

