Install
npx skillscat add ihkreddy/agent-skills-ts/security-scan Install via the SkillsCat registry.
Security Scan
Performs comprehensive security analysis before PR submission, checking for secrets, vulnerabilities, insecure patterns, and security best practices.
๐ฏ Use Case Demo
Scenario: Pre-PR Security Review
Before (Manual Process):
Developer ready to submit PR, tries to remember security checks:
- "Did I accidentally commit any secrets?"
- "Are my dependencies secure?"
- "Is my input validation sufficient?"
- Forgets to check, security issue found in review (or worse, production)
Time: Often skipped, caught late or never
After (With This Skill):
Developer: "Run security scan before I create PR"
Agent Response:
๐ SECURITY SCAN REPORT โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ ๐ Scan Date: December 20, 2024 ๐ Files Scanned: 12 changed files ๐ Branch: feature/payment-integration โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ ๐ SCAN SUMMARY โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | Category | Status | Issues | |----------|--------|--------| | Secrets Detection | ๐ด FAIL | 2 found | | Dependency Vulnerabilities | ๐ก WARN | 1 medium | | Input Validation | ๐ด FAIL | 3 missing | | SQL Injection | โ PASS | 0 found | | XSS Prevention | โ PASS | 0 found | | Authentication | โ PASS | Properly secured | | Logging Security | ๐ก WARN | PII in logs | Overall: ๐ด BLOCKED - Fix critical issues before PR โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ ๐จ CRITICAL: SECRETS DETECTED โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ MUST FIX BEFORE PR - These will block your commit 1. API Key Detected ๐ Services/PaymentService.cs:34 ```csharp private const string StripeKey = "sk_live_XXXXXXXXXXXXXXXXXXXX";๐ง Fix: Move to environment variable or secrets manager
private readonly string _stripeKey = Environment.GetEnvironmentVariable("STRIPE_API_KEY");
- Connection String with Password
๐ appsettings.json:12๐ง Fix: Use Azure Key Vault or environment variables"ConnectionString": "Server=db.prod.com;Password=SuperSecret123!"โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ด INPUT VALIDATION MISSING
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Missing Validation: CreateBooking endpoint
๐ Controllers/BookingsController.cs:45public async Task<IActionResult> Create([FromBody] BookingRequest request) { // No validation before processing await _service.CreateBooking(request);๐ง Fix: Add FluentValidation or DataAnnotations
public async Task<IActionResult> Create([FromBody] BookingRequest request) { if (!ModelState.IsValid) return BadRequest(ModelState);Email Not Validated
๐ Models/BookingRequest.cs:15public string Email { get; set; } // No validation๐ง Fix: Add email validation attribute
[Required] [EmailAddress] public string Email { get; set; }Numeric Range Not Checked
๐ Models/SearchRequest.cs:8public int Passengers { get; set; } // Could be negative or huge๐ง Fix: Add range validation
[Range(1, 9)] public int Passengers { get; set; }โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ก WARNINGS (Recommended Fixes)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Dependency Vulnerability
๐ฆ System.Text.Json 7.0.2
CVE: CVE-2024-1234 (Medium severity)
Fix: Upgrade to 7.0.4dotnet add package System.Text.Json --version 7.0.4PII in Logs
๐ Services/BookingService.cs:89_logger.LogInformation($"Booking created for {request.Email}");๐ง Fix: Mask or remove PII from logs
_logger.LogInformation($"Booking created for {MaskEmail(request.Email)}");โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ PASSED CHECKS
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ No SQL injection vulnerabilities
- All queries use parameterized statements
- Entity Framework properly configured
โ No XSS vulnerabilities
- Output encoding in place
- Content-Security-Policy configured
โ Authentication properly implemented
- JWT validation configured
- Endpoints have [Authorize] attributes
โ HTTPS enforced
- UseHttpsRedirection() in place
- HSTS configured
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ ACTION REQUIRED
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโBefore creating PR, you must:
โก Remove hardcoded secrets (2 issues)
โก Add input validation (3 issues)Recommended (not blocking):
โก Update vulnerable dependency
โก Remove PII from logsRun "Apply security fixes" to auto-fix where possible.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
```
Result: Potential security breach prevented before code even reaches review
Agent Instructions
When this skill is activated:
Secrets Detection:
- Scan for API keys, tokens, passwords
- Check for patterns:
sk_live_,api_key,password= - Look in: source files, config files, .env files
- Check git history for accidentally committed secrets
Dependency Vulnerabilities:
- Run
dotnet list package --vulnerable - Check npm audit for Node.js
- Cross-reference with CVE databases
- Run
Input Validation:
- Check all API endpoints for validation
- Verify model attributes (Required, Range, etc.)
- Look for raw string inputs without sanitization
SQL Injection:
- Look for string concatenation in queries
- Verify parameterized queries usage
- Check raw SQL execution
XSS Prevention:
- Check output encoding
- Verify CSP headers
- Look for
@Html.Raw()usage
Authentication/Authorization:
- Verify [Authorize] attributes on endpoints
- Check JWT configuration
- Look for authorization bypass patterns
Logging Security:
- Check for PII in log statements
- Verify sensitive data not logged
Generate Report:
- Categorize by severity
- Provide specific fix recommendations
- Block PR if critical issues found
Example Prompts
- "Run security scan before PR"
- "Check for security vulnerabilities"
- "Are there any hardcoded secrets?"
- "Scan my changes for security issues"
- "Pre-commit security check"
Checks Performed
| Check | Description | Severity |
|---|---|---|
| Secrets | API keys, passwords, tokens | ๐ด Critical |
| SQL Injection | Unsanitized queries | ๐ด Critical |
| Input Validation | Missing or weak validation | ๐ด High |
| Dependencies | Known CVEs | ๐ก Medium |
| XSS | Cross-site scripting | ๐ด High |
| PII Logging | Personal data in logs | ๐ก Medium |
| Auth Bypass | Missing authorization | ๐ด Critical |
Benefits
| Metric | Before | After | Improvement |
|---|---|---|---|
| Security issues caught | In production | Before PR | 100% earlier |
| Time to detect secrets | Days/weeks | Seconds | Immediate |
| Developer security knowledge | Variable | Guided | Learning tool |
| Security review time | Hours | Minutes | 90% faster |