CVEhound is a tool for checking Linux kernel source archives for known CVEs. Allows one to easily audit their phones, routers, servers, etc. for missing CVE fixes from upstream kernel development. The talk will include a brief description of the CVE patching workflow in the Linux kernel and demonstration of the CVEhound tool.
https://zeronights.ru/en/reports-en/cvehound-check-linux-sources-for-known-cves/
Опенсорс-инструменты на страже безопасности бэкенда — Петр ВолковYandex
Антивирусная система Яндекса ежедневно обнаруживает тысячи взломанных сайтов. Периодически среди них встречаются крупные и известные интернет-ресурсы.
Администраторы сайтов часто оказываются не готовы к тому, что злоумышленник может пробраться через внешний периметр и исполнить произвольный код на стороне сервера. В результате перед ними встаёт нелегкая задача: обнаружить последствия и предотвратить дальнейшие проблемы.
Доклад посвящён практикам и инструментам, которые могут существенно повысить эффективность противодействия вредоносной активности, и профилактике её возникновения.
Опенсорс-инструменты на страже безопасности бэкенда — Петр ВолковYandex
Антивирусная система Яндекса ежедневно обнаруживает тысячи взломанных сайтов. Периодически среди них встречаются крупные и известные интернет-ресурсы.
Администраторы сайтов часто оказываются не готовы к тому, что злоумышленник может пробраться через внешний периметр и исполнить произвольный код на стороне сервера. В результате перед ними встаёт нелегкая задача: обнаружить последствия и предотвратить дальнейшие проблемы.
Доклад посвящён практикам и инструментам, которые могут существенно повысить эффективность противодействия вредоносной активности, и профилактике её возникновения.
Developing of native code obfuscator - Евгений КуликHackIT Ukraine
Презентация с форума http://hackit-ukraine.com/
Евгений Кулик
Lead SW engineer/Samsung R&D Institute Ukraine
Developing of native code obfuscator
О спикере: 10 лет опыта в области реверс-инженерии. Занимался исследование и распаковкой навесных защит, анализом техник обфускации исполняемого кода. Модерирую несколько известных ресурсов, посвящённых реверс-инженерии: reverse4you.org,ahteam.org.
Алексей Ясинский - Опыт расследования современных кибер-атак на примере Black...HackIT Ukraine
24.10.2015 года “Компания" подверглась хакерской атаке, в процессе расследования этого инцидента, была выявлена подобная активность злоумышленников и на другие предприятия в масштабах Украины, проанализированы методы и тактика проникновения в инфраструктуру жертвы. Результаты данного расследования будут освещены в докладе.
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровYandex
Лекция Петра Волкова в Школе вебмастеров: «Как защитить свой сайт».
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Актуальные типы угроз и динамика их развития
Компрометация сервера и её последствия. Распределённые атаки типа «отказ в обслуживании». Подмена или добавление рекламы на стороне клиента. Атаки, направленные на пользователей. Проблемы, связанные со внешним содержимым.
Управление рисками безопасности веб-сайтов
Разные типы сайтов подвержены разным типам рисков информационной безопасности. Понимание целей и подходов злоумылшенников как ключ к эффективному снижению рисков. Методы монетизации атак на сайты.
Доступный инструментарий и методики для обеспечения безопасности
Открытые инструменты форензики для типовых и сложных проектов. Системы обнаружения вторжений, подходы к проектированию безопасности в архитектуре и процессах.
Different flaws of BSD operating systems family are reviewed on the subject of their readiness as a desktop OS.
Criteria of desktop readiness covering the ease of configuration and maintenance, as far as needed desktop software are presented, and
the easy sequence of steps is proposed to make quick comparison covering large subset of these criteria.
Docker Containers orchestrators: Kubernetes vs. SwarmDmitry Lazarenko
Обзор рынка оркестраторов Docker. Детальное технологическое сравнение Docker Swarm и Kubernetes. Обзор архитектуры и возможностей каждогого из них. Кто лучше справляется с построением масштабируемых микросервисных архитектур
SETCON'18 - Vitali Fokin - Kubernetes 101Nadzeya Pus
Обзор возможностей Kubernetes, зачем он нужен, кому и когда, а также немного хороших практик по развертыванию и разработке Kubernetes-powered приложений.
JVM: краткий курс общей анатомии, JPoint 2016 Conference EditionNikita Lipsky
Говоря о Java, мы подразумеваем как минимум две вещи: JVM (виртуальную Java-машину) и Java-байткод, который исполняется на этой машине.
Внутреннее устройство JVM непростое, но очень важно понимать, из каких частей она состоит, какая часть за что отвечает и как это все вместе работает хотя бы в самых общих чертах. Эти знания помогут вам в понимании того, как работает ваша программа и как можно улучшить ее работу.
В этом докладе мы не будем лезть в кишки какой-то конкретной реализации JVM, однако мы покажем где у JVM кишки расположены, а также где находятся и для чего служат ее печень, сердце, почки, мозг и другие органы.
Текст доклада: https://0x1.tv/20210617B
Обзор инструментов, технологий тестирования и способов организаций тестов, доступных в настоящий момент как в самом ядре «Linux», так и в сторонних открытых проектах. Ядро представляет собой большой и неоднородный проект, состоящий как из аппаратно-независимого кода, так и частей, работоспособность которых зависит от наличия соотвествующей аппаратуры или специфичных программ пользовательсткого пространства. Для тестирования разных частей ядра применяются разных методы и подходы. Обзор включает в себя рассмотрение таких инструментов/технологий как «kselftest», «KUnit», «KTF», «ktest» и наиболее распространённых тестовых пакетов «LTP», «LKP», «xfstests» и др.
Использование контейнеризации в среде массового хостингаYandex
Речь пойдет об особенностях использования контейнеров в публичных услугах. Почему linux upstream containers пока не подходят на эту роль? По каким причинам OpenVZ справляется с задачей, но не полностью? Какие фишки контейнеров мы хотим иметь в будущем?
Developing of native code obfuscator - Евгений КуликHackIT Ukraine
Презентация с форума http://hackit-ukraine.com/
Евгений Кулик
Lead SW engineer/Samsung R&D Institute Ukraine
Developing of native code obfuscator
О спикере: 10 лет опыта в области реверс-инженерии. Занимался исследование и распаковкой навесных защит, анализом техник обфускации исполняемого кода. Модерирую несколько известных ресурсов, посвящённых реверс-инженерии: reverse4you.org,ahteam.org.
Алексей Ясинский - Опыт расследования современных кибер-атак на примере Black...HackIT Ukraine
24.10.2015 года “Компания" подверглась хакерской атаке, в процессе расследования этого инцидента, была выявлена подобная активность злоумышленников и на другие предприятия в масштабах Украины, проанализированы методы и тактика проникновения в инфраструктуру жертвы. Результаты данного расследования будут освещены в докладе.
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровYandex
Лекция Петра Волкова в Школе вебмастеров: «Как защитить свой сайт».
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Актуальные типы угроз и динамика их развития
Компрометация сервера и её последствия. Распределённые атаки типа «отказ в обслуживании». Подмена или добавление рекламы на стороне клиента. Атаки, направленные на пользователей. Проблемы, связанные со внешним содержимым.
Управление рисками безопасности веб-сайтов
Разные типы сайтов подвержены разным типам рисков информационной безопасности. Понимание целей и подходов злоумылшенников как ключ к эффективному снижению рисков. Методы монетизации атак на сайты.
Доступный инструментарий и методики для обеспечения безопасности
Открытые инструменты форензики для типовых и сложных проектов. Системы обнаружения вторжений, подходы к проектированию безопасности в архитектуре и процессах.
Different flaws of BSD operating systems family are reviewed on the subject of their readiness as a desktop OS.
Criteria of desktop readiness covering the ease of configuration and maintenance, as far as needed desktop software are presented, and
the easy sequence of steps is proposed to make quick comparison covering large subset of these criteria.
Docker Containers orchestrators: Kubernetes vs. SwarmDmitry Lazarenko
Обзор рынка оркестраторов Docker. Детальное технологическое сравнение Docker Swarm и Kubernetes. Обзор архитектуры и возможностей каждогого из них. Кто лучше справляется с построением масштабируемых микросервисных архитектур
SETCON'18 - Vitali Fokin - Kubernetes 101Nadzeya Pus
Обзор возможностей Kubernetes, зачем он нужен, кому и когда, а также немного хороших практик по развертыванию и разработке Kubernetes-powered приложений.
JVM: краткий курс общей анатомии, JPoint 2016 Conference EditionNikita Lipsky
Говоря о Java, мы подразумеваем как минимум две вещи: JVM (виртуальную Java-машину) и Java-байткод, который исполняется на этой машине.
Внутреннее устройство JVM непростое, но очень важно понимать, из каких частей она состоит, какая часть за что отвечает и как это все вместе работает хотя бы в самых общих чертах. Эти знания помогут вам в понимании того, как работает ваша программа и как можно улучшить ее работу.
В этом докладе мы не будем лезть в кишки какой-то конкретной реализации JVM, однако мы покажем где у JVM кишки расположены, а также где находятся и для чего служат ее печень, сердце, почки, мозг и другие органы.
Текст доклада: https://0x1.tv/20210617B
Обзор инструментов, технологий тестирования и способов организаций тестов, доступных в настоящий момент как в самом ядре «Linux», так и в сторонних открытых проектах. Ядро представляет собой большой и неоднородный проект, состоящий как из аппаратно-независимого кода, так и частей, работоспособность которых зависит от наличия соотвествующей аппаратуры или специфичных программ пользовательсткого пространства. Для тестирования разных частей ядра применяются разных методы и подходы. Обзор включает в себя рассмотрение таких инструментов/технологий как «kselftest», «KUnit», «KTF», «ktest» и наиболее распространённых тестовых пакетов «LTP», «LKP», «xfstests» и др.
Использование контейнеризации в среде массового хостингаYandex
Речь пойдет об особенностях использования контейнеров в публичных услугах. Почему linux upstream containers пока не подходят на эту роль? По каким причинам OpenVZ справляется с задачей, но не полностью? Какие фишки контейнеров мы хотим иметь в будущем?
Компания «Моё дело» прошла путь от маленького стартапа до лидера рынка в своем сегменте. Вместе с ростом компании росла и ее it структура. Инфраструктура эволюционировала космическими темпами, кол-во проектов стремительно росло. Естественно, всем этим необходимо уметь грамотно оркестрировать. Как это делаем мы и во что это превращается мы и хотим вам рассказать.
Статья знакомит разработчиков с библиотекой VivaCore, предпосылками ее создания, возможностями, структурой и областями применения. Данная статья была написана параллельно с разработкой библиотеки VivaCore, и поэтому отдельные детали ее конечной реализации могут отличаться от описанных здесь свойств. Но это не помешает разработчикам познакомиться с общими принципами работы библиотеки, механизмами анализа и обработки текстов программ на языке Си и Си++.
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)Ontico
РИТ++ 2017
Зал Сан-Паулу, 5 июня, 15:00
Тезисы:
http://ritfest.ru/2017/abstracts/2653.html
Новые микросервисы появляются, но монолит никуда не исчезает. Мы в Avito разрабатываем и деплоим сервисы с помощью связки Docker и Kubernetes. Зачастую интегрировать монолит с сервисами довольно проблематично. А что, если монолит тоже завернуть в Docker+Kubernetes и применять те же практики, что и для микросервисов?
В докладе речь пойдёт о том, как изменилась Dev-среда в Avito в связи с переходом на микросервисную архитектуру. В частности, поговорим про:
- подход "legacy in a box";
- то, как мы решали проблемы с базами и sphinxsearch;
- то, как Docker и Kubernetes помогли нам сократить различия между окружениями;
- Developer Experience.
Доклад будет полезен как командам, планирующим или переживающим распил монолита, так и всем тем, кому приходится работать со сторонними legacy-системами.
Rust позволяет писать быстрые и надёжные программы. Особенно когда они многопоточные. Это делает его хорошим выбором для написания серверной части разнообразных веб-приложений.
Но что для этого нужно? Зачем терпеть все эти длиннющие ошибки от borrow checker'а? Что с продуктивностью разработки? Где взять библиотеки? А что если библиотеки нет? Какой веб-фреймворк выбрать? Как отлаживать и профилировать код?
В своём докладе я отвечу на эти и другие вопросы. Ещё я расскажу, что нужно делать, чтобы обойти проблемные места, которые у Rust, конечно, тоже есть.
Всё это — на примере кода инфраструктурного сервера, обеспечивающего «всегда зелёный master» (commit gatekeeper, аналог homu и zuul).
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовCOMAQA.BY
По-настоящему автоматизированными тесты можно назвать только тогда, когда из процесса тестирования полностью исключается человек. В идеале участие человека должно сводиться к просмотру отчетов о результатах автотестирования, которые регулярно приходят ему на почту.
Достичь этого можно только одним способом - с помощью инструментов непрерывной интеграции. Какой же инструмент лучше выбрать? Почему? Так ли этот выбор важен или можно просто взять любой из них и начать использовать?
Сравним самые популярные Java-совместимые инструменты CI и сделаем выводы!
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
Deductive verification of unmodified Linux kernel library functionsDenis Efremov
This document discusses deductive verification of unmodified Linux kernel library functions using Frama-C, AstraVer, and Why3 tools. 26 library functions were verified, with 25 being fully proved. Issues encountered included integer overflows, casts to smaller types, and pointer arithmetic on different memory blocks. Specifications were published online along with proof artifacts. Future work includes an "lemma functions" extension to Frama-C to support more automated verification.
Health Insurance Support System (Blockchain Based)Denis Efremov
Презентация проекта системы поддержки медицинского страхования с летней школы Мастерчейн. Систему разрабатывали: Максимов Сергей, Стряпчев Артем, Крылов Павел и Ефремов Денис.
Исходные коды: https://github.com/maksimov1/HISS
Видео с презентации: https://youtu.be/hUE87AWIBYE
Прототип системы: https://hissbb.com
ЛШМ, НИУ ВШЭ, Москва, 13 июля 2018
Formal Verification of a Linux Security ModuleDenis Efremov
Формальная верификация модуля безопасности Linux. Презентация про проект AstraVer ИСП РАН. Доклад представлен на сессии коротких докладов летней школы Мастерчейн. НИУ ВШЭ, Москва, 09 июля 2018.
Practical Language for Extracting Data from Source Codes and Preparing Them f...Denis Efremov
Talk at Yandex Perl Meetup (06 June 2018). The presentation is about how tools written in Perl can be used for verification of Linux kernel modules. Various types of source code transformations with style preservation, interactive callgraphs, report with various complexity metrics creation. How we use the tools in the AstraVer project for writing formal specifications (ACSL) on code and how it helps us with regulatory certification. The tools: https://github.com/evdenis/spec-utils
"Formal verification of C code" Efremov D.V.
The talk covers the issue of developing correct software applying one of the types of static code analysis. The speaker will also address the matters of using such methods, their weaknesses and limitations, as well as the results they can guarantee.
PHDays VII, PDUG section, Moscow, May 24 2017.
"Формальная верификация кода на языке Си" Ефремов Д.В.
Доклад посвящен разработке корректного программного обеспечения с применением одного из видов статического анализа кода. Будут освещены вопросы применения подобных методов, их слабые стороны и ограничения, а также рассмотрены результаты, которые они могут дать. На конкретных примерах будет продемонстрировано, как выглядят разработка спецификаций для кода на языке Си и доказательство соответствия кода спецификациям.
Доклад представлен на конференции PHDays VII (2017) 24 мая в секции PDUG.
Automation of rule construction for ApproofDenis Efremov
"Automation of rule construction for Approof" Efremov D. V.
Approof is a static code analyzer for testing web applications for vulnerable components. The analyzer is based on rules that store signatures of components it searches. The report examines the basic structure of rules for Approof and automation of their development.
PHDays VII, PDUG section, Moscow, May 24 2017.
"Автоматизация построения правил для Approof" Ефремов Д.В.
Approof — статический анализатор кода для проверки веб-приложений на наличие уязвимых компонентов. В своей работе анализатор основывается на правилах, хранящих сигнатуры искомых компонентов. В докладе рассматривается базовая структура правила для Approof и процесс автоматизации его создания.
Доклад представлен на конференции PHDays VII (2017) 24 мая в секции PDUG.
Как доказывать программы
Ефремов Д. В. (efremov(a)ispras.ru)
Доклад прочитан на конференции PHDays VII в секции Lightning Talks.
Текстовые комментарий к докладу https://blog.llkl.org/phdays-how-to-prove-programms/
PHDays VII, Moscow, May 23 2017
2. 2
Инструменты определения
уязвимых версий ПО
Анализ зависимостей проекта, в большинстве случаев
выполняется путем привязки к идентификатору версии
уязвимой библиотеки.
• OWASP Dependency Check
• Github’s Dependabot
• Snyk
• Requires.io
• Approof
• …
3. 3
Ядро Linux. В чем сложность
• Количество CVE
• 1838 согласно linuxkernelcves.com (включая vendor specific)
• 738 в базе БДУ ФСТЭК с 2014 года (не только CVE)
• Альтернативные идентификаторы (DWF, UVI, CID, BDU, CNNVD)
• Базы неполны и неточны
• Меньшов Виталий «Обнаружение ошибок в NVD», «Баги, которые от нас
скрывают»
• Множество архитектур, тысячи CONFIG_* опций сборки
• 17423 CONFIG_ опций в ядре 5.13
• Git история не всегда предоставляется
• Все равно нужна разметка CVE-коммит
• Могут быть ошибки при бэкпортировании и revert коммиты
• Стабильные ядра (LTS, XLTS) и ядра вендоров
4. 4
Стабильные версии
• Релиз нового ядра ~каждые 8 недель
• Стабильное ядро
• Последнее официально выпущенное
• На текущий момент 5.13 (5.14 в разработке)
• На него бэкпортируются все исправления с ветки разработки 5.14
• Следующим стабильным станет 5.14, как только будет начата разработка 5.15
• Ядра с длительным сроком поддержки (LTS 2 years, XLTS 6 years)
• На текущий момент 5.10, 5.4, 4.19, 4.14, 4.9, 4.4
• Минорные версии стабильного и LTS ядер релизятся ~ раз 1-2 недели
• Чем старше ядро, тем меньше на него бэкпортируется исправлений
и тем меньше оно тестируется
• Бэкпорт подразумевает что надо
• Правильно определить коммит, где была внесена ошибка
• Корректно портировать исправление на все ядра
5. 5
Дистрибутивы, производители
устройств
• RedHat, Canonical, Oracle (uek4), OpenSUSE, …
• Имеют собственные стабильные версии ядер
• 4.18 (RHEL 8), 3.10 (RHEL 7), 4.1 (UEK4), 4.15 (Bionic), 5.3 (SLES15SP3)
• Бэкпортируют на них не только исправления, но и драйвера
• Имеют собственные драйвера
• Civil Infrastructure Platform
• 4.4, 4.19 Super-Long-Term-Support (SLTS 10 years)
• Samsung, Huawei, Sony, LG, OnePlus, …
• Android Common Kernels (стабильные + android патчи)
• У вендоров свои драйвера устройств, security драйверы,…
• Некоторые не изменяют версию ядра при выпуске обновлений
6. 6
CVEhound to the rescue
• Открыт https://github.com/evdenis/cvehound
• Не полагается на версию ядра
• Не полагается на git log
• Не требует сборки ядра
• Детекты исключительно по коду, статически
• В диапазоне от патча с ошибкой до патча с её исправлением
• Может определить неполные бекпорты
• Может определить пропущенные бекпорты
• Фильтры по
• Конфигурации сборки ядра (.config)
• Подсистемам
• CWE, наличию эксплоитов, …
• На текущий момент описано 212 CVE (с декабря 2020)
12. 12
Применение
• Исходники доступны
• Сертификационные лаборатории для отчетов
• Администраторы для аудита и превентивных мер
• Разработчики для самопроверки
• Исходники недоступны
• Запрос исходников по GPL
• Из бинарника ядра вытащить версию ядра и архитектуру ядра
• Из бинарника ядра вытащить .config ядра (часто доступен)
• Проанализировать ближайшие исходники с нужной версией и
конфигурацией для таргетирования