15–16 мая на площадке форума по кибербезопасности PHDays прошла очередная встреча сообщества безопасной разработки Positive Development User Group. В двухдневную программу вошли 11 докладов разной степени хардкорности и круглый стол, посвященный статическому анализу.
Под катом делимся материалами встречи: презентациями и видеозаписями докладов.
Все презентации отдельно от видео доступны на Speakerdeck-канале сообщества.
Первый день
Вступительное слово Владимира Кочеткова, Positive Technologies
Можно ли обобщить анализатор исходных кодов?
Иван Кочуркин, Positive Technologies
В докладе рассматриваются различные типы анализаторов кода, принимающие на вход регулярные выражения, токены, деревья разбора, графы потоков данных и инструкции символьного выполнения. Докладчик описывает проблемы, возникающие при обобщении каждого типа анализатора на разные языки программирования, и предлагает варианты решений. Также он демонстрирует уязвимости и недостатки, которые можно найти с помощью каждого подхода (например, goto fail), описывает возможности открытого анализатора исходных кодов PT.PM, способы его использования и перспективы развития.
Мифы и легенды безопасной разработки
Юрий Шабалин, Swordfish Security
Автор доклада рассказывает об основных мифах и стереотипах, которые преследуют направление безопасной разработки, о главных ошибках при планировании и старте.
С опорой на эти мифы, легенды и ошибки докладчик объясняет, как подойти к выстраиванию процессов, что нужно учитывать, как грамотно оценить свои силы и правильно запустить процесс безопасной разработки. В качестве основных примеров ошибок и способов их преодоления представлены организационные меры, технические средства (без указания вендоров), взаимодействие между разработкой и ИБ, awareness-программы, управление всем процессом, метрики эффективности.
Защищенность целочисленных типов в C++
Игорь Собинов, эксперт по безопасности
Доклад посвящен вопросам обеспечения защищенности приложений на C++ от атак на переполнение целочисленных типов. Рассматриваются типовые кейсы возникновения уязвимостей, связанных с данным классом атак, возможные последствия их эксплуатации и способы защиты.
Обнаружение уязвимостей в теории и на практике, или Почему не бывает идеального статического анализатора
Ярослав Александров, Александр Чернов и Екатерина Трошина, Solar Security
В докладе рассматриваются основные принципы работы статического анализатора кода, дается сравнительный обзор методов и алгоритмов, лежащих в основе современных статических анализаторов. На конкретных примерах показывается, как статический анализатор ищет уязвимости, и дается ответ на вопрос, почему не существует идеального статического анализатора, который работает быстро, не дает ложных срабатываний и не пропускает уязвимости. Авторы объясняют, как встроить статический анализатор в процесс разработки так, чтобы она была эффективной с точки зрения ресурсов и давала качественные результаты.
Идеальный статический анализ
Владимир Кочетков, Positive Technologies
Идеальный статанализ как инструмент не существует. Но существует ли идеальный статанализ как процесс? Каким должно быть распределение ролей в нем между человеком и инструментарием SAST? Каким должен быть инструментарий, чтобы максимально облегчить человеку решение задачи статанализа?
Круглый стол «SAST и его место в SDLC»
Модератор: Владимир Кочетков, Positive Technologies
Участники: Positive Technologies, SolidLab, Mail.ru, Solar Security, PVS-Studio, ИСП РАН
Второй день
LibProtection: 6 месяцев спустя
Владимир Кочетков, Positive Technologies
Докладчик рассказывает об итогах публичного тестирования библиотеки, рассматривает в деталях найденные байпассы и способы их устранения, а также представляет планы по развитию библиотеки на текущий год.
Основы безопасности алгоритмов консенсуса в блокчейне
Евангелос Дейрмендзоглу (Evangelos Deirmentzoglou), Positive Technologies
Алгоритмы консенсуса являются неотъемлемой частью любой блокчейн-платформы. В докладе освещены принципы работы таких алгоритмов консенсуса, как Proof of Work (доказательство выполнения работы), Proof of Stake (доказательство доли владения), Delegated Proof of Stake (делегированное подтверждение доли) и Proof of Authority (доказательство полномочий). При анализе различий этих алгоритмов рассматриваются наиболее распространенные атаки в отношении систем на базе этих технологий, такие как двойное расходование (Double-spending), атака 51%, атака с подкупом, атака Сивиллы, атака Nothing-At-Stake и другие.
Доклад на английском языке:
Доклад на русском языке:
Предсказываем случайные числа в умных контрактах Ethereum
Арсений Реутов, Positive Technologies
Смарт-контракты применяются не только при первичном размещении токенов криптовалют. На языке Solidity реализованы различные лотереи, казино и карточные игры, доступные любому, кто использует блокчейн Ethereum. Автономность блокчейна ограничивает источники энтропии для генераторов случайных чисел (ГСЧ). Не существует и общей библиотеки, с помощью которой разработчики создавали бы безопасные ГСЧ.
Именно по этой причине реализация собственного ГСЧ может создать немало проблем — далеко не всегда удается реализовать безопасный ГСЧ, что дает злоумышленникам возможность предсказывать результат и похищать денежные средства. В докладе представлен анализ основанных на блокчейне смарт-контрактов для индустрии азартных игр. Автор доклада демонстрирует реальные примеры неправильной реализации ГСЧ и рассказывает, как выявить проблемы в ГСЧ и создать свой безопасный генератор с учетом ограничений блокчейна.
Подводные камни параметризации и объектного подхода
Владимир Кочетков, Positive Technologies
Всегда ли использование средств параметризации и переход к объектной модели позволяют эффективно решать задачи обеспечения защищенности приложений? Какие риски влекут за собой эти подходы? Возможно ли появление уязвимостей в коде проекта при их использовании? Автор доклада отвечает на эти вопросы, используя конкретные примеры и реальные кейсы.
Method Hooking в Android
Александр Гузенко, Tinkoff
Автор доклада рассказывает, что такое Method Hooking и Injector, и объяснит, каким образом, зная два этих понятия, применить их к Android и заставить чужое приложение делать то, что нужно вам.
Как создать быстрый WAF. Построение высокопроизводительной системы анализа сетевого трафика
Михаил Бадин, Wallarm
В ходе доклада рассматриваются стадии обработки пакета в WAF, вопросы получения необходимой информации из запроса, оптимизация процессов токенизации, фильтрация на базе регулярных выражений и реализация поведенческого анализа в рамках постобработки трафика.
Благодарим наших спикеров и участников за продуктивную встречу!
Если у вас появились вопросы к организаторам / докладчикам или желание выступить со своим докладом на следующем PDUG-митапе, пишите на pdug@ptsecurity.com.