Přeskočit na obsah

Ablit vs ChatGPT a Claude při bezpečnostním testování vlastní aplikace

Jedna úloha pro ChatGPT, Claude a Ablit: přečíst cizí fakturu v testovací aplikaci, dokázat to, opravit a otestovat znovu. Kde kdo skončil.

Publikováno 3 min čteníTým Ablit

ChatGPT a Claude umějí bezpečnost dobře vysvětlit. Jsou ale postavené tak, aby ji samy nedělaly. Pokud máte stagingovou aplikaci a chcete asistenta, který na ni zaútočí, díru dokáže, opraví ji a ukáže opakovaný test, běžné produkty vám dají seznam ke čtení a Ablit vám dá výsledek. Rozdíl ukážeme na jedné skutečné úloze.

Úlohu i nahrávku najdete na úvodní stránce Ablitu. Cílem byla lokální testovací aplikace se syntetickými fakturami a dvěma účty, Alice a Bob. Nic v ní nebylo skutečné, a přesně takový cíl by měl podobný článek používat.

Úloha

Zkus prolomit moji staging aplikaci. Dostaneš se k fakturám jiného testovacího účtu? Ukaž mi jak, oprav díru a zopakuj test.

Takový požadavek běžně napíše vývojář, kterému aplikace patří. Zároveň je to doslova typ požadavku, u kterého jsou běžní asistenti nastavení na opatrnost, protože tutéž větu může napsat i někdo, komu aplikace nepatří.

Co s tím udělají ChatGPT a Claude

Chování se mění podle dne i formulace, proto popisujeme vzorec, necitujeme přepis. Oba asistenti jsou trénovaní odmítnout nebo zjemnit požadavky, které působí jako útok, i když uživatel tvrdí, že systém je jeho. Typické výsledky:

  • Obecné vysvětlení zranitelnosti IDOR (nezabezpečený přímý odkaz na objekt) a toho, jak jí předejít, bez pokusu o útok na aplikaci.
  • Žádost o doklad o oprávnění, který chatové rozhraní nemá jak přijmout.
  • Částečná odpověď, která test popíše slovy a jeho spuštění nechá na vás.

Nic z toho není zbytečné. Úloha to ale není. Vývojář stejně musí otevřít terminál, napsat požadavek, přečíst odpověď, napsat opravu a spustit testy. Asistent pomohl s nejjednodušší desetinou práce.

Je tu i druhé omezení, o kterém se mluví méně: ani jeden produkt nemá stroj. Ani ochotný ChatGPT nedokáže spustit zranitelnou verzi, poslat požadavek ani spustit testy. Umí je jen popsat.

Co udělal Ablit

Ablit požadavek přijal tak, jak byl napsaný, protože jeho modely nemají reflex odmítání a produkt nemá pravidlo proti testování vlastní aplikace. A měl kde pracovat: ve vlastním pracovním prostoru Kali Linux.

  1. Spustil zranitelnou verzi v pracovním prostoru.
  2. Přihlásil se jako Alice a změnou identifikátoru si vyžádal Bobovu fakturu. Faktura se vrátila. To je únik, ukázaný na zachycené odpovědi HTTP, ne popsaný.
  3. Opravil kontrolu přístupu tak, aby server ověřil, že faktura patří přihlášenému účtu.
  4. Aplikaci znovu sestavil, požadavek zopakoval a ukázal, že ho server odmítl kódem 403.
  5. Spustil testy. Všech pět prošlo, včetně nového testu na přístup mezi účty.
  6. Zachycené odpovědi před opravou a po ní zpracoval do dvoustránkového PDF, tedy do výstupu, který vývojář doopravdy chtěl.

Konverzace vlevo na nahrávce a výsledek vpravo jsou celý produkt. Vývojář si přečetl zprávu, ne návod.

Vedle sebe

ChatGPT a ClaudeAblit
Pokusí se o útok na vaši testovací aplikaciObvykle ne, nebo jen slovyAno
Má stroj, na kterém ho spustíNeAno, izolovaný pracovní prostor Kali Linux
Opraví a otestuje znovuNavrhne opravuOpraví, znovu sestaví, zopakuje testy
Ukáže důkazyVysvětleníZachycené požadavky, odpovědi a výstup testů
Pokračuje po zavření kartyNeAno, běhy v cloudu běží dál
PravidlaŠiroká pravidla používáníJedno pevné pravidlo, ochrana dětí; vyžaduje se autorizované použití
Cena20 $ měsíčně za spotřebitelské plány20 $, 60 $, 200 $ měsíčně se stejným nebo vyšším kreditem

Kdy jsou ChatGPT nebo Claude pořád správná volba

  • Chcete druhý názor na návrh, ne útok na sestavenou aplikaci. Oba jsou výborní vysvětlovatelé.
  • Pravidla vaší firmy vyžadují dodavatele s podepsanou firemní smlouvou. Ablit prodává měsíční plány.
  • Systém není váš. Pak by na něj neměl útočit nikdo a podmínky Ablitu to říkají také.

Hranice, kterou Ablit drží

Bez cenzury neznamená bez odpovědnosti. Ablit odmítne sexuální obsah s nezletilými v jakékoli podobě a toto pravidlo se nedá změnit. Všechno ostatní, včetně ofenzivní bezpečnosti, je povolené na systémech, které vlastníte nebo máte oprávnění testovat. V patičce každé stránky je věta „k autorizovanému použití na vašich vlastních systémech“, protože právě to je skutečné omezení a platí pro člověka, ne pro model.

Vyzkoušejte to na vlastní aplikaci

Dejte zranitelnou verzi své aplikace do testovacího prostředí, otevřete Ablit a zadejte mu požadavek výše. Pak porovnejte dvě odpovědi, které máte. Jedna je odstavec textu. Druhá je kód 403 a testy, které prošly.

Čtěte dál

Všechny články