Zarn
Une analyse de sécurité du code statique légère pour les applications Perl modernes
Effectuer une analyse statique, Zarn est en mesure d'identifier les vulnérabilités possibles: à cette fin, chaque fichier est analysé en utilisant l'analyse AST pour reconnaître les jetons qui présentent des risques et exécutent par la suite le processus de suivi de souillure pour confirmer qu'il s'agit de si exploitable ou non, pour valider si un agent malveillant est en mesure de cibler la méthode en question.
Actuellement, Zarn effectue une analyse de contexte de fichiers uniques, ce qui signifie qu'il n'est pas en mesure d'identifier les vulnérabilités qui ne sont pas directement liées au fichier analysé. Mais à l'avenir, nous prévoyons d'implémenter une analyse de graphe d'appels pour identifier les vulnérabilités qui ne sont pas directement liées à l'analyse du fichier.
Vous pouvez lire la publication complète sur Zarn à: un outil d'analyse de sécurité statique léger pour les applications Perl modernes.
# 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.sarifVos contributions et suggestions sont chaleureusement ♥ Bienvenue. Voir ici les directives de contribution. S'il vous plaît, signalez les bogues via la page des problèmes et pour les problèmes de sécurité, consultez ici la politique de sécurité. (✿ ◕‿◕) Ce projet suit ce guide de style: (https://github.com/htrgouvea/perl-tyle-guide).
Ce travail est concédé sous licence MIT.