Configure Static Application Security Testing (SAST) tools for automated vulnerability detection in application code. Use when setting up security scanning, implementing DevSecOps practices, or automating code vulnerability detection.
Add this skill
npx mdskills install sickn33/sast-configurationComprehensive SAST setup guide with multi-tool coverage, integration patterns, and tuning strategies.
1---2name: sast-configuration3description: Configure Static Application Security Testing (SAST) tools for automated vulnerability detection in application code. Use when setting up security scanning, implementing DevSecOps practices, or automating code vulnerability detection.4---56# SAST Configuration78Static Application Security Testing (SAST) tool setup, configuration, and custom rule creation for comprehensive security scanning across multiple programming languages.910## Use this skill when1112- Set up SAST scanning in CI/CD pipelines13- Create custom security rules for your codebase14- Configure quality gates and compliance policies15- Optimize scan performance and reduce false positives16- Integrate multiple SAST tools for defense-in-depth1718## Do not use this skill when1920- You only need DAST or manual penetration testing guidance21- You cannot access source code or CI/CD pipelines22- You need organizational policy decisions rather than tooling setup2324## Instructions25261. Identify languages, repos, and compliance requirements.272. Choose tools and define a baseline policy.283. Integrate scans into CI/CD with gating thresholds.294. Tune rules and suppressions based on false positives.305. Track remediation and verify fixes.3132## Safety3334- Avoid scanning sensitive repos with third-party services without approval.35- Prevent leaks of secrets in scan artifacts and logs.3637## Overview3839This skill provides comprehensive guidance for setting up and configuring SAST tools including Semgrep, SonarQube, and CodeQL.4041## Core Capabilities4243### 1. Semgrep Configuration44- Custom rule creation with pattern matching45- Language-specific security rules (Python, JavaScript, Go, Java, etc.)46- CI/CD integration (GitHub Actions, GitLab CI, Jenkins)47- False positive tuning and rule optimization48- Organizational policy enforcement4950### 2. SonarQube Setup51- Quality gate configuration52- Security hotspot analysis53- Code coverage and technical debt tracking54- Custom quality profiles for languages55- Enterprise integration with LDAP/SAML5657### 3. CodeQL Analysis58- GitHub Advanced Security integration59- Custom query development60- Vulnerability variant analysis61- Security research workflows62- SARIF result processing6364## Quick Start6566### Initial Assessment671. Identify primary programming languages in your codebase682. Determine compliance requirements (PCI-DSS, SOC 2, etc.)693. Choose SAST tool based on language support and integration needs704. Review baseline scan to understand current security posture7172### Basic Setup73```bash74# Semgrep quick start75pip install semgrep76semgrep --config=auto --error7778# SonarQube with Docker79docker run -d --name sonarqube -p 9000:9000 sonarqube:latest8081# CodeQL CLI setup82gh extension install github/gh-codeql83codeql database create mydb --language=python84```8586## Reference Documentation8788- [Semgrep Rule Creation](references/semgrep-rules.md) - Pattern-based security rule development89- [SonarQube Configuration](references/sonarqube-config.md) - Quality gates and profiles90- [CodeQL Setup Guide](references/codeql-setup.md) - Query development and workflows9192## Templates & Assets9394- [semgrep-config.yml](assets/semgrep-config.yml) - Production-ready Semgrep configuration95- [sonarqube-settings.xml](assets/sonarqube-settings.xml) - SonarQube quality profile template96- [run-sast.sh](scripts/run-sast.sh) - Automated SAST execution script9798## Integration Patterns99100### CI/CD Pipeline Integration101```yaml102# GitHub Actions example103- name: Run Semgrep104 uses: returntocorp/semgrep-action@v1105 with:106 config: >-107 p/security-audit108 p/owasp-top-ten109```110111### Pre-commit Hook112```bash113# .pre-commit-config.yaml114- repo: https://github.com/returntocorp/semgrep115 rev: v1.45.0116 hooks:117 - id: semgrep118 args: ['--config=auto', '--error']119```120121## Best Practices1221231. **Start with Baseline**124 - Run initial scan to establish security baseline125 - Prioritize critical and high severity findings126 - Create remediation roadmap1271282. **Incremental Adoption**129 - Begin with security-focused rules130 - Gradually add code quality rules131 - Implement blocking only for critical issues1321333. **False Positive Management**134 - Document legitimate suppressions135 - Create allow lists for known safe patterns136 - Regularly review suppressed findings1371384. **Performance Optimization**139 - Exclude test files and generated code140 - Use incremental scanning for large codebases141 - Cache scan results in CI/CD1421435. **Team Enablement**144 - Provide security training for developers145 - Create internal documentation for common patterns146 - Establish security champions program147148## Common Use Cases149150### New Project Setup151```bash152./scripts/run-sast.sh --setup --language python --tools semgrep,sonarqube153```154155### Custom Rule Development156```yaml157# See references/semgrep-rules.md for detailed examples158rules:159 - id: hardcoded-jwt-secret160 pattern: jwt.encode($DATA, "...", ...)161 message: JWT secret should not be hardcoded162 severity: ERROR163```164165### Compliance Scanning166```bash167# PCI-DSS focused scan168semgrep --config p/pci-dss --json -o pci-scan-results.json169```170171## Troubleshooting172173### High False Positive Rate174- Review and tune rule sensitivity175- Add path filters to exclude test files176- Use nostmt metadata for noisy patterns177- Create organization-specific rule exceptions178179### Performance Issues180- Enable incremental scanning181- Parallelize scans across modules182- Optimize rule patterns for efficiency183- Cache dependencies and scan results184185### Integration Failures186- Verify API tokens and credentials187- Check network connectivity and proxy settings188- Review SARIF output format compatibility189- Validate CI/CD runner permissions190191## Related Skills192193- [OWASP Top 10 Checklist](../owasp-top10-checklist/SKILL.md)194- [Container Security](../container-security/SKILL.md)195- [Dependency Scanning](../dependency-scanning/SKILL.md)196197## Tool Comparison198199| Tool | Best For | Language Support | Cost | Integration |200|------|----------|------------------|------|-------------|201| Semgrep | Custom rules, fast scans | 30+ languages | Free/Enterprise | Excellent |202| SonarQube | Code quality + security | 25+ languages | Free/Commercial | Good |203| CodeQL | Deep analysis, research | 10+ languages | Free (OSS) | GitHub native |204205## Next Steps2062071. Complete initial SAST tool setup2082. Run baseline security scan2093. Create custom rules for organization-specific patterns2104. Integrate into CI/CD pipeline2115. Establish security gate policies2126. Train development team on findings and remediation213
Full transparency — inspect the skill content before installing.