Для чего взламывают ваш автомобиль, и другие опасности «умных» гаджетов
Вообще говоря, автомобиль угнать легко. Даже очень легко. Ни воющие сигнализации, ни «жучки», ни блокираторы не остановят профессионала, который действительно настроен на вскрытие вашей машины. По сути, пока производители автомобилей не займутся безопасностью по-настоящему, наше ближайшее будущее – продолжать бояться.
Например, угон автомобилей высшего класса сегодня делается вообще без вскрытия. Сначала подносят джаммер («глушилку»), который гасит все сигналы автомобиля, затем машину аккуратно загоняют в фургон и увозят. Блокировка колёс не поможет – машину просто затянут волоком или поднимут манипулятором. На базе, куда увозят добычу, всё хорошо изолировано, никакие сигналы не проходят, и машину разбирают по частям, заведомо обладая информацией, где есть «закладки». Обычно точки размещения «жучков» и встроенных систем сигнализации – это секрет производителей, но еслиесли автомобиль пользуется спросом в качестве источника запчастей или для перепродажи, его просто переберут подетально и всё найдут. Поэтому в случае простого угона вас ничего не спасёт лучше, чем примитивные средства образца XIX века. Например, гараж или охраняемая стоянка.
Фишка же в том, что в прекрасном новом мире угон сам по себе – это не самая большая проблема.
Автомобиль как дверь в вашу жизнь
Удивительно, но целью взлома автомобиля может быть не угон. Современный «подключенный» автомобиль, то есть любой автомобиль, который имеет доступ к Сети напрямую или через через подключаемые устройства (телефон или навигатор), в том числе ваш телефон – это уже потенциальный объект для атаки. Атаки и их цели могут быть самыми разными – например, украсть данные ваши кредитной карты или ваши контакты из телефонной книги. Автомобиль послужит не более чем «дверью».
Мир кибербезопасности – это не просто прямая атака вируса и прямая защита антивируса. Например, существуют вирусы, у которых нет тел, нет файла, который нужно запустить. Они просто существуют в памяти, а потом стирают сами себя, произведя необходимые действия, например, подготавливая почву для следующего куска кода. Каждое отдельное действие в принципе не является опасным, но получающаяся последовательность приводит к эксплуатации уязвимости, краже данных или другой манипуляции.
Кроме того, подключенный автомобиль служит источником заработка денег для «серых» сервисов. Это тоже очень интересная технологическая история. Попробуем объяснить на примере.
Итак, я покупаю европейский или американский автомобиль хорошей марки, «умный», позволяющий открывать двери или заводить двигатель через мобильное приложение. Чаще всего в нём есть скрытая функция (штатная, но предназначенная только для самих автопроизводителей) – возможность «разогнать» двигатель, добавив лошадиных сил. В какой-то мере это результат маркетинга: для крупных производителей дешевле выпускать одну платформу под модели разного уровня, а затем программно настраивать её, включая или выключая различные опции, в том числе делать силовые агрегаты более или менее мощными путём изменения параметров смеси и впрыска. Кроме того, в Европе сейчас популярно покупать менее мощные автомобили, потому что они тратят меньше топлива, кого-то волнует экология, влияние на окружающую среду - и одна и та же модель на европейском и азиатском рынке может иметь разные программные ограничения мощности. Хотя на деле это ровно одна и так же машина с единой аппаратной платформой.
Поскольку настройки производятся исключительно программным путём, дополнительные лошадиные силы можно «включить», и именно этим занимаются серые сервисы. Это не самая простая задача – нужно передвинуть несколько байтов на разных участках кода, причём передвинуть их правильно, чтобы мощность мотора соответствовала моментам переключения передач и настройкам головного компьютера. «Серые» сервисы, которые работают неофициально, могут не знать всех нюансов – они накинут 40 сил, но коробка «умрёт» через следующие 5000 км. И этом не гарантийный кейс – официальный дилер, к которому вы обратитесь за ремонтом, легко обнаружит вмешательство. Методика «прокачки» в данном случае – это тот же самый хак. Специалисты «серого» сервиса находят в коде уязвимость, через которую можно вставить свой собственный элемент кода, а затем – авторизоваться как производитель.
Современный мир стал киберфизическим – цифра влияет на физический мир, а изменение нескольких байтов кода может передвинуть автомобиль или выключить свет в доме. Автомобиль в данном контексте – это просто ответвление мира Интернета вещей. Вещь в новой реальности умеет сама выходить в Интернет, сама передавать данные, сама получать их и исполнять какие-то команды, и всё это работает без участия человека. Более того, участие человека невозможно, потому что всё происходит на таких скоростях, когда человек будет попросту тормозить систему, понижая эффективность всего и сразу. Да и контроля это не добавит ни на йоту: человеческого внимания просто не хватит на охват взаимодействия даже устройств в обычной комнате вашей квартиры. И в рамках этого «умного обесчеловечивания» проблемой почти всегда является не вирус, а уязвимость, которую можно использовать в преступных целях.
И ликвидировать эту проблему можно – и нужно – априорно. Контролировать атаку ещё до того, как она совершилась.
Имплантированная безопасность
Идея «Лаборатории Касперского» состоит в том, чтобы перейти от дополненной безопасности к интегрированной. То есть не писать код, который будет «охранять» уже существующий код, а сразу писать код так, чтобы в нём не было уязвимостей, а если бы и были, то использовать их было бы невозможно.
Дело в том, что производители некоего продукта в первую очередь задумываются над функциональностью. А безопасность – это не функциональное требование, из-за чего о нём думают в самом конце, когда уже закончили работу над основным продуктом. Получается, что вся архитектура продукта, весь уже созданный код требует какого-то дополнения, которое должно контролировать всё написанное прежде. Сделать это качественно практически невозможно, поэтому нужно закладывать условия безопасности, так же как и условия функциональности, в самом начале, и строить архитектуру продукта, исходя из этих условий.
Представьте себе, что продукт уже готов, и компания нанимает тестеров, чтобы проверить его безопасность. Они выносят вердикт: всё «дырявое». Что делать? Переделывать всё заново? Конечно, нет, потому что есть законы рынка, есть уже вложенные инвестиции, и компания говорит: ладно, запускаем! В результате на 1000 строк кода приходится в среднем 10-20 дефектов, микродефектов, багов, и считается, что это некий приемлемый уровень.
Конечно, существует возможность писать проверенный, верифицированный код. Есть языки, позволяющие писать программы, которые будут писать код. Этот код будет соответствовать некоей математической модели, устойчивой к различного рода угрозам. Правда, всё равно возникает вопрос: как написан сам изначальный код, не даст ли он возможность написать код, в котором сразу заложена уязвимость. Такая опасность есть, но всё равно это более надёжно, чем код, написанный человеком.
Помимо уже существующих дефектов, есть другой уровень. Бывает так, что на данный конкретный момент уязвимости нет, но затем технология шагает вперёд – и «пробивает» дыру в коде. Простой пример: все системы шифрования, которые могут быть дешифрованы за номинальное время, неустойчивы к подходам, выполненным на квантовом компьютере. Потому что ему не нужно время для перебора. Положим, некий пароль из 20 символов устойчив ко взлому примерно на 50 лет для перебора на скалярном или суперскалярном компьютере, где всё происходит последовательно. Квантовый компьютер работает по-другому, все операции он делает одновременно, и уже существуют 15-кубитные машины, которые могут решать небольшие задачки. Пока эта технология на зачаточном уровне, но потенциально она может навредить или наоборот обезопасить системы, которым сейчас ничего не угрожает.
Так или иначе, безопасность любой системы должна быть заложена изначально. У «Лаборатории Касперского» есть технологии, которые позволяют осуществить такой подход. Причём это может быть как включение технологий компании в кастомную разработку, так и просто готовое решение, интегрируемое в код.
Например, у «Лаборатории Касперского» в пуле разработок есть безопасная операционная система на основе микроядерной архитектуры; «мотор» безопасности встроен в неё на уровне ядра. Существуют и другие безопасные ОС для локальных задач, и среди них есть хорошие решения – но это решения узкоспециализированные и очень дорогие. Компания же предлагает систему, которую можно применить где угодно – она совместима с процессорами Intel и ARM, существует даже адаптация её встроенной системы безопасности для Linux.
Гигиена превыше всего!
Конечно, систему можно взломать не только посредством поиска уязвимостей. Взломать можно, например, интерфейс, и это относительно нетрудно, если преступник знает логику обработки данных за этим интерфейсом. Скажем, систему распознавания лица iPhone в теории можно обмануть с помощью отпечатанной на 3D-принтере трёхмерной модели лица владельца. Другое дело, что полученный таким образом мандатный доступ – это лишь один вектор атаки. За ним может быть ещё целый веер доступов, например, усиленная авторизация, дополнительное шифрование, проверка, что может делать залогинившийся и так далее. Методик проверки – множество, поэтому взлом интерфейса не означает, что злоумышленник сразу становится хозяином системы.
Так что «хакерские» обходы гораздо более распространены, чем прямые взломы. Зачем иметь дело с моделью, имитирующей лицо, чтобы открыть интерфейс и наткнуться на другие защиты, если эффективнее сразу найти уязвимость в коде? Кроме того, всегда есть физический уровень безопасности – никто не отменяет шпионаж, саботаж и так далее. Это задача «охраны периметра».
Впрочем, если вы — обычный пользователь и ваш компьютер вряд ли является носителем сверхсекретных данных о новых военных разработках, то для минимизации возможности взлома достаточно соблюдать банальную цифровую гигиену. Как личная гигиена резко снизила количество пандемических эпидемий в Средние Века, так кибергигиена снимет большую часть проблем, связанных со взломами, доступом к личной информации, переписке, аккаунтам в социальных сетях и так далее. И действия кибергигиены очень просты: достаточно подбирать сложные, алогичные пароли, внимательно смотреть, что приходит в почту или социальные сети, проверять дополнительной связью разные просьбы о помощи от мнимых родственников, а также устанавливать обновления ПО.
Если соблюдать простые правила, то вашу машину, скорее всего, не угонят цифровыми методами, а почту – не взломают брутфорсом. А от тех злоумышленников, которые могут обойти ваши пароли, если захотят, помогут высокотехнологичные методы – схемы безопасности, интегрированные в софт и другие современные подходы. Известная поговорка звучит «На бога надейся, а сам не плошай». В данном случае можно сказать: «Сам не плошай, но и на технологии надейся».
Неоценимую помощь в подготовке статьи нам оказали сотрудники «Лаборатории Касперского: старший менеджер по развитию бизнеса департамента перспективных технологий Сергей Кравченко, старший исследователь безопасности систем промышленной автоматизации Владимир Дащенко и руководитель пресс-службы в России и странах развивающихся рынков Андрей Булай.