Анастасия Кириченко
Начинающий художник, настольный игроман и жуткий любитель природы

Чтобы выяснить, не взломан ли его ноутбук, специалист потратил 2 года

©Micah Lee
©Micah Lee

Нередко специалисты по цифровой безопасности сталкиваются с вопросами клиентов, связанными со взломом их персонального компьютера и несанкционированной установкой нежелательного ПО. Клиенты просят проверить, не стали ли они жертвой злоумышленников.

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

При этом совершенно точно можно обнаружить только определенные замены файлов и фейки, в то время как во всех остальных случаях сделать это гораздо сложнее. Более того, даже в контролируемых средах невозможно обеспечить полную безопасность устройства. Всегда остаются возможности подделать ПО таким способом, проверить который пользователь никогда не додумается.

Проблема взлома и фальсификации особенно актуальна для правозащитников, активистов, журналистов и разработчиков программного обеспечения. Объяснить это очень просто — на их персональных компьютерах содержится масса конфиденциальной, а порой и эксклюзивной информации, которая представляет для потенциальных злоумышленников большую ценность.

Люди, принадлежащие к этим профессиям, часто действительно осознают необходимость высокой степени цифровой защищенности, ведь на их устройствах может находится связь с контактами и информаторами, базы паролей, исходные коды уникальных, разрабатываемых программ и ключи шифрования, коды доступа и другие данные "повышенной секретности".

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

©Micah Lee
©Micah Lee

Нельзя с точностью ответить на эти вопросы, но Майка Ли (Micah Lee), разработчик и специалист по компьютерной безопасности, решил раскрыть этот вопрос и потратил два года на соответствующие эксперименты.

Суть эксперимента

Грамотное вмешательство обнаружить очень трудно, а порой и невозможно. Но автор решил провести эксперимент, в рамках которого в течение двух лет возил с собой ноутбук, "ловушку для хакеров". Роль ноутбука заключалась в привлечении внимания злоумышленников и последующем их обнаружении. Ли хотел не просто увидеть, что к его ПК получили несанкционированный доступ, но и "поймать на горячем" каждого, кто попытается это сделать.

Так он планировал собрать технические доказательства, которые можно было бы использовать, чтобы выяснить тип атаки и, возможно, идентифицировать "нападающего". Во время перелетов ноутбук всегда оставался в багаже, причем на видном месте, чтобы каждый, кто пожелает получить доступ, мог это сделать.

В гостиничном номере устройство было на столе, даже когда постояльца не было в номере, так работники гостиницы могли, при желании, воспользоваться такой умышленной неосмотрительностью и попасться в ловушку.

Дополнительное внимание должны были привлечь множественные стикеры, которые Ли наклеил на ноутбук, они буквально кричали о свободе прессы и онлайн-безопасности.

В ходе этого эксперимента Ли три раза ездил в Европу и пять — в США, был даже в Пуэрто-Рико. Сколько раз багаж обыскивался в общей сложности — неизвестно, но за все время он получил восемь различных уведомлений от Управления безопасности транспорта, сообщивших, что багаж был досмотрен.

©Micah Lee
©Micah Lee

Ему не удалось обнаружить никого, кто бы попытался получить доступ к данным, хранящимся на ноутбуке. Но фактически отсутствие доказательств не говорит о том, что хакеры не пытались получить доступ, ведь возможно, кому-то просто удалось сделать это и остаться незамеченным.

Уже к конце эксперимента Ли выявил несколько возможных причин своей неудачи:

  • Возможно, кто-то все таки получил доступ, но система защиты и отслеживания была недостаточно надежной, чтобы зафиксировать это.
  • Потенциальные злоумышленники заметили, что на мероприятия и конференции Ли ходит с другим ноутбуком, и заподозрили неладное.
  • Но самой вероятной причиной, почему, скорее всего, не удалось обнаружить постороннего вмешательства, так это потому, что никто не пытался получить доступ к ноутбуку.

