Publications du canal Alisa Esage Шевченко 🌺🦋💻

Independent Hacker & Researcher, Founder @zerodaytraining • Main channel on Twitter: https://x.com/alisaesage
1,324 abonnés
1 photos
8 vidéos
Dernière mise à jour 09.03.2025 15:43
Canaux similaires

29,863 abonnés

1,759 abonnés

1,490 abonnés
Le dernier contenu partagé par Alisa Esage Шевченко 🌺🦋💻 sur Telegram
Начинаю понемногу открывать миру свои математические модели.
Fuzzing from First Principles
Слайды: https://zerodayengineering.com/research/slides/FuzzingFromFirstPrinciples.pdf
Видео: https://www.youtube.com/live/9U-FK_Qi1XQ?si=DbH2Ek9pt832brlz
(вышло на видео-подкасте OffByOne Security в прошлую субботу, 14 сентября 2024 г.)
Идея теоретического моделирования фаззинга - и, в более широком смысле, программного контекста - на базе современной теории вероятностей впервые пришла ко мне в 2018 году. В рамках исследовательского проекта по первичной эксплуатации гипервизора Microsoft Hyper-V я нашла интересный вектор атаки: протокол гипер-коммуникации виртуального сетевого адаптера Virtual Network Switch. Это сложный бинарный протокол с сохранением состояния, массой полей типа TLV и взрывной экспансией программных путей*. Ручной поиск уязвимостей в бинарном коде данного типа - кошмар интеллекта, зато для фаззинга это идеальная мишень. Однако, планируя дизайн и воплощение фаззера, я столкнулась с рядом "непреодолимых" технических сложностей. Некоторые сложности возможно было разрешить ценой нескольких месяцев работы, которых у меня не было в том маленьком само-финансированном проекте. Другие сложности - из разряда фундаментальных сложных проблем фаззинга: например, проблема "магических значений" или контрольных сумм. В итоге я нашла решение интуитивно, и в процессе начала осознавать, что управление полем вероятностей данных, которые генерирует фаззер - и в частности, приближение этого поля к собственному полю вероятностей входных данных программы - ключ к решению фундаментальной проблемы фаззинга. В подкасте я рассказываю эту историю более подробно, код уязвимости давно опубликован в моем github, технический анализ - в моих прошлых технических презентациях про поиск узявимостей в гипервизорах.
В своей модели я рассматриваю два экстремальных уровня приложения теорвер к фаззингу. На низком уровне - это оценка вероятностей прохождения фаззером конкретных условных развилок в коде программы. На высоком уровне - интерпретация фаззера, программы, и ее уязвимостей как распределения вероятностей входных данных, которые они генерируют/принимают. Основное предназначение модели - направлять исследовния в области практических улучшений фаззинга. Привожу простые и наглядные примеры того, как это работает, из своих исследовательских проектов за последние 10 лет. Модель также применима к аналитическим задачам.
Анализ прикладных техник фаззинга через перспективу данной теоретической модели позволяет вскрыть неудобную правду, которую фаззинг комьюнити "заметает под ковер": чистая эффективность фаззинга составляет не более 1%, этот показатель падает в глубину программы, разработчики ЭТО масштабируют на вычислительные облака и называют "умным фаззингом". Я считаю, что масштабирование разумно, когда оно приумножает эффективный и продуктивный процесс - но масштабирование прогрессивно убыточного процесса?! Бесспорно, данный подход позволяет найти больше уязвмостей за единицу времени, при этом по сути он умножает непродуктивность. Фаззинг, который преимущественно жжет электричество и портит климат - это не умный фаззинг, это сумасшествие в погоне за выгодой. Мы можем лучше, да?
Другой пример: модель позволяет формализовать, и свести к конкретным цифровым показателям, как именно фаззинг с обратной связью от покрытия кода контролирует экспоненциальный рост сложности анализа в глубину программы. В свою очередь, количественная оценка прикладного процесса открывает возможности для автоматизированной оптимизации алгоритмов фаззинга - то, что сейчас разработчики и исследователи делают "наощупь" эмпирическим путем.
(Продолжение: https://t.me/alisaesage/179)
Fuzzing from First Principles
Слайды: https://zerodayengineering.com/research/slides/FuzzingFromFirstPrinciples.pdf
Видео: https://www.youtube.com/live/9U-FK_Qi1XQ?si=DbH2Ek9pt832brlz
(вышло на видео-подкасте OffByOne Security в прошлую субботу, 14 сентября 2024 г.)
Идея теоретического моделирования фаззинга - и, в более широком смысле, программного контекста - на базе современной теории вероятностей впервые пришла ко мне в 2018 году. В рамках исследовательского проекта по первичной эксплуатации гипервизора Microsoft Hyper-V я нашла интересный вектор атаки: протокол гипер-коммуникации виртуального сетевого адаптера Virtual Network Switch. Это сложный бинарный протокол с сохранением состояния, массой полей типа TLV и взрывной экспансией программных путей*. Ручной поиск уязвимостей в бинарном коде данного типа - кошмар интеллекта, зато для фаззинга это идеальная мишень. Однако, планируя дизайн и воплощение фаззера, я столкнулась с рядом "непреодолимых" технических сложностей. Некоторые сложности возможно было разрешить ценой нескольких месяцев работы, которых у меня не было в том маленьком само-финансированном проекте. Другие сложности - из разряда фундаментальных сложных проблем фаззинга: например, проблема "магических значений" или контрольных сумм. В итоге я нашла решение интуитивно, и в процессе начала осознавать, что управление полем вероятностей данных, которые генерирует фаззер - и в частности, приближение этого поля к собственному полю вероятностей входных данных программы - ключ к решению фундаментальной проблемы фаззинга. В подкасте я рассказываю эту историю более подробно, код уязвимости давно опубликован в моем github, технический анализ - в моих прошлых технических презентациях про поиск узявимостей в гипервизорах.
В своей модели я рассматриваю два экстремальных уровня приложения теорвер к фаззингу. На низком уровне - это оценка вероятностей прохождения фаззером конкретных условных развилок в коде программы. На высоком уровне - интерпретация фаззера, программы, и ее уязвимостей как распределения вероятностей входных данных, которые они генерируют/принимают. Основное предназначение модели - направлять исследовния в области практических улучшений фаззинга. Привожу простые и наглядные примеры того, как это работает, из своих исследовательских проектов за последние 10 лет. Модель также применима к аналитическим задачам.
Анализ прикладных техник фаззинга через перспективу данной теоретической модели позволяет вскрыть неудобную правду, которую фаззинг комьюнити "заметает под ковер": чистая эффективность фаззинга составляет не более 1%, этот показатель падает в глубину программы, разработчики ЭТО масштабируют на вычислительные облака и называют "умным фаззингом". Я считаю, что масштабирование разумно, когда оно приумножает эффективный и продуктивный процесс - но масштабирование прогрессивно убыточного процесса?! Бесспорно, данный подход позволяет найти больше уязвмостей за единицу времени, при этом по сути он умножает непродуктивность. Фаззинг, который преимущественно жжет электричество и портит климат - это не умный фаззинг, это сумасшествие в погоне за выгодой. Мы можем лучше, да?
Другой пример: модель позволяет формализовать, и свести к конкретным цифровым показателям, как именно фаззинг с обратной связью от покрытия кода контролирует экспоненциальный рост сложности анализа в глубину программы. В свою очередь, количественная оценка прикладного процесса открывает возможности для автоматизированной оптимизации алгоритмов фаззинга - то, что сейчас разработчики и исследователи делают "наощупь" эмпирическим путем.
(Продолжение: https://t.me/alisaesage/179)
(Начало: https://t.me/alisaesage/178)
Это новая теоретическая модель фаззинга, аналоги которой мне не встречались. Есть буквально несколько штук академических публикаций, которые используют тот же самый математический инструмент для узкоспециализированного анализа эмпирических показателей, полученных в процессе фаззинга. Однако, никто никогда не пытался вывести универсальную формулировку модели, нацеленную на оптимизацию алгоритмов и кода фаззинга. В этой презентации моя задача была простыми словами передать суть модели, не слишком углубляясь в математику и формальные доказательства.
Моя англоязычная аудитория была в восторге от этой презентации: подкаст набрал рекордное число живых посетителей, о чем Стив написал в своем твиттере, а в комментариях народ просит "еще математических моделей". :) Надеюсь, вам тоже понравится. Кстати, современную теория вероятностей (это самостоятельная ветвь прикладной математики, отделившаяся от статистического анализа) со-основал советский ученый Андрей Колмогоров.
--
* Я изучала математику и современную терминологию программного анализа на английском языке, и не уверена, что использую правильные слова на русском языке, благодарю за понимание.
P.S. Для тех, кто здесь впервые: за попытки обесценивания моей работы, достижений, личности даю бан молча и необратимо - и маскировка атаки под "конструктивную критику" вас не спасет. Любовь и поддержку разрешаю). Контакт для связи - [email protected], интересные письма мне отфильтруют.
P.P.S. Напишите в комментариях, как сейчас удобнее всего смотреть англоязычные видео на русском языке. Очевидно, что можно перевести транскрипт через Google Translate или ChatGPT, или провести аудио через голосовой переводчик, но я подозреваю, что уже есть более удобные методы.
Это новая теоретическая модель фаззинга, аналоги которой мне не встречались. Есть буквально несколько штук академических публикаций, которые используют тот же самый математический инструмент для узкоспециализированного анализа эмпирических показателей, полученных в процессе фаззинга. Однако, никто никогда не пытался вывести универсальную формулировку модели, нацеленную на оптимизацию алгоритмов и кода фаззинга. В этой презентации моя задача была простыми словами передать суть модели, не слишком углубляясь в математику и формальные доказательства.
Моя англоязычная аудитория была в восторге от этой презентации: подкаст набрал рекордное число живых посетителей, о чем Стив написал в своем твиттере, а в комментариях народ просит "еще математических моделей". :) Надеюсь, вам тоже понравится. Кстати, современную теория вероятностей (это самостоятельная ветвь прикладной математики, отделившаяся от статистического анализа) со-основал советский ученый Андрей Колмогоров.
--
* Я изучала математику и современную терминологию программного анализа на английском языке, и не уверена, что использую правильные слова на русском языке, благодарю за понимание.
P.S. Для тех, кто здесь впервые: за попытки обесценивания моей работы, достижений, личности даю бан молча и необратимо - и маскировка атаки под "конструктивную критику" вас не спасет. Любовь и поддержку разрешаю). Контакт для связи - [email protected], интересные письма мне отфильтруют.
P.P.S. Напишите в комментариях, как сейчас удобнее всего смотреть англоязычные видео на русском языке. Очевидно, что можно перевести транскрипт через Google Translate или ChatGPT, или провести аудио через голосовой переводчик, но я подозреваю, что уже есть более удобные методы.
Всякий раз, когда прилетаю в Россию, у меня ШОК. От чего? От отношения людей. Ну то есть, меня везде любят, но русские… 😍🤩😍 Я не знаю, что они видят, случайные прохожие замирают в немом ступоре и здороваются вполголоса. Причем я не выпендриваюсь, а скромно бегаю по делам в штанах и без макияжа. А начинается это кино еще в самолете, где какой-нибудь русский мужчина непременно попытается накормить меня конфетами. И с каждым приездом ЭТО усугубляется. Хочу понять, у меня что-то такое на лбу написано? «Будущий президент России?»