ソフトとハード、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.
この記事の著者
関連記事
新着ホワイトペーパー PR
-
製品資料
[株式会社MatrixFlow] 「物流リソース最適化」ガイド:人員・配車・傭車を出庫依頼の確定前に決めきる -
製品資料
[株式会社キーエンス] なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは -
製品資料
[株式会社セールスフォース・ジャパン] 「CRMは設計と無関係」は本当か? PLMとの融合で実現する高速開発 -
事例
[日本ヒューレット・パッカード合同会社] AIエージェントの時代にどう備える? 「新たな働き手」を支える3要素とは -
製品資料
[日本ヒューレット・パッカード合同会社] “横並びの自動化”から脱却、AI活用で生産性と競争力を高める秘訣
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
なぜ「全社配布Copilot」は使われないのか? 失敗に学ぶAI定着
-
2
法務と開発者で「言葉が通じない」問題 トヨタやソニーが語るOSS管理の真実
-
3
なぜ「Gemini 4 Argon」は出遅れたのか? Googleが狙う“逆転のシナリオ”
-
4
損保ジャパンはなぜ「COBOL」を捨てなかったのか? 脱メインフレームの真相
-
5
情シスの約8割が転職や退職を意識 調査で分かった“辞めたくなる最大の理由”
-
6
ChatGPTは“検索しまくり”でGeminiは“淡泊”? データが明かすAIの裏側
-
7
情報漏えいはなぜ繰り返されるのか 今すぐ見直すべき「境界」
-
8
「Wi-Fi 7」経由でWindowsが乗っ取られる? 最高権限奪取の恐怖
-
9
「結局使わなくなる」Microsoft 365 Copilotを半年で定着 キリンの3施策
-
10
「中堅・中小企業のネットワーク・セキュリティ運用実態」に関するアンケート
ホワイトペーパーランキング PR
-
1
不審メールの経路や見せ方に変化? 2026年夏の3事例から見えた動向と対処方法
-
2
家庭用Wi-Fiルーターの業務利用は危険? 避けるべき理由と具体的な対策
-
3
Microsoft 365を安全に運用 うっかりミスやサイバー攻撃に備えるデータ保護術
-
4
財務部門がAIを最大限に活用する方法 無駄のない戦略的リーダーシップへの道
-
5
LLMが兵器化? 元FBI高官が鳴らす警鐘とセキュリティツール統合のポイント
-
6
「オンプレミス回帰」せざるを得ない“合理的な理由”
-
7
なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは
-
8
生成AIを開発に導入しても効果が見えない? 実証実験で分かった成果と課題
-
9
経産省DX指針から読み解く、受発注業務デジタル化ロードマップ
-
10
HDDを使わない「SSDオンリー」が無謀なのはなぜ?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー