Azure オフェンシブセキュリティツールキット
Azureセキュリティ評価用のBashおよびPowerShellスクリプト集です。IAM特権昇格、コンテナセキュリティ、Key Vaultの露出、Entra ID構成などをカバーします。Azure Cloud Shellまたは認証済みの任意のターミナルで実行できるように設計されています。
スクリプト
IAM / アイデンティティ
| スクリプト | シェル | 説明 |
|---|
IAMPrivz.sh | Bash | テナント全体のすべてのRBACロール定義と割り当てを監査し、危険な特権昇格権限(roleAssignments/write、roleDefinitions/write、federatedIdentityCredentials/write)を検出します。フラグが付けられた各割り当てについて、プリンシパルID(ユーザー、サービスプリンシパル、グループ)を解決します。JSONおよびテキストレポートを出力します。 |
EntraUserSettings.sh | Bash | Microsoft Graphを介してEntra IDテナントレベルのユーザー設定を報告します — アプリ登録の権限、テナント作成、セキュリティグループ作成、ゲストアクセス制限レベル、管理センターの制限。 |
EntraUserSettings.ps1 | PowerShell | EntraUserSettings.sh のPowerShell版。 |
GlobalAdmins.sh | Bash | グローバル管理者ディレクトリロールのすべてのメンバーを抽出します。表示名、UPN、オブジェクトタイプ、アカウントステータス、オブジェクトIDを収集します。ディレクトリでまだ有効化されていない場合はロールを有効化します。書式付きテーブルとタイムスタンプ付きCSVを出力します。 |
GlobalAdmin.ps1 | PowerShell | GlobalAdmins.sh のPowerShell版。 |
GuestInvite.sh | Bash | ゲスト招待ポリシーと外部コラボレーション設定を監査します — ゲストを招待できるユーザー、ゲストアクセス制限レベル、メールベースのサインアップ権限。「誰でも招待可能」などの高リスク構成にフラグを付けます。タイムスタンプ付きレポートを出力します。 |
GuestInvite.ps1 | PowerShell | GuestInvite.sh のPowerShell版。 |
JoinableGroups.sh | Bash | 公開参加可能なEntra IDグループ(公開表示、非動的メンバーシップ)を発見します。メタデータ、メンバー数、割り当てられたディレクトリロールを収集します。グループを選択して参加するためのインタラクティブメニューを提供します。CSVを出力します。 |
JoinableGroups.ps1 | PowerShell | JoinableGroups.sh のPowerShell版。 |
コンテナセキュリティ
Key Vault
自動化
| スクリプト | シェル | 説明 |
|---|
RunbookGrabz.sh | Bash | すべてのサブスクリプションにわたるすべてのAzure Automation Accountの包括的な監査。Runbookのソースコード、Webhook構成、スケジュール、ジョブ履歴(過去30日間)、ハイブリッドワーカーの詳細を抽出します。アカウントごとの詳細ファイルと専用のRunbookコンテンツフォルダーを含む階層ディレクトリ構造を出力します。 |
RunbookGrabz.ps1 | PowerShell | RunbookGrabz.sh のPowerShell版。 |
SQL
| スクリプト | シェル | 説明 |
|---|
SQLAuditing.sh | Bash | すべてのサブスクリプションにわたるすべてのAzure SQL ServerとDatabaseの監査ステータスを確認します。BLOB、Log Analytics、Event Hubの各ターゲットを確認します。スマートロジック:サーバーレベルの監査がすでに有効な場合はデータベースレベルのチェックをスキップします。未監査のデータベースにフラグを付けます。CSVを出力します。 |
SQLAuditing.ps1 | PowerShell | SQLAuditing.sh のPowerShell版。 |
前提条件
- Azure CLI(
az login)または Azure Cloud Shell セッション
jq — すべてのBashスクリプトで必要
- Az PowerShellモジュール —
.ps1 スクリプトで必要(Az.Accounts、Az.KeyVault、Az.Sql など)
- 監査対象リソースに対する適切な読み取り権限(最低でもReader。
Conreg.sh などの一部のスクリプトは書き込み操作をテストします)
使用方法
# Run from Azure Cloud Shell or any authenticated terminal
az login
# IAM privilege escalation audit
bash Cloudshell/IAMPrivz.sh
# Container registry permission check with live tests
bash Cloudshell/Conreg.sh
# Key Vault access test (all subscriptions)
bash Cloudshell/KV-Access.sh -a
# Key Vault public exposure audit
bash Cloudshell/KV-PublicAccess.sh
# PowerShell equivalents
pwsh Cloudshell/KV-Access.ps1 -All
pwsh Cloudshell/ContainerPermz.ps1
ファイル構造
Azure/
├── README.md
└── Cloudshell/
├── IAMPrivz.sh
├── Conreg.sh
├── ContainerPermz.sh
├── ContainerPermz.ps1
├── EntraUserSettings.sh
├── EntraUserSettings.ps1
├── GlobalAdmins.sh
├── GlobalAdmin.ps1
├── GuestInvite.sh
├── GuestInvite.ps1
├── JoinableGroups.sh
├── JoinableGroups.ps1
├── KV-Access.sh
├── KV-Access.ps1
├── KV-PublicAccess.sh
├── KV-PublicAccess.ps1
├── RunbookGrabz.sh
├── RunbookGrabz.ps1
├── SQLAuditing.sh
└── SQLAuditing.ps1
免責事項
これらのツールは、許可を受けたセキュリティ評価および教育目的のみに使用することを意図しています。Azure環境に対してこれらのスクリプトを実行する前に、必ず適切な承認を取得してください。