Utveckla en SIEM-lösning för Microsoft Sentinel

Microsoft Sentinel lösningar låter oberoende programvaruleverantörer och partner paketera en dataanslutning med relaterat säkerhetsinnehåll som arbetsböcker, analysregler, jaktfrågor, spelböcker och parsers i ett enda, installationsbart paket. Kunder kan sedan identifiera och distribuera dessa lösningar från Microsoft Sentinel innehållshubben och Azure Marketplace.

Note

Om du är en ISV som bygger en Microsoft Sentinel integrering kan Microsoft App Assure-teamet kanske hjälpa till under hela processen. Om du vill engagera teamet skickar du ett e-postmeddelande till azuresentinelpartner@microsoft.com.

Fas Activities
Lära sig Lär dig mer om Sentinel, identifiera vad du ska skapa, skapa utgivarkonton, konfigurera din miljö
Build Etablera din miljö, skapa anslutningsappen och lösningsinnehållet
Test Paketera lösningen, testa den, skicka en pull request och åtgärda synpunkterna
Publicera Skapa ett erbjudande i Partnercenter, testa förhandsversionen och gå live
Preview Informera kunder, lösa supportproblem, övervaka i fyra veckor
Gå till marknaden Ta bort förhandsgranskningsflaggan, lyssna på kunder, förbättra din lösning

Learn

Slutför följande steg innan du börjar bygga:

Skapa

I byggfasen konfigurerar du utvecklingsmiljön och skapar sedan anslutningsappen och lösningsinnehållet.

Etablera din miljö

Innan du skapar konfigurerar du utvecklingsmiljön så att du kan skapa, testa och skicka lösningsinnehåll.

Förgrena och klona lagringsplatsen

Följ dessa steg för att förgrena och klona Azure-Sentinel lagringsplats:

  1. I GitHub går du till lagringsplatsen Azure-Sentinel och väljer Förgrena.

  2. Klona din fork till din lokala dator:

    git clone https://github.com/<your-github-username>/Azure-Sentinel.git
    cd Azure-Sentinel
    
  3. Lägg till upstream-remoten så att du kan hämta in de senaste ändringarna:

    git remote add upstream https://github.com/Azure/Azure-Sentinel.git
    

Konfigurera en dev/test-arbetsyta

Du behöver en fungerande arbetsyta i Microsoft Sentinel för att utveckla och validera ditt anslutningsprogram och ditt innehåll innan du skickar in. Se Anslut Microsoft Sentinel.

När arbetsytan har etablerats tilldelar du följande behörigheter:

  • Microsoft Sentinel-deltagare i arbetsytan för att distribuera och hantera resurser
  • Log Analytics-deltagare på arbetsytan för att skapa och hantera anpassade tabeller och regler för datainsamling (DCR:er)
  • Deltagare i resursgruppen för att distribuera ARM-mallar under testning

Registrera dig för Defender-portalen

Registrera din arbetsyta på Defender-portalen för att verifiera din lösningsinstallation, säkerställa sömlös inmatning i Unified Security Operations Platform och testa från slutpunkt till slutpunkt innan du publicerar. Mer information finns i Microsoft Sentinel i Microsoft Defender-portalen.

Skapa en lösning

En Microsoft Sentinel lösning är en mapp med anslutningsappar och innehållsfiler som paketeringsverktyget monterar i ett distributionsbart paket. Skapa mappstrukturen, lägg till paketeringsfilerna och skapa sedan varje innehållstyp.

Skapa din lösningsmappstruktur i GitHub

Följ dessa steg för att konfigurera lösningens mappstruktur:

  1. Skapa och växla till en ny gren i din fork. Använd ett beskrivande namn som add-<YourSolutionName>-solution:

    git checkout -b add-<YourSolutionName>-solution
    
  2. Skapa en mapp med lösningsnamnet under Solutions/:

    Solutions/<YourSolutionName>/
    ├── Data/
    │   └── Solution_<YourSolutionName>.json
    ├── SolutionMetadata.json
    ├── ReleaseNotes.md
    ├── Data Connectors/
    ├── Workbooks/
    ├── Analytic Rules/
    ├── Hunting Queries/
    ├── Playbooks/
    └── Parsers/
    
    Fil/mapp Obligatoriskt Innehåll
    Data/Solution_<YourSolutionName>.json Obligatoriskt Lösningsmanifest som visar alla innehållsfiler i lösningen och som styr verktyget för att skapa paket
    SolutionMetadata.json Obligatoriskt Publisher och marketplace-metadata: publisher-ID, erbjudande-ID, kategorier och supportinformation
    ReleaseNotes.md Obligatoriskt Versionshistoriktabell som krävs för varje paketöverföring
    Data Connectors/ Valfritt JSON-filer för kopplingar eller Azure Functions-kod för funktionsbaserade kopplingar
    Workbooks/ Valfritt JSON-filer för arbetsböcker och svartvita förhandsgranskningsskärmbilder
    Analytic Rules/ Valfritt YAML-analysregelmallar
    Hunting Queries/ Valfritt YAML-jaktfrågemallar
    Playbooks/ Valfritt JSON-spelboksfiler och Azure Logic Apps anpassade anslutningsdefinitioner
    Parsers/ Valfritt YAML Kusto-funktions-/parserdefinitioner

    Innehållsundermapparna är valfria. Skapa endast de mappar som gäller för din lösning. Du behöver inte inkludera alla innehållstyper, men om du uppfyller minimikraven för innehåll förbättras din kvalitet.

    Om du vill ha ett exempel på en fullständig mappstruktur öppnar du mappen Lösningar/ på lagringsplatsen och bläddrar bland några av de befintliga lösningarna.

