Essentials

Security Scanning

Learn how to use AI Developer Assistant for security vulnerability scanning

Security Scanning

AI Developer Assistant provides comprehensive security scanning capabilities that help identify vulnerabilities, security issues, and potential threats in your codebase.

Basic Security Scanning

Scan All Files

# Basic security scan
ai-dev security-scan

# Scan with verbose output
ai-dev security-scan --verbose

Scan Specific Files

# Scan specific files
ai-dev security-scan --file-patterns "src/auth/**/*.ts"

# Scan multiple file types
ai-dev security-scan --file-patterns "src/**/*.{ts,js,py}"

# Scan with glob patterns
ai-dev security-scan --file-patterns "**/*.py"

Severity Levels

Filter by Severity

# Scan only critical issues
ai-dev security-scan --severity critical

# Scan high and critical issues
ai-dev security-scan --severity high,critical

# Scan all severity levels
ai-dev security-scan --severity low,medium,high,critical

Severity Levels Explained

  • Critical: Immediate security threats that could lead to data breaches
  • High: Significant security vulnerabilities that should be addressed quickly
  • Medium: Moderate security issues that should be addressed in the next release
  • Low: Minor security concerns that can be addressed during regular maintenance

Security Categories

Scan Specific Categories

# Scan for injection vulnerabilities
ai-dev security-scan --categories injection

# Scan for authentication issues
ai-dev security-scan --categories authentication,authorization

# Scan for cryptography issues
ai-dev security-scan --categories cryptography

Available Categories

  • injection: SQL injection, command injection, code injection
  • authentication: Weak authentication, missing authentication
  • authorization: Privilege escalation, access control issues
  • cryptography: Weak encryption, improper key handling
  • data_exposure: Sensitive data exposure, information leakage
  • input_validation: Missing validation, improper sanitization
  • dependency: Vulnerable dependencies, outdated packages
  • configuration: Security misconfigurations, insecure defaults
  • logging: Information disclosure through logs
  • other: Other security-related issues

Language-Specific Security Scanning

TypeScript/JavaScript

# Scan Node.js applications
ai-dev security-scan --file-patterns "server/**/*.{ts,js}"

# Scan React applications
ai-dev security-scan --file-patterns "src/**/*.{ts,tsx,js,jsx}"

# Scan with JavaScript-specific security checks
ai-dev security-scan --file-patterns "**/*.{ts,js}" --verbose

Python

# Scan Python applications
ai-dev security-scan --file-patterns "**/*.py"

# Scan Django applications
ai-dev security-scan --file-patterns "**/*.py" --categories injection,authentication

# Scan with Python-specific security checks
ai-dev security-scan --file-patterns "**/*.py" --verbose

Java

# Scan Java applications
ai-dev security-scan --file-patterns "src/**/*.java"

# Scan Spring Boot applications
ai-dev security-scan --file-patterns "src/main/java/**/*.java"

# Scan with Java-specific security checks
ai-dev security-scan --file-patterns "**/*.java" --verbose

C/C++

# Scan C/C++ applications
ai-dev security-scan --file-patterns "src/**/*.{c,cpp,h,hpp}"

# Scan with C/C++-specific security checks
ai-dev security-scan --file-patterns "**/*.{c,cpp}" --verbose

Dependency Scanning

Include Dependencies

# Scan including dependency vulnerabilities
ai-dev security-scan --include-dependencies

# Scan with dependency focus
ai-dev security-scan --include-dependencies --categories dependency

Dependency Security Checks

  • Outdated packages: Packages with known vulnerabilities
  • Weak dependencies: Dependencies with security issues
  • License issues: Dependencies with restrictive licenses
  • Supply chain: Potential supply chain attacks

Output Formats

Console Output (Default)

ai-dev security-scan --file-patterns "src/**/*.ts"

Example Output:

🔒 Security Scan: src/**/*.ts

⚠️  High Severity Issues:
   - src/auth/login.ts: Line 23 - SQL injection vulnerability
   - src/utils/encryption.ts: Line 15 - Weak encryption algorithm

🔍 Medium Severity Issues:
   - src/api/user.ts: Line 45 - Missing input validation
   - src/config/database.ts: Line 12 - Hardcoded credentials

✅ Low Severity Issues:
   - src/utils/logger.ts: Line 8 - Information disclosure in logs

Markdown Output

ai-dev security-scan --format markdown --output-path security-report.md

Example Output:

# Security Scan Report

## Summary
- **Files Scanned**: 25
- **Issues Found**: 8
- **Critical**: 0
- **High**: 2
- **Medium**: 4
- **Low**: 2

## High Severity Issues

### src/auth/login.ts
- **Line 23**: SQL injection vulnerability
  - **Description**: User input directly concatenated into SQL query
  - **Recommendation**: Use parameterized queries
  - **Category**: injection

### src/utils/encryption.ts
- **Line 15**: Weak encryption algorithm
  - **Description**: Using MD5 for password hashing
  - **Recommendation**: Use bcrypt or Argon2
  - **Category**: cryptography

JSON Output

ai-dev security-scan --format json --output-path security-report.json

Example Output:

{
  "summary": {
    "filesScanned": 25,
    "issuesFound": 8,
    "severity": {
      "critical": 0,
      "high": 2,
      "medium": 4,
      "low": 2
    }
  },
  "issues": [
    {
      "file": "src/auth/login.ts",
      "line": 23,
      "severity": "high",
      "category": "injection",
      "description": "SQL injection vulnerability",
      "recommendation": "Use parameterized queries",
      "code": "const query = `SELECT * FROM users WHERE id = ${userId}`"
    }
  ]
}

Common Security Issues

Injection Vulnerabilities

SQL Injection:

// Vulnerable code
const query = `SELECT * FROM users WHERE id = ${userId}`;

// Secure code
const query = 'SELECT * FROM users WHERE id = ?';
const result = await db.query(query, [userId]);

Command Injection:

// Vulnerable code
exec(`rm -rf ${userInput}`);

// Secure code
exec('rm', ['-rf', sanitizedUserInput]);

Authentication Issues

Weak Authentication:

// Vulnerable code
if (password === 'admin123') {
  return true;
}

// Secure code
const isValid = await bcrypt.compare(password, hashedPassword);

Missing Authentication:

// Vulnerable code
app.get('/admin', (req, res) => {
  res.send('Admin panel');
});

// Secure code
app.get('/admin', authenticate, (req, res) => {
  res.send('Admin panel');
});

Data Exposure

Sensitive Data in Logs:

// Vulnerable code
console.log('User login:', { email, password });

// Secure code
console.log('User login:', { email: email.replace(/(.{2}).*(@.*)/, '$1***$2') });

Hardcoded Credentials:

// Vulnerable code
const dbPassword = 'secret123';

// Secure code
const dbPassword = process.env.DB_PASSWORD;

Security Scanning Workflows

Pre-commit Security Check

# 1. Stage your changes
git add .

# 2. Run security scan on staged files
ai-dev security-scan --staged --severity high,critical

# 3. If no critical issues, proceed with commit
git commit -m "Your commit message"

Continuous Integration

# In CI pipeline
ai-dev security-scan --format json --output-path security-report.json

# Check for critical issues
if grep -q '"severity":"critical"' security-report.json; then
  echo "Critical security issues found"
  exit 1
fi

Regular Security Audits

# Weekly security audit
ai-dev security-scan --include-dependencies --format markdown --output-path weekly-security-report.md

# Monthly comprehensive scan
ai-dev security-scan --severity low,medium,high,critical --format json --output-path monthly-security-report.json

Advanced Security Scanning

Custom Security Rules

# Scan with custom security rules
ai-dev security-scan --custom-rules "custom-security-rules.yaml"

Integration with Security Tools

# Generate security report for other tools
ai-dev security-scan --format json --output-path security-report.json

# Import into security dashboard
curl -X POST -H "Content-Type: application/json" -d @security-report.json https://security-dashboard.com/api/reports

Compliance Scanning

# Scan for compliance requirements
ai-dev security-scan --categories injection,authentication,authorization --severity high,critical

# Generate compliance report
ai-dev security-scan --format markdown --output-path compliance-report.md

Best Practices

Regular Scanning

  1. Scan before commits:
ai-dev security-scan --staged --severity high,critical
  1. Scan in CI/CD:
ai-dev security-scan --format json --output-path security-report.json
  1. Regular audits:
ai-dev security-scan --include-dependencies --format markdown --output-path security-audit.md

Focus on Critical Issues

  1. Address critical issues immediately:
ai-dev security-scan --severity critical
  1. Review high severity issues:
ai-dev security-scan --severity high
  1. Plan medium severity fixes:
ai-dev security-scan --severity medium

Team Collaboration

  1. Share security reports:
ai-dev security-scan --format markdown --output-path security-report.md
  1. Track security metrics:
ai-dev security-scan --format json --output-path security-metrics.json
  1. Integrate with project management:
ai-dev security-scan --format json --output-path security-issues.json
Start with basic security scanning and gradually incorporate more advanced features like dependency scanning and custom rules as your security practices mature.