目次 1 はじめに 1.1 診断の目的 本報告書の取り扱い 運営上のリスク 診断内容 2.1 診断日程 診断対象 診断環境 実施者 診断項目 診断結果概要 3.1

Similar documents
WEBシステムのセキュリティ技術


— intra-martで運用する場合のセキュリティの考え方    

安全な Web サイトの作り方 7 版 と Android アプリの脆弱性対策 独立行政法人情報処理推進機構 (IPA) 技術本部セキュリティセンター Copyright 2015 独立行政法人情報処理推進機構

掲示板ガイド1

ご利用のブラウザのバージョンによっては 若干項目名が異なる場合があります 予めご了承ください Windows をお使いの場合 [ 表示 ] [ エンコード ] [ 日本語 ( 自動選択 )] を選択 [ 表示 ] [ エンコード ] [Unicode(UTF-8)] を選択 Firefox をご利用

クイックマニュアル(利用者編)

2015 年 4 月 15 日に発表された HTTP.sys の脆弱性 ( ) へ の対応について 製品名 : バージョン : 対象プラットフォーム : カテゴリ : iautolaymagic すべてすべて Web アプリ この度 マイクロソフト社製品において緊急度の高い脆弱性 (CV

目次 メールの基本設定内容 2 メールの設定方法 Windows Vista / Windows 7 (Windows Live Mail) Windows 8 / Windows 10 (Mozilla Thunderbird) 3 5 Windows (Outlook 2016) メ

Microsoft IISのWebDAV認証回避の脆弱性に関する検証レポート

SQL インジェクションの脆弱性

2 ログイン ( パソコン版画面 ) Web サイトのログイン画面が表示されます 通知メールに記載されている ID と仮パスワードを入力して ログイン ボタンをクリックしてください ID パスワードを連続して 5 回間違うと 当 I D はロックアウト ( 一時的に使用不可 ) されるので ご注意く

2 1: ネットワーク設定手順書 が完了後に行なってください 鏡野町有線テレビ 各種設定手順書 この手順書では以下の内容の手順を解説しています メール設定 ホームページの掲載 お客様がご利用の OS により設定方法が異なる部分があります OS をご確認の上 作業を行なってください お客

SAMBA Stunnel(Mac) 編 1. インストール 1 セキュア SAMBA の URL にアクセスし ログインを行います xxxxx 部分は会社様によって異なります xxxxx 2 Mac OS 版ダウンロー

SAMBA Stunnel(Windows) 編 1. インストール 1 セキュア SAMBA の URL にアクセスし ログインを行います xxx 部分は会社様によって異なります xxxxx 2 Windows 版ダウンロード ボ

Microsoft Word - FTTH各種設定手順書(鏡野地域対応_XP項目削除) docx

WebARENA SuiteX V2 EC-CUBE 2.13 インストールマニュアル ( 標準 MySQL+ 非 SSL ) 作成 :2014 年 2 月 Ver.1.1

I N D E X リダイレクト画面投稿手順 リダイレクト画面投稿手順 2 1 管理画面にログイン 2 右上の + 追加 を押す メールサービスのご利用について 4 メールソフト設定方法 ご利用のバージョンにより 画面や設定項目が異なる場

1. WebShare(HTML5 版 ) 編 1.1. ログイン / ログアウト ログイン 1 WebShare の URL にアクセスします xxxxx 部分は会社様によって異なります xxxxx 2 ユーザー名 パ

PC にソフトをインストールすることによって OpenVPN でセキュア SAMBA へ接続することができます 注意 OpenVPN 接続は仮想 IP を使用します ローカル環境にて IP 設定が被らない事をご確認下さい 万が一仮想 IP とローカル環境 IP が被るとローカル環境内接続が行えなくな

eYACHO 管理者ガイド

InfoPrint SP 8200使用説明書(6. セキュリティ強化機能を設定する)

Thunderbird(Windows) 設定マニュアル 目次 1 POP 系の設定 初めて設定する場合 ( 追加メールアドレスの設定 ) 設定内容の確認 変更 メールアドレス変更後の設定変更 メールパスワード変更後の設定変更

( 目次 ) 初回ログインクリプト便送信クリプト便受信ご参考 P2~ P6~ P11~ P14~ 本マニュアルは NRIセキュアテクノロジーズ株式会社 ( 以下 NRI 社 という ) より提供されました2014 年 12 月 1 日時点の クリプト便 ユーザーマニュアルをもとに作成しております 最

1. マイページの取得 学情主催イベント原稿入稿システム URL 上記 URL にアクセスしてください ( ブラウザに直接入力してください ) 1-1. メールアドレスの入力 トップページ 上記の学情主催イベント原

アルファメールプレミア 移行設定の手引き

目次 1. 会員登録 推奨動作環境 サイト閲覧環境 シミュレーション動作環境 各種設定について メールアドレスおよびニックネームの登録 個人情報の取り扱い

共有フォルダ接続手順 1 共有フォルダ接続ツールのダウンロード 展開 CSVEX のトップページから共有フォルダ接続ツールの zip ファイルをダウンロードします ダウンロードした zip ファイルを右クリックして すべて展開 を選択します (Windows 環境では zip ファイルを解凍しなくて

ek-Bridge Ver.2.0 リリースについて

1. WebShare 編 1.1. ログイン / ログアウト ログイン 1 WebShare の URL にアクセスします xxxxx 部分は会社様によって異なります xxxxx. 2 ログイン名 パスワードを入力し

9. システム設定 9-1 ネットワーク設定 itmはインターネットを経由して遠隔地から操作を行ったり 異常が発生したときに電子メールで連絡を受け取ることが可能です これらの機能を利用するにはiTM 本体のネットワーク設定が必要になります 設定の手順を説明します 1. メニューリスト画面のシステム設

1. SQL インジェクションの問題と脅威 2

<4D F736F F D DEC90E096BE8F C E838B82CC836A C E312E31816A2E646F63>

CloudEdgeあんしんプラス月次レポート解説書(1_0版) _docx

Microsoft Word - Gmail-mailsoft_ docx

SAMBA Remote(Mac) 編 PC にソフトをインストールすることによって OpenVPN でセキュア SAMBA へ接続することができます 注意 OpenVPN 接続は仮想 IP を使用します ローカル環境にて IP 設定が被らない事をご確認下さい 万が一仮想 IP とローカル環境 IP

マルウェアレポート 2018年3月度版

メールデータ移行手順

クライアント証明書導入マニュアル

共通フィルタの条件を設定する 迷惑メール検知 (SpamAssassin) の設定 迷惑メール検知 (SpamAssassin) とは.

目次 1. PDF 変換サービスの設定について )Internet Explorer をご利用の場合 )Microsoft Edge をご利用の場合 )Google Chrome をご利用の場合 )Mozilla Firefox をご利