Skapa paketeringsfilerna för lösningen

Data/Solution_<YourSolutionName>.json

Den här filen kör V3-paketeringsverktyget. Den visar alla innehållsfiler i din lösning och styr hur de monteras i mainTemplate.json. Varje innehållstyp är en matris. Lägg till en post per fil för varje innehåll du har. Mer information om paketeringsverktyget finns i Paketera din lösning.

I följande exempel har lösningen två analysregler, så matrisen "Analytic Rules" har två poster. Om du till exempel inte skapar några spelböcker tar du bort "Playbooks" nyckeln helt från filen.

{
  "Name": "Contoso MyProduct",
  "Author": "Contoso - support@contoso.com",
  "Logo": "<img src=\"https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/Logos/contoso.svg\" width=\"75px\" height=\"75px\">",
  "Description": "The Contoso MyProduct solution for Microsoft Sentinel enables you to ingest MyProduct logs into Microsoft Sentinel.",
  "BasePath": "C:/GitHub/Azure-Sentinel/Solutions/Contoso MyProduct",
  "Version": "1.0.0",
  "Metadata": "SolutionMetadata.json",
  "TemplateSpec": true,
  "Data Connectors": [
    "Data Connectors/ContosoMyProduct.json"
  ],
  "Workbooks": [
    "Workbooks/ContosoMyProductWorkbook.json"
  ],
  "Analytic Rules": [
    "Analytic Rules/ContosoMyProductSuspiciousLogin.yaml",
    "Analytic Rules/ContosoMyProductDataExfiltration.yaml"
  ],
  "Hunting Queries": [
    "Hunting Queries/ContosoMyProductThreatHunt.yaml"
  ],
  "Parsers": [
    "Parsers/ContosoMyProduct.yaml"
  ],
  "Playbooks": [
    "Playbooks/ContosoMyProduct-EnrichIncident/azuredeploy.json"
  ]
}
Fält Noteringar
Name Endast alfanumeriska tecken och blanksteg. Inga bindestreck, understreck eller symboler.
Author Format: Organization - email@domain.com
Logo HTML-tagg <img> som pekar på din logotyp-SVG vid den råa GitHub-URL:en under Logos/. Se Lägga till din logotyp för filkrav och verifieringsregler.
BasePath Din lokala lagringsplatssökväg till lösningsmappen. Används inte vid körning.
Version Måste matcha SolutionMetadata.json och mainTemplate.json.
TemplateSpec Kontrollera befintliga lösningar i repot för rätt värde för din anslutningstyp.
Innehållsmatriser En post per fil. Lägg till alla filer för en viss innehållstyp i matrisen. Ta bort nyckeln helt om du inte har något innehåll av den typen. Lämna inte en tom matris. Sökvägar är relativa till BasePath.

SolutionMetadata.json

Den här filen innehåller marketplace- och utgivarmetadata som används under Partnercenter-certifieringen.

{
  "publisherId": "contoso",
  "offerId": "contoso-myproduct-sentinel",
  "firstPublishDate": "2026-06-15",
  "lastPublishDate": "2026-06-15",
  "providers": [
    "Contoso"
  ],
  "categories": {
    "domains": [
      "Security - Threat Intelligence"
    ]
  },
  "support": {
    "name": "Contoso",
    "email": "support@contoso.com",
    "tier": "Partner",
    "link": "https://support.contoso.com"
  }
}

publisherId och offerId kommer från ditt Partnercenter-erbjudande. support.tier bör vara "Partner" för ISV-lösningar. Giltiga categories.domains värden finns i lösningskatalogen.

