C9: Внедрение журналирования и мониторинга событий безопасности

Описание

Большинство разработчиков уже используют журналирование при отладке и диагностике. Также важно регистрировать события безопасности (данные, связанные с обеспечением безопасности) во время работы приложения. Мониторинг — это «живой» анализ приложения и журналов безопасности с помощью различных средств автоматизации. Такие же инструменты и шаблоны могут применяться к выполняемым операциям, отладке и обеспечению безопасности.

Польза от журналирования событий безопасности

Журналы регистрации событий безопасности могут быть использованы для:

  1. снабжения системы обнаружения атак данными;
  2. анализа и расследования инцидентов;
  3. выполнения требований регулирующих органов.

Реализация журналирования событий безопасности

Ниже представлены рекомендации по реализации журналирования событий безопасности.

  • Используйте стандартные формы и способы регистрации событий в системе и между системами вашей организации. Примером стандартной платформы для регистрации событий являются службы журналирования Apache (Apache Logging Services), которые обеспечивают совместимость журналирования между приложениями на Java, PHP, .NET и C++.
  • Не регистрируйте слишком много или слишком мало данных. Например, убедитесь в обязательной регистрации временных меток и идентификационных данных, таких как IP-адрес источника и идентификатор пользователя, но никогда не записывайте персональные или конфиденциальные данные.
  • Обратите особое внимание на синхронизацию времени между узлами для обеспечения согласованности временных меток.

Журналирование с целью обнаружения атак и противодействия им

Используйте журналирование для определения активности, указывающей на вредоносный характер действий пользователя. Потенциально опасная активность, подлежащая регистрации:

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

Когда приложение обнаруживает подобную активность, оно должно, как минимум, зарегистрировать это событие и отметить его как опасное. В идеале приложение должно оказать противодействие атаке, например, путем аннулирования сессии пользователя и блокировки его учетной записи. Механизм противодействия позволяет программе реагировать на обнаруживаемые атаки в реальном времени.

Разработка системы журналирования событий безопасности

Система журналирования должна создаваться и обслуживаться с учетом требований безопасности. Для обеспечения безопасности журналов рекомендуется:

  • кодировать и проверять все потенциально опасные символы перед их записью в журнал для предотвращения внедрения данных или подделки журналов;
  • отказаться от регистрации конфиденциальных данных, таких как пароли, идентификаторы сессий, номера кредитных карт или социального страхования;
  • осуществлять контроль целостности журналов с целью предотвращения несанкционированных действий с ними через аудит разрешений на работу с файлами журналов и прав на их изменение;
  • отправлять журналы регистрации от распределенных систем в центральную, безопасную службу журналирования. Это обеспечит сохранность журналируемых данных при компрометации отдельных узлов, а также централизованность мониторинга.

Ссылки