C9: Внедрение журналирования и мониторинга событий безопасности¶
Описание¶
Большинство разработчиков уже используют журналирование при отладке и диагностике. Также важно регистрировать события безопасности (данные, связанные с обеспечением безопасности) во время работы приложения. Мониторинг — это «живой» анализ приложения и журналов безопасности с помощью различных средств автоматизации. Такие же инструменты и шаблоны могут применяться к выполняемым операциям, отладке и обеспечению безопасности.
Польза от журналирования событий безопасности¶
Журналы регистрации событий безопасности могут быть использованы для:
- снабжения системы обнаружения атак данными;
- анализа и расследования инцидентов;
- выполнения требований регулирующих органов.
Реализация журналирования событий безопасности¶
Ниже представлены рекомендации по реализации журналирования событий безопасности.
- Используйте стандартные формы и способы регистрации событий в системе и между системами вашей организации. Примером стандартной платформы для регистрации событий являются службы журналирования Apache (Apache Logging Services), которые обеспечивают совместимость журналирования между приложениями на Java, PHP, .NET и C++.
- Не регистрируйте слишком много или слишком мало данных. Например, убедитесь в обязательной регистрации временных меток и идентификационных данных, таких как IP-адрес источника и идентификатор пользователя, но никогда не записывайте персональные или конфиденциальные данные.
- Обратите особое внимание на синхронизацию времени между узлами для обеспечения согласованности временных меток.
Журналирование с целью обнаружения атак и противодействия им¶
Используйте журналирование для определения активности, указывающей на вредоносный характер действий пользователя. Потенциально опасная активность, подлежащая регистрации:
- вводимые данные находятся за пределами ожидаемого числового диапазона;
- вводимые данные модифицируют компоненты, которые должны оставаться неизменными (список выбора, поля флажков, прочие компоненты с ограниченным вводом);
- запросы, нарушающие правила управления доступом на стороне сервера;
- более подробный список маркеров атак можно найти здесь.
Когда приложение обнаруживает подобную активность, оно должно, как минимум, зарегистрировать это событие и отметить его как опасное. В идеале приложение должно оказать противодействие атаке, например, путем аннулирования сессии пользователя и блокировки его учетной записи. Механизм противодействия позволяет программе реагировать на обнаруживаемые атаки в реальном времени.
Разработка системы журналирования событий безопасности¶
Система журналирования должна создаваться и обслуживаться с учетом требований безопасности. Для обеспечения безопасности журналов рекомендуется:
- кодировать и проверять все потенциально опасные символы перед их записью в журнал для предотвращения внедрения данных или подделки журналов;
- отказаться от регистрации конфиденциальных данных, таких как пароли, идентификаторы сессий, номера кредитных карт или социального страхования;
- осуществлять контроль целостности журналов с целью предотвращения несанкционированных действий с ними через аудит разрешений на работу с файлами журналов и прав на их изменение;
- отправлять журналы регистрации от распределенных систем в центральную, безопасную службу журналирования. Это обеспечит сохранность журналируемых данных при компрометации отдельных узлов, а также централизованность мониторинга.
Ссылки¶
- Маркеры атак OWASP AppSensor — используются для определения попыток злоумышленника обнаружить в приложении уязвимости или недостатки
- OWASP - Внедрение данных в журналы
- OWASP - Подделка журналов
- Памятка OWASP: Журналирование — как правильно реализовать журналирование в приложении
- Руководство разработчика OWASP: Журналирование
- Руководство OWASP по анализу кода: Выявление ошибок журналирования в коде