TOP
>
システムトレンド
> はじめに
安全なWebサイトの作成ガイド
第1回:Webアプリケーション開発者が知っておくべきセキュリティ
著者:
独立行政法人 情報処理推進機構セキュリティセンター
2006/2/9
1
2
3
次のページ
はじめに
インターネット上では、多くのWebサイトがそれぞれサービスを提供しています。2005年度現在、Webサイトを開設している企業は約8割に達し、Webを通じた情報のやり取りやサービスの提供は今後も増え続けることが予想されます。
一方、Webサイトを悪用した事件も後を絶ちません。最近は営利目的の犯行も目立ち、悪質化が進む傾向にあります。Webサイトから個人情報を不正取得される事件も頻発し、その多くでは、Webサイトで稼動していたWebアプリケーションのセキュリティ上の問題が悪用されました。
Webアプリケーションは、それぞれのWebサイトで独自に開発されている場合が多く、セキュリティを考慮した実装はその開発者に委ねられています。
Webアプリケーションにセキュリティ上の問題が発覚した場合、すでに運用を開始しているWebアプリケーションを設計レベルから修正することは難しい場合が多く、攻撃を回避するためのその場しのぎの対策で済まさざるを得ないことがあります。
Webアプリケーションの開発には、開発者がセキュリティを考慮した正しいプログラミング知識を身に付け、開発段階からセキュリティ上の欠陥を作らないための取り組みが必要です。
本連載は、独立行政法人情報処理推進機構(IPA)が届出(注1)を受けたソフトウエア製品およびWebアプリケーションの脆弱性関連情報を基に、届出件数の多かった脆弱性や攻撃による影響度が大きい脆弱性を取り上げ、その根本的な解決策と、保険的な対策を示しています。
※注1:
IPAセキュリティセンターでは、経済産業省の告示に基づき、脆弱性情報に関する届出を受け付けています。
「脆弱性関連情報に関する届出について」
http://www.ipa.go.jp/security/vuln/report/index.html
また、Webサイト全体の安全性を向上するための取り組みについても触れています。本連載が、Webサイトのセキュリティ問題を解決する一助となれば幸いです。
本連載の内容
本連載は、「Webアプリケーションのセキュリティ実装」において、Webアプリケーションに関連する脆弱性を取り上げ、その根本的な解決策と、保険的な対策を解説しています。
また、「Webサイトの安全性向上のための取り組み」においては、Webサーバの運用や通信の暗号化など、Webサイト全体の安全性を向上するための取り組みを示しています。
Webアプリケーションのセキュリティ実装(開発者向け)
SQLインジェクション
OSコマンド・インジェクション
クロスサイト・スクリプティング
セッション管理の不備
パス名パラメータの未チェック/ディレクトリ・トラバーサル
メールの第三者中継
Webサイトの安全性向上のための取り組み(管理者向け)
Webサーバのセキュリティ対策
DNS情報の設定不備
ネットワーク盗聴への対策
パスワードの不備
フィッシング詐欺を助長しないための対策
表1:本連載で取り上げる内容
なお、具体的なコーディング例や設定方法などの詳細には触れていません。利用しているWebアプリケーションの開発言語やWebサイトの環境に合わせて対応いただくことを想定しています。
IPAのWebサイトで公開している技術情報が参考となる項目については、そのURLを掲載しています。また、本連載で示す内容は、あくまで解決策の一例であり、必ずしもこれらの実施を強要するものではありません。
対象読者は、個人や企業を問わず、Webアプリケーション開発者やサーバ管理者など、Webサイトの運営に関わる方すべてとしています。まずは、自身が関わるWebサイトやWebアプリケーションに問題がないかを確認し、必要に応じて対処を検討してください。
問題の解決、対策について
セキュリティ対策は、その内容によって得られる効果が異なります。ある問題への取り組みを考えたとき、問題の原因そのものを取り除く、根本からの解決を目指す方法もあれば、外因である攻撃手法に注目し、その攻撃による影響を低減する対策を施す方法もあります。
大切なことは、自分が選択する取り組みが、どのような性質を持っているのか、期待する効果を得られるものなのか、ということを正しく理解することです。本連載では、特にWebアプリケーションのセキュリティ実装について、その性質を基に「根本的解決」と「保険的対策」の2つに分類しています。
根本的解決
根本的解決では、「脆弱性の原因を作らない実装」を実現するための取り組みを解説しています。
Webアプリケーションのセキュリティ対策は、「攻撃を回避する」機能を付加的に実装する傾向がありましたが、最近は開発段階からセキュリティを考慮し、脆弱性の原因を作り込まない取り組みが注目されはじめています。どのような設計において、どのような問題が発生し得るのかを理解し、「問題のある実装」を避け、「安全な実装」を実現してください。
保険的対策
保険的対策では、攻撃による影響を低減する対策等を解説しています。根本的解決との違いは、脆弱性そのものをなくすものではないという点です。根本的解決と併せることで、より高い安全性を確保することが期待できます。
時間的制約や運用の事情などにより、根本的解決をすぐに実施できない場合は、この対策がいわば「セーフティネット」になります。ただし、この対策が、結果として特定の文字の取り扱いや本来の機能を制限する場合があるため、この影響を考慮した上で実施を検討する必要があります。
セキュリティを考慮したWebアプリケーションを開発するためには、正しいプログラミング知識が必要です。Webアプリケーション開発者は、本連載とあわせ、次の資料を参照することをお勧めします。
参考URL
セキュア・プログラミング講座
http://www.ipa.go.jp/security/awareness/vendor/programming/
セキュア・プログラミング講座「WEBプログラマコース」
http://www.ipa.go.jp/security/awareness/vendor/programming/a00.html
1
2
3
次のページ
安全なウェブサイトの作り方 - ウェブアプリケーションのセキュリティ実装とウェブサイトの安全性向上のための取り組み
2006年1月31日にIPAは、ウェブサイト運営者がウェブサイト上で発生しうる問題に対して、適切な対策ができるようにするため、「安全なウェブサイトの作り方」を取りまとめ公開いたしました。
本記事は、その報告書の転載です。詳しい内容に関しましては、以下のURLをご参照ください。
安全なウェブサイトの作り方
http://www.ipa.go.jp/security/vuln/documents/2005/website_security.pdf
脆弱性関連情報に関する届出について
http://www.ipa.go.jp/security/vuln/report/index.html
IPA(独立行政法人情報処理推進機構)
http://www.ipa.go.jp/index.html
IPA/ISEC(独立行政法人情報処理推進機構セキュリティセンター)
http://www.ipa.go.jp/security/index.html
著者プロフィール
独立行政法人 情報処理推進機構セキュリティセンター
情報処理推進機構セキュリティセンター(IPA/ISEC)は、わが国において情報セキュリティ対策の必要性・重要性についての認識を啓発・向上し、具体的な対策実践情報・対策手段を提供するとともに、セキュアな情報インフラストラクチャ整備に貢献することをミッションとしています。
INDEX
第1回:Webアプリケーション開発者が知っておくべきセキュリティ
はじめに
Webアプリケーションのセキュリティ実装
Webアプリケーションに渡されるパラメータにSQL文を直接指定しない