Referer til API-en for eldre opplastingsindikatorer

API-en for Microsoft Sentinel opplastingsindikatorer tillot trusselintelligensplattformer eller egendefinerte programmer å importere indikatorer for kompromiss i STIX-formatet til et Microsoft Sentinel arbeidsområde. Dette dokumentet fungerer som en referanse til den eldre API-en.

Viktig

Denne API-en er i PREVIEW, men anbefales ikke lenger. Bruk den nye API-en for STIX-objekter i forhåndsversjon for å laste opp trusselintelligens. Hvis du vil ha mer informasjon, kan du se API for STIX-objekter. Tilleggsvilkårene for Azure Preview inkluderer ytterligere juridiske vilkår som gjelder for Azure funksjoner som er i beta, forhåndsversjon eller på annen måte ikke er utgitt i generell tilgjengelighet.

Et API-kall for opplastingsindikatorer har fem komponenter:

  1. Forespørsels-URI
  2. Meldingshode for HTTP-forespørsel
  3. Brødtekst for HTTP-forespørselsmelding
  4. Du kan også behandle HTTP-svarmeldingshodet
  5. Behandle brødteksten for HTTP-svarmeldingen eventuelt

Registrer klientprogrammet med Microsoft Entra ID

For å godkjenne til Microsoft Sentinel, krever forespørselen til API-en for opplastingsindikatorer et gyldig Microsoft Entra tilgangstoken. Hvis du vil ha mer informasjon om programregistrering, kan du se Registrere et program med Microsofts identitetsplattform eller se de grunnleggende trinnene som en del av konfigurasjonen av API-datakoblingen for opplastingsindikatorer.

Tillatelser

Denne API-en krever at kallet Microsoft Entra program gis Microsoft Sentinel bidragsyterrolle på arbeidsområdenivå.

Opprett forespørselen

Denne delen dekker de tre første av de fem komponentene som ble diskutert tidligere. Du må først hente tilgangstokenet fra Microsoft Entra ID, som du bruker til å sette sammen meldingshodet for forespørselen.

Hent et tilgangstoken

Hent et Microsoft Entra tilgangstoken med OAuth 2.0-godkjenning. V1.0 og V2.0 er gyldige tokener som godtas av API-en.

Versjonen av tokenet (v1.0 eller v2.0) som programmet mottar, bestemmes av accessTokenAcceptedVersion egenskapen i appmanifestet for API-en som programmet kaller opp. Hvis accessTokenAcceptedVersion den er satt til 1, vil programmet motta et v1.0-token.

Bruk Microsoft Authentication Library MSAL til å skaffe enten et v1.0- eller v2.0-tilgangstoken. Eller send forespørsler til REST-API-en i følgende format:

  • INNLEGG https://login.microsoftonline.com/{{tenantId}}/oauth2/v2.0/token
  • Overskrifter for bruk av Microsoft Entra app:
  • grant_type: «client_credentials»
  • client_id: {Client ID for Microsoft Entra App}
  • client_secret: {secret of Microsoft Entra App}
  • Omfanget: "https://management.azure.com/.default"

Hvis accessTokenAcceptedVersion appmanifestet er satt til 1, mottar programmet et v1.0-tilgangstoken selv om det kaller endepunktet for v2-tokenet.

Ressursen/omfangsverdien er målgruppen for tokenet. Denne API-en godtar bare følgende målgrupper:

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

Sette sammen forespørselsmeldingen

Det var to versjoner av den eldre API-en. Avhengig av endepunktet var det nødvendig med et annet matrisenavn i forespørselsteksten. Dette ble også representert av to versjoner av logisk app-koblingshandling.

Skjermbilde av handlingsnavn for logisk appkobling for Microsoft Sentinel API-en for opplastingsindikatorer.

  1. Koblingshandlingsnavn: Trusselintelligens - Last opp indikatorer for kompromiss (avskrevet)
    • Endepunktet: https://sentinelus.azure-api.net/{workspaceId}/threatintelligence:upload-indicators
    • Matrise med indikatornavn: value
    { "sourcesystem":"TIsource-example", "value":[] }
    
    
  • Handlingsnavn for kobling: Trusselintelligens – Last opp indikatorer for kompromiss (V2) (forhåndsversjon)
    • Endepunktet: https://sentinelus.azure-api.net/workspaces/{workspaceId}/threatintelligenceindicators:upload
    • Matrise med indikatornavn: indicators
      {
         "sourcesystem":"TIsource-example",
         "indicators":[]
      }
      

Forespørsels-URI

API-versjonskontroll: api-version=2022-07-01
Endepunktet: https://sentinelus.azure-api.net/workspaces/{workspaceId}/threatintelligenceindicators:upload?api-version=2022-07-01
Metoden: POST

Forespørselshode

Authorization: Inneholder OAuth2-bærertokenet
Content-Type: application/json

Forespørselstekst

JSON-objektet for brødteksten inneholder følgende felt:

