Ну как сказать… Записать свой код в прошивку, получив возможность переживать переустановку системы и смену всего оборудования, кроме материнской платы. Записать свой код в SMM и прятаться там от любых средств защиты уровня ОС, а самому творить с ними непотребное. Возможностей то масса, я их уже в предыдущих постах описывал.
В общем, с незакрытыми уязвимостями в прошивке от LPE до греха — один шаг.
Хорошее дополнение, спасибо.
Я просто в последнее время работаю с системами на AMD, и этот момент совершенно вылетел из головы. У AMD TSEG задается двумя MSR — TSegBase и TsegMask, и потому такой проблемы там не возникает.
Именно так, сами делаем модули и сами к ним БИОСы пишем (понятно, что не с нуля, но тем не менее), поэтому можем обойтись и без IOMMU, но никогда ведь не знаешь, какой 0day найдут послезавтра…
Про механизм этот я в тексте упомянул. Я не вникал в реализацию IOMMU на процессорах Intel, но на AMD можно выделить определенные области под DMA Remap еще в прошивке и залочить их намертво до перезагрузки.
Честно сказать — глубоко в этом направлении не копал, поэтому ничего утверждать не буду.
Это хорошо, что прошивку можно слить и исследовать, а то обычно залочат фьюзами и все. Если клиенты доверяют — это хорошо. Нам тоже доверяют пока, но у нас BMC никаких функций безопасности не выполняет, таким было требование большинства клиентов в самом начале, чтобы не допустить side channel атак через него.
Правильно понимаете, а я банально забыл про это упомянуть, каюсь. Реального использования IOMMU для защиты от DMA-атак я не видел пока, но думаю, что еще увижу, а если чипсеты AMD, которые мы сейчас используем, окажутся ей подвержены, то придется реализовавывать защиту самому.
Намного лучше, когда он с собственной флешкой, т.к. в таком случае через него невозможна атака на ее содержимое. Я знаю, что EC — та еще гадость в смысле безопасности, но крипточип с закрытой прошивкой, как в вашем примере выше, тоже не очень-то располагает к безграничному доверию. Мы используем в качестве BMC обычный ARM Cortex M4 производства Texas Instruments, подключенный через LPC, и прошивку для него мы написали сами, поэтому я уверен, что в ней нет ни бэкдоров, ни каких-то посторонних возможностей.
Я использую старую расшифровку аббревиатуры EC, т.к. сейчас слово embedded уже настолько везде, что практически потеряло значение. А так — сразу понятно, чем занимается EC — температуры меряет и вентиляторами управляет.
Потому что за 0 на графике взято минимальное значение.
Если строить от 0 — будет сплошная зеленая полоса от 0 до минимума, которая не добавляет никакой информации вообще.
Нет. Некоторые атаки обнаружены всего пару недель назад, и потому пока не могут быть опубликованы, т.к. для 99% пораженных систем еще не вышли обновления.
Ее и на современных роутрах часто нет.
В энтерпрайзной среде почему-то считается, что проблемы безопасности прошивок — overhyped, и потому не стоят внимания. Тот факт, что прошивку подавляющего большинства железок, кроме совсем уж экзотических, можно банально слить программатором и дизассемблировать в radare2, а потом залить куда-нибудь в свободное место шеллкод и собрать обратно — это давно уже не ракетная наука, до людей, принимающих решения просто не доходит. И не будет доходить, пока модуль по внедрению не добавят в Metasploit, но и тогда, возможно, они скажут, что надо лучше защищать сервера от физического доступа и такие бэкдоры — единичный случай и капля в море.
Гром не грянет — мужик не перекрестится, традиционно.
Затрону, конечно, но не сразу, сначала надо рассказать, что атакуют, а потом уже — как.
Про бэкдор HT не вспомнили по причине его примитивности. Понятно, что задачу свою он выполняет, но лучше, чем ThrDev, я о нем, наверное, не скажу.
Hacking Team's EFI «rootkit» makes me sad. It's like buying a Bugatti Veyron and replacing the engine with a box of dildos.
Джампер можно реализовать, и прямо в статье написано, как именно, но этого никто не делает — в текущих условиях это дорого и мало кому нужно.
Если вас защита задевает — покупайте продукты без нее, их море. Только вот доверять ОС, которая, в основном, написана вполне средними программистами 10+ лет назад на С или С++ — решительно невозможно.
Проблема защиты от физического доступа — административная, а не системная, и ключи в кремнии решают не проблему «злой хакер Семен сменил все чипы, и таким образом отключил защиту», а «измененный злым хакером Семеном образ БИОСа не запустился вообще»
Если говорить про аппаратные закладки и т.п., то единственный выход — свободное железо. OpenRISC, вот это все. Пока железо закрытое — с аппаратными закладками надо как-то жить.
Я тоже этого не понимаю совершенно. Сейчас все программное, черт возьми, декодер кодов операций в x86 программный уже лет десять, и давно уже невозможно отделить железо от софта, но нет, все хоть немного железное — на ГТ, к обзорам часов и браслетов.
Отлично, спасибо за ссылку. Я не планирую погружаться в код SMU, т.к. лучшее его состояние для меня — «работает, управляет питанием, жрать не просит». Понятно, что там тоже могут быть закладки и хотелось бы получить исходники, но пока AMD его просто так не отдает.
Сразу могу сказать почти наверняка — они там либо отключены, либо отсутствуют, мне их пришлось искать и включать специально. Всякие TrustZone и PSP — адский темные лес, документация на них в зачаточном состоянии, даже та, что под NDA, и нужно оно все это двум с половиной анонимам.
В общем, с незакрытыми уязвимостями в прошивке от LPE до греха — один шаг.
Я просто в последнее время работаю с системами на AMD, и этот момент совершенно вылетел из головы. У AMD TSEG задается двумя MSR — TSegBase и TsegMask, и потому такой проблемы там не возникает.
Честно сказать — глубоко в этом направлении не копал, поэтому ничего утверждать не буду.
Если строить от 0 — будет сплошная зеленая полоса от 0 до минимума, которая не добавляет никакой информации вообще.
В энтерпрайзной среде почему-то считается, что проблемы безопасности прошивок — overhyped, и потому не стоят внимания. Тот факт, что прошивку подавляющего большинства железок, кроме совсем уж экзотических, можно банально слить программатором и дизассемблировать в radare2, а потом залить куда-нибудь в свободное место шеллкод и собрать обратно — это давно уже не ракетная наука, до людей, принимающих решения просто не доходит. И не будет доходить, пока модуль по внедрению не добавят в Metasploit, но и тогда, возможно, они скажут, что надо лучше защищать сервера от физического доступа и такие бэкдоры — единичный случай и капля в море.
Гром не грянет — мужик не перекрестится, традиционно.
Про бэкдор HT не вспомнили по причине его примитивности. Понятно, что задачу свою он выполняет, но лучше, чем ThrDev, я о нем, наверное, не скажу.
Если вас защита задевает — покупайте продукты без нее, их море. Только вот доверять ОС, которая, в основном, написана вполне средними программистами 10+ лет назад на С или С++ — решительно невозможно.
Проблема защиты от физического доступа — административная, а не системная, и ключи в кремнии решают не проблему «злой хакер Семен сменил все чипы, и таким образом отключил защиту», а «измененный злым хакером Семеном образ БИОСа не запустился вообще»
Если говорить про аппаратные закладки и т.п., то единственный выход — свободное железо. OpenRISC, вот это все. Пока железо закрытое — с аппаратными закладками надо как-то жить.