Посоветуйте, что почитать. Часть 2

25.05.2020

Мы сделали подборку полезных ресурсов по информационной безопасности. Сами их используем, поэтому рекомендуем тем, кому интересен мир ИБ. Одна часть подборки уже опубликована, и сегодня делимся другой.

Часть вторая:

Satisfiability modulo theories (SMT)

Если вы решили погрузиться в эту тему, пожалуй, лучшим материалом для первого знакомства с SMT будет Theorem prover, symbolic execution and practical reverse-engineering. Он позволит быстро познакомиться с принципом применения SMT и символьного исполнения в реверсе, получить навыки работы с Z3 через Python. Также в презентации разбирается ряд конкретных задач реверс инжиниринга: обращение хэш-функций, деобфускация, поиск ROP-гаджетов и др.

Для более глубокого погружения в тему рекомендуем книгу SAT/SMT by Example. В этой книге более чем на 500 страницах разбираются различные задачи, которые можно решить с помощью SMT. Автор не ограничивается задачами реверс инжиниринга и приводит решения некоторых математических задач и головоломок. Отдельное внимание стоит уделить главе 18, посвященной работе с KLEE.

Также для общего развития можно посмотреть академическую работу SMT Solvers for Software Security, Sean Heelan, Rolf Rolles. Это одна из первых научных работ, в которой было предложено применять SMT в области безопасности ПО, благодаря ей всё и “завертелось”.

Имея базовое понимание и навыки работы с SMT, можно перейти к изучению других материалов и знакомству с утилитами и фреймворками:

Фреймворки:

Утилиты:

  • KLEE
  • PONCE -- интересный плагин для IDA Pro

Статьи:

Для IDA Pro

Если вы уже отлично владеете IDAPyhton API для IDA Pro и хотите выйти на новый уровень, самое время посмотреть на Hex-Rays API (ida_hexrays) и Microcode API. Первый позволяет поиграться с возможностями декомпилятора, а второй как раз лежит в основе декомпилятора.

Как же к этому подступиться? Все, что касается документации и IDA, - полных крах, так что тут лучше начать с изучения чужих творений. Далее приводим несколько небольших (до 600 LOC) скриптов, которые помогут окунуться в тему.

  • HRDevHelper -- отображает ctree дерево, по которому вам придется ходить при работе с декомпилятором.
  • xray -- помогает выделить интересные участки кода, которые могут быть полезны при анализе вредоносного ПО и выявлении уязвимостей.
  • MrsPicky -- помощник для аудита memcpy() и memmove() функций, также использует функциональность декомпилятора для своей работы.
  • dsync --простенький скрипт для синхронизации окна дизассемблера и декомпилятора в IDA.
  • genmc -- основной помощник при написании плагинов для работы с Microcode IDA. Он отображает, как исследуемый вами код выглядит в микрокоде IDA.

ML и (In)security

  1. Книга от разработчиков антивируса на базе ML - Cylance "Introduction To Artificial Intelligence For Security Professionals" + сразу гуглим "Bypassing Cylance" и получаем множество постов о том, как обойти это "чудо" ML десятками способов.
  2. Интересный пост DETECTING MALWARE PRE-EXECUTION WITH STATIC ANALYSIS AND MACHINE LEARNING от создателей другого ML антивируса SentinelOne (все из этой области называют себя NGAV - Next-Generation Antivirus) - тоже обходится, можно найти в Google и посмотреть на Youtube.
  3. Книга Malware Data Science от сотрудников компании Sophos. Есть глава про ML (кстати, доступна как free).
  4. Книга Machine Learning and Security
  5. Искренне рекомендуем и наш цикл статей на Хабре: 1, 2, 3
  6. Также очень рекомендуем выступление Thomas Dullien Machine learning, offense, and the future of automation c ZeroNights 2017, где автор выражает непопулярную точку зрения, что ML скорее будет полезен для атак, нежели для защиты.
  7. Пул ссылок Awesome Machine Learning for Cyber Security -- здесь есть и книги, что упоминались выше, в формате pdf.
  8. Полезно знать и о таком направлении как Adversarial machine learning, которое заключается в атаках на ML, ознакомиться можно по ссылке.
  9. Microsoft знает о возможностях атаковать такие алгоритмы и думает об их защите -- Protecting the protector: Hardening machine learning defenses against adversarial attacks.

Наш опыт с ML в области ИБ показывает следующее:

  • Не столько важны ML, нейронки, алгоритмы и т.п., сколько dataset, на котором это все будет строиться
  • Обучаться на плохом/вредоносном - это все равно отставать от атакующего и быть догоняющим в этой гонке

Jailbreak iOS

Если вам интересна данная тема, рекомендуем посмотреть доклады:

Из этих источников вы узнаете, как все начиналось и что нужно сделать сегодня, чтобы получить полный JB на устройстве, а также какие механизмы защиты существуют; узнаете мнение авторов о том, как долго это еще будет актуально. Доклады 2018-2019 гг, так что они покрывают и одни из последних версий iOS. Узнаете, какие механизмы используют разработчики защиты, и как их обходят атакующие.

AFL++

Пожалуй, все интересующиеся знакомы с фаззером AFL. Автор забросил его на версии 2.52b, и сообщество стихийно начало создавать свои патчи, улучшения и форки. Но совсем недавно появился AFL++, в котором исследователь van Hauser из команды The Hacker's Choice собрал то, что сделало сообщество, и объединил в одном проекте. На сегодняшний день это лучший выбор при фаззинге с помощью AFL.

Мы уже публиковали материал о вспомогательных утилитах для AFL и его модификациях, за подробностями можно обратиться к нему.

P.S.

Для желающих получить более фундаментальные знания у нас есть большая подборка по reverse engineering, она все так же хороша, как и 3 года назад.

Надеемся, что вы нашли для себя новое и полезное.