Fält Noteringar
publisherId Ditt utgivar-ID för Partnercenter.
offerId Ditt partnercenters erbjudande-ID. Det här värdet anges när du skapar erbjudandet i Partnercenter och kan inte ändras när det har skapats. Värdet måste matcha erbjudande-ID:t i Partnercenter exakt. Ett matchningsfel orsakar certifieringsfel. Se Paketera en SIEM-lösning för Microsoft Sentinel för hur erbjudande-ID skapas.
firstPublishDate ISO 8601-datum. Ange en gång och ändra den inte efter den första publiceringen.
lastPublishDate Uppdatera för att matcha varje ny version.
providers Matris med leverantörs-/produktprovidernamn.
categories.domains En eller flera domänkategorier från lösningskatalogen.
categories.verticals Valfria bransch vertikaler. Utelämna om inte tillämpligt.
support.tier "Partner"för ISV, "Microsoft" för Microsoft, "Community" för communityn.

ReleaseNotes.md

Filen ReleaseNotes.md registrerar ändringshistoriken för din lösning. Den här filen valideras vid PR-kontroller. Saknade eller felaktiga poster orsakar PR-avvisande.

Tabellen måste ha exakt tre kolumner med dessa exakta rubriknamn (inklusive fetstilsmarkörerna):

| **Version** | **Date Modified (DD-MM-YYYY)** | **Change History** |
|---|---|---|
| 1.0.1 | 12-06-2026 | Updated analytic rule query to fix false positives. |
| 1.0.0 | 01-06-2026 | Initial solution release. |

Valideringsregler

  • Versionsformat: X.Y.Z Ta inte med något v prefix. Alla tre delarna krävs.
  • Versionerna visas i fallande ordning med den senaste på raden först
  • Datumformat: DD-MM-YYYY med bindestreck (inte YYYY-MM-DD)
  • Kolumnrubriker måste matcha exakt, inklusive **bold** markörer
  • Cellen för ändringshistorik får inte vara tom
  • Lägg till en ny rad för varje versionsbump, inklusive stavfelskorrigeringar

Versionen i ReleaseNotes.md måste matcha versionen i SolutionMetadata.json, Data/Solution_*.jsonoch zip-filnamnet Package.

Placera logotypen på Logos/<YourProductName>.svg i lagringsplatsens rotkatalog. Referera till den i Data/Solution_<YourSolutionName>.json med hjälp av HTML-taggen <img> som pekar på den råa GitHub-URL:en:

"Logo": "<img src=\"https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/Logos/YourProductName.svg\" width=\"75px\" height=\"75px\">"

SVG-filen måste uppfylla följande krav:

Kontrollera Krav
Filformat .svg endast tillägget. PNG, JPEG eller andra format tillåts inte.
Filstorlek ≤ 5 KB
style=-attribut Inte tillåtet. Ta bort alla infogade style="..." attribut från element.
cls=-attribut Tillåts inte
xmlns:xlink namnrymd Inte tillåtet. Ta bort från <svg> rotelementet.
data-name-attribut Inte tillåtet. Illustrator lägger till dessa attribut som lagernamn. De måste tas bort.
xlink:href Inte tillåtet. Använd infogade SVG-sökvägar i stället för inbäddade bildreferenser.
<title> etikett Inte tillåtet. Ta bort alla <title>...</title> element.
Inbäddad PNG Inte tillåtet. Alla <image> element som refererar .png till filer avvisas
Elementvärden id Om det finns några id="..." attribut måste varje värde vara ett giltigt UUID (till exempel id="a1b2c3d4-e5f6-4789-abcd-0123456789ab"). Människoläsbara ID:n som id="Layer_1" fungerar inte. Alla ID:er måste vara unika i filen.

Caution

SVG-filer som exporteras direkt från Adobe Illustrator, Figma eller Inkscape utan rensning misslyckas nästan alltid. Vanliga exportartefakter som måste tas bort är följande:

  • style="stroke: none; fill: rgb(0,0,0); ..." på varje element: ersätt med de direkta attributen fill och stroke, eller ta bort om det är standardvärdet
  • data-name="Layer 1": Illustrator-lagernamnattributet; ta bort från varje <g> element
  • xmlns:xlink="http://www.w3.org/1999/xlink": På roten <svg> ; ta bort hela attributet
  • <title>Layer 1</title>: Inuti den första <g>; ta bort taggen
  • Icke-GUID-ID:n som id="Layer_1" eller id="cls-1": Ersätt med en UUID eller ta bort attributet id helt om det inte refereras till

