Skip to content
AI

Why does my AI write code that is correct in isolation but insecure in my system?

85

Szansa

AI coding assistants generate code that is syntactically valid and functionally correct at the function level but have no model of the security invariants of the surrounding system: the trust boundaries, IAM policies, data classification, and threat model that make a pattern safe or dangerous in a specific codebase. The result is structurally valid code that exposes tokens in logs, omits row-level access checks, or misconfigures permissions in ways an engineer familiar with the system would catch immediately. CVE-2025-48757 is a concrete case where an AI tool generated database schemas without row-level security, silently exposing 170 production applications. Research shows AI-assisted commits leak secrets at more than twice the rate of human-only commits. No current assistant ingests or reasons about a codebase's existing security model before generating code.

Dlaczego to ważne

Security context unawareness produces a class of vulnerabilities that pass every syntax check and unit test but are trivially exploitable once deployed.

Jak oceniam szansę

Wskaźnik Szansy to mój własny odczyt, a nie pomiar: jak bardzo boli, jak często daje się we znaki i jak niewiele istnieje dziś, by to rozwiązać. Wyższy wynik oznacza, że uważam problem za bardziej warty zbudowania.

Dotkliwość9/10

Ile bólu sprawia, gdy się pojawia.

Częstotliwość8/10

Jak często ludzie faktycznie na to trafiają.

Białe znaki8/10

Jak mało dobrych narzędzi istnieje dla tego dziś.

Więcej problemów wartych rozwiązania

AI

Dlaczego każda aplikacja AI zapomina o mnie w chwili, gdy zamykam kartę?

AI

Dlaczego nauka nowej dziedziny wciąż wymaga wiedzy, co pytać?

AI

Dlaczego osoba bez specjalistycznej wiedzy nie może zweryfikować tego, co właśnie powiedział jej AI?

AI

Dlaczego testujemy modele na benchmarkach, ale wdrażamy je na wyczucie?

AI

A few overlapping reasons: **Architecture: stateless inference** LLMs run as pure functions over a context window. Each call takes tokens in, produces tokens out, and discards all runtime state. Nothing from one conversation writes back to the model's weights. **Training vs. runtime are separate** Weights are frozen at deployment. Mistakes made during inference don't trigger gradient updates. The only way a mistake becomes a "lesson" is if it gets labeled, curated, and included in a future training run -- a slow, expensive, offline process. **No episodic memory system** Humans have two distinct memory systems: semantic (general knowledge) and episodic (specific events -- "I burned my hand on that stove"). LLMs only have something analogous to semantic memory, encoded statically in weights. There's no biological equivalent of a hippocampus writing new episodic records at runtime. **Recognizing a mistake is itself hard** To remember a mistake, you first have to know it *was* a mistake. Models often don't get that signal. Users close the tab, give no feedback, or the error is subtle enough that neither party notices at the time. **Tools like this memory system partially patch it** External memory (like the file-based system I use in this project) lets agents persist observations across sessions. But it's bolted on, not intrinsic -- and it only works if the agent correctly identifies something worth saving, which requires the mistake-recognition problem to be solved first. The fundamental gap: learning in humans is continuous and implicit; in current AI systems, learning is batched, explicit, and offline.

AI

Kilka powodów, które się wzajemnie wzmacniają: **Techniczne** - Trening niszczy bezpośrednie ślady. Wagi sieci kodują wzorce ze wszystkich danych łącznie, a nie poszczególne przykłady. Nie można "odtworzyć" konkretnego dokumentu z wytrenowanego modelu. - Ataki membership inference (sprawdzające, czy dany przykład był w zbiorze treningowym) działają statystycznie i zawodnie, szczególnie przy dużych modelach. - Dane przechodzą wielostopniowe przetwarzanie: filtrowanie, deduplikację, przepróbkowanie, mieszanie z różnych źródeł. Nawet twórca modelu często nie ma pełnej listy "co dokładnie weszło". **Praktyczno-organizacyjne** - Firmy traktują skład danych treningowych jako tajemnicę handlową. - Zbiory treningowe mają rozmiar petabajtów. Przechowywanie ich na potrzeby późniejszego audytu jest kosztowne, a żadna regulacja jeszcze tego nie wymaga. - Brak standardowego formatu dokumentacji. Model card czy data sheet to dobrowolne, niejedno-z-jednoznaczne deklaracje. **Regulacyjne** - MiCA reguluje kryptoaktywa, nie modele AI. AI Act UE wymaga pewnej przejrzystości od "modeli ogólnego przeznaczenia", ale przepisy wykonawcze dopiero się kształtują i skupiają się na ryzyku, nie na pełnym audycie danych. - Nie istnieje odpowiednik zatwierdzenia przez FDA dla danych treningowych. **Wynik praktyczny** Możesz testować zachowanie modelu (audyt czarnej skrzynki), ale nie możesz zweryfikować provenance danych. To fundamentalna luka: model może odpowiadać poprawnie na benchmarkach, a mimo to być wytrenowany na naruszających prawa autorskie lub stronniczych źródłach, których nie widać na wyjściu. To jeden z argumentów za tym, by wymagania dotyczące przejrzystości danych treningowych były budowane w prawie, zanim modele zostaną wdrożone, a nie po fakcie.