Webアプリケーションへの攻撃対策
Webアプリケーションへの攻撃対策とは、利用者からの入力値を悪用して、OSのコマンド実行、スクリプトの混入、不正な表示操作などを引き起こす攻撃を防ぐための設計・運用上の取組みである。代表的な攻撃として、OSコマンドインジェクションとクロスサイトスクリプティングがあり、入力値を信用しない実装が根本的な対策となる。加えて、通信内容を検査するWAFや、ファイル名の偽装手口への注意も必要である。
入力値の扱いによる攻撃の原理
OSコマンドインジェクションは、Webアプリケーションが受け取った文字列が、シェルを経由してOSコマンドとして解釈されることで起こる。Perlのsystem関数やPHPのexec関数などに入力値が渡されると、利用者が意図しないシェルスクリプトが実行されるおそれがある。この攻撃はOSコマンドインジェクションに分類される。
そのため、対策としては、シェルを起動できる言語機能を利用した実装を避けることが基本となる。入力値をシェルに渡さない設計にすれば、入力が命令として解釈される余地を減らせる。
クロスサイトスクリプティングは、入力された悪意あるスクリプトがWebページに混入し、そのページを閲覧した利用者のブラウザ上で実行される攻撃である。フォームへの入力を通じて、悪意あるJavaScriptを含むデータを送り込む手口が典型である。
対策は、Webページに出力する入力データが、HTMLのタグとして解釈されないように処理することである。例えばHTML本文では<を<に変換して出力する。この処理により、入力された文字列が本来の文字として表示され、スクリプトとして動作しなくなる。
WAFの役割と判断の基準
WAFは、WebアプリケーションへのHTTPやHTTPS通信を検査し、攻撃と判断した通信を検知して遮断する仕組みである。特徴的なパターンが含まれるかなどを基に判定するため、Webアプリケーションを狙う攻撃の防御に適している。
この節の続き
- 実際の場面:ファイル偽装と誘導型の攻撃
- 試験で問われやすい区別
ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。
アプリでこの節を読む