OWASP API Security Top 10: 0xaa insufficient logging monitoring

# API10:2019 Недостаточное Логирование и Мониторинг

| Источники угроз/Векторы атак | Недостатки безопасности | Последствия |
| - | - | - |
| Зависит от API : Сложность эксплуатации **2** | Распространенность **3** : Сложность обнаружения **1** | Технические последствия **2** : Зависит от бизнеса |
| Злоумышленник пользуется отсутствием логирования и мониторинга для незаметной эксплуатации уязвимостей системы. | Отсутствующие или недостаточные логирование и мониторинг не позволяют отследить подозрительную активность и своевременно отреагировать на нее. | Без наблюдения за происходящей подозрительной активностью у злоумышленника есть достаточно времени для полной компрометации системы. |

## Как определить, является ли API уязвимым?

API уязвим, если:

* Не пишутся логи, уровень логирования некорректно установлен, или сообщения в логах недостаточно детальны.
* Не обеспечивается целостность логов (например, [Инъекция в логи][1]).
* Логи не подвергаются постоянному мониторингу.
* API не подвергается постоянному мониторингу.

## Примеры сценариев атаки

## Сценарий #1

Ключ доступа к административному API утекли через общедоступный репозиторий. Владелец репозитория был уведомлен о потенциальной утечке по электронной почте, но отреагировал на инцидент более чем через 48 часов, в связи с чем утечка ключей могла привести к получению доступа к критичным данным. Из-за недостаточного логирования компания не в состоянии оценить, к каким данным злоумышленники смогли получить доступ.

### Сценарий #2

Платформа обмена видео подверглась масштабной атаке по перебору учетных данных. Не смотря на логирование неуспешных попыток входа, уведомление об атаке не последовало в течение всего хода атаки. Логи были проанализированы и атака обнаружена только во время анализа обращения пользователя. Компании пришлось публично попросить пользователей сменить пароли и отправить отчет об атаке в регулирующие органы.

## Как предотвратить

* Логируйте все неудачные попытки входа, отказы в доступе и ошибки валидации входящих данных.
* Логи должны быть представлены в формате, позволяющем обрабатывать их с помощью систем управления логами, и должны включать достаточное количество деталей, позволяющих идентифицировать злоумышленника.
* Логи должны считаться критичными данными, а их целостность должна быть обеспечена при передаче и хранении.
* Настройте систему мониторинга для постоянного контроля инфраструктуры, сети и функционирующих API.
* Используйте систему управления информацией и событиями безопасности (SIEM), чтобы агрегировать и управлять логами всех компонентов на всех уровнях и хостах API.
* Настройте персональные уведомления и панели управления для скорейшего обнаружения и реагирования на подозрительную активность.

## Ссылки

### OWASP

* [OWASP Logging Cheat Sheet][2]
* [OWASP Proactive Controls: Implement Logging and Intrusion Detection][3]
* [OWASP Application Security Verification Standard: V7: Error Handling and Logging Verification Requirements][4]

### Внешние

* [CWE-223: Omission of Security-relevant Information][5]
* [CWE-778: Insufficient Logging][6]

[1]: https://www.owasp.org/index.php/Log_Injection
[2]: https://www.owasp.org/index.php/Logging_Cheat_Sheet
[3]: https://www.owasp.org/index.php/OWASP_Proactive_Controls
[4]: https://github.com/OWASP/ASVS/blob/master/4.0/en/0x15-V7-Error-Logging.md
[5]: https://cwe.mitre.org/data/definitions/223.html
[6]: https://cwe.mitre.org/data/definitions/778.html