Feltnavn Datatype Beskrivelse
SourceSystem (obligatorisk) Streng Identifiser navnet på kildesystemet. Verdien Microsoft Sentinel er begrenset.
indikatorer (obligatorisk) Matrise En matrise med indikatorer i STIX 2.0- eller 2.1-format

Opprett matrisen med indikatorer ved hjelp av spesifikasjonen for STIX 2.1-indikatorformatet, som har blitt kondensert her for enkelhets skyld med koblinger til viktige inndelinger. Vær også oppmerksom på at enkelte egenskaper, selv om de er gyldige for STIX 2.1, ikke har tilsvarende indikatoregenskaper i Microsoft Sentinel.

Egenskapsnavn Type: Beskrivelse
id (obligatorisk) Streng En ID som brukes til å identifisere indikatoren. Se avsnitt 2.9 for spesifikasjoner om hvordan du oppretter en id. Formatet ser omtrent slik ut indicator--<UUID>
spec_version (valgfritt) Streng STIX-indikatorversjon. Denne verdien kreves i STIX-spesifikasjonen, men siden denne API-en bare støtter STIX 2.0 og 2.1, vil API-en som standard brukes når dette feltet ikke er angitt 2.1
type (obligatorisk) Streng Verdien for denne egenskapen være indicator.
created (obligatorisk) Tidsstempel Se avsnitt 3.2 for spesifikasjoner av denne felles egenskapen.
modified (obligatorisk) Tidsstempel Se avsnitt 3.2 for spesifikasjoner av denne felles egenskapen.
name (valgfritt) Streng Et navn som brukes til å identifisere indikatoren.

Produsenter bør gi denne egenskapen for å hjelpe produkter og analytikere å forstå hva denne indikatoren faktisk gjør.
description (valgfritt) Streng En beskrivelse som gir flere detaljer og kontekst om indikatoren, potensielt inkludert formålet og dens nøkkelegenskaper.

Produsenter bør gi denne egenskapen for å hjelpe produkter og analytikere å forstå hva denne indikatoren faktisk gjør.
indicator_types (valgfritt) liste over strenger Et sett med kategoriseringer for denne indikatoren.

Verdiene for denne egenskapen skal komme fra indikator-type-ov
pattern (obligatorisk) Streng Gjenkjenningsmønsteret for denne indikatoren kan uttrykkes som et STIX-mønster eller et annet passende språk, for eksempel SNORT, YARA osv.
pattern_type (obligatorisk) Streng Mønsterspråket som brukes i denne indikatoren.

Verdien for denne egenskapen skal komme fra mønstertyper.

Verdien for denne egenskapen samsvare med typen mønsterdata som er inkludert i mønsteregenskapen.
pattern_version (valgfritt) Streng Versjonen av mønsterspråket som brukes for dataene i mønsteregenskapen, som samsvare med typen mønsterdata som er inkludert i mønsteregenskapen.

For mønstre som ikke har en formell spesifikasjon, bør bygg- eller kodeversjonen som mønsteret er kjent for å fungere med, brukes.

For STIX-mønsterspråket bestemmer spesifikasjonsversjonen av objektet standardverdien.

For andre språk bør standardverdien være den nyeste versjonen av mønsterspråket på tidspunktet for opprettingen av objektet.
valid_from (obligatorisk) Tidsstempel Tidspunktet da denne indikatoren regnes som en gyldig indikator for virkemåtene den er relatert til eller representerer.
valid_until (valgfritt) Tidsstempel Tidspunktet da denne indikatoren ikke lenger skal betraktes som en gyldig indikator for virkemåtene den er relatert til eller representerer.

Hvis egenskapen valid_until utelates, er det ingen begrensning på det siste tidspunktet indikatoren er gyldig.

Dette tidsstempelet være større enn valid_from tidsstempel.
kill_chain_phases (valgfritt) liste over strenger Kill chain-fasen(e) som denne indikatoren tilsvarer.

Verdien for denne egenskapen skal komme fra Kill Chain Phase.
created_by_ref (valgfritt) Streng Egenskapen created_by_ref angir ID-egenskapen for enheten som opprettet dette objektet.

Hvis dette attributtet utelates, er ikke kilden til denne informasjonen definert. Behold denne verdien udefinert for objektopprettere som ønsker å være anonyme.
revoked (valgfritt) Boolsk Tilbakekalte objekter anses ikke lenger som gyldige av objektoppretteren. Tilbakekalling av et objekt er permanent. Fremtidige versjoner av objektet med dette idkan ikke opprettes.

Standardverdien for denne egenskapen er usann.
labels (valgfritt) liste over strenger Egenskapen labels angir et sett med termer som brukes til å beskrive dette objektet. Vilkårene er brukerdefinerte eller klarerte grupper definert. Disse etikettene vises som koder i Microsoft Sentinel.
confidence (valgfritt) Heltall Egenskapen confidence identifiserer tilliten til at oppretteren har riktig data. Konfidensverdien være et tall i området 0-100.

