Физическая безопасность.
Метки: BIOS | keylogger | passwd
Вторник, 12 мая 2009 г.
Просмотров: 2675
Рекомендации по физической безопасности, написанные здесь, подойдут практически для любой системы, не только Linux, но основной уклон сделан в сторону Linux.
Почему именно физическая безопасность? Можно ли полностью доверять сотрудникам компании? А что если когда-нибудь кто-то подойдет к компьютеру и нажмет «Ctrl» + «Alt» + «Del» или, что еще хуже, «Reset». В первом случае система хотя бы корректно завершит свою работу, а во втором...
Если быть более конкретным, то, получив физический доступ к компьютеру, хакер сможет сделать следующее:
- Настроить BIOS, включив загрузку с дискеты или CD-ROM.
- Передать ядру некоторые нежелательные параметры, например, single для перехода в однопользовательский режим. В этом режиме он получит доступ к консоли root и система даже не запросит пароль.
- Загрузить систему с загрузочного диска (дискеты или CD-ROM). А это может быть не установочный диск с Windows XP, a Live-CD с Linux. Подмонтировав корневую файловую систему к своей, хакер сможет сделать с ней все, что захочет, в том числе и перезаписать файлы /etc/passwd и /etc/shadow.
- Украсть жесткий диск, содержащий нужные данные.
- Установить keylogger'ы для перехвата введенных с клавиатуры данных, в том числе и паролей.
- Получить доступ к незавершенной сессии root.
Сервер без CD-ROM и FLOPPY.
Нужно физически отключить CDROM и Floppy на сервере, это не даст возможности хакеру загрузиться со своего диска. Причем «физически отключить» означает не отключить питание или шлейф, а вытащить эти устройства из системного блока. Сам системный блок нужно запломбировать, чтобы хакер не попытался установить внешние CD-ROM или Floppy.
Специальные корпуса.
Отдельные корпуса снабжаются замком, позволяющим закрыть на ключ крышку системного блока. Без ключа никто не откроет крышку, поэтому, никто не сможет установить/извлечь устройства из системного блока. Вряд ли крекер является специалистом по замкам, но все же лучше совмещать такой метод с пломбировкой.
Месторасположение.
Сервер нужно размещать в помещении с ограниченным доступом — в охраняемой, вентилируемой комнате.
KEYLOGGER'Ы.
Аппаратные keylogger'ы - это маленькие устройства, подключаемые к порту PS/2, к которому подключается клавиатура. Клавиатура, в свою очередь, подключается к keylogger'y. Keylogger'ы запоминают введенные пользователем символы в энергонезависимой памяти.
Дальше хакер может извлечь keylogger и прочитать содержащуюся в нем информацию, в том числе и введенные пароли. Keylogger - это маленькое цилиндрическое устройство такого же диаметра, как и PS/2-порт.
Нужно отключить клавиатуру - если не видно ничего лишнего, значит, keylogger не подключен.
Настройки BIOS.
Большинство пользователей и администраторов устанавливают пароль BIOS, предотвращающий загрузку и/или изменение параметров BIOS. Лучше устанавливать пароль на изменение параметров BIOS, но не на загрузку системы. Если вы где-нибудь отдыхаете, а сервер в результате перепада напряжения или сбоя системы перезагрузился? По SSH уже никак не войти и не нажать кнопочку Power на системном блоке. Придется ехать на работу и включать сервер. Вот тогда-то можно пожалеть о том, что эта опция установлена.
Установкой одного пароля делу не поможешь. Взломать его легко - на 5 секунд отключить батарейку, которая находится на системной плате. Следовательно, нужно не забывать о замках и пломбах.
Правда, BIOS некоторых производителей поддерживает так называемые master-пароли (или инженерные пароли) - они подходят в любом случае. Цель master-паролей состоит как раз в том, чтобы не приходилось сбрасывать BIOS, если пароль забыт. Вот известные инженерные пароли: Award, AWARD_SW, AMI, AM_SW, bios, cmos, j262. Узнать инженерный пароль можно на сайте производителя материнской платы. Также пароли BIOS поддаются brute-force атаке. Для этого существуют две утилиты, работающие под DOS и Linux - CmosPwd(http://www.cgsecurity.org) и !BIOS (http://www.11a.nu).
Загрузчики.
Наиболее популярные загрузчики операционной системы Linux - это GRUB и LILO. Оба загрузчика дают возможность установить пароль на загрузку системы.
Для включения пароля в LILO необходимо отредактировать файл /etc/lilo.conf, добавив в него строку password=пapoль. Также нужно указать, когда нужно будет запрашивать пароль:
- Restricted - пароль будет запрошен, если пользователь попытается указать некоторые параметры ядра.
- Mandatory — пароль будет запрошен при загрузке системы.
Рекомендуется использовать опцию Restricted, чтобы не было проблем с автоматической перезагрузкой системы.
Пример файла конфигурации /etc/lilo.conf:
initrd=/boot/initrd.img
append="devfs=mount acpi=ht splash=silent" vga=7 8 8 read-only
password=*12345* restricted
imager/boot/vmlinuz
label="failsafe"
root=/dev/hda5
initrd=/boot/initrd.img
append="failsafe acpi=ht devfs=nomount"
read-only
password=*12345*
restricted
После изменения файла конфигурации нужно перезаписать LILO: для этого вводится команду lо. Также нужно убедиться, что файл /etc/lilo.conf доступен для чтения только пользователю root (chmod 600 /etc/lilo.conf), так как он содержит пароль в открытом виде.
Чтобы добавить пароль в GRUB, в файл /etc/grub.conf добавляется строка:
или
в зависимости от того, используется хэшированный пароль или нет. В первом случае можно просто написать пароль как есть — в открытом виде. Во втором нужно записать хэш пароля, для этого запускается grub и вводится команда md5crypt:
Password: ***********
Encrypted: $l$bNG71wkT$dIAeMw7.vlg0sT,3O!dp6K0
Отключение «CTRL» + «ALT» + «DEL».
На всех х86-машинах комбинация «Ctrl» + «Alt» + «Del» используется для перезагрузки машины. Но можно задать поведение системы на нажатие этой комбинации клавиш. Чтобы отключить эту комбинацию, нужно просто открыть /etc/inittab и найти строку:
И закомментировать ее. Чтобы изменения вступили в силу, перезапускаем init:
Запрос пароля в однопользовательском режиме.
Многие дистрибутивы при переходе в однопользовательский режим даже не запрашивают пароля, а ведь в этом режиме у единственного пользователя максимальные привилегии. Кому же хочется, чтобы, пока он отлучился на 5 минут, кто-то ввел параметр ядра single и получил доступ ко всей системе?
Чтобы система запрашивала пароль пользователя root при переходе в однопользовательский режим, ye;yj добавить в /etc/inittab следующие строки:
Беспарольный доступ полезен, если часто забывается пароль, но лучше его все-таки не забывать.
Автовыход из системы.
Использование этой функции — отличная идея, как для обычных пользователей, так и для пользователя root. Как часто забываешь завершить сеанс и выходишь из комнаты? А в это время кто-то другой может воспользоваться этим сеансом.
Переменная окружения TMOUT задает время в секундах, по истечении которого будет выполнен автоматический выход из системы. Если добавить команду:
в файл /etc/profile, то автоматический выход из системы любого пользователя будет произведен через 30 минут (1800 секунд). Если же это сильно мало, можно задать ограничения для каждого пользователя отдельно — для этого достаточно добавить эту же строку в файл -V . bashrc (который находится в домашнем каталоге пользователя).
Блокировка сессии.
При работе с X Window нельзя забывать использовать хранитель экрана. Можно спокойно отлучиться на пару минут, и при этом быть спокойным, что никто не работает этом месте.
Если часто работаете в консоли, используйте утилиту vlock для блокировки одной или более виртуальных консолей. По умолчанию vlock закрывает только текущую консоль, чтобы закрыть все консоли текущего пользователя, можно использовать опцию -а.