はじめに
サイバーディフェンス研究所 アドベントカレンダー 2022 の 3日目(土日を含めるなら5日目)です。 弊社で提供しているサービスでセキュリティ診断(脆弱性診断とも)というものがありますが、「そもそもセキュリティ診断ってなんなの?」という方も多くいらっしゃると思います。 今回はそんなセキュリティ診断、特にWebシステムに対する診断であるWeb診断についてかんたんに概要と流れを説明しようと思います。
セキュリティ診断(脆弱性診断)ってなに?
セキュリティ診断(脆弱性診断)とは、システムに対して擬似的な攻撃を行いセキュリティ上の脆弱性を検出し、対象のシステムにおけるセキュリティ上の問題点を把握する検査のことです。 対象とするシステムは診断を行う人、会社によって様々ですが、弊社(サイバーディフェンス研究所)の場合、主に以下の分類でセキュリティ診断業務を請け負っています。
- Webアプリケーション脆弱性診断 ... Webアプリケーションに対し、手動での脆弱性診断を行います
- スマートフォンアプリ脆弱性診断 ... スマートフォンアプリに対し、手動での脆弱性診断を行います
- ネットワークペネトレーションテスト ... 指定されたネットワークに対し、侵入テスト(ペネトレーションテスト)を行います
- 組み込み機器・IoTセキュリティ診断 ... 提供頂いた組み込み機器に対し、手動での脆弱性診断を行います
- 制御システムペネトレーションテスト ... 指定された制御システムに対し、侵入テスト(ペネトレーションテスト)を行います
今回は、上記の中でも特に攻撃の侵入口として使われやすいWebアプリケーションへの脆弱性診断、 Webアプリケーション脆弱性診断 について説明します。
ペネトレーションテストとの違いはなに?
弊社で行っているセキュリティ診断業務でも触れていますが、ペネトレーションテスト(侵入テスト)というものもあります。 セキュリティ診断(脆弱性診断) と ペネトレーションテスト(侵入テスト) では、以下のような違いがあります。
- セキュリティ診断(脆弱性診断) ... システムの セキュリティ上の問題点(脆弱性) を網羅することに重点を置いています。侵入口となりうる脆弱性を網羅する(横に広く調査する)目的に向いています。
- ペネトレーションテスト(侵入テスト) ... システムの セキュリティ上の問題点(脆弱性)を利用して、どこまで侵入できるか に重点を置いています。実際のハッカーが攻撃を仕掛けてきた場合、どこまで侵入されるかを把握する(縦に深く調査する)目的に向いています。
弊社で行っている Webアプリケーション脆弱性診断 はセキュリティ診断(脆弱性診断)となるため、システムの セキュリティ上の問題点(脆弱性) を網羅することに重点を置いています。 ただし弊社の場合、診断を行っている過程で実際にサーバへの侵入まで行える状態であった場合、お客様とのご相談・ご了承を得た上で どこまで侵入できてしまうか についてを検証し、ご報告させていただくことも可能です。
ツール診断と手動診断ってなに?
セキュリティ診断(脆弱性診断)では、大きく分けて ツール診断 と 手動診断 の2種類に分類する事ができます。
ツール診断
脆弱性スキャナツールを実行し、機械的に診断を行います。 多くのツールでは、スキャン終了後にその結果をレポートとして出力してくれる機能も有しています。
使用されるツールにもよりますが、あらかじめ決まった内容に対し機械的にスキャンを行うことが可能なため、大量のパターンを素早く調査可能で、かつ値段的にも手動診断に比べてかなりリーズナブルに抑えることが出来ます。 ただ世の中のシステムは一様に同じ作りとなっていないため、 脆弱性が無いにも関わらず報告対象とされてしまう場合 や 機械的にスキャンを行うため、悪用するには複雑な対応が必要な脆弱性が検出されにくいこと 、 柔軟な対応が難しいこと 、 ロジック上の問題で脆弱な場合に検出が難しいこと などもあり、(個人の考えですが)2022年現在は手動診断に比べて診断の成果は上がりにくい方法になります。
また 脆弱性が無いにも関わらず報告対象とされてしまう場合 に「それが本当に脆弱性なのか」を判断したり、検出された脆弱性に対し「具体的にどのように修正すれば適切に対応できるのか」は、ある程度知識を持った人でないと対応が難しいのが現実です。
手動診断
サイバー攻撃についての知識を持つ診断員 が手動で疑似攻撃を行い、状況に応じて臨機応変に対応を変えて検査を進めます。 弊社では基本的にこの手動診断を実施しており、関わるエンジニアは弊社の正規職員のみが関与します。
ツール診断に比べると高額になりますが、知識を持った人間が手作業で対応するためツール診断にあった問題点は解消されるメリットもあります。 機械的な検出が難しい、システムのロジック上脆弱性になりうる問題(弊社では ロジックの不備 と呼称しています)の検出はもちろん、 使われているリクエストパラメータ名から人間が非公開パラメータを推測 して、 非公開だったが脆弱なパラメータを検出する といったパターンも実際に見かけることがあります。
また、脆弱性を実際に検出した人間に質問し、その具体的な対処方法について説明を求めることができるのも手動診断の特徴です。
CDIのWeb診断ではどういうことをするの?
流れとしてはサービスフローに記載されているフローで対応をさせていただいていますが、もう少しイメージしやすいように分解してご説明させていただきます。 基本的には、以下のような流れになっています。
- お問い合わせ
- 事前調査・お見積り作成
- ご契約手続き
- 診断の準備・諸説明
- 診断の実施・速報の通知
- 脅威分析
- 診断結果報告
- 再診断
0.お問い合わせ
お客様からのお問い合わせを頂いた段階です。 Webからのお問い合わせについてはこちらから受付可能です。
1. 事前調査・お見積り作成
お問い合わせ頂いた内容から、お客様とご相談の上で 診断対象の選定 をし、その対象についての 事前調査 を行わせていただきます。 事前対象への事前調査後、その内容をもとに 診断方針の検討 と 費用お見積り を行わせていただきます。
2. ご契約手続き
お客様からのご契約依頼を頂いた後、 ご契約手続き と 診断日程の調整 をさせていただきます。
3. 診断の準備・諸説明
ご契約手続きが終わりましたら、お客様側では診断の準備として 関係者様への周知 を行っていただきます。 また、診断中に何か合ったときに備え、 緊急時の連絡先確認 をさせていただきます。
4. 診断の実施・速報の提供
診断実施日になりましたら、弊社からの 診断を実施 させていただきます。 診断の開始・終了のタイミングには、事前に取り決めさせて頂いた方法でお客様へのご連絡をさせていただくことになります。
また、診断中に見つかった脆弱性について、 どのような脆弱性があったかを速報としてご連絡 させていただきます。
5. 脅威分析
診断期間終了後、弊社にて 診断結果の分析 とその内容を記載した 報告書の作成 を行わせていただきます。
6. 診断結果報告
診断完了後、お客様と日程調整の上で結果報告として 報告書の納品 と 診断結果の報告会 を実施させていただきます。 報告会では実際に診断を行ったエンジニアが報告を行うため、質疑応答を口頭にて行うことが出来ます。
7. 再診断
診断完了後、お客様側でシステムの修正が終わりましたら再診断を行うことも出来ます。 再診断では修正箇所に対しての再攻撃、そして修正によって新たに脆弱性が作られていないかを確認させていただきます。
なお、弊社では一度目の再診断はご契約させていただいた金額に盛り込まれております(詳細についてはお問い合わせください)。
Web診断の値段はどう決まるの?
対象となるWebシステムにもよりますし、診断を行う会社にもよるため一概には言えませんが、弊社の場合ではWeb診断の値段は基本的には リクエスト数 に比例します。 最近ではSPA(Single Page Application)のWebアプリケーションも一般的になってきていますが、この場合は htmlファイル(テンプレート)の取得リクエスト と APIへのリクエスト数 を基準として所要時間を計算し、その作業日数でお見積りをさせて頂く場合が多いです。
また、リクエスト数基準とせず、依頼可能な予算・日数を元にして、診断員が脆弱性がありそうな箇所を判断して調査する対応(弊社では ベストエフォート対応 と呼称しています)も可能です。
セキュリティ診断を依頼する側が注意したほうがいいことはあるの?
セキュリティ診断の性質上、擬似的とはいえシステムに攻撃を仕掛けられることになります。 このため、システムに致命的な脆弱性があった場合にシステムの停止やデータの損壊が発生する可能性があります。
手動診断の場合はリスクの高い攻撃手法は可能な限り行わずに診断をすることも可能ですが、絶対の安全を保証することは難しいため、診断対象としてステージング環境や開発環境を指定いただくのが望ましいと思います。
セキュリティ診断はあくまでも システムの脆弱性を認識するためのもの です。 セキュリティ診断をしたから安全だ というわけではなく、見つかった脆弱性を適切に修正、適用しないと意味がありません。
また、システムの脆弱性は日々新しいものが見つかっています。 2022年には攻撃手法が見つかっていない、安全な状態と思えるシステムでも、3年後には使用しているフレームワークやミドルウェアに致命的な脆弱性が見つかり、その攻撃方法も確立されてしまい、周囲の環境が変わったことによって安全な状態でなくなってしまうこともあります。 このため、定期的にセキュリティ診断を実施し、 その時点での攻撃手法で脆弱な状況かどうか を確認していくことも重要です。
さいごに
以上、セキュリティ診断…その中でも各社様々な企業が提供しているWeb診断について、弊社の場合でのざっくりとした説明になります。 はじめてセキュリティ診断を依頼する方々に、セキュリティ診断とはどういったものなのかが少しでも伝わりましたら幸いです。