古くて新しいフォールトインジェクション攻撃:ソフトとハード、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やパスワードを盗むためではなく、アプリケーションのデータを不正入手するために行われる。
フォールトインジェクション対策
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
Copyright © ITmedia, Inc. All Rights Reserved.