Přeskočit na hlavní obsah

Lidský vs. AI kód: Který je bezpečnější? Pravda o bezpečnostním dluhu a rizicích umělé inteligence

PT12M 12 min čtení
Rozsáhlá srovnávací analýza bezpečnosti softwaru vytvořeného člověkem a umělou inteligencí. Studie založená na datech z více než 500 000 vzorků kódu odhaluje, že AI kód není inherentně méně bezpečný, ale vykazuje kvalitativně odlišný profil zranitelností s nebezpečným paradoxem iterativního vylepšování.

Klíčová zjištění v kostce

Tato zpráva předkládá daty podloženou analýzu, která dochází k závěru, že kód generovaný umělou inteligencí není ze své podstaty více či méně bezpečný než kód psaný člověkem, ale jeho bezpečnostní profil je kvalitativně i kvantitativně odlišný. Ačkoli AI může urychlit vývoj, přináší ve velkém měřítku specifický soubor vysoce závažných zranitelností a vykazuje nebezpečné, protiintuitivní chování.

Tři zásadní zjištění

  • Lidský základ: 80,3 % aplikací vytvořených člověkem obsahuje alespoň jednu bezpečnostní chybu a téměř 75 % organizací má bezpečnostní dluh. Tím je stanoven chybný, ale známý výchozí stav.
  • Profil zranitelností AI: 45 % kódu generovaného AI obsahuje zranitelnosti, přičemž míra selhání u jazyka Java dosahuje až 70 %. AI kód je náchylný k zavádění většího objemu závažných bezpečnostních zranitelností, zejména OS Command Injection (CWE-78) a Hardcoded Credentials (CWE-798).
  • Paradox iterace: Kritické a neintuitivní riziko - iterativní "vylepšování" kódu pomocí LLM může paradoxně zvýšit počet kritických zranitelností o 37,6 % již po pěti iteracích.

Stav bezpečnosti v kódu psaném člověkem

Analýza téměř půl milionu aplikací odhaluje endemický stav bezpečnostních problémů. Zpráva State of Software Security 2025 od společnosti Veracode zjišťuje alarmující statistiky:

  • 80,3 % aplikací má alespoň jednu bezpečnostní chybu
  • Typická aplikace má hustotu chyb přibližně 47 chyb na jeden megabajt kódu
  • 56,2 % všech aplikací obsahuje chyby klasifikované jako "vysoce" nebo "kriticky" závažné
  • 74,2 % organizací nahromadilo bezpečnostní dluh
  • 49,9 % má kritický dluh (vysoce závažné, dlouhodobě neřešené chyby)

Dominantní kategorie chyb

Seznam OWASP Top 10 pro rok 2021 uvádí Broken Access Control jako riziko číslo jedna. Data ukazují, že 94 % testovaných aplikací mělo nějakou formu porušené kontroly přístupu. Navzdory letům zvyšování povědomí zůstávají Injection chyby hlavní hrozbou, přičemž 94 % aplikací bylo na ně testováno.

Bezpečnostní profil kódu generovaného AI

Zpráva Veracode GenAI Code Security Report pro rok 2025, která analyzovala více než 100 LLM, zjistila znepokojivé trendy:

  • 45 % kódu generovaného AI obsahuje bezpečnostní zranitelnosti
  • 70 % úryvků kódu v jazyce Java generovaných AI bylo nezabezpečených
  • Python, C# a JavaScript měly míru selhání mezi 38-45 %
  • 86 % míra selhání u Cross-Site Scripting (CWE-80)
  • 88 % míra selhání u Log Injection (CWE-117)

Nová rizika specifická pro AI

Významným a novým rizikem je tendence modelů AI navrhovat instalaci softwarových balíčků, které neexistují. Studie z roku 2024 zjistila, že přibližně 19,7 % balíčků navržených AI je "halucinovaných". Útočníci mohou tyto názvy balíčků zaregistrovat a publikovat škodlivý kód - útok nazývaný "slopsquatting".

Přímé srovnání: Člověk vs. AI

Rozsáhlá akademická studie analyzující více než 500 000 vzorků kódu poskytuje detailní srovnání:

Python

  • Modely AI vygenerovaly o 5 tisíc více zranitelných vzorků než lidský základ
  • Kód AI neúměrně často spouštěl CWE-78 (OS Command Injection)
  • Některé modely produkovaly více než 5x více instancí než lidský kód (13 419 vs. 2 243)

Java

  • Rozdíl byl ještě výraznější - modely AI vygenerovaly o 18 tisíc více zranitelných vzorků
  • Jeden model AI produkoval více než 8x více instancí CWE-532 (Information Exposure Through Log Files) než lidský kód (30 031 vs. 3 736)
  • Dominance v CWE-798 (Use of Hardcoded Credentials)

Paradox iterativního vylepšování

Nejznepokojivějším zjištěním je, že běžný pracovní postup iterativního vylepšování kódu pomocí AI může být nebezpečný. Kontrolovaný experiment ukázal:

  • První iterace: průměrně 2,1 zranitelnosti na vzorek
  • Střední iterace (3-7): průměrně 4,7 zranitelnosti na vzorek
  • Pozdní iterace (8-10): průměrně 6,2 zranitelnosti na vzorek
  • Celkový nárůst kritických zranitelností o 37,6 % již po pěti iteracích

"Model zachází s každým promptem jako s diskrétním úkolem bez kontextu. Neprovádí holistickou bezpečnostní regresní analýzu svých vlastních změn. To znamená, že běžný pracovní postup 'párového programátora' je zásadně nebezpečný."

Strategické důsledky pro organizace

Přijetí AI ve vývoji softwaru vyžaduje zásadní změnu bezpečnostní strategie. Přístup "důvěřuj, ale prověřuj" je nedostatečný.

Doporučený přístup

  1. Povinné revize kódu: Veškerý netriviální kód generovaný nebo upravený AI musí projít povinnou revizí bezpečného kódu provedenou lidským vývojářem vyškoleným k odhalování specifických vzorců chyb AI.
  2. Přizpůsobené nástroje:
    • SAST musí být vyladěny pro detekci vysokofrekvenčních zranitelností AI (CWE-78, CWE-798)
    • SCA musí detekovat "halucinované" závislosti
    • DAST se stává kritickým pro odhalení logických chyb
  3. Politika založená na riziku: Kód pro necitlivé interní nástroje může vyžadovat peer review, zatímco kód pro kritické aplikace vyžaduje revizi seniorním vývojářem.
  4. Zákaz iterativního vylepšování: Jakmile je kus kódu schválen, nemůže být iterativně "vylepšován" AI bez opětovného zahájení celého procesu revize.

Závěr: Nové paradigma bezpečnosti

Data jasně ukazují, že kód generovaný AI a kód psaný člověkem selhávají zásadně odlišnými způsoby. Lidé zavádějí chyby prostřednictvím složitosti a vyvíjející se logiky; AI zavádí chyby prostřednictvím naivního porovnávání vzorů a neznalosti bezpečnostního kontextu.

Tradiční model SSDLC, který předpokládá lineární a lidským tempem řízený tok, je narušen rychlostí a iterativní povahou AI. Je zapotřebí nový, dynamičtější a skeptičtější model - nepřetržitý obal skepticismu kolem interakce vývojáře a AI, se silným důrazem na lidskou revizi jako konečného arbitra před jakýmkoli commitem kódu.

Primární výzvou AI v softwarové bezpečnosti není technická, ale sociálně-technická. Vítěznou strategií není přidávat další brány (které budou obcházeny), ale snižovat tření spojené s bezpečnými postupy tak, aby se bezpečnost stala součástí zrychlení řízeného AI, nikoli překážkou.

Kompletní studie k prohlížení i ke stažení

Stáhněte si kompletní analýzu včetně všech dat, tabulek a 29 citovaných zdrojů, nebo si prohlédněte interaktivní infografiku s klíčovými zjištěními.

🎧 Poslechnout audio verzi studie
Délka:

Sdílet studii