Недавно, просматривая один из своих любимых англоязычных блогов, я наткнулся на статью Дэна Фармера (того самого, что создал один из первых сканеров уязвимостей в истории), название которой можно (пусть несколько вольно) перевести как «ИИУП: паровозик отправляется в АД».
Осмотрев милый моему сердцу Хабр, я не обнаружил упоминаний об этой похвальной статье и решил исправить это упущение, тем более что моим интересам она вполне соответствует (расследования тут как такового не потребовалось — Дэн все расследовал до нас, а вот скандалоинтриги вполне прослеживаются).
Итак, обо всем по порядку. Кто такой ИИУП и зачем он отправил в ад какой-то-там поезд?
Те из, кто работает в больших и красивых датацентрах знают, что это такое (и наверняка пользуются во всю), для тех же, кому не повезло работать в большом и красивом датацентре, замечу, что ИИУП это интеллектуальный интерфейс управления платформой. Он присутствует у всех серверных матплат, и представляет собой нечто вроде встроенного KVM «на стероидах».
Эта похвальная вещица позволяет администратору получать доступ к серверу вне зависимости от капризов BIOS, ОС, и даже ЦП – а это значит что компонент, ответственный за работу ИИУП (BMC, Baseboard Management Controller, Контроллер Управления Матплатой) продолжает работать, даже когда сам сервер выключен (но не обесточен) или завис.
Собственно, ИИУП вообще крайне устойчив к различным «неприятностям», и может передавать данные (и обеспечивать доступ) в очень разнообразных «катастрофических» ситуациях. Разумеется, помимо собственно управления, BMC также осуществляет мониторинг, журналирование, эротический массаж, приготовление кофе и много других добрых и похвальных дел.
Вкусно? Не совсем…
Например, встает резонный вопрос – а как этот замечательный агрегат решает вопросы аутентификации?
И вот тут начинаются проблемы.
Аутентификация происходит по паре username/password, длинна пароля не превышает 20 знаков, при этом у некоторых BMC они тупо хранятся в нативном виде (Dell, правда, хеширует… но без соли. Двадцать первый век, однако…).
Многие из них поддерживают RADIUS и.т.п. (не всегда адекватно), но практически всегда присутствует возможность перехода на «аварийную» базовую аутентификацию (что на самом деле вполне логично – ИИУП должен продолжать работать в условиях чрезвычайных ситуаций, при которых аутентификационный сервер может сам оказаться недоступен).
Но самое, пожалуй, интересное – если некто залогинен на конкретном сервере с администраторскими правами, он автоматически получает полные админские права в отношении BMC этого конкретного сервера.
Таким образом, если некто (ну… Мэллори там, например) root’нул сервер, то сей злоумышленник может дополнительно насолить жертве, «творчески переработав» список ИИУП-пользователей машины или, что еще лучше, украсть ИИУП логины/пароли (я кажется уже говорил, что хранение паролей в ВМС зачастую не то чтобы очень хорошо продумано, да?), ведь архитектура ИИУП такова, что повторное использование паролей вероятно. В принципе, проблема с повторным использованием паролей может быть до некоторой степени решена с помощью RAKP (специальный протокол обмена ключами), однако его применение требует нешуточных навыков, и не очень хорошо описано в литературе (разумеется RAKP никак не поможет не допустить Мэллори в BMC сервера, на котором он уже получил администраторские права).
Многие ВМС имеют собственный веб-сервер (потому что, конечно, куда же без него, в низкоуровневой-то системе мониторинга и администрирования…), что теоретически расширяет возможный репертуар «дружеских розыгрышей», которые Мэлори может произвести после захвата BMC на отдельно взятой машине.
Обновление прошивок BMC тоже не слишком хорошо продумано – во-первых, «в норме» прошит может быть только специально подписанный образ от поставщика (а это значит что если в вашем варианте ИИУП нашли «дыру», то вам ничего не остается, кроме как ждать когда вендор соблаговолит написать официальный апдейт), а во-вторых, для ряда «сравнительно бюджетных» серверных матплат сами ВМС произведены третьей стороной, что превращает апдейт в задачу с уже двумя (а то и больше, ведь прошивку тоже могли «аутсорснуть») неизвестными.
Тут стоит заметить, что в ходе подготовки своего материала Фармер нашел эксплоит, позволяющий получить root на BMC «крупного вендора» по SSH (подробности пока не разглашены, ибо будучи человеком ответственным, он решил дать вендору возможность выпустить обновление)
Подводить итог пока рано – как ни удивительно, статья Фармера чуть ли не первый материал, пытающийся обощить информацию о проблемах безопасности ИИУП (более того, материал активно обновляется, обрастая интересными подробностями, так что watch this space), однако одно можно сказать наверняка – безопасность ИИУП это чертовски интересно.
Надеюсь, дорогиее, мой скромный, беглый пересказ замечательной статьи не только развеселил вас, но и, быть может, заинтересовал еще одной веселой и интересной проблемой.
Автор: bypasser