Обнаружение уязвимостей логики приложений методом статического анализа. Где п...Andrew Petukhov
Недостатки, влияющие на качество (и безопасность) приложений, можно поделить на две группы: типичные недостатки (переполнения, уязвимости форматной строки, SQLi, XSS и т.п.) и специфичные недостатки (англ. application specific). В докладе будет проведена оценка справедливости высказываний вендоров статических анализаторов об их возможностях по поиску специфичных недостатков безопасности в приложениях. Будет представлена методика поиска подобных ошибок на примере поиска ошибок контроля доступа: задача будет декомпозирована на шаги, для каждого из которых будет указано, что можно сделать автоматически и как, а что — только вручную.
Константин Книжник: статический анализ, взгляд со стороныTatyanazaxarova
Статья представляет интервью, взятое у Константина Книжника, сотрудником компании "Системы программной верификации" Андреем Карповым. Затронуты вопросы статического анализа кода, актуальность решений в этой области, а также перспективы использования статического анализа при разработке параллельных приложений.
Mail.ru: Как вырастить в себе автоматизатора и разработчикаMaxim Boguslavsky
В презентации я постарался рассказать о том:
1. Какие основные критерии нужно учесть при поиске автоматизатора.
2. Какие основные навыки требуются для инженера по автоматизации.
3. Какие требования к инженеру по обеспечению качества.
4. Так же в презентации есть статьи и ссылки на ресурсы где можно получить необходимые знания и навыки для развития.
5. Так же я рассказываю о том сколько времени требуется для развития, какие есть подводные камни и как их преодалеть.
Netpeak Group продолжает серию образовательных мероприятий — #NetpeakTalks в Одессе.
В рамках этих встреч у тебя будет возможность обсудить с практикующим спикером наболевшие темы, связанные с R&D, дизайном, менеджментом, интернет-маркетингом, QA, Customer Success, аналитикой и др. (все темы от встречи к встрече не повторяются и отличаются друг от друга).
Тема#3: Масштабируемое приложение на PHP
Краткий план:
1. Теория принципов и паттернов проектирования.
2. Примеры использования принципов и паттернов в коде (разберём какие "плюшки" даёт каждый случай).
3. Важность слабосвязанного кода (IoC).
4. Как "под капотом" работают IOC контейнера.
_____________________
Информацию об этом и следующих мероприятиях ты можешь отследить:
FaceBook: https://www.facebook.com/NetpeakTalks/
Телеграм: https://t.me/netpeaktalks
__________
Плейлист с выступлениями на YouTube: https://www.youtube.com/playlist?list=PL8LIMl0TjrcDtSS_lM5jqH-huK5FCq44A
__________
Verification of 800 Automata-Based Programs Built by means of Genetic Program...Iosif Itkin
Michael Lukin, Maxim Buzdalov and Anatoly Shalyto Saint Petersburg State University of Information Technologies, Mechanics and Optics, Saint Petersburg
Обнаружение уязвимостей логики приложений методом статического анализа. Где п...Andrew Petukhov
Недостатки, влияющие на качество (и безопасность) приложений, можно поделить на две группы: типичные недостатки (переполнения, уязвимости форматной строки, SQLi, XSS и т.п.) и специфичные недостатки (англ. application specific). В докладе будет проведена оценка справедливости высказываний вендоров статических анализаторов об их возможностях по поиску специфичных недостатков безопасности в приложениях. Будет представлена методика поиска подобных ошибок на примере поиска ошибок контроля доступа: задача будет декомпозирована на шаги, для каждого из которых будет указано, что можно сделать автоматически и как, а что — только вручную.
Константин Книжник: статический анализ, взгляд со стороныTatyanazaxarova
Статья представляет интервью, взятое у Константина Книжника, сотрудником компании "Системы программной верификации" Андреем Карповым. Затронуты вопросы статического анализа кода, актуальность решений в этой области, а также перспективы использования статического анализа при разработке параллельных приложений.
Mail.ru: Как вырастить в себе автоматизатора и разработчикаMaxim Boguslavsky
В презентации я постарался рассказать о том:
1. Какие основные критерии нужно учесть при поиске автоматизатора.
2. Какие основные навыки требуются для инженера по автоматизации.
3. Какие требования к инженеру по обеспечению качества.
4. Так же в презентации есть статьи и ссылки на ресурсы где можно получить необходимые знания и навыки для развития.
5. Так же я рассказываю о том сколько времени требуется для развития, какие есть подводные камни и как их преодалеть.
Netpeak Group продолжает серию образовательных мероприятий — #NetpeakTalks в Одессе.
В рамках этих встреч у тебя будет возможность обсудить с практикующим спикером наболевшие темы, связанные с R&D, дизайном, менеджментом, интернет-маркетингом, QA, Customer Success, аналитикой и др. (все темы от встречи к встрече не повторяются и отличаются друг от друга).
Тема#3: Масштабируемое приложение на PHP
Краткий план:
1. Теория принципов и паттернов проектирования.
2. Примеры использования принципов и паттернов в коде (разберём какие "плюшки" даёт каждый случай).
3. Важность слабосвязанного кода (IoC).
4. Как "под капотом" работают IOC контейнера.
_____________________
Информацию об этом и следующих мероприятиях ты можешь отследить:
FaceBook: https://www.facebook.com/NetpeakTalks/
Телеграм: https://t.me/netpeaktalks
__________
Плейлист с выступлениями на YouTube: https://www.youtube.com/playlist?list=PL8LIMl0TjrcDtSS_lM5jqH-huK5FCq44A
__________
Verification of 800 Automata-Based Programs Built by means of Genetic Program...Iosif Itkin
Michael Lukin, Maxim Buzdalov and Anatoly Shalyto Saint Petersburg State University of Information Technologies, Mechanics and Optics, Saint Petersburg
Особенности использования машинного обучения при защите от DDoS-атакQrator Labs
В докладе мы взглянем на проблему DDOS, с одной стороны, более широко — как на проблему обеспечения доступности ресурса, с другой стороны более конкретно — как на проблему информационной безопасности.
Поговорим о том, как автоматизировать борьбу с DDOS-атаками при помощи машинного обучения, и чем такая автоматизация может быть опасна.
Наконец, рассмотрим пару примеров и обсудим, с чего начинать строить систему защиты от DDOS.
В предыдущей публикации цикла мы сформировали базовые требования к системе информационной безопасности безналичных платежей и сказали, что конкретное содержание защитных мер будет зависеть от модели угроз.
Для формирования качественной модели угроз необходимо учесть существующие наработки и практики по данному вопросу.
В этой статье мы проведем экспресс обзор порядка 40 источников, описывающих процессы моделирования угроз и управления рисками информационной безопасности. Рассмотрим как ГОСТы и документы российских регуляторов (ФСТЭК России, ФСБ России, ЦБ РФ), так и международные практики.
Борьба с вредоносным кодом: от базовых мер к целостной стратегииAleksey Lukatskiy
Описание целостной стратегии борьбы с вредоносным кодом - от начальных шагов и базовых защитных мер к продвинутой версии, включающей множество защитных механизмов
Акторы в C++: взгляд старого практикующего актородела (St. Petersburg C++ Use...Yauheni Akhotnikau
Автор доклада более 16 лет отвечает за развитие Open-Source фреймворка SObjectizer -- одного из немногих живых, эволюционирующих, кросс-платформенных фреймворков для C++, базирующихся на Модели Акторов. При этом SObjectizer никогда не был исследовательским экспериментом и с самого начала использовался в ряде business-critical проектов.
За годы разработки и эксплуатации SObjectizer накопился некоторый практический опыт использования акторов в С++, которым докладчик поделится со слушателями. Речь пойдет о том, почему Модель Акторов выглядит привлекательной, где и когда ее выгодно использовать. Какие особенности накладывает именно С++ и разумно ли использовать Модель Акторов в C++? Почему реализации Модели Акторов для C++ настолько разные и почему SObjectizer получился именно таким?
Обзор применения искусственного интеллекта в кибербезопасности как с позитивной, так и с негативной стороны. Как ИИ используют безопасники. Как ИИ используют хакеры. Какие угрозы могут быть для ИИ.
Особенности использования машинного обучения при защите от DDoS-атакQrator Labs
В докладе мы взглянем на проблему DDOS, с одной стороны, более широко — как на проблему обеспечения доступности ресурса, с другой стороны более конкретно — как на проблему информационной безопасности.
Поговорим о том, как автоматизировать борьбу с DDOS-атаками при помощи машинного обучения, и чем такая автоматизация может быть опасна.
Наконец, рассмотрим пару примеров и обсудим, с чего начинать строить систему защиты от DDOS.
В предыдущей публикации цикла мы сформировали базовые требования к системе информационной безопасности безналичных платежей и сказали, что конкретное содержание защитных мер будет зависеть от модели угроз.
Для формирования качественной модели угроз необходимо учесть существующие наработки и практики по данному вопросу.
В этой статье мы проведем экспресс обзор порядка 40 источников, описывающих процессы моделирования угроз и управления рисками информационной безопасности. Рассмотрим как ГОСТы и документы российских регуляторов (ФСТЭК России, ФСБ России, ЦБ РФ), так и международные практики.
Борьба с вредоносным кодом: от базовых мер к целостной стратегииAleksey Lukatskiy
Описание целостной стратегии борьбы с вредоносным кодом - от начальных шагов и базовых защитных мер к продвинутой версии, включающей множество защитных механизмов
Акторы в C++: взгляд старого практикующего актородела (St. Petersburg C++ Use...Yauheni Akhotnikau
Автор доклада более 16 лет отвечает за развитие Open-Source фреймворка SObjectizer -- одного из немногих живых, эволюционирующих, кросс-платформенных фреймворков для C++, базирующихся на Модели Акторов. При этом SObjectizer никогда не был исследовательским экспериментом и с самого начала использовался в ряде business-critical проектов.
За годы разработки и эксплуатации SObjectizer накопился некоторый практический опыт использования акторов в С++, которым докладчик поделится со слушателями. Речь пойдет о том, почему Модель Акторов выглядит привлекательной, где и когда ее выгодно использовать. Какие особенности накладывает именно С++ и разумно ли использовать Модель Акторов в C++? Почему реализации Модели Акторов для C++ настолько разные и почему SObjectizer получился именно таким?
Обзор применения искусственного интеллекта в кибербезопасности как с позитивной, так и с негативной стороны. Как ИИ используют безопасники. Как ИИ используют хакеры. Какие угрозы могут быть для ИИ.
This document discusses application control bypass techniques on ATMs. It begins by covering kiosk mode bypass methods for Windows XP and 7 like using safe mode, hotkeys, and boot process vulnerabilities. It then explores ways to deliver malware over the network using vulnerabilities in firewalls, VPNs, and TLS as well as exploiting 3G modems. Privilege escalation techniques and using plug and play devices to execute code are also examined. The document concludes by outlining methods for bypassing application control software like using trusted applications and alternative file extensions to achieve code execution.
Сергей Харюк (Украина). Проверка безопасности приложений на платформе iOSKazHackStan
This document outlines a presentation on testing the security of iOS applications. It discusses the iOS security architecture including the kernel, secure enclave, and application sandboxing. It then covers tools for analyzing apps like dumpdecrypted, IDA, Hopper, Frida, and idb. The document lists the OWASP top 10 mobile risks and provides examples of vulnerabilities found in various mobile apps during security research, including issues with insecure communication, data storage, authorization and cryptography. Case studies are presented on vulnerabilities discovered in apps like MyPay, HomeBank, KolesaKz and others.
4. Вводные
● Машинное обучение (ML) и искусственный интеллект – широкая область
● Для этих технологий есть специфичные угрозы и атаки
● В последние годы был опубликован ряд материалов и инструментов
● Исследования касались как обхода средств защиты, так и уязвимостей
различных прикладных систем
● Всё больше потребительских устройств оснащается технологиями ML
● Бытовая техника, смартфоны, автомобили, медицинское оборудование
5. Вводные
● Машинное обучение – это в основном про статистику
● Наиболее продвинутые модели используют нейронные сети
● Идея нейронных сетей позаимствована у природы
● Но так ли защищена нейронная сеть у нас в голове?
● . . .
6.
7.
8.
9. Вводные
● . . . А у нас в компьютере?
● Похоже, что нет.
11. Проблемы и грабли в ML
● Мало данных для обучения или они плохие
● Ненормализованные данные разной природы
● Непонимание данных, неправильный подбор признаков
● Неправильный выбор функции потерь, дисбаланс цены ошибок
● Автокорреляция признаков, переобучение
12. Роль атакующего
● Последствия неправильного построения моделей – ошибки 1 и 2 рода
● Как атакующий может «помочь» модели ошибиться?
● Подумаем над моделью нарушителя и угроз
● Что атакующий может знать, что он может делать, чего он хочет?
13. Что может знать атакующий?
● Обучающая или тестовая выборка (training/testing dataset)
● Используемые признаки (features)
● Используемый алгоритм обучения
14. Что может делать атакующий?
● Модифицировать и отравлять данные
● Получать результат классификации для любого входного вектора
● Получать результат функции алгоритма (расстояние от разделяющей
гиперплоскости)
● Взаимодействовать с моделью как по основному протоколу, так и по
сторонним каналам (недостатки программной реализации)
15. Что может хотеть атакующий?
● Получить информацию о данных (нарушить конфиденциальность)
● Сделать невозможной работу пользователей (нарушить доступность)
● Обойти механизмы защиты (нарушить целостность)
● Целью атаки может быть как конкретный результат классификации
(targeted adversarial attack), так и произвольный некорректный (non-targeted,
indiscriminative)
16. Последствия
● В результате атак возникает множество угроз
● ML используется для различных бизнес-задач, и атаки могут разрушить их
функцию
● Обход авторизации и аутентификации
● Кража интеллектуальной собственности
● Утечка конфиденциальных данных
● Ошибки экономических и торговых стратегий
18. Линейные модели
● Модели с простыми решающими функциями часто легко сломать
● Зная вычисляемые признаки, атакующий может их непрерывно менять,
сдвигая вектор
● В простейшем случае, независимо сдвигая координаты в пространстве
признаков, можно пересечь разделяющую плоскость
19.
20. Нейронные сети
● В последние 2-3 года бум различных статей и разработок на тему
Adversarial Machine Learning
● Большинство примеров касается компьютерного зрения
● Генеративно-состязательные сети (Generative Adversarial Networks)
● Решают оптимизационную задачу – максимизировать ошибку
дискриминации
● Результаты порой поражают – у нейронных сетей могут быть
галлюцинации и воспоминания!
21.
22. Нейронные сети
● Главный инструмент этих техник – градиентный спуск
● Имея доступ к модели и возможности подсчитывать градиент, можно
минимизировать расстояние от определённого класса или значение функции
решения
● В результат, начав со случайного изображения, можно получить
изображение, которое классифицируется как кот
23.
24.
25. Нейронные сети
● Эти алгоритмы легли в основу таких техник как Artistic style transfer и Deep
mind
● Приложение Prisma и другие
● В свёрточных нейронных сетях слои отвечают за распознавание
различных уровней абстракции в изображении
● Это может быть стиль или содержание изображения
● Оптимизируя определённые слои, можно «скрестить» изображения или
сделать их похожими на котов
26.
27.
28. Чёрный ящик
● Что если у атакующего нет доступа к модели?
● Он не может локально посчитать градиент и оптимизировать нужную
функцию
● Но он может обращаться к модели и получать результат классификации
29. Чёрный ящик
● Иногда при blackbox-атаке можно получить значение решающей функции
(score)
● В таком случае можно численно оценить градиент и провести примерно
такую же атаку, как и ранее
● Есть также иные подходы, включая генетические алгоритмы
● Пример: EvadeML https://evademl.org/
30. Чёрный ящик
● Но часто есть возможность только получить только результат
классификации (без raw-значения или вероятности)
● Такой подход также предлагался как защита от атак с использованием
градиента
31. Чёрный ящик
● Сразу возникает идея построить аппроксимирующую модель и провести
градиентный спуск на ней
● Это означает, что мы используем blackbox-классификацию для разметки
выборки
● Затем мы обучаем свою суррогатную модель на этой выборке
● Затем мы атакуем свою суррогатную модель и пробуем использовать
результат атаки на оригинальной модели
● Пример: MalGAN https://arxiv.org/pdf/1702.05983.pdf
32. Отравление обучения
● Если атакующий может влиять на выборку, он может её отравить
● Это касается IPS/IDS/WAF, антиспама, поисковых систем и т.д.
● Задача отравления – это задача максимизации функции потерь
● Вместо градиентного спуска производится градиентный подъём
● Пример для SVM: https://arxiv.org/pdf/1206.6389.pdf
33. Извлечение данных
● Зачастую обучающая выборка содержит секретные данные
● При помощи описанных выше и других атак они могут быть извлечены или
аппроксимированы
● Это могут быть медицинские данные или закрытые финансовые
показатели
● Пример исследования: https://arxiv.org/pdf/1306.4447.pdf
34. Извлечение данных
● Доказана неэффективность Differential Privacy для защиты от утечек
● Более того, абсолютно не защищено даже недецентрализованное
обучение (collaborative learning): https://arxiv.org/pdf/1702.07464.pdf
37. Применение ML в ИБ
● Применений ML очень много
● Рассмотрим некоторые типы ИБ-решений, где активно используют ML
● Чаще всего это сводится к задаче классификации атака/не атака
38. Применение ML в ИБ
● Биометрия (Touch ID, Face ID)
● Выявление сетевых атак (IDPS/WAF/Anti-DDoS)
● Антифрод (кластеризация и классификация транзакций)
● Антиспам (классификация сообщений)
● Антивирусы (классификация исполняемого кода)
● SIEM (выявление аномалий в последовательностях событий)
● DLP (поиск негатива в тексте, выявление скрытых каналов)
39. WAF
● Web Application Firewall
● На этапе обучения можно отравлять данные запросами с векторами атак
● Это может позволить обойти WAF или спровоцировать FP-срабатывания
40. WAF
● В случае debug-режима работы или доступа к логам возможно получение
информации о классификации атаки и значении функции
● Чёрным ящиком можно также определить многие признаки, например,
наличие тех или иных сигнатур
● Также можно определить, какие форматы данных и поля HTTP-протокола
понимает фаервол, инкапсулируя в них векторы атаки
41. Антиспам
● Antispam
● Можно помечать легитимные сообщения как спам и наоборот
● Можно почти неограниченно вычислять результат классификации любых
писем
● Многие параметры модели могут утечь через отладочную информацию в
заголовках в переписке или по сторонним каналам
● В результате можно испортить работу механизма или обойти его
45. Антиспам
● Туда же могут попасть
даже все признаки, их
описание и вес!
● SpamAssasin
46. Антивирусы
● Malware detection
● Современные антивирусы повально используют ML
● Сигнатуры работают плохо, поэтому нужны более умные методы
обнаружения вредоносного ПО
● На эту тему написано немало работ, а также есть немало исследований на
тему обхода таких систем
47. Биометрия
● Biometrical auth, identity management
● Можно обмануть системы распознавания лиц или отпечатков пальцев
● Так можно уйти неопознанным или прикинуться другим человеком
● Популярная библиотека для распознавания лиц – FaceNet от Google
● Основана на tensorflow и sklearn (SVC)
● Скоро выложу PoC для обхода классификатора FaceNet
● См. на https://github.com/beched
48. SEO
● Search Engine Optimization
● SEO-шники уже годами неосознанно занимаются взломом моделей
машинного обучения
● Они подбирают признаки и ждут апдейта поисковых систем, чтоб оценить
влияние этих признаков на ранжирование
● Многие признаки достоверно известны и очевидны (TF-IDF, ИЦ, PR)
● Но в реальности используются тысячи признаков, которые уже не
интерпретируются
49. SEO
● Дилетантская мысль, которая меня не покидала пару лет – что если
провести следующую атаку (например, на Яндекс):
○ Взять выборку поисковых запросов и их результатов
○ Положение страницы в результатах – это численная оценка релевантности
○ Известен алгоритм, лежащий в основе ранжирования Y: MatrixNet
○ Обучим свой MatrixNet на извлечённой выборке
○ Получим приближённую модель (в подпространстве признаков) ранжирования
○ Решим задачу оптимизации и сможем генерировать страницы, которые попадут в топ
○ PROFIT!
50. Интернет-маркетинг
● Контекстная реклама основана на интересах пользователя
● Интересы пользователя могут быть основаны на конфиденциальных
данных (посещение определённых сайтов, их длительность, переписки)
● Эти данные могут статью целью атаки мошенников или конкурентов
● Также можно отравить такие выборки, сгенерировав определённую
активность пользователей, и нанести ущерб рекламной кампании
● Кроме того, статистические методы используются для A/B-тестирования
● Известны случаи атак на A/B-тесты (отравление) конкурентов
51. Беспилотные автомобили
● В ближайшие годы автомобили станут беспилотными
● Важнейшие компоненты автопилота – это компьютерное зрение, механизм
принятия решений, оценка риска ситуации или манёвра и т.д.
● Как мы уже поняли, эти технологии уже сломаны
55. Защита
● Ниша пока молода, и технологии защиты от описанных и иных атак пока
слабо развиты
● Есть ряд инструментов для оценки защищённости модели
● Есть несовершенные подходы для сокрытия данных, противодействия
градиентным методам, отравлению и т.д.
56. Рекомендации
● Понимать свою модель угроз
● Санитизировать данные, удалить выбросы
● Использовать модели, устойчивые к шуму
● Минимизировать возможности взаимодействия атакующего с моделью
● Обфусцировать выборки
● Обучаться на adversarial-выборках
● Проводить аудит построенных моделей и алгоритмов, оценивать их
устойчивость к adversarial-атакам
57. Рекомендации
● Также нужно следовать общим рекомендациям построения хороших
моделей
● Как сказал профессор Andrew Ng,
«It's not who has the best algorithm that wins, It's who has
the most data»