Webアプリケーション診断

Webサイトの不正アクセス被害や情報漏えいを未然に防ぐ脆弱性診断

サービス概要

Webアプリケーションに潜在するSQLインジェクションやクロスサイトスクリプティングなどの脆弱性を見つけ出す診断です。
ECサイトやSNSなど重要な個人情報を扱うWebサービスに欠かせない、セキュアなシステム構築を支援します。
ツールのみに依存した診断手法ではなく、ロジック上の問題点、流行の技術の利用に起因する問題など、セキュリティエンジニアが攻撃者の観点でツールと手動を複合した診断を行い脆弱性を見つけ出します。診断後も、発見した脆弱性の詳細と再現手順についてレポート提出し、該当するリスクやベストな対処方法についてご説明いたします。

診断フロー

  • STEP1

    Webアプリケーション診断事前準備

    Webアプリケーションの構成把握と診断対象範囲の確定

    Webアプリケーションの診断対象範囲を明示頂いた後に、必要な工数のお見積を行います。

    1. Webアプリケーションの構成をヒアリング

      仕様書や担当者様へのヒアリング、実際のアプリケーションへのアクセスによりシステム構成を把握し、診断対象となるリクエスト数を算出します。

    2. Webアプリケーション診断実施方法の策定及びお見積り

      インターネット経由で実施するリモート診断と、セキュリティエンジニアが対象アプリケーションへアクセス可能な場所へ伺って診断するオンサイト診断のいずれかを選択して頂きます。選択された結果とリクエスト単位に応じてお見積りをお出しします。

  • STEP2

    Webアプリケーション診断

    ツールおよび手動でのWebアプリケーション診断

    ツールでの診断を行いつつ、攻撃者の観点でツールでは検出不可能な診断を手動で実施します。

    1. ツールによる脆弱性診断

      ツールが得意としている診断対象への網羅的な診断を行い、設定不備やセキュリティ対策漏れによる脆弱性を検出します。

    2. 対象システムに潜在する脆弱性を想定した手動診断

      ツールの検出結果の整合性をセキュリティエンジニアの目で確認します。ツールでは検出出来ない診断項目を攻撃者の観点からすべて手動で確認します。 個別では些細な脆弱性だとしても、合わさることにより大きなセキュリティリスクに繋がる場合があります。

  • STEP3

    Webアプリケーション診断報告及び改善案提出

    診断実施結果報告

    対象システムのリスク評価、エグゼクティブサマリ及び検出された脆弱性の詳細をご報告します。

    1. 総合評価

      診断結果の概要および脆弱性が存在した場合は、それがビジネスに与えうる影響についてご報告します。また事業運営の観点から推奨される施策等についても提案させて頂きます。

    2. 脆弱性の詳細

      発見した脆弱性の詳細や再現手順等をご報告します。それらによるリスクや推奨する対策方法についてもご説明します。

診断項目

入出力処理

クロスサイトスクリプティング
パラメータを送信しているリクエストについて、各パラメータにタグ、JavaScript挿入し、レスポンスでそのまま表示されないか確認します。
SQLインジェクション
パラメータを送信しているリクエストについて、各パラメータにSQL文として特殊な働きをする文字を入力して、レスポンスを確認します。
コマンドインジェクション
パラメータを送信しているリクエストについて、各パラメータにset、cd、dirなど操作コマンドを入力し、レスポンスの変化を確認します。
ディレクトリトラバーサル
パラメータを送信しているリクエストについて、各パラメータに/../../../../etc/hostsなどディレクトリを遡るような文字を入力し、レスポンスの変化を確認します。
ファイルアップロード
ファイルアップロード機能において、指定されている以外の形式でアップロードできないか確認(拡張子を偽装するなど)。また、アップロードしたファイルにアクセス可能な場合、スクリプトやプログラムを記述したものをアップロードし、実行できないか確認します。
HTTPヘッダインジェクション
パラメータを送信しているリクエストで、パラメータ入力値がレスポンスヘッダに表示されるものについて、%0D%0Aの改行文字を入力し、改行が有効でないか確認します。
フィッシング詐欺サイトへの誘導
パラメータを送信しているリクエストの各パラメータについて、google、yahooなど他ウェブサイトのURLを入力し、そのURLにレスポンスで遷移しないか確認します。
パラメータ改ざん
送信パラメータ内に価格や会員ポイント、ポイントの増減値が含まれている場合に、値をマイナスなどに変更してみて、実行結果を確認します。
メールの第三者中継
パラメータを送信しているリクエストの各パラメータについて、改行文字+Mailヘッダを入力し、送信されてくるメールや画面のレスポンスを確認します。

認証

ログインフォームに関する調査
パスワードフィールドのマスクが有効か無効か確認します。
ログインエラーメッセージの調査
ログインエラーメッセージからユーザIDやパスワードが推測できないか確認します。例:正しいIDと間違ったパスワードでログインした際のエラーメッセージと、ID,パスワードともに間違っている場合のエラーメッセージを比べます。
ログイン・個人情報の送受信に関する調査
ログイン情報、個人情報送受信時の通信を確認します。
アカウントロック機能
アカウントの発行が容易、複数ある場合は実際にパスワードを複数回間違えて、ロックアウトされるかどうか確認します。
ログアウト機能
ログイン後にログアウトを明示的に実行する手段があるかどうか確認します。
認証の回避
ログイン後のページについては、そのページを表示するためのリクエストを見ログインのブラウザから送信し、ページが表示されないか確認します。

認可

権限昇格
管理者アカウント、一般アカウントが存在する場合に、管理者権限での操作を一般アカウントでも実行可能でないか確認します。管理者での操作実行リクエストを一般アカウントでログイン中のブラウザから送信し、実行可能でないか確認します。
権限のない情報へのアクセス
送信パラメータ中にユーザIDやグループID、他にもアクセス先データを示すユニークな値が含まれている際に、その値を権限の無いデータのものに変更するなどして、権限の無いデータを閲覧、変更できないか確認します。

セッション管理

Cookieのsecure属性
SSLを使用するWebサイトの場合、セッションや重要な情報を持つCookieにsecure属性が付与されているか確認します。
Cookieの有効期限
セッションIDや重要な情報を持つCookieが長期間保持される状態になっていないか確認します。
セッションIDのランダム性確認
Cookieやパラメータに含まれるセッションIDについて、発行される値に一定の条件が無いか確認します。
セッション固定
ログイン操作時に新たにセッションIDが発行されているか確認します。また、発行されていた場合でも、旧IDにてログイン状態にならないか確認します。
セッションの強制指定
セッション固定の問題が存在している場合に、PHPSESSID、jsessionidといったセッションID送信用のパラメータに、任意のセッションIDを指定したリンク、リクエストを作成し、そのリンクやリクエストを他ユーザに送信させることで任意のセッションIDをそのユーザに使用させることができないか確認します。
クロスサイトリクエストフォージェリ
ログイン情報変更、パスワード変更、退会、決済処理といった重要な操作について、特定のリクエストを送信させることで実行できてしまわないか確認します。

Webサーバ設定

許可されているHTTPメソッド
スキャン結果より許可されているメソッドを確認します。またはOPTIONSメソッドでリクエストすることにより、サポートしているメソッドを確認します。
サーバエラーメッセージ
ウェブアプリケーション側が想定していないような文字を入力した際に、ソースコードの一部やシステム情報などの情報を含んだエラーメッセージが表示されないか確認します。ウェブアプリケーションへアクセスした際に、レスポンスヘッダやエラーメッセージから使用しているソフトウェアの情報が得られないか確認します。
システム情報の開示
また、バージョン情報が得られた場合は、そのバージョンに脆弱性が存在していないか調査します。

Web 2.0

Flashコンテンツの脆弱性
crossdomain.xmlが存在していないか確認し、存在している場合は中身を見て、不特定多数のドメインに対してアクセスが許可されていないか確認します。
Ajaxコンテンツの脆弱性
パラメータを送信しているAjaxからのリクエストについて、各パラメータにタグ、JavaScript挿入し、レスポンスでそのまま表示されないか確認します。

一般的な脆弱性

既知のソフトウェア脆弱性
バージョン情報、ソフトウェア情報が得られた場合にそのソフトウェアについて脆弱性がないか調査します。
強制ブラウジング
manual、icons、info.phpなどリンクが無くても直接ファイルを指定してアクセスを試み、内容が表示されないか確認します。
また、プログラムの拡張子を.bakに変更して確認も行います。
ディレクトリリスティング
ディレクトリ/aaa/などでURLを区切りアクセスして、ディレクトリ一覧が表示されないか確認します。

報告書サンプル

診断結果レポートでは発見された脆弱性が、クライアント企業にて迅速に修正できるように具体的な内容・再現方法・リスク・対策方法を報告します。
※お問い合わせページよりサンプル請求をご希望ください。2営業日以内に担当者より送付させていただきます。

CONTACT

お気軽にご相談ください

Webサービスやアプリにおけるセキュリティ上の問題点を解消し、収益の最大化を実現する相談役としてぜひお気軽にご連絡ください。
経験豊富なセキュリティエンジニアが診断を行います。