Zarn
Un análisis de seguridad de código estático liviano para aplicaciones modernas de Perl
Al realizar un análisis estático, Zarn puede identificar posibles vulnerabilidades: para este propósito, cada archivo se analiza utilizando el análisis AST para reconocer tokens que presentan riesgos y posteriormente ejecuta el proceso de seguimiento de contaminación para confirmar que es un explotable o no, para validar si un agente malicioso puede dirigirse al método en cuestión.
Actualmente, Zarn realiza un análisis de contexto de un solo archivo, lo que significa que no puede identificar vulnerabilidades que no están directamente relacionadas con el archivo que se analiza. Pero en el futuro, planeamos implementar un análisis de gráficos de llamadas para identificar vulnerabilidades que no están directamente relacionadas con el archivo que se analiza.
Puede leer la publicación completa sobre Zarn en: una herramienta de análisis de seguridad estática liviana para aplicaciones modernas de Perl.
# Download
$ git clone https://github.com/htrgouvea/zarn && cd zarn
# Install libs dependencies
$ sudo cpanm --installdeps .$ perl zarn.pl --rules rules/quick-wins.yml --source ../nozaki --sarif report.sarif
[warn] - FILE:../nozaki/lib/Functions/Helper.pm Potential: Timing Attack.
[vuln] - FILE:../nozaki/lib/Engine/Orchestrator.pm Potential: Path Traversal.
[vuln] - FILE:../nozaki/lib/Engine/Orchestrator.pm Potential: Path Traversal.
[warn] - FILE:../nozaki/lib/Engine/FuzzerThread.pm Potential: Timing Attack. rules :
- id : ' 0001 '
category : info
name : Debug module enabled
message : Debug modules can expose sensitive information and potentially create security vulnerabilities.
sample :
- Dumper
- id : ' 0002 '
category : vuln
name : Code Injection
message : Occur when untrusted data is executed as code, allowing attackers to run arbitrary commands on the server.
sample :
- system
- eval
- exec
- qx
- id : ' 0003 '
category : vuln
name : Path Traversal
message : Occur when user input is not properly sanitized, allowing attackers to access files and directories outside of the intended directory structure.
sample :
- open name : ZARN SAST
on :
push :
branches : [ "main" ]
pull_request :
branches : [ "main" ]
schedule :
- cron : " 28 23 * * 1 "
jobs :
zarn :
name : Security Static Analysis with ZARN
runs-on : ubuntu-20.04
steps :
- name : Checkout code
uses : actions/checkout@v4
- name : Perform Static Analysis
uses : htrgouvea/[email protected]
- name : Send result to Github Security
uses : github/codeql-action/upload-sarif@v3
with :
sarif_file : result.sarifSus contribuciones y sugerencias son de todo corazón ♥ Bienvenidos. Vea aquí las pautas de contribución. Por favor, informe de errores a través de la página de problemas y para cuestiones de seguridad, consulte aquí la política de seguridad. (✿) Este proyecto sigue esta guía de estilo: (https://github.com/htrgouvea/perl-style-guide).
Este trabajo tiene licencia bajo la licencia MIT.