Пользователь
Конференция DEFCON 16. Фёдор, хакер InSecure.org. NMAP-cканирование Интернет
Хочу предупредить вас, что это разговор не о том, как проводить кросс-сайтовые скриптовые атаки на социальные сети или как взламывать каналы Twitter. Речь пойдёт о сканировании портов и о чём-то большем, чем сканирование портов, и если вам не нравится сканирование портов, то следующие 50 минут станут для вас худшим из кошмаров.
Потому что для меня говорить о чём-то другом будет так же непривычно, как услышать Дэна Камински, который не рассказывает о DNS. Я имею в виду, что я могу ринуться в обнаружение некоторых ОС или действие обработчика скриптов Nmap так же, как Дэн может взять свой DNS и использовать его для туннелирования YouTube, чтобы обдурить какого-нибудь болвана, но в обоих случаях мы просто расширяем свою ключевую тему.
Моя тема, как видно из первого слайда, посвящена сканированию интернета. Я потратил много времени этим летом, сканируя десятков миллионов хостов в интернете и собирая необходимые данные.
И когда я рассказываю об этом людям, они часто спрашивают: «Зачем»? Для меня сканирование является ценным само по себе, но если вам нужна какая-то причина, то в данном случае в этом случае у меня были некоторые конкретные цели проекта. Первая – это собрать эмпирические данные и использовать их для расширения и улучшения функциональности Nmap, мы поговорим об этом чуть позже.
nmap скрипты
Сетевое взаимодействие — достаточно сложный процесс и порой, чтобы разобраться в том, как он работает, приходится пользоваться абстракциями и дополнительными инструментами, которые позволяют получить информацию об этом взаимодействии. Статья расскажет о том, как писать скрипты для инструмента nmap, и из чего они состоят.
CRUD для NMAP’а: решение для мониторинга открытых портов на хостах
Источник
Мониторинг атак
Каким образом можно мониторить количество атак, которые проводятся по отношению к инфраструктуре компании? Один из способов это установка специальных систем, которые называются honeypot. Honeypot это ловушка, позволяющая полностью или частично записать последовательность действий, которые выполняются атакующим. В данной статье попробуем выбрать и настроить honeypot, а в качестве системы мониторинга будем использовать ELK стек.
Hardening на практике
В предыдущей статье рассматривался пример уязвимых машин, которые создавались для того чтобы их использовать в практике тестирования систем на наличие уязвимостей. Эта статья расскажет как нестандартно можно обнаружить уязвимости в системах, если мы, к примеру, получили их уже в работоспособном состоянии и их ни в коем случае нельзя выводить из строя, а продолжать поддерживать.
Боевой OSINT — разведка и сбор информации из открытых источников
OSINT (англ. Open source intelligence) или разведка на основе открытых источников включает в себя поиск, сбор и анализ информации, полученной из общедоступных источников. Ключевой целью является поиск информации, которая представляет ценность для злоумышленника либо конкурента. Сбор информации во многом является ключевым элементом проведения пентеста. От того, насколько качественно он был осуществлён, может зависеть, как эффективность пентеста в целом, так и эффективность отработки отдельных векторов атаки (социальная инженерия, брутфорс, атака на Web-приложения и пр.). В этой статье соберем информацию о компании и посмотрим что о ней знает Интернет и потенциальный злоумышленник.
Построение карты сети
Построение карты сети — это длительный процесс. Исследование происходит за счет отслеживания откликов операционных систем на испорченные данные в заголовках сетевых протоколов. Этот подход обычно дает ~ 80% точности. И довольно сложно найти информацию о том, как точно каждая ОС отзывается на подобные воздействия. А что, если будет технология или функция операционной системы, которая на 100% точно будет говорить о состоянии сетевой подсистемы и сообщать дополнительную информацию? Статья расскажет о таких функциях ОС Windows.
У ELK’и иголки колки: минимизируем потерю сообщений в Logstash, следим за состоянием Elasticsearch
Это обзор некоторых полезных фич и чек-лист по мониторингу не самых очевидных моментов, чтобы минимизировать потерю сообщений, проходящих через ELK (Elasticsearch, Logstash, Kibana). В статье мы не коснемся тем, связанных с программами-коллекторами (посредством чего сообщения попадают в Logstash) из-за их великого разнообразия: речь пойдет только о core-компонентах. В конце материала приведен небольшой cheat sheet с популярными запросами к Elasticsearch API.
Sber.DS — платформа, которая позволяет создавать и внедрять модели даже без кода
Идеи и встречи о том, какие ещё процессы можно автоматизировать, возникают в бизнесе разного масштаба ежедневно. Но помимо того, что много времени может уходить на создание модели, нужно потратить его на её оценку и проверку того, что получаемый результат не является случайным. После внедрения любую модель необходимо поставить на мониторинг и периодически проверять.
И это всё этапы, которые нужно пройти в любой компании, не зависимо от её размера. Если мы говорим о масштабе и legacy Сбербанка, количество тонких настроек возрастает в разы. К концу 2019 года в Сбере использовалось уже более 2000 моделей. Недостаточно просто разработать модель, необходимо интегрироваться с промышленными системами, разработать витрины данных для построения моделей, обеспечить контроль её работы на кластере.
Наша команда разрабатывает платформу Sber.DS. Она позволяет решать задачи машинного обучения, ускоряет процесс проверки гипотез, в принципе упрощает процесс разработки и валидации моделей, а также контролирует результат работы модели в ПРОМ.
Чтобы не обмануть ваших ожиданий, хочу заранее сказать, что этот пост — вводный, и под катом для начала рассказано о том, что в принципе под капотом платформы Sber.DS. Историю о жизненном цикле модели от создания до внедрения мы расскажем отдельно.
Система сбора, анализа, уведомлений и визуализации логов на syslog-ng, elasticsearch, kibana, grafana, elasticalert
Что мы получим после этой статьи:
Систему сбора и анализа логов на syslog-ng, elasticsearch в качестве хранилища данных, kibana и grafana в качестве систем визуализации данных, kibana для удобного поиска по логам, elasticalert для отправки уведомлений по событиям. Приготовьтесь, туториал объемный.
Какие логи будем собирать:
- все системные логи разложенные по индексам в зависимости от их facility(auth,syslog,messages и т.д.);
- логи nginx — access и error;
- логи pm2;
- и др.
Обоснование выбора системы
Почему я выбрал связку с syslog-ng в качестве отправителя, парсера и приемщика логов? Да потому что он очень быстрый, надежный, не требовательный к ресурсам(да да — logstash в качестве агентов на серверах и виртуальных машинах просто убожество в плане пожирания ресурсов и требованием java), с внятным синтаксисом конфигов(вы видели rsyslog? — это тихий ужас), с широкими возможностями — парсинг, фильтрация, большое количество хранилищ данных(postgresql,mysql,elasticsearch,files и т.д.), буферизация(upd не поддерживает буферизацию), сторонние модули и другие фишки.
Требования:
- Ubuntu 16.04 или debian 8-9;
- vm для развертывания;
- Прямые руки.
Приступим или добро пожаловать под кат
Изучаем ELK. Часть II — Установка Kibana и Logstash
В предыдущей статье была описана процедура установки Elasticsearch и настройка кластера. В этой статье будет рассмотрена процедура установки Kibana и Logstash, а также настройка их для работы с кластером Elasticsearch.
Новые возможности мониторинга Java приложений в Zabbix 3.4
Что случилось?
Вышел долгожданный релиз Zabbix 3.4, который принёс много полезных улучшений, среди которых оказались настраиваемые JMX endpoints и гибкое обнаружение MBean’ов.
Это так круто, да?
Если вы используете Zabbix и вам требуется мониторить Java приложения, то да — это может сильно облегчить вам жизнь, потому что раньше приходилось прибегать к различным ухищрениям, а теперь всё работает, как говорится, “из коробки”.
Знакомимся с Dependency Injection на примере Dagger
В данной статье мы попытаемся разобраться с Dependency Injection в Android (и не только) на примере набирающей популярность open source библиотеки Dagger
И так, что же такое Dependency Injection? Согласно википедии, это design pattern, позволяющий динамически описывать зависимости в коде, разделяя бизнес-логику на более мелкие блоки. Это удобно в первую очередь тем, что впоследствии можно эти самые блоки подменять тестовыми, тем самым ограничивая зону тестирования.
Несмотря на замудреное определение, принцип довольно прост и тривиален. Я уверен, что большинство из программистов так или иначе реализовывали этот pattern, даже порой об этом не догадываясь.
Рассмотрим упрощенную (до псевдокода) версию Twitter клиента.
CLI приложение + Dependency Injector — руководство по применению dependency injection + Вопросы / ответы
Я создатель Dependency Injector. Это dependency injection фреймворк для Python.
Это завершающее руководство по построению приложений с помощью Dependency Injector. Прошлые руководства рассказывают как построить веб-приложение на Flask, REST API на Aiohttp и мониторинг демона на Asyncio применяя принцип dependency injection.
Сегодня хочу показать как можно построить консольное (CLI) приложение.
Дополнительно я подготовил ответы на часто задаваемые вопросы и опубликую их постскриптум.
Руководство состоит из таких частей:
Dependency Injection в мире Software Engineering
Вокруг Dependency Injection много инженерных практик. Несмотря на то, что эта статья про конкретный подход к написанию кода, она будет интересна широкому кругу разработчиков. Я постарался провести глубокий анализ существующих около Dependency Injection принципов разработки и хочу поделиться исследованием с сообществом.
Введение в Spring Boot: создание простого REST API на Java
Из-за громоздкой конфигурации зависимостей настройка Spring для корпоративных приложений превратилась в весьма утомительное и подверженное ошибкам занятие. Особенно это относится к приложениям, которые используют также несколько сторонних библиотек
Каждый раз, создавая очередное корпоративное Java-приложение на основе Spring, вам необходимо повторять одни и те же рутинные шаги по его настройке:
- В зависимости от типа создаваемого приложения (Spring MVC, Spring JDBC, Spring ORM и т.д.) импортировать необходимые Spring-модули
- Импортировать библиотеку web-контейнеров (в случае web-приложений)
- Импортировать необходимые сторонние библиотеки (например, Hibernate, Jackson), при этом вы должны искать версии, совместимые с указанной версией Spring
- Конфигурировать компоненты DAO, такие, как: источники данных, управление транзакциями и т.д.
- Конфигурировать компоненты web-слоя, такие, как: диспетчер ресурсов, view resolver
- Определить класс, который загрузит все необходимые конфигурации
Краткое сравнение JUnit и TestNG
JUnit и TestNG, несомненно, являются двумя наиболее популярными фреймворками для модульного тестирования (юнит-тестирования) в экосистеме Java. Хотя JUnit послужил вдохновением для TestNG, второй имеет ряд отличий и, в отличие от JUnit, работает для функционального и более высоких уровней тестирования.
В этой статье мы обсудим и сравним эти фреймворки, рассмотрев их функции и распространенные варианты использования.
Распределенное логирование и трассировка для микросервисов
Если логирование хорошо организовано, то позволяет понимать, что, когда и как идет не так, как задумано, и передавать нужную информацию людям, которым предстоит эти ошибки исправлять. Для системы, в которой каждую секунду отправляется 100 тысяч сообщений в 10 дата-центрах на 190 стран, а 350 инженеров каждый день что-то деплоят, система логирования особенно важна.
Иван Летенко — тимлид и разработчик в Infobip. Чтобы решить проблему централизованной обработки и трассировки логов в микросервисной архитектуре при таких огромных нагрузках, в компании пробовали различные комбинации стека ELK, Graylog, Neo4j и MongoDB. В итоге, спустя много грабель, написали свой лог-сервис на Elasticsearch, а как БД для дополнительной информации взяли PostgreSQL.
Под катом подробно, с примерами и графиками: архитектура и эволюция системы, грабли, логирование и трассировка, метрики и мониторинг, практика работы с кластерами Elasticsearch и их администрирования в условиях ограниченных ресурсов.
Трассировка и логирование в микросервисах: как мы втаскивали единый стандарт на 30 независимых команд
Сервисы падали, падают и будут падать
Когда вы быстро растете, микросервисы начинают появляться буквально по щелчку пальцев и в самых неожиданных местах. В таких условиях каждая команда обычно на ходу решает, где, как и какие логи будет складывать. Когда сначала 10, потом 20, а там и более команд логируют по-своему, начинается хаос.
Например, наша команда сопровождения маркетинга в Skyeng знала: пользователь с таким-то айдишником нажал в личном кабинете кнопку «Сменить преподавателя» — постучался в наш сервис, дальше ушло три сообщения, в очереди было 2 вызова сервисов и эти сервисы ответили 200. Но на самом деле, что было у команд сопровождения учителей или биллинга, к которым мы стучались, не знал никто…
Тогда мы придумали инструмент, чтобы маркировать трафик
Информация
- В рейтинге
- Не участвует
- Зарегистрирован
- Активность