Simovits

Den nyanställda i informationssäkerhets-avdelningen?

Ingen har nog kunnat undgå det omvälvande nyhetsflödet som har förekommit rörande de senaste produkterna som använder generativa maskininlärningsmodeller. Dessa benämns ofta på olika sätt såsom AI (inkorrekt), chatrobotar (något bättre beroende på sammanhang) eller kollektivt via den mest kända produkten ChatGPT (vilket börjar närma sig varumärkesords-nivån). Självfallet ska denna blogg även beröra detta ämnet, men denna gång ifrån ett annat utgångspunkt än vad vi exempelvis har gjort tidigare i bland annat https://simovits.com/ai-din-nya-kollega/ eller https://simovits.com/den-nya-generationen-av-autonoma-bedragare/ där vi enbart betraktade riskerna med tillämpningen av dessa modeller.

I den här bloggen ska vi kort kolla på en generativ maskininlärningsmodell som är speciellt anpassad för att användas på ett konstruktivt sätt inom informations- och IT-säkerhets området. Vi kommer se att det finns fördelar med den här modellen framför andra vanligt förekommande; samtidigt som att somliga brister som är samma för alla generativa modeller kvarstår. Innan vi går direkt in på modellen/chatroboten så måste en kort bakgrund ges.

Bakgrund – OpenCRE

Open CRE (”Common Requirement Enumeration”) är ett OWASP projekt som har syftet att samla ihop och skapa en länkstruktur av olika säkerhets standarder, ramverk och riktlinjer. Olika områden och ämnen länka till gemensamma överkategorier (som i sin tur har mer specifika underkategorier) för att därefter indexeras. Med det så ska det bli tydligare hur alla olika standarder från olika parter relaterar till varandra, det ska vara lättare att söka på specifika nyckelord samt att länkar ska kunna underhållas mer effektivt.

Att i detalj beskriva OpenCRE än mer är utanför denna blogg, men kortfattat kan vi enklare summera ovan som det är ett sätt att samla ihop och söka i många av de vanligaste informations- och IT-säkerhetsramverken. Några exempel på ramverk är de från OWASP själva, ISO2700-serien, NIST SSDF och CWE.

Säkerhetskunnig chatrobot – OpenCRE-chat

En av bristerna med OpenCRE är att dess sökningsgränssnitt lämnar mycket till övers. Problemet med överkategori-systemet är att många sökningar ger svar som är väldigt generiska och kräver en del efterforskning innan det blir tydligt exakt hur svaret passar in mot sökningen. Det är därför positivt att OWASP har möjliggjort smidigare sökningar.

OpenCRE-chat (https://opencre.org/chatbot) är en specialiserad chatrobot som är byggd ovanpå Googles PaLM modell men med den extra information som finns i OpenCRE och informationen i de länkade ramverken. Gränssnittet är likartat med ChatGPT. En viktig skillnad är dock att svaren i så stor mån som möjligt ska referera tillbaka till OpenCRE och de olika inkluderade ramverken.

Låt oss testa lite så blir det tydligare vad som är fördelen och nackdelen. För att använda OpenCRE-chat krävs ett Google-konto men utöver det ska inga andra förberedelser vara nödvändiga.

I bilden nedan har jag frågat vad för sårbarheter som kan påverka S3 buckets, en AWS specifik lagringstjänst.

Notera hur det första svaret innehåller referenser i slutet. CWE-länken går till kategorin ”CWE-552: Files or Directories Accessible to External Parties”. Däri hittar vi följande referens till S3:

Det blir nu tydligare hur kategorin i CWE relaterar till våran fråga. Samtidigt har vi fått mer meningsfull information. Efter att vi har frågat om S3 går att fortsätta att ställa följdfrågor likt en dialog (”chat”). Exempelvis kan vi fortsätta som vi gjorde ovan med en fråga om flera AWS sårbarheter. Sedan kan vi i sin tur fråga än mer om någon av dessa:

Referenserna i slutet av svaret gör att det blir enklare att placera svaren och dess information i ett vedertaget sammanhang (ramverk).

Det finns egentligen ingen begränsning på vilka frågor som går att ställa till OpenCRE-chat. Detta är både en fördel men också en nackdel.

Betrakta dialogen nedan:

När jag frågar om ”qradar” så får jag till svar att det är ett python ramverk för datorsyn (ihop med massor av förklaringar om hur man använder det). Allt det här är fel, det finns inget som heter qrader i det här sammanhanget, och detta är något som modellen enbart ”hittar på” (ofta kallat att den ”hallucinerar”). Det här kan drabba alla generativa maskininlärningsmodeller. Fördelen här är emellertid att texten längst ner berättar att ingen referens finns i OpenCRE och att svaret därför kan vara mindre tillförlitligt. Som ofta går det att förmå modellen att förstå att den har fel, exempelvis enligt nedan.

Genom att uttryckligen nämna att det är ”IBM Qrader” så förstår den vad vi letar efter och ger rätt information. I det här fallet hade exempelvis en vanlig Google-sökning varit mycket mer effektiv för att hitta information!

Slutsats

Nu när vi har testat lite snabbt så går det redan att dra några slutsatser:

Bortsett från de som vi såg ovan har följande observation gjorts vid ytterligare användning:

Sammantaget kan nog OpenCRE-chat vara en tillgång för personer som jobbar mycket med Informationssäkerhet och de som är i gränslandet mellan det samt IT-säkerhet. En dialog med OpenCRE-chat kan vara ett bra första steg för att hitta referensen och få en översiktsbild av frågeställningen. Överlag är OpenCRE något som kan förenkla och förbättra referensen samt användandet av alla de olika ramverken som finns inom branschen, och OpenCRE-chat är det mest attraktiva gränssnittet till detta projekt.

Lite länkar (referenser)

https://www.opencre.org/

https://owasp.org/www-project-integration-standards/

https://owasp.org/opencre/projects/2023/09/11/openCRE

https://opencre.org/chatbot