Пока популярные СМИ обсуждают эпидемию очередной ransomware-заразы — случившейся на этот раз вследствие утекших у спецслужб секретов, надо же! — в более узких профессиональных кругах раскручивается более тихая, но и куда более интересная, если по справедливости, история. Я говорю о скандале с кейлогером, обнаруженным в официальном драйвере, предустанавливавшемся более чем в двух дюжинах ноутбуков HP на протяжении минимум последнего года. Тут тоже вовлечена MS Windows, но в данном случае интересны другие аспекты. Впрочем, давайте по порядку.
Сейчас, когда детали головоломки собраны, интересно проследить, как всё начиналось. А началась эта история ещё прошлой осенью, а может быть и раньше, когда на форумах появились первые сообщения о том, что некоторые ноутбуки HP ведут себя, скажем так, странным образом. Вот, к примеру, пост, датированный октябрём 2016-го: владелец HP Envy, укомплектованного по последнему слову техники (Core 7, Windows 10 и т.п.), сообщает о проблеме непонятного свойства. Как только пользователь начинает набирать текст, система активно «шуршит» жёстким диском. Звук обращения к винчестеру, конечно, не слышен (стоит SSD), но загрузка процессора столь значительна, что текст появляется на экране с задержкой!
После обсуждения на форуме Microsoft и некоторых самостоятельных изысканий, автор локализовал проблему: виновен системный процесс MicTray64. Если удалить его из памяти, машина начинает работать нормально, однако остаются сомнения, не приведёт ли такое вмешательство к негативным последствиям для системы в целом. Узнать наверняка, для чего MicTray64 нужен, тогда так и не удалось.
И вплоть до апреля 2017-го загадка эта оставалась неразгаданной. Предполагали и баги, и взлом, пока в конце концов ответ не нашли специалисты швейцарской конторы Modzero, занимающейся анализом компьютерной безопасности. Они проанализировали загадочный процесс и установили, что это не что иное, как клавиатурный шпион, стартующий во время загрузки системы. Перехваченные клавиши он пишет в файл UsersPublicMicTray.log, который стирается после каждого логина, зато доступен всем пользователям. Другая интересная деталь: «родителем» для него является аудиодрайвер Conexant, что совсем уж из ряда вон. Ну для чего звуковой карте следить за клавиатурой?
Информацию о своей находке Modzero первым делом передала в HP, точнее, в одно из подразделений этой гигантской корпорации. Где началась обычная для таких случаев волокита: сотрудники одного отделения, безопасностью не занимающиеся, попытались связаться с сотрудниками другого, и это отнимало драгоценные дни и даже недели. Лишь на днях HP подтвердила, что проблема имеет место быть, выпустила патч, удаляющий кейлогер, а также заявила, что не имела доступа к собиравшимся данным и что сам кейлогер использовался на этапе отладки и попал в релиз ненамеренно.
Верить HP в данном случае можно. Кейлогер наверняка встроила в систему она, а не Conexant — на этапе сборки, отлаживая совместную работу компонентов. Обсуждение на технофорумах показало, что клавиатурный шпион в аудиодрайвере действительно может быть полезным во время отладки: когда тестер жалуется, что что-то не работает, можно воспроизвести последовательность клавиш, которые он нажимал. И доступа к собиравшимся данным HP, вероятно, не имела: конкретно ей это было ни к чему. Однако её извинениями история не заканчивается. Напротив, возникают новые вопросы.
Что мы имеем? На протяжении года или более (ибо проблеме точно подвержены и модели 2015-го года выпуска) в львиной доле новых ноутбуков одного из самых востребованных производителей PC (в прошлом году компания поставила практически каждую пятую персоналку на мировом рынке, уступив слегка лишь Lenovo) работала автоматическая утилита, писавшая все прикосновения к клавиатуре в локальный файл. Да, сама она ничего никуда не отправляла, зато сильно облегчала задачу слежки за пользователями всем, кто только мог этого желать.
Потому что установить кейлогер в операционную систему — задача нетривиальная: придётся пройти через контроль системы, антивируса, здравый смысл. Тут же всё уже установлено и работает! В зависимости от версии драйвера, клавиши можно было читать из лога или через системный поток — и никакой антивирус вас на этом бы не поймал.
А теперь представьте себя на месте сисадмина, который обнаруживает, что подотчётный ему корпоративный парк ноутбуков месяцами работал с такой вот зияющей дырой — и только богу известно, кто, когда и для каких целей ею пользовался! Админ должен сообщить о проблеме начальству, но поступить так — значит, навлечь гнев в первую очередь не на производителя, а на себя. Ибо недосмотрел — но и как такое админу можно было заметить?
Представьте себя даже на месте простого домашнего пользователя, который стоит теперь перед выбором: поменять все пароли, пластиковые карты, все криптовалютные кошельки, чтобы гарантировать, что конфиденциальная информация не утекла на сторону — или положиться на волю случая, поверить, что никто клавиатурный лог не читал?
Таким образом сейчас всё упирается в вопрос: имел ли кто-то со стороны доступ к логу клавиатурного шпиона? Конечно, можно закрыть глаза и рискнуть сказать «нет», но… Когда на протяжении года в десятках миллионов машин (а речь минимум о 20 млн. ноутбуков) зияет дыра, воспользоваться которой, теоретически, может даже браузерный скрипт, полагаться на удачу — плохая идея. Намного менее удобные уязвимости эксплуатируются мошенниками, хулиганами, ворами и спецслужбами. И правильным в данной ситуации будет предполагать худшее: о кейлогере в аудиодрайвере ноутбуков HP некоторые знали и этим втихую пользовались.
Предлагая решение, боюсь показаться скучным: оно такое же, как и пять, и десять, и пятнадцать лет назад. Особенно корпоративным пользователям и по крайней мере в том, что касается системных вопросов, нужно переходить на свободный софт. Да, open source не без своих проблем и сложностей, но конкретно эта угроза в нём устранена, она органически со свободным софтом несовместима: тут нет невнимательных одиночек-разработчиков, способных нагадить миллионам человек. Кейлогер в аудиодрайвере, тормозящий работу всей системы, был бы обнаружен и устранён задолго до того, как он смог бы навредить сообществу. Скучно? Может быть. Зато эффективно и безопасно.
P.S. В статье использованы графические работы Johan Arwidmark, Christoph Scholz.