Мы поговорим о NTLM, SSO- аутентификации и об эксплуатации pass-the-hash техники. Плюс обсудим методы защиты, которые пришли к нам с новейшими версиями ОС.
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)Ontico
Достаточно давно уже был какой-то доклад о том, что собой представляет Вконтакте изнутри. В своем докладе я хотел быть отчасти обновить те знания и рассказать, какие из общедоступных инструментов есть в руках системных администраторов социальной сети. Разумеется, кроме чистой головы и прямых рук (лишнее зачеркнуть).
Я намереваюсь коснуться таких вопросов, как:
- Управление конфигурацией на очень большом числе серверов.
- Разграничение доступа.
- Развертывание кода на рабочей площадке.
- Мониторинг.
- Как мы, вообще, справляемся с таким гигантом малым числом людей?
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)Ontico
Достаточно давно уже был какой-то доклад о том, что собой представляет Вконтакте изнутри. В своем докладе я хотел быть отчасти обновить те знания и рассказать, какие из общедоступных инструментов есть в руках системных администраторов социальной сети. Разумеется, кроме чистой головы и прямых рук (лишнее зачеркнуть).
Я намереваюсь коснуться таких вопросов, как:
- Управление конфигурацией на очень большом числе серверов.
- Разграничение доступа.
- Развертывание кода на рабочей площадке.
- Мониторинг.
- Как мы, вообще, справляемся с таким гигантом малым числом людей?
Быстрое прототипирование бэкенда игры с геолокацией на OpenResty, Redis и Doc...Ontico
Докладчик разберёт кейс быстрой разработки небольшого прототипа серверной части мобильной игры с геолокацией на стеке nginx, OpenResty (Lua), Redis и Docker. Вы услышите о том, почему был выбран такой стек, о его преимуществах (и некоторых недостатках), о том, как прототип устроен внутри, о том, как именно особенности стека были использованы для того, чтобы реализовать задуманное. Не будет обойден стороной вопрос о том, как максимально быстро собрать прототип и быстро итерироваться по нему, но при этом удержаться в золотой середине между Сциллой макаронной копипасты и Харибдой кристаллического перфекционизма. Немного времени будет уделено и рассказу о том, как можно превратить такой прототип в продакшен-систему.
Positive Hack Days. Баранов. DNS Rebinding возвращается (0-day)Positive Hack Days
Доклад посвящен известной несколько лет атаке под названием "DNS Rebinding" ("Anti-DNS Pinning"). Суть атаки состоит в возможности обойти ограничения "Same Origin Policy" во всех современных веб-браузерах и тем самым получить доступ к любым данным, обрабатываемым в уязвимом приложении. Несмотря на богатую историю, считается, что современные средства защиты блокируют атаку, и реализовать ее на практике почти невозможно.
В докладе будут продемонстрированы практические приемы использования метода Anti-DNS Pinning для атак на корпоративные сети, системы виртуализации и защищенные внешние ресурсы, представлен инструментарий для использования уязвимости. Будут приведены реальные сюжеты получения максимального доступа к любым целевым системам в крупных гетерогенных сетях, а также возможные варианты защиты.
Что нового в nginx? / Максим Дунин (Nginx, Inc.)Ontico
Что нового появилось в nginx за последнее время и для чего всё это нужно?
В докладе - рассказ про основные новые функции в nginx 1.9.x (1.10.x) и 1.11.x. HTTP/2, модуль stream, динамическая загрузка модулей и так далее - зачем всё это нужно и как это использовать.
Читаем CHANGES вместе и разбираем на примерах.
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...Ontico
В докладе я расскажу о проблемах роста, с которыми сталкивался проект как в плане доступа к БД, так и в целом. Как решали, что получалось, как (общетеоретически или практически) можно решать подобные проблемы в других проектах.
Разберем несколько реальных случаев, когда что-то шло не так.
Доклад можно рассматривать и как небольшой экскурс в развитие технической платформы ВК, и как собрание нескольких практических способов для проекта вырасти и стать надежнее.
Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...Ontico
Так как я работаю в позиции SRE (site reliability engineer), то более подробно затрону вопросы того, как мы добились годового durability 99.9999999999% и доступности более 99.99%:
- Изоляция
-- Физическая
--- Хранение данных в разных стойках, датацентрах, с разными версиями оборудования и вендорами.
--- Бэкапы вне основной инфраструктуры.
-- Логическая
--- Слабая связанность компонентов.
--- Не давать падению одного мастера (в зукипере или базе) утащить за собой всю зону.
-- Операционная
--- Процесс релиза.
--- Инструменты деплоя, сборки, хелзчекинга и т.д.
--- Контроль доступа.
- Защита данных
-- Восстановление
--- Восстановление после опасных операций (удаление).
-- Охрана данных и валидация операций
----в том числе от операторов.
- Контроль
-- Все совершают ошибки, нужно уметь детектировать их.
-- Метрики, SRE, OnCall.
-- Различные системы детектирование проблем, не связанные между собой, на каждом уровне систем (хост, кластер, ячейка, дата центр, внешние).
-- Тестирование
--- Disaster recovery testing.
- Автоматизация
-- Быстрое восстановление.
-- Быстрая реакция на события (нет времени реагировать вручную).
-- (introduce autoremedeation systems).
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов НиколайOntico
Набирает обороты мода на парадигму noBackend (см., например, http://nobackend.org/). Название не стоит понимать буквально: backend никуда не делся, просто фокус разработки — особенно на начальном этапе развития нового проекта — сильно смещается в сторону «клиентской части». Это очень понятно и закономерно в эпоху Mobile First и React Ecosystem с её новомодными GraphQL и React Native.
Появляется большой соблазн взять что-то понятное для хранения данных и уже «обвязанное» REST API, максимально отказаться от PHP/Python/Ruby/Java/etc, писать 80% кода «на стороне клиента», минимально заботясь о возне «на стороне сервера». У некоторых возникает и настоящая эйфория — чувство приятное, но очень опасное (прежде всего, если в команде нет сильного backend-опыта).
Этот доклад — компиляция опыта ряда проектов, написанных на React, React Native и Swift и переходящих на парадигму (или же сразу стартанувших с неё) noBackend за счёт PostgreSQL+PostgREST.
Мы обсудим важные вопросы, которые обязан задавать себе каждый, выбравший noBackend-подход (и не обязательно на связке Postgres+PostgREST): безопасность (аутентификация/авторизация; ограничение чтения и — особенно! — модификации «чужих» данных), производительность (нетривиальные запросы а-ля «свежий контент от тех, на кого я подписан»; компромисс между сетевой сложностью и CPU; защита от «домашнего» ddos — ситуации, когда свои же, родные «фронтендеры» кладут «бэкэнд»), масштабируемость и асинхронная обработка задач.
Задача-минимум (для всех): у каждого слушателя остаётся список must-check-вопросов для работы с noBackend-подходом.
Задача-максимум (для тех, кто с Postgres-опытом): разворачивание безопасного, высокопроизводительного и годного для быстрого развития REST API — сегодня же, в день док
Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...Ontico
Как быстро развивается сейчас PostgreSQL — общеизвестно. За несколько дней до РИТ++ заканчивается главный мировой форум разработчиков этой СУБД — конференция PGCon в Канаде. Большая команда разработчиков Postgres Professional принимает участие в этой конференции и готова рассказать все последние новости прямо с PGCon.
Параллельное исполнение запросов, новые стораджи, неутихающая тема Postgres vs key-value storage, распределенный Postgres, высокая доступность, многочисленные улучшения производительности, планы и интриги разработчиков — вот основные темы этой конференции.
Я остановлюсь подробнее на нашем вкладе в ожидаемый релиз 9.6 и планах на, возможно, релиз 10.0.
Алексей Фомкин, Практическое применение Web WorkersAleksey Fomkin
WebWorkers имеют глобальное покрытие в 92% по данным http://caniuse.com. Тем не менее, не всякое современное веб-приложение использует их.
В своем докладе я постараюсь передать двухлетний опыт использования WebWorkers в нашей команде для написания веб-приложений с функциональностью, которая требует выполнения тяжелых вычислений, таких как преобразование бинарых файлов из одного формата в другой и шифрование.
Расскажу про эксперименты по переносу в воркер расчета diff'ов в React-подобной системе рендеринга и покажу наивную реализацию модели акторов на основе воркеров.
Также постараюсь подготовить слушателей к новым проблемам, которые могут возникнуть при использовании веб-воркеров.
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)Ontico
Порой в процессе развития высоконагруженного проекта наступает момент, когда необходимо масштабирование. Возможно, ваш проект впервые упёрся в производительность железа (и таким образом перешёл в разряд высоконагруженных); возможно, это уже не первое масштабирование — не важно. Какие же проблемы могут возникнуть?
Во-первых, если вы увеличиваете количество бэкенд-серверов, и, соответственно, количество рабочих процессов, то с ростом количества одновременных клиентских подключений вырастают и накладные расходы на базах данных.
Во-вторых, достаточно быстро может кончиться ресурс in-memory баз данных. Потребуется создать (либо увеличить) кластер, а это каждый раз влечёт за собой необходимость модифицировать логику приложения.
В-третьих, чем больше серверов, тем больше вероятность, что один из них выйдет из строя. Поэтому неплохо задуматься о том, как обеспечить отказоустойчивость, а это, опять же, потребует модифицировать логику приложения.
В этом докладе я расскажу, как и какими инструментами можно легко решить все вышеперечисленные проблемы: уменьшить накладные расходы от большого количества подключений к базам данных, создать/модифицировать кластер БД прозрачно для приложения, а также прозрачно добавить устойчивость к падениям серверов БД.
План доклада:
- Введение. Методы масштабирования БД: репликация, шардирование.
- Создаём шардированные кластеры in-memory БД прозрачно для приложений: Twemproxy, Redis-proxy, Mcrouter.
- Уменьшаем накладные расходы от большого количества одновременных подключений на PostgreSQL с помощью PgBouncer.
- Создаём шардированный кластер PostgreSQL с помощью PL/Proxy.
- Добавляем прозрачную для приложения отказо�
Magic Box, или Как пришлось сломать банкоматы, чтобы их спастиPositive Hack Days
Ведущие: Ольга Кочетова и Алексей Осипов
Доклад посвящен наиболее популярным атакам на банкоматы, а также методам их предотвращения. Докладчик продолжит тему своих прошлых презентаций, однако с более глубоким проникновением в технические детали. Основное внимание будет уделено проблемам безопасности в архитектуре банкоматов и недостаткам защищенности взаимодействия банкоматов с процессинговым центром.
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)Ontico
В дата-центрах нашей компании несколько тысяч серверов, и примерно на половине из них нужно выкладывать PHP-код 2 раза в день. Помимо раскладки на production также не стоит забывать о том, что код нужен на стейджинге, и в стейджинг-кластер у нас входит около 50 машин, код на которых обновляется раз в несколько минут. Также есть «хотфиксы» — небольшие (1-5) наборы файлов, которые выкладываются во внеочередном порядке на все или на выделенную часть серверов, чтобы устранить существующие проблемы на продакшне, не дожидаясь полной выкладки.
В этом докладе я расскажу о том, как мы деплоились в течение 10 лет, о том, какую новую систему для деплоя PHP-кода мы разработали и внедрили в production, а также проведу обзор решений для масштабного деплоя кода на PHP и анализ их производительности.
План доклада:
— Наша старая система деплоя, достоинства и недостатки.
— Существующие решения:
* "svn up" / "git pull".
* rsync.
* phar, hhbc (HHVM-specific), "loop".
* rsync + 2 директории + realpath_root (Rasmus-style).
— Требования для новой системы деплоя.
* быстрый деплой на стейджинг (5-10 секунд на 50 серверов).
* возможность атомарно патчить несколько файлов и быстро их выкладывать (10 секунд на весь кластер).
* совместимость с docker.
* поддержка «долгоиграющих» CLI-скриптов (несколько часов).
* низкое потребление ресурсов на принимающей стороне.
* отсутствие необходимости сбрасывать opcache.
* высокая скорость деплоя на продакшн (1-2 минуты на 1500 серверов).
— MDK — multiversion deployment kit.
— Анализ применимости и производительности способов деплоя.
— Выводы.
Что нового в nginx? / Максим Дунин (Nginx, Inc.)Ontico
HighLoad++ 2017
Зал Конгресс-Холл, 7.ноября, 11:00
Презентация и тезисы:
http://www.highload.ru/2017/abstracts/2981.html
Что нового появилось в nginx за последнее время, и для чего всё это нужно? В докладе - рассказ про основные новые функции в nginx 1.11.x (доступно в стабильной ветке 1.12.x) и 1.13.x. Для чего нужен параметр сборки --with-compat, что делает директива mirror, будет ли работать TLS 1.3, как обновлять кэш с помощью proxy_cache_background_update, что такое stale-while-revalidate, как логировать JSON и что делать, если после обновления конфигурации старые рабочие процессы долго не завершаются.
Читаем CHANGES вместе и разбираем на примерах.
Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...Ontico
Разговор в докладе пойдёт о веб-программировании.
При изготовлении веб-проектов то и дело пользуются широко распространёнными фреймворками на базе языков программирования — PHP, Python, Perl, Ruby, Go, Rust, Java и т.п.
Я предлагаю отказаться от употребления оных и использовать для разработки веб-приложений только c2h5oh — расширение для высокопроизводительного сервера nginx. Данное расширение позволяет эффективно использовать PostgreSQL в качестве сервера веб-приложений.
Хочу поделиться со слушателями своим личным опытом разработки с использованием подобной связки. Планирую рассказать о плюсах и минусах такого подхода.
Taras Tatarinov - Применение аппаратных закладок pwnie express на примере реа...DefconRussia
Кратко расскажу о концепции изолированных сетей и возможных путях их компрометации. Сделаю обзор аппаратной закладки pwnie express- для чего создавалось, какие возможности использования. Расскажу о том как pwnie express применялась в реальном проекте, какие были трудности и что из этого вышло.
Быстрое прототипирование бэкенда игры с геолокацией на OpenResty, Redis и Doc...Ontico
Докладчик разберёт кейс быстрой разработки небольшого прототипа серверной части мобильной игры с геолокацией на стеке nginx, OpenResty (Lua), Redis и Docker. Вы услышите о том, почему был выбран такой стек, о его преимуществах (и некоторых недостатках), о том, как прототип устроен внутри, о том, как именно особенности стека были использованы для того, чтобы реализовать задуманное. Не будет обойден стороной вопрос о том, как максимально быстро собрать прототип и быстро итерироваться по нему, но при этом удержаться в золотой середине между Сциллой макаронной копипасты и Харибдой кристаллического перфекционизма. Немного времени будет уделено и рассказу о том, как можно превратить такой прототип в продакшен-систему.
Positive Hack Days. Баранов. DNS Rebinding возвращается (0-day)Positive Hack Days
Доклад посвящен известной несколько лет атаке под названием "DNS Rebinding" ("Anti-DNS Pinning"). Суть атаки состоит в возможности обойти ограничения "Same Origin Policy" во всех современных веб-браузерах и тем самым получить доступ к любым данным, обрабатываемым в уязвимом приложении. Несмотря на богатую историю, считается, что современные средства защиты блокируют атаку, и реализовать ее на практике почти невозможно.
В докладе будут продемонстрированы практические приемы использования метода Anti-DNS Pinning для атак на корпоративные сети, системы виртуализации и защищенные внешние ресурсы, представлен инструментарий для использования уязвимости. Будут приведены реальные сюжеты получения максимального доступа к любым целевым системам в крупных гетерогенных сетях, а также возможные варианты защиты.
Что нового в nginx? / Максим Дунин (Nginx, Inc.)Ontico
Что нового появилось в nginx за последнее время и для чего всё это нужно?
В докладе - рассказ про основные новые функции в nginx 1.9.x (1.10.x) и 1.11.x. HTTP/2, модуль stream, динамическая загрузка модулей и так далее - зачем всё это нужно и как это использовать.
Читаем CHANGES вместе и разбираем на примерах.
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...Ontico
В докладе я расскажу о проблемах роста, с которыми сталкивался проект как в плане доступа к БД, так и в целом. Как решали, что получалось, как (общетеоретически или практически) можно решать подобные проблемы в других проектах.
Разберем несколько реальных случаев, когда что-то шло не так.
Доклад можно рассматривать и как небольшой экскурс в развитие технической платформы ВК, и как собрание нескольких практических способов для проекта вырасти и стать надежнее.
Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...Ontico
Так как я работаю в позиции SRE (site reliability engineer), то более подробно затрону вопросы того, как мы добились годового durability 99.9999999999% и доступности более 99.99%:
- Изоляция
-- Физическая
--- Хранение данных в разных стойках, датацентрах, с разными версиями оборудования и вендорами.
--- Бэкапы вне основной инфраструктуры.
-- Логическая
--- Слабая связанность компонентов.
--- Не давать падению одного мастера (в зукипере или базе) утащить за собой всю зону.
-- Операционная
--- Процесс релиза.
--- Инструменты деплоя, сборки, хелзчекинга и т.д.
--- Контроль доступа.
- Защита данных
-- Восстановление
--- Восстановление после опасных операций (удаление).
-- Охрана данных и валидация операций
----в том числе от операторов.
- Контроль
-- Все совершают ошибки, нужно уметь детектировать их.
-- Метрики, SRE, OnCall.
-- Различные системы детектирование проблем, не связанные между собой, на каждом уровне систем (хост, кластер, ячейка, дата центр, внешние).
-- Тестирование
--- Disaster recovery testing.
- Автоматизация
-- Быстрое восстановление.
-- Быстрая реакция на события (нет времени реагировать вручную).
-- (introduce autoremedeation systems).
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов НиколайOntico
Набирает обороты мода на парадигму noBackend (см., например, http://nobackend.org/). Название не стоит понимать буквально: backend никуда не делся, просто фокус разработки — особенно на начальном этапе развития нового проекта — сильно смещается в сторону «клиентской части». Это очень понятно и закономерно в эпоху Mobile First и React Ecosystem с её новомодными GraphQL и React Native.
Появляется большой соблазн взять что-то понятное для хранения данных и уже «обвязанное» REST API, максимально отказаться от PHP/Python/Ruby/Java/etc, писать 80% кода «на стороне клиента», минимально заботясь о возне «на стороне сервера». У некоторых возникает и настоящая эйфория — чувство приятное, но очень опасное (прежде всего, если в команде нет сильного backend-опыта).
Этот доклад — компиляция опыта ряда проектов, написанных на React, React Native и Swift и переходящих на парадигму (или же сразу стартанувших с неё) noBackend за счёт PostgreSQL+PostgREST.
Мы обсудим важные вопросы, которые обязан задавать себе каждый, выбравший noBackend-подход (и не обязательно на связке Postgres+PostgREST): безопасность (аутентификация/авторизация; ограничение чтения и — особенно! — модификации «чужих» данных), производительность (нетривиальные запросы а-ля «свежий контент от тех, на кого я подписан»; компромисс между сетевой сложностью и CPU; защита от «домашнего» ddos — ситуации, когда свои же, родные «фронтендеры» кладут «бэкэнд»), масштабируемость и асинхронная обработка задач.
Задача-минимум (для всех): у каждого слушателя остаётся список must-check-вопросов для работы с noBackend-подходом.
Задача-максимум (для тех, кто с Postgres-опытом): разворачивание безопасного, высокопроизводительного и годного для быстрого развития REST API — сегодня же, в день док
Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...Ontico
Как быстро развивается сейчас PostgreSQL — общеизвестно. За несколько дней до РИТ++ заканчивается главный мировой форум разработчиков этой СУБД — конференция PGCon в Канаде. Большая команда разработчиков Postgres Professional принимает участие в этой конференции и готова рассказать все последние новости прямо с PGCon.
Параллельное исполнение запросов, новые стораджи, неутихающая тема Postgres vs key-value storage, распределенный Postgres, высокая доступность, многочисленные улучшения производительности, планы и интриги разработчиков — вот основные темы этой конференции.
Я остановлюсь подробнее на нашем вкладе в ожидаемый релиз 9.6 и планах на, возможно, релиз 10.0.
Алексей Фомкин, Практическое применение Web WorkersAleksey Fomkin
WebWorkers имеют глобальное покрытие в 92% по данным http://caniuse.com. Тем не менее, не всякое современное веб-приложение использует их.
В своем докладе я постараюсь передать двухлетний опыт использования WebWorkers в нашей команде для написания веб-приложений с функциональностью, которая требует выполнения тяжелых вычислений, таких как преобразование бинарых файлов из одного формата в другой и шифрование.
Расскажу про эксперименты по переносу в воркер расчета diff'ов в React-подобной системе рендеринга и покажу наивную реализацию модели акторов на основе воркеров.
Также постараюсь подготовить слушателей к новым проблемам, которые могут возникнуть при использовании веб-воркеров.
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)Ontico
Порой в процессе развития высоконагруженного проекта наступает момент, когда необходимо масштабирование. Возможно, ваш проект впервые упёрся в производительность железа (и таким образом перешёл в разряд высоконагруженных); возможно, это уже не первое масштабирование — не важно. Какие же проблемы могут возникнуть?
Во-первых, если вы увеличиваете количество бэкенд-серверов, и, соответственно, количество рабочих процессов, то с ростом количества одновременных клиентских подключений вырастают и накладные расходы на базах данных.
Во-вторых, достаточно быстро может кончиться ресурс in-memory баз данных. Потребуется создать (либо увеличить) кластер, а это каждый раз влечёт за собой необходимость модифицировать логику приложения.
В-третьих, чем больше серверов, тем больше вероятность, что один из них выйдет из строя. Поэтому неплохо задуматься о том, как обеспечить отказоустойчивость, а это, опять же, потребует модифицировать логику приложения.
В этом докладе я расскажу, как и какими инструментами можно легко решить все вышеперечисленные проблемы: уменьшить накладные расходы от большого количества подключений к базам данных, создать/модифицировать кластер БД прозрачно для приложения, а также прозрачно добавить устойчивость к падениям серверов БД.
План доклада:
- Введение. Методы масштабирования БД: репликация, шардирование.
- Создаём шардированные кластеры in-memory БД прозрачно для приложений: Twemproxy, Redis-proxy, Mcrouter.
- Уменьшаем накладные расходы от большого количества одновременных подключений на PostgreSQL с помощью PgBouncer.
- Создаём шардированный кластер PostgreSQL с помощью PL/Proxy.
- Добавляем прозрачную для приложения отказо�
Magic Box, или Как пришлось сломать банкоматы, чтобы их спастиPositive Hack Days
Ведущие: Ольга Кочетова и Алексей Осипов
Доклад посвящен наиболее популярным атакам на банкоматы, а также методам их предотвращения. Докладчик продолжит тему своих прошлых презентаций, однако с более глубоким проникновением в технические детали. Основное внимание будет уделено проблемам безопасности в архитектуре банкоматов и недостаткам защищенности взаимодействия банкоматов с процессинговым центром.
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)Ontico
В дата-центрах нашей компании несколько тысяч серверов, и примерно на половине из них нужно выкладывать PHP-код 2 раза в день. Помимо раскладки на production также не стоит забывать о том, что код нужен на стейджинге, и в стейджинг-кластер у нас входит около 50 машин, код на которых обновляется раз в несколько минут. Также есть «хотфиксы» — небольшие (1-5) наборы файлов, которые выкладываются во внеочередном порядке на все или на выделенную часть серверов, чтобы устранить существующие проблемы на продакшне, не дожидаясь полной выкладки.
В этом докладе я расскажу о том, как мы деплоились в течение 10 лет, о том, какую новую систему для деплоя PHP-кода мы разработали и внедрили в production, а также проведу обзор решений для масштабного деплоя кода на PHP и анализ их производительности.
План доклада:
— Наша старая система деплоя, достоинства и недостатки.
— Существующие решения:
* "svn up" / "git pull".
* rsync.
* phar, hhbc (HHVM-specific), "loop".
* rsync + 2 директории + realpath_root (Rasmus-style).
— Требования для новой системы деплоя.
* быстрый деплой на стейджинг (5-10 секунд на 50 серверов).
* возможность атомарно патчить несколько файлов и быстро их выкладывать (10 секунд на весь кластер).
* совместимость с docker.
* поддержка «долгоиграющих» CLI-скриптов (несколько часов).
* низкое потребление ресурсов на принимающей стороне.
* отсутствие необходимости сбрасывать opcache.
* высокая скорость деплоя на продакшн (1-2 минуты на 1500 серверов).
— MDK — multiversion deployment kit.
— Анализ применимости и производительности способов деплоя.
— Выводы.
Что нового в nginx? / Максим Дунин (Nginx, Inc.)Ontico
HighLoad++ 2017
Зал Конгресс-Холл, 7.ноября, 11:00
Презентация и тезисы:
http://www.highload.ru/2017/abstracts/2981.html
Что нового появилось в nginx за последнее время, и для чего всё это нужно? В докладе - рассказ про основные новые функции в nginx 1.11.x (доступно в стабильной ветке 1.12.x) и 1.13.x. Для чего нужен параметр сборки --with-compat, что делает директива mirror, будет ли работать TLS 1.3, как обновлять кэш с помощью proxy_cache_background_update, что такое stale-while-revalidate, как логировать JSON и что делать, если после обновления конфигурации старые рабочие процессы долго не завершаются.
Читаем CHANGES вместе и разбираем на примерах.
Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...Ontico
Разговор в докладе пойдёт о веб-программировании.
При изготовлении веб-проектов то и дело пользуются широко распространёнными фреймворками на базе языков программирования — PHP, Python, Perl, Ruby, Go, Rust, Java и т.п.
Я предлагаю отказаться от употребления оных и использовать для разработки веб-приложений только c2h5oh — расширение для высокопроизводительного сервера nginx. Данное расширение позволяет эффективно использовать PostgreSQL в качестве сервера веб-приложений.
Хочу поделиться со слушателями своим личным опытом разработки с использованием подобной связки. Планирую рассказать о плюсах и минусах такого подхода.
Taras Tatarinov - Применение аппаратных закладок pwnie express на примере реа...DefconRussia
Кратко расскажу о концепции изолированных сетей и возможных путях их компрометации. Сделаю обзор аппаратной закладки pwnie express- для чего создавалось, какие возможности использования. Расскажу о том как pwnie express применялась в реальном проекте, какие были трудности и что из этого вышло.
[DCG 25] Александр Большев - Never Trust Your Inputs or How To Fool an ADC DefconRussia
Мы поговорим об общей проблеме валидации входных данных и качестве их обработки. Интерпретация входящих данных оказывает прямое влияние на решения, принимаемые в физической инфраструктуре: если какая-либо часть данных обрабатывается недостаточно аккуратно, это может повлиять на эффективность и безопасность процесса.
В этой беседе мы обсудим атаки на процесс обработки данных и природу концепции «never trust your inputs» в контексте информационно-физических систем (в общем смысле, то есть любых подобных систем). Для иллюстрации проблемы мы используем уязвимости аналого-цифровых преобразователей (АЦП), которые можно заставить выдавать поддельный цифровой сигнал с помощью изменения частоты и фазы входящего аналогового сигнала: ошибка масштабирования такого сигнала может вызывать целочисленное переполнение и дает возможность эксплуатировать уязвимости в логике PLC/встроенного ПО. Также мы покажем реальные примеры использования подобных уязвимостей и последствия этих нападений.
Andrey Belenko, Alexey Troshichev - Внутреннее устройство и безопасность iClo...DefconRussia
Расскажу где и как iCloud Keychain хранит пароли, и какие потенциальные риски это несёт. Apple утверждает, что пароли надежно защищены, и даже её сотрудники не могут получить к ним доступ. Чтобы это подтвердить или опровергнуть, необходимо разобраться с внутренним устройством iCloud Keychain, чем мы и займемся.
Cisco network equipment has always been an attractive attack target due to its prevalence and the key role that it plays in network structure and security.
This equipment is based on a wide variety of OS (firmware) architectures, types, and versions, so it is much harder to develop a universal shellcode. Publicly available Cisco IOS shellcodes are tailored to specific equipment, have narrow functionality, and are not exactly useful for penetration testing.
This talk is the presentation of a research initiated by our research center to create a shellcode which is as easily portable between different IOS firmwares as possible and which provides a lot of pentesting features because it can dynamically change the shellcode destination at the stage of post-exploitation.
We will also consider the possibility of creating a worm which could spread across the infrastructure, from firewall to router, from router to switch, etc.
Филипп Торчинский «Анализ производительности и отладка приложений с помощью D...Yandex
Научно-технический семинар «DTrace: Проверочная работа для вашего кода» в петербургском офисе Яндекса, 29 ноября 2012 г.
Филипп Торчинский, эксперт по облачным технологиям, Семоникс.
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)Ontico
Мы прошли довольно большой путь в разработке через микросервисы.
Начинали разработку, когда это за рубежом только входило в тренд. По сути, не было никакой информации о том, как это делать правильно и, вообще, стоит ли это делать. Не было понятно, имеем ли мы дело с очередной модной штукой, или парадигма действительно решает часть проблем, характерных для больших нагруженных проектов.
Мы прошли путь от того, когда 100 микросервисов казалось много ... Сейчас цифры в 1000, 2000 кажутся чем-то обыденным.
В ходе доклада я постараюсь сделать упор на эксплуатацию системы, работающей на микросервисах. Расскажу, какой инструментарий показал себя хорошо на больших объемах, а от какого пришлось отказаться. Покажу на примерах, как эволюционировала наша система управления конфигурацией системы в целом и отдельными сервисами. Расскажу, как корректно предоставлять API сервиса и правильно поставлять его клиентские библиотеки, чтобы избегать внутренних и искусственных зависимостей. Покажу, как мы работаем с распределенными сервисами и обеспечиваем отказоустойчивость.
Formal verification of operating system kernelsDenis Efremov
The speaker will share his experience of participating in projects on formal verification and analysis of access control modules for Astra Linux SE and Elbrus kernels, as well as verification of the Contiki code (OS for IoT) within the European VESSEDIA program. The speaker will disclose details about the development of formal access control models (Rodin/Event-B) and code specifications (Frama-C/ACSL), the use of static and dynamic analyzers, and the inclusion of formal analysis in the continuous integration cycle (continuous verification). Other types of work that help meet the certification requirements will also be considered.
https://standoff365.com/phdays10/schedule/development/formal-verification-of-operating-system-kernels
Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"Yandex
Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"
Я.Субботник в Челябинске в рамках конференции UWDC
О докладе:
Все, что вы хотели узнать про одностраничное ajax-приложение Яндекс.Почта, но боялись спросить. Изнанка фронтенда, загрузка данных, обновление страниц и взаимодействие с пользователями без регистрации, без смс. Бонус-трек: как работают сторонние приложения в рамках одной платформы.
Леонид Васильев "Python в инфраструктуре поиска"Yandex
2 июля 2011, Я.Субботник в Екатеринбурге
Леонид Васильев "Python в инфраструктуре поиска"
О докладе:
Описание архитектуры и реализации внутренних инструментов для управления поисковым кластером.
Что такое инфраструктура поиска? Какие задачи приходится решать? Какие инструменты для управления кластером используются в поиске? Как они устроены изнутри? Что можно посоветовать проектам с большой инфраструктурой? Какие существуют open-source аналоги?
[Defcon Russia #29] Борис Савков - Bare-metal programming на примере Raspber...DefconRussia
Докладчик покажет, как с помощью bare-metal programming подружить Raspberry Pi с GPIO, памятью и Ethernet, и пояснит, кому и зачем это может понадобиться.
[Defcon Russia #29] Александр Ермолов - Safeguarding rootkits: Intel Boot Gua...DefconRussia
Intel Boot Guard — аппаратно поддержанная технология верификации подлинности BIOS, которую вендор компьютерной системы может встроить на этапе производства. Докладчик представит результаты анализа технологии, расскажет об её эволюции. Слушатели узнают, как годами клонируемая ошибка на производстве нескольких вендоров позволяет потенциальному злоумышленнику воспользоваться этой технологией для создания в системе неудаляемого (даже программатором!) скрытого руткита. Github: https://github.com/flothrone/bootguard
[Defcon Russia #29] Алексей Тюрин - Spring autobindingDefconRussia
В Spring MVC есть классная фича — autobinding. Но если пользоваться ей неправильно, могут появиться «незаметные» уязвимости, иногда с серьёзным импактом. Рассмотрим пару примеров, углубимся в тонкости появления autobinding-багов. Writeup [ENG]: http://agrrrdog.blogspot.ru/2017/03/autobinding-vulns-and-spring-mvc.html
[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/LinuxDefconRussia
Руткиты в мире основанных на ядре Linux операционных систем уже не являются редкостью. Рассказ будет о том, как попытки в современных реалиях определить то, скомпрометирована ли система, привели к неожиданному результату.
Sergey Belov - Покажите нам Impact! Доказываем угрозу в сложных условияхDefconRussia
Все шире и шире получают распространение bugbounty программы - программы вознаграждения за уязвимости различных вендоров. И порой при поиске уязвимостей находятся места, которые явно небезопасны (например - self XSS), но доказать от них угрозу сложно. Но чем крупнее (хотя, скорее адекватнее) вендор, тем они охотнее обсуждают и просят показать угрозу от сообщенной уязвимости, и при успехе – вознаграждают 8). Мой доклад – подборка таких сложных ситуаций и рассказ, как же можно доказать угрозу.
George Lagoda - Альтернативное использование вэб сервисов SharePoint со сторо...DefconRussia
Мои последние исселодования показали, что у SharePoint есть определенное количество вэб сервисов, которые могут помочь аудитору собрать крайне полезную информацию с сайта (списки пользователей, групп, ролей и т д). Также данные сервисы, в комбинации с хранимыми XSS, могут быть использованы для вертикального повышения привилегий или предоставить информацию для компрометации доменных записей AD.
Anton Alexanenkov - Tor and Botnet C&C DefconRussia
- пробежимся по структуре Tor
- взглянем на варианты использования Tor при построении ботнета
-рассмотрим существующие атаки на анонимность скрытых сервисов Tor
- порассуждаем как противодействовать таким ботнетам
2. about
- пентестер (Web, EBA, MS nets)
- рубрика “Easy Hack” (Xakep)
- co-org Defcon Russia, ZeroNights
https://twitter.com/antyurin
agrrrdog@gmail.com
Defcon Russia (DCG #7812) 2
3. NTLM
Defcon Russia (DCG #7812) 3
Как технология
• Хранение паролей в ОС, в ActiveDirectory
• Аутентификация
• Auto Single-Sing-on
Основа атак на windows-сети
4. Почему и Зачем?
Defcon Russia (DCG #7812) 4
• Почти все корпоративные сети построены
на AD и windows
• Низкий уровень знаний админов
• Возможность получить полный контроль
над всем
• Нет реальной возможности полностью
защититься
• Много тонкостей и трюков
5. Хранение
Defcon Russia (DCG #7812) 5
Хранить пароли надо, но хранить
plain-text’ом – плохо
- NT хеш:
MD4(UTF-16-LittleEndian(password))
- LM «хеш» (раньше)
см. далее
6. LM hash
Defcon Russia (DCG #7812) 6
wiki:
• Пароль пользователя как OEM-строка (Россия - cp866) приводится к
верхнему регистру.
• Пароль дополняется нулями или обрезается до 14 байтов
• Получившийся пароль разделяется на две половинки по 7 байтов.
• Эти значения используются для создания двух ключей DES, по
одному для каждой 7-байтовой половинки, рассматривая 7 байтов
как битовый поток и вставляя ноль после каждых 7 битов. Так
создаются 64 бита, необходимые для ключа DES.
• Каждый из этих ключей используется для DES-шифрования ASCII-
строки «KGS!@#$%», получая два 8-байтовых шифрованных
значения.
• Данные шифрованные значения соединяются в 16-байтовое
значение, являющееся LM-хешем.
До Windows Vista/2008 по умолчанию хранятся и LM-хеши
7. NT и LM хеши
Defcon Russia (DCG #7812) 7
• Брутабельно
• Можно использовать «радужные таблицы»
• Сначала LM: по частям и без регистра
Чем: l0phtcrack, Cain, John-the-Ripper,
HashCat…
8. NTLM auth
Defcon Russia (DCG #7812) 8
NTLM v1
1) Когда юзер, хочет подключиться к серверу, то ОС отправляет
запрос на подключение, содержащее имя юзера и домена
2) Сервер генерирует 16-байтовое случайное значение
(challenge) и отправляет его серверу (вместе с информацией об
имени хоста, домена и т.д.)
3) Клиент «хеширует» пароль вместе с challengeм и отправляет
ответ на сервер.
Сервер проводит аналогичное «хеширование» на своей стороне
и сравнивает хеши, определяя возможность доступа юзера.
При аутентификации в домене, сервер передают имя
пользователя, challenge и хеш клиента с третьего шага на
контроллер домена, где и происходит сравнение.
NTLM v2 – похож, добавлен клиентский challenge, для
затруднения брута и защиты от «радужных» таблиц
9. NTLM auth
Defcon Russia (DCG #7812) 9
• Основополагающий протокол виндовой Single-
Sign-on
• Глубокое внедрение:
- Почти любой протокол (http, smb, pop3, ftp…)
- Почти все продукты/технологии M$
- Включена по умолчанию
= Необходимо хранить NT-хеш
*Признан M$ как небезопасный протокол
**Время жизни большое (смена пароля)
10. Где хранить хеши?
Defcon Russia (DCG #7812) 10
В файловой системе:
• Локальный юзеры – SAM файл в каждой ОС
• Доменные юзеры – NTDS.DIT на контроллере домена
• Зашелдуреные таски, сервисы (всё, что с учётками и должно
работать после перезагрузки) - LSA secrets
В оперативной памяти:
• Юзеры с активной сессией в ОС – LSASS (Local System Security
Authority Subsystem)
* На самом деле, Win так же хранят почти «plain-text» пароли и
не NT-хеши паролей, но об этом потом
11. Доступ к хешам. Кто?
Defcon Russia (DCG #7812) 11
• Админ (не ко всему)
• NT AUTHORITYSYSTEM
+ Любой админ – это по сути SYSTEM
+ Любой сервис - это по сути SYSTEM
+ Любой юзер с опред. привилегиями (=~
админ)
= Необходимо поднимать привилегии
12. Доступ к хешам. Чем?
Defcon Russia (DCG #7812) 12
• WCE http://www.ampliasecurity.com/research/wcefaq.html
• Mimikatz https://github.com/gentilkiwi/mimikatz
• Metasploit
• + куууча олдскульных тулз (cain&abel, *dump)
13. Что дальше?
Defcon Russia (DCG #7812) 13
Pass-the-Hash
• Почти все модули Metasploit поддерживают
PtH-аутентификацию (Psexec, shares, ms sql …)
• Xfreerdp для RDP (для Win 8.1, 2012)
• С помощью WCE можно «прошить»
краденный хеш почти в любое приложение
14. PtH. Что можем?
Defcon Russia (DCG #7812) 14
• «Горизонтальное» повышение привилегий
Есть хеш локального админа на одном хосте, он же подходит на другие
* С Windows Vista|2008 – локальный админ по умолчанию отключен
DC
* Server =~ server or client computer
** DC – Domain Controller
15. PtH. Что можем?
Defcon Russia (DCG #7812) 15
• Повышение привилегий
Есть хеш локального админа на хосте и из памяти получаем хеш
доменного админа
DC
* Server =~ server or client computer
** DC – Domain Controller
16. PtH. Защита
Defcon Russia (DCG #7812) 16
• Полная - отсутствует
• Есть возможность защититься при
комплексном подходе:
- Ограничить использование
привилегированных учёток
- Отключение/запрет на удалённый
доступ локальных
- «Безопасные» методы аутентификации
- фаерволы, патчи…