「とある診断員の備忘録」というタイトルのわりに、ブログを始めてから今まで脆弱性診断に関することを一切書いていなかったことに気づいたので、そろそろ脆弱性診断ネタを書こうかと思います。 今回はクラウドプラットフォームに対する脆弱性診断の小ネタです。
クラウドサービスを診断する時のお作法って?
私が脆弱性診断をやり始めた駆け出しの頃では、オンプレ環境の診断対象が多かったのですが、最近ではクラウドプラットフォームなどの利用が当たり前となったため、クラウド環境の診断対象と沢山エンカウントします。 クラウド環境に対して脆弱性診断を実施する場合には、実はいくつか抑えておくべきお作法があります。
1. クラウド事業者側に診断事前に申請が必要な場合がある
脆弱性診断の種類にもよりますが、ブラックボックステストでは疑似的な攻撃を実施して脆弱性の有無を判定するため、不正アクセスとして検知される可能性もあります。 そのためトラブル(※)を避けるためにも脆弱性診断を実施する場合には、「事前申請は必要ない」と明記でもされていない限りは、利用しているクラウドプラットフォーム環境の管理事業者(以下 クラウド事業者)側にちゃんと事前に脆弱性診断を実施して良いか確認をする必要があります。
ちなみに過去私が経験したものですと、事前の申請時には以下のような情報をクラウド事業者側から要求されるケースなどが良くありました。
※トラブルの一例
昔々、とある診断員はシステム担当者の方に、事業者側への事前連絡を再三お願いしていたのですが、何故だか連絡がされないまま診断がスタートしました。その後、診断による通信はめでたく不正アクセスとして検知され、診断途中にアクセス元IPが念願のブラックリスト入りを果たし、全ての通信がブロックされる事案となったそうです。ちなみにその時のブロックを解除してもらう手続きには結構期間が必要とのことであり、長い間診断が中断しましたとさ。めでたしめでたし。
2. 環境によっては脆弱性診断自体を実施できない場合がある
クラウド事業者側のポリシーで、環境などによってはそもそも脆弱性診断の実施を許可していないケースがあります。 私の経験ですと共有ホスティングのような、複数顧客で同じ環境を利用しているようなサービスの場合などでは、利用している他の顧客に影響がでるかもしれないため診断実施の許可をいただけなかったケースなどがありました。 また、後述しますがAWSなどでは、診断を実施可能な環境の条件が明確に指定されています。
上記二つのお作法の内容については、事業者側のポリシーによってマチマチです。 また、ポリシー自体が変更される場合もありますので、脆弱性診断を実施する際には、ご自身の利用しているプラットフォームの事業者にちゃんと確認をした方が良いと考えます。私も脆弱性診断を実施する際には、システム担当者の方に必ず上記のご確認をお願いしています。
有名どころではどうなの?
ここら辺の情報っていちいち確認するのが大変なので、メジャーなものはどこかにまとまっていてほしいなあーって正直結構前から思っていました。 折角の機会なので、脆弱性診断士の目の前に良く診断対象として登場する三大クラウドプラットフォーム(AWS、Microsoft Azure、GCP)の脆弱性診断に関するお作法についてちょっとまとめてみました。 (なお今回記載したものは2017/6/20時点の情報となります。)
AWS(Amazon Web Services)
AWSについては以下のサイトに脆弱性診断に関するポリシーが記載されています。
上記に記載されているようにAWSでは診断事前に専用フォームからの申請が必要です。 具体的な申請の仕方についてはクラスメソッドさんの以下の記事に詳しく記載されています。
2017年版 AWSの侵入テストについて | Developers.IO
また、診断可能な対象については以下のように明確に定義されています。
なお、AWSについては手前味噌となりますが、ここら辺について過去に私がまとめたスライドがありますので宜しければご覧ください。
Microsoft Azure
Microsoft Azureについては以下のサイトに脆弱性診断に関するポリシーが記載されています。
Microsoft Cloud Unified Penetration Testing Rules of Engagement
以前は診断事前の申請が必要だったのですが、割と最近にポリシー変更があったようです。
MICROSOFT AZURE PENETRATION TESTING NOTIFICATION As of June 15, 2017, Microsoft no longer requires pre-approval to conduct a penetration test against Azure resources.
と記載があり、現時点では脆弱性診断の申請は不要となったようです。
GCP(Google Cloud Platform)
GCPについては以下の「ペネトレーション テスト」の項目にさらっとですが脆弱性診断に関するポリシーが記載されています。
Security and Compliance on the Google Cloud Platform | Google Cloud Platform
Google Cloud Platform のセキュリティを評価するためにペネトレーション テストを行う際に、Google へ連絡する必要はありません。ただし、Google Cloud Platform の利用規定ポリシーと利用規約を遵守し、テストの影響が他のお客様のアプリケーションに及ぶことなく、お客様のプロジェクトに限定されるようにする必要があります。脆弱性を発見した際は、脆弱性報奨金プログラムまでご報告ください。
上記のような記載があるため脆弱性診断の申請は不要です。
まとめ
メジャーなクラウドプラットフォームの脆弱性診断に関するお作法についてまとめてみました。 もし記載した内容などが誤っている場合にはご指摘いただければ幸いです!