Jak na bezpečnost pomocí ChatGPT, část II

Jak na bezpečnost pomocí ChatGPT, část II

Pojem umělá inteligence dnes slyšíme nejen v odborných kruzích, ale i z řad široké veřejnosti a médií, která se vezou na vlně slávy ChatGPT. V minulém dílu jsme se podívali na princip fungování ChatGPT, jeho předchůdce a problémy spojené s využíváním tohoto „chytrého“ pomocníka. Nyní na původní informace navážeme a podíváme se, jak lze prakticky využívat ChatGPT pro různé aktivity v oblasti bezpečnosti.

    ChatGPT                    umělá inteligence                       Open AI                      bezpečnost

 

Od vydání minulého dílu uběhlo několik týdnů, což očekávaně znamená obrovské množství novinek na poli umělé inteligence. Pojďme začít tím, že došlo ke zveřejnění nové varianty ChatGPT, která je postavena na modelu GPT-4. Od svého předchůdce GPT-3 (resp. GPT-3.5), který měl 175 mld. parametrů, se odlišuje nejen velikostí, která se odhaduje na 1 bilion parametrů1 , ale také novými funkcemi. GPT-4 dostupný pro předplatitele ChatGPT Plus dokáže analyzovat vizuální vstup, což jednoduše znamená, že dokáže pochopit, co se nachází na obrázku, přečíst na něm text, a dokonce i pochopit a analyzovat text za využití OCR technologie2 . Na vstupu může nyní mít až 25 000 slov (ChatGPT je limitován na 4 000 tokenů, tedy zhruba 3 000 slov, která dokáže přečíst a analyzovat).

Vývojáři z OpenAI zapracovali hlavně na dvou vlastnostech modelu – uvažovacích schopnostech a vlastní bezpečnosti modelu. První zmíněná vlastnost doznala vylepšení převážně v řešení náročných problémů a při analýze komplexních uživatelských instrukcí. Vylepšení v oblasti bezpečnosti se týkají menší pravděpodobnosti generování nepravdivého nebo škodlivého obsahu. Z dalších novinek můžeme stručně zmínit zpřístupnění pluginů pro ChatGPT. Jedním z nich je např. plugin pro vyhledávání na internetu. ChatGPT může díky tomu procházet aktuální informace dostupné na internetu a poskytnout odpovědi na dotazy, ke kterým by dříve kvůli limitaci dat ke konci roku 2021 neměl přístup.

Jak už to tak u softwaru bývá, nezřídka se v něm vyskytují chyby, které mohou mít vliv na jeho bezpečnost. V březnu vlivem technické chyby v produktu mohla část uživatelů vidět historii konverzací jiných aktuálně přihlášených uživatelů. Tato chyba s dopadem na soukromí byla vývojáři během několika hodin detekována, služba odstavena a následně implementována oprava. Nejen na základě tohoto incidentu se však italská vláda rozhodla na úrovni internetových poskytovatelů zablokovat přístup na IP adresy společnosti OpenAI, na kterých služba ChatGPT běží3. OpenAI na toto zablokování reagovala zveřejněním bug bounty programu, zpřístupněním služby pouze osobám starším 18 let a celkově důraznějším přístupem k bezpečnosti dat, uživatelů i produktu samotného. [1]

V neposlední řadě je důležité zmínit výzvu Elona Muska, dalších expertů na AI a odborníků z řad IT osobností, ve které požadují pozastavit vývoj modelů umělé inteligence na šest měsíců do doby, než bude vyřešena bezpečnost těchto produktů a jejich „pravdomluvnost“. V otevřeném dopisu narážejí na časté případy, kdy umělá inteligence generovala nepravdivé texty, a dotahují tyto případy až do extrémů: “Should we let machines flood our information channels with propaganda and untruth? Should we automate away all the jobs, including the fulfilling ones? Should we develop nonhuman minds that might eventually outnumber, outsmart, obsolete and replace us? Should we risk loss of control of our civilization?” [2] Ironií toho celého je, že právě Musk pár dnů po zveřejnění této výzvy oznámil práci na vlastním modelu umělé inteligence TruthGPT.

Snímek obrazovky 2023 06 25 232018Obr. 1: Politika obsahu se nezřídka dá obejít a přesvědčit umělou inteligenci, aby vašemu požadavku vyhověla.

Využití pro red team a umělá limitace výstupů

