Delen via


Verwijzen naar de API voor uploadindicatoren (preview) om bedreigingsinformatie te importeren in Microsoft Sentinel

Met de API voor uploadindicatoren van Microsoft Sentinel kunnen bedreigingsinformatieplatforms of aangepaste toepassingen indicatoren van inbreuk in de STIX-indeling importeren in een Microsoft Sentinel-werkruimte. Of u nu de API gebruikt met de API-gegevensconnector van Microsoft Sentinel uploadindicatoren of als onderdeel van een aangepaste oplossing, dit document fungeert als referentie.

Belangrijk

Deze API is momenteel in PREVIEW. De Aanvullende voorwaarden voor Azure-previews omvatten aanvullende juridische voorwaarden die van toepassing zijn op Azure-functies die in bèta of preview zijn of die anders nog niet algemeen beschikbaar zijn.

Een API-aanroep voor uploadindicatoren heeft vijf onderdelen:

  1. De aanvraag-URI
  2. Berichtheader http-aanvraag
  3. Hoofdtekst van HTTP-aanvraagbericht
  4. De header van het HTTP-antwoordbericht optioneel verwerken
  5. Eventueel de hoofdtekst van het HTTP-antwoordbericht verwerken

Uw clienttoepassing registreren bij Microsoft Entra-id

Voor verificatie bij Microsoft Sentinel is voor de aanvraag voor de API voor uploadindicatoren een geldig Microsoft Entra-toegangstoken vereist. Zie Een toepassing registreren bij het Microsoft Identity Platform of de basisstappen bekijken als onderdeel van de installatie van de API-gegevensconnector voor uploadindicatoren voor meer informatie over toepassingsregistratie.

Machtigingen

Voor deze API moet de aanroepende Microsoft Entra-toepassing de rol Microsoft Sentinel-inzender op werkruimteniveau worden verleend.

De aanvraag maken

In deze sectie worden de eerste drie van de vijf eerder besproken onderdelen behandeld. U moet eerst het toegangstoken verkrijgen van Microsoft Entra-id, die u gebruikt om de berichtkop van uw aanvraag samen te stellen.

Een toegangstoken verkrijgen

Een Microsoft Entra-toegangstoken verkrijgen met OAuth 2.0-verificatie. V1.0 en V2.0 zijn geldige tokens die door de API worden geaccepteerd.

De versie van het token (v1.0 of v2.0) die uw toepassing ontvangt, wordt bepaald door de accessTokenAcceptedVersion eigenschap in het app-manifest van de API die uw toepassing aanroept. Als accessTokenAcceptedVersion dit is ingesteld op 1, ontvangt uw toepassing een v1.0-token.

Gebruik MICROSOFT Authentication Library MSAL om een v1.0- of v2.0-toegangstoken te verkrijgen. Of verzend aanvragen naar de REST API in de volgende indeling:

  • VERZENDEN https://login.microsoftonline.com/{{tenantId}}/oauth2/v2.0/token
  • Headers voor het gebruik van Microsoft Entra App:
  • grant_type: "client_credentials"
  • client_id: {Client-id van Microsoft Entra App}
  • client_secret: {geheim van Microsoft Entra App}
  • draagwijdte: "https://management.azure.com/.default"

Als accessTokenAcceptedVersion in het app-manifest is ingesteld op 1, ontvangt uw toepassing een v1.0-toegangstoken, ook al wordt het v2-tokeneindpunt aangeroepen.

De waarde van de resource/het bereik is de doelgroep van het token. Deze API accepteert alleen de volgende doelgroepen:

  • https://management.core.windows.net/
  • https://management.core.windows.net
  • https://management.azure.com/
  • https://management.azure.com

Het aanvraagbericht samenstellen

Er zijn twee versies van de API voor uploadindicatoren. Afhankelijk van het eindpunt is een andere matrixnaam vereist in de hoofdtekst van de aanvraag. Dit wordt ook vertegenwoordigd door twee versies van de actie voor de connector van de logische app.

Schermopname van de actienamen van de logic app-connector voor de API voor uploadindicatoren van Microsoft Sentinel.

  • Naam van connectoractie: Bedreigingsinformatie - Indicatoren voor inbreuk uploaden (afgeschaft)

    • Eindpunt: https://sentinelus.azure-api.net/{workspaceId}/threatintelligence:upload-indicators
    • Matrix van indicatorennaam: value
      {
         "sourcesystem":"TIsource-example",
         "value":[]
      }
      
  • Naam van connectoractie: Bedreigingsinformatie - Indicatoren voor inbreuk uploaden (V2) (preview)

    • Eindpunt: https://sentinelus.azure-api.net/workspaces/{workspaceId}/threatintelligenceindicators:upload
    • Matrix van indicatorennaam: indicators
      {
         "sourcesystem":"TIsource-example",
         "indicators":[]
      }
      

