В нашем блоге на Хабре мы не только рассказываем о развитии своего продукта — биллинга для операторов связи «Гидра», но и публикуем материалы о работе с инфраструктурой и использовании технологий.
Немецкий журналист и хакер Ляйф Риге (Leif Ryge) написал для издания Ars Technica интересный материал о том, что современный подход к организации обновлений программного обеспечениях несет в себе серьезные риски информационной безопасности. Мы представляем вашему вниманию главные мысли этой заметки.
Предыстория
Еще в 2014 году редакция Washington Post писала о том, что компаниям вроде Apple и Google стоило бы изобрести нечто вроде секретного ключа, с помощью которого можно было бы получать доступ к их продуктам и который бы они хранили и передавали спецслужбам только в случае получения ими судебного решения».
Авторов материала тогда раскритиковали за сам факт выдвижения такой идеи — интернет-сообщество выступило резко против, мотивируя это тем, что если разрешить пользоваться таким инструментом для взлома только «правильным» людям вроде государственных служащих и спецслужб, то все равно нет никакой гарантии, что он не окажется не в тех руках.
Проблема в том, что такой «золотой ключик», открывающий доступ к любому устройству, и так уже существует, пишет Риге — это системные обновления.
Немного теории
Риге пишет о существовании «слабых звеньев», в которых цепь безопасности программного обеспечения может разорваться, позволив злоумышленнику обмануть компьютер жертвы и заставить его «поверить» в то, что предложенное ему зловредное обновление на самом деле является легитимным. Такая «направленная атака обновлений» позволит получить доступ к системе конкретного человека — это значит, что другие пользователи того же самого софта о ней не узнают, что позволит хакеру долгое время оставаться незамеченным.
Риге выделяет два условия для проведения атаки такого типа: злоумышленник должен иметь возможность отправить обновления на систему жертвы, и каким-то образом убедить систему, что обновления пришли из доверенного источника. Если ему удастся это сделать, то он получит поистине неограниченные возможности по совершению противоправных действий. Если представить, что злоумышленник смог обманом установить специально сгенерированное обновление операционной системы, то он сможет получить доступ к данным любых используемых ею приложений, завладеть всеми ключами доступа и паролями, а также всеми незашифрованными данными.
В случае бэкдора в системе шифрования хакер сможет расшифровывать случайные данные, зашифрованные жертвами, а не запускать зловредный софт. Риге пишет, что по его мнению, многие люди, осудившие идею материала Washington Post, имели в виду бэкдор последнего типа.
С точки зрения же атакующего каждый из двух вариантов имеет свои плюсы, пишет немецкий исследователь. Первый вариант позволяет пассивно собирать данные, в том числе зашифрованные, для их дальнейшей расшифровки. Второй вариант же позволяет провести атаку только при возникновении условий для этого, однако если такие условия появляются, хакер получает куда больший простор для действий, чем в случае доступа к полученным, но зашифрованным данным. В таком случае, он сможет перехватывать данные всех приложений и даже подключенных устройств, вроде микрофонов или камер.
При всем масштабе возможных проблем многие разработчики софта только в последнее время задумались о том, чтобы как-то подтверждать аутентичность своих обновлений. Однако даже в случае большинства проектов, которые этим озаботились, их создатели все равно оставляют возможные слабые звенья в цепи, уверен Риге.
В чем проблема
Исследователь пишет, что проблема существует в случае большинства операционных систем. Любимая ОС Риге — это Debian. С помощью простой команды, пользователь может узнать, сколько существует «слабых звеньев», в которых злоумышленники могут попытаться нарушить цепь безопасности при загрузке обновлений:
sudo apt-key list | grep pub | wc -l
В случае системы Риге это число — девять. Вот как проблему описывает он сам:
Каждый раз, когда я запускаю команду apt-get update, любой, у кого есть доступ к одному из этих девяти ключей, и кто располагается между моим компьютером и серверами, с которых он скачивает обновления, может отправить мне зловредный софт, и я запущу его с правами root-пользователя.
Почему это стало возможным
Риге пишет, что тот факт, что огромное количество умнейших людей, занимающихся проектированием и разработкой софта, до сих пор не обращают внимание на эту проблему, просто удивителен. Исследователь объясняет это смесью «наивности и самоуверенности». Разработчики уверены, что им удастся обезопасить свои ключи в условиях реальной атаки, но они не задумывались о том, что правительства разных стран могут просто заставить их пользоваться собственными ключами для подписи нужных им, но зловредных для пользователей обновлений.
Apple против ФБР: что происходит на самом деле
Текущие события вокруг требований ФБР к Apple по предоставлению возможности расшифровки данных iPhone, говорят о том, что люди вроде Риге, которые беспокоились из-за тех самых «слабых звеньев безопасности» больше не являются маргинальными параноиками, и проблема существует на самом деле.
Во всей это истории самым важным, по мнению исследователя, является тот факт, что ФБР требует от Apple предоставить ведомству подписанное обновление, которое будет отключать функцию iPhone для удаления данных после определенного количества попыток подбора PIN-кода.
В системах вроде Debian подобной функциональности нет — если кто-то сможет получить доступ к зашифрованному жесткому диску, то у него будут все возможности по проведени брутфорс-атаки на пароль. Однако сделать это в целом сложнее, чем в случае с коротким PIN-кодом — на компьютерах с клавиатурой люди выбирают куда более сложные и длинные пароли. Однако если атакующий сможет «убедить» компьютер запустить случайный код без расшифровки диска, то можно будет просто получить доступ к ключу, а сложность его пароля станет просто бесполезной.
Поэтому, когда Apple говорит о том, что ФБР пытается «заставить нас создать бэкдор к нашим продуктам», на самом деле они говорят, что спецслужба пытается заставить компанию использовать бэкдор, который в этих продуктах уже присутствует, считает Риге. Исследователь говорит, что тот факт, что ФБР просит Apple написать еще и какой-то дополнительный код, в данном случае роли не играет — они всегда могут нанять для этого других разработчиков. Единственное, что может сделать Apple и только она — это предоставить ФБР подпись для обновлений.
Стоит ли рассматривать те самые «слабые звенья» в качестве полноценных бэкдоров? Риге пишет, что многие специалисты по безопасности не согласятся с этим, поскольку это не общепринятое определение того, что считать бэкдором — все-таки подобная конфигурация систем не является тайной ни для кого. Но в деле Apple сама же компания и использует слово «бэкдор», описывая «слабое звено» криптозащиты своих систем.
Что это означает
Apple может победить в текущем споре с ФБР, пишет Риге. Однако, они могут и проиграть, а это значит, что в прошлом компания могла уступить в этом вопросе кому-либо еще. Что если какая-то криминальная группировка так же, как сейчас ФБР, захотела получить возможность получать данные с защищенных PIN-кодамаи «айфонов»? И что, если эта организация нашла людей, которые понимают устройство технологий, и те объяснили злоумышленникам, кого нужно «заставить» сделать такую возможность реальностью? Люди внутри компании, у которых есть доступ к этому «золотому ключику» могут оказаться в серьезной опасности, если по-настоящему мотивированные люди захотят тоже завладеть им.
Риге надеется на то, что ситуация со спором Apple и ФБР послужит тревожным звонком для разработчиков популярных систем, использующих распределенную инфраструктуру рассылки обновлений. Исследователь считает, что в итоге уже в ближайшем будущем текущие неэффективности этого механизма должны быть устранены, и чтобы провести атаку, подобную описанной выше, злоумышленникам придется заняться компрометацией нескольких ключей, которые хранятся у разных людей, находящихся в различных юрисдикциях. Существует целый ряд проектов, которые могут помочь добиться решения этой задачи, включая Cothority от Dedic и Notary от Docker.
Избавление от «слабых звеньев», атака на каждое из которых может стать критической, должно стать базовым требованием к любым новым механизмам распространения программного обеспечения.
Автор: Латера Софтвер