Взлом устройств и вмешательство в его работу в ходе путешествий, вероятно, происходит крайне редко, ведь это сложно и дорого. Для того, чтобы получить данные, хранящиеся на конкретном устройстве определенного путешественника необходимо осуществить нацеленную атаку.

Для этого, в свою очередь, понадобится не только последовать за "жертвой", скорее всего, за границу, но и осуществить скрытное наблюдение, подобрать подходящий момент, когда ноутбук останется без присмотра, ликвидировать защиту и проникнуть в устройство.

Риск быть обнаруженным и получить массу проблем в таком случае просто бьет все рекорды. Чтобы такой риск был обоснованным, нужно, чтобы на устройстве хранились как минимум корпоративные секреты или тайны государственной важности.

Для сравнения, другие типы взлома, к примеру, фишинг электронной почты, всего этого не требует. Злоумышленник может сразу нацелиться на тысячи пользователей, даже не покидая комфорт своего домашнего "офиса". При этом риск быть обнаруженным значительно снижается, да и доказать такое вмешательство, а уж тем более найти виновного, фактически невозможно.

Тем не менее, мониторинг устройства на предмет фальсификации, по мнению Ли, безусловно, стоит того. Даже если в конкретном случае вы ничего не найдете, это, тем не менее, увеличивает ресурсные затраты злоумышленников. Так им придется становиться избирательнее в своих мишенях, быть изобретательнее или вовсе отказаться от этой затеи.

Ли считает, что полезно будет объяснить методологию и технику, которую он придумал для выявления всевозможных фальсификаций. Это поможет обычному пользователю понять, как много способов вмешаться в работу ноутбука сегодня существует.

Фотографии ноутбука на столе в гостиничном номере ©Micah Lee
Фотографии ноутбука на столе в гостиничном номере ©Micah Lee

Принципы атаки

Если вы не используете полное шифрование диска на своем ноутбуке, любой, кто получит физический доступ к нему, сможет получить все данные и даже внедрить вредоносное ПО на компьютер, чтобы шпионить за действиями пользователя в будущем. Неважно, насколько сложный пароль установлен, потому что без шифрования злоумышленник может просто открутить крышку корпуса ноутбука, изъять жесткий диск и получить к нему доступ с другого компьютера.

Именно шифрование диска позволяет достаточно надежно защитить его от несанкционированного проникновения. Когда злоумышленник попытается получить доступ к имеющейся на вашем диске информации, попытка проникновения будет заблокирована. Главное при этом — чтобы кодовая фраза не была слишком простой и очевидной.

Однако и здесь не все так просто — такую защиту также можно обойти. Для этого преступнику, понадобится всего несколько минут. Итак, если зашифрованные данные получить не удалось, то можно исказить систему таким образом, чтобы при следующем входе, когда пользователь будет вводить тот самый код, его можно было перехватить. Представьте, вы приходите в свой номер, садитесь за ноутбук, чтобы посмотреть почту, вводите пароль и... вуаля, вы взломаны.

В то же время то, насколько эффективными будут действия злоумышленников в тот или иной момент зависит от множества факторов. К примеру, типа используемого компьютера, операционной системы, программного обеспечения для шифрования диска и конфигурации прошивки, используемой для загрузки компьютера.

Некоторые персональные компьютеры отличаются куда большими показателями безопасности и гораздо лучше противостоят хакерским атакам. К примеру, злоумышленникам придется потратить гораздо больше времени и ресурсов на дешифровку ноутбука с ОС Windows, зашифрованного с помощью BitLocker, чем на взлом ноутбука Mac, зашифрованного FileVault (на данный момент, во всяком случае) или ноутбука Linux, защищенного с помощью LUKS.

Ноутбук , который автор использовал, красным выделены жесткий диск и чип SPI, который содержит прошивку BIOS ©Micah Lee
Ноутбук , который автор использовал, красным выделены жесткий диск и чип SPI, который содержит прошивку BIOS ©Micah Lee

