# algorand-vulnerability-scanner

Ищет 11 типовых уязвимостей в контрактах Algorand на TEAL и PyTeal: rekeying, непроверенные комиссии, доступы. Пригодится перед аудитом проекта.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 5200 установок · ★ 7805
- Автор: trailofbits
- Лицензия: CC-BY-SA-4.0 · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/trailofbits/skills/tree/HEAD/plugins/building-secure-contracts/skills/algorand-vulnerability-scanner/SKILL.md
- Обновлён: 2026-10-24
- HTML: https://affpapa.org/nevibecode/skills/algorand-vulnerability-scanner

## Что делает

Скилл проходит по кодовой базе и находит файлы `.teal` и `.py` с импортами PyTeal или algosdk. Дальше каждый файл проверяется по 11 шаблонам уязвимостей из базы Trail of Bits: атака через rekeying, непроверенная комиссия транзакции, `CloseRemainderTo` и `AssetCloseTo`, отсутствие проверки `Global.group_size()`, replay по времени, незащищённые update и delete, непроверенный Asset ID, зависшие переводы на неоптированные аккаунты, комиссия внутренней транзакции и clear state. Отчёт идёт с таблицей покрытия: по каждой из 11 строк стоит вердикт, даже если ничего не нашлось, и ссылка на `file:line` для найденного.

Если установлен Tealer, скилл запускает и его: `tealer contract.teal --detect all` либо отдельные детекторы вроде `unprotected-rekey,group-size-check,update-application-check`. Без Tealer ручной проход всё равно выполняется, но автоматическая проверка отпадает. Ставится Tealer через `uv tool install tealer`, и каталог с бинарниками uv должен быть в `PATH`, иначе команда не найдётся.

Разбор идёт по шагам: определить тип контракта (stateful application или smart signature), найти approval и clear state программы, собрать матрицу проверок по каждому типу транзакции, разобрать атомарные группы и доступы. Скилл рассчитан на Algorand, для других блокчейнов шаблоны не подойдут.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add trailofbits/skills --skill algorand-vulnerability-scanner -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/algorand-vulnerability-scanner/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/algorand-vulnerability-scanner/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add trailofbits/skills --skill algorand-vulnerability-scanner -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/algorand-vulnerability-scanner/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add trailofbits/skills --skill algorand-vulnerability-scanner -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/algorand-vulnerability-scanner/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install trailofbits/skills algorand-vulnerability-scanner
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/algorand-vulnerability-scanner/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add trailofbits/skills --skill algorand-vulnerability-scanner -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/trailofbits/skills --path plugins/building-secure-contracts/skills/algorand-vulnerability-scanner
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/algorand-vulnerability-scanner/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add trailofbits/skills --skill algorand-vulnerability-scanner -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/trailofbits/skills/tree/HEAD/plugins/building-secure-contracts/skills/algorand-vulnerability-scanner/SKILL.md

## Когда брать
- найти непроверенный `RekeyTo` в платёжной ветке контракта
- проверить, что комиссия валидируется в smart signature
- закрыть слив средств через `CloseRemainderTo` и `AssetCloseTo`
- убедиться, что update и delete защищены проверкой прав
- проверить `Global.group_size()` в атомарной группе

## Примеры запросов агенту
- Просканируй контракты Algorand в проекте на уязвимости и покажи таблицу покрытия по всем 11 шаблонам
- Проверь `approval_program.py` на rekeying и незащищённые update-вызовы
- Прогони Tealer по `contract.teal` со всеми детекторами и разбери находки

## Похожие
- [git-guardrails-claude-code](https://affpapa.org/nevibecode/skills/git-guardrails-claude-code.md) — скилл · 499069 установок
- [ponytail-review](https://affpapa.org/nevibecode/skills/ponytail-review.md) — скилл · 57000 установок
- [ponytail-audit](https://affpapa.org/nevibecode/skills/ponytail-audit.md) — скилл · 45400 установок
- [security-audit](https://affpapa.org/nevibecode/skills/cloudflare-security-audit.md) — скилл · 54800 установок
- [security-and-hardening](https://affpapa.org/nevibecode/skills/security-and-hardening.md) — скилл · 70200 установок
- [supabase](https://affpapa.org/nevibecode/skills/supabase.md) — скилл · 8 установок

Из того же набора: [trailofbits/skills](https://affpapa.org/nevibecode/by/trailofbits/skills.md) — 77 карточек

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
