Skill

Configure SAST for Secure Code Scanning

Configures SAST tools (Semgrep, SonarQube, CodeQL) with custom rules, CI/CD gates, and false-positive tuning.

Works with semgrepsonarqubecodeqlgithubgitlab

Maintainer of this project? Claim this page to edit the listing.


78
Spark score
out of 100
Updated last month
Version 13.1.0

Add to Favorites

Why it matters

Automate the setup and configuration of Static Application Security Testing (SAST) tools to identify vulnerabilities in your codebase. This skill helps integrate security scanning into your CI/CD pipelines and create custom rules for comprehensive code analysis.

Outcomes

What it gets done

01

Set up SAST scanning in CI/CD pipelines

02

Create custom security rules for your codebase

03

Configure quality gates and compliance policies

04

Optimize scan performance and reduce false positives

Install

Add it to your toolbox

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/ag-sast-configuration | bash

Overview

SAST Configuration

Configures SAST tools (Semgrep, SonarQube, CodeQL) with custom rules, CI/CD quality gates, and false-positive tuning. Use when setting up SAST scanning in CI/CD, writing custom security rules, or tuning false positives.

What it does

Provides comprehensive guidance for setting up and configuring Static Application Security Testing (SAST) tools - Semgrep, SonarQube, and CodeQL - including custom rule creation, CI/CD integration, quality gates, and false-positive tuning across multiple programming languages.

When to use - and when NOT to

Use this skill to set up SAST scanning in CI/CD pipelines, create custom security rules, configure quality gates and compliance policies, optimize scan performance, or integrate multiple SAST tools for defense-in-depth. Not a fit when only DAST or manual penetration testing guidance is needed, when source code or CI/CD pipeline access isn't available, or when the task is an organizational policy decision rather than tooling setup.

Inputs and outputs

Covers three tools in depth: Semgrep (custom pattern-matching rules, language-specific security rules, CI/CD integration across GitHub Actions/GitLab CI/Jenkins, false-positive tuning), SonarQube (quality gate configuration, security hotspot analysis, code coverage and technical debt tracking, custom quality profiles, LDAP/SAML enterprise integration), and CodeQL (GitHub Advanced Security integration, custom query development, vulnerability variant analysis, SARIF result processing).

The workflow runs five steps: identify languages, repos, and compliance requirements; choose tools and define a baseline policy; integrate scans into CI/CD with gating thresholds; tune rules and suppressions based on false positives; and track remediation and verify fixes. Quick-start commands cover installing and running Semgrep (semgrep --config=auto --error), spinning up SonarQube via Docker, and setting up the CodeQL CLI (codeql database create). Includes a GitHub Actions Semgrep integration example, a pre-commit hook configuration, a custom rule example for detecting hardcoded JWT secrets, and a PCI-DSS-focused compliance scan command. Safety guidance flags avoiding third-party scans of sensitive repos without approval and preventing secret leaks in scan artifacts and logs.

Integrations

Integrates Semgrep, SonarQube, and CodeQL into CI/CD pipelines (GitHub Actions, GitLab CI, Jenkins) and pre-commit hooks, with SonarQube supporting LDAP/SAML enterprise auth and CodeQL integrating natively with GitHub Advanced Security and SARIF-format results.

Best practices it encodes

Start with a baseline scan to establish current security posture, prioritize critical and high-severity findings, and build a remediation roadmap. Adopt incrementally - begin with security-focused rules, add code quality rules gradually, and reserve blocking gates for critical issues only. Manage false positives by documenting legitimate suppressions, maintaining allow lists for known-safe patterns, and periodically reviewing suppressed findings. Optimize performance by excluding test files and generated code, using incremental scanning on large codebases, and caching scan results in CI/CD. For a high false-positive rate specifically, it recommends tuning rule sensitivity, adding path filters for test files, and creating organization-specific rule exceptions.

It also includes a tool-comparison reference: Semgrep is best for custom rules and fast scans (30+ languages, free/enterprise tiers), SonarQube for combined code quality and security (25+ languages, free/commercial), and CodeQL for deep analysis and security research (10+ languages, free for open source, native GitHub integration).

Who it's for

Security engineers and platform teams setting up static analysis scanning across a codebase who need working tool configurations and CI/CD gating patterns rather than starting from each tool's documentation independently.

semgrep --config=auto --error
Source README

SAST Configuration

Static Application Security Testing (SAST) tool setup, configuration, and custom rule creation for comprehensive security scanning across multiple programming languages.

Use this skill when

  • Set up SAST scanning in CI/CD pipelines
  • Create custom security rules for your codebase
  • Configure quality gates and compliance policies
  • Optimize scan performance and reduce false positives
  • Integrate multiple SAST tools for defense-in-depth

Do not use this skill when

  • You only need DAST or manual penetration testing guidance
  • You cannot access source code or CI/CD pipelines
  • You need organizational policy decisions rather than tooling setup

