زارن
تحليل أمان رمز ثابت الوزن لتطبيقات بيرل الحديثة
بإجراء تحليل ثابت ، يكون Zarn قادرًا على تحديد نقاط الضعف المحتملة: لهذا الغرض ، يتم تحليل كل ملف باستخدام تحليل AST للتعرف على الرموز التي تمثل المخاطر وتدير بعد ذلك عملية تتبع taint لتأكيد أنها ما إذا كانت قابلة للاستغلال أم لا ، للتحقق من صحة ما إذا كان العامل الضار قادرًا على استهداف الطريقة المعنية.
حاليًا ، يقوم Zarn بتحليل سياق الملف الفردي ، مما يعني أنه غير قادر على تحديد نقاط الضعف غير المرتبطة مباشرة بالملف الذي يتم تحليله. ولكن في المستقبل ، نخطط لتنفيذ تحليل الرسم البياني للمكالمات لتحديد نقاط الضعف التي لا ترتبط مباشرة بالملف الذي يجري تحليله.
يمكنك قراءة المنشور الكامل حول Zarn على: أداة تحليل الأمان الثابتة خفيفة الوزن لتطبيقات 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.sarifمساهماتك واقتراحاتك هي موضع ترحيب. انظر هنا إرشادات المساهمة. من فضلك ، الإبلاغ عن الأخطاء عبر صفحة القضايا وللحصول على قضايا الأمان ، انظر هنا سياسة الأمان. (✿ ◕‿◕) يتبع هذا المشروع دليل النمط هذا: (https://github.com/htrgouvea/perl-style-guide).
هذا العمل مرخص بموجب ترخيص معهد ماساتشوستس للتكنولوجيا.