ソフトとハード、2つの対策アプローチ
古くて新しいフォールトインジェクション攻撃
フォールトインジェクション攻撃の概要と種類を説明し、被害に遭わないようにするための開発のベストプラクティスを紹介する。
フォールトインジェクション攻撃には、Webと同じくらいの歴史がある。この攻撃は、Webアプリケーションを介してネットワークやコンピュータシステムへの不正アクセスを可能にする。アプリケーションの急激な進化とWeb対応の進展に伴い、インジェクション攻撃は大きな問題となっている。本稿では、フォールトインジェクション攻撃の概要と種類に加え、あなたの会社のシステムが被害に遭わないようにするための開発のベストプラクティスを紹介する。
一部のフォールトインジェクションはスクリプトベースであり、JavaScriptやPHPのような言語を使用する。新しいWeb2.0技術ではスクリプト言語が使われることから、インジェクション攻撃は発生頻度が増え、より高度化している。Web2.0技術にはXML、RSS、Ajaxなどがある。これらはいずれも、悪意あるインジェクションコードを隠すために利用することが可能だ。
インジェクション攻撃は、Webアプリケーションへの通常の方法による入力に悪意のあるコードを紛れ込ませる形で行われるため、従来のネットワーク攻撃とは違って侵入的ではなく、既存のIDSシステムやIPSシステムによるチェックをすり抜けてしまう。このため、検知プロセスはより複雑なものになる。
フォールトインジェクション攻撃の種類
開発者向けに安全なWebコーディング手法の教育を行っているOpen Web Application Security Project(OWASP)によると、インジェクション攻撃には2つの種類がある。OWASPの脆弱性トップ10では、クロスサイトスクリプティング(XSS)とインジェクションの欠陥がそれぞれ1位、2位を占めている。この2つの脆弱性のいずれかを悪用して、Webアプリケーションに悪意あるコードが挿入される。これは大抵Webブラウザを介して行われる。
この両者のうち、XSSの脆弱性を突く攻撃は、非常に多発している極めて悪質なものだ。この攻撃は通常、JavaScriptを用いて行われるが、どのスクリプト言語でも可能だ。この攻撃では、Webアプリケーションの正当なユーザーの認証資格情報が盗まれ、コンピュータシステムに不正にアクセスされる恐れがある。
インジェクションの欠陥を突く攻撃の中では、SQLインジェクション攻撃が群を抜いて最も多発している。SQLインジェクションは、WebページのフォームフィールドにSQLコマンドを挿入し、Webアプリケーションのバックエンドデータベースに不正アクセスを仕掛ける手法だ。SQLインジェクションはXSSとは異なり、ユーザーのIDやパスワードを盗むためではなく、アプリケーションのデータを不正入手するために行われる。
フォールトインジェクション対策
インジェクション攻撃対策の主なアプローチは2つある。1つは、OWASPが勧めるような安全なコーディングやプロジェクト管理の手法を取ること。もう1つは、アプリケーションレベルのファイアウォールを実現するハードウェアを導入することだ。
インジェクション攻撃を防ぐためのコーディングの第1原則は、Webアプリケーションへのすべての入力をチェックすることだ。チェック対象には、Webページのフォームや隠しフィールドから送信される、あるいはURLに付加されて送信されるすべてのものが含まれる。攻撃に使われる可能性があるのは、英数字以外の文字、例えば「!」「#」「<」「>」といったものだ。これらがWebサーバやアプリケーションサーバのバックエンドプロセスを起動させ、不正アクセスを可能にする恐れがある。
SQLインジェクションでは、アポストロフィ(')はSQL文の一部だ。アポストロフィが適当な文字とともにWebページのフォームフィールドに挿入された場合、チェックが正しく行われないと、バックエンドデータベースへのSQLクエリが実行され、データが返される。データベースがアカウント情報や顧客の機密データを保存していれば、悪意ある攻撃者にとっては宝の山になる。
これに対し、入力に「<script>」タグが含まれていた場合は、XSS攻撃が仕掛けられている大きな証拠になる。このタグに囲まれた部分は、攻撃者がWebサイトに挿入しようとしている悪意あるJavaScriptやそのほかのスクリプトコードだ。このタグをチェックして無効にすることが、XSS対策の第一歩になる。
OWASPの脆弱性トップ10ガイドには、Javaや.NET、PHPのようなよく使われる主要なコーディング言語のコード例とともに、詳しい解説が掲載されている。また、コーディングのベストプラクティスも示されている。例えば、入力チェック、ストアドプロシージャの多用、特定の出力エンコーディング、ホワイトリストのチェックなどだ。
ソフトウェア開発ライフサイクルにおけるセキュリティテスト
安全なコーディング手法は、アプリケーション開発ライフサイクルに統合しなければならない。入力チェック処理が適切にコーディングされるよう、技術仕様に処理方法を詳細に記述するとともに、開発ライフサイクルにおいて、さまざまなベンチマークでアプリケーションのセキュリティテストを行う必要がある。
XSSとSQLインジェクションをチェックできる侵入テストツールの中では、SPI Dynamics(Hewlett-Packardに最近買収された)のWebInspectと、Watchfire(IBMに最近買収された)のAppScanがよく使われている。いずれも、Webアプリケーションをスキャンしてインジェクションの欠陥を調べ、開発者がバグを追跡するのに役立つ詳細なリポートを提供する。
また、Fortify Softwareの製品のような静的コード分析ツールもある。こうした2種類のツール、つまりスキャナとコードアナライザのどちらを選択するかは、開発ニーズと利用可能なリソースに基づいて決めなければならない。
一方、ハードウェアベースのアプローチを採用し、Webアプリケーションファイアウォールによって悪意あるインジェクション攻撃の防止を図ることもできる。従来型のファイアウォールはパケットヘッダを検査し、パケットの種類や送信元に基づいてトラフィックを受け入れるか拒否する。だが、アプリケーションレベルファイアウォールはそれとは異なり、パケットの内容を検査し、インジェクション攻撃のコードを含む悪意あるコードの一般的パターンをチェックする。しかし、こうしたファイアウォール機能を提供するアプライアンスはまだ新しいため、活用には慎重に取り組まなければならない。ほかのネットワークベースアプライアンスやファイアウォールと同様に、導入前に徹底的にテストする必要がある。有名な製品としては、NetContinuum、Aladdin Knowledge Systemsといったベンダーのものがある。
なお、現在のフォールトインジェクション対策製品には、看板倒れのものもあることに注意する必要がある。一部の製品は統合セキュリティソリューションとして提供されており、IMや電子メール関連の脅威からの保護に重点が置かれていたり、URLをスキャンして、不適切なサイトへのアクセスを遮断する機能が中心となっている製品もある。だが、セキュリティ市場はダイナミックに成長しており、インジェクション攻撃の高度化とともに、対策製品もさらに改良が進むだろう。
本稿筆者のジョエル・デュビン氏はCISSP(公認情報システムセキュリティ専門家)資格を持つ独立系コンピュータセキュリティコンサルタント。Microsoft MVPに選ばれ、Web/アプリケーションセキュリティを専門とする。著書に「The Little Black Book of Computer Security」(29th Street Press)があり、シカゴのラジオ局WIITでコンピュータセキュリティの番組を担当。「IT Security Guy」ブログも運営している。
Copyright © ITmedia, Inc. All Rights Reserved.
この記事の著者
関連記事
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
「Excel至上主義」の終わらせ方 丸2日の手作業地獄から情シスと現場を救うには
-
2
急増する「AIはこう言ってる」マン 判断を狂わせる「AI忖度」を防ぐには?
-
3
取手市がVDIと決別した理由 更改費用「4倍超」を約1.7倍に圧縮
-
4
221人調査で分かった「情シス最大のストレス」は?
-
5
「データストレージの活用方法」に関するアンケート
-
6
「AI時代の統合基盤・エンタープライズAI管理」に関するアンケート
-
7
自宅のWi-Fiが「遅い」「途切れる」本当の原因は? Dellが推奨する鉄則
-
8
100億円の「Linux更新」を回避 みずほ銀行が選んだ“おきて破り”のRHEL延命策
-
9
本当に安いPCで十分か? “すぐ重くなる”を防ぐノートPC選びの絶対条件
-
10
Claudeの不可視透かしに批判殺到 著作権消失や誤判定に潜む企業リスク
ホワイトペーパーランキング PR
-
1
年収2000万「クラウドセキュリティのプロ」になれる資格とは
-
2
セキュリティソフトをすり抜ける標的型攻撃メール、不審メールの見破り方とは?
-
3
Windows Updateの通信集中で回線が逼迫、ネットワーク刷新事例に学ぶ解決策
-
4
財務を戦略的組織へ進化させるAI活用術、4つの主要な障壁と解消方法
-
5
「NAS」「SAN」「DAS」は何が違う? いまさら聞けないストレージの基礎
-
6
“あのファイル転送”で暗躍するノーウェアランサム
-
7
標的型攻撃メールを見破るには? サンプル文面を例に傾向を解説
-
8
商用利用の安全性を確保し大量のコンテンツを高速で生成する、AI活用の秘訣
-
9
マンガで解説、1日で生成AI環境を構築できるワークショップの中身とは?
-
10
Dark AIが台頭する時代の新発想、「より高度なAIで対抗する」具体的方法とは?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー