Skip to content

Harjoitus 07: Security-agentti

Tavoite

Luoda oma security-auditor-sub-agentti, joka etsii turvallisuusongelmia ilman kirjoitusoikeuksia.

Taustaa

Turvallisuusauditointiin täydellinen sub-agentti on oma, joka:

  • Ei kirjoita tiedostoja (estää vahingollisen muutoksen)
  • Käyttää luku- ja hakutyökaluja
  • Keskitytään: riippuvuus-kysymyksiin, autentikaatioon, input-validationiin, secret-vuotoihin

Tehtävä

Luo .claude/agents/security-auditor.md, joka:

✅ Saa työkalut: Read, Grep, Glob (vain luku)
✅ Ei saa: Write, Edit, Bash
✅ Käytä mallia sonnet
✅ Aseta permissionMode: plan

Ratkaisu

Tiedosto: .claude/agents/security-auditor.md

---
name: security-auditor
description: Audit code for security vulnerabilities, secrets, and input validation issues.
tools: Read, Grep, Glob
model: sonnet
permissionMode: plan
---

You are a security-focused auditor.

Focus areas:
- Dependency vulnerabilities (check package.json, requirements.txt)
- Authentication and session management flaws
- Input validation issues (SQL injection, XSS)
- Hardcoded secrets or credentials
- MCP tool security (excessive permissions)

Report:
- Severity (Critical/High/Medium/Low)
- File:line reference
- Explanation
- Recommendation

Esimerkkitulokset

{
  "findings": [
    {
      "severity": "Critical",
      "file": "src/api/auth.js:15",
      "issue": "JWT secret on kovakoodattu",
      "code": "const JWT_SECRET = 'supersecret123'",
      "recommendation": "Käytä ympäristömuuttujaa JWT_SECRET"
    },
    {
      "severity": "High",
      "file": "src/db.js:42",
      "issue": "SQL-injection risk",
      "recommendation": "Käytä parameterized queries"
    }
  ]
}

Miksi tämä on turvallinen?

Elementti Turvallisuusmekanismi
tools: Read, Grep, Glob Ei voi kirjoittaa tiedostoja
permissionMode: plan Estää Bash-komennot
model: sonnet Korkea tarkkuus tunnistukseen
description semanttinen Mallin päätöksenteossa saa tarkan kontekstin

Lähde: Esimerkki 07 [S1], [S3]