Aanvraag-URI

API-versiebeheer: api-version=2022-07-01
Eindpunt: https://sentinelus.azure-api.net/workspaces/{workspaceId}/threatintelligenceindicators:upload?api-version=2022-07-01
Methode: POST

Aanvraagheader

Authorization: Bevat het OAuth2 bearer-token
Content-Type: application/json

Aanvraagtekst

Het JSON-object voor de hoofdtekst bevat de volgende velden:

Veldnaam Gegevenstype Beschrijving
SourceSystem (vereist) tekenreeks Identificeer de naam van uw bronsysteem. De waarde Microsoft Sentinel is beperkt.
indicatoren (vereist) matrix Een matrix van indicatoren in STIX 2.0- of 2.1-indeling

Maak de matrix met indicatoren met behulp van de specificatie van de STIX 2.1-indicatorindeling, die hier voor uw gemak is verkort met koppelingen naar belangrijke secties. Let ook op sommige eigenschappen, terwijl deze geldig zijn voor STIX 2.1, geen bijbehorende indicatoreigenschappen hebben in Microsoft Sentinel.

Eigenschapsnaam Type Description
id (vereist) tekenreeks Een id die wordt gebruikt om de indicator te identificeren. Zie sectie 2.9 voor specificaties over het maken van een id. De indeling ziet er ongeveer als volgt uit indicator--<UUID>
spec_version (optioneel) tekenreeks STIX-indicatorversie. Deze waarde is vereist in de STIX-specificatie, maar omdat deze API alleen STIX 2.0 en 2.1 ondersteunt wanneer dit veld niet is ingesteld, wordt de API standaard ingesteld op 2.1
type (vereist) tekenreeks De waarde van deze eigenschap moet zijn indicator.
created (vereist) timestamp Zie sectie 3.2 voor specificaties van deze gemeenschappelijke eigenschap.
modified (vereist) timestamp Zie sectie 3.2 voor specificaties van deze gemeenschappelijke eigenschap.
name (optioneel) tekenreeks Een naam die wordt gebruikt om de indicator te identificeren.

Producenten moeten deze eigenschap verstrekken om producten en analisten te helpen begrijpen wat deze indicator daadwerkelijk doet.
description (optioneel) tekenreeks Een beschrijving die meer details en context biedt over de indicator, mogelijk inclusief het doel en de belangrijkste kenmerken ervan.

Producenten moeten deze eigenschap verstrekken om producten en analisten te helpen begrijpen wat deze indicator daadwerkelijk doet.
indicator_types (optioneel) lijst met tekenreeksen Een set categorisaties voor deze indicator.

De waarden voor deze eigenschap moeten afkomstig zijn van het indicatortype-ov
pattern (vereist) tekenreeks Het detectiepatroon voor deze indicator kan worden uitgedrukt als STIX-patroon of een andere geschikte taal, zoals SNORT, YARA, enzovoort.
pattern_type (vereist) tekenreeks De patroontaal die in deze indicator wordt gebruikt.

De waarde voor deze eigenschap moet afkomstig zijn van patroontypen.

De waarde van deze eigenschap moet overeenkomen met het type patroongegevens dat is opgenomen in de patrooneigenschap.
pattern_version (optioneel) tekenreeks De versie van de patroontaal die wordt gebruikt voor de gegevens in de patrooneigenschap, die moet overeenkomen met het type patroongegevens dat is opgenomen in de patrooneigenschap.

Voor patronen die geen formele specificatie hebben, moet de build- of codeversie waarmee het patroon werkt, worden gebruikt.

Voor de STIX-patroontaal bepaalt de specificatieversie van het object de standaardwaarde.

Voor andere talen moet de standaardwaarde de meest recente versie van de patroontaal zijn op het moment dat dit object is gemaakt.
valid_from (vereist) timestamp De tijd van waaruit deze indicator wordt beschouwd als een geldige indicator van het gedrag dat aan of vertegenwoordigt.
valid_until (optioneel) timestamp Het tijdstip waarop deze indicator niet langer als een geldige indicator moet worden beschouwd van het gedrag dat aan of vertegenwoordigt.

Als de eigenschap valid_until wordt weggelaten, is er geen beperking voor de laatste tijd waarvoor de indicator geldig is.

Deze tijdstempel moet groter zijn dan de valid_from tijdstempel.
kill_chain_phases (optioneel) lijst met tekenreeksen De kill chain-fase(s) waarop deze indicator overeenkomt.

