Zarn
Analisis Keamanan Kode Statis Ringan untuk Aplikasi Perl Modern
Melakukan analisis statis, ZARN dapat mengidentifikasi kemungkinan kerentanan: untuk tujuan ini, setiap file diuraikan menggunakan analisis AST untuk mengenali token yang menyajikan risiko dan kemudian menjalankan proses pelacakan noda untuk mengkonfirmasi bahwa apakah itu dapat dieksploitasi atau tidak, untuk memvalidasi apakah agen jahat mampu menargetkan metode tersebut.
Saat ini, ZARN melakukan analisis konteks file tunggal, yang berarti tidak dapat mengidentifikasi kerentanan yang tidak secara langsung terkait dengan file yang dianalisis. Tetapi di masa depan, kami berencana untuk mengimplementasikan analisis grafik panggilan untuk mengidentifikasi kerentanan yang tidak secara langsung terkait dengan file yang dianalisis.
Anda dapat membaca publikasi lengkap tentang ZARN di: Alat analisis keamanan statis ringan untuk aplikasi Perl modern.
# 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.sarifKontribusi dan saran Anda sungguh -sungguh ♥ Selamat datang. Lihat di sini Pedoman Kontribusi. Tolong, laporkan bug melalui halaman masalah dan untuk masalah keamanan, lihat di sini kebijakan keamanan. (✿ ◕‿◕) Proyek ini mengikuti panduan gaya ini: (https://github.com/htrgouvea/perl-style-guide).
Pekerjaan ini dilisensikan di bawah lisensi MIT.