Ver1.70 証明書発行マニュアル パスワード設定版 Windows 7 InternetExplorer 2018 年 3 月 14 日 セコムトラストシステムズ株式会社 Copyright SECOM Trust Systems CO.,LTD. All Rights Reserved i

ポップアップブロックの設定

メール設定

目次 1. ユーザー登録 ( 初期セットアップ ) を行う Office365 の基本的な動作を確認する... 6 Office365 にログインする ( サインイン )... 6 Office365 からサインアウトする ( ログアウト )... 6 パスワードを変更する... 7

インターネット EDI システムを使用する前の準備 目次 動作環境について... 2 Internet Explorer7.0 / 8.0 をご利用の場合の設定方法... 3 [1] インターネット EDI システムを利用するための標準的な設定... 3 [2] ブラウザ型で帳票を利用する場合に必要

はじめに (1) フィッシング詐欺 ( フィッシング攻撃 ) とは フィッシング詐欺とは インターネットバンキング ショッピングサイト等の利用者のアカウント情報 (ID パスワード等 ) や クレジットカードの情報等を騙し取る攻撃です 典型的な手口としては 攻撃者が本物のウェブサイトと似た偽のウェブ

マルウェアレポート 2018年1月度版

ファイルのアップロード. 上メニューから [ アップロード ] を選択します. [ アップロード ] 画面に移行しますので, 以下の手順で操作を行います アップロードするファイルを選択し, 指定場所へ [ ドラッグ & ドロップ ] します ドラッグ & ドロップ ファイルがリストアップされたことを

アカウント管理者 操作ドキュメント

目次 移行前の作業 3 ステップ1: 移行元サービス メールソフトの設定変更 3 ステップ2: アルファメール2 メールソフトの設定追加 6 ステップ3: アルファメール2 サーバへの接続テスト 11 ステップ4: 管理者へ完了報告 11 移行完了後の作業 14 作業の流れ 14 ステップ1: メー

OS の bit 数の確認方法 - Windows0 及び Windows8. Windows のコントロールパネルを開きます Windows0 の場合 スタート から Windows システムツール の コントロールパネル をクリックします Windows8. の場合 スタート から PC 設定

McAfee Application Control ご紹介

PowerPoint Presentation

HDC-EDI Manager Ver レベルアップ詳細情報 < 製品一覧 > 製品名バージョン HDC-EDI Manager < 対応 JavaVM> Java 2 Software Development Kit, Standard Edition 1.4 Java 2

9 WEB監視

Password Manager Pro スタートアップガイド

メールサーバ仕様変更に伴うメール設定変更方法

ログを活用したActive Directoryに対する攻撃の検知と対策

サービス内容 サービス内容 ドメインサービス Web サービスのサービス内容についてご案内します このたびは ドメイン /Web サービスをお申し込みいただきまして 誠にありがとうございます 本冊子は ドメイン /Web サービスの運用を管理される方向けの内容で構成されております お客様のご利用環境

KDDI ビジネスメール 一般ユーザ用カスタマーコントロール操作ガイド Ver.2.04 Copyright , KDDI Corporation All rights reserved 1

管理サイト操作マニュアル Version.1.1. デジアナコミュニケーションズ株式会社

Joi-Tab 端末管理システム最終更新日 2015 年 3 月 13 日

ESET Internet Security V10 モニター版プログラム インストール / アンインストール手順

SciFinder エラーへの対処法

安全なウェブサイトの作り方 7 版 の内容と資料活用例 2

LiB引取依頼システム 排出事業者登録マニュアル

Webセキュリティサービス

共済会_Kねっと利用マニュアル(2018).indd

目次 5. よくある質問とその答え 会員登録関連 質問 会員登録をしましたが 認証 E メールが届きません 質問 退会したいのですが ログイン関連 質問 正しいメールアドレスやパスワードを入力しても

Transcription:

ID: AAA-BBBB-CCCC 株式会社 ********* 御中 脆弱性診断報告書 本報告書は 御社 Webサイト www.badstore.net 内 Webアプリケーションの脆弱性を診断した結果をまとめ ご報告するものです 内容には 脆弱性情報 および一部に機密に値する情報が含まれていますので 本報告書の管理 取り扱いには細心の注意を払っていただきますようお願いいたします 2017.10.26 フォームズ株式会社 開発部 ( 仮 ) K 1/42

目次 1 はじめに 1.1 診断の目的... 3 1.2 本報告書の取り扱い... 3 1.3 運営上のリスク... 3 2 診断内容 2.1 診断日程... 4 2.2 診断対象... 4 2.3 診断環境... 4 2.4 実施者... 4 2.5 診断項目... 5 3 診断結果概要 3.1 診断結果の総合評価... 6 3.2 検出された脆弱性... 7 3.3 総評... 8 4 診断結果詳細 4.A クライアントサイド... 9 4.B サーバ設定等の不備... 20 5 注意事項 5.1 HTTPS 通信について... 39 5.2 ブラウザ側の対応... 39 5.3 SSL/TLS... 39 付録 A 共通脆弱性評価システム (CVSSv3)... 40 B 参考文献... 40 C 参考ページ... 40 D 使用ツール... 41 2/42

1 はじめに 1.1 診断の目的企業のWebサイトやシステム上の弱点 ( 脆弱性 ) を狙った インターネットを通じての不正アクセス攻撃が 年々その脅威を増している 直近の例としては 交通機関や銀行などのインフラ施設のシステムに侵入し使用不能な状態に陥らせるなどしたうえで身代金 (Ransom) を要求するランサムウェアの一種 WannaCry が猛威を振るったことや Webアプリケーションフレームワークとして広く利用されている Apache Struts 2 に脆弱性が見つかり この脆弱性を狙った攻撃によって情報漏洩の被害が多数発生したことなどが挙げられる インターネットを介した情報のやり取りが高度化する中 堅牢な Webシステムの構築が求められている そのためには 構成要素に対する正しい認識と対処が不可欠である しかし OSやサーバなどのシステムソフトウェアや データベースなどのミドルウェアの脆弱性情報が公的機関から発表されることが多いのに対し Webアプリケーション自体の脆弱性は開発する企業側で調査し 正しく理解する必要がある 本診断は 開発部 Kのセキュリティ研修として行うものであり 脆弱性の発見と対処指針の策定を行い 本報告書に結果をまとめ成果物として提出することを目的とする 1.2 本報告書の取り扱い本報告書は セキュリティ研修の一環として 開発部 Kが脆弱性発見練習用 Webアプリケーション BadStore.net の脆弱性を調査した結果を エグゼクティブ サマリー ( 経営層向け報告書 ) としてまとめたものである 練習用の資料ではあるが 実際に攻撃を行った結果を掲載しているため 他の Webアプリケーションやサイトでの悪用を固く禁ずる 本資料の利用に関し 利用者もしくは第三者に損害が生じた場合であっても 本資料の利用が自己責任で 行われることを鑑み 弊社は刑事責任および民事責任の一切を負わないものとする 3/42

2 診断内容 2.1 診断日程 日程 2017 年 9 月 27 日 ~ 2017 年 10 月 16 日 時間帯 9:30 ~ 18:30 2.2 診断対象 対象 URL http://www.badstore.net/ 以下全ページ https://www.badstore.net/ 以下全ページ 対象ドメイン badstore.net IPアドレス 192.168.11.16 サービス名 練習用 Webアプリケーション BadStore.net 2.3 診断環境仮想環境構築ソフト : Oracle VirtualBox ホストOS : Windows 10 Home ゲストOS : BadStore_212(Linux version 2.4.21) サーバ : Apache 1.3.28 脆弱性自動診断ソフト : OWASP Zed Attack Proxy 脆弱性手動診断ソフト : PortSwigger Burp Suite ブラウザ : Google Chrome, Mozilla FireFox 2.4 実施者 K.S( フォームズ株式会社開発部 ( 仮 )) 4/42

2.5 診断項目 診断項目を以下に列挙する 攻撃区分 不正コマンド実行 攻撃名称 SQL インジェクション OS コマンドインジェクション クロスサイトスクリプティング (XSS) 情報開示 ディレクトリトラバーサル ディレクトリリスティング ( 強制ブラウズ ) 公開不要の機能 ファイル ディレクトリの存在エラーメッセージによる情報の露出 HTTPS 不備 HTTPS 利用時のCookieの Secure 属性不備 認証不備 脆弱なパスワードポリシ ログアウト不備過度な認証試行 ( ブルートフォース ) への対策不備パスワードリセット不備 認可不備 セッション管理不備 認可制御不備 Cookie の HttpOnly 属性不備 推測可能なセッション ID 5/42

3 診断結果概要 3.1 総合評価 I : 深刻な脆弱性が存在 総合評価について 本報告書では 診断結果詳細 および付録 A に記載の脆弱性危険度レベル 個数に応じて下記の表のように評価している 評価 S (Safe) L (Low) M (Medium) H (High) D (Dangerous) I (Immediately) 基準 脆弱性の検出はなし 危険度 Low の脆弱性が検出 危険度 Medium の脆弱性が検出 危険度 High の脆弱性が検出 危険度 High の脆弱性が複数検出 危険度 Immediately の脆弱性が検出 6/42

3.2 検出された脆弱性 3.2.1 クライアントサイドからの攻撃 区分 名称 危険度 個数 不正コマンド実行 SQLインジェクション Immidiately 4 OSコマンドインジェクション High 1 クロスサイトスクリプティング (XSS) High 1 情報開示 ディレクトリトラバーサル Medium 1 ディレクトリリスティング ( 強制ブラウズ ) Medium 1 3.2.2 サーバ設定等の不備 区分 情報開示 名称 公開不要の機能 ファイル ディレクトリの存在 エラーメッセージによる 情報の露出 HTTPS 不備 HTTPS 利用時の Cookie の Secure 属性不備 危険度 Medium High Medium Medium 認証不備脆弱なパスワードポリシ High セッション管理不備 ログアウト不備過度な認証試行 ( ブルートフォース ) への対策不備パスワードリセット不備 Cookieの HttpOnly 属性不備推測可能なセッションID Medium Medium Medium Medium Medium 7/42

