Preskočiť na obsah

Ablit vs ChatGPT a Claude pri bezpečnostnom testovaní vlastnej aplikácie

Jedna úloha pre ChatGPT, Claude a Ablit: prečítať cudziu faktúru v testovacej aplikácii, dokázať to, opraviť a otestovať znova. Kde kto skončil.

Publikované 3 min čítaniaTím Ablit

ChatGPT a Claude vedia bezpečnosť dobre vysvetliť. Sú však postavené tak, aby ju samy nerobili. Ak máte stagingovú aplikáciu a chcete asistenta, ktorý na ňu zaútočí, dieru dokáže, opraví ju a ukáže opakovaný test, bežné produkty vám dajú zoznam na čítanie a Ablit vám dá výsledok. Rozdiel ukážeme na jednej skutočnej úlohe.

Úlohu aj nahrávku nájdete na úvodnej stránke Ablitu. Cieľom bola lokálna testovacia aplikácia so syntetickými faktúrami a dvoma účtami, Alice a Bob. Nič v nej nebolo skutočné, a presne taký cieľ by mal podobný článok používať.

Úloha

Skús prelomiť moju staging aplikáciu. Dostaneš sa k faktúram iného testovacieho účtu? Ukáž mi ako, oprav dieru a zopakuj test.

Takú požiadavku bežne napíše vývojár, ktorému aplikácia patrí. Zároveň je to doslova typ požiadavky, pri ktorej sú bežní asistenti nastavení na opatrnosť, lebo tú istú vetu môže napísať aj niekto, komu aplikácia nepatrí.

Čo s tým urobia ChatGPT a Claude

Správanie sa mení podľa dňa aj formulácie, preto opisujeme vzorec, nie citujeme prepis. Obaja asistenti sú trénovaní odmietnuť alebo zjemniť požiadavky, ktoré pôsobia ako útok, aj keď používateľ tvrdí, že systém je jeho. Typické výsledky:

  • Všeobecné vysvetlenie zraniteľnosti IDOR (nezabezpečený priamy odkaz na objekt) a toho, ako jej predísť, bez pokusu o útok na aplikáciu.
  • Žiadosť o doklad o oprávnení, ktorý chatové rozhranie nemá ako prijať.
  • Čiastočná odpoveď, ktorá test opíše slovami a jeho spustenie nechá na vás.

Nič z toho nie je zbytočné. Úloha to však nie je. Vývojár aj tak musí otvoriť terminál, napísať požiadavku, prečítať odpoveď, napísať opravu a spustiť testy. Asistent pomohol s najjednoduchšími desiatimi percentami.

Je tu aj druhé obmedzenie, o ktorom sa hovorí menej: ani jeden produkt nemá stroj. Aj ochotný ChatGPT nedokáže spustiť zraniteľnú verziu, poslať požiadavku ani spustiť testy. Vie ich len opísať.

Čo urobil Ablit

Ablit požiadavku prijal tak, ako bola napísaná, lebo jeho modely nemajú reflex odmietania a produkt nemá pravidlo proti testovaniu vlastnej aplikácie. A mal kde pracovať: vo vlastnom pracovnom priestore Kali Linux.

  1. Spustil zraniteľnú verziu v pracovnom priestore.
  2. Prihlásil sa ako Alice a zmenou identifikátora si vyžiadal Bobovu faktúru. Faktúra sa vrátila. To je únik, ukázaný na zachytenej odpovedi HTTP, nie opísaný.
  3. Opravil kontrolu prístupu tak, aby server overil, že faktúra patrí prihlásenému účtu.
  4. Aplikáciu znova zostavil, požiadavku zopakoval a ukázal, že server ju odmietol kódom 403.
  5. Spustil testy. Všetkých päť prešlo, vrátane nového testu na prístup medzi účtami.
  6. Zachytené odpovede pred opravou a po nej spracoval do dvojstranového PDF, teda do výstupu, ktorý vývojár naozaj chcel.

Konverzácia vľavo na nahrávke a výsledok vpravo sú celý produkt. Vývojár si prečítal správu, nie návod.

Vedľa seba

ChatGPT a ClaudeAblit
Pokúsi sa o útok na vašu testovaciu aplikáciuZvyčajne nie, alebo len slovamiÁno
Má stroj, na ktorom ho spustíNieÁno, izolovaný pracovný priestor Kali Linux
Opraví a otestuje znovaNavrhne opravuOpraví, znova zostaví, zopakuje testy
Ukáže dôkazyVysvetlenieZachytené požiadavky, odpovede a výstup testov
Pokračuje po zatvorení kartyNieÁno, behy v cloude bežia ďalej
PravidláŠiroké pravidlá používaniaJedno pevné pravidlo, ochrana detí; vyžaduje sa autorizované použitie
Cena20 $ mesačne za spotrebiteľské plány20 $, 60 $, 200 $ mesačne s rovnakým alebo vyšším kreditom

Kedy sú ChatGPT alebo Claude stále správna voľba

  • Chcete druhý názor na návrh, nie útok na zostavenú aplikáciu. Obaja sú výborní vysvetľovatelia.
  • Pravidlá vašej firmy vyžadujú dodávateľa s podpísanou firemnou zmluvou. Ablit predáva mesačné plány.
  • Systém nie je váš. Potom by naň nemal útočiť nikto a podmienky Ablitu to hovoria tiež.

Hranica, ktorú Ablit drží

Bez cenzúry neznamená bez zodpovednosti. Ablit odmietne sexuálny obsah s maloletými v akejkoľvek podobe a toto pravidlo sa nedá zmeniť. Všetko ostatné, vrátane ofenzívnej bezpečnosti, je povolené na systémoch, ktoré vlastníte alebo máte oprávnenie testovať. V päte každej stránky je veta „na autorizované použitie na vašich vlastných systémoch“, lebo práve to je skutočné obmedzenie a platí pre človeka, nie pre model.

Vyskúšajte to na vlastnej aplikácii

Dajte zraniteľnú verziu svojej aplikácie do testovacieho prostredia, otvorte Ablit a zadajte mu požiadavku vyššie. Potom porovnajte dve odpovede, ktoré máte. Jedna je odsek textu. Druhá je kód 403 a testy, ktoré prešli.

Čítajte ďalej

Všetky články