De waarde voor deze eigenschap moet afkomstig zijn van de Kill Chain-fase.
created_by_ref (optioneel) tekenreeks De eigenschap created_by_ref geeft de id-eigenschap op van de entiteit die dit object heeft gemaakt.

Als dit kenmerk wordt weggelaten, is de bron van deze informatie niet gedefinieerd. Houd deze waarde niet gedefinieerd voor objectmakers die anoniem willen blijven.
revoked (optioneel) boolean Ingetrokken objecten worden niet langer als geldig beschouwd door de maker van het object. Het intrekken van een object is permanent; toekomstige versies van het object met dit id object mogen niet worden gemaakt.

De standaardwaarde van deze eigenschap is onwaar.
labels (optioneel) lijst met tekenreeksen De labels eigenschap geeft een set termen op die worden gebruikt om dit object te beschrijven. De termen zijn door de gebruiker gedefinieerd of vertrouwensgroep gedefinieerd. Deze labels worden weergegeven als tags in Microsoft Sentinel.
confidence (optioneel) geheel getal De confidence eigenschap identificeert het vertrouwen dat de maker heeft in de juistheid van de gegevens. De betrouwbaarheidswaarde moet een getal in het bereik van 0-100 zijn.

Bijlage A bevat een tabel met normatieve toewijzingen aan andere betrouwbaarheidsschalen die moeten worden gebruikt bij het presenteren van de betrouwbaarheidswaarde in een van deze schalen.

Als de betrouwbaarheidseigenschap niet aanwezig is, is het vertrouwen van de inhoud niet opgegeven.
lang (optioneel) tekenreeks De lang eigenschap identificeert de taal van de tekstinhoud in dit object. Wanneer deze aanwezig is, moet het een taalcode zijn die voldoet aan RFC5646. Als de eigenschap niet aanwezig is, is en de taal van de inhoud (Engels).

Deze eigenschap moet aanwezig zijn als het objecttype vertaalbare teksteigenschappen bevat (bijvoorbeeld naam, beschrijving).

De taal van afzonderlijke velden in dit object kan de lang eigenschap in gedetailleerde markeringen overschrijven (zie sectie 7.2.3).
object_marking_refs (optioneel, inclusief TLP) lijst met tekenreeksen De object_marking_refs eigenschap geeft een lijst met id-eigenschappen op van markeringsdefinitieobjecten die van toepassing zijn op dit object. Gebruik bijvoorbeeld de definitie-id voor het markeren van het Traffic Light Protocol (TLP) om de gevoeligheid van de indicatorbron aan te wijzen. Zie sectie 7.2.1.4 voor meer informatie over welke markeringsdefinitie-id's moeten worden gebruikt voor TLP-inhoud

In sommige gevallen, hoewel ongebruikelijk, kunnen markeringsdefinities zelf worden gemarkeerd met richtlijnen voor delen of afhandelen. In dit geval mag deze eigenschap geen verwijzingen naar hetzelfde object Markeringsdefinitie bevatten (dat wil gezegd, het mag geen kringverwijzingen bevatten).

Zie sectie 7.2.2 voor een verdere definitie van gegevensmarkeringen.
external_references (optioneel) lijst met objecten De external_references eigenschap geeft een lijst met externe verwijzingen op die verwijst naar niet-STIX-informatie. Deze eigenschap wordt gebruikt voor het opgeven van een of meer URL's, beschrijvingen of id's voor records in andere systemen.
granular_markings (optioneel) lijst met gedetailleerde markeringen De granular_markings eigenschap helpt bij het anders definiëren van onderdelen van de indicator. De indicatortaal is bijvoorbeeld Engels, en maar de beschrijving is Duits. de

In sommige gevallen, hoewel ongebruikelijk, kunnen markeringsdefinities zelf worden gemarkeerd met richtlijnen voor delen of afhandelen. In dit geval mag deze eigenschap geen verwijzingen bevatten naar hetzelfde object Markeringsdefinitie (dit kan dus geen kringverwijzingen bevatten).

Zie sectie 7.2.3 voor verdere definitie van gegevensmarkeringen.

Het antwoordbericht verwerken

De antwoordheader bevat een HTTP-statuscode. Raadpleeg deze tabel voor meer informatie over het interpreteren van het resultaat van de API-aanroep.

Statuscode Beschrijving
200 Geslaagd. De API retourneert 200 wanneer een of meer indicatoren zijn gevalideerd en gepubliceerd.
400 Ongeldige indeling. Iets in de aanvraag is niet juist opgemaakt.
401 Onbevoegd.
404 Het bestand is niet gevonden. Deze fout treedt meestal op wanneer de werkruimte-id niet wordt gevonden.
429 Het aantal aanvragen in een minuut is overschreden.
500 Serverfout. Meestal een fout in de API- of Microsoft Sentinel-services.