Ačkoli nových věcí v oblasti AI je mnohem více, pojďme se nyní zaměřit na podstatu druhého dílu tohoto seriálu. V následujících odstavcích se budeme zabývat výstupy, které byly vygenerovány ještě pomocí původního modelu ChatGPT založeného na GPT-3.5, jelikož v době psaní článku nebyl model GPT-4 k dispozici.

Umělá inteligence obecně může mít spoustu využití nejen v životě spojeném s IT, ale může v budoucnosti umožňovat automatizaci některých běžných úkolů, řešit problémy, nebo dokonce vytvářet umění, což je vidět na příkladu DALL·E 2. My se dnes ale budeme bavit o využití ChatGPT v oblasti bezpečnosti, konkrétně jak pro účely red teamingu, tak opačně a primárně o využití na straně blue teamu.

V oblasti red teamu může ChatGPT pomáhat v mnoha oblastech (a to se nejedná o vyčerpávající výčet):

  • tvorba skriptů pro útočníky (powershell, Office makra apod.),
  • vytvoření textového obsahu pro podvodné stránky,
  • generování obsahu phishingových e-mailů,
  • úprava SQL query tak, aby zneužívala SQL injection zranitelnost a např. získala data z databáze,
  • tvorba payloadů.

U těchto ofenzivních případů využití ChatGPT však často narážíme na porušení politiky obsahu OpenAI4 (content policy), tudíž něco, co bychom mohli nazvat kodexem umělé inteligence. Tato politika kromě jiného nedovoluje využívat

Snímek obrazovky 2023 06 25 233437Obr. 2: Žádost v češtině o vytvoření Ansible scriptu pro hardening SSH na RHEL 8

Snímek obrazovky 2023 06 25 233750Obr. 3: Využití ChatGPT pro zjištění správných bash příkazů a jejich použití

ChatGPT ke generování obsahu, který by měl nenávistný, obtěžující, násilný, sebepoškozující, sexuální, urážlivý nebo podvodný charakter. Stejně tak je zakázáno využívat ChatGPT k ilegálním aktivitám. Jistě, jedná se o podmínky používání, což těžko nějakého útočníka zastaví. Je úsměvné si na chvíli představit hackera, kterého by takové podmínky odradily.

Pokud požádáte ChatGPT, aby vám připravil phishingový e-mail, v jehož obsahu bude stát, že výše ročních bonusů je uvedena v přiloženém XLSX dokumentu a pro aktuální přepočet z dolarů na české koruny je třeba povolit makra, je pravděpodobné5 , že umělá inteligence váš požadavek odmítne.

Samozřejmě je ve většině případů možné odmítnutí požadavku obejít přeformulováním původní žádosti. Např. místo požadavku na vygenerování phishingového e-mailu stačí požádat o vygenerování běžného e-mailu se stejným obsahem. Stejné je to v případech generování kódu, který může být očividně využitý pro škodlivé účely. Např. při žádosti o vytvoření VBA skriptu, který spustí powershell.exe přes LOLBIN utilitu forfiles.exe, nám ChatGPT nejprve nevyhověl. Stačilo ale říct, že skript bude použit pro legitimní aktivitu, a výstup byl na světě (viz Obr. 1).

Nutno podotknout, že za poslední týdny našeho testování se detekce žádostí o vytvoření kódu, který by mohl být zneužitý pro škodlivé účely, výrazně zlepšila. Stejně tak již většinou není možné použít argument, že se jedná o výzkumné nebo akademické účely, což zprvopočátku bylo dostačující. Je otázkou, jak se k tomu společnost OpenAI postaví, a zda bude stále více omezovat využití ChatGPT pro tvorbu evidentně škodlivého obsahu (z hlediska bezpečnosti). Zda je takové omezování umělé inteligence správné nebo ne, ponecháme na posouzení čtenářů.

Využití pro blue team

V rámci využití ChatGPT pro blue team máme daleko více osobních zkušeností. I bez nadsázky můžeme říct, že tento nástroj využíváme na denní bázi. Protože pokud víte, na co se ptát a jak vám může ChatGPT pomoci, zjistíte, že vám dokáže ušetřit spoustu času. Pojďme se teď podívat na některé konkrétní příklady jeho využití.

Jednou z možností, jak může ChatGPT pomyslně podat pomocnou ruku, je poskytování rad. Takovým příkladem může být, pokud nejste zarytý linuxák, „hledání“ správných bash příkazů. Je to jednoznačně rychlejší než pročítání dokumentace nebo jiných zdrojů z Google. Jen sami posuďte na Obr. 2, jak efektivní to může být, pokud neznáte správný příkaz, který chcete použít.