3.3 総評今回の診断の結果 当該サイトにおいては パラメータのチェック漏れや入力値のサニタイジング ( 無害化 ) が実施されていないことに起因する 危険度の高い脆弱性が多数存在することが確認された 特に顕著であった脆弱性として SQLインジェクションやコマンドインジェクション等が挙げられる ログイン時に使用された場合 パスワード等の入力を回避してアカウントに侵入 個人情報の漏洩やデータ改ざん 他アカウントへの不正アクセスなどの被害につながるおそれがある また 一部ページにおいてエラー発生時に SQL 構文 サーバのバージョン等詳細な情報を表示してしまう箇所が見受けられた これらの情報から SQLインジェクション等 他の脆弱性との組み合わせによって被害の拡大を引き起こす可能性がある その他 パスワードそのものが脆弱なものが使用される ログアウト機能がないなど 設計自体の問題も数多く見受けられた いずれの脆弱性についても本報告書を参考に十分な対策を行っていただければ幸いである 8/42

4 診断結果詳細 A クライアントサイド 4.A.1 不正なコマンドの実行 4.A.1.1 SQLインジェクション 1. 危険度 Immediately : 緊急 2. CWE (Common Weakness Enumeration : 共通脆弱性タイプ一覧 ) CWE-89 SQLコマンドに含まれる特殊文字列の不適切な不活化 3. 脆弱性発生状況発生個所 No. URL パラメータ 1 2 3 4 http://www.badstore.net/cgi-bin/badstore.cgi?searchquery= http://www.badstore.net/cgi-bin/badstore.cgi?action=myaccount http://www.badstore.net/cgi-bin/badstore.cgi?action=loginregister https://www.badstore.net/cgi-bin/badstore.cgi?action=supplierlogin BODY : searchquery URL : searchquery BODY : email BODY : email BODY : email 9/42

解説 ここでは No.3 について解説する パラメータ 'email' に以下のように値を設定し送信する email=admin'-- "--" の後に半角スペースを 1 つ置く その結果 以下の画面のように 不正にアカウントにログインすることができた 本脆弱性は 入力された文字列に含まれる SQL 上の処理に関連する文字列の無効化や 取得された内容の検査を実施しない または不完全に行うことによって発生する脆弱性である 本脆弱性を利用することにより 通常ユーザ側からアクセスできないデータベースからの情報の取得や 不正ログインを行うことが可能になる 4. 本脆弱性による脅威本脆弱性により 管理者権限への不正ログイン ユーザ情報の不正取得 書き換えなどが行われ 特に管理者権限にアクセスされた場合には売り上げ情報確認 パスワード初期化など ほぼ全てのデータにアクセスされる可能性がある 5. 本脆弱性への対策 SQL 文を 文字列の直接組み立てによって構成するのではなく プレースホルダ バインド機構を使用し あらかじめ実行可能なSQL 文を組み立てる方式にする バージョンが古いなどの事由からそれらの対策が困難な場合は 実行結果に含まれる値をチェックし 不正な文字列が含まれている もしくは型が合わなければればエラー処理やサニタイジング ( 無害化 ) を行う という方式でもよい 10/42

4.A.1.2 OSコマンドインジェクション 1. 危険度 High : 重要 2. CWE CWE-78 OSコマンドに含まれる特殊文字列の不適切な不活化 3. 脆弱性発生状況発生個所 No. URL パラメータ 1 https://www.badstore.net/cgi-bin/badstore.cgi?action=supplierportal BODY : viewfilename 解説 パラメータ 'viewfilename' に以下のように値を設定し送信する../../../../../../bin/sleep 20 この場合は レスポンスが 20 秒遅れて返ってくる ==> 本脆弱性は 攻撃者がOSへの直接アクセス権をもたない Webアプリケーション等の環境において 入力文字列の検査を実施しない もしくは不完全に行うことによって発生し 攻撃者によって予期しないOS 上のコマンドを実行されるおそれがある プロセスの権限を適切に設定していない場合 本脆弱性の利用により 上位権限で使用可能なコマンドを使用した攻撃が外部から行われ ユーザ権限の変更や設定ファイルの窃視など 被害が拡大する可能性がある 11/42

4. 本脆弱性による脅威本 Webアプリケーション上では システムのシャットダウンや データ消去等に係るコマンドは実行できなかったものの ホスト名やIPアドレスの設定を閲覧したり レスポンスを遅らせるといったコマンドを実行することができた 本脆弱性では 権限設定が不適切な場合 システムのシャットダウンやファイル消去 内部設定ファイルの閲覧等が行われ サービスへの直接的な被害が発生する可能性がある 5. 本脆弱性への対策入力文字列のエスケープ ( 無効化 ) や サーバ側での入力文字列の検査 あるいは直接 OS 上のコマンドを呼び出す関数を使用しないファイルの呼び出し方法を用いる システムの関係でOSコマンドの呼び出しが必要な場合は シェル (OSとユーザの間にあるコマンド実行機構 ) を経由せずにコマンドを呼び出す関数を使用する 12/42

4.A.1.3 クロスサイトスクリプティング (Cross(X) Site Scripting : XSS) 1. 危険度 High : 重要 2. CWE CWE-79 Web ページ生成中入力値の不適切な不活化 3. 脆弱性発生状況 発生個所 No. URL パラメータ 1 2 http://www.badstore.net/cgi-bin/badstore.cgi?action=guestbook https://www.badstore.net/cgi-bin/badstore.cgi?action=supplierportal BODY : name BODY : email BODY : comments BODY : viewfilename 13/42

