Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Reverse Engineering

Fi5t
November 09, 2020

Reverse Engineering

Теоретическая лекция по основам reverse engineering-а для студентов 5-го курса Самарского университета, специальность Информационная безопасность автоматизированных систем.

Fi5t

November 09, 2020
Tweet

More Decks by Fi5t

Other Decks in Technology

Transcript

  1. Redmadrobot • Android TeamLead в Redmadrobot • Интересуюсь безопасностью приложений

    и серверов • Веду блог, канал и вот это вот все :D 2 WHOAMI
  2. Redmadrobot • Историческая справка • Какой бывает RE • Инструментарий

    реверсера • Как RE влияет на бизнес • Типичные векторы атак • Методы борьбы с RE 3 План лекции
  3. Redmadrobot 4 Историческая справка RE появился сразу после того, как

    человечество начало создавать что-то сложнее колеса надетого на палку. Откуда есть пошел…
  4. Redmadrobot 5 Историческая справка Любые инженерные дисциплины. Например: •Машиностроение -

    копирование различных механизмов •Электроника - изучение сигналов, копирование микросхем и целых устройств •Оборонная промышленность - копирование оружия, боеприпасов и даже стратегических ходов •Программное обеспечение - ну тут все понятно :D Области применения
  5. Redmadrobot 7 Какой бывает RE Самое легальное применение RE. Антивирусные

    компании очень заинтересованы в таких специалистах. Анализ вредоносного ПО
  6. Redmadrobot 8 Какой бывает RE Вполне легально в рамках bug

    bounty программ или частных контрактов. Некоторые компании содержат собственные подразделения таких специалистов, но чаще эти услуги отдают на аутсорс. Тестирование безопасности ПО
  7. Redmadrobot 9 Какой бывает RE RE также может быть частью

    мероприятий по конкурентной разведке. Но это уже серая зона и вряд-ли вы услышите громкие заявления от крупных компаний об этой деятельности. Ищут как правило различные ноу-хау обеспечивающие конкурентное преимущество и подобные вещи. Конкурентная разведка
  8. Redmadrobot 10 Какой бывает RE Отлучение софта от церкви лицензий,

    добавление вредоносной или шпионской функциональности и прочие пиратские штучки. Взлом программ
  9. Redmadrobot 11 Какой бывает RE Изучение алгоритмов и подходов с

    целью применения их в своем софте. Перекликается с конкурентной разведкой за тем лишь исключением, что делается лично для себя. Понять как работает
  10. Redmadrobot 13 Инструментарий реверсера Преобразовывает скомпилированный код в более понятное

    человеку представление. Чем в более низкоуровневое представление преобразуется исходный код, тем сложнее “вернуть все обратно”. Дизассемблер и декомпилятор
  11. Redmadrobot 14 Инструментарий реверсера Отладчики можно условно разделить на системные

    и прикладные. К системным также можно отнести отладчики уровня ядра. Отладчик
  12. Redmadrobot 15 Инструментарий реверсера Следит за каким-либо процессами в системе

    или приложении. Например за файловыми операциями, чтением-записью в память или реестром (любителям Windows привет) Монитор
  13. Redmadrobot 16 Инструментарий реверсера Позволяет распаковать приложение или снять с

    него навешенную защиту. Без этого, анализ приложения как правило невозможен. Далеко не все упаковщики или проекторы можно “откатить” в автоматическом режиме. Распаковщик и “ломатель” защиты
  14. Redmadrobot 17 Инструментарий реверсера Позволяет внедрять собственный код в работающее

    приложение. Внедренный код имеет полный доступ ко всем ресурсам приложения и потоку выполнения. Фреймворк для инструментации
  15. Redmadrobot 18 Инструментарий реверсера Позволяет просматривать машинный код в чуть

    более удобном представлении, что в свою очередь облегчает его редактирование. Может применятся для т.н. bit hack aka bit flip. HEX редактор
  16. Redmadrobot 19 Инструментарий реверсера Использует различные подходы к формированию наборов

    входных данных и посылает их приложению с целью нарушения логики его работы. Основные техники фаззинга — мутационное и порождающее тестирование. Первое основывается на шаблонах с последующей их “мутацией”. Второе — предполагает построение грамматик на основе спецификаций. Фаззер
  17. Redmadrobot 20 Инструментарий реверсера Позволяет написать все остальное ;) Можно

    использовать любой доступный вам ЯП, но Python хорош своей распространенностью и многие инструменты поддерживают написание внутренних скриптов именно на нем. Python
  18. Redmadrobot 22 Как RE влияет на бизнес Алгоритмы и подходы

    могут представлять собой значительную ценность или даже быть основой бизнеса компании. Кража этих данных может нанести компании значительный урон. Кража интеллектуальной собственности
  19. Redmadrobot 23 Как RE влияет на бизнес Информация о различных

    “закладках” или откровенно небезопасных подходах в софте может нанести компании огромный репутационный ущерб. Из недавних примеров: софт сбербанка, который не делал различий в регистре символов для паролей. Репутационные потери
  20. Redmadrobot 24 Как RE влияет на бизнес Изучение особенностей хранения

    данных потенциально способно привести к нахождению способа их компроментации. Что в свою очередь может грозить компании чем угодно, от штрафа до уголовного дела. Кража персональных данных
  21. Redmadrobot 25 Как RE влияет на бизнес Исследование внешних программ

    может позволить расширить поверхность атаки на внутреннюю инфраструктуру компании со всеми вытекающими отсюда последствиями. Компроментация внутренней инфраструктуры
  22. Redmadrobot 27 Типичные векторы атак В коде может быть оставлена

    отладочная информация/ функционал и даже аккаунты для доступа к серверам. Поиск таких вещей можно осуществлять в автоматическом режиме с помощью регулярных выражений. Поиск данных разработчика
  23. Redmadrobot 28 Типичные векторы атак Тоже довольно перспективный вектор поисков.

    Если что-то шифруется, значит оно почти 100% представляет ценность. При поиске нужно обращать внимание как на сами алгоритмы шифрования (стандартные они или нет), так и на то где хранятся ключи шифрования. Поиск информации об алгоритмах шифрования
  24. Redmadrobot 29 Типичные векторы атак Если стоит цель обойти систему

    покупки софта, то нужно изучить как работает система проверки лицензии. Довольно часто все сводится к одной условной инструкции, которую достаточно инвертировать для обхода проверки. Изучение системы лицензирования
  25. Redmadrobot 30 Типичные векторы атак Целевой вектор атаки при конкурентной

    разведке. Результатом поисков как правило является собственная реализация исследуемого решения. Поиск и изучение ноу-хау решений
  26. Redmadrobot 32 Методы борьбы с RE Хорошая обфускация, пожалуй самый

    эффективный способ “потратить” время реверсера впустую. Суть техники: сделать код как можно более запутанным и сложным для понимания Обфускация
  27. Redmadrobot 33 Методы борьбы с RE Определение запущенного отладчика и

    противодействие ему. Хорошие антиотладочные приемы должны учитывать специфику конкретных отладчиков и действовать против нее. Антиотладка
  28. Redmadrobot 34 Методы борьбы с RE Можно рассматривать как архивирование

    основного бинарника приложения с добавлением возможности его распаковки при запуске. Уменьшает размер приложения и противодействует его статическому анализу. Упаковка
  29. Redmadrobot 35 Методы борьбы с RE Перенос критического функционала в

    места недоступные исследователю. Это может быть сервер, отдельный чип на плате устройства или даже внешнее подключаемое устройство. Black boxing
  30. Redmadrobot 36 Методы борьбы с RE Целый касс программ-проекторов, которые

    стремятся усложнить как статический так и динамический анализ. Применяют множество техник, вплоть до виртуализации. Могут быть довольно сложны для начинающих реверсеров. Специализированные защиты
  31. Redmadrobot • Android Guards = https://t.me/android_guards • My blog =

    https://fi5t.xyz • GitHub = https://github.com/Fi5t • Habr = https://habr.com/users/fi5t • Twitter = @Fi5t 38 Где меня найти