Туда-обратная разработка. Веселее, чем б*ттплаг, полезнее, чем STM
Дата публикации: 2020-05-05
Автор: Анонимный переводчик
Теги: hardware
Не рекомендуется к прочтению тем, кто обладает проблемами с нервной системой.
Когда я кидала статью на утверждение, меня спросили: “А где же тут ИБ, это же схемотехника!” Хочу от себя заметить, что ИБ помимо сферы ИТ распространяется не только на стандартизацию, безопасность программного обеспечения, защиту от утечек информации по сторонним каналам (сюда в том числе входит изучение распространения радиоволн и электромагнитных сигналов), но и на аппаратный уровень.
Википедия:
- Обра́тная разрабо́тка (обратное проектирование, обратный инжиниринг, реверс-инжиниринг; англ. reverse engineering) — исследование некоторого готового устройства или программы, а также документации на него с целью понять принцип его работы; например, чтобы обнаружить недокументированные возможности (в том числе программные закладки), сделать изменение или воспроизвести устройство, программу или иной объект с аналогичными функциями, но без прямого копирования.
- Схемоте́хника — научно-техническое направление, занимающееся проектированием, созданием и отладкой (синтезом и анализом) электронных схем и устройств различного назначения.
К сожалению, в данной статье мы ничего проектировать и создавать не будем. В том числе, заниматься отладкой (синтезом и анализом), в том варианте, в котором ей занимаются при создании и проектировании устройств, то есть перед их запуском в производство.
В данной статье мы рассмотрим, как методом подбора комбинации логических значений можно научиться управлять проприентарным устройством для нарушения целостности информации. Мы будем использовать недокументированные возможности устройства, то есть не предусмотренные инструкцией.
Однажды (тысячу лет назад) мне в руки попался интереснейший девайс, я не смогла удержаться и разобрала его. Постараюсь описать самое интересное из того что я увидела внутри и подтолкнуть к определенным выводам тех, кто захочет развить данную тему.
Уточнять, что за устройство мы рассматриваем я не буду по этическим причинам.
Итак, перед нами сравнительно небольшая плата:
Рассматриваемый нами девайс содержит дисплей, который имеет шесть выводов. Изображения, которые может выводить дисплей – фиксированные, то есть они заранее созданы и отображаются, когда на выводы дисплея поступает определенный набор сигналов с контролирующей микросхемой.
С другой стороны мы можем увидеть:
– отсек с батарейками (1),
– пассивные компоненты,
– микросхему, залитую компаундом – для того, чтобы защитить ее от внешних воздействий и реверсеров (2),
– контакты датчика(3),
– кусок пластика с прорезями.
После удаления куска пластика с прорезями мы можем наблюдать 4 светодиода и один фотодиод (группа элементов справа). Это удивительно, так как в корпусе как раз нет отверстий ни для первых, ни для второго. Можно предположить, что фотодиод служит для определения момента закрытия крышки корпуса, но опять же – достаточного отверстия для поступления света там нет.
Еще одним следствием работы фотодиода может быть то, что после разбора корпуса, при попадании на него света прошивка перестала вести себя статично и микросхема начала отправлять меандр на контакты дисплея, от чего тот начал мигать.
Меандр – последовательность прямоугольных импульсов с равной длиной импульса и паузой, в логических устройствах может считываться как 0-1-0-1-0-1-0 и так далее.
Чтобы определить на скорую руку на какие контакты приходит сигнал – меандр, был использован светодиод. Путем преставления ног светодиода между контактами (одна – на земле, вторая на сигнальном контакте) можно легко определить какие из контактов – «мерцают». Так же, это можно проделать с помощью мультиметра в режиме измерения постоянного тока.
Так как отковыривать компаунд дело долгое и неблагодарное, а внесение изменений в прошивку данного девайса в срочном порядке вряд ли будет популярно, далее будет предложено простое и действенное изменение значения на дисплее нужное нам.
Практическим образом было установлено, что, если использовать постоянный сигнал с источника питания девайса, можно добиться фиксации изображения на экране. Эксперимент проводился с двумя контактами, но можно их припаивать и пробовать узнавать режимы работы дисплея с изменением большего количества информационных значений.
Мы разобрались, что при закорачивании контактов 3 и 5 можно добиться специфической статической надписи. Для того, чтобы это проделать требуется:
- Разобрать корпус (он крайне легко разбирается руками).
- Кинуть минимум две перемычки от батарейки к контактам 3 и 5.
Если сделать это аккуратно, то можно легко справиться за 60 секунд. При учете специфических условий из данных нескольких минут, останется еще время на посидеть в мессенджере.
Отрицательный результат достигается закорачиванием 3 и 6 контакта соответственно, но здесь нас предательски выдает неверная надпись, под результатом, логически несовместимая с ним.
TODO:
[+] За счет пайки и использования оставшихся контактов добиться вывода на экране полностью статичной надписи.
Для этого потребуется создать таблицу значений.
Пример ее заполнения:
Номер вывода | 1 | 2 | 3 | 4 | 5 | 6 | Выводимое изображение |
Состояние выводов (1) | ? | 1 | ? | ? | 1 | ? | Беременна (статическое) Значок часы, книжка (моргают) |
Состояние выводов (2) |
[-] Возможно, полученные результаты усложнят процесс фальсификации, что недопустимо.
Также чтобы определить вектор развития событий скажу: в данной статье мы с вами рассмотрели исследование и научились фальсифицировать значение теста на беременность с помощью двух перемычек.
Как показала практика, мало кто осведомлен о том, как должен выглядеть экран положительного теста. Поэтому, в принципе, предложенного варианта фальсификации может быть достаточно.