security-test-design
SKILL.md
Security Test Design
Purpose
Design security tests that validate security controls, identify vulnerabilities, and ensure compliance with security requirements.
When to Use
- Security validation
- Compliance audits
- Pre-release security review
- After security architecture changes
Prerequisites
- Security requirements defined
- Threat model available
- Security architecture documented
Process
Step 1: Identify Security Requirements
Requirement sources:
- Security NFRs
- Compliance requirements (GDPR)
- OWASP guidelines
- Threat model mitigations
Step 2: Define Test Categories
Categories:
- Authentication testing
- Authorization testing
- Input validation
- Cryptography verification
- Session management
- API security
Step 3: Design Test Cases
For each category:
- Positive tests (controls work)
- Negative tests (attacks blocked)
- Boundary tests
- Compliance checks
Step 4: Select Tools
Tool categories:
- Static analysis (SAST)
- Dynamic analysis (DAST)
- Dependency scanning
- Manual testing
Step 5: Create Test Plan
Plan includes:
- Test scenarios
- Tools and methods
- Execution frequency
- Remediation process
Inputs
| Input | Type | Required | Description |
|---|---|---|---|
| security_requirements | Markdown | Yes | Security NFRs |
| threat_model | Markdown | Yes | Threat analysis |
| compliance_reqs | Markdown | Yes | GDPR, etc. |
Outputs
| Output | Type | Description |
|---|---|---|
| security_test_plan.md | Markdown | Test plan |
| security_tests/ | Code | Test scripts |
| compliance_checklist.md | Markdown | Compliance checks |
StudyAbroad-Specific Considerations
- OAuth2 security testing
- GDPR compliance validation
- PII protection verification
- Document access control
Integration Points
- Security Agent: Test collaboration
- Developer Agent: Remediation
- DevOps Agent: CI/CD security
Examples
Security Test Plan - StudyAbroad-v1
SECURITY REQUIREMENTS:
| ID | Requirement | Test Category |
|----|-------------|---------------|
| SEC-001 | OAuth2 secure implementation | Auth |
| SEC-002 | JWT token security | Session |
| SEC-003 | OWASP Top 10 protection | Multiple |
| SEC-004 | PII encryption | Crypto |
| SEC-005 | GDPR compliance | Compliance |
TEST CATEGORIES:
1. AUTHENTICATION TESTING
TC-SEC-AUTH-001: OAuth2 Token Validation
- Verify valid tokens accepted
- Verify expired tokens rejected
- Verify tampered tokens rejected
- Verify token refresh works
TC-SEC-AUTH-002: Session Security
- Verify httpOnly cookie flag
- Verify secure cookie flag
- Verify session timeout
- Verify concurrent session limits
TC-SEC-AUTH-003: OAuth Flow Security
- Verify state parameter validation
- Verify PKCE implementation
- Verify redirect URI validation
2. AUTHORIZATION TESTING
TC-SEC-AUTHZ-001: Horizontal Access Control
- User A cannot access User B's applications
- User A cannot access User B's documents
- Verify 403 for unauthorized access
TC-SEC-AUTHZ-002: Vertical Access Control
- Student cannot access admin endpoints
- Advisor limited to assigned students
- Verify role escalation blocked
TC-SEC-AUTHZ-003: API Authorization
- All endpoints require authentication (except public)
- Verify middleware protection
- Test direct URL access
3. INPUT VALIDATION
TC-SEC-INPUT-001: SQL Injection
- Test all input fields
- Test URL parameters
- Test JSON body fields
- Verify parameterized queries
TC-SEC-INPUT-002: XSS Prevention
- Test text inputs
- Test file names
- Test error messages
- Verify output encoding
TC-SEC-INPUT-003: File Upload Security
- Test file type bypass attempts
- Test malicious file names
- Test oversized files
- Verify virus scanning
4. CRYPTOGRAPHY
TC-SEC-CRYPTO-001: TLS Configuration
- Verify TLS 1.3 minimum
- Verify strong cipher suites
- Verify certificate validity
- Test with SSL Labs
TC-SEC-CRYPTO-002: Data Encryption
- Verify PII encrypted at rest
- Verify password hashing (bcrypt)
- Verify no secrets in code/logs
5. GDPR COMPLIANCE
TC-SEC-GDPR-001: Consent
- Verify consent collection
- Verify consent recorded
- Verify opt-out works
TC-SEC-GDPR-002: Data Rights
- Verify data export works
- Verify data deletion works
- Verify within time limits
AUTOMATED SECURITY TESTS:
```typescript
// tests/security/auth.security.test.ts
describe('Authentication Security', () => {
describe('Token Validation', () => {
it('should reject expired tokens', async () => {
const expiredToken = generateExpiredToken()
const response = await request(app)
.get('/api/v1/users/me')
.set('Authorization', `Bearer ${expiredToken}`)
expect(response.status).toBe(401)
expect(response.body.error.code).toBe('AUTH_TOKEN_EXPIRED')
})
it('should reject tampered tokens', async () => {
const tamperedToken = validToken.slice(0, -5) + 'xxxxx'
const response = await request(app)
.get('/api/v1/users/me')
.set('Authorization', `Bearer ${tamperedToken}`)
expect(response.status).toBe(401)
})
})
describe('SQL Injection', () => {
const sqlPayloads = [
"'; DROP TABLE users; --",
"1' OR '1'='1",
"1; SELECT * FROM users"
]
sqlPayloads.forEach(payload => {
it(`should safely handle: ${payload}`, async () => {
const response = await request(app)
.get(`/api/v1/universities`)
.query({ search: payload })
// Should not error, should return safe results
expect(response.status).toBe(200)
// Verify no data leak
expect(response.body.data).not.toContainEqual(
expect.objectContaining({ password: expect.anything() })
)
})
})
})
})
CI/CD INTEGRATION:
security:
- name: Dependency Audit
run: npm audit --production
frequency: every-build
- name: SAST Scan
run: npm run security:sast
frequency: every-build
- name: DAST Scan
run: npm run security:dast
frequency: nightly
- name: Secret Scan
uses: trufflesecurity/trufflehog@main
frequency: every-build
TOOLS:
| Tool | Purpose | Frequency |
|---|---|---|
| npm audit | Dependency vulnerabilities | Every build |
| ESLint security | Code patterns | Every build |
| OWASP ZAP | Dynamic scanning | Nightly |
| Snyk | Dependency + code | Weekly |
| truffleHog | Secret detection | Every commit |
COMPLIANCE CHECKLIST:
GDPR: ☐ Consent mechanism implemented ☐ Data export within 30 days ☐ Data deletion within 72 hours ☐ Breach notification process ☐ Privacy policy accessible ☐ Cookie consent implemented
OWASP Top 10: ☐ A01: Broken Access Control - Tested ☐ A02: Cryptographic Failures - Tested ☐ A03: Injection - Tested ☐ A04: Insecure Design - Reviewed ☐ A05: Security Misconfiguration - Tested ☐ A06: Vulnerable Components - Scanned ☐ A07: Auth Failures - Tested ☐ A08: Integrity Failures - Tested ☐ A09: Logging Failures - Verified ☐ A10: SSRF - Tested
## Validation
- All security requirements tested
- OWASP coverage complete
- Tools integrated in CI/CD
- Compliance checklist verified
- Regular execution scheduled
###DIFFBREAK###
# Complete SDLC Skills Content Library - Part 3
# Project: StudyAbroad-v1
# Developer Agent (14) + Security Agent (13)
# ============================================================================
# DEVELOPER AGENT SKILLS (14 Skills: DEV-001 to DEV-014)
# ============================================================================
Weekly Installs
1
Repository
vihang-hub/inte…rameworkGitHub Stars
1
First Seen
Today
Security Audits
Installed on
amp1
cline1
openclaw1
opencode1
cursor1
kimi-cli1