第14回 Webアプリケーションセキュリティの常識知ってるつもり?「セキュリティの常識」を再確認(1/4 ページ)

Webアプリケーションの脆弱性のほとんどは、開発時のささいなミスから生じる。Webアプリケーションの攻撃から保護するには、専門家によるペネトレーションテストが有効だ。

» 2005年06月16日 13時46分 公開
[杉山俊春(三井物産セキュアディレクション),ITmedia]

 最近、Webアプリケーションに存在するセキュリティホールが注目を浴びている。Webサーバのセキュリティ対策というと、一般にファイアウォール、IDS(不正侵入検知システム)、ウイルス対策などがよく知られてきた。しかし、Webアプリケーションへの攻撃に対しては、これらの対策だけでは不十分である。

 一般的に広く使われているWebアプリケーションであれば、IDSのようなもので特定パターンを検知して、攻撃を防ぐことは可能だ。しかし、Webアプリケーションのほとんどが独自に開発されたものであるため、一般的なパターンを検知するだけでは攻撃を防げないのが現状である。

Webアプリケーションのセキュリティ Webアプリケーションのセキュリティ

 そこで、攻撃を受けないために、あらかじめ検査を行う防御策を実施する必要がある。今回は、開発したWebアプリケーションに脆弱性が存在しないか、検査する手法を紹介する。

Webアプリケーションに対する攻撃

 Webアプリケーションの検査の方法を説明する前に、どのような攻撃手法が存在するか、簡単に整理しておこう。現在、一般的に知られている代表的な攻撃には以下のようなものがある。

バッファオーバーフロー(Buffer Over Flow)確保されたメモリ容量を越える入力データを与え、不正プログラムを実行させる
クロスサイトスクリプティング(Cross Site Scripting)ユーザーのブラウザ上で不正なスクリプトを動かす
パラメータの改ざん(Parameter Manipulation)Webアプリケーションの期待する値とは別の値を送信し、誤動作をさせる
バックドアとデバッグオプション(Backdoor & Debug Option)開発用、管理者用の秘密の入り口を探す
セッションの悪用(Session Exploitation)セッション情報の推測、盗用を行う
SQLインジェクション(SQL Injection)不正入力により任意のSQL文を実行させる
OSコマンドインジェクション(OS Command Injection)不正入力により任意のOSコマンドを実行させる
クライアントサイドコメント(Client Side Comment)HTML内に記述されたコメントから重要な情報を取得する
エラーコード(Error Codes)エラーメッセージの情報を攻撃の糸口にする
強制的ブラウジング(Forceful Browsing公開されていないファイルに直接アクセスする
不必要情報(Unnecessary Information)本来公開する必要のない情報から重要な情報を取得する
HTTPSの誤用(HTTPS Misuse)HTTPSを利用していない重要な情報のやり取りを盗聴する
フィルターのバイパス(Filter Bypassing)エンコードした文字列を用いてフィルターを回避する
クロスサイトリクエストフォージェリ(Cross Site Request Forgery)正規のユーザーの権限を利用し、特定の処理を行うページに誘導させ強制的に 意図しない処理を行わせる

 これらの攻撃のほとんどが、ファイアウォールやIDSなどでは防ぐことができず、アプリケーションレベルで対応しなくてはならない。

Webアプリケーションの脆弱性

       1|2|3|4 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