En ren logotyp använder endast fill och stroke attribut direkt på sökvägselement, utan id attribut om du inte refererar till ett <defs> element. För ett minimalt giltigt exempel, se Logos/XBOW.svg.

Skapa en dataanslutning

Om du skapar ett anslutningsprogram med arbetsflödet för AI-agent kan du i stället läsa Skapa anpassade anslutningsprogram med AI-agent i Microsoft Sentinel i stället för att följa stegen nedan.

Välj anslutningstyp

Microsoft Sentinel stöder flera anslutningstyper, varav många använder Codeless Connector Framework (CCF). Välj den som passar bäst för din datakälla och önskad kundupplevelse.

Anslutningstyp Bäst för Vägledning
CCF-avsökning REST-API:er som anslutningsappen anropar enligt ett schema. Fullständigt SaaS, utan att någon agent eller virtuell dator krävs. Innehåller inbyggd hälsoövervakning och fullständigt stöd för Microsoft. Skapa ett kodfritt anslutningsprogram för Microsoft Sentinel
CCF-push Datakällor som skickar loggar till en Microsoft Sentinel slutpunkt. Microsoft Sentinel CCF-push-anslutningsprogram (förhandsversion)
CCF-blob Datakällor som skriver loggar till Azure Blob Storage eller Azure Data Lake Storage. Konfigurera Azure Storage-anslutningsappen
CCF GCP Datakällor som skriver loggar till Google Cloud Storage. Referens för GCP-dataanslutning
CEF Lokala enheter som skickar loggar i Common Event Format. Data hamnar i den välkända CommonSecurityLog tabellen. Ansluta CEF-formaterade loggar
Syslog Lokala enheter som bara kan generera rå Syslog. Minst föredragen; frågor kräver KQL-parsning. Samla in syslog-datakällor
Azure Functions(äldre) REST-API:er när CCF inte är genomförbart på grund av tekniska begränsningar. Använd endast som en sista utväg. Kontakta azuresentinelpartner@microsoft.com innan du börjar bygga för att bekräfta behörighet. Azure Functions anslutningsmall
Skapa anslutningsdefinitionen

Detaljerade byggsteg är specifika för varje anslutningstyp. Detaljerade byggsteg är specifika för varje anslutningstyp. Följ vägledningen för din valda typ från tabellen för anslutningstyp. .

Använd följande lösningar i Azure-Sentinel-lagringsplatsen som referenser för varje anslutningstyp.

Anslutningstyp Referensexempel
CCF-avsökning SentinelOne CCF-avsökningsanslutning
CCF-push Jamf Protect CCF push-anslutning
CCF-blob Cloudflare CCF-blobanslutning
CCF GCP Anslutningsprogram för Google Cloud Platform-granskningsloggar
CEF/Syslog Cisco ISE CEF- och Syslog-kopplingar

När JSON-anslutningsappen är klar placerar du den i undermappen Data Connectors/ för din lösningsmapp och namnger den ProviderNameApplianceName.json (inga blanksteg).

Testa din koppling

Important

Innan du skapar arbetsböcker, analysregler och annat innehåll kontrollerar du att anslutningsappen skickar data till den förväntade tabellen och att frågor returnerar resultat. Det är enklare att fånga upp dataflödes- och schemaproblem i det här skedet än när du har skapat beroende innehåll ovanpå dem. Se avsnittet Testa ditt paket för att paketera och distribuera anslutningsappen till en dev-arbetsyta.

Skapa ditt innehåll

Utöver dataanslutningsappen berikar du din lösning med SIEM-innehåll som hjälper kunderna att få omedelbart värde från dina data. Ytterligare SIEM-innehåll omfattar:

  • Arbetsböcker
  • Analysregler
  • Jaktfrågor
  • Playbooks
  • Parser

Det här innehållet är valfritt men rekommenderas. Minimikrav och kvalitetsbedömning finns i Microsoft Sentinel riktlinjer för lösningskvalitet.

Skapa arbetsböcker

Arbetsböcker är instrumentpaneler och visualiseringar som hjälper kunderna att förstå sina data. Information om hur du skapar en arbetsbok finns i Skapa arbetsböcker för Microsoft Sentinel.

Se följande referensexempel på Azure-Sentinel-lagringsplatsen för vägledning om arbetsboksdesign och layout:

Skapa analysregler

Analysregler är mallar som identifierar hot i dina data. Varje regel är en YAML-fil. Information om hur du skapar en analysregel finns i Skapa analysregler för Microsoft Sentinel.

Se följande referensexempel på Azure-Sentinel-lagringsplatsen för vägledning om analysregeldesign och layout:

Skapa jaktfrågor

Jaktfrågor är mallar som hjälper kunder att proaktivt söka efter hot i sina data. De visas på fliken Hunting så att analytiker kan köra dem manuellt. De delar samma YAML-struktur som analytiska regler, men är inte automatiserade; Schemalagda exekveringsfält gäller inte och orsakar ett granskningsfel om de inkluderas. Information om hur du skapar en jaktfråga finns i Skapa jaktfrågor för Microsoft Sentinel.

Se följande referensexempel på Azure-Sentinel-lagringsplatsen för vägledning om design och layout för jaktfrågor:

Skapa spelböcker

Spelböcker är automatiserade arbetsflöden för respons som hjälper kunder att hantera hot i sina data. Varje spelbok är ett Azure Logic Apps arbetsflöde som exporteras som en ARM-mall. De två nödvändiga filerna är azuredeploy.json och readme.md, placerade i Solutions/<YourSolutionName>/Playbooks/<PlaybookName>/. Information om hur du skapar en spelbok finns i Skapa spelböcker för Microsoft Sentinel.

Se följande referensexempel på Azure-Sentinel-lagringsplatsen för vägledning om spelboksdesign och layout:

Skapa parser

En parser är en Kusto-funktion som sparas i din Log Analytics-arbetsyta, som ligger framför råa loggdata och normaliserar dessa till rena fält som går att fråga mot. I stället för att skriva fältextraheringslogik i varje fråga anropar kunderna parser-aliaset en gång och får strukturerade resultat. Parsers definieras som YAML-filer och distribueras automatiskt när en kund installerar din lösning. Information om hur du skapar en parser finns i Skapa parsers för Microsoft Sentinel.

Se följande referensexempel i Azure-Sentinel-lagringsplatsen för vägledning om parsningsdesign och layout:

Testa ditt paket

Testningen följer paketet → distribuera → aktivera → validera cykel. Cykeln är densamma oavsett hur mycket innehåll du har skapat. V3-paketeringsverktyget konverterar dina lösningsfiler till en distribuerad ARM-mall (mainTemplate.json). Distribuera mallen till en Microsoft Sentinel utvecklingsarbetsyta, aktivera varje innehållstyp och bekräfta att den fungerar innan du skickar en PR.

Upprepa den här cykeln allteftersom du bygger. Du behöver inte slutföra alla innehållstyper innan du börjar testa. Paketera och distribuera när du slutför varje innehållstyp, kontrollera att den fungerar och lägg sedan till mer innehåll och paketera om.

Om din lösning innehåller en dataanslutning testar du anslutningsappen först innan du skapar beroende innehåll som analysregler och arbetsböcker. Allt SIEM-innehåll beror på data som flödar till rätt tabeller med rätt schema. Om anslutningsappen inte fungerar eller om schemat inte matchar vad dina regler förväntar sig måste du omarbeta det beroende innehållet. Kontrollera att data flödar först för att spara tid.

Note

Endast CCF-anslutningar för avsökning: Innan du paketerar kan du validera avsökningskonfigurationen för anslutningen utan att distribuera till en aktiv arbetsyta. I Microsoft Sentinel-tillägget för Visual Studio Code högerklickar du på anslutningsappens definitionsfil och väljer Testa anslutningsapp. Mer information finns i Steg 4: Verifiera anslutningskonfigurationen .

Paketera din lösning

När du har utvecklat och testat dina Microsoft Sentinel lösningskomponenter är paketeringen nästa viktiga steg i lösningens livscykel. Paketeringsverktyget konsoliderar allt ditt lösningsinnehåll – dataanslutningsprogram, parsare, arbetsböcker, analysregler, jaktfrågor, Azure anpassade logicappar och spelböcker – till ett standardiserat format för distribution. Mer information finns i Paketera en SIEM-lösning för Microsoft Sentinel.

Gå till marknaden

När du väljer Gå live går lösningen igenom en slutlig certifieringskontroll innan den blir offentligt tillgänglig. Efter certifieringen visas lösningen i Microsoft Sentinel innehållshubben och visas på varje kundklients Sentinel-arbetsyta under Innehållshubb. Det går också att hitta i Azure Marketplace. Lösningen är nu tillgänglig för alla Microsoft Sentinel kunder. För mer information, se Publicera SIEM-lösningar till Microsoft Sentinel.

Från och med nu kräver alla uppdateringar av lösningen, till exempel innehållsändringar, felkorrigeringar och versionsstötar, en ny GitHub PR, en ny paketversion och en ny partnercenteröverföring med den uppdaterade zip-filen. Information om hur du spårar status och supportproblem efter publicering finns i Spåra din lösning efter publicering i Partnercenter.