feat: примеры вредоносных пакетов + E2E-тест + документация
- examples/evil-pypi/: exec-base64, shady-links, code-execution, dll-hijacking - examples/evil-npm/: eval, Buffer(base64), shady-links - examples/evil-go/: exec+base64, shady-links - examples/trigger-scans.sh: сборка архивов + Docker cp + вебхуки + проверка - README.md + README.en.md: секция E2E-тестирования с curl-примерами - E2E пройден: pypi(2 findings), npm(1), go(1) — все flagged
This commit is contained in:
31
README.md
31
README.md
@@ -126,6 +126,37 @@ GuardDog Nexus принимает вебхуки от Nexus при событи
|
||||
> -d '{"action":"UPDATED","repositoryName":"pypi-proxy","asset":{"format":"pypi","name":"/packages/pkg/1.0/pkg-1.0.tar.gz","downloadUrl":"http://nexus:8081/repository/pypi-proxy/packages/pkg/1.0/pkg-1.0.tar.gz"}}'
|
||||
> ```
|
||||
|
||||
### E2E-тестирование
|
||||
|
||||
В `examples/` лежат примеры вредоносных пакетов для PyPI, npm и Go с паттернами, которые GuardDog гарантированно обнаружит (`exec-base64`, `shady-links`, `code-execution`, `npm-api-obfuscation`, `go-exec-base64`).
|
||||
|
||||
Запуск E2E-теста (требует запущенного Docker-стека):
|
||||
|
||||
```bash
|
||||
./examples/trigger-scans.sh
|
||||
```
|
||||
|
||||
Скрипт собирает архивы `.tar.gz` / `.tgz` / `.zip`, копирует их в контейнер и отправляет вебхуки. Через ~15 секунд проверяет результаты: все три пакета должны быть flagged с findings.
|
||||
|
||||
Для тестирования отдельной экосистемы — curl вручную:
|
||||
|
||||
```bash
|
||||
# PyPI: exec-base64 + shady-links + code-execution
|
||||
curl -X POST http://localhost:8080/webhooks/nexus \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"action":"UPDATED","repositoryName":"pypi-proxy","asset":{"format":"pypi","name":"/packages/evil-pypi/0.1.0/evil-pypi-0.1.0.tar.gz","downloadUrl":"http://nexus:8081/repository/pypi-proxy/packages/evil-pypi/0.1.0/evil-pypi-0.1.0.tar.gz"}}'
|
||||
|
||||
# npm: eval + Buffer(base64) + shady-links
|
||||
curl -X POST http://localhost:8080/webhooks/nexus \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"action":"UPDATED","repositoryName":"npm-proxy","asset":{"format":"npm","name":"/packages/evil-npm/-/evil-npm-1.0.0.tgz","downloadUrl":"http://nexus:8081/repository/npm-proxy/evil-npm/-/evil-npm-1.0.0.tgz"}}'
|
||||
|
||||
# Go: exec + base64 + suspicious HTTP call
|
||||
curl -X POST http://localhost:8080/webhooks/nexus \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"action":"UPDATED","repositoryName":"go-proxy","asset":{"format":"go","name":"/packages/github.com/evil/evil-go/@v/v0.1.0.zip","downloadUrl":"http://nexus:8081/repository/go-proxy/github.com/evil/evil-go/@v/v0.1.0.zip"}}'
|
||||
```
|
||||
|
||||
## REST API
|
||||
|
||||
### Сканирования
|
||||
|
||||
Reference in New Issue
Block a user