| RSS



Меню

Bookmark and Share


Статистика
Ваш IP: 18.223.172.252
Вы используете: v





Сейчас на сайте:

Тех поддержка ->

Облако тэгов
ОС видио Tor Обратная сторона антенна 4.6 PHP Эксплоит Windows Server 2008 qip Virtual chroot kernel proc sysctl tune FreeBSD bridge Boot Disk Bluetooth GEO game directx Emulator Python Shell DDoS червь Conficker вирус троян Лаборатория Касперского пиратство apple iPhone ИТ-отрасль Щеголев Microsoft экономический кризис Twitter социальная сеть анонимность Лицензия Open Source ASP.NET MVC уязвимость MySQL база данных файлообмен закон франция пират Skype мобильный Deutsche Telekom Хакер киберпреступник Trend Micro кибератака Германия робот утечка данных персональные данные ноутбук интернет Китай цензура ядро Linux Торвальдс Windows Vista Acer Linux патент браузер Firefox Internet Explorer Opera Net Applications Safari Intel Linux Foundation Moblin Oracle патч банкомат кардер HSM IBM X-Force Cofee сша кибервойна Эстония Dell ИТ-специалист хакерские атаки Pirate Bay контроль кибербезопасность язык программирования The Pirate Bay Пиратская партия утечка информации приговор Mozilla Chrome безопасность Госдума СМИ Windows 8 Баллмер взлом Пентагон ботнет Украина Facebook Cisco cloud Windows XP нетбук торрент музыка биометрический nokia ФБР IP-адрес CIPAV Comcast sms RSA java Google CAPTCHA Symantec спам конфиденциальная информация инсайдер Perimetrix антивирус тест Anti-Malware Windows 7 операционная система Windows провайдер авторское право RapidShare UNIX свиной грипп шантаж дети EFF BluWiki копирайт экстремизм Panda Security cloud computing McAfee Cybercrime Response Unit Bottle Domains HTTPS ICANN студент шпионское ПО Норвегия школьник New York Times XSS YouTube Warner Music кибершпионаж КНДР Ubuntu свободное ПО AMD ATI касперский Россия РФ сервер хостинг фальшивый антивирус Comodo CA Wi-Fi D-Link суд пароль блог фишинг Одноклассники медведев контрафакт мошенник штраф Sony GPS по Gumblar JAVASCRIPT хакеры вредоносное ПО Yahoo ФАС компьютер Софт MPAA кибероружие PandaLabs Red Hat Минкомсвязи сбой ASUSTeK Computer мошенничество Доктор Веб ВКонтакте Cyber-Arc исходный код PCI DSS МВД фильтр порнография BREIN свобода слова Казахстан GEMA Autodesk сисадмин Gmail кредитная карта кибермошенник LiveJournal шифрование криптография Deep Purple банк нанотехнологии Wikipedia zero-day ColdFusion выборы кража данных DNS BIND Android BASIC атака Black Hat Mac OS X Click Forensics Clampi домен фсб Прокуратура Уголовное дело icq Barrelfish киберпреступность Sophos AT&T ошибка Electa Gamma Knife OpenBSD DARPA военные Сайт Visual Studio 2010 .NET Framework 4 Chrome OS электронная почта турция конференция спамер FTC полиция российская ОС Koobface Великобритания БЕЛОРУССИЯ грузия BSA Bittorrent облачные вычисления Azure Европа Dr.Web Билл Гейтс спецслужбы Cryzip Живой Журнал Royal Bank of Scotland смартфон Canonical Pwn2Own F-Secure Symbian Hotmail фильм

Главная » Статьи » Общие Статьи

Еще одна аппаратная угроза или проникновение в SPD ROM №2

Категорически не рекомендуется ставить эксперименты на основном рабочем компьютере, лучше найти какую-нибудь старую плату, оставшуюся, например, с прошлого апгрейда или частично исправную и собрать на ее базе "полигон".

Об аппаратной защите и ее эффективности

Микросхема 24C02 поддерживает аппаратную защиту записи. Для этого используется вход WP (Write Protect). Это контакт 7 на 8-контактном корпусе микросхемы. При WP=0 запись разрешена, при WP=1 запрещена. С точки зрения использования этой функции, модули памяти бывают трех типов:

Первый вариант – вход WP подключен к схемной "земле", то есть WP=0. Защиты нет.

Второй вариант – вход WP подключен к плюсовой линии питания, то есть WP=1. При этом микросхема SPD постоянно защищена от записи, и программно изменить ее содержимое невозможно.

Третий вариант – вход WP подключен к соответствующему контакту на разъеме DIMM. При этом наличие защиты записи будет зависеть от материнской платы, а именно от того, какой логический уровень подает она на данный контакт. Обычно подается постоянный уровень "0" или "1", что обеспечивает разрешение или запрет записи соответственно. Теоретически, на материнской плате может быть реализован программно-доступный регистр, через который можно управлять состоянием этой линии, то есть программно устанавливать и снимать защиту записи SPD. Но на практике такие решения встречаются крайне редко.

Тем, кто решит поэкспериментировать с перезаписью SPD, необходимо проверить наличие логического "0" на контакте 7 микросхемы 24C02 и при необходимости внести изменения в схему. Описание этой микросхемы приведено в [13]. Расположение сигналов на разъеме DIMM для разных типов памяти приведено в [19-22].

Другой тип защиты – отключение сигналов шины SMBus с помощью программно-управляемых коммутаторов. Смысл такой защиты в том, что для управления указанными коммутаторами используются специфические ресурсы материнской платы, не являющиеся частью чипсета. Поэтому для ответа на вопрос, что и в какой регистр нужно записать для выключения защиты, документации на чипсет недостаточно, требуется принципиальная электрическая схема данной материнской платы, которая обычно недоступна. На практике этот тип защиты используется достаточно редко. Автор встречал его только в некоторых моделях плат производства фирмы ASUS.

Таким образом, в большинстве платформ, защищенность информации SPD от программного искажения зависит только от подключения входа WP микросхемы 24C02 на модуле DIMM.

Симптомы неисправности

Разумеется, содержимое микросхемы SPD модуля памяти может быть искажено не только в результате действия вредоносных программ. Причиной может быть программный сбой, а также аппаратная неисправность самой микросхемы SPD или контроллера SMBus.

Симптомы такой неисправности существенно различаются в зависимости от двух факторов: типа платформы и характера искажения (какие именно параметры искажены).

В "древних" платформах, использующих память PC66, PC100, PC133 SDRAM, несмотря на то, что модули DIMM уже содержали SPD, разработчики BIOS в силу определенной инерционности использовали "старые" методы детектирования памяти, основанные на записи в ОЗУ тестовых данных и их контрольном считывании по специальному алгоритму без использования SPD. В таких платформах искаженность содержимого микросхемы SPD и даже ее физическое снятие с модуля DIMM, в большинстве случаев не приводит к потере работоспособности, хотя контроллер памяти может быть проинициализирован неоптимально.

Используя данное свойство "древних" платформ автор успешно применял плату на чипсете Intel BX в качестве программатора для микросхем 24C02, временно устанавливая микросхему, которую требуется записать, на один из модулей памяти, вместо микросхемы SPD.

В более новых платформах, использующих DDR, DDR2, DDR3, процедура настройки контроллера памяти значительно сложнее и выполнить ее без привлечения информации из SPD невозможно. Такие платы обычно не стартуют, если присутствует хотя бы один модуль DIMM с некорректным содержимым SPD. Даже если этот модуль установлен в старшем банке, а в младшем находится исправный модуль.

Разумеется, многое зависит и от того какой параметр искажен. Например, если увеличено значение байта, задающего тактовый период, BIOS будет устанавливать пониженную частоту при инициализации контроллера памяти, что приведет к падению быстродействия.

Отметим, что данные SPD защищены контрольной суммой, поэтому вредоносная программа, желающая изменить тайминги модуля памяти без вывода его из строя, должна корректировать значение контрольной суммы после изменения значений параметров. Также отметим, что на некоторых материнских платах BIOS не проверяет контрольную сумму SPD. Поэтому модуль памяти с работоспособными значениями параметров, но некорректной контрольной суммой SPD, может нормально работать на таких платах.

Меры предосторожности

Тем, кто решится поэкспериментировать с перезаписью микросхем SPD, следует заранее позаботиться о восстановлении их содержимого. Исходное содержимое SPD всех модулей памяти следует предварительно сохранить в файлах с помощью программы чтения SPD, имеющейся в предлагаемом наборе. Категорически не рекомендуется ставить такие эксперименты на основном рабочем компьютере, лучше найти какую-нибудь старую плату, оставшуюся, например, с прошлого апгрейда или частично исправную и собрать на ее базе "полигон".

Оптимально, если это будет плата на чипсетах, например Intel TX, LX, BX, использующая SDRAM первого поколения. Как было сказано выше, такие платы обычно сохраняют работоспособность при некорректном содержимом SPD, поэтому вероятность получить нестартующую систему будет ниже.

Напомним, что BIOS считывает SPD только при перезапуске компьютера, поэтому, делая опыты по перезаписи SPD, по возможности восстанавливайте исходное содержимое перед сбросом или выключением питания.

Программа чтения SPD (каталог WORK\READ)

Как и в ранее опубликованных статьях данного цикла, в целях монопольного и беспрепятственного взаимодействия программы с оборудованием при работе с предлагаемыми примерами, автор применил "древнюю" технологию отладки под DOS. Аргументация такого шага и рекомендации по организации рабочего места приведены в ранее опубликованной статье "64-битный режим под DOS: исследовательская работа № 1".

Программа считывает содержимое SPD заданного модуля памяти (номер модуля запрашивается) и сохраняет его в двоичном файле SPD.BIN, размером 256 байт. В текущей версии поддерживаются чипсеты:

Intel от 430TX до 945 (c "южными мостами" PIIX4, ICH0-ICH7).
VIA от MVP3 до К8x (с "южными мостами" VT82C586B, VT82C596A/B, VT82C686A/B, VT8233, VT8235, VT8237).

Поддержка чипсетов NVidia, SiS, ATI планируется в последующих реализациях программы. При наличии читательского интереса автор вернется к данной теме.

Каталог WORK\READ содержит следующие файлы:

ASM_TD.BAT – обеспечивает ассемблирование, линковку и запуск программы под отладчиком. При запуске TASM и TLINK используются опции, обеспечивающие добавление отладочной информации в EXE файл.

ASM_EXE.BAT – обеспечивает ассемблирование и линковку. Генерируется EXE файл.

RD_SPD.ASM – основной модуль программы.

A20.INC – Библиотека для управления и контроля состояния адресной линии A20 с использованием выходного порта контроллера клавиатуры.

BIGREAL.INC – Библиотека поддержки режима Big Real Mode, для использования 32-битных адресов в диапазоне 0-4 Гб. Этот режим, как и управление адресной линией A20, необходимы в данной программе только в том случае, когда чипсет содержит конфигурационные регистры, находящиеся в пространстве памяти и для включения контроллера SMB требуется перенастройка данных регистров (в том случае, если BIOS запретил контроллер SMB перед загрузкой ОС). Такие регистры имеются, например, в "южных мостах" Intel ICH6, ICH7. Это регистры memory-mapped диапазона Root Complex Base Address – RCBA, подробности в [3].

SCREEN.INC – Библиотека функций для вывода на экран в текстовом режиме 80x25 символов.

NUMPRINT.INC – Библиотека для вывода шестнадцатеричных чисел в текстовом виде.

PCIBIOS.INC – Библиотека для доступа к конфигурационному пространству с использованием функций PCIBIOS. Подробности в [8-10].

REFRDEL.INC – Подпрограмма задержки, использующая Refresh Trigger. Подробности в [26].

SMBUS.INC – Диспетчер функций для процедур поддержки System Management Bus.

SMBDEVS.INC – Библиотека, обеспечивающая поддержку чипсетов. В этот модуль вынесены подпрограммы, написанные под заданные чипсеты.

TEXT.INC – Текстовые строки.

CPU_DATA.INC – Данные, используемые для управления адресной линией A20 и включения режима Big Real Mode, обеспечивающего 32-битную адресацию.

SMB_DATA.INC – Переменные и константы, используемые процедурами поддержки System Management Bus.

Примечание 1.

Если файл с именем SPD.BIN уже существует, он будет перезаписан без предупреждения.

Примечание 2.

В большинстве плат нумерация модулей памяти идет от центра платы. Например, если на плате 4 разъема для DIMM, то у ближайшего к процессору разъема 3-битный адрес микросхемы SPD будет 000b=0, у дальнего разъема 011b=3. Вместе с тем, встречаются исключения, поэтому перед выполнением экспериментов следует проверить нумерацию модулей. Это можно сделать с помощью диагностических утилит, либо устанавливая один модуль поочередно во все разъемы и проверяя, при задании какого номера DIMM программа его распознает.

Примечание 3.

В исходных текстах программы, наряду с процедурами чтения и записи байтов, используемыми при операциях с микросхемами SPD (Read_Byte, Write_Byte), содержатся также процедуры чтения и записи блоков (Read_Block, Write_Block). В данной версии программы они не используются и резервируются для будущего расширения функциональности. Процедуры блокового чтения и записи SMB потребуются для взаимодействия с регистрами тактового генератора.

Программа записи SPD (каталог WORK\WRITE)

Программа считывает двоичный файл SPD.BIN, размером 256 байт и записывает его содержимое в заданную микросхему SPD (номер модуля DIMM запрашивается). Контрольная сумма автоматически корректируется.

Каталог WORK\WRITE содержит такой же набор файлов, что и каталог WORK\READ, описанный выше.

Примечание 1.

Для плат с "южным мостом" VIA VT82C586B поддерживается только чтение SPD, без записи. Это ограничение программы, не чипсета.

Примечание 2.

Программа записи SPD автоматически корректирует контрольную сумму данных. Согласно стандарту, байт с адресом 3Fh должен содержать младшие 8 бит суммы байтов с адресами 00h-3Eh. Если программа используется для модулей памяти, использующих другой формат, либо требуется запрограммировать в микросхему данные, не являющиеся информацией SPD, процедуру вычисления контрольной суммы потребуется модифицировать.

Примечание 3.

На некоторых модулях памяти, в целях снижения стоимости, вместо микросхемы 24C02, допускающей перезапись, используется масочная микросхема постоянного запоминающего устройства (ПЗУ), переписать содержимое которой невозможно.

Текстовые документы (каталог WORK\DOC).

README.TXT – краткая справка по использованию программ чтения и записи SPD.

SPD_SDR – описание формата SPD для модулей памяти SDRAM.

SPD_DDR – описание формата SPD для модулей памяти DDR SDRAM.

SPD_DDR2 – описание формата SPD для модулей памяти DDR2 SDRAM.

Документы в текстовом формате MS DOS. Перечисленные текстовые файлы могут быть использованы как краткая русскоязычная справка по форматам SPD для различных типов модулей памяти. Детальная информация содержится в [14-18].

Заключение

В статье рассмотрена одна из уязвимостей, которая может быть использована вредоносными программами для выведения из строя оборудования, в частности модулей памяти. Материал будет полезен при оценке степени защищенности систем и выработке методов ее повышения. Для разбирающихся в схемотехнике и умеющих держать в руках паяльник приведенных сведений будет вполне достаточно для выполнения ремонта модулей DIMM у которых искажена информация SPD, а также реализации программатора микросхем Serial Flash ROM на базе обычной материнской платы.

Прилагаемые программы также будут полезны оверклокерам, для которых редактирование содержимого SPD открывает новые возможности по "разгону" памяти, так как набор параметров, которыми можно управлять, изменяя содержимое SPD, существенно шире, чем набор опций BIOS Setup. Разумеется, действовать нужно очень осторожно, заранее продумав пути восстановления работоспособности системы, так как при записи некорректных параметров в SPD, обнуление CMOS уже не поможет.

Еще один вариант применения указанной технологии – хранение в неиспользуемой области SPD "ключей", обеспечивающих, например, распознавание заданного компьютера для защиты программ от несанкционированного копирования.

Источники информации

Электронные документы, доступные на сайте developer.intel.com.

1) Intel 82371AB PCI-TO-ISA / IDE XCELERATOR (PIIX4) Datasheet. Order Number 290562-001.
2) Intel 82801DB I/O Controller Hub 4 (ICH4) Datasheet. Document Number 290744-001.
3) Intel I/O Controller Hub 6 (ICH6) Family Datasheet. Document Number 301473-001.

Электронные документы, доступные на сайте developer.amd.com.

4) AMD-8111 HyperTransport I/O Hub Data Sheet. Publication # 24674.

