
semgrep v1.171.0
Análisis estático ligero para muchos lenguajes. Encuentra variantes de errores con patrones que parecen código fuente.
Escaneo de código a velocidad vertiginosa.
Semgrep es una herramienta de análisis estático rápida, de código abierto, que busca código, encuentra errores y aplica barreras de seguridad y estándares de codificación. Semgrep compatible con más de 30 lenguajes y puede ejecutarse en un IDE, como verificación previa al commit y como parte de flujos de trabajo CI/CD.
Semgrep es un grep semántico para código. Mientras que ejecutar grep "2" solo coincidiría con la cadena exacta 2, Semgrep coincidiría con x = 1; y = x + 1 al buscar 2. Las reglas de Semgrep se parecen al código que ya escribes; sin árboles de sintaxis abstracta, peleas con regex ni DSLs dolorosos.
Ten en cuenta que en contextos de seguridad, Semgrep Community Edition pasará por alto muchos verdaderos positivos, ya que solo puede analizar código dentro de los límites de una sola función o archivo. Si deseas usar Semgrep con fines de seguridad (SAST, SCA o detección de secretos), se recomienda encarecidamente la plataforma Semgrep AppSec Platform, ya que añade las siguientes capacidades críticas:
- Capacidades de análisis central mejoradas (entre archivos, entre funciones, alcanzabilidad del flujo de datos) que reducen en gran medida los falsos positivos en un 25% y aumentan la detección de verdaderos positivos en un 250%.
- Postprocesamiento contextual de hallazgos con Semgrep Assistant (IA) para reducir aún más el ruido en aproximadamente un ~20%. Además, Assistant enriquece los hallazgos con guías de remediación paso a paso y adaptadas que los humanos consideran accionables más del 80% de las veces.
- Políticas personalizables e integración fluida en los flujos de trabajo de los desarrolladores, brindando a los equipos de seguridad un control granular sobre dónde, cuándo y cómo se presentan los diferentes hallazgos a los desarrolladores (IDE, comentario en PR, etc.)
La plataforma Semgrep AppSec Platform funciona desde el primer momento con más de 20 000 reglas propietarias en SAST, SCA y secretos. Las reglas Pro son escritas y mantenidas por el equipo de investigación de seguridad de Semgrep y son muy precisas, lo que permite que los equipos de AppSec sientan confianza al llevar los hallazgos directamente a los desarrolladores sin ralentizarlos.
Semgrep analiza el código localmente en tu computadora o en tu entorno de compilación: por defecto, el código nunca se sube. Comienza aquí →.
Soporte de lenguajes
Semgrep Code admite más de 30 lenguajes, incluyendo:
Apex · Bash · C · C++ · C# · Clojure · Dart · Dockerfile · Elixir · HTML · Go · Java · JavaScript · JSX · JSON · Julia · Jsonnet · Kotlin · Lisp · Lua · OCaml · PHP · Python · R · Ruby · Rust · Scala · Scheme · Solidity · Swift · Terraform · TypeScript · TSX · YAML · XML · Generic (ERB, Jinja, etc.)
Semgrep Supply Chain admite 12 lenguajes en 15 gestores de paquetes, incluyendo:
C# (NuGet) · Dart (Pub) · Go (Go modules, go mod) · Java (Gradle, Maven) · Javascript/Typescript (npm, Yarn, Yarn 2, Yarn 3, pnpm) · Kotlin (Gradle, Maven) · PHP (Composer) · Python (pip, pip-tool, Pipenv, Poetry) · Ruby (RubyGems) · Rust (Cargo) · Scala (Maven) · Swift (SwiftPM)
Para más información, consulta Lenguajes compatibles.
Primeros pasos 🚀
Para nuevos usuarios, recomendamos comenzar con la plataforma Semgrep AppSec porque proporciona una interfaz visual, un proyecto de demostración, flujos de trabajo de triaje y exploración de resultados, y facilita la configuración en CI/CD. Los escaneos siguen siendo locales y el código no se sube. Alternativamente, también puedes comenzar con la CLI y navegar por la salida del terminal para ejecutar búsquedas puntuales.
Opción 1: Primeros pasos desde la plataforma Semgrep Appsec (Recomendado)
-
Regístrate en semgrep.dev
-
Explora los hallazgos de demostración para aprender cómo funciona Semgrep
-
Escanea tu proyecto navegando a
Projects > Scan New Project > Run scan in CI -
Selecciona tu sistema de control de versiones y sigue los pasos de integración para añadir tu proyecto. Después de esta configuración, Semgrep escaneará tu proyecto después de cada pull request.
-
[Opcional] Si deseas ejecutar Semgrep localmente, sigue los pasos en la sección de CLI.
Notas:
Si hay algún problema, solicita ayuda en el Slack de Semgrep.
Opción 2: Primeros pasos desde la CLI
-
Instala la CLI de Semgrep
# Para macOS $ brew install semgrep # Para Ubuntu/WSL/Linux/macOS $ python3 -m pip install semgrep # Para probar Semgrep sin instalación, ejecuta mediante Docker $ docker run -it -v "${PWD}:/src" semgrep/semgrep semgrep login $ docker run -e SEMGREP_APP_TOKEN=<TOKEN> --rm -v "${PWD}:/src" semgrep/semgrep semgrep ci -
Ejecuta
semgrep loginpara crear tu cuenta e iniciar sesión en Semgrep. Este paso es opcional, pero iniciar sesión en Semgrep te da acceso a:- Semgrep Supply Chain: Un escáner de dependencias que detecta vulnerabilidades alcanzables en librerías de terceros
- Reglas Pro de Semgrep Code: Más de 600 reglas de alta confianza escritas por el equipo de investigación de seguridad de Semgrep
- Motor Pro de Semgrep Code: Un motor de análisis de código avanzado, diseñado para detectar vulnerabilidades complejas y reducir falsos positivos
-
Ve al directorio raíz de tu aplicación y ejecuta
semgrep ci. Esto escaneará tu proyecto para comprobar vulnerabilidades en tu código fuente y sus dependencias. -
Intenta escribir tu propia consulta de forma interactiva con
-e. Por ejemplo, una verificación para Python == donde los lados izquierdo y derecho son iguales (potencialmente un error):$ semgrep -e '$X == $X' --lang=py path/to/src
Ecosistema Semgrep
El ecosistema de Semgrep incluye lo siguiente:
-
Semgrep Community Edition - El motor de análisis de programas de código abierto en el centro de todo. Adecuado para casos de uso ad hoc con alta tolerancia a falsos positivos; piensa en consultores, auditores de seguridad o pentesters.
-
Semgrep AppSec Platform - Orquesta y escala fácilmente SAST, SCA y escaneo de secretos en toda una organización, sin riesgo de abrumar a los desarrolladores. Personaliza qué hallazgos ven los desarrolladores, dónde los ven e intégrate con proveedores de CI como GitHub, GitLab, CircleCI y más. Incluye niveles gratuitos y de pago.
-
Semgrep Code (SAST) - Avanza realmente en tu acumulación de vulnerabilidades con SAST que minimiza el ruido y permite a los desarrolladores solucionar problemas rápidamente por sí mismos, incluso sin conocimientos de seguridad. Las barreras de seguridad fáciles de implementar y las guías de remediación paso a paso y adaptadas significan que los desarrolladores realmente solucionan los problemas porque no se sienten ralentizados.
-
Semgrep Supply Chain (SSC) - Un escáner de dependencias de alta señal que detecta vulnerabilidades alcanzables en librerías y funciones de código abierto de terceros.
-
Semgrep Secrets (Detección de secretos) - Detección de secretos que utiliza análisis semántico, análisis de entropía mejorado y validación para descubrir credenciales sensibles de manera precisa en el flujo de trabajo del desarrollador.
-
Semgrep Assistant (IA) - Assistant es un ingeniero de AppSec impulsado por IA que ayuda tanto a desarrolladores como a equipos de AppSec a priorizar, triar y remediar hallazgos de Semgrep a escala. Los humanos están de acuerdo con las decisiones de triaje automático de Assistant el 97% de las veces, y califican la guía de remediación generada como útil el 80% de las veces. Para una visión general de cómo funciona Assistant, lee esta descripción.
-
-
Servidor MCP de Semgrep - Un servidor de Protocolo de Contexto de Modelo (MCP) que permite a los asistentes de codificación mediante IA ejecutar escaneos de Semgrep directamente. Se integra con Cursor, VS Code, Windsurf, Claude Desktop y más. Ejecuta
semgrep mcppara iniciarlo localmente.- Hooks - Activa automáticamente escaneos de Semgrep mientras codificas.
- Skills / Prompts - Prompts MCP integrados como
write_custom_semgrep_ruleayudan a los asistentes de IA a escribir reglas Semgrep precisas. - Plugin para Claude Code - Disponible en el marketplace oficial y a través del repositorio semgrep/mcp-marketplace:
/plugin marketplace add semgrep/mcp-marketplace - Plugin para Cursor - Disponible en el marketplace oficial y a través del repositorio semgrep/cursor-plugin.
Recursos adicionales:
- Semgrep Playground - Una herramienta interactiva en línea para escribir y compartir reglas.
- Semgrep Registry - Más de 2000 reglas impulsadas por la comunidad que cubren seguridad, corrección y vulnerabilidades de dependencias.
Únete a cientos de miles de otros desarrolladores e ingenieros de seguridad que ya usan Semgrep en empresas como GitLab, Dropbox, Slack, Figma, Shopify, HashiCorp, Snowflake y Trail of Bits.
Semgrep es desarrollado y respaldado comercialmente por Semgrep, Inc., una empresa de seguridad de software.
Reglas de Semgrep
Las reglas de Semgrep se parecen al código que ya escribes; sin árboles de sintaxis abstracta, peleas con regex ni DSLs dolorosos. Aquí tienes una regla rápida para encontrar declaraciones print() en Python.
Ejecútala en línea en el Playground de Semgrep haciendo clic aquí.
Ejemplos
Visita Docs > Ejemplos de reglas para casos de uso e ideas.
| Caso de uso | Regla de Semgrep |
|---|---|
| Prohibir APIs peligrosas | Evitar el uso de exec |
| Buscar rutas y autenticación | Extraer rutas de Spring |
| Obligar al uso de valores seguros por defecto | Configurar cookies de Flask de forma segura |
| Datos contaminados en sumideros | Flujo de datos en ExpressJS hacia sandbox.run |
| Aplicar buenas prácticas del proyecto | Usar assertEqual para comprobaciones ==, Siempre verificar llamadas a subprocess |
| Codificar conocimiento específico del proyecto | Verificar transacciones antes de realizarlas |
| Auditar puntos críticos de seguridad | Encontrar XSS en Apache Airflow, Credenciales hardcodeadas |
| Auditar archivos de configuración | Encontrar usos de ARN de S3 |
| Migrar desde APIs obsoletas | DES está obsoleto, APIs obsoletas de Flask, APIs obsoletas de Bokeh |
| Aplicar correcciones automáticas | Usar listenAndServeTLS |
Extensiones
Visita Docs > Extensiones para aprender a usar Semgrep en tu editor o pre-commit. Cuando se integra en CI y se configura para escanear pull requests, Semgrep solo informará problemas introducidos por ese pull request; esto te permite comenzar a usar Semgrep sin tener que corregir o ignorar problemas preexistentes.
Documentación
Explora la documentación completa de Semgrep en el sitio web. Si eres nuevo en Semgrep, consulta Docs > Primeros pasos o el tutorial interactivo.
Métricas
El uso de configuración remota desde el Registry (como --config=p/ci) reporta métricas de reglas seudónimas a semgrep.dev.
Cuando se usan configuraciones de archivos locales (como --config=xyz.yml), las métricas solo se envían cuando el usuario ha iniciado sesión.
Para deshabilitar las métricas de reglas del Registry, usa --metrics=off.
La política de privacidad de Semgrep describe los principios que guían las decisiones de recopilación de datos y el desglose de los datos que se recopilan y los que no cuando las métricas están habilitadas.
Más
- Preguntas frecuentes (FAQ)
- Contribuir
- Instrucciones de compilación para desarrolladores
- Haz preguntas en el Slack de la comunidad Semgrep
- Referencia de CLI y códigos de salida
- Canal de YouTube de Semgrep
- Licencia (LGPL-2.1)
- Licenciamiento de Semgrep
ActualizaciónPara actualizar, ejecuta el comando a continuación asociado a cómo instalaste Semgrep:```sh
Using Homebrew
$ brew upgrade semgrep
Using pipx
$ pipx upgrade semgrep
Using uv tool command
$ uv tool upgrade semgrep
Using Docker
$ docker pull semgrep/semgrep:latest
