GENZ, Inc.

Web公開・アプリ運用向け Webアプリケーションの脆弱性診断

入力値の検証漏れ、権限の確認漏れ、公開済みの既知の脆弱性が残っていないかを、公開中の画面とフォームを対象に一つずつ確かめます。

支援事例

支援実績5,000件以上

支援実績を示す企業ロゴ 01
支援実績を示す企業ロゴ 02
支援実績を示す企業ロゴ 03
支援実績を示す企業ロゴ 04
支援実績を示す企業ロゴ 05
支援実績を示す企業ロゴ 06
支援実績を示す企業ロゴ 07
支援実績を示す企業ロゴ 08
支援実績を示す企業ロゴ 09
支援実績を示す企業ロゴ 10
支援実績を示す企業ロゴ 11
支援実績を示す企業ロゴ 12
支援実績を示す企業ロゴ 13

この記事はソフトウェアテストの専門家が監修しています

監修枡井 愼治株式会社GENZ 代表取締役

GENZは創業以来、5,000件以上のソフトウェアテスト・第三者検証を手がけてきたプロフェッショナルです。品質に関する課題やお悩みに、真摯に寄り添います。

代表取締役 枡井 愼治 株式会社GENZ 〒101-0062 東京都千代田区神田駿河台2-3-11 ヒューリック御茶ノ水ビル3F TEL:03-5244-4711
01 ISSUES

Webアプリケーションでよくあるセキュリティ不備

リリースと改修を重ねたWebアプリケーションでは、不備は画面・入力フォーム・権限まわりに集まります。不安を漠然と抱えたままにせず、公開している画面で起きているセキュリティ不備を、典型的な5つの型に整理します。

入力値の検証不備で、データベースの情報を抜き出される

入力フォームやURLパラメータの値を、そのままデータベースへの命令に組み立てると、意図しない命令として解釈されます。実装に起因する不備です。

入力値の検証

画面に埋め込まれたスクリプトが、他の利用者の環境で実行される

投稿内容や検索語が、記号を置き換えないまま画面へ出力されると、文字列ではなくスクリプトとして動きます。他の利用者のブラウザで実行されます。

画面出力の処理

ログイン後の権限チェックが漏れ、他人の情報まで閲覧できる

画面のURLや帳票の番号を書き換えたときに、閲覧権限があるかを確かめていないと、他の利用者や他社の情報まで届きます。設計に起因する不備です。

閲覧範囲の制御

セッション管理の不備で、ログイン状態を乗っ取られる

セッションIDが推測できる値だったり、ログイン前後で同じ値のままだったりすると、ログイン状態を本人以外に使われます。Cookieの属性も確かめます。

セッション管理

フレームワークの既知の脆弱性を放置し、突かれる

フレームワークやライブラリは、導入時に問題がなくても、あとから脆弱性が公表されます。環境の変化に起因する不備で、版を追う管理が欠かせません。

構成部品の版管理
02 RISK

脆弱性が残存することで起きる問題

ここまでの不備は、システム内部の話では収まりません。情報の機密性が損なわれた時点から、取引先との関係や、事業を続けられるかまで影響が及びます。

倉庫のバックヤードで担当者が在庫回収や棚卸差異の対応に追われている実写画像。
03 REVIEW

診断時におさえるべきセキュリティ観点

脆弱性には、実装の書き方に起因するものと、設計の考え方に起因するものがあります。自動の一括検査では後者まで届かないため、画面と機能の作りに即した5つの観点で読み解きます。

データベースへの命令の改変を防ぐ

入力フォームとデータベース連携部分の検証

入力値の型・長さ・記号の扱いを変えて送り、データベースへの命令が意図しない形に変わらないかを確かめます。画面一覧と機能仕様を読み、受け取った値がどこまで届く作りかを押さえたうえで検証します。

確認する資料
  • 画面一覧
  • 機能仕様
画面上でのスクリプト実行を防ぐ

画面出力のエスケープ処理と埋め込み実行の検証

入力された値が画面へ出力されるまでに、記号がどう置き換えられるかを確認します。画面遷移図をたどって入力から表示までの経路を洗い出し、スクリプトとして実行される余地がないかを検証します。

