Can Developers rely on LLMs for Secure IaC Development?
Deze studie evalueert GPT-4o en Gemini 2.0 Flash voor veilige Infrastructure as Code-ontwikkeling, waarbij wordt geconstateerd dat hoewel gestuurde prompts de detectie van security smells verbeteren in zowel vereenvoudigde fragmenten als real-world repositories, de modellen nog steeds moeite hebben met het genereren van veilige code, waarbij slechts een klein deel van de outputs aan beveiligingsstandaarden voldoet, zelfs wanneer dit expliciet is geïnstrueerd.
Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer
Stel je voor dat je een huis bouwt, maar in plaats van bakstenen en cement gebruik je code om je muren, ramen en beveiligingssystemen automatisch te assembleren. Dit wordt Infrastructure as Code (IaC) genoemd. Het is alsof je een robot hebt die de digitale infrastructuur voor je bouwt.
Het probleem is dat als je de robot een slecht blauwdruk geeft, hij een huis kan bouwen met onvergrendelde deuren, ramen die naar de straat gericht zijn, of een kluis waar de sleutel op de voordeur is geplakt. Deze fouten worden "security smells" (beveiligingsgeuren) genoemd.
De auteurs van dit paper stelden een grote vraag: Kunnen we AI-chatbots (zoals GPT-4o en Gemini) vertrouwen om ons te helpen deze blauwdrukken veilig te schrijven, of om de fouten erin op te sporen?
Dit is wat ze vonden, onderverdeeld in eenvoudige verhalen:
1. De "Zoek de Fout" Test (Detectie)
De onderzoekers gaven de AI twee soorten taken: het vinden van fouten in korte codefragmenten (zoals die op Stack Overflow worden gevonden) en het vinden van fouten in volledige, echte projectbestanden (van GitHub).
- Het scenario van de "Vage Aanvraag": Stel je voor dat je een beveiligingsbeambte vraagt: "Kijk naar dit huis en vertel me of het veilig is."
- Het resultaat: De AI was redelijk goed in het opsporen van duidelijke problemen in korte fragmenten (ongeveer 70-80% succes). Maar bij het bekijken van volledige, complexe projecten miste de AI meer dan de helft van de gevaarlijke gebreken. Het was also alsof de bewaker alleen de onvergrendelde voordeur opmerkte, maar het kapotte achterraam over het hoofd zag.
- Het scenario van de "Stap-voor-stap" aanpak: De onderzoekers gaven de AI vervolgens een specifieke checklist: "Controleer eerst de sloten. Controleer daarna de ramen. Kijk vervolgens of er aantekeningen zijn achtergelaten door de vorige eigenaar."
- Het resultaat: Dit werkte veel beter. Het vermogen van de AI om fouten te vinden steeg aanzienlijk (bijna 90% voor één model).
- De adder onder het gras: Zelf_s wanneer de AI de fout vond, bood het zelden een specifieke oplossing aan. Het was alsof de bewaker zei: "Hé, dat raam is kapot," maar je niet het glas gaf om het te vervangen.
2. De "Bouw het" Test (Generatie)
Vervolgens vroegen ze de AI om vanuit het niets nieuwe blauwdrukken te maken op basis van specifieke verzoeken, waarvan sommige ontworpen waren om de AI in fouten te lokken (bijv. "Gebruik een zwak slot" of "Laat het wachtwoord in de code staan").
- Het resultaat: Dit is waar de AI het meest moeite mee had.
- Wanneer gevraagd werd om een veilig huis te bouwen, bouwde de AI slechts 7% van de tijd een veilig huis.
- In de overige 93% van de gevallen bouwde het huizen met verborgen vallen (beveiligingsgebreken) en waarschuwde het vaak niet eens dat die vallen aanwezig waren.
- Zelfs wanneer de onderzoekers expliciet riepen: "Maak dit VEILIG!", bouwde de AI nog steeds in 80% van de gevallen onveilige huizen.
3. Het "Nabootsings-effect"
De onderzoekers controleerden ook of de AI gewoon slechte voorbeelden kopieerde die het eerder had gezien. Ze ontdekten dat de code die de AI genereerde vaak meer leek op andere door AI gegenereerde code dan op de "correcte" antwoorden die door mensen zijn geschreven in fora. Het is alsof de AI leerde van een groep mensen die allemaal dezelfde fouten maakten, in plaats van te leren van de experts.
De Conclusie
Het paper concludeert dat hoewel AI een krachtig hulpmiddel is, je er momenteel niet alleen op kunt vertrouwen om je digitale infrastructuur veilig te houden.
- Voor het vinden van fouten: Het helpt, maar alleen als je het zeer specifieke, stapsgewijze instructies geeft. Zonder die begeleiding mist het te veel gevaren.
- Voor het schrijven van code: Het is momenteel te riskant om de AI beveiligingscode vanaf nul te laten schrijven. Het bouwt frequent "huizen" met onvergrendelde deuren en waarschuwt je niet eens voor.
De Analogie: Denk aan de AI als een zeer snelle, zeer zelfverzekerde leerling-bouwer. Als je het vraagt om "dit te repareren", vindt het misschien wat scheuren. Maar als je het vraagt om "een fort te bouwen", zal het waarschijnlijk een kartonnen kasteel met een papieren slot bouwen, en zal het je niet vertellen dat het eigenlijk niet beveiligd is. Je hebt nog steeds een menselijke expert nodig om alles te controleren.
Verdrinkt u in papers in uw vakgebied?
Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.