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, если найдены угрозы. |
Action предоставляет выходные значения exit-code и report-path. Укажите fail-on-findings: false, чтобы собирать результаты без ошибки задания. Ошибки сканера или источника по-прежнему возвращают код 2.
Отчёты могут содержать локальные пути и фрагменты кода. Ограничьте доступ к артефактам и срок их хранения кругом специалистов, которые проверяют результаты безопасности.