Большинство людей, знакомых с именем доктора Чарли Миллера и его работой, знают о нем как о члене хакерского дуэта, который может полностью дистанционно управлять вашим автомобилем, подобно детской игрушке. Если вы видели новостной репортаж о хакерах, удаленно заставляющих автомобиль внезапно ускориться или даже съехать с дороги, знайте, в этом участвовал доктор Миллер. Автор журнала Wired описал свой опыт общения (https://www.wired.com/2015/07/hackers-remotely-kill-jeep-highway) с доктором Миллером и его партнером Крисом Валасеком.
Миллер и Валасек написали подробный технический документ под названием Adventures in Automotive Networks and Control Units (http://illmatics.com/car_hacking.pdf), который описывает, сколько компонентов автомобиля – критических и некритических – можно контролировать, включая аварийный тормоз, кондиционер, индикаторные лампы, трансмиссию, развлекательные системы, тормоза и даже рулевое управление. Для многих из нас этот документ был самым глубоким анализом того, как работает и взаимодействует сеть компьютерных систем автомобиля. В более поздних итерациях они выяснили, как сделать это удаленно. Это был взлом автомобиля! Они даже выпустили собственные инструменты, чтобы упростить взлом для других.
Идея о том, что хакеры могут дистанционно управлять вашим автомобилем, не была сильно шокирующей, но, увидев, как два парня делают это со своего ноутбука на расстоянии 10 миль, люди осознали появление новой серьезной угрозы. Доктору Миллеру не нужно было активно продвигать идею о том, что эти методы в неправильных руках могут быть использованы для создания несчастных и смертельных случаев. До публичного разоблачения, сделанного доктором Миллером, компании не сильно беспокоились о безопасности автомобилей, которые выпускали (безопасность через безвестность была самой большой защитой). Исследования Миллера и Валасека это изменили. Производители автомобилей начали обращать внимание на негативную рекламу и стали относиться к информационной безопасности автомобиля более серьезно. Ходили даже слухи, что крупные компании могут подать в суд на тестировщиков, чтобы помешать дополнительным исследованиям и открытиям.
Когда я беседовал с доктором Миллером, он заверил меня, что на него и других, с кем он работал, никогда не подавали в суд, и даже не угрожали: «На любого можно подать в суд, но мы были очень профессиональны. Это честь и для них, и для нас. Они попросили не показывать некоторые детали в одной из наших будущих презентаций, но мы все равно это сделали, и никто не обратился в суд». Это не значит, что автомобильным компаниям понравилось то, что он делал. Несмотря на то, что доктор Миллер проводит одни из лучших публичных исследований в области взлома автомобилей, его никогда не приглашали рассказать о своих выводах. И однажды во время конференции, когда он попросил автомобильные компании о большей прозрачности в будущем, чтобы помочь автомобильным хакерам найти и искоренить больше ошибок, ответом был отказ. По причинам, которые, к сожалению, имеют тенденцию повторяться снова и снова в разных отраслях, те самые компании, которые могли бы извлечь максимальную выгоду из этих исследований, просто видели в них раздражителей, если не прямых врагов. К счастью, времена изменились, и доктор Миллер работает на Uber. Компания считает, что он поможет лучше защитить будущие автономные беспилотные автомобили.
Я впервые встретил доктора Миллера почти десять лет назад, когда он пытался стать высокооплачиваемым профессиональным искателем ошибок. Он получил степень бакалавра математики в Северо-Восточном университете штата Миссури (ныне Университет штата Трумэн) и докторскую степень по математике в Университете Нотр-Дам. Вы можете встретить доктора Миллера на прогулке в солнцезащитных очках в стиле Элтона Джона, а при знакомстве он непременно пошутит и будет забавно жестикулировать. Если вы думали о том, как может выглядеть профессионал по угону автомобилей, кандидат наук, вы вряд ли представляли себе Чарли Миллера.
До своей нынешней работы он пять лет трудился в Агентстве национальной безопасности (https://www.nsa.gov/), три года в компании Twitter, а еще несколько лет в консалтинговых и других фирмах. Опыт доктора Миллера и любовь к математике заставили его заинтересоваться криптографией, а сочетание этих двух факторов сделало его интересным для АНБ. Для тех, кто не знает, АНБ – ведущее агентство США по шифрованию/дешифрованию, а возможно, даже и мировой лидер в этой области. Залы АНБ полны самых ярких криптографов, и доктор Миллер оказался среди них.
Я спросил Чарли, как он стал многопрофильным специалистом в сфере ИБ и профессиональным автомобильным хакером, и вот что он сказал: «До АНБ я никогда не думал, что смогу этим заниматься [информационной безопасностью]. Я ее не изучал. АНБ наняло меня криптографом, и я думал, что это моя специальность. Предполагается, что в АНБ вы будете каждые полгода переезжать в разные офисы (т. е. отделы), чтобы ознакомиться с широким спектром технологий, которые интересуют АНБ. Они думали, что я выберу разные темы, но я пошел на хитрость, чтобы они обучили меня только информационной безопасности, а не криптографии. Другие темы ИБ казались намного интереснее, чем криптографические. Я обманывал своих руководителей, думая, что каждый офис – это совершенно новая тема, но вместо этого они были сосредоточены на нескольких более узких сферах ИБ. Через три года я столкнулся со многими классными штуками. Мне повезло, что я оказался в месте, где должен был учиться и получать за это деньги».
Я спросил доктора Миллера, как он заинтересовался взломом машин. Он сказал: «Я долгое время взламывал телефоны и компьютеры. Но демонстрация этого не вызывала никакого беспокойства зрителей. Однако, когда рулевое колесо и тормоз стали работать сами по себе, люди заволновались. Это был хак, который мне не пришлось рекламировать или продавать. Он продвигал сам себя и был доступен обычным людям. Мы не были первыми, кто взламывал машины. Мы построили свою работу на том, что обнаружили наши предшественники, чтобы использовать пределы того, куда это может нас привести».
На раннем этапе карьеры доктор Миллер сделал себе имя, выиграв не один хакерский конкурс Pwn2Own всего за несколько минут. Pwn2Own (https://en.wikipedia.org/wiki/Pwn2Own) – это конференция в Ванкувере, Канада. Его целью было предоставление денежных средств и других призов всем, кто мог взломать различные операционные системы и программное обеспечение, ошибки которых ранее не были публично известны. Каждый успешно продемонстрированный хак был новым «нулевым днем», который вожделен в хакерском мире и больше всего беспокоит вендоров.
На протяжении нескольких лет самым ярким событием конкурса Pwn2Own было участие доктора Миллера, который в течение менее чем нескольких минут использовал свои навыки, чтобы уйти с одним или несколькими крупными призами. Он делал это столько раз, что в конце концов конкурс стал известен как мероприятие, где каждый продукт будет взломан в течение пары минут после того, как доктор Миллер примется за работу. Несколько лет имя доктора Миллера было синонимом взлома автомобилей. Именно из-за его успеха во взломе некоторых из самых популярных операционных систем, браузеров и устройств люди обратили больше внимания, когда он начал говорить о взломе автомобилей. Его репутация опережала его. Не было сомнений, что он понимает, о чем говорит, и добьется успеха.
Секрет раннего успешного взлома доктора Миллера был связан с фаззингом. Существует множество способов поиска программных ошибок. Вы можете вручную испытать программное обеспечение путем анализа всей деятельности и вручную изменять входные сигналы для того, чтобы увидеть, к чему это приведет. Вы можете статически анализировать код, используя для проверки исходного кода ПО (или вручную просматривая его), которое ищет предопределенные ошибки кодирования. Или вы можете случайно наткнуться на ошибку при использовании программы в обычном режиме. На протяжении десятилетий эти три традиционных метода были способом обнаружения наиболее эксплуатируемых ошибок.
В конце 1990-х фаззинг стал невероятным источником ошибок, и любая программа разработчика программного обеспечения была обречена на несколько уязвимостей нулевого дня, если разработчики не тестировали собственные программы, прежде чем выпустить их. При тестировании другая программа (фаззер) автоматизирует процесс введения всех видов различных входных данных, обычно не ожидаемых программистом или языком программирования (например, очень длинных, содержащих случайные управляющие символы, «зарезервированные слова кодирования» и т. д.), в активную версию целевой программы, чтобы вызвать ошибку. Каждая найденная ошибка после этого проверяется программой фазз-испытания или вручную человеком, для того чтобы увидеть, можно ли использовать условие ошибки для того, чтобы эксплуатировать программу или основную операционную систему.
Вот как Доктор Миллер описывает свои успехи в фаззинге: «Я узнал о фаззинге в АНБ. Он понравился мне, потому что находил ошибки быстро и очень легко. Я запускал программу, шел смотреть телевизор, потом засыпал, просыпался и смотрел на результаты. Примерно в 2010 году на конференции Blackhat (http://blackhat.com/) я использовал фаззинг на сцене против некоторых конкурентов, чтобы найти ошибки. Они при этом использовали статический анализатор. Мне потребовалось несколько минут, чтобы фаззинг сработал, а через час я выиграл».
Примечание. Если вы заинтересованы в использовании программного обеспечения для фаззинга, доступно множество бесплатных и коммерческих продуктов. Microsoft предлагает достойный фаззинг бесплатно по адресу: https://www.microsoft.com/en-us/springfield/.
Я спросил доктора Миллера, почему его первые исследования были направлены в основном на продукты Apple. Он сказал: «Тогда у Apple было немного средств информационной безопасности, особенно защиты памяти в коде. И они не проводили собственные тесты. Я сделал это для них и нашел много ошибок, которые мог бы использовать в Pwn2Own. Microsoft и Microsoft Windows провели тестовый фаззинг, и их программы теперь имеют встроенную защиту памяти. Я не был нацелен на Apple, просто их ошибки было очень легко найти, а мне нравится легкий взлом».
В 2007 году он стал человеком, удаленно взломавшим iPhone и телефон на платформе Android в тот же день, когда он вышел (в 2008 году). Позже в этом году доктор Миллер нашел уязвимость нулевого дня в браузере Safari MacBook Air и выиграл 10 000 долларов. В 2009 и 2010 годах он снова взломал браузер Safari от Apple и продолжил успешно взламывать iPhone. В 2011 году он обнаружил дыры в безопасности iOS на iPad и iPhone. По сути, он показал, как приложение Apple может злонамеренно украсть информацию или иным образом взломать владельцев устройств Apple. Он создал демонстрационную программу, которую разместил в Apple App Store.
Работа доктора Миллера по поиску ошибок вызвала у Apple гнев. Они обвинили его в нарушении условий соглашения с разработчиком (что, в сущности, было правдой) и отняли у него право разрабатывать и публиковать их ПО. Он рассказал мне об этом инциденте: «Они сказали, что забирают мой ID разработчика Apple на год. Когда я подал заявку на восстановление, его не вернули. У меня до сих пор нет ID разработчика Apple». Многие люди, наблюдавшие за этим, полагали, что Apple усвоила печальный урок и примет доктора Миллера обратно.
Когда я впервые встретил Чарли, он отчаянно пытался получить хорошо оплачиваемую работу, связанную с поиском ошибок. В то время очень немногие люди зарабатывали на жизнь таким образом. Большинство людей, как доктор Миллер, вообще не получали зарплату. Было очень мало программ Bug bounty, предлагаемых вендорами публично, как сегодня. Единственные, кто получал большие деньги за новые уязвимости нулевого дня, были злонамеренные хакеры, часто спонсируемые плохими парнями и преступными группами. Иногда хакер «в белой шляпе» мог продать найденные ошибки законным компаниям, а затем перепродать их по самой высокой цене вендорам, чтобы они могли изучить ошибку и исправить ее. Это продолжается и сегодня.
Но доктор Миллер пытался попасть в Apple, Microsoft или другую компанию, где его энтузиазм и опыт были бы оценены по достоинству. По большей части этого не произошло, по крайней мере так, как он изначально надеялся. Но в итоге он получил работу в Twitter и Uber. Попутно Чарли выдвинул на первый план необходимость в том, чтобы профессиональные искатели ошибок получали возмещение за свои усилия. Он был если не ведущим инициатором, то как минимум очень важной частью этого процесса. Он даже начал кампанию «больше никаких бесплатных патчей». Сегодня почти у каждого крупного разработчика ПО есть платная программа для поиска ошибок, и хорошие искатели ошибок могут найти постоянную, хорошо оплачиваемую, законную работу.
Я спросил доктора Миллера о разочаровании тех дней, когда ему приходилось выполнять работу консультанта, вместо того чтобы найти постоянную работу, соответствующую его опыту и таланту. Он рассказал: «В итоге я стал консультантом-путешественником, а это неплохо для начала карьеры. Это помогает узнать множество компаний, их деятельность и культуру. Мне заплатили за поиск ошибки только один раз, в 2007 году. Это была ошибка, которую я нашел за пределами Pwn2Own. Я быстро обнаружил, что мне нравится выступать на конференциях даже больше, чем получать деньги. Для меня было важнее говорить об этом, делиться с людьми, чем молча зарабатывать».
Если вы посещали какие-либо из его презентаций или конференций, то знаете, что доктор Миллер любит веселить, развлекать и обучать аудиторию. Он сказал мне: «Как только я нахожу где-нибудь пять ошибок, то теряю интерес и двигаюсь дальше». Попутно он обнаружил другие уязвимости безопасности в таких областях, как Near Field Communication (NFC). Он также опубликовал три книги (https://www.amazon.com/Charlie-Miller/e/B0085NZ1PS/), которые охватывают взлом Mac, iOS и фаззинг.
Я закончил свое интервью с доктором Миллером последним вопросом: думает ли он, что автомобили станут достаточно безопасными в ближайшее время? Он ответил: «Автомобили ничем не отличаются от компьютеров, а мы до сих пор не знаем, как их полностью защитить. Автомобили больше похожи на атакуемые сети, поскольку содержат много компьютеров. Дело автомобилей – это особые вопросы физической безопасности. Ставки высоки. Я не могу уберечь вас от столкновений, но могу смягчить удары многими способами. Вы можете возиться с развлекательной системой, но, если мы сделаем все правильно, вам не придется разбираться с тормозами и другими крайне важными системами».
Верный своим ранним скрытным корням в АНБ, он не сказал мне, над чем работает в Uber, но я думаю, что компания и ее пользователи окажутся только в плюсе.