Перейти к основному содержимому
Версия: v0.20

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, если найдены угрозы.

Action предоставляет выходные значения exit-code и report-path. Укажите fail-on-findings: false, чтобы собирать результаты без ошибки задания. Ошибки сканера или источника по-прежнему возвращают код 2.

Отчёты могут содержать локальные пути и фрагменты кода. Ограничьте доступ к артефактам и срок их хранения кругом специалистов, которые проверяют результаты безопасности.