Какие же основные способы, посредством которых злоумышленник может физически проникнуть в ваш ноутбук?

Хакер может изменить данные на жестком диске. «Полное шифрование на диске», термин, используемый для общего доступа к таким системам, как FileVault, в действительности следует называть «почти полным шифрованием диска», поскольку всегда есть небольшой фрагмент винчестера, данные на котором не зашифрованы.

Когда вы включаете ноутбук, до того как диск будет разблокирован, компьютер загрузит программу из незашифрованной части, затем она просит пользователя ввести кодовую фразу. Именно такое ПО преобразует кодовую фразу в ключ шифрования и пытается использовать ее для разблокировки диска.

Если вы ввели правильную кодовую фразу, диск разблокируется, а остальная часть операционной системы (которая хранится уже в зашифрованной части диска) загружается. Если вы не знаете правильную кодовую фразу, нет способа разблокировать диск.

Но, поскольку программа, которая запрашивает кодовую фразу, не зашифрована, злоумышленник физически может использовать ноутбук, чтобы заменить ПО на вредоносную версию, которая для пользователя выглядит точно так же. Конечно, это требует определенной сноровки и времени на реализацию.

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

Компьютеры, поддерживающие так называемую «безопасную загрузку» например, Chromebook или Windows (с BitLocker), неуязвимы для такой атаки. При загрузке BIOS определяет, была ли изменена незашифрованная часть диска, и если да — загрузка прерывается. В то же время MacBook и ноутбуки с ОС Linux остаются беззащитными перед таким алгоритмом.

Когда пользователь включает компьютер, самая первая программа, которую выполняет компьютер — это именно BIOS. Задача этого компонента — инициализировать запуск всего остального оборудования — память, диски, модем Wi-Fi, видеокарта, USB-порты и пр. Только после такой активации запускается непосредственно операционная система.

Когда вы форматируете свой диск и устанавливаете новую операционную систему на компьютер, прошивка BIOS не изменяется. Это связано с тем, что программа вообще не хранится на жестком диске. Вместо этого ее "домом" становится небольшая микросхема флеш-памяти на материнской плате персонального компьютера.

Флеш-чипы с интерфейсом SPI имеют восемь контактов, в том числе один — для питания, один для чтения данных и один для записи данных. Это означает, что злоумышленник может отключить ваш ноутбук, открыть корпус и подключить свои собственные провода к штекерам микросхемы SPI для включения питания, а затем считывать и записывать данные (сам чип не оснащен системой защиты чтобы уведомить пользователя о "подмене").

Используя этот метод, злоумышленник с физическим доступом к ноутбуку может заменить прошивку BIOS любым вредоносным ПО, которым пожелает.

Итальянский производитель "шпионского" ПО Hacking Team был пойман за продажей таких вредоносных программ своим клиентам. В первую очередь, "заказчиками" являлись иностранные правительства государств с тревожной статистикой относительно соблюдения прав человека. Эта специальная прошивка гарантировала, что Windows всегда будет заражена вредоносными программами.

Если пользователь является целью Hacking Team, то даже форматирование диска и повторная установка Windows не смогут ликвидировать вредоносное ПО. Как только пользователь перезагружает устройство, прошивка вредоносного BIOS снова заражает недавно установленную ОС Windows одним и тем же вредоносным компонентом

Попытка сбросить прошивку BIOS прямо из чипа SPI, подключая его к BeagleBone Black, маленькому и недорогому внешнему компьютеру ©Micah Lee
Попытка сбросить прошивку BIOS прямо из чипа SPI, подключая его к BeagleBone Black, маленькому и недорогому внешнему компьютеру ©Micah Lee

Злоумышленники могут использовать и другие приемы для получения доступа к оборудованию и данным. Замена информации на жестком диске или прошивки BIOS вредоносными программами являются наиболее распространенными методологиями, но список прочих потенциальных атак ограничивается только креативностью и бюджетом злоумышленника.

Вот несколько примеров:

  • Замена прошивки прочих компонентов ПК, кроме BIOS, например, процессора, видеокарты, сетевой карты или жесткого диска.
  • Установка аппаратного кейлоггера. Для этого клавиатура подключается к специальной отслеживающей программе и материнской плате. Так среди всех записей, которые вы делаете посредством набора, можно будет выделить пароли и другую важную информацию.
  • Замена ноутбука его полной копией. Злоумышленник может заменить ноутбук, при введении данных на котором они буду автоматически отправлены преступнику и послужат для разблокировки вашего реального устройства. Когда пользователь заметит подмену, будет уже слишком поздно — преступники получат информацию.

Когда Ли начал этот эксперимент, он осознал, что при всем своем желании не может обнаружить все возможные типы фальсификаций. Поскольку несанкционированное использование данных на жестком диске или прошивка BIOS — это самые простые и самые дешевые методы, автор решил ограничить свой эксперимент этими двумя компонентами.

Повторная сборка компьютера ©Micah Lee
Повторная сборка компьютера ©Micah Lee

Методологические аспекты

В феврале 2016 года, незадолго до того, как Ли планировал вылететь в Испанию на Фестиваль свободы Интернета, он купил Lenovo IdeaPad S210 Touch за $700, чтобы использовать его в качестве "приманки".

План

Перед каждой поездкой он совершал следующие действия:

  • Обновление всего программного обеспечения на ноутбуке. Ли хотел, чтобы потенциальные злоумышленники увидели, что он использует современное программное обеспечение, хранящееся на небольшой незашифрованной части диска, и предположили, что он активно использует этот компьютер.
  • Включал ноутбук и не выключал его до завершения поездки. Так он избегал риска модификации своего BIOS, которое произошло бы во время перезагрузки.
  • Извлекал жесткий диск с ноутбука, подключая его к другому компьютеру и стараясь не изменять какие-либо данные. Так можно было бы зафиксировать текущее состояние диска.
  • Крепил BeagleBone Black или BBB (крошечный компьютер стоимостью $50, который отлично подходит для взлома аппаратных средств) к микросхеме SPI на материнской плате, используя его для сброса прошивки BIOS и сохранения точной копии данных с чипа.

Затем, во время поездки, Ли:

  • Помещал ноутбук в свой уже проверенный багаж.
  • Оставлял устройство без присмотра в гостиничном номере.

Когда он вернулся домой из поездки, Ли:

  • Извлекал жесткий диск из ноутбука, подключал его к другому компьютеру и снова записывал состояние диска. Если даже один бит данных на диске изменился, это можно было бы обнаружить.
  • Присоединял BBB к микросхеме SPI и снова сбрасывал прошивку BIOS. Затем он сравнивать образ прошивки, взятый перед поездкой, с образом, извлеченным после ее завершения.

Во время своих путешествий ЛИ документировал все происходящее: фотографировал положение ноутбука в багаже, в номере до и после своего ухода, хранил журналы сканирования своего жесткого диска. Была проделана колоссальная работа. Чтобы понять это, нужно рассмотреть особенности проверки жесткого диска.

Проверка жесткого диска на предмет несанкционированного доступа

Жесткие диски структурируются по отдельным «разделам» компьютера. Например, если вы устанавливаете Linux с шифрованием, диск, скорее всего, будет поделен на два сегмента.

Один из них — небольшой (часто менее 1 ГБ) незашифрованный раздел, называемый «/Boot». Здесь хранится ПО, запрашивающее кодовую фразу шифрования. Именно здесь злоумышленники могут располагать свои вредоносные программы. Второй сегмент диска — зашифрованная часть информационного массива.

После того, как пользователь разблокирует зашифрованный раздел правильной кодовой фразой, ему становятся доступны данные, также разделенные на секторы. Один из них называется "root" раздел, который содержит остальные файлы на компьютере, и второй, "swap", используемый только тогда, когда компьютер работает с дисками и накопителями.

В "начале" каждого жесткого диска, который зарезервирован для процесса загрузки, есть небольшой объем дискового пространства. Когда пользователь включает компьютер и загружается с жесткого диска, эта программа запускается.

В Linux ПО просто запускает другую программу "grub", хранящуюся в незашифрованном разделе "/boot". Именно Grub отвечает за загрузку операционной системы. Чтобы выявить постороннее вмешательство, нужно убедиться, что заголовок диска не был подделан.

В криптографии "хэш-функция" представляет собой функцию, принимающую вход любого размера и выводящую результат в фиксированном размере. Это "хэш" или "контрольная сумма". Один и тот же ввод всегда приведет к одному и тому же выводу, но если пользователь каким-либо образом изменит ввод, хотя бы один байт в нем, содержимое вывода будет совершенно иным. Пользователь может использовать эти контрольные суммы для обнаружения фальсификации.

Когда Ли начал этот проект, он решил загружать Windows 10 и Debian, популярное ПО от Linux, на ноутбуке. Иными словами, он установил обе операционные системы в разные разделы одного диска и при включении компьютера выбирал, какую ОС загрузить. Но в конечном итоге, он отказался от Windows и оставил только Debian.

Жесткий диск с ноутбука, извлеченный и подключенный ко внешнему USB-порту ©Micah Lee
Жесткий диск с ноутбука, извлеченный и подключенный ко внешнему USB-порту ©Micah Lee

Первой проблемой, с которой столкнулся Ли, был риск внесения изменений в данные при извлечении жесткого диска и его подключении к другому компьютеру. Чтобы избежать этого, ему пришлось изменить настройки по умолчанию, чтобы отключить автоматическую загрузку внешних дисков.

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

К примеру, в марте 2017 года, прежде чем отправиться в Амстердам для участия в Tor Project с разработчиками, добровольцами и защитниками анонимности в сети, автор получил определенные контрольные суммы.

Позднее, 10 дней спустя, после возвращения домой, Ли сгенерировал еще один набор контрольных сумм. Все числа совпали с изначальными, это значило только одно — за это время на жестком диске не произошло никаких изменений.

Проверка BIOS на предмет несанкционированного доступа

При подготовке проекта Ли собирался сбрасывать прошивку BIOS извне, используя BeagleBone Black и программу Flashrom, которая используется для чтения и записи данных, хранящихся на чипах и платах. Однако он столкнулся с очередной проблемой — у него не было всех необходимых знаний и навыков, связанных с электротехникой.

SPI, в котором хранится BIOS-прошивка ноутбука, имеет разъем для питания и еще один — для заземления. Когда ноутбук был выключен, он подключил питание и заземление к BBB, а затем включил BBB.

Он надеялся, что BBB обеспечит питание флэш-чипа SPI, позволяя считывать и записывать информацию прямо на этот чип. Но вместо этого BBB сразу отключился. Оказывается, что именно этот конкретный ноутбук был непригоден для этого — мощность чипа SPI не была изолирована от остальной системы.

Чтобы обеспечить питание этого чипа, Ли также необходимо было обеспечить его остальным компонентам материнской платы, и это требовало большей мощности, чем мог предоставить BBB. Это выводило Ли из себя, ведь одна из причин, по которой он выбрал Lenovo в качестве тестового ноутбука, заключалась в том, что ранее он уже проделывал аналогичные манипуляции с устройствами этого бренда.

Так Ли решил изменить стратегию — вместо того, чтобы сбрасывать прошивку BIOS, соединяя провода непосредственно с чипом SPI, он использовал возможности программного обеспечения под названием Chipec. Но эта стратегия имеет ряд существенных недостатков по сравнению с прямым подключением к чипу.

Чтобы использовать Chipec, Ли установил USB-накопитель с операционной системой Ubuntu. Далее он подключил его к системе с жестким диском ноутбука. После этого он поместил копию Chipec на карту памяти SD, подключенную к устройству. Оттуда он смог запускать определенные команду Chipec, чтобы сбрасывать прошивку BIOS и импортировать ее на SD-карту, в дальнейшем используя ее для подключения к другому ПК и получения информации.

Сброс прошивки BIOS с помощью chipec ©Micah Lee
Сброс прошивки BIOS с помощью chipec ©Micah Lee

Как только он успешно сбросил прошивку BIOS, то придумал новый план:

  • Перед каждой поездкой он извлекал жесткий диск с ноутбука, загружал на USB-накопитель Ubuntu и сбрасывал прошивку BIOS, следя за тем, чтобы сохранить копию на другом компьютере.
  • После возвращения из поездки, он повторял процесс, сбрасывая новый образ прошивки BIOS.
  • Он создавал контрольные суммы образов прошивки BIOS до и после поездок. Если контрольные суммы совпадали, он делал вывод, что изменения на жестком диске не вносились.

Конечно, все было не так просто. Оказывается, каждый раз, когда он загружал ноутбук через USB-накопитель с Ubuntu и сбрасывал прошивку BIOS, образ прошивки имел другую контрольную сумму. Чтобы выяснить, почему это происходит, он использовал программу под названием UEFITool. Это графическое ПО, позволяющее загружать образ BIOS, просматривать и редактировать данные, хранящиеся внутри, и извлекать их в отдельные файлы.

Проверка прошивки BIOS с помощью UEFITool ©Micah Lee
Проверка прошивки BIOS с помощью UEFITool ©Micah Lee

Для конкретного ноутбука каждая прошивка BIOS имеет определенный константный размер. Часть этого пространства используется для хранения BIOS, а остальная часть — для сохранения других данных, таких как настройки BIOS.

Если рассматривать две версии BIOS, которые имели разные контрольные суммы, Ли смог использовать UEFITool для извлечения аналогичных компонентов из обоих версий, а затем генерировал для них новые контрольные суммы. Он обнаружил, что была только одна небольшая часть изображений прошивки, которые отличались, и эта часть не включала никаких программ.

Оказывается, каждый раз, когда он включал ноутбук и открывал меню загрузки, чтобы дать команду загрузки Ubuntu с USB-накопителя, он сохранял информацию, связанную с загрузкой на USB-накопитель в этом разделе прошивки. Так эта информация каждый раз отличалась, из-за чего образы прошивки всегда имели разные контрольные суммы.

Поэтому он внес поправки в свой "план" по обнаружению несанкционированного доступа в прошивке BIOS. Чтобы сравнивать образы прошивки до и после поездки, ему нужно было бы открывать каждый образ в UEFITool, извлекать компоненты, создавать контрольные суммы для этих компонентов, а затем сравнивать эти контрольные суммы, чтобы убедиться, что они соответствует.

Выводы

Путешествуя с ноутбуком и проводя такой эксперимент, Ли проделал колоссальную работу. На анализ он тратил по несколько часов как до, так и после каждой поездки. За два года экспериментов ему так и не удалось никого поймать на горячем.

Сегодня существует еще один инструмент, которого не было, когда Ли начинал свой проект. Это приложение Havenis для Android. Его следует установить на "тестовый" смартфон, который можно оставлять в номере, когда вы идете по своим делам.

Приложение применяет все доступные датчики — микрофон, детектор движения и камеру — для обнаружения любого перемещения в комнате, где его оставил пользователь. При каких-то изменениях, ПО отправит уведомление на другой экстренный смартфон. Havenis — это отнюдь не совершенное ПО и здесь есть масса недочетов, например, ложное срабатывание, но оно работает достаточно эффективно.

Благодаря Debian и Ubuntu, а также инструментам dd, sha256sum, Fashrom, Chipsec и UEFITool Ли смог провести свой эксперимент практически без дополнительных вложений. Так кроме самого ноутбука, ему понадобился только набор устройств и инструментов, которые в общей сложности обошлись менее $100.

По материалам Medium