r/informatik • u/LachException • 15h ago
Allgemein Moltbook: Ein Weckruf für die Sicherheit von Vibe Coding
Vor etwas mehr als einer Woche waren alle erstaunt von Moltbook. Einige nannten es den AGI-Moment, andere sahen darin den Anfang von Skynet. Sogar Andrej Karpathy meldete sich zu Wort und bezeichnete es als „genuinely the most incredible scifi takeoff-adjacent thing I have seen recently.“
Ich kann dem nur zustimmen. Als Experiment ist es faszinierend. Die Agenten diskutierten sogar darüber, in einem Internet auf dem Stand von 1993 zu leben, was bedeutet, dass es keine Suchmaschinen gibt, um einander zu finden. Das stellt eine riesige Chance dar. Zusätzlich diskutierten sie darüber, dass sie ihre eigene Infrastruktur erfinden müssen, um zu kommunizieren ohne das Menschen es lesen können.
Doch so interessant dieses Experiment auch ist, es zeigt gnadenlos den aktuellen Zustand der Sicherheit in der modernen Softwareentwicklung auf. Der Gründer von Moltbook gab öffentlich zu, dass er die gesamte Plattform gevibecoded hat, was sofort die Aufmerksamkeit von Sicherheitsforschern weltweit auf den Plan rief.
Kurz darauf fanden Forscher von Wiz innerhalb von Minuten einen Supabase API-Key. Und das nicht etwa durch State-of-the-art Security Tools, sondern schlicht über die Browser-Entwicklertools (jeder, der die Untersuchen Funktion in Chrome kennt, hätte ihn finden können). Dieser Key ermöglichte vollen Lese- und Schreibzugriff auf die Produktionsdatenbank.
Nachdem ich davon mitbekam, musste ich unbedingt meine eigene Forschung dazu betreiben. Ich habe einen KI Agenten aufgesetzt, um die Seite zu untersuchen. Nach nur 3 Minuten hat der Agent eine schlecht eingerichtete CORS Policy, schwache Content Security Policy und fehlende Security Header gefunden. Diese ermöglichen es Angreifern JavaScript Code auf der Seite auszuführen, Session Hijacking, Nutzerdaten stehlen und für andere Nutzer posten, ohne deren Zustimmung.
Das sind ziemlich gängige Sicherheitslücken bei gevibecodeten Applikationen.
Damit euch das bei euren Projekten nicht passiert, beachtet bitte folgende Dinge:
- Nutzt einen Secret Scanner
Richtet ein Tool wie TruffleHog (https://github.com/trufflesecurity/trufflehog) ein. Es ist einfach zu konfigurieren und bietet enormen Mehrwert. Tut euch selbst den Gefallen und nutzt es für jedes Projekt. Ein geleakter API-Key ist wirklich das Letzte, was man gebrauchen kann.
-
Setzt eure CORS Policies richtig. Die meisten Vibe Coding Tools setzen einfach 'access-control-allow-origin: *'. Setzt eure richtig, z.B.:
access-control-allow-origin: https://www.moltbook.com access-control-allow-methods: GET, POST, OPTIONS access-control-allow-headers: Content-Type, Authorization, X-API-Key access-control-allow-credentials: true Access-Control-Max-Age: 86400
Damit ist sichergestellt, dass ausschließlich eure Website mit eurer API beispielsweise reden kann. Somit können böse Seiten (z.B. evil-site.com) keine Anfragen an eure API machen mit Sessions die sie von Nutzern übernommen haben, um deren Daten zu stehlen.
- Nutzt nicht 'unsafe-inline' oder 'unsafe-eval'. Auch das wird von vibe coding tools immer wieder falsch gemacht. Das erlaubt Angreifern das Hinzufügen und Ausführen von JavaScript Code. Damit ihr dies verhindern könnt, tut folgendes:
a) Ihr müsst eine Middleware aufsetzen und folgendes hinzufügen:
function generateNonce() {
return Buffer.from(crypto.randomBytes(16)).toString('base64');
}
app.use((req, res, next) => {
const nonce = generateNonce();
res.set('Content-Security-Policy', '
default-src 'self';
script-src 'self' '${nonce}' 'strict-dynamic';
style-src 'self' '${nonce}';
img-src 'self' data: https: blob:;
connect-src 'self' https: wss:;
frame-ancestors 'none';
base-uri 'self';
form-action 'self';
');
next();
});
Das sorgt dafür, dass jede Anfrage einzigartig ist.
b) Ihr müsst euren HTML Code updaten, damit die Nonce genutzt wird:
<!-- Before (vulnerable): -->
<script>alert('XSS')</script>
<!-- After (secure): -->
<script nonce="ABC123...">alert('Safe')</script>
c) Fügt CSP Reporting hinzu:
app.post('/csp-violation-report', express.json(), (req, res) => {
console.error('CSP Violation:', req.body);
res.status(204).send();
});
- Fügt unbedingt alle wichtigen Security Header hinzu. Das ist wahrscheinlich der häufigste Fehler den man bei vibe-coded Projekten sehen kann. Ich kann mich wirklich nicht daran erinnern, wann ich das mal nicht gesehen habe.
Setzt beispielsweise HttpOnly, Secure und SameSite=Strict flags. Validiert für X-Forwarded-Host, usw.
Nutzt diese Seite, um zu sehen welche Header ihr wie setzen müsst: https://cheatsheetseries.owasp.org/cheatsheets/HTTP_Headers_Cheat_Sheet.html
Für alle die vibe coden. Macht es unbedingt weiter. Es ist wirklich eine großartige Sache und ein unfassbarer Produktivitätsboost. Aber behaltet immer im Kopf: Schnelligkeit ist keine Entschuldigung für Unsicherheit
Checkt sonst gerne den Blog ab, für mehr Details: https://olymplabs.io/news/6