← На главную

Самодиагностика по OWASP API Top 10

Текст ниже — тот же файл, что в репозитории: docs/guides/OWASP_API_TOP10_SELF_CHECKLIST_RU.md (дубликат текста в src/data/owaspApiSelfChecklistRu.ts для сборки). Можно копировать в Confluence/Notion или распечатать для ревью перед релизом.

# Самодиагностика API по OWASP API Security Top 10 (2023)

Краткий чек-лист для команд, которые хотят **сами** пройтись по поверхности рисков до или вместе с автоматическим сканом. Не заменяет пентест и не является исчерпывающим аудитом.

**Как пользоваться:** для каждого пункта ответьте «да / нет / не знаем». «Нет» и «не знаем» — кандидаты на разбор в бэклог безопасности.

---

## API1 — Broken Object Level Authorization (BOLA / IDOR)

- [ ] Для каждого эндпоинта с `{id}` / UUID проверено: пользователь **не может** подставить чужой идентификатор и получить чужие данные?
- [ ] Проверка прав выполняется **на сервере**, а не только скрытием кнопки в UI?
- [ ] Списки (list) и детали (get) используют **один и тот же** слой авторизации по объекту?

## API2 — Broken Authentication

- [ ] Нет «скрытых» эндпоинтов без аутентификации, кроме явно публичных?
- [ ] Токены/session: короткий TTL, refresh с ротацией, инвалидация при logout?
- [ ] Пароли: современный хеш, rate limit на логин, защита от credential stuffing?

## API3 — Broken Object Property Level Authorization

- [ ] Клиент **не может** прислать в JSON лишние поля (`role`, `isAdmin`, `balance`) и изменить то, что не должен?
- [ ] Используются DTO/allow-list полей на входе и на выходе?

## API4 — Unrestricted Resource Consumption

- [ ] Есть лимиты на число запросов, размер тела, тяжёлые отчёты, экспорт?
- [ ] Нет неограниченной вложенности/пагинации «до конца света» без курсоров/лимитов?

## API5 — Broken Function Level Authorization

- [ ] Роль «админ» / внутренние маршруты недоступны обычному пользователю даже при прямом вызове API?
- [ ] HTTP-методы (PUT/DELETE) и версии API проверяются так же, как GET?

## API6 — Unrestricted Access to Sensitive Business Flows

- [ ] Критичные действия (оплата, вывод средств, массовая рассылка) защищены step-up (2FA, CAPTCHA, лимиты по времени)?
- [ ] Нет возможности автоматизировать злоупотребление бизнес-логикой без трения?

## API7 — Server Side Request Forgery (SSRF)

- [ ] Если API принимает URL, IP или «вебхук», запросы уходят **только** в разрешённые хосты/сети?
- [ ] Запрещены ли обходы через редиректы, file://, внутренние метаданные облака?

## API8 — Security Misconfiguration

- [ ] Отключены debug-режимы, stack trace и лишние заголовки в проде?
- [ ] CORS, кэширование, заголовки безопасности согласованы с моделью API (не «*» там, где есть куки/токены)?

## API9 — Improper Inventory Management

- [ ] Известен полный список публичных и партнёрских API (включая legacy и `/internal`, если торчит наружу)?
- [ ] Есть процесс добавления нового эндпоинта в инвентаризацию и минимальный security-review?

## API10 — Unsafe Consumption of APIs

- [ ] Исходящие вызовы к сторонним API: TLS, проверка цепочки, таймауты, нет слепого следования редиректам?
- [ ] Секреты партнёров и ответы не логируются целиком?

---

## После прохода

1. Зафиксируйте открытые пункты в таск-трекере с приоритетом.
2. Прогоните **бесплатный скан** на staging: главная → «Проверить API».
3. Нужен разбор «под ключ» — страница экспресс-аудита https://sec-scanner.pro/audit или пилот по согласованию scope.

*Версия чек-листа: 2026-04-23. Сверяйте формулировки с официальным [OWASP API Security Top 10](https://owasp.org/www-project-api-security/).*