解説 No.1 について パラメータ 'name','email','comments' のいずれかに以下のように値を設定し送信する name=%3cscript%3ealert%28%29%3b%3c%2fscript%3e email=%3cscript%3ealert%28%29%3b%3c%2fscript%3e comments=%3cscript%3ealert%28%29%3b%3c%2fscript%3e %3Cscript%3Ealert%28%29%3B%3C%2Fscript%3E : <script>alert();</script> この例では 以下のようにアラートが表示される ==> No.2 について 当該ページ内にあるファイルアップロード機能を利用し 以下の内容を記述した 'sample.txt' ファイルをアップロードする <script>alert();</script> アップロード後 再度当該ページにログインし パラメータ 'viewfilename' に以下の値を設定し送信する sample.txt 14/42

この例においても 以下のようにアラートが表示される ==> 4. 本脆弱性による脅威本脆弱性により 予期しないページへの遷移や クッキー値の窃取 偽のフォームによるフィッシングなど Webアプリケーションの機能を悪用して他の利用者に被害を与えることが可能になる 例として 掲示板などコメントが表示されるページでは コメント中にスクリプトが埋め込まれた場合 当該ページを見ただけでスクリプトによる被害が発生してしまい 信用を大きく損なうことになる 5. 本脆弱性への対策 HTMLの特殊文字列をエスケープ ( 無効化 ) し そのうえで入力値の検証や クッキーにスクリプトでアクセスできないようにするHttpOnly 属性を設定する方法が効果的である また 文字エンコードの差異を利用したXSS も存在するため HTTPレスポンスにエンコーディングを明示することで ブラウザ-Webアプリケーション間のエンコード差異を抑えるのも有効である 15/42

4.A.2 情報開示 4.A.2.1 ディレクトリトラバーサル ( パストラバーサル ) 1. 危険度 Medium : 警告 2. CWE CWE-22 アクセス制限されたディレクトリを参照するパス名の不適切な制限 3. 脆弱性発生状況発生個所 No. URL パラメータ 1 https://www.badstore.net/cgi-bin/badstore.cgi?action=supplierportal 解説 パラメータ 'viewfilename' に以下のように値を設定し送信する../../../../../../etc/hosts この例では 以下のようにホスト名や IP アドレスの設定が表示される ==> 16/42

4. 本脆弱性による脅威外部からのアクセス権限のないファイルやフォルダにアクセスされ サーバの設定情報やパスワードといった情報を盗み見られるおそれがある また それらの情報をもとにサーバに不正にログインされるなど攻撃を受ける可能性がある 5. 本脆弱性への対策パス名の入力文字列をチェックし ファイル名以外の特殊文字列が入っている場合には処理を必ず失敗させる 上位のフォルダや指定された形式以外のファイルへの外部からのアクセスを制限する などの方法がある 17/42

4.A.2.2 ディレクトリリスティング インデクシング 1. 危険度 Medium : 警告 2. CWE CWE-548 ディレクトリリスト化による情報の曝露 3. 脆弱性発生状況発生個所 No. URL パラメータ 1 http://www.badstore.net/images/ - 2 http://www.badstore.net/ws/ - 解説 以下の URL を直接入力する http://www.badstore.net/images/ この例では 以下のようにフォルダの中身が表示される 18/42

4. 本脆弱性による脅威本脆弱性により 通常は直接アクセスできないファイルを閲覧される可能性がある また 仮に機密情報を含むファイルが置かれている場合は情報漏洩に 5. 本脆弱性への対策本脆弱性は サーバーの設定に起因する脆弱性であるため 設定ファイルの内容を編集することで抑制できる 具体的な対策例を下記に示す 'httpd.conf' ファイルを編集し以下の内容を追記する Alias /images/ "/usr/local/apache/htdocs/images" <Directory "/usr/local/apache/htdocs/images"> Option FollowSymLinks Multiviews AllowOverride None Order allow,deny Allow from all </Directory> 追記後 httpd を再起動する 19/42

B サーバ設定等の不備 4.B.1 情報開示 4.B.1.1 公開不要の機能 ファイル ディレクトリの存在 1. 危険度 Medium : 警告 2. CWE CWE-200 情報開示 3. 脆弱性発生状況発生個所 No. URL, パス パラメータ 1 http://www.badstore.net/ws/ 2 /usr/local/apache/cgi-bin/badstore.old 3 /usr/local/apache/cgi-bin/test.cgi 解説古いバージョンのファイルや 接続テスト用にセッション ID 等を出力するファイル データベースの検索に使用していると思われるjavaやperl のファイルを発見した OSコマンドインジェクションやセッションの乗っ取りなどに悪用されるおそれがあるため 速やかな削除が必要である 左 : http://www.badstore.net/ws/ 右 : http://www.badstore.net/cgi-bin/test.cgi 20/42

4.B.1.2 エラーメッセージによる情報の露出 1. 危険度 High : 重要 2. CWE CWE-209 エラーメッセージを通じた情報の露出 3. 脆弱性発生状況発生個所 No. URL, パス 1 パラメータ http://www.badstore.net/cgi-bin/badstore.cgi?searchquery=&action=qsearch 解説 パターン 1 以下の値 ( 存在しない商品番号 ) を searchquery に入力し送信する xxxx 結果は以下の通りになる データベース中に商品が存在しない旨のエラーメッセージであるが 処理に使用していると思われる SQL 文まで 出力している 21/42