確認する資料
  • 画面遷移図
他人や他社の情報への到達を防ぐ

ログイン後の権限制御と他者情報への到達可否の検証

権限一覧とアカウント設計を読み、役割ごとに見えてよい範囲を先に確定します。そのうえで利用者IDや画面のパラメータを替えて送信し、他の利用者や他社の情報へ届かないかを確かめます。

確認する資料
  • 権限一覧
  • アカウント設計
ログイン状態の乗っ取りを防ぐ

セッション管理・認証まわりの設定と保護状態の確認

認証まわりの仕様をもとに、セッションIDの発行と破棄のタイミング、Cookieに付く属性を確認します。無操作のまま失効するまでの時間と、ログイン試行を止める回数のしきい値まで見ます。

確認する資料
  • 認証まわりの仕様
公表済みの脆弱性の放置を防ぐ

フレームワークの版と既知の脆弱性(CVE)の照合

構成一覧と版管理表からフレームワーク・ミドルウェア・ライブラリの版を洗い出し、公開されている脆弱性情報のデータベースと照合します。組み込んだサードパーティ製の部品も対象に含めます。

確認する資料
  • 構成一覧
  • 版管理表
04 TEST DESIGN

診断の進め方・具体的な診断内容

これらの観点を、限られた予算と期限で実行できる計画に組み替えます。範囲を決めるところから再診断まで、4つの段取りで進めます。

STEP 01 画面・機能を棚卸しし、診断する範囲を決める画面と機能を棚卸しし範囲を合意
どう確かめるか

画面・機能を棚卸しし、診断する範囲を決める

画面一覧と機能一覧から診断の対象を棚卸しし、入力フォームや外部連携のある画面を洗い出します。かける労力はリスクの高さに見合わせるため、取引先の要件と期限を照らして範囲を合意します。

  • 01画面一覧と機能一覧から診断の対象を棚卸しする
  • 02入力フォームや外部連携のある画面を洗い出す
  • 03取引先の要件と期限を照らして範囲を合意する
OUTPUT診断対象一覧(優先度つき)
STEP 02 ツール診断と手動診断を組み合わせて、網羅と深掘りを両立する定型はツール・作りは手動で
どう確かめるか

ツール診断と手動診断を組み合わせて、網羅と深掘りを両立する

攻撃を再現するツールの検査には、誤検出も検出漏れもあり得ます。定型的なパターンは自動の検査で広く網をかけ、画面の作りに依存する不備は仕様を読み込んだ手作業の検査で深く確かめます。

  • 01定型的なパターンは自動の検査で広く網をかける
  • 02画面の作りに依存する不備は手作業で深く確かめる
  • 03ツールの誤検出と検出漏れを見分ける
OUTPUT自動・手動の検査記録
STEP 03 検出した脆弱性を、危険度と直しやすさで優先順位付けする危険度と直しやすさで順位付け
どう確かめるか

検出した脆弱性を、危険度と直しやすさで優先順位付けする

悪用のされやすさと影響の範囲からリスクの高さを見定め、改修のしやすさを重ねて着手の順番を決めます。再現手順を添えて示すため、次のリリース計画を組む材料としてお使いいただけます。

  • 01悪用のされやすさと影響の範囲から危険度を見定める
  • 02改修のしやすさを重ねて着手の順番を決める
  • 03検出した脆弱性に再現手順を添えて示す
OUTPUT優先順位つき是正計画
STEP 04 確かめた範囲と未確認範囲を分けて報告し、是正・再診断まで伴走する確かめた範囲と未確認を書き分け
どう確かめるか

確かめた範囲と未確認範囲を分けて報告し、是正・再診断まで伴走する

確かめた範囲は、画面・入力フォーム・権限の組み合わせ単位で記録します。期間や環境の都合で検査できなかった箇所と、対象外とした箇所は理由まで分けて記し、改修後の再診断まで受け持ちます。

  • 01確かめた範囲を画面とフォームの単位で記録する
  • 02検査できなかった箇所と対象外を理由まで記す
  • 03改修後に再診断する範囲と条件を決める
