ウェブアプリケーションのセキュリティ対策 ウェブアプリケーションのセキュリティ対策に 対策に関する仕様 する仕様書 仕様書 1 趣旨 この仕様書は、電子博物館「みゆネットふじさわ」ホームページ運営・管理業務委託契 約の受託者がホームページの改ざん等をはじめとしたインターネット上の脅威に対処する ため、開発または改修したウェブアプリケーションに対して実施する脆弱性対策について 定めることを目的とする。 2 対策を実施する脆弱性項目 受託者は、以下に定めるウェブアプリケーションの脆弱性について対策を実施し、脆弱 性有無の判定基準に基づき、脆弱性がないことを確認するものとする。対策の実施に際し ては、独立行政法人情報処理推進機構が策定した「安全なウェブサイトの作り方」の最新 版における「根本的解決」を参考にすること。なお、脆弱性項目のうち、開発または改修 したウェブアプリケーションに入力フォームがない等、脆弱性がないことが明らかである 場合、当該項目は確認対象から除外してよい。 (1) SQLインジェクション 検出パターン 脆弱性有無の判定基準 (入力フォームに以下の文字列を入力 (以下の場合に脆弱性有とす する) る) 1-1 エラーになる 「'」 (シングルクォート)1 個 備考 レスポンスに DBMS 等が出力するエ ラーメッセージ(例:SQLException、 Query failed 等)が表示された場 合にエラーが発生したと判定しま す。 1-2 「検索キー」と「検索キー 検索キーのみと同じ結果にな HTTP ステータスコードが一致し、 'and'a'='a」の比較 る かつレスポンスの diff(差分)が全 体の 6%未満の場合、同一の結果と判 定します。検査対象が検索機能の場 合は、検索結果件数が同一の場合に も、同一の結果と判定します。 1-3 「検索キー(数値)」と「検索キー 検索キーのみと同じ結果にな and 1=1」の比較 る 同上 (2) クロスサイト・スクリプティング(XSS) 検出パターン 脆弱性有無の判定基準 (1、2、4は入力フォームに以下の (以下の場合に脆弱性有とす 文字列を入力する) る) 2- エスケープ等されずに出力さ 「'>"><hr>」 備考 レスポンスボディーに検査文字列 1 れる の文字列がエスケープ等されずに 出力されると脆弱と判定します。 2- 「 '>"><script>alert(document. エスケープ等されずに出力さ 2 cookie)</script>」 れる 2- URL 中のファイル名として エスケープ等されずに出力さ 同上。 3 <script>alert(document.cookie れる http://xxxx.jp/service/index.ht )</script> 同上 ml と い う URL で あ っ た 場 合 、 「index.html」の部分に検査文字列 をエンコードせずに挿入します。 2- javascript:alert(document.coo 4 kie); Href 属性等に出力される レスポンスボディーの特定の URI 属 性 ( src, action, background, href,content)や、JavaScript コ ー ド ( location.href, location. replace)等に検査文字列が出力さ れる場合、脆弱と判定します。 (3) クロスサイト・リクエスト・フォージェリ(CSRF) 脆弱性有無の判定基準 検出パターン 備考 (以下の場合に脆弱性有とする) 3-1 ログイン状態において、特定副作用を 特定副作用が実行される 特定副作用を持つ機能において、以下の 持つ画面に対して外部からパラメー いずれかを満たす場合に脆弱と判定し タを強制する ます。 ・トークン等のパラメータが存在しない ※「特定副作用」とは、正規ユーザが ・トークン等を削除しても特定副作用が 不利益を被るようなデータ更新、パス 実行される ワード変更等を指す。 ・トークン文字列の推測が可能 ・別ユーザのトークンが使用できる 特定副作用が実行されたかは、画面に表 示されるメッセージ等により判断しま す。 (4) OSコマンド・インジェクション 検出パターン 脆弱性有無の判定基準 (システムへ送信するパラメータに以下を 備考 (以下の場合に脆弱性有とする) 入力) 4-1 【UNIX 系 OS 向け】 ifconfig の実行結果が表示される レスポンスに、127.0.0.1 等の文字列が 「 ../../../../../../../sbin/ifcon 含まれる場合、ifconfig が実行された fig|」を入力 と判定します。 4-2 【UNIX 系 OS 向け】 ifconfig の実行結果が表示される 同上 ipconfig の実行結果が表示される レスポンスに、Ethernet, adapter 等の 「;/sbin/ifconfig」を入力 4-3 4-4 【Windows 向け】 「 ../../../../../../../windows/sy 文字列が含まれる場合、ipconfig が実 stem32/ipconfig|」を入力 行されたと判定します。 【Windows 向け】 ipconfig の実行結果が表示される 同上 「&/windows/system32/ipconfig」を 入力 (5) ディレクトリ・リスティング 脆弱性有無の判定基準 検出パターン 備考 (以下の場合に脆弱性有とする) 5-1 URL をディレクトリまでで終端しリ ディレクトリ一覧が表示される。フ URL の末尾のファイル名部分を削除し クエストする ァイル一覧の表示のみでは「低」危 てリクエストを送り、ファイル一覧がレ 険度、重要情報があれば「高」危険 スポンスされるか確認します。icons 等 度 明らかに無害なものは報告しません。抜 き取りにて、一覧ファイル内のバックア ップファイル等を探して発見されたも のを報告します。 (6) メールヘッダインジェクション 脆弱性有無の判定基準 検出パターン 備考 (以下の場合に脆弱性有とする) 6-1 6-2 Subject 、 From 、 To 欄 に 新たなあて先を指定できる 改行文字の後に追加した To アドレス 「%0d%0aTo:[email protected]」 (XXX は (@xxxx.jp のアドレス)にメールが届 数値 2~3 桁)を入力することで、新 く場合に、新たなあて先を指定できたと たなあて先を指定できるか 判定します。 Subject 、 From 、 To 欄 に 本文内容を改ざんできる アドレス(@xxxx.jp)に届いたメールの 「%0d%0a%0d%0akensa」を入力するこ 本文部分に「kensa」という文字列が含 とで、本文内容を改ざんできるか まれている場合、本文内容を改ざんでき たと判定します。 (7) パストラバーサル(ディレクトリ・トラバーサル) 検出パターン 脆弱性有無の判定基準 (ファイル名と想定されるパラメータに以 備考 (以下の場合に脆弱性有とする) 下を入力) 7-1 【UNIX 系 OS 向け】 /etc/hosts が表示される レスポンスに 127.0.0.1、localhost 等 「 ../../../../../../../../../etc/ の文字列が含まれる場合、/etc/hosts hosts」 が表示されたと判定します。 7-2 【UNIX 系 OS 向け】 /etc/hosts が表示される 同上 win.ini が表示される レスポンスに[extensions]等の文字列 「 ../../../../../../../../../etc/ hosts%00」 7-3 7-4 【Windows 向け】 「 ../../../../../../../../../wind が含まれる場合、win.ini が表示された ows/win.ini」 と判定します。 【Windows 向け】 win.ini が表示される 同上 「 ../../../../../../../../../wind ows/win.ini%00」 (8) 意図しないリダイレクト 検出パターン 脆弱性有無の判定基準 備考 (以下の場合に脆弱性有とする) 8-1 クエリストリング等に URL を保持し 指定した別ドメインの URL に遷移 Location ヘッダ、META タグの Refresh、 ている場合に、URL を別ドメインのも させられる JavaScript コード(location.href, の(http://www.xxxx.jp/)に変更し location.assign, location.replace ) てリクエストする によるリダイレクト部分に検査文字列 が出力される場合にリダイレクト可能 ※クエリストリングとは、URL中の と判定します。ログイン機能以外でも脆 「?」以降の部分を指す。 弱性として判定します。 (9) HTTPヘッダ・インジェクション 脆弱性有無の判定基準 検出パターン 備考 (以下の場合に脆弱性有とする) 9-1 9-2 Cookie に相当するパラメータに改行 Set-Cookie のパラメータに改行が レスポンスヘッダに、 コードを入力 挿入される xxxxtest=xxxxtest という Set-Cookie 元の値 %0d%0aSet-Cookie:xxxtest ヘッダが存在する場合、改行が挿入され %3Dxxxxtest%3B たと判定します。 リダイレクト先 URL に相当するパラ Location ヘッダのパラメータに改 メータに改行コードを入力 行が挿入される 同上 元の値 %0d%0aSet-Cookie:xxxxtest %3Dxxxxtest%3B (10) 認証 脆弱性有無の判定基準 検出パターン 備考 (以下の場合に脆弱性有とする) 10-1 パスワードの max 文字数が 8 文字 8 文字未満の場合は指摘 ― 数字のみ、英字のみの場合は指摘 ― 以上確保されているか 10-2 パスワードの文字種が数字のみ、英 字のみに限定されていないか 10-3 パスワードが入力時に伏字になって 伏字になっていない場合は指摘 ― パスワード間違いの際のメッセージ ユーザ ID とパスワードのどちら ― は適切か が間違いか分かるようなメッセー いるか 10-4 ジの場合指摘 10-5 ログアウト機能はあるか、適切に実 ログアウト機能がない、あるいはロ 装されているか グアウト後「戻る」ボタンでセッシ ― ョンを再開できる場合は指摘 10-6 意図的に 10 回パスワードを間違え アカウントロックされない場合は る 指摘 ― (11) セッション管理の不備 脆弱性有無の判定基準 検出パターン 備考 (以下の場合に脆弱性有とする) 11-1 11-2 ログインの前後でセッション ID が セッション ID が変わらない場合 変化するか は指摘 言語・ミドルウェアの備えるセッシ 手作りのセッション管理機構を使 セッション ID のパラメータ名等で、言 ョン管理機構を使用せず手作りのセ 用している場合は指摘 語・ミドルウェアのセッション管理機構 ッション管理機構を使っていないか ― を使用しているかを判断します。判断が つかない場合には、"手作りの疑いあり" として報告します。 11-3 SSL を使用するサイトの場合、セッ Cookie のセキュア属性が付与され ション ID を保持する Cookie にセ ていない場合は指摘 ― キュア属性が付与されているか 11-4 Cookie をオフにしてアクセスした セッション ID が URL 埋め込みの リファラから漏洩するおそれがある場 場合、セッション ID が URL 埋め込 場合は指摘 合にのみ、脆弱と判定します。(5 を参 みにならないか 11-5 携帯電話向けサイト等でセッション 照) Referer からセッション ID が漏 PC/携帯サイト両方が対象。外部へのリ ID を URL 埋め込みにしている場合、 洩する場合は指摘 ンク(検査対象とは異なるホスト上のペ 外部リンクから Referer 経由でセッ ージへのリンク)が存在する場合にのみ ション ID が漏洩しないか 脆弱と判定します。セッション ID の漏 洩が問題とならない場合(認証等の機能 が無いケースや、ワンタイムなセッショ ン ID を使用しているケース)は報告か ら除外します。 (12) アクセス制御の不備、欠落 検出パターン 脆弱性有無の判定基準 備考 (以下の場合に脆弱性有とする) 12-1 URL 操作により、現在のユーザでは 実行可能の場合は指摘 実行権限のない機能が実行可能。 貸与アカウントでは実行権限が無いと 推測されるページ(管理者機能等) の URL が特定できる場合に、検査を実施しま す。権限が無いと推測されるページ(管 理者向けメニュー等)が表示された時点 で、脆弱性として判定します。 12-2 文書 ID、注文番号、顧客番号等がパ ID 類の変更により、閲覧権限のな 閲覧権限がない情報の ID 類が特定でき ラメータにより指定されている場 い情報が表示された場合は指摘 る場合に検査を実施します。特定できな 合、その ID 類を変更して、元々権 い場合は、ID 類の末尾数値を操作する 限のない情報を閲覧できるか 等の方法で、参照権限がないと推測され る情報が表示されたら脆弱と判定しま す。 12-3 hidden, Cookie に現在権限が指定 実行可能の場合は指摘 「admin」等権限クラスを示すと推測さ されており、その変更により現在の れるパラメータが存在する場合に、検査 ユーザでは実行権限のない機能が実 を実施します。 行可能 3 脆弱性無の確認結果の報告 受託者は、上記すべての脆弱性がないことを確認した上で、確認結果報告書を委託者に 対して提出するものとする。 4 脆弱性検査ツールの利用 受託者は、上記の脆弱性有無の検査を実施するに当たり、専用のウェブアプリケーショ ンの脆弱性検査ツールを利用することができる。 5 監督 委託者は、検査の実施状況の確認が必要と認められる場合は、受託者の検査現場に立ち 会うことができるものとし、受託者はこれに協力しなければならない。 6 損害賠償 受託者は、本仕様書に違反し脆弱性が存在した場合、当該脆弱性により委託者に発生す る損害について、その賠償の責に任ずるものとする。なお、賠償内容については委託者と 受託者が協議の上、決定するものとする。 7 協議事項 本仕様書に定める脆弱性項目以外に、新たに脆弱性が発見され、当該脆弱性を狙った攻 撃が急増するなど被害発生が予測される場合は、委託者と受託者が協議の上、対策の実施 有無を決めるものとする。 以上
© Copyright 2025 ExpyDoc