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 | . | स्कैन की जाने वाली फाइल या डायरेक्टरी। |
mode | lite | full, lite, signatures, exploits या functions चुनें। |
report-format | sarif | html, txt, json या sarif लिखें। |
report-path | amwscan-report | रिपोर्ट का पथ तय करें। |
php-version | 8.3 | PHP वर्जन चुनें। |
scan-archives | false | ZIP आर्काइव की एंट्री स्कैन करें। |
scan-all | false | एक्सटेंशन की परवाह किए बिना फाइल स्कैन करें। |
ignore-paths | खाली | कॉमा से अलग किए गए पथ या पैटर्न छोड़ें। |
disable-checksum | false | समर्थित प्लेटफॉर्म की इंटीग्रिटी जाँच बंद करें। |
disable-definitions-update | true | रिमोट Maltrail डेफिनिशन अपडेट छोड़ें। |
fail-on-findings | true | नतीजे मिलने पर कोड 1 लौटाएँ। |
एक्शन exit-code और report-path आउटपुट देता है। जॉब को विफल किए बिना नतीजे लेने के लिए fail-on-findings: false सेट करें। स्कैनर या सोर्स की त्रुटि पर कोड 2 मिलता रहेगा।
रिपोर्ट में लोकल पथ और कोड के अंश हो सकते हैं। आर्टिफैक्ट का एक्सेस और रिटेंशन केवल सुरक्षा नतीजों की समीक्षा करने वाले लोगों तक सीमित रखें।