Любовь к цифрам

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

YaC и Etsy

Например, в компании Etsy анализ большого количества данных буквально возведен в культ. На недавно прошедшей конференции Yac один из сотрудников компании рассказывал (goo.gl/k2FY9x), как они перемалывают огромное количество логов и благодаря различным метрикам серьезно усиливают защищенность веб-приложения.

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

  • количество сбросов паролей в единицу времени;
  • расхождение CSRF-токенов в единицу времени;
  • удачный/неудачный логин;
  • ошибки при вводе OTP-ключа при включенной двухфакторной авторизации и так далее.
Security-dashboard, используемый в Etsy
Security-dashboard, используемый в Etsy

Big Data без кластера

Для этого даже специально построен Hadoop-кластер, но ведь можно обойтись и без него. Для агрегации, индексирования и анализа логов есть прекрасный проект Splunk. В двух словах — это Google, но для логов. Благодаря сложной математике внутри, он умеет так парсить и хранить логи (впрочем, как и другие данные), что ты в любой момент можешь сделать очень сложный запрос и... получить ответ. Например, попросить Splunk показать количество сбросов паролей с одного IP-адреса за 30 минут:

source="/var/www/access.log" requesturl/forgotpassword.php
http_method=POST | transaction requestip | where eventcount >
10 | table request
ip, eventcount | sort -eventcount

Для запросов используется понятный язык, основанный на принципе UNIX pipes (результат одной операции передается на вход следующей), и обращаться с ним проще простого.

Парни из Splunk предлагают хранить все. Любые логи событий, логи веб-сервера, логи ошибок, лог обращений к API, логи DNS — весь этот массив данных складывать в Splunk. Если не загружать более 500 Мб данных в месяц, то использовать его можно совершенно бесплатно. Достаточно лишь установить на все машины, откуда нужно собирать логи, специальные программы-форвардеры, после чего данные с хостов будут загружаться через API и аккумулироваться в базе Splunk.

Любые данные из Splunk можно визуализировать
Любые данные из Splunk можно визуализировать

Результат любого поискового запроса можно визуализировать на Dashboard’е, что и делают ребята из Etsy. На Dashboard можно выводить все, что угодно, например показывать количество запросов, когда вернул 500+ ошибку при обращении клиента к определенной части сайта (скажем, URI="/shop/*").

Благодаря таким запросам можно делать сложную аналитику для проактивных действий. Например, Etsy детектит фишинговые атаки, основываясь на данных веб-сервера, в реальном времени реагирует на XSS-атаки. На экране всегда отображаются графики с ключевыми метриками, чтобы иметь возможность быстро реагировать (хотя, естественно, не обходится и без стандартных алертов по email/SMS).

В основе отчетов лежит запрос к базе данных
В основе отчетов лежит запрос к базе данных

Кто бы мог подумать

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

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    3 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии