Перепрограммирование BIOS с целью защиты компьютера

Тема в разделе "WASM.OS.DEVEL", создана пользователем _Vlad_, 29 мар 2011.

  1. _Vlad_

    _Vlad_ New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2011
    Сообщения:
    4
    Доброго всем времени суток!

    Для начала заранее извиняюсь, если создал тему не в том разделе.

    Теперь к существу вопроса.
    Можно ли переписать BIOS материнской платы так, чтобы при включении питания, прохождении всех тестов, BIOS передавал управление аналогу BIOS'а расположенному на жёстком диске?

    Поясню вопрос.
    В целях информационной безопасности, хотелось бы вести логирование всех действий несанкционированного пользователя, который может вставить LiveCD в CD-ROM и спокойно копаться в установленной системе. Проблема в том, что логгирование невозможно, т.к. не происходит загрузка HDD, а следовательно хранить журнал лог-файлов негде.

    Идея в том, чтобы BIOS материнки сразу после прохождения тестов оборудования, передал управление жёсткому диску. На самом жёстком диске планируется установить измененный слепок BIOS. Т.е. BIOS HDD должен подменить BIOS материнки. Зачем это надо? Отвечаю, чтобы сначала загрузился HDD, а затем устройство которое прописано в BOOT-загрузки SETUP'а BIOS'а. При этом все операции по BOOT-загрузке и дальнейшим действиям, логгировались бы, и складировались на HDD.

    Общая схема такова:
    Включение питания компа -> загрузка BIOS материнки -> загрузка псевдо-BIOS'а HDD -> загрузка устройства указанного в BOOT-записи псевдо-BIOS'a HDD.

    Эту тему я поднимал на другом форуме ( http://forum.xakep.ru/m_2345948/mpage_1/key_/tm.htm#2352709 ), но увы, развития она не получила. Возможно, по причине того, что нет понимания в программировании.
     
  2. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    Технически -- можно, практически -- проблематично, особенно если ставится задача не запретить "левый" доступ (т.е. не позволять загружаться с чего-либо, кроме заранее выбранного диска), а протоколировать действия, не запрещая их.
     
  3. MisHel64

    MisHel64 Member

    Публикаций:
    0
    Регистрация:
    9 мар 2011
    Сообщения:
    182
    Сложилось подозрение, что копаете не в ту сторону.
    И мягко скажем, пояснение, совершенно не поясняет задачи, которую вы решаете. Я сильно сомневаюсь, что вам нужно только логирование действий пользователя. Если только это, то задачи в принципе решаемая, и довольно простая. Вход в BIOS только по паролю. В коде BIOS отключаете BOOT менеджер, а для этого достаточно поменять всего пару байт. Вот и все.
     
  4. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    _Vlad_
    А чем существующие аппаратные решения не устраивают?
     
  5. _Vlad_

    _Vlad_ New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2011
    Сообщения:
    4
    Это наверно из-за того, что я неграмотно и неполно ставлю вопрос.
    Вопрос не только в защите, которую можно выстроить физическими и аппаратно-программными методами. Дело также немного иного плана, а если точнее, речь об ответвлении информационной безопасности - компьютерной криминалистики (forensic - "форензика").

    Суть, дать злоумышленнику применить LiveCD, т.е. дать возможность ему загрузиться. Пускай лазиет, копирует, и совершает прочие тёмные дела. Задача отследить все его действия. LiveCD не оставляет следов, в этом проблема. Точнее следы остаются в оперативной памяти (ОЗУ), но это энергозависимая память, обесточил комп и всё... следы потеряны. Поэтому хотелось бы, чтобы все действия складировались бы в лог-файлы на защищённом выделенном месте HDD, либо и вовсе оперативно передавались на удаленный сервер для хранения и анализа.

    В плане защиты от НСД (несанкционированного доступа) вполне устраивают. Суть также в другом, выше об этом написано.

    Задача стоит лишь в том, чтобы подменить ИМС (интегральную микросхему) на материнке жёстким диском и слегка расширить возможности загрузки, точнее заставить систему протоколировать действия всего сеанса работающего компа. Протоколировать хотя бы нажатия клавиш и название запущенных процессов. Звучит легко, но не спорю, на деле это очень сложно, т.к. чтобы системе понять, что протоколировать нужно будет разрабатывать мини ОС, которая бы распознавала бы нажатые коды клавиатуры, распознавала бы процессы, а затем все записывала бы в лог-файлы.

    Я честно, только сейчас осознал всю сложность вопроса. Так что, придётся ещё посидеть-подумать и понять что же я хочу.
     
  6. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    _Vlad_
    Загружаемся с СД неизвестная ОС. Что будем протоколировать? Это сложная задача в распознавание ОС.
    Да и БИОС после запуска ОС теряет контроль почти полностью.

    Вот если за фиксировать загрузку, тогда бы грузилась определенная ОС, то там без проблем и логи велись бы и все что нужно.
     
  7. MisHel64

    MisHel64 Member

    Публикаций:
    0
    Регистрация:
    9 мар 2011
    Сообщения:
    182
    Ну, таких решений как всегда три.
    Чисто программное, упрется в написание собственной "прозрачной" виртуальной машины. Тогда все операции, с любыми устройствами вы можете логировать.
    Чисто аппаратное, это разработать собственную плату, и через нее подключать все устройства, операции с которыми нужно логировать.
    И чисто "хитрое". Заставить видио карту всегда дублировать изображение выводимое на монитор, на свой видио выход. Частный случай, разработка собственного устройства, которое ставится между видио картой и монитором, и оснащено видио выходом.

    Но стоимость этих разработок, будет стремится к стоимости каменного моста через атлантику. Так что мужик с дубинкой и паяльником, наверно вам больше подойдет в финансовом плане.
     
  8. drem1lin

    drem1lin Member

    Публикаций:
    0
    Регистрация:
    17 мар 2009
    Сообщения:
    300
    MisHel64 все правильно написал, есть еще 1 способ но он невероятно сложен и его использование тербует такого объема работ что просто фантастика. Да и BIOS как отдаст управление загрузчику ОСи не делает ничего, то есть и не сможел вести лог
     
  9. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.615
    Адрес:
    Russia
    вы батенька не только в программирование ничего не смыслите но и с архитектурой пк не знакомы

    биос не передает управление жесткому диску - она считывает с него программу (загрузчик ОС) и передает ему весь контроль за системой

    современные ос не опираются на код биос (не используют его для своей работы)
    поэтому логгер внутри функций биос не будет получать управления и работать

    +1 к решению присобачить устройство записи видеопотока к видеовыходу - спрячьте его в мониторе
     
  10. abcd008

    abcd008 New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2009
    Сообщения:
    616
    и что это даст, если будут писать на диск. на видео это не отразится.
     
  11. KIV

    KIV Member

    Публикаций:
    0
    Регистрация:
    16 июл 2009
    Сообщения:
    231
    Во-первых, а почему бы не вставить программу логгирования в BIOS на материнке, если вы всё равно собираетесь его модифицировать? Зачем догружать BIOS с HDD?
    Во-вторых, как вам уже сказали задача логгирования действий на LiveCD не решаемая в принципе, если только не использовать специальные аппаратные решения, либо создавать практически идеальную виртуальную машину. Последний вариант очень и очень сложен и вполне возможно стоимость всей информации в вашей организации может оказаться дешевле такого проекта. Любая современная ОС использует BIOS только на этапе начальной загрузки. Затем она работает со всем оборудованием напрямую с помощью своих драйверов и код BIOS практически ни в какой ситуации даже не получит управление.
    Поэтому можете даже не пытаться решить поставленную задачу программно.
     
  12. MisHel64

    MisHel64 Member

    Публикаций:
    0
    Регистрация:
    9 мар 2011
    Сообщения:
    182
    Если прочитать ТЗ ответ становится очевидным.
    И на этот вопрос есть ответ в самом первом посте.
     
  13. KIV

    KIV Member

    Публикаций:
    0
    Регистрация:
    16 июл 2009
    Сообщения:
    231
    Всё равно. На HDD можно писать и из BIOS на материнке.
     
  14. MisHel64

    MisHel64 Member

    Публикаций:
    0
    Регистрация:
    9 мар 2011
    Сообщения:
    182
    Это тебе только так кажется.
     
  15. drem1lin

    drem1lin Member

    Публикаций:
    0
    Регистрация:
    17 мар 2009
    Сообщения:
    300
    Можно писать, я писал, только надо найти момент когда он проинициализирован
     
  16. MisHel64

    MisHel64 Member

    Публикаций:
    0
    Регистрация:
    9 мар 2011
    Сообщения:
    182
    Кто "ОН"? Как ты в биусе отбирал управление у системы?
     
  17. drem1lin

    drem1lin Member

    Публикаций:
    0
    Регистрация:
    17 мар 2009
    Сообщения:
    300
    Я отбирал, как - не скажу) А отвечал я на вопрос можно ли из биоса писать/читать хард
     
  18. 0dh

    0dh New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2011
    Сообщения:
    31
    "надежно защищена" и "спокойно копаться в Windows" взаимоисключающие утверждения :)
    Зашифруйте раздел с Windows TrueCrypt-ом и никакие LiveCD вам не страшны.
     
  19. _Vlad_

    _Vlad_ New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2011
    Сообщения:
    4
    0dh, смысл в шифровании отпадет, когда кто-нибудь загрузится в LiveCD и скрытно установит keylogger, перехватывающий пароль от TrueCrypt. Хотя, не спорю, можно, даже без LiveCD, прикрутить к разъёму клавы аппаратный кейлоггер... но это уже экзотика.

    Кстати, в Windows XP Professional есть встроенное шифрование. Программа cipher.
     
  20. h0t

    h0t Member

    Публикаций:
    0
    Регистрация:
    3 апр 2011
    Сообщения:
    735
    На сколько я понимаю Вам необходимо именно сделать что-то подобное honeypot, при чем при наличии физического доступа злоумышлиника к системе. Такая задача в общем случае, как мне кажется только переработкой логики работы железа т.е. разрабатывается СВОЯ материнка, которая протоколирует все что угодно, но тут вопрос в себестоймости. Программно сделать это можно только с какими-то упрощениями. Так как архитектура реализована так что, допустим Вы можите писать через порты ввода-вывода, а логировать это рактически не возможно. Так что это скорее вопросы железа а не программирования. Можно посмотреть на режим SMM. Там есть похожая функцинальность, но...