إنتقل إلى المحتوى الرئيسي
الإصدار: الأحدث

GitHub Actions

أنشئ الملف .github/workflows/malware-scan.yml في المستودع الذي تريد فحصه:

name: Malware scan

on:
push:
pull_request:
schedule:
- cron: '0 0 * * 0'

permissions:
contents: read
security-events: write

jobs:
scan:
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4

- name: Scan for malware
id: amwscan
uses: marcocesarato/PHP-Antimalware-Scanner@master
with:
path: .
mode: lite
report-format: sarif
ignore-paths: '*/cache/*,*/logs/*'

- name: Upload SARIF report
if: always()
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: ${{ steps.amwscan.outputs.report-path }}

يستخدم الفحص الافتراضي وضع Lite ويفشل التشغيل عندما يعثر AMWScan على مشكلة أمنية. ترفع الخطوة الأخيرة تقرير SARIF إلى Security > Code scanning حتى عند فشل خطوة الفحص.

إعداد الفحص

الإدخالالقيمة الافتراضيةالغرض
path.الملف أو المجلد المراد فحصه.
modeliteاختر full أو lite أو signatures أو exploits أو functions.
report-formatsarifاكتب التقرير بصيغة html أو txt أو json أو sarif.
report-pathamwscan-reportحدد مسار التقرير.
php-version8.3اختر إصدار PHP.
scan-archivesfalseافحص محتويات أرشيفات ZIP.
scan-allfalseافحص الملفات بغض النظر عن امتدادها.
ignore-pathsفارغاستبعد مسارات أو أنماطاً مفصولة بفواصل.
disable-checksumfalseعطّل فحوصات سلامة المنصات المدعومة.
disable-definitions-updatetrueتجاوز تحديثات تعريفات Maltrail البعيدة.
fail-on-findingstrueأعد الرمز 1 عند وجود نتائج.

يوفر الإجراء المخرجين exit-code وreport-path. اضبط fail-on-findings: false لجمع النتائج من دون إفشال التشغيل. تستمر أخطاء الماسح أو المصدر في إعادة الرمز 2.

قد تحتوي التقارير على مسارات محلية ومقاطع من الشيفرة. احصر الوصول إلى العناصر المحفوظة ومدة الاحتفاظ بها على الأشخاص الذين يراجعون نتائج الأمان.