Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book

Literka I w LLM oznacza Inteligencję :-) Zobaczcie na zgłoszenie bug bounty do curla wygenerowane w AI. Oraz reakcję autora narzędzia.

03 stycznia 2024, 10:45 | W biegu | komentarzy 13

Daniel Stenberg, twórca narzędzia curl właśnie pochwalił się swoimi „przygodami” z AI.

Jaki tu mamy problem, ano taki, że w międzynarodowym środowisku często zgłoszenia błędów bezpieczeństwa są niejasne, skrótowe, często niestety mają też postać tzw. beg bounty („zgłoszę coś, co nie jest podatnością, a nuż wypłacą mi parę dolarów”). Wszystko to sprawia, że porządna analiza każdego zgłoszenia wymaga sporej ilości energii (nie chcemy przeoczyć zgłoszenia rzeczywiście istotnego problemu).

No ale teraz do całego bigosu dochodzi jeszcze AI. Czemu nie zapuścić sztucznej inteligencji na kodzie źródłowym jakiegoś narzędzia i niech wygeneruje mi kilka ładnych raportów? Wysyłam do producenta narzędzia / aplikacji raport i liczę na sukces. Beg bounty nowej generacji.

Zobaczcie dwa przykłady.

Przykład pierwszy (zgłaszający przyznał się, że wykorzystał Barda): https://hackerone.com/reports/2199174 [Critical] Curl CVE-2023-38545 vulnerability code changes are disclosed on the internet.

Twórca curla komentuje zgłoszenie w ten sposób:

Raport ocieka typowymi halucynacjami w stylu AI: miesza fakty i szczegóły znane ze starych problemów/zgłoszeń bezpieczeństwa, tworząc oraz wymyślając coś nowego, co nie ma związku z rzeczywistością. Zmiany o których mowa w zgłoszeniu nie zostały ujawnione w Internecie. Zmiany, które faktycznie zostały ujawnione, dotyczyły poprzednich, starszych problemów bezpieczeństwa. Zgodnie zresztą z zamierzeniami (informacje zawarte były changelogu).

The report however reeks of typical AI style hallucinations: it mixes and matches facts and details from old security issues, creating and making up something new that has no connection with reality. The changes had not been disclosed on the Internet. The changes that actually had been disclosed were for previous, older, issues. Like intended.

Przykład drugi (nieco bardziej realistycznie rozpisany przez zgłaszającego, chociaż kompletnie fejkowy): https://hackerone.com/reports/2298307 Buffer Overflow Vulnerability in WebSocket Handling

Twórca curla prawie dał się nabrać, a przynajmniej zainteresował się przynętą zawieszoną na haczyku:

Raport został sporządzony całkiem starannie. Zawierał szczegółowe informacje i był napisany poprawnym angielskim. Zawierał również proponowaną poprawkę. Wyglądało na to, że ten użytkownik wykrył dziurę i rozumiał problem na tyle, aby znaleźć rozwiązanie. Jeśli chodzi o raporty dotyczące bezpieczeństwa, wyglądało to lepiej niż przeciętne pierwsze zgłoszenie w ramach bug bounty.

The report was pretty neatly filed. It included details and was written in proper English. It also contained a proposed fix. It did not stand out as wrong or bad to me. It appeared as if this user had detected something bad and as if the user understood the issue enough to also come up with a solution. As far as security reports go, this looked better than the average first post.

Zobaczcie jednak dalszy sposób dyskusji AI z autorem curla. AI generuje rozbudowane, „mądrze wyglądające” wypowiedzi. Używa pełnych, okrągłych zdań. Nie szczędzi detali (również fragmentów kodu). W końcu AI posiada nieograniczony czas :-) Wszystko spoko, tylko że wszystkie te odpowiedzi są bez sensu.

W pewnym momencie Daniel Stenberg ma chyba dość i punktuje delikwenta krótko:

Nie. Ten kod, o którym teraz mówisz, nie jest obecny w bieżącym git master. Wygląda na to, że to Twoja edycja. Dziwne wydaje mi się narzekanie na kod, który sam napisałeś.

Nope. That code you talk about now is not present in current git master. It looks like an edit done by you. Seems odd to complain about code you wrote yourself.

~ms

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

  1. Łukasz

    Ktoś się zachłysnął nowinką techniczną. Wystarczy pierwsze lepsze zapytanie do Bard’a w sprawie problemu w kodzie na poziomie mid- lub senior developera i nasz AI ostro tripuje jak jakiś ostry imprezowicz. Nie mówię, że taka podpowiedź nie jest pomocna ale trzeba mieć mocne kompetencje, żeby odsiać wartościowe ziarno z często nielogicznego, a już na pewno niegwarantowanego wywodu :)

    Odpowiedz
    • skirge

      taki trochę lepszy Google
      tyle, że zmyśla (np struktury opisujące formaty znanych plików – nie wiem skąd on to bierze).

      Odpowiedz
    • Dawid

      Dlaczego dałeś przykład Barda? Akurat to dużo słabsza AI niż GPT.

      Odpowiedz
    • Jacek

      No patrz a już TomTom zwolnił 100 programistów

      Odpowiedz
  2. janusz ajti

    LLM można zadawać jedynie takie pytania, na które zna się odpowiedź.

    Odpowiedz
    • źwy

      +1

      Ja, po otrzymanej odpowiedzi, uwielbiam pytać „czy na pewno?”. Często pada odpowiedź typu „przepraszam za wprowadzenie w błąd, blablabla”. Waha się :) .

      Odpowiedz
  3. Andy

    Jak posiedzi sie na ChatGPT wiele godzin i przegada z chatem dziesiatki roznych problemow, to zuwaza sie pewien schemat jego odpowiedzi,np. wymuszona i nieuzasadniona czesto uprzejmosc, powtarzanie zapetlonych schematow rozmowania czy natretnosc odpowiedzi. Kazdy, kto spedzi z chatem odpowiednia ilosc godzin, bedzie wiedzial o czym mowie. Model GPT 3.5 bo nie wiem jak w 4 (nie mowiac o 4.5 dla wybrancow). Stan na grudzień 2023.

    Odpowiedz
    • Piotr

      Bo to po prostu wygląda i brzmi tak, jakbyś prowadził rozmowę z handlowcem albo osobą ze sprzedaży… ;)

      Odpowiedz
    • Mike

      Wersja 3.5 jest 100 lat za sam wiesz kim w porównaniu do GPT-4. Różnica jest ogromna i serio, opisywanie swoich doświadczeń bazując na 3.5 kompletnie mija się z celem.

      Odpowiedz
  4. Kaja Ogródek

    AI jest niezgodne z nauczaniem kościoła

    Odpowiedz
    • Gelhard

      którego kościoła? tego latającego potwora spaghetti :)

      Odpowiedz
  5. Greg

    A wszystko przez to, że ChatGPT i Brad to gen.AI bazujące na tym co znajda w necie. Zatem, jak ktoś próbuje raportować coś co nie zostało jeszcze upublicznione, to rezultat będzie mizerny.
    Dopiero zbazowanie gen.AI na odpowiednim zasobie wiedzy może poczynić różnice. Spróbujcie np na IBM watsonx.ai z wyborem odpowiedniej bazy wiedzy źródłowej. Jestem przekonany, że rezultat będzi zgoła inny.
    Osobna sprawa to „prompt engineering” – czyli co tak właściwie wpisane zostało jako „tło” zapytania do AI. Jakość rezultatu gen.AI również mocno zależą od opisu otoczenia problemu.

    Odpowiedz
  6. Szymon

    Dlatego jestem hydraulikiem. Przynajmniej na razie pracy nie stracę.

    Odpowiedz

Odpowiedz