Snímek obrazovky 2023 06 25 234448

Druhou oblastí, kde můžete ChatGPT reálně využít a výstup pro vás bude mít značnou přidanou hodnotu, je hardening. Požádali jsme tuto umělou inteligenci, aby vytvořila Ansible script pro hardening SSH dle CIS benchmarku pro RHEL 86 . V tomto případě došlo k chybě a správný skript se jí podařilo vytvořit až na třetí pokus. Přesto to dokáže ušetřit značné množství času. Na Obr. 3 není zachycena celá konverzace ani celý výstup, ale pro ukázku bude jistě dostačující. Jak je navíc vidět, ChatGPT dokáže komunikovat i v češtině. Zde ale musíme upozornit, že kvalita textového výstupu, zvlášť v případě generování obsahu e-mailu, nemusí být vždy ideální.

Využití najde ChatGPT také při vytváření skriptů. Ať už se jedná o python skripty, jejichž cílem je zautomatizovat určité úlohy nebo integrovat dva nástroje mezi sebou, powershell skripty pro práci s Microsoft Defender nebo Exchange, různé skripty využívající API rozhraní bezpečnostních technologií, které ve své firmě používáte, ve všech těchto případech dokáže ChatGPT pomoci a z úkolů trvajících hodiny vám stačí krátká konverzace s umělou inteligencí. Ta nezabere většinou více než pět minut a daný skript je na světě. Na Obr. 6 můžete vidět vygenerovaný skript, který získá uživatele z dané AD skupiny a aplikuje na ně anti-phishing politiku v rámci Microsoft Defender for Office 365 (která je aplikovatelná pouze na uživatele, nikoli na skupiny).

Kromě vytváření skriptů nebo programů dokáže ChatGPT také optimalizovat již stávající. Naším zadáním bylo časově optimalizovat skript získávající data ze dvou aplikací, která jsou následně předávána do jednoho CSV reportu na základě jednotného identifikátoru (MAC adresa). ChatGPT navrhl několik optimalizací, z čehož dvě hlavní byly využití jiné knihovny pro práci s CSV (zaměřena na rychlejší zprocesování) a vytvoření a využití více procesů. Kromě návrhu samotné úpravy provedl a vygeneroval nový, časově optimalizovaný skript.

 Snímek obrazovky 2023 06 25 234735Obr. 4: Vygenerování skriptu pro úpravu Anti-phishing politiky v Microsoft Defender (zkráceno autorem)

Snímek obrazovky 2023 06 25 234905Obr. 5: Analýza kódu malware, který je pro běžného člověka nečitelný [3]

Nejen optimalizace kódu, ale i hledání zranitelností jsou věci, ve kterých vám dokáže tato umělá inteligence pomoci. Stačí vzít kus kódu, překopírovat jej do chatu a zeptat se, zda tam nenajde nějaké zranitelnosti. Nejedná se o ideální variantu, kterou byste mohli oficiálně využít ve své Secure Software Development Lifecycle politice, ale bavíme-li se o tom, jak vám může zjednodušit pracovní život, určitě je nutné zmínit i tuto její schopnost.

Dalším místem, kde jsme hledali časové úspory, je tvorba DLP pravidel, konkrétně regulárních výrazů. Vytváření komplexních výrazů může být běh na dlouhou trať, zvlášť chcete-li minimalizovat false positive a zajistit alespoň základní míru optimalizace. Vytvořili jsme seznam osmi bodů, které popisovaly, co vše má regulární výraz detekovat, a požádali jsme ChatGPT, aby vytvořil takový regulární výraz, který bude co nejvíce optimalizovaný z hlediska času. Výstup nás mile překvapil, a ačkoli jsme se shodli, že bychom sami dali dohromady něco podobného, určitě by to trvalo daleko delší dobu.

Poslední oblastí, kterou tu zmíníme, je reverzní inženýrství a analýza malwaru. Jedná se o aktivity, pro které je zapotřebí množství nástrojů, ať už se jedná o disassemblery, deobfuskátory nebo jiné typy programů. ChatGPT dokáže analyzovat kód, který je pro běžného člověka nečitelný (viz Obr. 5). Zároveň umí identifikovat škodlivé aktivity v částech kódu a pomoci bezpečnostnímu analytikovi pochopit účel daného malwaru.

Možností využití ChatGPT v oblasti bezpečnosti je nespočet. Pro další konkrétní příklady doporučujeme články, které se touto problematikou zabývají7 .

Může AI vyřešit nedostatek bezpečnostních specialistů?

