
クラウドフォレンジックのPowershellモジュールで、AzureとO365のデータに対して脅威ハンティングプレイブックを実行するものです。

Azure および O365 のデータに対し、クラウドフォレンジック目的で脅威ハンティングプレイブックを実行するための Powershell モジュールです。
UnifiedAuditLog への読み取り専用アクセスを可能にするには、Exchange Online で次のロールが必要です: View-Only Audit Logs または Audit Logs。
これらのロールは、Exchange Admin Center の Compliance Management ロールグループにデフォルトで割り当てられています。
注: あなたがセキュリティアナリスト、インシデントレスポンダー、または脅威ハンターであり、所属組織がこれらの監査ログへの読み取り専用アクセスを提供していない場合、その組織の検知および対応戦略を真剣に疑問視する必要があります。
詳細情報:
注: 管理者は、Azure テナントのクラウドシェルまたは Azure に接続したローカルの PowerShell インスタンスで
Get-ManagementRoleEntry "*\Search-UnifiedAuditLog"を実行することで、これらの要件を確認できます。
ExchangeOnlineManagement (EXOv2) がインストールされていることを確認してください。インストール手順は Web で見つけるか、the soc analyst scrolls にある私の小さな KB に直接アクセスしてください。
Import-Module .\source\AzureHunter.psd1必要な操作は次のとおりです:
Install-Module AzureHunter -Scope CurrentUser
Import-Module AzureHunter
統合監査ログには、Microsoft 365 管理センターまたは Azure 管理ポータルで実行されたユーザー、グループ、アプリケーション、ドメイン、およびディレクトリのアクティビティが含まれます。Azure AD イベントの完全なリストについては、RecordTypes のリストを参照してください。
UnifiedAuditLog は、ExchangeItems、SharePoint、Azure AD、OneDrive、データガバナンス、データ損失防止、Windows Defender アラートと検疫イベント、Microsoft Defender for Office 365 の脅威インテリジェンスイベントなど、多種多様なクラウド操作に関する豊富なデータを含んでいるため、クラウドフォレンジック情報の優れたソースです。そしてそのリストは続きます!
AzureHunter は、Azure および O365 監査ログから最大のログ密度をマイニングおよびエクスポートするための有用なロジックを実装しています。これを実現するために、各サイクル(バッチ)で2つの異なる操作を実行します:

AzureHunter コマンドを実行する前に、Connect-ExchangeOnline を実行することをお勧めします。プログラムはアクティブなリモートセッションをチェックし、接続を試みますが、PowerShell のバージョンによってはこれが許可されず、自分で行う必要があります。
AzureHunter には2つの主要なコマンドがあります: Search-AzureCloudUnifiedLog と Invoke-AzHunterPlaybook です。
Search-AzureCloudUnifiedLog の目的は、Azure からUnifiedAuditLog レコードの最大割合をマイニングするための複雑なロジックを実装することです。デフォルトでは、抽出および重複排除されたレコードを CSV ファイルにエクスポートします。
Invoke-AzHunterPlaybook の目的は、playbooks フォルダに保存されたハンティングプレイブックへの柔軟なインターフェースを提供することです。これらのプレイブックは、誰でも独自の分析やアイデアを貢献できるように設計されています。これまでのところ、非常にシンプルな2つのプレイブックのみが開発されています: AzHunter.Playbook.Exporter と AzHunter.Playbook.LogonAnalyser です。Exporter は、データに重複排除とソート操作を適用した後にレコードをエクスポートします。LogonAnalyser はベータモードで、Operations プロパティが UserLoggedIn であるイベントを抽出します。これはプレイブックで何ができるか、そしてプレイブックを簡単に構築する方法の例です。
Search-AzureCloudUnifiedLog を実行するとき、ログバッチごとに実行するプレイブックのリストを渡すことができます。Search-AzureCloudUnifiedLog は、Invoke-AzHunterPlaybook を介してバッチをプレイブックに渡します。
最後に、Invoke-AzHunterPlaybook はスタンドアロンで使用することもできます。UnifiedAuditLog レコードのエクスポートがある場合は、それらを PowerShell 配列に読み込み、このコマンドに渡して関連するプレイブックを指定できます。
Search-AzureCloudUnifiedLog -StartDate "2020-03-06T10:00:00" -EndDate "2020-06-09T12:40:00" -TimeInterval 12 -AggregatedResultsFlushSize 5000 -Verbose
このコマンドは:
AggregatedResultsFlushSize パラメータは、ダウンストリームのプレイブックによって処理されるレコードのバッチを指定します。ここでは AzureHunter に、合計数が 5000 に達したらレコードのバッチを処理するように指示しています。これにより、何時間も待ってから巨大なレコード範囲を CSV ファイルにエクスポートする必要なく、結果を即座に取得できます。UnifiedAuditLog レコードを CSV ファイルにエクスポートしたと仮定すると、次のように実行できます:
$RecordArray = Import-Csv .\my-exported-records.csv
Invoke-AzHunterPlaybook -Records $RecordArray -Playbooks 'AzHunter.Playbook.UAL.LogonAnalyser'
カンマで区切ることで複数のプレイブックを実行できます。これらは順次実行されます:
$RecordArray = Import-Csv .\my-exported-records.csv
Invoke-AzHunterPlaybook -Records $RecordArray -Playbooks 'AzHunter.Playbook.UAL.Exporter', 'AzHunter.Playbook.UAL.LogonAnalyser'
eDiscovery サマリーレポートを CSV ファイルにエクスポートしたと仮定すると、次のように実行できます:
$eDiscoReportFile = .\eDisco-Summary-Report-PersonOfInterest.csv
Invoke-AzHunterPlaybook -Records $eDiscoReportFile -Playbooks 'AzHunter.Playbook.eDisco.SummaryReportCleaner'
必要に応じて、次のようにプレイブックにパラメータを渡すこともできます:
$eDiscoReportFile = .\eDisco-Summary-Report-PersonOfInterest.csv
Invoke-AzHunterPlaybook -Records $eDiscoReportFile -Playbooks 'AzHunter.Playbook.eDisco.SummaryReportCleaner' -PlayBookParameters @{"CsvRecordsBatchSize" = 700}
パラメータ "CsvRecordsBatchSize" は、プレイブックに700レコードのバッチでレコードをディスクにフラッシュするよう指示します。
SolarWinds サプライチェーン侵害の余波以降、サイバーフォレンジックの深い鍛冶場から、サイバー・ブラックスミス・ニンジャたちによって慎重に開発された多くのツールが登場しました。これらのツールは通常、Azure でのクラウドフォレンジックを支援します。AzureHunter の意図は、この混雑したスペースにさらにノイズを加えることではありません。しかし、私はこの分野のいくつかのツールで観察したギャップに対処する必要性を感じました(ただし、多数のツールが存在し、すべてを知っているわけではないので、間違っているかもしれません...):
UnifiedAuditLog の Powershell API の複雑さに対処していません。この API は、大量のデータをエクスポートする際に非常に不安定で一貫性がありません。私は、これらの問題のいくつかに対処する、十分にフォールトトレラントなインターフェースを開発し、UnifiedAuditLog のみに焦点を当てたいと考えました。これは、ユーザー、アプリケーション、サービスにとって最も関連性が高く詳細なアクティビティログを含む Azure アーティファクトだからです。Playbooks の開発に重点を置いていません。私は、コミュニティが同じデータからさまざまな種類の意味を抽出するための新しいプレイブックを作成および共有するのに役立つシンプルなフレームワークを考案したいと考えました。ただし、より機能豊富で成熟した Azure クラウドフォレンジックアプリケーションをお探しの場合は、以下のアプリケーションを作成したサイバーセキュリティ専門家による素晴らしい成果をチェックすることをお勧めします:
他にも多くのツールがあると思いますが、これらは私が思いついたものです。さらに提案があればお知らせください。
詳細については以下をご覧ください:
このプロジェクトや他のオープンソースプロジェクトを支援してくださるすべての方々に感謝します!皆さんは、私のような人間がサイバーウォリアーの道を歩み、コミュニティに高品質なツールクラフトを届ける手助けをしてくれています :)