Met een database vol IoC's wil je uiteraard aan de slag om deze nuttig in te zetten voor detectie of blokkade. Het exporteren van IoC's kan via het MISP portaal (bijvoorbeeld per event of via de webclient: https://misp.surfcert.nl/servers/rest) of, wat meer gebruikelijk is, via de API.

1. Maak een aparte Auth key aan voor API access

Als je voor eigen doeleinden de API wilt gebruiken kun je uiteraard de AUTH key gebruiken die aan je account is gebonden. Voor doelsystemen is het echter beter om een aparte AUTH key aan te maken.

  • Login in op https://misp.surfcert.nl en ga in het menu naar 'Global Actions' > 'My Profile'.
  • Klik vervolgens onderaan de pagina op 'Auth keys', en klik op 'Add Authentication key'.
  • Geef de auth key een juiste beschrijving voor welk doelsysteem het gebruikt gaat worden, en vink de 'Read only' aan als er enkel IoC's geexporteerd gaan worden.
  • 'Allowed IP's' mag leeggelaten worden gezien dat op een ander niveau geregeld is binnen MISP. Zet eventueel een 'Expiration' date op de auth key.
  • Klik tenslotte op 'Submit' om de auth key te genereren.

2. Gebruik de REST cliënt en exporteer de gewenste set aan IoC's voor het doelsysteem

Afhankelijk voor welk doelsysteem je de IoC's wilt gaan gebruiken ga je vervolgens aan de slag met het bouwen van een query. Het MISP portaal heeft hiervoor een handige webclient waarmee je kan experimenteren: https://misp.surfcert.nl/servers/rest

  • Login op https://misp.surfcert.nl en ga via het menu naar API > REST client.
  • Kies vervolgens rechts bovenin bij de 'Query Builder' voor het type: 'attributes' > 'restSearch'.
  • Er verschijnt nu een template met alle mogelijke opties die gebruikt kunnen worden in de query. Om daadwerkelijk de resultaten te zien van de query zet dan een vinkje bij de "Show result" optie.

  • Bij deze screenshot zijn alleen een paar opties gebruikt om de query te testen: niet ouder dan 30 dagen en de IDS flag moet aan staan.
  • Wanneer je de query uitvoert zie je de output en hoe de API call uitgevoerd kan worden met CURL of met PyMISP.

3. Voorbeelden van het exporteren van IoC's voor doelsystemen

Een export kan je simpel houden of heel gedetailleerd filteren op verschillende attributen. Om simpel te beginnen kan men met een paar attributen al aan de slag, bijv:

{
"returnFormat": "mandatory",
"type": "optional",
"date": "optional",
"to_ids": "optional",
}

Enkele voorbeelden van simpele query's:

Exporteer alle IoC's die type: domain zijn, de IDS flag heeft aan staan en niet ouder is dan 365 dagen.

curl \
-d '{"returnFormat":"text","to_ids":"1","date":"365d","type":"domain"}' \
-H "Authorization: <AUTH_KEY>" \
-H "Accept: application/json" \
-H "Content-type: application/json" \
-X POST https://misp.surfcert.nl/attributes/restSearch


Exporteer alle IoC's die relevant zijn voor suricata IDS, waarbij de IDS flag aan staat en niet ouder is dan 90 dagen.

curl \
-d '{"returnFormat":"suricata","to_ids":"1","date":"90d"}' \
-H "Authorization: <AUTH_KEY>" \
-H "Accept: application/json" \
-H "Content-type: application/json" \
-X POST https://misp.surfcert.nl/attributes/restSearch



Om specifieker te filteren op bepaalde type IoC's kan men o.a. deze attributen gebruiken:

Tags

Voor elk event is het de bedoeling dat er in ieder geval een TLP markering wordt opgenomen in een TAG. Alle NCSC events hebben ook een specifieke TAG die het NCSC bepaald. Deze kunnen gebruikt worden om een meer specifieke query te bouwen:

"tags": "optional",

tagOmschrijving
ncsc-nl-ndn:feed=\"exceptional\"Actuele dreiging met potentieel hoge impact
ncsc-nl-ndn:feed=\"selected\"Mogelijk getarget op nederland of specifieke sectoren, dreigingen met bijzondere interesse vanuit het NCSC
ncsc-nl-ndn:feed=\"generic\"Meer generieke dreigingsinformatie
tlp:amberTLP Amber
tlp:greenTLP Green
tlp:whiteTLP White

Threat level

Aan elk event wordt een 'threat level' toegekend, de mogelijke opties om hier op te filteren is als volgt:

"threat_level_id": "optional",

Threat level IDOmschrijving
0High
1Medium
2Low
3Undefined


Voor meer informatie over de API en velden zie ook:
https://www.circl.lu/doc/misp/automation/


  • No labels