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

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

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).

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

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

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

Степа Ильин

Главный редактор «Хакера» с 2012 по начало 2014 года. Сейчас с командой единомышленников строит компанию Wallarm, разрабатывающую решения для защиты веб-приложений от хакерских атак и обнаружения в них уязвимостей.

Теги:

3 комментария

  1. 26.09.2014 at 10:39

    «Например, попросить Splunk показать количество сбросов паролей с одного IP-адреса за 30 минут» — а на картинке совсем другое условие. Да и, вообще, с картинками в статье какие-то глюки.

  2. 26.09.2014 at 14:10

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

  3. 03.10.2014 at 14:57

    Haddop Hive + HDFS / MDX (olap4j/Mondrian) / Pentaho Reporting / Kettle, всё Open Source — бери да пользуйся.
    А вычислительные можности для обработки как и место для хранения никто за бесплатно не предаставит.

Оставить мнение

Check Also

10 научно-фантастических комиксов для тех, кто не читает комиксы и не любит супергероев

В то время как фильмы по комиксам бьют все возможные рекорды кассовых сборов, сами комиксы…