Sunday, November 19, 2006

Немного о безопасности в Windows или как из удобной вещи сделать надёжную.

Долго собирался и вот решил поделится своим опытом как из славной мягкой и пушистой киски по имени Windows сделать нечто не такое гладкое и приятное, но быстрое и главное по возможности максимально устойчивое к попыткам откручивания шеи.

Эта история началась примерно года три назад, когда по долгу службы мне нужно было сделать hardening, а проще говоря художественное обрезание системе из нескольких серверов там были Sun, Linux, страшный зверь Unixware от SCO и Win2K. Вот о последнем и пойдёт речь.
Уровень который требовал заказчик можно выразить так - Злобный хакер сидит прямо на консоли и грызёт ногти в бессильной злобе :). Лучший предложный вариант был - выдернуть из сервера все провода торчащие наружу, оставшееся залить в бетон. Да, консоль оставить снаружи, чтобы хакеру было на-чем сидеть. Одна загвоздка - аппликация должна при этом работать...
Ну обо-всем по порядку:
Сегодня:

1 Как пропатчить Windows без интернета или сказание о MBSA

2 Лишние иконки с глаз долой или как работать со спец иконами

3 Если вам чего не нужно - удалите это нафиг или не все программы одинаково полезны


И так, как известно Microsoft лидер по производству всяческих updates, hotfixs и прочих patches для своих продуктов на все случаи жизни. Некоторые скажут, мол пусть себе клепают на здоровье, я мол постою в сторонке. Оно конечно можно если ваша машинка стоит в закрытом шкафчике, сетевые кабеля из неё не торчат и в ближайшие сто лет ни каких новых софтярин туда залито не будет, Аминь... Но с таким счастьем и на свободе... , получается далеко не у всех. Что же остаётся - основных путей, на мой взгляд два, нет вру, три. Третий – это подождать пока сломают, а патом (или даве пОтом) латать чего осталось. Ну об экстрималах в другом разделе. Первый - отдать все на откуп славному сервису - wuauserv или проще говоря Automatic Updates. Дома я так и делаю. Метод в вполне приемлем если: машина в интернете и конект нормальный, винды куплены или руки правильно заточены ;) , не хочется заморачиватся с ручным сканированием и железо стандартное (некоторые стандартные MS фиксы делают на нестандартном железе много головной боли его владельцу). Если так много счастья в одни руки не выдали, и вы (или ваш горячо любимый сервер) к примеру, можете видеть интернет только через замочную скважину в кабинете начальника или плече его же секретарши, то... Переходим ко второму методу. Разрешите представить MBSA - Microsoft Base Security Analyzer бесплатный продукт от фирмы производителя. На сегодня представлен в двух версиях 1.2.1 и 2.0.1 оба умеют работать на WinXP, Win2K и Win2K3, у 1.2.1 написано что мол NT4 тоже, но както отдельно от всех остальных, так что могут Быть варианты.

1.2.1 сканит:

Windows

  • IIS
  • SQL Server
  • Internet Explorer
  • Windows Media Player
  • Exchange Server
  • Microsoft Data Access Components (MDAC)
  • Microsoft XML (MSXML)
  • Microsoft virtual machine (VM)
  • Content Management Server
  • Commerce Server
  • BizTalk Server
  • Host Integration Server
  • Office (его только локально, да забыл сказать можно сканировать удалённую машину)


2.0.1 заявлено:

  • тоже самое плюс -
  • IIS 5.0, 5.1, and 6.0
  • Microsoft Internet Explorer 5.01, 5.5, and 6.0 (включая IE 6.0 for Windows XP SP2 и Internet IE 6.0 for Windows Server 2003)
  • Microsoft SQL Server 7.0 and SQL Server 2000
  • Microsoft Office 2000, Office XP, and Office 2003

С чего начать - скачиваем этих зверей с сайта MS. Тут есть одна маленькая тонкость 1.2.1 доступен свободно и для его скачивания от вас ничего не требуют, чтоб вам сократить время на поиски, вот линк - MBSA 1.2.1 http://download.microsoft.com/download/9/0/7/90769f0c-c025-48bf-a9c7-60072d0cb717/MBSASetup-EN.msi

Что-же касается версии 2.0.1 у вас попросят проверить – действительно ли у вас тот самый настоящий (то есть лицензионный) продукт. Чтобы избегать печальных мыслей что денег не хватает даже на самое необходимое (ну, на покупку той самой лицензии у дяди Била), вот конечный линк который вы получите если... MBSA 2.0.1
http://download.microsoft.com/download/3/f/d/3fd1a09d-af15-4ab7-a554-0ac6c1e76c16/MBSASetup-EN.msi

Как же MBSA знает чего там нового наворотила родная фирма, если конекта к ней нет? Для этого служат конфигурационные файлы содержащие информацию о всех обновлениях на момент смачивания. И так:
mssecure.xml - (в cab, для 1.2.1 уложить в установочную директорию)
http://go.microsoft.com/fwlink/?LinkId=23130
wsusscn2.cab - (для 2.0.1, уложить в C:\Documents and Settings\<ваше имя>\Local Settings\Application Data\Microsoft\MBSA\2.0\Cache\wsusscn2.cab) http://go.microsoft.com/fwlink/?LinkId=76054

Небольшое дополнение, MBSA для работы требует: MSXML parser - если нет или старый качайте заранее, а также, включённый Workstation сервисе. Если вдруг его нет в списке сервисов то, сделайте следующее - откройте свойства сетевой карты, нажмите кнопку инсталлировать и выберете “Client for Microsoft Networks”.
Ну можно устанавливать... Закончили?
Kак обычно два клика мышки. Копируем нужный файл в нужную папку -
для 1.2.1 это файл
MSSecure_1033.CAB в директорию установки (обычно C:\Program Files\Microsoft Baseline Security Analyzer)
для
2.0.1 как уже было сказано, wsusscn2.cab в C:\Documents and Settings\username\Local Settings\Application Data\Microsoft\MBSA\2.0\Cache
Запускаем, для локальной проверки нажимаем - "Scan a computer"










В поле "Computer name" написано имя вашего компа, если не сложилось, можно написать 127.0.0.1

Стартуем, тут он пишет что мол пошёл поискать обновления, если файлы на месте, а интернета нет, то переходим к сканированию. Это займёт минут 5-10.












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

Дальше все просто, жмём "Result details",










выбираем из списка понравившееся. Если есть сеть можно сразу скачать, если нет, берём список, диск и к истокам.
Инсталлируем выбранные патчи и хотфикы. Нельзя сказать что машина стала реально безопасной но, всяческим
exploits и DOS (Denial of service attack) жить стало труднее.
Ну и последнее замечание, для тех кто не любит (или не может, как говорится, по службе) много кликать по мышке, MBSA имеет интерфейс командной строки - mbsacli.ехе. Но за этими и многими другими подробностями отсылаю вас на сайт поддержки Маикрософт support.microsoft.com
Приступим к следующему шагу

Лишние иконки с глаз долой.

Если кто не знает, замечу, иконки типа "Мой компьютер" или "Панель управления" необычные. Если на такой нажать правую клавишу мыши то появится специальное меню, если её скопировать или стянуть, на десктоп, то получишь только указатель - без всех удобств.
Честно говоря, сам я, не отношу подобные действия к security, то есть увеличению уровня безопасности. Поскольку существует множество других методов попасть в нужное место, кроме как кликнуть по иконе на десктопе или скажем в меню. Но пожалуй одна реальная польза от этого есть, защита от дурака. Если на десктопе у вышеуказанного субъекта видна "Control panel" рано или поздно, он доберётся до настроек драйверов, сервисов и прочих интимных мест. И тут уж добра не жди! С другой стороны, если вы продвинутый спец, а IT вашей фирмы унижает вас пряча нужные вещи, нижеследующее именно для вас.
Начнём с раздела regestry который управляет видимостью спец икон на десктопе

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace
стоит добавить или убрать в него ключ со специальным именем и нажать F5 как изменения не замедлят произойти. Что же это за специальное имя спросите вы? Это CLSID под которым зарегистрирован объект, подробнее об этом чуть позже, а сейчас список CLSID

  • Administrative Tools {D20EA4E1-3957-11D2-A40B-0C5020524153}
  • Control Panel {21EC2O2O-3AEA-1O69-A2DD-08002B30309D}
  • Microsoft Network {00028B00-0000-0000-C000-000000000046}
  • My Computer {20D04FE0-3AEA-1069-A2D8-08002B30309D}
  • My Documents {450D8FBA-AD25-11D0-98A8-0800361B1103}
  • Network Computers {1F4DE370-D627-11D1-BA4F-00A0C91EEDBA}
  • Network Connections {7007ACC7-3202-11D1-AAD2-00805FC1270E}
  • Printers and Faxes {2227A280-3AEA-1069-A2DE-08002B30309D}
  • Recycle Bin {645FF040-5081-101B-9F08-00AA002F954E}
  • Scheduled Tasks {D6277990-4C6A-11CF-8D87-00AA0060F5BF}
  • Start Menu Folder {48E7CAAB-B918-4E58-A94D-505519C795DC}
  • Temporary Internet Files {7BD29E00-76C1-11CF-9DD0-00A0C9034933}
  • Internet Explorer {871C5380-42A0-1069-A2EA-08002B30309D}

К выше сказанному добавлю, что спрятать объект из NameSpace десктопа, можно поместив его CLSID в
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel
как value типа dword равное 1, меняешь на 0 и объект снова виден.
Аналогичную процедуру можно проделать и с "MyComputer". Поместите
CLSID в
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace
и он появится в компании с именами дисков. что бы спрятать объект из NameSpace MyComputer, можно поместив его CLSID в
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideMyComputerIcons
как value типа dword равное 1, меняешь на 0 и объект снова виден.
Спрятать или показать объект мы научились, как насчёт других действий? Ну например, переименовать, удалить, скопировать? Конечно можно, хотя с этими опциями будьте осторожны, как говорят, не все йогурты одинаково полезны.
Как я и обещал раньше вернёмся к CLSID, это идентификатор под которым та или иная компонента зарегистрирована в Windows. Благодаря этому мы можем ссылаться на неё в других местах,как это и было описано раньше. Где же хранится CLSID? Основное место это - HKEY_CLASSES_ROOT\CLSID\ в registry. Для того чтобы добавить в меню класса нужные команд делаем следующее - изменяем value Attributes которое находится в HKEY_CLASSES_ROOT\CLSID\{CLSID}\ShellFolder интересующей нас компоненты. Приведу некоторые из значений (их можно комбинировать):
Параметры файла

  • 50 01 00 20 - Переименовать (Rename)
  • 60 01 00 20 - Удалить (Delete)
  • 70 01 00 20 - Переименовать и Удалить вместе (Rename and Delete)

Параметры редактирования

  • 41 01 00 20 - Копировать (Copy)
  • 42 01 00 20 - Вырезать (Cut)
  • 43 01 00 20 - Копировать и Вырезать (Copy and Cut)
  • 44 01 00 20 - Вставить (Paste)
  • 45 01 00 20 - Копировать и Вставить (Copy and Paste)
  • 46 01 00 20 - Вырезать и Копировать (Cut and Copy)
  • 47 01 00 20 - Все вместе (Cut, Copy and Paste)

Теперь в меню появились соответствующие пункты, воспользуйтесь ими во благо!
Последнее маленькое замечание, спрятать или запретить очень многие вещи можно через
Group Policy. Методы работы с ней мы рассмотрим в одном из следующих выпусков. Хочу только заметить, что в конечном счёте практически все сведётся к реестру. Так что знающий не убаится ни групповой ни доменной политики.
Ну и последнее на сегодня

Удаляем все что ненужн
о

Я сторонник той простой истины что на сервере не должно быть ничего лишнего (причём это без относительно к OS, на Linux или Sun я делаю тоже самое). Это значит - сейчас мы будем удалять с Windows избыточный вес. Некоторые скажут, что такая гимнастика не имеет ни какого отношения к безопасности системы, но это несовсем так. Все вы, наверняка, периодически слышите, что мол обнаружена дыра в безопасности Media Player, Paint или чего либо подобного. Так вот, представьте, плохой мальчик получил доступ на ваш сервер, но пока только как самый рядовой пользователь, скажем Guest. Он открывает паинтом правельно подготовленную "картинку", крекс, пекс, фекс ... и он уже Admin. Печальная картина. Посему, заходим в Панель управления - Add and Remove Programs, и безжалосно удаляем все что не нужно для работы сервера. Кажется все просто, да не совсем. Присмотритесь повнимательнее. Чего-то не хватает, например Pinball - в меню есть, а в списке инсталлированных программ нет. Я уже не говорю о такой совсем не безобидной штучке как Terminal Server. Чтобы подобных разочарований было поменьше делаем следующее: идём в директорию Windows, скажем C:\WINNT, далее в скрытую inf и тут открываем файл sysoc.inf. Короче - Run notepad %systemroot%\inf\sysoc.inf. Что-же мы видим? В разделе [Components], множество строк приблизительно такого формата

TerminalServer=TsOc.dll, HydraOc, TsOc.inf,hide,2
Все дело в слове hide, убираем его не нарушая формат -
TerminalServer=TsOc.dll, HydraOc, TsOc.inf,,2
идём в Add and Remove Programs - Add/Remove Windows Components, и о чудо, нашлась пропажа. Делаем Uninstall с чистой совестью

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

В следующий раз:

  1. Что такое правильный пароль - устанавливаем Account Policies
  2. Какие программы следует спрятать подальше - список утилит которые должен запускать только администратор.
  3. Повышаем надёжность TCP/IP

Если ваши советы и комментарии интересны всем, буду рад увидеть их здесь.
С личными просьбами и предложениями, добро пожаловать на
e-mail


4 comments:

The Helmsman said...

Великолепное начало!!!! Ждем продолжение!

Anonymous said...

Спасибо! Здорово!

Anonymous said...

Какая познавательная статья вышла! Респект автору! :)

Anonymous said...

great post, just the kind of information I was looking for