Share
Embed
フルクラウド環境下でのペネトレーションテスト
2022/07/19(金)に行われたPentestSecJP Ver1の登壇資料です。
Event URL: https://pentestsecjp.connpass.com/event/317082/
Yuya Asato
July 20, 2024
Transcript
19 slides
-
P-2 プロフィール 安⾥ 悠⽮ @328__ 所属: GMOサイバーセキュリティ byイエラエ株式会社 オフェンシブセキュリティ部 ペネトレーションテスト課
業務領域: ペネトレーションテスト / レッドチーム Web脆弱性診断 / クラウドセキュリティ診断 コミュニティ: PentestSecJP: コアメンバー JAWS-UG 沖縄 コアメンバー 資格: yuyaasato -
P-5 フルクラウド環境とは︖ ・社内ネットワークそのものがない (あるいは社内に情報資産と呼べるものがほとんどない) ・オンプレミスのActive Directory / VPN もない ・Microsoft
EntraなどのクラウドベースのIdPを中⼼にした構成 ・エンドポイント端末の管理を含めて全てがSaaSを使⽤ "DUJWF%JSFDUPSZ 'JMF4FSWFS 8JLJ $IBU ϑϧΫϥυ 440 4BB4"QQT .JDSPTPGU&OUSB .JDSPTPGU&OUSB ΦϯϓϨϛεࣾωοτϫʔΫ 440 4BB4"QQT -
P-6 フルクラウド環境とオンプレ環境の違い ・エンドポイント端末が同⼀ネットワークに存在しない ・特権昇格で得られた情報が活⽤できないことが多い ・例)Mimikatz/secretsdumpの結果を別の端末に使⽤する ・キッティング⽤のローカルアカウントが無い ・ゼロタッチプロビジョニングによる キッティングの最適化 ペネトレーションテストの視点から⾒る環境の違い .JDSPTPGU&OUSB
0UIFS/FUXPSL PSHVTFS" TFDSFUTEVNQ "VUPQJMPUʜ /P-PDBM"DDPVOU 3%1 ❌ PSHVTFS# )PNF -
P-8 エンドポイント端末からフルクラウド環境の攻撃経路 ・Salesチームの端末を起点にAWSにある本番プロダクトへのDBへの侵⼊する例 ・メジャーどころのサービスを使ってるとだいたい似たような構成になる。 シナリオベースのペネトレーションテストの⼀例 4BMFT6TFS" "MM6TFST 4BMFT(SPVQ %FW0QT(SPVQT .JDSPTPGU&OUSB
%FW0QT'VMM"DDFTT 4BMFT$SFBUF*TTVF $IBU5PPMT $PEF3FQPTJUPSZ $PMBCPMBUJPO5PPMT 1SPEVDU4FSWJDF %FNP 1SPEVDU4FSWJDF 1SPE "840SH.BTUFS"DDPVOU -
P-9 エンドポイント端末からフルクラウド環境の攻撃経路 ・クラウド環境を調査する上でやることは 環境構成の把握 / 構成ミス調査 / Credential収集・使⽤の繰り返し シナリオベースのペネトレーションテストの⼀例 ・ファイル収集
・PRT(Primary Refresh Token)の悪⽤ ・ブラウザセッションのダンプ ・User /Group / SSO Apps / 条件付きアクセスポリシー の収集 ・Dynamic Groupの条件設定ミスの調査 ・環境構成 / Credentialの収集 ・サービスのInvite Tokenの収集 ・Google Groupの参加権限設定ミス ・ドキュメント情報の収集 ・ハードコードCredentialの収集 ・CI/CD Pipelineの悪⽤による Product Serviceへのアクセス確⽴ ※ 攻撃経路/⼿法は多数ありますが、かなり簡略化してます。 4BMFT6TFS" "MM6TFST 4BMFT(SPVQ %FW0QT(SPVQT .JDSPTPGU&OUSB %FW0QT'VMM"DDFTT 4BMFT$SFBUF*TTVF $IBU5PPMT $PEF3FQPTJUPSZ $PMBCPMBUJPO5PPMT 1SPEVDU4FSWJDF %FNP 1SPEVDU4FSWJDF 1SPE "840SH.BTUFS"DDPVOU -
P-10 エンドポイント端末からフルクラウド環境の攻撃経路 ・クラウド環境を調査する上でやることは 環境構成の把握 / 構成ミス調査 / Credential収集・使⽤の繰り返し シナリオベースのペネトレーションテストの⼀例 ・ファイル収集
・PRT(Primary Refresh Token)の悪⽤ ・ブラウザセッションのダンプ ・User /Group / SSO Apps / 条件付きアクセスポリシー の収集 ・Dynamic Groupの条件設定ミスの調査 ・環境構成 / Credentialの収集 ・サービスのInvite Tokenの収集 ・Google Groupの参加権限設定ミス ・ドキュメント情報の収集 ・ハードコードCredentialの収集 ・CI/CD Pipelineの悪⽤による Product Serviceへのアクセス確⽴ ※ 攻撃経路/⼿法は多数ありますが、かなり簡略化してます。 4BMFT6TFS" "MM6TFST 4BMFT(SPVQ %FW0QT(SPVQT .JDSPTPGU&OUSB %FW0QT'VMM"DDFTT 4BMFT$SFBUF*TTVF $IBU5PPMT $PEF3FQPTJUPSZ $PMBCPMBUJPO5PPMT 1SPEVDU4FSWJDF %FNP 1SPEVDU4FSWJDF 1SPE "840SH.BTUFS"DDPVOU 参考: Azure AD参加端末におけるPRT (Primary Refresh Token)悪⽤の リスクと対策について - GMOイエラエブログ https://gmo-cybersecurity.com/blog/azuread-prt/ Microsoft Entra IDにデバイスを参加させると、 Office / Outlook、Edgeでのログインに使⽤できるSSOに使⽤する PRT(Primary Refesh Token)が発⾏され、端末に保管される。 Pass The PRT DLLを呼び出してPRTからlogin.microsoftonline.comで使⽤できる Cookieを作成して攻撃者の端末で使⽤することも可能。 パスワードとMFAデバイスを攻撃者が所有せずとも Microsoft Entra IDと連携したアプリケーションにログインが可能。 基本的にブラウザセッションのダンプとPass The PRTを⾏い、 アクセス可能なクラウドサービスから情報を収集していく。 -
P-11 エンドポイント端末からフルクラウド環境の攻撃経路 ・クラウド環境を調査する上でやることは 環境構成の把握 / 構成ミス調査 / Credential収集・使⽤の繰り返し シナリオベースのペネトレーションテストの⼀例 ・ファイル収集
・PRT(Primary Refresh Token)の悪⽤ ・ブラウザセッションのダンプ ・User /Group / SSO Apps / 条件付きアクセスポリシー の収集 ・Dynamic Groupの条件設定ミスの調査 ・環境構成 / Credentialの収集 ・サービスのInvite Tokenの収集 ・Google Groupの参加権限設定ミス ・ドキュメント情報の収集 ・ハードコードCredentialの収集 ・CI/CD Pipelineの悪⽤による Product Serviceへのアクセス確⽴ ※ 攻撃経路/⼿法は多数ありますが、かなり簡略化してます。 4BMFT6TFS" "MM6TFST 4BMFT(SPVQ %FW0QT(SPVQT .JDSPTPGU&OUSB %FW0QT'VMM"DDFTT 4BMFT$SFBUF*TTVF $IBU5PPMT $PEF3FQPTJUPSZ $PMBCPMBUJPO5PPMT 1SPEVDU4FSWJDF %FNP 1SPEVDU4FSWJDF 1SPE "840SH.BTUFS"DDPVOU 参考: AZURE AD GRAPH APIを介した条件付きアクセスポリシーの改ざん – Secureworks https://www.secureworks.jp/research/tampering-with-conditional-access-policies-using-azure-ad- graph-api 参考: Abusing dynamic groups in Azure AD for privilege escalation - mnemonic https://www.mnemonic.io/resources/blog/abusing-dynamic-groups-in-azure-ad-for-privilege- escalation/ User / Group / Device / 誰が管理者権限を持っているかをMicrosoft Graph APIなどで収集していく。 (ポータルの閲覧権限があれば画⾯から⾒ ていく) 条件付きアクセスポリシーはAzure AD Graph APIなら管理者権限がなく ても閲覧が可能。環境内からCredentialを取得した時に、MFAをbypassで きる余地がないかを確認していく。 Dynamic Groupは、ゲストユーザの参加と組み合わせて特定のグループへ ⾃動参加できる余地がないかを⾒ていく。 -
P-12 エンドポイント端末からフルクラウド環境の攻撃経路 ・クラウド環境を調査する上でやることは 環境構成の把握 / 構成ミス調査 / Credential収集・使⽤の繰り返し シナリオベースのペネトレーションテストの⼀例 ・ファイル収集
・PRT(Primary Refresh Token)の悪⽤ ・ブラウザセッションのダンプ ・User /Group / SSO Apps / 条件付きアクセスポリシー の収集 ・Dynamic Groupの条件設定ミスの調査 ・環境構成 / Credentialの収集 ・サービスのInvite Tokenの収集 ・Google Groupの参加権限設定ミス ・ドキュメント情報の収集 ・ハードコードCredentialの収集 ・CI/CD Pipelineの悪⽤による Product Serviceへのアクセス確⽴ ※ 攻撃経路/⼿法は多数ありますが、かなり簡略化してます。 4BMFT6TFS" "MM6TFST 4BMFT(SPVQ %FW0QT(SPVQT .JDSPTPGU&OUSB %FW0QT'VMM"DDFTT 4BMFT$SFBUF*TTVF $IBU5PPMT $PEF3FQPTJUPSZ $PMBCPMBUJPO5PPMT 1SPEVDU4FSWJDF %FNP 1SPEVDU4FSWJDF 1SPE "840SH.BTUFS"DDPVOU 参考:グループメールの設定ミスによるAWSアカウントの乗っ取りと対策 - GMOイエラエ https://gmo-cybersecurity.com/blog/aws-account-hijacking-due-to-misconfiguration-of-group- mail/ ビジネス向け Google Groupの設定で、 デフォルトでグループに⾃由に参加できるようになっている。 グループに参加してメールの閲覧ができるので、クラウドアカウントのパス ワードリセットを⾏うほか、紐づいたドキュメントにも アクセスできるようになる。 -
P-13 エンドポイント端末からフルクラウド環境の攻撃経路 ・クラウド環境を調査する上でやることは 環境構成の把握 / 構成ミス調査 / Credential収集・使⽤の繰り返し シナリオベースのペネトレーションテストの⼀例 ・環境構成
/ Credentialの収集 ・サービスのInvite Tokenの収集 ・Google Groupの参加権限設定ミス ・ドキュメント情報の収集 ・ハードコードCredentialの収集 ・CI/CD Pipelineの悪⽤による Product Serviceへのアクセス確⽴ ※ 攻撃経路/⼿法は多数ありますが、かなり簡略化してます。 4BMFT6TFS" "MM6TFST 4BMFT(SPVQ %FW0QT(SPVQT .JDSPTPGU&OUSB %FW0QT'VMM"DDFTT 4BMFT$SFBUF*TTVF $IBU5PPMT $PEF3FQPTJUPSZ $PMBCPMBUJPO5PPMT 1SPEVDU4FSWJDF %FNP 1SPEVDU4FSWJDF 1SPE "840SH.BTUFS"DDPVOU 過去にコミットされたログからCredential探したり GitHub ActionやPipelineの構成不備 / Branch Protection Ruleの Bypass を悪⽤して本番環境のコードを汚染する。 manifest改ざんによるSecretsの取得。 本番デプロイ⽤のアクセスキーが取得できれば 本番環境へのアクセスに利⽤できる。 -
P-15 フルクラウド環境でのペネトレーションテストの課題 ・IDと権限の管理が綺麗に整理されていると、他のSaaSから情報は得られても 本番環境へのアクセスパスが確⽴しない。 ・元々のスコープを考えると安全にも思えるが、 このテストではAWSアカウントのIAMロールの設定状況とかは⾒えてない。 4BMFT6TFS" "MM6TFST 4BMFT(SPVQ %FW0QT(SPVQT
.JDSPTPGU&OUSB %FW0QT'VMM"DDFTT 4BMFT$SFBUF*TTVF $IBU5PPMT $PEF3FQPTJUPSZ $PMBCPMBUJPO5PPMT 1SPEVDU4FSWJDF %FNP 1SPEVDU4FSWJDF 1SPE "840SH.BTUFS"DDPVOU 設定ミスなし! ・Credentialなし! ・Workflowの不備もなし! ・Secret Scanも実装済み ・CI・CD Pipelineの構成ミスなし ・グループ設定の不備もなし! ・社内ドキュメントの権限管理も徹底され てる。 ・本番環境に到達できないので、 IAMロールの設定不備とかは⾒れてない。 -
P-16 フルクラウド環境でのペネトレーションテストの課題 ・シナリオベース / ブラックボックステストにこだわりすぎると 時間かける割にあまり課題を探しきれない。 ・元々の起点となる端末の権限を使って⾒れるだけの評価になり、 ブラックボックスでは情報収集に時間をかけすぎてしまったり、 ⾒れない設定等は多々ある。 なので、本番環境へのアクセス経路があっても、
到達せずにテストが終了する場合もある。 ・顧客⽬線だと脆弱性や改善項⽬が⾒えず費⽤対効果が悪い。 ・テスターとしてもやれることはやったと胸をはって⾔いづらい。 ・解決策として、設定確認⽤の⾼権限アカウントもセットで⽤意いただいて テストをしていくほうが効率は良い。課題の検出件数ははるかに上がる。 -
P-17 フルクラウド環境でのペネトレーションテストの課題 ・テストの⽬的を達成する上で、環境での⼤きな構成ミスがなければ、 社員を標的にしながらテストを進⾏していくことも検討する必要がある。 ・システムがセキュアだったとしても、組織全体としてセキュアかは別の話 ・不審なファイルを実⾏してしまうのもフィッシングサイトに 情報を⼊⼒してしまうのも最終的には⼈ ・最終的には組織全体がセキュアに運⽤されて 安定的に事業継続ができていることが望ましい。 ・内部侵⼊を前提としたテストをさらに進めていくのであれば、
内部情報を利⽤したスピアフィッシングを含めてよりリアルにやる。 ・検知/防御/セッションの再検証の必要性も⾒えてくるようになるが、 ここまでやるのは⼈のケアも必要になってくる場合があるので、 サービスを受ける側の覚悟もそれなりに必要。