前回の内容はいかがだっただろう。今回の内容を述べる前にひとつ補足がある。前回および今回の内容はサイトの脆弱性をチェックするより前の段階の話であるということだ。チェックはあくまで「確認」であり、設計やコーディングが正しく行われて初めて実行する意味がある。
脆弱性は正しく設計やコーディングができていないからこそ生じるのであって、そもそも正しく構築されているのであれば出現しない「はず」だ。“はず”というのは、ケアレスミスをゼロにすることは不可能であるからで、そのミスを発見するのがチェックの目的となる。
脆弱性は、設計やコーディングのミスの結果でしかない。そのミスを正せばおのずと脆弱性もなくなる。それでは、ウェブアプリケーションの「正しい」コーディングとは何であろうか。今回は、それを説明する。
コーディング時に発生する脆弱性
コーディング時に発生する脆弱性の原因は2つ考えられる。ひとつは入力時のデータ検証の不足であり、もうひとつは出力時のデータの処理不足だ。入力、出力どちらの場合でも扱うデータの形式は設計段階で規定されているはずであり、範囲外の値を受け入れたり出力したりするのは「実装=コーディングのミス」と言える。
入力時のデータ検証の不足
これは、ウェブアプリケーション自体が処理するデータが想定する範囲に収まっているか検証していないことによるものだ。サーバに送られるすべてのデータはユーザーによって改変できる。たとえば、ドロップダウンリストで指定される値やhiddenフィールドの値など、単にブラウザを用いているだけでは変更できないパラメータの値であっても容易に変更が可能だ。
このとき、値が意図しているものであるかどうか確認を怠ると、アプリケーションが全く意図していない動作を行うことがある。これを防ぐためには受け取ったデータの変数型や値のとりうる範囲を確認し、型が異なったり範囲外であれば再入力を要求するなどエラー処理を行えば良いということになる。
これを行わないとディレクトリトラバーサルやバッファオーバーフロー攻撃が成立する可能性がでてくる。
一点注意してほしいのは、この入力データの検証は、ウェブアプリケーションの機能を正常に動作させるために必要なのであって、SQLインジェクションやクロスサイトスクリプティング(XSS)など、出力データの処理不足が原因で起きる脆弱性を防ぐものではないということだ。
結果的にそのような攻撃を防ぐことはあるが、これをもって対策と考えることは危険だ。これについては次項でも述べるが、インジェクション系の攻撃が成立してしまう原因はメタキャラクタを受け入れたためではなく、そのメタキャラクタをそのまま出力してしまっていることにある。
出力データの処理不足
代表的なものは、前述のXSSやSQLインジェクションとなる。これらは、ウェブアプリケーションが出力するデータ中にそれを受け取る別のプログラムにとって意味のある特殊な文字(メタキャラクタ)が混入することにより、攻撃者が意図した処理が実行されてしまうというものだ。
ここで別プログラムと言っているのは、データベースであったり、ウェブブラウザであったりする。出力といえば、リクエストを発したものに対するレスポンスだけを指すように錯覚してしまうことがあるが、ウェブアプリケーションの外部へデータを出力しているのであるためデータベースに対するSQL文の発行も出力になる。
ここで重要なポイントは「それを受け取るプログラムにとって意味のある」という個所になる。HTMLにはHTMLの、JavaScriptにはJavaScriptの、SQLにはSQLのメタキャラクタが存在する。
逆に言えば、ウェブアプリケーション内部変数に入力された値としてそれらのメタキャラクタが含まれていても害にはならない。それらの値がそのまま外部のプログラムに渡ったとき、初めて問題となる。これが、出力時の問題とする理由だ。対策としてはエスケープ処理の実行となる。
出力時の問題としても、結果的に正しく出力されるのであれば入力時に処理を行っても良いのではないかと考えられるかもしれない。しかし、入力時にそのような処理を行うと非効率であるばかりか弊害が多くでる。これについては産業技術総合研究所の高木浩光氏が「サニタイズ言うな!」として解説をしているのでそちらを参照してほしい。
関連情報
-
ウォッチファイア、 ウェブアプリ脆弱性検査ソフトの試用ダウンロード提供開始
ウォッチファイア・ジャパンは、ウェブアプリケーション脆弱性検査ソフトウェア「AppScan 7」の試用ダウンロード提供を開始した。同社が用意した評価用ウェブサイトを対象に、すべての機能を無償で試用できる。 - Google Desktopの穴も見つけたウォッチファイア、ぜい弱性検査ソフト最新版を発表
- 国立情報学研究所、ウォッチファイアのウェブアプリ脆弱性検査ツールを採用
- ウォッチファイア、ウェブアプリ脆弱性検査ツール「AppScan QA Single Server版」を販売開始
- 日本IBMとテクマトリックスなど、DBセキュリティ強化を可能とするパッケージ製品
- インデックス子会社とアイシロン、デジタルコンテンツのストレージで提携
- 「正確なデータベースで安価なスパム対策を」--バラクーダのCEO
- テクマトリックス
- ウォッチファイア・ジャパン
「セキュリティ」 の新着情報
-
複数のデータセンターを分散させたままでBCP/DRを展開:山武
業務に必要なシステムをデータセンターで稼働させている企業は多いと思うが、災害復旧(DR)を中心とした事業継続計画(BCP)... - アップル、「iPhone」のSMS脆弱性を修正へ--IDG News Service報道
- シマンテック、アジア太平洋地域における中小企業のセキュリティ課題をレポート
- ATMのセキュリティに関する講演が中止に--米セキュリティカンファレンス
- スパムの83.2%がボットネットから--シマンテック調査
- セキュリティ 一覧へ »
「サイト脆弱性をチェックしよう!」 のバックナンバー
-
サイト脆弱性をチェックしよう!--第9回:AppScanによるアプリ脆弱性の自動検査
前回まで、主な脆弱性の検査方法について説明してきた。今回は、「IBM Rational AppScan」を例として、自動検査ツールについて説明しよう。 -
サイト脆弱性をチェックしよう!--第8回:セッション管理における脆弱性
-
サイト脆弱性をチェックしよう!--第6回:SQLインジェクションの検査方法
-
サイト脆弱性をチェックしよう!--第5回:XSSの脆弱性を検査する方法
-
サイト脆弱性をチェックしよう!--第4回:開発工程におけるレビューやテストのコツ(その2)
- サイト脆弱性をチェックしよう! 一覧へ »
ZDNet Japan Essential Topic
-
Windows 7の情報満載
MicrosoftのすべてがわかるZDNet Japanの総力特集 -
工事進行基準、まだ間に合いますよ!
工事進行基準でなにが変わるのか自信をもって言えますか?
企画特集
-
【徹底対談】運用管理ツールの賢い使い方
市場背景〜仮想化管理までアナリストが解説! -
今注目の「サジェスト検索」−デモ掲載中
システムのユーザビリティに革命を起こす技術とは -
仮想環境を実現するソリューション特集
仮想化導入時、こんなところ気にしてますか? -
パンデミック対策特集
2009年のパンデミック発生から再考する事業継続計画 -
ロリポップ!がリニューアル
【第1回】創業者の家入一真氏が語る誕生秘話!! -
◆エン・ジャパン厳選求人☆毎週更新◆
不況下でも急成長の秘訣とは?注目企業の取組みも公開! -
マネジメントの「コラム」と「コネタ」
今日のキーパーソンは誰? -
インターネット上の悪意を未然に防ぐには?
ブラウザに備わったセキュリティ機能を徹底解説 -
ESBでIT投資の無駄を劇的に解消する
IBM IMPACT 2009を徹底レポート! -
集積度も性能も、業界最高水準のブレードPC
サーバの実装技術を、シン・クライアントへ応用 -
セキュリティ&ユーザ事例【SIer Club】
最新のセキュリティ情報と提案事例が満載 -
中小企業のセキュリティリスクとは?
導入する側・される側 得するセキュリティ製品 -
そのストレージで仮想化に対応できますか?
メリット盛りだくさんのサンのオープンストレージ製品 -
SOA、BPM、SaaS −今、企業に必要なこと
ビジネス・アプリケーションの今を網羅する特設サイト -
ストレージメディア特設サイト開設
仮想化環境において最適なソリューションを! -
サーバー監視・運用のコストを削減するには
エージェントレス方式を用いたパトロールクラリスで -
サービス・ドリヴン・データセンター
コスト効果の高いデータセンター構築には? -
■ストレージ容量50%削減保証■
ネットアップによる削減保証キャンペーン実施中 -
エンタープライズにおけるSUSEの強み
次世代データセンターの基盤は11だ。
ZDNet Japanからのお知らせ
- ご回答にはCNET_IDご登録が必要です。
-
15. プラグマフリー構文
この4分間のビデオは、プラグマ構文を知らなくてもOpenMPディレクティブ... -
16. 並列性の用語定義
この6分間のビデオでは、このシリーズのビデオを通じて使用される用語を...
新着企業動向
-
「クールアース・デーの取り組み」について
箕面市役所 -
待ったなし!会計基準の国際化対応 緊急セミナー
NTTソフトウェア -
【EMC Mail News】3分でわかる最新ハイエンド・ストレージSymmetrix V-Maxの製品概要
EMCジャパン -
SecureCube / Central
NRIセキュアテクノロジーズ - 企業動向一覧へ»
幸い今回は弱毒性で大事には至らなかったが、まだ油断はできない。企業活動を停止すると、大きな経済的損害や社会的信用の低下を招いてしまう。
サーバやOS、アプリケーションなどの世界ではオープンソーススタンダードが市場を牽引する現在、ストレージの世界でもオープン化の流れが始まっている。 