Электронные документы, доступные на сайте datasheetarchive.com.

(Информация на данном сайте более полная, чем на "родных" сайтах производителей указанных микросхем.)

5) VIA VT82C586B PIPC PCI Integrated Peripheral Controller. Для поиска документа набирать строку "VT82C586B".
6) VIA VT82C686A South Bridge Datasheet. Revision 1.54. Для поиска документа набирать строку "VT82C686".
7) VIA VT82C686B South Bridge Datasheet. Revision 1.71. Для поиска документа набирать строку "VT82C686".

Электронные документы, доступные на сайте pcisig.com.

Документы [9], [10] на сайте pcisig.com доступны только для членов PCI Special Interest Group. Воспользовавшись поисковыми системами, можно найти данные документы для свободной загрузки.

8) PCI BIOS Specification. Revision 2.1.
9) PCI Local Bus Specification. Revision 3.0.
10) PCI-to-PCI Bridge Architecture Specification. Revision 1.1.

Электронные документы, доступные на сайте smbus.org.

11) System Management Bus (SMBus) Specification. Version 2.0.

Электронные документы, доступные на сайте semiconductors.philips.com.

12) The I2C-Bus Specification. Version 2.1.

Электронные документы, доступные на сайте atmel.com.

13) AT24C01A/02/04/08/16 2-Wire Serial CMOS E2PROM Data Sheet.

Электронные документы, доступные на сайте jedec.org.

14) JEDEC Standard No. 21-C. Page 4.1.2.5-1. Appendix E: Specific PD’s for Synchronous DRAM (SDRAM).
15) JEDEC Standard No. 21-C. Page 4.1.2.4-1. Appendix D: DDR Synchronous DRAM (DDR SDRAM). 16) JEDEC Standard No. 21-C Page 4.1.2.10-1. Appendix X: Serial Presence Detects for DDR2 SDRAM (Revision 1.2).
17) JEDEC Standard No. 21-C. Page 4.1.2.11-1. Appendix K: Serial Presence Detect (SPD) for DDR3 SDRAM Modules. SPD Revision 1.0.
18) DDR2 FB-DIMM SPD 1.0. Appendix X: Serial Presence Detect (SPD) for Fully Buffered DIMM (Revision 1.0).
19) JEDEC Standard No. 21-C. Page 4.5.4-1. 168-pin Unbuffered SDRAM DIMM family.
20) JEDEC Standard No. 21-C. Page 4.5.10-1. 184-pin Unbuffered DDR SDRAM DIMM family.
21) JEDEC Standard No. 21-C. Page 4.5.14-1. 240-pin Unbuffered and Registered DDR2 SDRAM DIMM family.
22) JEDEC Standard No. 21-C. Page 4.20.19-1. 240-pin PC3-6400/PC3-8500/PC3-10600/PC3-12800 DDR3 SDRAM Unbuffered DIMM Design Specification.

Книги

23) В.Л. Григорьев. Микропроцессор i486. Архитектура и программирование. Москва ТОО "ГРАНАЛ" 1993.
24) В.Г. Артюхов, А.А. Будняк. В.Ю. Лапий. С.М. Молявко, А.И. Петренко. Проектирование микропроцессорной электронно-вычислительной аппаратуры. Справочник. Киев "Тэхника" 1988.
25) К. Г. Самофалов, О.В. Викторов. Микропроцессоры. Библиотека инженера. Киев "Тэхника" 1989.
26) 2B ProGroup: В.А. Вегнер, А.Ю. Крутяков, В.В. Серегин, В.А. Сидоров, А.В. Спесивцев. Аппаратура персональных компьютеров и ее программирование. IBM PC/XT/AT и PS/2. Москва "Радио и связь" 1995.

Категория: Общие Статьи | Добавил: aka_kludge (06.03.2009)
Просмотров: 3260 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
    Главная      
...
На службе : дней

13:47
Обновить


Пользователи
aka_kludge
qwerty
LeadyTOR
aka_Atlantis
AdHErENt
mAss
Sissutr
hiss
DrBio
tHick

Поиск


Copyright tHR - TeAM 2024 г. admin: aka_kludge (ICQ:334449009) Moderator's: LeadyTOR, ... Яндекс.Метрика