
Webアプリにおける11の脆弱性の常識と対策
株式会社メセナ・ネットコム
山中 秀樹
2009/9/1
本連載は、JSP/サーブレット+StrutsのWebアプリケーション開発を通じて、Java言語以外(PHPやASP.NET、Ruby on Railsなど)の開発にも通用するWebアプリケーション全般の広い知識・常識を身に付けるための連載です
切っても切れない? Webアプリケーションと脆弱性
■ @IT PR:勉強会のお知らせ11/25(水)「FlexとPHP研究会」 〜PHPプログラマのためのFlex Builder入門〜 PHPプログラマが、Flex Builder上でFlashアプリケーションを開発するうえでのポイントを紹介しつつ、FlexについてのQ&Aやフリートークを交えながら、Flex Builderを使った開発スタイルで“Flash”を覚えるヒントを得ていただければと思います。もちろん懇親会もアリ! |
あらためて確認しておきますが、Webアプリケーションとは、Webサーバ上で動作するソフトウェアのことです。具体例には、オンラインショッピング・オンラインバンキングなどを指し、私たちユーザーはWebブラウザでこれらのサービスを利用します。
このように、非常に利便性の高いWebアプリケーションでも注意しなければならないことがあります。それは、Webアプリケーションにおけるセキュリティや脆弱性についての問題です。
■ Webアプリは、開発者による脆弱性への対策が必要
脆弱性とは、「脆く、傷つきやすく、攻撃に対して弱い」ことです。ハードウェアの欠陥やソフトウェアのバグ、想定外のオペレーションなどが、これに当たります。
このセキュリティ問題については、一般的にWebアプリケーションの脆弱性をユーザーは意識しないので、ソフトウェアを提供しているベンダが問題を修復する必要があり、Webアプリケーションでは開発者が、セキュリティについて常に留意し、対策を施す必要があります。
■ Webアプリに対する11の代表的な攻撃手法
一般的なWebサーバのセキュリティ対策というと、ファイアウォールやウイルス対策などがあります。しかし、Webアプリケーションへの攻撃に対しては、これらの対策だけでは不十分です。
Webアプリケーションにおけるセキュリティホールの解説を行う前に、どのような攻撃手法が存在するか簡単に整理しましょう。現在、一般的に知られている代表的な攻撃には、以下のようなものがあります。
| 表 11の代表的な攻撃手法一覧(インデックスになっています) | ||||||||||||||||||||||||
|
これらの攻撃のほとんどが、ファイアウォールなどでは防ぐことができず、アプリケーションレベルで対応しなくてはなりません。今回は、表にある11種類の脆弱性について解説し、その対策を説明します。
【1】XSS(クロスサイトスクリプティング)
XSSとは、悪意のあるスクリプトが訪問者のWebブラウザに混入され、実行されてしまう脆弱性のことです。
例えば、入力した文字を画面に表示させるプログラムがあるとします。このプログラムに適切な入力値チェックが実装されていない場合、悪意のあるスクリプトがWeb画面に埋め込まれてしまい、ユーザーのWebブラウザ上で実行されてしまいます。この結果、セッションの乗っ取りやページの書き換え、強制遷移が可能となるため、フィッシング詐欺や“なりすまし”などの犯罪に利用されます。
一般的にデータベース中の特殊記号や、ユーザーからの入力内容をそのまま表示すると、XSSの脆弱性の原因となります。
■ 対策
対策としては、特殊文字のエスケープの入力データチェックなどが必要です。
編集部注:XSSの対策に関しては、以下の記事もご参考にしていただければと思います
| 適切なエスケープ処理でXSSに備える Strutsで作るセキュアWebアプリケーション(1) JavaでWebアプリを作成するときに、セキュリティで注意すべき点は? 代表的なカスタムタグを分析する 「Security&Trust」フォーラム 2006/3/23 |
||
| サーブレットコンテナが抱える問題を認識する Strutsで作るセキュアWebアプリケーション(2) エラーページの出力が原因となってXSSが引き起こされる可能性がある。サーブレットコンテナに依存しない解決法とは? 「Security&Trust」フォーラム 2006/4/27 |
||
| クロスサイトスクリプティング対策の基本 前編 クロスサイトスクリプティング脆弱性とは? 中編 XSS脆弱性により起こる被害とその対策 後編 XSSを防ぐために不可欠なサニタイジング(無害化) Webアプリケーションに存在するセキュリティホールが問題となっており、その代表格「XSS」の仕組みを解説しよう 「Security&Trust」フォーラム | ||
| mod_securityのXSS対策ルールを作成する Webアプリケーションに潜むセキュリティホール(12) Webアプリケーションファイアウォールの「mod_security」を運用する。まずはXSS対策を施してみよう…… 「Security&Trust」フォーラム 2004/9/16 |
||
| XSSは知ってても、それだけじゃ困ります? もいちどイチから! HTTP基礎訓練中(1) Webアプリのセキュリティについてもっと詳しく知りたいけれど、まず何を勉強すればいいの? そんな疑問に応える新連載! 「Security&Trust」フォーラム 2007/9/28 |
||
| マルチバイトの落とし穴 星野君のWebアプリほのぼの改造計画(10) 今日も赤坂さんとお勉強。ちゃんと対策されているようにみえるのに、こんな抜け穴があるなんて! 「Security&Trust」フォーラム 2006/9/23 |
||
| 世間の認識とのギャップ――XSSは本当に危ないか? 川口洋のセキュリティ・プライベート・アイズ(13) 脆弱性が1つでも残ってるだなんて論外という方も多いでしょう。ところでその脆弱性、いったい誰が攻撃するんでしょうか 「Security&Trust」フォーラム 2009/3/17 |
||
【2】強制的ブラウジング(強制的ブラウズ)
強制ブラウジングは、情報漏えいにつながる可能性の高い脆弱性の1つで、文字通り強制的に特定のページへアクセスし、情報を取得する攻撃手法です。
Webアプリケーションプログラム上で、パラメータとしてパス名などを受け入れた場合、Webサーバ経由で本来アクセス権限のないファイルを利用者が取得できてしまいます。このとき、個人情報やサーバの内部情報などが取得されてしまい、個人情報漏えいや、サーバへの攻撃の足掛かりとして利用される恐れがあります。
■ 対策
対策としては、アクセスされてはいけない情報(個人情報など)をWebサーバのドキュメントルート上に置かないことなどが挙げられます。これは、強制ブラウジングに限らず、データ保存場所が原因となるセキュリティに対して有効です。
編集部注:強制的ブラウジングの対策に関しては、以下の記事もご参考にしていただければと思います
次ページでは、残りの脆弱性のうち【3】〜【6】について見ていきます。
| Index | ||||||||||
|
||||||||||
Webアプリの常識をJSPとStrutsで身につける バックナンバー 連載インデックスへ»
- 第1回 いまさら聞けない、Webアプリケーションの常識
- 第2回 Strutsの常識を知り、EclipseとTomcatの環境構築
- 第3回 Webアプリにおけるサーバとクライアントの常識
- 第4回 HTMLやStrutsに必須の“タグ”と“サブミット”の常識
- 第5回 もはやWeb利用者の常識、“URL”の意味を理解しよう
- 第6回 発掘! Webの“あるある”問題点−ステートの常識
- 第7回 Webアプリ開発の常識、バリデーションとテンプレート
- 第8回 MySQLの常識を知りセットアップしてJSPからDB操作
- 第9回 Hibernateで覚えるO/RマッピングとBeanの常識
- 第10回 JUnitとEclipseを使って学ぶ、“テスト”の常識
- 第11回 Webアプリにおける11の脆弱性の常識と対策
- 最終回 JavaScript/Ajaxで知るWebアプリとスクリプトの常識
| Java Solution全記事一覧 |
ホワイトペーパー(TechTargetジャパン)
- Android NDKでJNIを使用してアプリを高速化するには (2010/3/17)
C/C++やOpenGL ESといったネイティブコードを使うためのNDKとJNIを紹介し、その使い方や注意点を徹底解説します - 調査の難しい「OutOfMemoryError」事例、5選 (2010/3/11)
Java開発者が避けて通れないメモリ不足エラーの基本的な問題切り分け方法と発生につながる事例、対処法を解説 - 究極の問題解析ツール、逆コンパイラJD-Eclipseとは (2010/3/8)
ライブラリ内で例外が発生! そのクラスのソースコードを調べたい!! 自動で逆コンパイルしてくれる無料Eclipseプラグインがあります - いまさら聞けない「Webサービス」の常識 (2010/2/26)
昨今では企業システムでも使われる「Webサービス」の概念やJava標準のJAX-WSを紹介しJBoss WSでサンプルを作成
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
| 「いつかは壊れるサーバ」そんな故障に 迅速で安価に手軽に対応する方法とは? New! |
| 「特権ユーザー」の事件を防げ! 万能権限を持つユーザーの管理方法とは? New! |
| 仮想環境の構築とデータ保護の特効薬?! 実績と信頼性の高いパッケージで安心運用 |
| 仮想環境のバックアップもこれまでどおり 「まるごと取ってまるごと戻す」簡単運用 |
| おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |
| その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |
| 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |
| 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | TomcatやJBossなどAPサーバ環境に関する 情報を集約! “業務”用APサーバ大百科 New! |
| ◆ | 一気に解説! 最新のクラスタストレージ 「RAIDを超えたストレージ基準」……など New! |
| ◆ | クラウド的ユーザー体験の変化は脅威か? 仮想化技術を使いこなす運用管理術を紹介 New! |

| ◆ | 上司や部下、部署内メンバーとの情報共有 を“ガラッ”と変えるコラボツールとは? New! |
| ◆ | おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| ◆ | 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |

| ◆ | Twitterのアカウントはなぜ突破された? メールによる新手の攻撃手法とその対策 |
| ◆ | もう仮想化のお試しフェイズは終わりだ! Hyper-V 2.0が基幹システムも仮想化 |
| ◆ | 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |

| ◆ | クライアント企業から求められる人材 ⇒IT技術と経営戦略を併せ持つ「戦略家」 |
| ◆ | .NET編集長が実践する「技術情報検索術」 サンプル・コードを簡単に探す“技”は? |
| ◆ | 業務効率と情報セキュリティ対策を両立! 手間なく確実に機密情報を守る方法とは? |

| ◆ | 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |

| ◆ | 【CTC事例】約30の基幹システムを統合! 膨大なバッジジョブを制御した方法は? |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |
| ◆ | その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |








