Microsoft Sentinel 用 GitHub (Webhook を使用) (Azure 関数を使用) コネクタ

GitHub Webhook データ コネクタは、GitHub Webhook イベントを使って GitHub でサブスクライブされたイベントを Microsoft Sentinel に取り込む機能を提供します。 このコネクタを使うと、潜在的なセキュリティ リスクの調査、チームによるコラボレーションの使用の分析、構成の問題の診断などに役立つイベントを Sentinel に取得できます。

注: GitHub の監査ログを取り込む場合は、"データ コネクタ" ギャラリーの GitHub Enterprise Audit Log コネクタを参照してください。

コネクタの属性

コネクタ属性 説明
Azure 関数アプリのコード https://aka.ms/sentinel-GitHubWebhookAPI-functionapp
Log Analytics テーブル githubscanaudit_CL
データ収集ルールのサポート 現在、サポートされていません
サポートしているもの Microsoft Corporation

クエリのサンプル

GitHub イベント - すべてのアクティビティ。

githubscanaudit_CL

| sort by TimeGenerated desc

前提条件

GitHub (Webhook を使用) (Azure 関数を使用) と統合するには、次のものがあることを確認します。

ベンダーのインストール手順

注意

このコネクタは、HTTP トリガー ベースの Azure 関数に基づいて構築されています。 これにより、GitHub がその Webhook 機能によって接続されるエンドポイントが提供され、サブスクライブされたイベントが Microsoft Sentinel に送信されます。 これにより、追加のデータ インジェスト コストが発生する可能性があります。 詳細については、「Azure Functions の価格」ページを確認してください。

(省略可能な手順) ワークスペースと API の認可キーまたはトークンを Azure Key Vault に安全に格納します。 Azure Key Vault には、キー値を格納および取得するためのセキュリティで保護されたメカニズムが用意されています。 Azure 関数アプリで Azure Key Vault を使用するには、これらの手順に従います

次の 2 つのデプロイ オプションから 1 つを選び、コネクタと関連付けられている Azure 関数をデプロイする

重要: GitHub Webhook コネクタをデプロイする前に、ワークスペース ID とワークスペース主キーを用意します (以下からコピーできます)。

オプション 1 - Azure Resource Manager (ARM) テンプレート

ARM テンプレートを使って GitHub データ コネクタを自動的にデプロイするには、この方法を使います。

  1. 下の [Azure へのデプロイ] ボタンをクリックします。

    Azure へのデプロイ

  2. お使いの [サブスクリプション][リソース グループ][場所] を選択します。

注: 同じリソース グループ内では、Windows と Linux のアプリを同じリージョンとデプロイに混在させることはできません。 3. [上記の使用条件に同意する] というラベルのチェックボックスをオンにします。 5. [購入] をクリックしてデプロイします。

オプション 2 - Azure Functions の手動デプロイ

Azure Functions を使用して GitHub Webhook データ コネクタを手動でデプロイするには、次の詳細な手順を使用します (Visual Studio Code によるデプロイ)。

1. 関数アプリをデプロイする

注: Azure 関数の開発には VS Code を準備する必要があります。

  1. Azure 関数アプリ ファイルをダウンロードします。 アーカイブをローカル開発用コンピューターに抽出します。

  2. VS Code を起動します。 メイン メニューで [ファイル] を選び、[フォルダーを開く] を選択します。

  3. 展開されたファイルから最上位のフォルダーを選択します。

  4. アクティビティ バーで Azure アイコンを選択し、[Azure: Functions] 領域の [関数アプリにデプロイ] ボタンを選択します。 まだサインインしていない場合は、アクティビティ バーの Azure アイコンを選択し、[Azure: Functions] 領域で [Azure にサインイン] を選択します。既にサインインしている場合は、次の手順に進みます。

  5. プロンプトで、次の情報を入力します。

    a. フォルダーの選択: ワークスペースのフォルダーを選択するか、関数アプリが格納されているフォルダーを参照します。

    b. サブスクリプションの選択: 使用するサブスクリプションを選択します。

    c. [Azure で新しい関数アプリを作成する] を選択します ([詳細設定] オプションは選ばないでください)

    d. 関数アプリのグローバルに一意の名前を入力: URL パスで有効な名前を入力します 入力した名前は、Azure Functions 内での一意性を確保するために検証されます。 (例: GitHubXXXXX)。

    e. ランタイムの選択: [Python 3.8] を選びます。

    f. 新しいリソースの場所を選択してください パフォーマンスを向上させ、コストを下げるために、Microsoft Sentinel が配置されているのと同じリージョンを選びます。

  6. デプロイが開始されます。 関数アプリが作成され、展開パッケージが適用されると、通知が表示されます。

  7. 関数アプリを構成するために、Azure portal に移動します。

2. 関数アプリを構成する

  1. 関数アプリで、関数アプリ名を選択し、[構成] を選択します。

  2. [アプリケーションの設定] タブで、**[新しいアプリケーション設定]** を選択します。

  3. 次の各アプリケーション設定を、それぞれの文字列値で個別に追加します (大文字と小文字を区別します)。

    • WorkspaceID
    • WorkspaceKey
    • logAnalyticsUri (省略可能) - logAnalyticsUri を使用して、専用クラウドの Log Analytics API エンドポイントをオーバーライドします。 たとえば、パブリック クラウドではこの値を空のままにします。Azure GovUS クラウド環境では、https://<CustomerId>.ods.opinsights.azure.us の形式で値を指定します。
    • GithubWebhookSecret (省略可能) - Webhook 認証を有効にするには、シークレット値を生成し、この設定に格納します。
  4. すべてのアプリケーション設定を入力したら、[保存] をクリックします。

デプロイ後の手順

手順 1 - Azure 関数の URL を取得するには

  1. Azure 関数の [概要] ページに移動し、左側のブレードで [関数] をクリックします。
  2. 「GithubwebhookConnector」という関数をクリックします。
  3. 「GetFunctionurl」に移動し、関数の URL をコピーします。

ステップ 2 - GitHub Organization に Webhook を構成する

  1. GitHub にアクセスしてアカウントを開き、[Your Organizations] (自分の組織) をクリックします。
  2. [設定] をクリックします。
  3. [Webhook] をクリックし、上のステップ 1 でコピーした関数アプリの URL を [payload URL] (ペイロード URL) テキストボックスに入力します。
  4. コンテンツ タイプを "application/json" として選択します。
  5. (省略可能) Webhook 認証を有効にするには、関数アプリの設定から GithubWebhookSecret に保存した [シークレット] フィールド値に を追加します。
  6. イベントをサブスクライブし、[Webhook の追加] をクリックします

これで、GitHub Webhook の構成が完了しました。 GitHub イベントがトリガーされると、20 分から 30 分の遅延の後 (LogAnalytics がリソースを初めて起動するときに遅延が発生するため)、GitHub から "githubscanaudit_CL" という名前の LogAnalytics ワークスペース テーブルへのすべてのトランザクション イベントを表示できるようになります。

詳しくは、こちらをクリックしてください

次の手順

詳細については、Azure Marketplace の関連ソリューションに関するページを参照してください。