Vedlegg A inneholder en tabell med normative tilordninger til andre konfidensskalaer som brukes ved fremlegging av konfidensverdien i en av disse skalaene.

Hvis konfidensegenskapen ikke finnes, er tilliten til innholdet uspesifisert.
lang (valgfritt) Streng Egenskapen lang identifiserer språket for tekstinnholdet i dette objektet. Når den er til stede, det være en språkkode som samsvarer med RFC5646. Hvis egenskapen ikke finnes, er en språket for innholdet (engelsk).

Denne egenskapen bør være til stede hvis objekttypen inneholder tekstegenskaper som kan oversettes (for eksempel navn, beskrivelse).

Språket for individuelle felt i dette objektet kan overstyre lang egenskapen i detaljerte markeringer (se avsnitt 7.2.3).
object_marking_refs (valgfritt, inkludert TLP) liste over strenger Egenskapen object_marking_refs angir en liste over ID-egenskaper for markeringsdefinisjonsobjekter som gjelder for dette objektet. Bruk for eksempel definisjons-ID-en for Trafikklysprotokoll (TLP) til å angi følsomheten til indikatorkilden. Hvis du vil ha mer informasjon om hvilke markeringsdefinisjons-ID-er som skal brukes for TLP-innhold, kan du se avsnitt 7.2.1.4

I noen tilfeller, selv om det er uvanlig, kan merking av definisjoner i seg selv være merket med delings- eller håndteringsveiledning. I dette tilfellet kan ikke denne egenskapen inneholde noen referanser til det samme Markeringsdefinisjonsobjektet (det vil eksempelvis ikke kan inneholde sirkelreferanser).

Se avsnitt 7.2.2 for ytterligere definisjon av datamarkeringer.
external_references (valgfritt) liste over objekter Egenskapen external_references angir en liste over eksterne referanser som refererer til ikke-STIX-informasjon. Denne egenskapen brukes til å angi én eller flere URL-adresser, beskrivelser eller ID-er til poster i andre systemer.
granular_markings (valgfritt) liste over detaljert merking Egenskapen granular_markings bidrar til å definere deler av indikatoren på en annen måte. Indikatorspråket er for eksempel engelsk, en men beskrivelsen er tysk. de

I noen tilfeller, selv om det er uvanlig, kan merking av definisjoner i seg selv være merket med delings- eller håndteringsveiledning. I dette tilfellet kan ikke denne egenskapen inneholde noen referanser til det samme markeringsdefinisjonsobjektet (det vil eksempel: den kan ikke inneholde sirkelreferanser).

Se avsnitt 7.2.3 for ytterligere definisjon av datamarkeringer.

Behandle svarmeldingen

Svarhodet inneholder en HTTP-statuskode. Referer til denne tabellen for mer informasjon om hvordan du tolker resultatet av API-kallet.

Statuskode Beskrivelse
200 Suksess. API-en returnerer 200 når én eller flere indikatorer er validert og publisert.
400 Ugyldig format. Noe i forespørselen er ikke riktig formatert.
401 Uautorisert.
404 Finner ikke filen. Denne feilen oppstår vanligvis når arbeidsområdets ID ikke blir funnet.
429 Antall forespørsler på et minutt er overskredet.
500 Serverfeil. Vanligvis en feil i API-en eller Microsoft Sentinel-tjenestene.

Svarteksten er en matrise med feilmeldinger i JSON-format:

Feltnavn Datatype Beskrivelse
Feil Matrise med feilobjekter Liste over valideringsfeil

Feilobjekt

Feltnavn Datatype Beskrivelse
recordIndex Int Indeks for indikatorene i forespørselen
errorMessages Matrise med strenger Feilmeldinger

Begrensningsgrenser for API-en

Alle begrensninger brukes per bruker:

  • 100 indikatorer per forespørsel.
  • 100 forespørsler per minutt.

Hvis det er flere forespørsler enn grensen, returneres en 429 http-statuskode i svarhodet med følgende svartekst:

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

Omtrent 10 000 indikatorer per minutt er den maksimale gjennomstrømmingen før en begrensningsfeil mottas.

Brødtekst for eksempelforespørsel

{
    "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"
                }
            ]
        }
    ]
}

Eksempel på svartekst med valideringsfeil

Hvis alle indikatorer er validert, returneres en HTTP 200-status med en tom svartekst.

Hvis validering mislykkes for én eller flere indikatorer, returneres svarteksten med mer informasjon. Hvis du for eksempel sender en matrise med fire indikatorer, og de tre første er gode, men den fjerde ikke har et id (et obligatorisk felt), genereres et HTTP-statuskode 200-svar sammen med følgende brødtekst:

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

Indikatorene sendes som en matrise, så begynner recordIndex0.

Neste trinn:

Denne API-en er eldre. Overfør for å bruke API-en for STIX-objekter til å laste opp trusselintelligens. Hvis du vil ha mer informasjon, kan du se API for STIX-objekter.