De hoofdtekst van het antwoord is een matrix met foutberichten in JSON-indeling:

Veldnaam Gegevenstype Beschrijving
fouten Matrix met foutobjecten Lijst met validatiefouten

Foutobject

Veldnaam Gegevenstype Beschrijving
recordIndex int Index van de indicatoren in de aanvraag
errorMessages Matrix tekenreeksen Foutberichten

Beperkingslimieten voor de API

Alle limieten worden per gebruiker toegepast:

  • 100 indicatoren per aanvraag.
  • 100 aanvragen per minuut.

Als er meer aanvragen zijn dan de limiet, wordt er een 429 HTTP-statuscode in de antwoordheader geretourneerd met de volgende antwoordtekst:

{
    "statusCode": 429,
    "message": "Rate limit is exceeded. Try again in <number of seconds> seconds."
}

Ongeveer 10.000 indicatoren per minuut is de maximale doorvoer voordat een beperkingsfout wordt ontvangen.

Tekst van voorbeeldaanvraag

{
    "sourcesystem": "test", 
    "indicators":[
        {
            "type": "indicator",
            "spec_version": "2.1",
            "id": "indicator--10000003-71a2-445c-ab86-927291df48f8", 
            "name": "Test Indicator 1",
            "created": "2010-02-26T18:29:07.778Z", 
            "modified": "2011-02-26T18:29:07.778Z",
            "pattern": "[ipv4-addr:value = '172.29.6.7']", 
            "pattern_type": "stix",
            "valid_from": "2015-02-26T18:29:07.778Z"
        },
        {
            "type": "indicator",
            "spec_version": "2.1",
            "id": "indicator--67e62408-e3de-4783-9480-f595d4fdae52", 
            "created": "2023-01-01T18:29:07.778Z",
            "modified": "2025-02-26T18:29:07.778Z",
            "created_by_ref": "identity--19f33886-d196-468e-a14d-f37ff0658ba7", 
            "revoked": false,
            "labels": [
                "label 1",
                "label 2"
            ],
            "confidence": 55, 
            "lang": "en", 
            "external_references": [
                {
                    "source_name": "External Test Source", 
                    "description": "Test Report",
                    "external_id": "e8085f3f-f2b8-4156-a86d-0918c98c498f", 
                    "url": "https://fabrikam.com//testreport.json",
                    "hashes": {
                        "SHA-256": "6db12788c37247f2316052e142f42f4b259d6561751e5f401a1ae2a6df9c674b"
                    }
                }
            ],
            "object_marking_refs": [
                "marking-definition--613f2e26-407d-48c7-9eca-b8e91df99dc9"
            ],
            "granular_markings": [
                {
                    "marking_ref": "marking-definition--beb3ec79-03aa-4594-ad24-09982d399b80", 
                    "selectors": [ "description", "labels" ],
                    "lang": "en"
                }
            ],
            "name": "Test Indicator 2",
            "description": "This is a test indicator to demo valid fields", 
            "indicator_types": [
                "threatstream-severity-low", "threatstream-confidence-80"
            ],
            "pattern": "[ipv4-addr:value = '192.168.1.1']", 
            "pattern_type": "stix",
            "pattern_version": "2.1",
            "valid_from": "2023-01-01T18:29:07.778Z", 
            "valid_until": "2025-02-26T18:29:07.778Z",
            "kill_chain_phases": [
                {
                    "kill_chain_name": "lockheed-martin-cyber-kill-chain", 
                    "phase_name": "reconnaissance"
                }
            ]
        }
    ]
}

Voorbeeldtekst van antwoord met validatiefout

Als alle indicatoren zijn gevalideerd, wordt een HTTP 200-status geretourneerd met een lege antwoordtekst.

Als de validatie mislukt voor een of meer indicatoren, wordt de hoofdtekst van het antwoord geretourneerd met meer informatie. Als u bijvoorbeeld een matrix met vier indicatoren verzendt en de eerste drie goed zijn, maar de vierde geen (vereist veld) heeft id , wordt een HTTP-statuscode 200-antwoord gegenereerd, samen met de volgende hoofdtekst:

{
    "errors": [
        {
            "recordIndex":3, 
            "errorMessages": [
                "Error for Property=id: Required property is missing. Actual value: NULL."
            ]
        }
    ]
}

De indicatoren worden verzonden als een matrix, dus begint bij recordIndex 0.

Volgende stappen

Zie de volgende artikelen voor meer informatie over het werken met bedreigingsinformatie in Microsoft Sentinel: