В ходе дискуссий о причинах крушения российского Аэробуса в Египте возникла любопытная версия о террористах или спецслужбах, которые могли получить удаленный доступ к управлению самолетом ("хакнуть" бортовой компьютер) и "воткнуть в землю".
Исходя из той информации о катастрофе, которая есть на данный момент, версию о "хаке" можно смело отбросить - никаких сообщений от пилотов о том, что они потеряли управление и самолет начал совершать маневры "сам собой", диспетчерам не поступало. Кроме того, разброс обломков на большой территории говорит о том, что самолет оказался поврежден еще до столкновения с поверхностью.
В общем, версия о "хакерской" природе данной конкретной катастрофы пока не получает никаких подтверждений.
Но сам по себе вопрос о возможности получить удаленный доступ к управлению самолетом заслуживает внимания. В наш информационный век, когда к интернету подключается все вплоть до утюгов, а потом все подключенное к всемирной сети рано или поздно взламывается, вопрос информационной безопасности бортовых компьютеров самолетов - не праздный и не шуточный.
Интересный текст по этому вопросу есть в блоге Касперского -
Взлом самолета: уже пора бояться или можно повременить?Вывод специалистов Касперского такой - возможность получить несанкционированный доступ к управлению полетом (то есть "хакнуть" бортовой компьютер самолета), даже из салона, на практике ничем не подтверждена. Случаи программных ошибок - были, а случаев взлома до сих пор не зафиксировано.
Но "случаев не зафиксировано" - это еще не значит "невозможно".
Так возможно ли все-таки "хакнуть" самолет или нет?
Сразу скажу - бортовых компьютеров Аэробусов, Боингов и прочих "суперджетов" я не разрабатывал и документацию к ним тоже не читал. Но общую теорию вычислительных систем и сетей передачи данных знаю. Моя гражданская специальность - комплексы, системы и сети; моя ВУС (для тех, кто знает, что это такое) - АСУВ. На практике занимался и системным администрированием и проектированием и разработкой.
Поэтому, не вдаваясь в подробности, расскажу про общие принципы безопасности и взлома (хака) вычислительных систем применительно к бортовым компьютерам воздушных судов.
Итак:
Возможен ли взлом с земли?Чтобы специалист (хакер), находящийся за пределами самолета (на земле), получил доступ к бортовому компьютеру лайнера, должен существовать либо специализированный интерфейс управления, предусмотренный разработчиками бортового компьютера, либо на борт самолета предварительно нужно установить некоторый "хакерский модуль", который будет подключен к бортовому компьютеру самолета и обеспечит данный интерфейс.
Если такого интерфейса, предусмотренного разработчиками, либо обеспеченного специально установленным модулем нет, то доступ к управлению полетом практически исключен.
Грубо говоря, бортовой компьютер самолета должен с самого начала "слушать" землю, чтобы удаленное управление стало возможным.
А чтобы слушать - нужны уши. То есть интерфейс. Как физический - в виде приемника сигналов, так и программный, в виде протокола и кода, выполняющего передаваемые по протоколу команды.
Если самолет изначально "глух" к сигналам с земли, то управлять им удаленно нельзя. Так же, как нельзя докричаться до глухого человека, который при этом даже не смотрит на вас. Кричите, сколько угодно - бесполезно.
Рассуждения о том, что в бортовой компьютер самолета можно загрузить какой-то программный код, послав его в эфир - просто глупость. Для загрузки программного кода тоже должен существовать специальный интерфейс, установленный заранее, когда самолет еще был на земле. Для загрузки кода в бортовом компьютере самолета должен быть загрузчик этого кода.
Просто так "переслать байты по воздуху и закинуть в произвольный компьютер", не имея интерфейса - нельзя. Это разновидность телепортации, которая науке пока неизвестна. Вот когда откроют телепортацию - тогда будет другой разговор. Но даже тогда телепортировать на борт самолета бомбу будет проще, чем "забросить" в бортовой компьютер на высоте 10 километров хакерский код.
Таким образом, вопрос о возможности несанкционированного доступа к управлению полетом с земли сводится к вопросу наличия заранее предусмотренного интерфейса.
Существует ли интерфейс удаленного управления самолетом?Теоретически разработчики Боингов, Аэробусов и прочих "суперджетов" могут создать такой интерфейс. Но какой в этом смысл?
Зачем им это делать?
Само существование такого интерфейса - это чудовищная дыра в безопасности. Если такой интерфейс есть - рано или поздно о нем узнают. И будет грандиозный скандал. Потому что это открытый путь для террористов и спецслужб чтобы угонять или "валить" самолеты.
Представьте, что будет, если мир узнает о существовании интерфейса для удаленного управления Аэробусами. Сразу будут запрещены полеты Аэробусов в большинстве стран, начнутся расследования на предмет того, кто и как может пользоваться этим интерфейсом, компании начнут отменять контракты на закупку новых Аэробусов "от греха подальше" и будут активнее покупать Боинги. На фоне скандала, паники и отмены контрактов акции Аэробуса рухнут как подбитый самолет.
Внимание, вопрос - Аэробусу это нужно?
Зачем разработчикам самолета своими руками рыть себе яму, создавая почву для грандиозного скандала, падения акций и сдачи доли рынка конкурентам?
От существования интерфейса удаленного управления самолетом его разработчики не получат ничего, кроме проблем безопасности и почвы для скандала.
Можно, конечно, рассуждать о тренде на беспилотную авиацию и удаленное управление "всем и вся", но про пассажирские беспилотники пока даже речи не идет. Сначала должны войти в жизнь автомобили без водителей, а в авиации удаленное управление сперва появится на грузовых самолетах и только потом можно будет говорить о возможности удаленного управления гражданскими лайнерами, если, конечно, кто-то скажет, какой в этом вообще смысл.
В общем, теоретически интерфейс удаленного управления гражданским лайнером может существовать, но лично я не вижу в нем смысла для авиапроизводителей и очень сомневаюсь, что на эту разработку они стали бы тратить деньги, силы и рисковать своей репутацией.
В каких-то экспериментальных разработках - вполне возможно. Но не в серийных моделях.
Может ли "хакер" установить модуль удаленного управления?Теоретически - да. Но это очень сложная инженерная задача.
Во-первых, чтобы установить на самолет некий модуль, принимающий управляющий сигнал с земли - нужно получить доступ к самолету. Это может сделать только обслуживающий персонал.
Во-вторых, надо подключить модуль, принимающий сигнал, к бортовому компьютеру и это уже гораздо более сложная задача, для этого недостаточно просто получить доступ, надо еще знать, как и куда этот модуль подключать.
Но самое главное - этот модуль нужно разработать. Для этого нужно знать устройство и систему команд бортового компьютера, протоколы передачи данных, а это закрытая информация.
Дело в том, что бортовой компьютер самолета - это специализированная система, а не "персоналка", которая стоит у каждого дома. Документации по системам команд, интерфейсам и протоколам стандартных компьютеров - вагон и маленькая тележка, их изучают в ВУЗах, их можно освоить даже самостоятельно, скачать документацию, запрограммировать, отладить. С бортовыми компьютерами авиалайнеров все совсем не так.
Конечно, если задаться целью, то можно и это сделать. Но времени и ресурсов для этого потребуется очень много. Может так получиться, что собственный самолет купить дешевле, чем разработать интерфейс удаленного управления и незаметно установить его на чужой борт.
И опять же возникает вопрос - зачем?
Если цель состоит в том, чтобы просто "воткнуть самолет в землю", то нужен ли вообще какой-то модуль удаленного управления полетом?
Гораздо проще заложить бомбу и не париться.
Как для бомбы, так и для установки приемника сигнала нужен доступ к самолету. Только в случае с бомбой ничего особенного больше не требуется, никакой сложной разработки, никаких знаний бортового компьютера, просто заложил взрывное устройство, поставил на нужное время или на внешний сигнал - и все.
Полноценное удаленное управление может быть необходимо для выполнения каких-нибудь более сложных задач - например, для угона самолета или для совершения такого теракта, как 11 сентября. Но это скорее в сфере возможностей спецслужб, чем террористов. Слишком сложная задача.
Таким образом: угон самолетов, влетевших в башни ВТЦ или угон малазийского лайнера весной прошлого года - здесь можно рассуждать о том, не было ли это сделано удаленно через специализированный модуль, установленный спецслужбами на борт заблаговременно. Но катастрофы с крушением самолетов - для них модуль удаленного управления - это слишком сложно. Заложить бомбу - на порядок проще и надежнее.
Можно ли получить управление самолетом из салона?В салоне современных самолетов есть разъемы для подключения различных устройств. Обычно USB. Иногда, говорят, встречаются разъемы RJ-45. Неспециалисту может показаться, что через эти разъемы можно подключиться к бортовому компьютеру, нужно только знать какие-нибудь секретные коды, IP-адреса и порты.
Именно этот вопрос затрагивался в статье Касперского. Один хакер утверждал, что ему удалось таким образом подключиться к бортовому компьютеру лайнера. Но на практике этого не было подтверждено.
Вообще, если бортовой компьютер проектировали хотя бы чуть-чуть грамотные люди, ну хоть сколько-нибудь, то всевозможные мультимедиа-системы, подключение к которым и осуществляется в салоне, не должны быть связаны с бортовым компьютером от слова совсем.
Бортовой компьютер, управляющий полетом и разные "развлекушки" - это должны быть две совершенно разных сети. И тогда получить доступ к бортовому компьютеру через салонный USB-порт или RJ-45 - это будет все равно, что получить доступ к домашнему комьютеру через розетку для электроплиты.
Или вот другой пример - можно ли взломать компьютер, подключив в соседнюю розетку электрогитару и играя какие-нибудь особенно хакерские аккорды?
Для какого-нибудь фильма про хакеров - сюжет интересный. Взлом компьютера через электрогитару, взлом мобильного телефона через стиральную машину, доступ к банковской ячейке через пароварку и так далее.
Но это из разряда страшилок для обывателей.
Если бортовой компьютер лайнера каким-то образом сообщается с разъемами в салонах и управляющие команды через салонные USB и RJ-45 коннекторы могут так или иначе достичь компьютера, управляющего полетом - значит его разработчики просто безграмотны и их не следовало допускать даже до проектирования газонокосилок.
Почему же тогда так легко ломаются персональные компьютеры и мобильные телефоны?Да, персоналки и мобилы обычно взламываются довольно легко. И по этой легкости взлома неспециалисты зачастую судят о возможности взлома любых компьютерных систем.
Поясню, в чем отличия.
Большинство персональных компьютеров управляются системами семейства Windows. Эта система изначально проектировалась как очень открытая для программирования, потому она и получила широкое распространение. Система Windows представляет собой сплошные интерфейсы для управления. Можно сказать, что это вообще один сплошной интерфейс. В этом и состоял замысел ее авторов - создать систему, которая позволит разработчикам приложений делать с компьютером "все, что угодно". Вот они и делают.
Уязвимости системам семейства Windows добавляет и политика компании Microsoft по обеспечению совместимости со старыми версиями. То есть новые версии зачастую наследуют дыры старых. Потому что если эти дыры заткнуть, перестанут работать старые программы, которые этими дырами пользовались для тех или иных целей.
Многое в системе Windows просто не было продумано с самого начала, потому что в 1984 году никто не предполагал, что система получит такое распространение. Когда систему только начинали делать, думали лишь о текущих задачах. Персональные компьютеры тогда были диковинкой, про их объединение в мировую сеть вообще не особенно задумывались, поэтому даже не предполагали, что через те или иные интерфейсы доступ к ресурсам компьютера будут получать вирусы или хакерские программы.
Совершенно другой пример - системы семейства Unix/Linux. Эти системы изначально разрабатывались для компьютерных сетей и сам компьютер в этих системах рассматривается как сеть устройств. Поэтому разграниечение доступа в "юниксах" продумано очень неплохо. И вирусов под Unix/Linux практически не существует.
Один из администратов, с которым я работал, рассказывал, что видел вирус под Linux, который надо было специально собирать из "сырцов" под рутом или суперюзером. Оцените, кто понимает. Отличный вирус! Собрал - и пользуйся на здоровье. Понравилось - отправь другим вместе с инструкциями по установке.
Целенаправленный взлом систем на базе Linux/Unix - это, конечно, случается. Но это, как правило, результат плохой настройки конкретного экземпляра системы, когда администратор поленился закрыть доступ или широким жестом выдал тем или иным пользователям слишком много прав. Либо создал слишком простые пароли.
Лично у меня был случай - настраивали новый сервер, поставили систему, назначили для "рута" какой-то очень простой пароль, решили "утром поменяем" и пошли домой. Утром обнаружили, что пароль поменялся уже без нас. Сделали оргвывод и начали устанавливать систему заново.
Вывод из вышесказанного такой:Если разработчик и администратор вычислительного комплекса не хотят давать к нему доступ извне - все внешние порты и интерфейсы будут надежно перекрыты. Либо их не будет вообще, даже на уровне проекта.
Все в руках разработчиков.
Любой цифровой компьютер, а бортовые компьютеры самолетов, насколько мне известно, цифровые - это конечный автомат. Что такое конечный автомат - желающие могут найти литературу и ознакомиться с теорией.
Вкратце - конечный автомат - это машина с конечным числом внутренних состояний и соответственно с конечным числом внешних подключений (интерфейсов) для передачи извне команд и данных. А это значит, что разработчики вполне могут предусмотреть все возможные внешние подключения и поступающие с них команды и учесть их с точки зрения безопасности. Тем более, что все эти внешние подключения (интерфейсы) возникают не сами собой, а проектируются теми же разработчиками.
Простор для хакера открывается там, где разработчик изначально предполагал, что интерфейсом будет пользоваться честный человек с добрыми намерениями, а в реальности вышло по-другому.
Но бортовые компьютеры самолетов, я так думаю, разрабатывали не самые глупые и наивные люди, которые позаботились о безопасности.
Во всяком случае, несанкционированный доступ к управлению самолетом никому пока найти не удалось.
Я полагаю, что интерфейса, позволяющего подключиться к бортовому компьютеру лайнера - ни в салоне самолета, ни тем более с земли, просто не существует. Причины я уже назвал.
И для террористов задача установки модуля удаленного управления самолетом на мой взгляд слишком сложна.
Если бы террористы могли решать такие сложные задачи как удаленное управление самолетами, у них бы и другие технически сложные системы уже появились. Управляемые ракеты, например.
Не бывает такого, чтобы разработать и установить технически сложное устройство на самолет смогли, а по Сирии и Израилю стреляли бы газовыми баллонами и ракетами, летящими "куда попало".
Что же касается спецслужб - они могут.
Вот только станут ли спецслужбы ронять обычный самолет небольшой российской авиакомпании?
Поэтому...На самолетах надо опасаться неисправностей самого самолета, ошибок экипажа и плохих погодных условий.
Хакеров, способных "воткнуть самолет в землю", можно пока не бояться. Касперскому об их существовании ничего не известно, я тоже в них очень сомневаюсь.
Хакеров нужно опасаться, когда вы вставляете кредитку в банкомат на улице или в терминал сомнительного магазина. И когда храните ценные данные на компьютере, имеющем выход в Интернет, забывая о резервных копиях. И когда нажимаете на разные ссылки, приходящие почтой и открываете приложения к письмам. Вот в этих случаях хакеров опасаться нужно.
А ответ на вопрос "можно ли хакнуть самолет" - пока что нет.