Instructions

  1. Identify languages, repos, and compliance requirements.
  2. Choose tools and define a baseline policy.
  3. Integrate scans into CI/CD with gating thresholds.
  4. Tune rules and suppressions based on false positives.
  5. Track remediation and verify fixes.

Safety

  • Avoid scanning sensitive repos with third-party services without approval.
  • Prevent leaks of secrets in scan artifacts and logs.

Overview

This skill provides comprehensive guidance for setting up and configuring SAST tools including Semgrep, SonarQube, and CodeQL.

Core Capabilities

1. Semgrep Configuration

  • Custom rule creation with pattern matching
  • Language-specific security rules (Python, JavaScript, Go, Java, etc.)
  • CI/CD integration (GitHub Actions, GitLab CI, Jenkins)
  • False positive tuning and rule optimization
  • Organizational policy enforcement

2. SonarQube Setup

  • Quality gate configuration
  • Security hotspot analysis
  • Code coverage and technical debt tracking
  • Custom quality profiles for languages
  • Enterprise integration with LDAP/SAML

3. CodeQL Analysis

  • GitHub Advanced Security integration
  • Custom query development
  • Vulnerability variant analysis
  • Security research workflows
  • SARIF result processing

Quick Start

Initial Assessment

  1. Identify primary programming languages in your codebase
  2. Determine compliance requirements (PCI-DSS, SOC 2, etc.)
  3. Choose SAST tool based on language support and integration needs
  4. Review baseline scan to understand current security posture

Basic Setup

### Semgrep quick start
pip install semgrep
semgrep --config=auto --error

### SonarQube with Docker
docker run -d --name sonarqube -p 9000:9000 sonarqube:latest

### CodeQL CLI setup
gh extension install github/gh-codeql
codeql database create mydb --language=python

Reference Documentation

  • Semgrep Rule Creation - Pattern-based security rule development
  • SonarQube Configuration - Quality gates and profiles
  • CodeQL Setup Guide - Query development and workflows

Templates & Assets

  • semgrep-config.yml - Production-ready Semgrep configuration
  • sonarqube-settings.xml - SonarQube quality profile template
  • run-sast.sh - Automated SAST execution script

Integration Patterns

CI/CD Pipeline Integration

### GitHub Actions example
- name: Run Semgrep
  uses: returntocorp/semgrep-action@v1
  with:
    config: >-
      p/security-audit
      p/owasp-top-ten

Pre-commit Hook

### .pre-commit-config.yaml
- repo: https://github.com/returntocorp/semgrep
  rev: v1.45.0
  hooks:
    - id: semgrep
      args: ['--config=auto', '--error']

Best Practices

  1. Start with Baseline

    • Run initial scan to establish security baseline
    • Prioritize critical and high severity findings
    • Create remediation roadmap
  2. Incremental Adoption

    • Begin with security-focused rules
    • Gradually add code quality rules
    • Implement blocking only for critical issues
  3. False Positive Management

    • Document legitimate suppressions
    • Create allow lists for known safe patterns
    • Regularly review suppressed findings
  4. Performance Optimization

    • Exclude test files and generated code
    • Use incremental scanning for large codebases
    • Cache scan results in CI/CD
  5. Team Enablement

    • Provide security training for developers
    • Create internal documentation for common patterns
    • Establish security champions program

Common Use Cases

New Project Setup

./scripts/run-sast.sh --setup --language python --tools semgrep,sonarqube

Custom Rule Development

### See references/semgrep-rules.md for detailed examples
rules:
  - id: hardcoded-jwt-secret
    pattern: jwt.encode($DATA, "...", ...)
    message: JWT secret should not be hardcoded
    severity: ERROR

Compliance Scanning

### PCI-DSS focused scan
semgrep --config p/pci-dss --json -o pci-scan-results.json

Troubleshooting

High False Positive Rate

  • Review and tune rule sensitivity
  • Add path filters to exclude test files
  • Use nostmt metadata for noisy patterns
  • Create organization-specific rule exceptions

Performance Issues

  • Enable incremental scanning
  • Parallelize scans across modules
  • Optimize rule patterns for efficiency
  • Cache dependencies and scan results

Integration Failures

  • Verify API tokens and credentials
  • Check network connectivity and proxy settings
  • Review SARIF output format compatibility
  • Validate CI/CD runner permissions

Related Skills

  • OWASP Top 10 Checklist
  • Container Security
  • Dependency Scanning

Tool Comparison

Tool Best For Language Support Cost Integration
Semgrep Custom rules, fast scans 30+ languages Free/Enterprise Excellent
SonarQube Code quality + security 25+ languages Free/Commercial Good
CodeQL Deep analysis, research 10+ languages Free (OSS) GitHub native

Next Steps

  1. Complete initial SAST tool setup
  2. Run baseline security scan
  3. Create custom rules for organization-specific patterns
  4. Integrate into CI/CD pipeline
  5. Establish security gate policies
  6. Train development team on findings and remediation

Limitations

  • Use this skill only when the task clearly matches the scope described above.
  • Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
  • Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.

FAQ

Common questions

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.