OUTPUT診断範囲と結果の記録
05 RATIONALE

私たちGENZが、このようなWebアプリケーションのセキュリティ診断を代行します

固定費を抱えない人日単位のアサイン、監査にも使える独立した検証の記録、育成期間なしに活かせる専門ノウハウなど、第三者へのアウトソースには複数のメリットがあります。

OUTSOURCING RATIONALE THIRD-PARTY VERIFICATION

必要な時に必要な分だけ

人日単位のアサインで固定費を抱えず、繁忙期に増減できます。

独立した視点で品質を底上げ

独立した検証で偏りを排し、監査に使える客観的な記録を残せます。

専門ノウハウを即戦力で

JSTQB認定エンジニアが在籍し、対象領域固有の検証知見を育成期間なしに活用できます。

オフィスで担当者同士がノートPCを前に、在庫管理システムのテスト観点を相談しながら整理している風景。第三者視点のテスト支援を想起させる実写写真。

専門知識を持ったセキュリティエンジニアが、第三者の視点で診断するメリット

  • 開発側の思い込みや先入観に影響されず、設定や実装の不備を検出できる
  • 診断観点にもとづく網羅的な検査で、見逃しを減らせる
  • 開発チームが診断の工数から解放され、開発に専念できる
06 SERVICE

5,000件以上の実績に裏付けられた伴走型支援

GENZは、20年の第三者検証の経験を踏まえ、公開している画面と機能の実情に合う範囲でお引き受けします。一律のフルメニューはおすすめせず、どこから着手するかを一緒に決めながら、次の4点で関わります。

SVC 01

画面・機能の棚卸しから始める段階的提案

診断する画面と入力フォームの数は、ご相談のうえ決めます。棚卸しだけを切り出し、範囲を確かめてから始める段取りもお選びいただけます。

在庫のリスク要因を並べ、優先順位を高低で示した赤白紙カード基調の無文字図解。
SVC 02

ツール診断と手動診断の両立体制

自動の検査で定型的なパターンに広く網をかけ、画面仕様と権限一覧を読んだ手作業の検査を重ねます。画面の作りに依存する不備を確かめます。

仕様変更に応じてリグレッションテストの対象範囲が更新される様子を示した赤白紙カード基調の無文字図解。
SVC 03

未確認範囲と残存リスクまで整理

診断できた画面と検査できなかった画面を理由つきで書き分けます。残るリスクは受容か改修かまで添えるため、取引先への説明や稟議に使えます。

第三者の視点で計画・設計・実施・報告が一貫してつながる流れを示した赤白紙カード基調の無文字図解。
SVC 04

是正・再診断まで一つの窓口で伴走

改修が済んだあとの再診断は、範囲と条件を取り決めたうえで承ります。APIからWebアプリ、ネイティブアプリまで、同じ窓口でご相談いただけます。

機能テストと関連テスト(性能・セキュリティ等)を並べて区分した赤白紙カード基調の無文字図解。
07 FLOW

ご相談から納品までの流れ

対象範囲と判断基準を先に合わせ、進捗と残るリスクを共有しながら進めます。

ヒアリングで対象範囲を具体化する

対象システム、拠点、扱うデータ、連携先、業務フロー、リリース時期を確認し、未検証領域を可視化します。

診断計画と優先順位を合意形成

事故影響、変更量、利用頻度、代替手段の有無から優先順位を定め、必要な工数と計画を具体化します。

診断実施と進捗・課題を毎回共有

実施状況、発見事項、阻害要因、追加確認が必要な仕様を共有し、終盤のまとめ出しを避けます。

報告書納品と再診断支援まで実施

診断完了レポートに結果、証跡、未実施範囲、残留リスクを整理し、修正後の再診断条件まで引き継ぎます。

5,000件以上の対応実績

Webアプリケーションの診断範囲と優先順位を、GENZに相談する

どの画面と機能まで診断するか、どこから着手するか、必要な工数の考え方、負荷テストや機能テストなど、あわせて検討すべきテストの有無まで、いまの状況をうかがいながら一緒に整理します。