Przejdź do głównej zawartości

Skanowanie bezpieczeństwa z Claude Code

Tester penetracyjny właśnie wręczył twojemu zespołowi 47-stronicowy raport. Osiemnaście znalezisk, sześć oznaczonych jako krytyczne. SQL injection w admin API. Zahardkodowany sekret JWT w pliku konfiguracyjnym committowanym dwa lata temu. Zależność npm trzy wersje główne w tyle ze znaną podatnością RCE. Twój zespół spędził cztery miesiące na budowaniu funkcjonalności i zero godzin na myśleniu o bezpieczeństwie. Teraz masz deadline, audyt zgodności w przyszłym miesiącu i nie wiesz, od czego zacząć. To nie musi być twoja historia.

  • Powtarzalny workflow Claude Code do skanowania kodu pod kątem OWASP Top 10, identyfikacji podatnych zależności i wykrywania wycieków sekretów
  • Prompty do skopiowania generujące middleware bezpieczeństwa, schematy walidacji wejścia i nagłówki Content Security Policy dostosowane do twojej aplikacji
  • Lista kontrolna bezpieczeństwa w CLAUDE.md, która sprawia, że Claude Code egzekwuje bezpieczne wzorce przy każdej zmianie kodu

Pierwszym krokiem jest zrozumienie twojej bieżącej ekspozycji. Claude Code może przeczytać cały projekt i stworzyć priorytetową ocenę bezpieczeństwa bez żadnych zewnętrznych narzędzi.

Claude Code przechodzi przez pliki źródłowe systematycznie. Ponieważ ma kontekst całego projektu — stack middleware, definicje tras, zapytania bazodanowe, pliki konfiguracyjne — wychwytuje problemy, które narzędzia statycznej analizy pomijają, jak middleware uwierzytelniania, który istnieje, ale nie jest zastosowany do konkretnej trasy.

Po audycie ustal priorytety napraw:

From the security findings you just identified, create a prioritized remediation plan. Group fixes by effort (quick wins under 30 minutes, medium fixes under 2 hours, architectural changes). Start implementing the quick wins now.

Twój folder node_modules zawiera kod od tysięcy maintainerów. Claude Code może przeprowadzić audyt drzewa zależności i wygenerować plan aktualizacji.

Kluczowa wartość tkwi w analizie “czy faktycznie używamy podatnej ścieżki kodu”. Większość raportów npm audit to szum — podatność w zestawie testów zależności deweloperskiej nie wpływa na twoją aplikację produkcyjną. Claude Code może prześledzić importy, aby określić rzeczywistą ekspozycję.

Dla ciągłego skanowania dodaj hook pre-commit:

Create a Claude Code hook that runs on pre-commit. It should check any modified files for: 1) new hardcoded secrets (API keys, passwords, tokens), 2) new eval() or Function() calls, 3) new SQL string concatenation. If any are found, block the commit and print the finding.

Zamiast generować raport i przekazywać go dalej, użyj Claude Code do naprawiania podatności w tej samej sesji.

Find all database queries in our codebase that use string concatenation or template literals instead of parameterized queries. For each one, rewrite it using parameterized queries with our ORM (Prisma/Drizzle/Knex). Show the before and after for each change.
Add a security headers middleware to our Express/Fastify app. Include: Strict-Transport-Security with max-age 1 year and includeSubDomains, Content-Security-Policy that allows scripts only from our domain plus any CDNs we use (check our HTML templates to find them), X-Content-Type-Options nosniff, X-Frame-Options DENY, Referrer-Policy strict-origin-when-cross-origin. Remove the X-Powered-By header.

Sekrety w kontroli wersji to najczęstszy i najbardziej możliwy do uniknięcia problem bezpieczeństwa. Claude Code może zarówno wykryć istniejące wycieki, jak i zapobiec przyszłym.

Search the entire git history for committed secrets: API keys, database connection strings, JWT secrets, private keys, AWS credentials. Check .env files that may have been committed, config files with hardcoded values, and test fixtures with real credentials. For each finding, tell me which commit introduced it and whether the secret is still valid (present in the latest code). Then generate a .gitignore update and a pre-commit hook that blocks secret commits.

Zamiast walidować dane wejściowe ad-hoc w każdym handlerze trasy, poproś Claude Code o wygenerowanie warstwy walidacji.

To jedno z tych zadań, w których zdolność Claude Code do przeczytania całej warstwy tras i wygenerowania spójnych schematów oszczędza godziny ręcznej pracy. Schematy służą również jako dokumentacja twojego API.

Najbardziej wpływowa poprawa bezpieczeństwa to sprawienie, by Claude Code automatycznie egzekwował bezpieczne wzorce. Dodaj do swojego CLAUDE.md:

## Security Requirements
- Never use string concatenation in database queries. Always use parameterized queries or the ORM.
- All API routes must have authentication middleware unless explicitly marked as public in this list: /health, /ready, /api/auth/login, /api/auth/register
- Passwords must be hashed with bcrypt (cost factor 12) or argon2id. Never MD5 or SHA.
- All user input must be validated with Zod schemas before processing.
- Secrets must come from environment variables, never hardcoded.
- HTTP responses must include security headers (CSP, HSTS, X-Frame-Options).
- File uploads must validate MIME type and enforce a 10 MB size limit.
- Rate limiting must be applied to authentication endpoints (10 requests per minute per IP).

Z tymi regułami, gdy jakikolwiek deweloper w twoim zespole poprosi Claude Code o “add a new API endpoint for user profile updates”, wygenerowany kod automatycznie zawiera middleware uwierzytelniania, walidację wejścia, sparametryzowane zapytania i limitowanie zapytań.

Claude oznacza “podatność”, która jest faktycznie bezpieczna. Fałszywe alarmy się zdarzają, szczególnie przy złożonej logice autoryzacji. Jeśli Claude zidentyfikuje trasę jako brakującą uwierzytelniania, ale jest ona celowo publiczna, dodaj ją do listy publicznych tras w CLAUDE.md i ponownie uruchom audyt.

Aktualizacja zależności psuje aplikację. Claude Code może zidentyfikować, do której wersji zaktualizować, ale skoki wersji głównych często zawierają zmiany łamiące API. Poproś Claude o “review the changelog for express@5 and identify all breaking changes that affect our codebase” przed aktualizacją.

Nagłówki bezpieczeństwa psują frontend. Surowe CSP zablokuje skrypty inline i zasoby z serwerów trzecich, od których zależy twoja aplikacja. Uruchom aplikację z nowymi nagłówkami, otwórz konsolę przeglądarki i wklej błędy CSP z powrotem do Claude Code: “These CSP violations are appearing in the console. Update the Content-Security-Policy to allow these specific sources while keeping everything else locked down.”

Warstwa walidacji odrzuca prawidłowe zapytania. Walidacja schematów jest tak dobra, jak schematy. Po wdrożeniu monitoruj odpowiedzi 400 i przekazuj przykłady z powrotem do Claude Code: “This request body was rejected but it should be valid. Update the Zod schema to accept this format.”