Проверка безопасности приложения
Проследи изменившуюся границу доверия
- Установи проверяемую ревизию, относящиеся к ней точки входа, идентичности участников, чувствительные данные и проверяемую операцию. Изучи вызывающий код и конфигурацию, от которых зависит достижимость подозрительного участка.
- Проследи путь недоверенного ввода до места его использования, а проверку полномочий — от действующей учётной записи до целевого ресурса. Успешная аутентификация сама по себе не подтверждает право доступа к этому объекту или арендатору.
- Изучи связанные пути, если через них можно обойти тот же контроль: фоновые задания, экспорт, кеши или альтернативные точки API. Сохраняй границы проверки в пределах затронутой возможности.
Подтверди находки
- Укажи необходимые возможности атакующего, уязвимый путь и последствия. По коду и конфигурации отдели подтверждённый дефект от гипотезы, которую ещё нужно проверить.
- На контролируемых тестовых данных проверь разрешённую операцию и соответствующую запрещённую. Если важна принадлежность объекта, включи другого пользователя или арендатора: успешный доступ владельца сам по себе не подтверждает изоляцию.
- Проверяй обработку ввода с учётом контекста, состояние сессий, использование зависимостей и логирование только там, где они могут нарушить установленную границу. Совпадение с пунктом чек-листа без правдоподобного пути не является подтверждённой уязвимостью.
- Предложи минимальное исправление, обеспечивающее инвариант на доверенной границе. Проверь, что оно сохраняет допустимое поведение и закрывает связанный путь, благодаря которому нарушение было возможно.
- Определяй приоритет по достижимому ущербу и достоверности вывода. Указывай непроверенные компоненты и недоступные данные работающей системы, не считай их безопасными по умолчанию.
Результат
Для каждой находки, требующей действий, укажи место, предпосылки, доказательства, влияние, исправление и содержательную регрессионную проверку. При отсутствии находок обозначь охват и ограничения проверки: это не всеобщая сертификация безопасности.
Используй синтетические данные и разрешённые тестовые среды. Не раскрывай настоящие учётные данные, не получай чужие данные и не запускай вредоносные тестовые воздействия на работающих системах ради усиления доказательств. Закрывай находку только при наличии доказательств фактического исправления кода или конфигурации.
1---2name: appsec-review3description: Проверить код или конфигурацию приложения на конкретные нарушения безопасности на границах доверия и проверить предложенные исправления. Использовать для оценки безопасности или существенного изменения, влияющего на неё, а не для каждой обычной правки кода.4---56# Проверка безопасности приложения78## Проследи изменившуюся границу доверия910- Установи проверяемую ревизию, относящиеся к ней точки входа, идентичности участников, чувствительные данные и проверяемую операцию. Изучи вызывающий код и конфигурацию, от которых зависит достижимость подозрительного участка.11- Проследи путь недоверенного ввода до места его использования, а проверку полномочий — от действующей учётной записи до целевого ресурса. Успешная аутентификация сама по себе не подтверждает право доступа к этому объекту или арендатору.12- Изучи связанные пути, если через них можно обойти тот же контроль: фоновые задания, экспорт, кеши или альтернативные точки API. Сохраняй границы проверки в пределах затронутой возможности.1314## Подтверди находки15161. Укажи необходимые возможности атакующего, уязвимый путь и последствия. По коду и конфигурации отдели подтверждённый дефект от гипотезы, которую ещё нужно проверить.172. На контролируемых тестовых данных проверь разрешённую операцию и соответствующую запрещённую. Если важна принадлежность объекта, включи другого пользователя или арендатора: успешный доступ владельца сам по себе не подтверждает изоляцию.183. Проверяй обработку ввода с учётом контекста, состояние сессий, использование зависимостей и логирование только там, где они могут нарушить установленную границу. Совпадение с пунктом чек-листа без правдоподобного пути не является подтверждённой уязвимостью.194. Предложи минимальное исправление, обеспечивающее инвариант на доверенной границе. Проверь, что оно сохраняет допустимое поведение и закрывает связанный путь, благодаря которому нарушение было возможно.205. Определяй приоритет по достижимому ущербу и достоверности вывода. Указывай непроверенные компоненты и недоступные данные работающей системы, не считай их безопасными по умолчанию.2122## Результат2324Для каждой находки, требующей действий, укажи место, предпосылки, доказательства, влияние, исправление и содержательную регрессионную проверку. При отсутствии находок обозначь охват и ограничения проверки: это не всеобщая сертификация безопасности.2526Используй синтетические данные и разрешённые тестовые среды. Не раскрывай настоящие учётные данные, не получай чужие данные и не запускай вредоносные тестовые воздействия на работающих системах ради усиления доказательств. Закрывай находку только при наличии доказательств фактического исправления кода или конфигурации.