Umělá inteligence zatím nedokáže zastoupit plnohodnotného bezpečnostního specialistu. Přesto ale dokáže těm stávajícím pomoci s plněním různých, časově náročných úkolů, jako je vytváření skriptů, investigace bezpečnostních incidentů, analýza a optimalizace kódu nebo třeba vytváření hardeningových politik. Je ale nutné dbát na bezpečnost a primárně počítat s tím, že všechna vstupní data mohou být následně použita pro trénování modelu (viz předchozí díl tohoto seriálu).

Závěr

Umělá inteligence se stává stále důležitější v našem světě a její význam bude jen růst. Od autonomních vozidel až po personalizovanou medicínu, to vše může výrazně ovlivnit náš každodenní život. Alan Turing, jeden z předních vědců v oblasti umělé inteligence, kdysi řekl: „Vidíme pouze na krátkou vzdálenost dopředu, ale vidíme tam spoustu věcí, které je třeba udělat“. [4] Měli bychom si uvědomit, že umělá inteligence může být velmi dobrá, ale také velmi špatná. Budoucnost umělé inteligence závisí na tom, jak ji budeme používat. Pokud budeme mít na paměti etické a společenské zásady, může být neocenitelným nástrojem pro řešení mnoha problémů. Pokud se však těmito zásadami řídit nebudeme, může se stát nebezpečnou a nepředvídatelnou silou. Je tedy na nás, abychom se poučili z minulosti a zajistili, že bude umělá inteligence využívána s respektem k etickým a společenským normám. Pokud to dokážeme, může být klíčovým prvkem budoucího úspěchu a inovací.

Snímek obrazovky 2023 06 26 000255Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript.

Snímek obrazovky 2023 06 26 000449Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript.

Poznámky pod čarou:

  1.  Starší uniklé informace, které můžete vidět kolovat po internetu, odhadovaly velikost na 100 bilionů parametrů. Takové informace však už dříve vyvrátil CEO společnosti OpenAI Sam Altman.
  2. Příklady analýzy jsou dostupné na research blogu OpenAI https://openai.com/research/gpt-4.
  3. Detailnější informace přímo ve vyjádření italského úřadu Data Protection Authority https://www.gpdp.it/web/guest/home/docweb/-/docweb-display/ docweb/9870847#english.
  4. Kompletní znění na webu https://labs.openai.com/policies/content-policy
  5. Proč pravděpodobné? Protože se jedná o umělou inteligenci, která na podobné dotazy nebo požadavky může vždy odpovědět trochu (nebo i značně) jiným způsobem. Stejně tak na požadavek stejný slovo od slova může odpovědět dvěma různými (byť pravděpodobně alespoň částečně podobnými) způsoby. Jelikož se nejedná o chatbota postaveného na rozhodovacím stromu, reakce na stejné podněty mohou být odlišné.
  6. Ansible je automatizační nástroj, který se používá mimo jiné pro konfiguraci linuxových operačních systémů. Pomocí tzv. playbooků se konfigurace na cílových systémech nastavuje. V tomto případě se konfiguruje sshd_config tak, aby byl v souladu se standardem bezpečné konfigurace CIS benchmark, konkrétně pro platformu RHEL 8.
  7. Využitím ChatGPT v oblasti bezpečnosti se zabývá např. článek blogu Anugrah SR https://anugrahsr.in/chatgpt-for-hacking/, výzkumníci společnosti Check Point https://research.checkpoint.com/2022/opwnai-ai-that-can- -save-the-day-or-hack-it-away/ či SentinelOne [5].

Použité zdroje:

[ 1 ] Our approach to AI safety. In: OpenAI Blog [online]. April 5, 2023 [cit. 2023-04-24]. Dostupné z: https://openai.com/blog/our-approach-to-ai-safety
[ 2 ] FUTURE OF LIFE INSTITUTE. Pause Giant AI Experiments: An Open Letter [online]. [cit. 2023-04-24]. Dostupné z: https://futureoflife.org/ open-letter/pause-giant-ai-experiments/
[ 3 ] MILENKOSKI, Aleksandar. 11 Problems ChatGPT Can Solve For Reverse Engineers and Malware Analysts. In: SentinelLABS [online]. December 21, 2022 [cit. 2023-03-03]. Dostupné z: https://www.sentinelone.com/labs/11-problems-chatgpt-can-solve-for-reverse-engineers-and-malware-analysts/
[ 4 ] TURING, Alan Mathison. Mind. Mind, 1950, 59.236: 433-460.


Vytisknout