パターン 2 コンマ ( ' ) を searchquery に入力し送信する 結果は以下の通りになる 入力文字列をそのまま SQL 文に組み込んでおり 不完全な SQL 文が作られることでソフトウェアエラーが発生している また 適切にエラーをハンドリングできていないため ファイルパスやエラー行の情報など 詳細なエラーまで 出力されている 22/42

パターン 3 BurpSuite の Repeater などを用いて searchquery に以下の値を入力し送信する %02 等の特殊文字 結果は以下の通りになる 特殊文字を入力されることで Parserで解釈不能になることによってソフトウェアエラーが発生している また エラーのハンドリングが適切でないため ファイルパス等の詳細な情報までエラーメッセージとして出力されている いずれのパターンにおいてもエラーを適切にハンドルできておらず 詳細なメッセージを出力している こうして出力された内容がSQLインジェクションや OSインジェクションに用いられるおそれがある 4. 本脆弱性への対策本脆弱性は エラーを適切にハンドルしていないため 詳細部分を隠蔽できていないことにより発生している エラーを検知した場合には エラーが発生した旨のみをユーザに通知し 詳細なエラーはログに記録するなど外部から詳細を確認できないようにしたほうがよい 23/42

4.B.2 設定 設計の不備 4.B.2.1 HTTPS 不備 1. 危険度 Medium : 警告 2. CWE CWE-522 不十分な資格情報の保護 3. 脆弱性発生状況発生個所 No. URL パラメータ 1 2 http://www.badstore.net/cgi-bin/badstore.cgi?action=loginregister https://www.badstore.net/cgi-bin/badstore.cgi?action=supplierlogin 解説 No.1について本ページは ユーザログイン画面であるが HTTPSによる保護がなされていないため メールアドレスやパスワード等は全て平文での受け渡しとなる 平文での通信のため 盗聴や改竄にあうおそれがある また 大半のブラウザにおいて 図のような警告が出る 24/42

No.2について本ページは 業者専用のログインページとなっている アクセスした際にはHTTPSによる保護が行われているが URLの "https" を "http" に変えることができるため こちらも平文での通信が可能となっている フィッシングメール等により httpから始まるアドレスにアクセスさせられることで メールアドレスやパスワードを盗聴 改竄されるおそれがある 左 : HTTPS, 右 : HTTP で通信 ==> 4. 本脆弱性への対策 HTTPS での通信が必要なページでは HTTPS から始まる URL にリダイレクトさせるなど HTTP での通信をさせないように する 25/42

4.B.2.2 HTTPS 利用時の CookieのSecure 属性不備 1. 危険度 Medium : 警告 2. CWE CWE-614 HTTPSセッションにおける機微 CookieのSecure 属性不備 3. 脆弱性発生状況発生個所 No. URL パラメータ 1 https://www.badstore.net/cgi-bin/badstore.cgi?action=loginresister 解説 ユーザログイン画面の URL を https にしてアクセスし ログイン処理を行う F12 キー等で Cookie 情報を閲覧すると "Secure" の値が "false ( 偽 )" となっている CookieのSecure 属性が有効でない場合 罠サイト等により HTTPS 通信の途上でHTTP 通信をさせられる攻撃にあった場合 リクエスト中のCookie を盗聴されるおそれがある 盗聴されたCookieはセッションハイジャック ( 乗っ取り ) に利用され なりすまし等の被害を引き起こすおそれがある 26/42

4. 本脆弱性への対策 badstore.cgi に以下のようにコードを書き足す ### Set SSO Cookie ### ~ print "Set-Cookie: $cartcookie; secure\n"; ~ ^^^^^^ "secure" を付け足す 27/42

4.B.2.3 脆弱なパスワードポリシ 1. 危険度 High : 警告 2. CWE CWE-521 脆弱なパスワード要求 3. 脆弱性発生状況発生個所 No. URL パラメータ 1 http://www.badstore.net/cgi-bin/badstore.cgi?action=loginregister 解説 ユーザログイン画面からユーザ登録処理を行う ユーザ名 E メールアドレスを入力したあと パスワードを次のように入力し 登録ボタンをクリックする welcome 結果は以下のように アカウントの作成に成功する 脆弱なパスワードを使用している場合 パスワード辞書攻撃等で突破されやすくなり 不正ログイン されてしまうおそれがある ==> 28/42

4. 本脆弱性への対策パスワード登録時に文字種と文字列長をチェックし 英大文字 英小文字 数字を全て含めた 8 文字以上の文字列でない場合は再度パスワードを入力させるようにする なお 文字種と文字列長によるパスワードの個数は以下の表のようになる 文字種 4 5 6 7 8 数字単体 1 万 10 万 100 万 1000 万 英小文字単体 英大文字単体英小 + 数字 英大 + 数字 45 万 1188 万 3 億 80 億 167 万 6046 万 21 億 783 億 英数字 1477 万 9.1 億 568 億 3.5 兆 29/42

4.B.2.4 ログアウト不備 1. 危険度 Medium : 警告 2. CWE CWE-613 不十分なセッションの無効化 3. 脆弱性発生状況発生個所 No. URL パラメータ 1 https://www.badstore.net/ 以下 解説全画面にログアウト用のリンクやボタンがなく ブラウザを閉じる以外にログアウトする手段がない そのためユーザはセッション IDを明示的に破棄することができない また 一般ユーザのログインが HTTP で行われることにより セッション IDを盗聴されるおそれがあり セッションハイジャック等に悪用されるおそれがある 4. 本脆弱性への対策ログアウト機能を実装し ログアウト処理の際にセッション IDをデータベースから削除するようにする 30/42

4.B.2.5 過度な認証試行 ( ブルートフォース ) への対策不備 1. 危険度 Medium : 警告 2. CWE CWE-307 過度な認証試行への不適切な制限 3. 脆弱性発生状況発生個所 No. URL パラメータ 1 2 http://www.badstore.net/cgi-bin/badstore.cgi?action=loginregister https://www.badstore.net/cgi-bin/badstore.cgi?action=supplierlogin 解説パスワードもしくはメールアドレスの入力を間違った場合 その場で再度入力させるようにするべきであるが 入力に失敗するたびに再度ログイン画面にアクセスする必要があり 非常に使い勝手が悪くなっている また 10 回以上メールアドレスやパスワードの入力を間違った場合は ロックアウト処理 ( 一定期間ログインできない状態にすること ) を行うべきであるが 本ページではそのような処理がなされていないため ツール等でランダムに値を入力され続けた場合 ログインが成功するおそれがある 正規のログイン 悪意のあるログイン 4. 本脆弱性への対策 同一メールアドレスでのログイン試行が 10 回程度失敗した場合 当該アカウントを一定期間停止する処置をとる ただし期間を長くしすぎると正規ユーザが困惑するおそれががあるため 長くても 1 日程度に留めること 31/42

4.B.2.6 パスワードリセット不備 1. 危険度 Medium : 警告 2. CWE CWE-620 検証されないパスワードの変更 3. 脆弱性発生状況発生個所 No. URL パラメータ 1 2 http://www.badstore.net/cgi-bin/badstore.cgi?action=myaccount http://www.badstore.net/cgi-bin/badstore.cgi?action=loginregister 解説 No.1のページでパスワードの初期化を行うことができるが パスワードは一律で "Welcome" という文字列に初期化される No.2のページでログインを行う際には この初期化されたパスワードがそのまま使用可能になっている このままパスワードを変更せずに利用を続けるユーザがいた場合 パスワードは一律で "Welcome" で初期化されているため 悪意あるユーザが他ユーザのメールアドレスを入手している場合 そのメールアドレスで不正にログインされるおそれがある また 秘密の質問の回答が選択式になっているため 同一メールアドレスで初期化を最大で選択肢の数だけ試行すれば 他アカウントのパスワードであっても初期化することができ こちらも不正ログインされるおそれがある ==> 32/42

4. 本脆弱性への対策 パスワードをリセットした際には 必ずユーザにメールで通知すること ( 不正なリセットに対する対策 ) パスワードリセットを行った後の初回ログイン時に パスワード変更画面を出してユーザにパスワードを変更させる なお パスワード変更の際には 先述のパスワードポリシ強化策に則ったパスワードを入力させるよう 文字種や文字列長のチェックを行うこと また 初期化の際に指定する秘密の質問については 質問内容は選択式 回答はテキストでの入力にすること 33/42

4.B.2.7 CookieのHttpOnly 属性不備 1. 危険度 Medium : 警告 2. CWE CWE-1004 HttpOnlyタグのない機微 Cookie 3. 脆弱性発生状況発生個所 No. URL パラメータ 1 http://www.badstore.net/ 以下 解説 ログインページ (http://badstore.net/badstore.cgi?action=loginregister) からログイン後 ブラウザの 開発者ツールを F12 キーなどで開き クッキーの内容を確認する HttpOnly: の項を見ると 値が false ( 偽 ) となっているため HttpOnly 属性が無効になっていることが分かる この属性は JavaScriptからのクッキーの読出しを禁止するために付与される属性であり この属性が無効になっていると XSSによりセッション IDが盗まれるおそれがある 34/42

4. 本脆弱性への対策 badstore.cgi に以下のようにコードを書き足す ### Set SSO Cookie ### ~ print "Set-Cookie: $cartcookie; HttpOnly\n"; ~ ^^^^^^^^ "HttpOnly" を付け足す 35/42

4.B.2.8 推測可能なセッション ID 1. 危険度 Medium : 警告 2. CWE CWE-334 狭小なランダム値域 3. 脆弱性発生状況発生個所 No. URL パラメータ 1 http://www.badstore.nte/ 以下 解説 ログイン後 ブラウザの開発者ツールを F12 キーなどで開き クッキーの内容を確認する SSOid の項を見るとクッキー値が表示されているが この値を詳しく調べてみる c2ftcgxlqhnhbxbszs5jb206nzzhmje3m2jlnjm5mzl1ngu3mmzmytrknmrmmtazmge 62FtcGxl%0AOlU%3D%0A 36/42

一見すると複雑な文字列に見えるが これを診断ツールのデコーダ ( 解読 ) 機能を用いて解読すると sample@sample.com:76a2173be6393254e72ffa4d6df1030a:sample:u * "%0A" は改行 "%3D" は '=' を表すエスケープ表記であるため それぞれ通常の文字に置き換えてデコードを行っている メールアドレスやユーザ名らしき文字列などが ':' 区切りで入っている文字列であると分かる また 別のユーザ (sample1) としてログイン後 同様にクッキーの内容を確認しデコードしてみると sample1@sample.com:51cb61ce9da718a931d5b0dbfe4240be:sample1:u 先のユーザ "sample" のものと同様の文字列を得ることができた ':' で区切られた 2 番目の文字列を比較してみると sample : 76a2173be6393254e72ffa4d6df1030a sample1 : 51cb61ce9da718a931d5b0dbfe4240be 両者とも 0~9,a~f からなる固定長の文字列であることが分かる ユーザ "sample" のパスワードは "passwd", "sample1" のパスワードは "okcorral" と設定しているため これらの文字列を MD5 というアルゴリズムを用いてハッシュ ( 暗号化 ) した値を求め 比較してみる "passwd" sample -> 76a2173be6393254e72ffa4d6df1030a : 76a2173be6393254e72ffa4d6df1030a "okcorral" -> 51cb61ce9da718a931d5b0dbfe4240be sample1 : 51cb61ce9da718a931d5b0dbfe4240be この結果から SSOid に設定されているセッション ID が メールアドレスやパスワードからなる文字列で ことが判明した このように 第三者に推測されうる不適切な生成方法でセッション ID を生成していると セッション ハイジャック ( セッションの乗っ取り ) 等の被害に遭う可能性がある 37/42

4. 本脆弱性への対策セッションIDを生成する際に 安全性の高い乱数を生成する機構 ( 暗号論的疑似乱数生成器 ) を用いて生成された乱数を組み合わせて生成する また ユーザIDやパスワードはセッション IDとは別途安全な方法 (HTTPSを用いて盗聴不能にするなど) で送信し 必ず内容をサーバ側でチェックするようにする 38/42

5 注意事項 5.1 HTTPS 通信について アカウント情報等の重要な情報を HTTP 通信で送信してしまうと 情報が暗号化されないため 通信経路上で 攻撃者に盗聴されるおそれがある そのため 重要な情報の通信を行う際には HTTPS (HTTP over SSL/TLS) 通信の利用を推奨する HTTPS の実装については以下の点に留意すること 1. HTTP 通信の制限 HTTPS 通信を行うページでは 必ず HTTPS で通信するように HTTP から HTTPS への自動リダイレクト等の 設定を行うこと 攻撃者により HTTP での通信に誘導された場合に データが盗聴される危険性を未然に防ぐことができる 2. Cookie の Secure 属性 HTTPS 通信を利用するページ内でセッション ( ログイン等の状態 ) の管理を行いたい場合には Cookie( セッションを 管理するプロトコル もしくはブラウザに一時的に保存される情報 ) の Secure 属性を有効にする この設定を行い当該 Cookie を HTTPS 通信以外で送信させないことで セッション ID の盗聴を防ぐことができる 3. セッション ID HTTP ページと HTTPS ページにまたがってセッション管理を行う際には 前者に Secure 属性を付与しない Cookie を 使用し 後者に Secure 属性を付与した Cookie を使用すること (HTTP 通信では Secure 属性付き Cookie を利用できないため ) 5.2 ブラウザ側の対応 現在 GoogleChrome,InternetExplorer をはじめとした主要ブラウザのほとんどで HTTPS 通信が可能である なお Chrome に関しては 10 月 17 日リリースのバージョン 62 において HTTPS を使用していない一部ページ にアクセスすると 安全でない (HTTPS でない ) 旨の表示が URL 欄に出現するようになった 5.3 SSL/TLS HTTPS における通信の暗号化を行っているプロトコルを SSL (Secure Socket Layer) もしくは TLS (Transport Layer Security) という TLS は SSL を元に開発されたプロトコルであり 最新バージョンは 1.2 となっている なお SSL についてはバージョン 3 が 2014 年まで使われていたが POODLE という仕様上の脆弱性が発見 されたため 現在はほとんどのサーバが SSL から TLS へと移行している また TLS については 現在バージョン 1.3 が IETF (Internet Engineering Task Force) にて検討されている 39/42

付録 A 共通脆弱性評価システム (CVSSv3 : Common Vulnerability Scoring System version 3) 本報告書においては CVSSv3 による脆弱性の評価値 および脆弱性のレベル区分を元に危険度を評価している 以下の表は IPA 共通脆弱性評価システム CVSS v3 概説 より引用 深刻度 スコア 緊急 9.0~10.0 重要 7.0~8.9 警告 4.0~6.9 注意 0.1~3.9 なし 0 スコアは 攻撃の容易さ ( 攻撃容易性 ) システムが受ける影響 ( 影響度 ) 影響の及ぶ範囲 ( スコープ ) などを基準と 比較した値を以下の数式にかけて算出する スコープ変更 ( 影響が直接関連のないアプリケーションや機能などに及ぶ ) なし スコア = (( 影響度 + 攻撃容易性 ),10 のうち最小値 ) を切り上げ スコープ変更あり スコア = ((1.08*( 影響度 + 攻撃容易性 ), 10 のうち最小値 ) を切り上げ 40/42

B 参考文献 著者, タイトル 上野宣 Web セキュリティ担当者のための 脆弱性診断スタートガイド 徳丸浩 体系的に学ぶ 安全な Web アプリケーションの作り方 IPA 共通脆弱性評価システム (CVSSv3) 概説 上野宣 Web アプリケーション 脆弱性診断ガイドライン ( 第 1.0 版 ) Symantec ウェブアプリケーション 脆弱性診断報告書 Computer Security Technology Limited Web Application Security Assessment Report URL/ 出版元, 発行年 翔泳社, 2016 ソフトバンククリエイティブ, 2011 https://www.ipa.go.jp /security/vuln/cvssv3.html, 2015 https://github.com/ueno1000 /WebAppPentestGuidelines/blob/master /WebAppPentestGuidelines.pdf, 2017 https://www.symantec.com/content/ja/jp /enterprise/other_resources /webapp_or_report_sample.pdf, 不詳 https://www.cstl.com/cst/penetration-test /CST-Web-Application-Testing-Report.pdf, 2012 C 参考ページ タイトル JVN ipedia 脆弱性対策情報データベース CWE Common Weakness Enumeration Weblio 英和辞典 和英辞典 英辞郎 on the WEB: アルク とほほの Cookie 入門 Markdown 記法チートシート - Qiita URL http://jvndb.jvn.jp/ https://cwe.mitre.org/index.html http://ejje.weblio.jp/ http://eow.alc.co.jp/ http://www.tohoho-web.com/wwwcook.htm https://qiita.com/qiita/items/c686397e4a0f4f11683d 41/42

D 使用ツール 作成者 OWASP PortSwigger Web Security 名称 OWASP Zed Attack Proxy Burp Suite URL https://github.com/zaproxy/zaproxy/releases /download/2.6.0/zap_2_6_0_windows.exe https://portswigger.net/burp/releases/download? product=free&version=1.7.27&type=windowsx64 不詳 BadStore.net テキスト記載のため省略 2012-2017 Formzu Inc. 42/42