Saturday, November 25, 2006

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

Ну чтож, если вам понравилось, можно и продолжить. Надеюсь ваши машины полностью пропатчины и очищены от всего лишнего, а Вы готовы к получению новой порции информации.

О чем пойдёт речь в этот раз:

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

Что такое правильный пароль?

Я думаю с правильного подхода к работе с паролями начинается безопасность (к сожалению часто она заканчивается там же ещё не успев начаться). Итак начнём с прописных истин. Чего не стоит делать никогда - не используйте в качестве пароля имя того-же экаунта в прямой или перевёрнутой последовательности, своё (равно как и близких родственников) имя, фамилию или дату рождения - эти сведения слишком легко получить из других источников (например прочитать на двери вашего кабинета), не используйте простые слова или названия - взлом по словарю займе считанные минуты. Что же тогда - наилучший пароль состоит из смеси цифр, символов, малых и больших букв, причём первые три группы должны быть обязательно представлены в пароле. Почему? В Windows до сих пор существует метод криптования паролей называемый LM, но просто необходим если в вашей сети ещё остались машины с Windows 95 или 98, а так же UNIX с Samba ранних версий (кстати, если у вас динозавры уже вымерли, позже мы рассмотрим как запретить этот беспридел). Чем же так плох LM, дело в том что максимальная длинна пароля в нем 14 алфавитно-цифровых символов которые он переводит в нижний регистр перед криптованием (т.е. те самые три первых группы описанные ранее). После этого криптует пароль разделив по 7 символов, если длинна пароля 7 или менее знаков - хеш удваивается. Что в результате - простейший случай это симметричный хеш - заранее знаем что длинна пароля не более 7 символов, перебирать только алфавитно-цифровые нижнего регистра. Просто бальзам на сердце Bruteforce-ра. Теперь маленькая загадка - какой пароль лучше 8 или 10 символов. Казалось бы ответ очевиден - чем длиннее тем лучше ;) но не в этот раз. Что сделает умный хакер увидев несимметричный хеш, конечно начнёт взлом со второй половины, в надежде (обычно вполне оправданной), что до 14-и знаков дело не дошло, а значит и взлом будет легче. ОК, если пароль состоял из 8 символов, через секунду в руках взломщика будет последний. Что с ним делать? Ничего :_( Но совсем другое дело если у тебя три последних буквы, тут уж вполне можно прикинуть, а что же там было в начале: фамилия, дата рождения, номер телефона?

Подводим итог сказанному выше - хороший пароль имеет длину 8, а лучше 14 знаков, не может быть найден в словаре и состоит цифр, знаков и букв верхнего и нижнего регистра. Идиллическая картина, но как же этого добиться. Существуют организации, которые генерируют надёжные пароли специальными программами и заставляют своих пользователей ими пользоваться, запретив опцию замены пароля. Скажу прямо - это просто отвратительно, мало того людей лишают свободы выбора и заставляют набирать абсолютно не читабельные ругательства. С точки зрения security есть как минимум две большие проблемы: первая - сгенерированный пароль должен быть как-то доставлен пользователю, и тут уж громадное поле для краж и копирования; вторая - такой пароль невозможно запомнить если ты не Джеймс Бонд или хотя бы Кевин Митник, а посему, он будет записан и скорее всего просто приклеен к монитору или, в лучшем случае уложен в ящик стола. На мой взгляд, единственный способ, это научить своих пользователей применять алгоритм при заведении пароля. Например - к первым буквам имён детей выстроив их по возрасту прибавьте год вашего рождения в обратном порядке разделив их решётками плюс первые три цифры нажимая и отпуская клавишу Shift. Предложите несколько подобных алгоритмов чтобы работнику было легче придумать свой или хотя бы скомбинировать ваши.

Ну чтож, ц пряником разобрались, перейдём ко кнуту. Как не позволить создание слабых паролей. Для этого в Local Security Policy существует раздел - Account Policies. Рассмотрим его подробно

Для этого открываем папку Administrative Tools в Control Panel и запускаем Local Security Policy. На данном этапе нас интересует раздел Account Policies в нем есть две ветви: Password Policy и Account Lockout Policy.

Первая определяет правила работы с паролями, ей и займёмся.

Enforce password history - определяет сколько старых паролей будет помнить Windows. Нужен что бы при запросе на изменение пароля пользователь не мог установить свой старый (или один из старых) паролей. По умолчанию 0 т.е. при запросе на обновление можете поставить свой старый, уже всем известный пароль ;) Думаю 10 норма.

Maximum password age - как ясно из названия максимальное время которое можно иметь один пароль. 60-90 дней вполне приемлемо.

Minimum password age - минимальное время жизни пароля. Поясную зачем это нужно, если установить его в ноль (так оно стоит по умолчанию) то умный пользователь легко обойдёт ограничение "Enforce password history" просто перебрав нужное количество временных паролей. Установим 1 день, и юсер не станет этого делать.

Minimum password length - минимальная длинна пароля. Это мы уже обсудили. Я ставлю 14 знаков, хотя часто слышу нелестные слова от тех кто это набирает.

Password must meet complexity requirement - это (от Microsoft) означает: как минимум 3 из 4 описанных выше групп символов должны быть представлены в пароле, плюс , более трех символов подряд в имени и пароле совпадать не могут. По умолчнию отключено, по уму включить.

Store password using reversible encryption for all user in the domain - хранить пароли криптованые так что можно восстановить исходный текст. Практически тоже самое что хранить их открытым текстом. Почти никогда не нужен и выключен по умолчанию.

Второй раздел - Account Lockout Policy

  • Account lockout threshold - Количество неудачных попыток ввести пароль, после которого учётная запись будет заблокирована. На мой взгляд 3-5.
  • Account lockout duration - Время которое запись будет оставаться открученной. Эта настройка позволит владельцу все же войти в систему после разблокировки. Две особенности: первая - если параметр установлен в 0, пароль не будет разблокирован без участия администратора; вторая - локальный администратор не может быть блокирован от локального (с системной консоли) входа. Рекомендую для критичных систем 5 мин. для простых 15 мин.
  • Reset account lockout counter after - Время которое должно пройти с последней попытки для сброса счётчика "Account lockout threshold" в ноль. По понятным причинам должно быть меньше или равно "Account lockout duration"

Вот пожалуй и все что касается Account Policies. Теперь несколько слов о других параметрах связанных с паролями и авторизацией. Раздел политики Security Options. Начнём с

  • Prompt user to change password before expiration - этот параметр описывает за сколько дней до истечения срока действия пароля будет выдано сообщение о необходимости замены. (В реестр он представлен как HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\PasswordExpiryWarning. Обычно 15 дней.
  • Number of previous logons to cache - Этот параметр позволяет машине члену домена кэшировать пароли локально. Желательно устанавливать значение в 0, но если машина член домена, вы не сможете зайти на неё при отсутствии доступа к контроллеру домена. При необходимости такого подключения установите в 1.
  • Recovery Console: Allow automatic administrative logon - Если параметр разрешён, при вход в Recovery Console, не будет запрашиваться пароль администратора.
  • LAN Manager Authentication Level - как уже говорилось LM наиболее слабый метод криптования пароля применяемый в Windows. Установите этот параметр в "Send NTLMv2 responses only\refuse LM & NTLM" и ваш сервер перестанет разрешать удалённые подключения с низким уровнем криптования пароля. (Значение в реестре - HKLM\System\CurrentControlSet\Control\Lsa\LMCompatibilityLevel максимальный уровень 5, минимальный "Send LM & NTLM responses" = 0)
  • Send unencrypted password to connect to third-party SMB servers - если этот параметр разрешён, Windows будет по запросу пересылать в сети пароль открытым текстом. Применяется для связи с программами не поддерживающими методы криптования принятые в Microsoft. Параметр должен быть отключён. (HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\EnablePlainTextPassword = 0)
  • Do not display last user name in logon screen - Запрещает показ имени последнего пользователя вошедшего на машину. Таким образом атакующий должен подобрать не только пароль но и имя.
  • Rename administrator account - поскольку запись Administrator является стандартною, она может использоваться ка цель взлома. Параметр позволяет использовать другое имя как обычного администратора. Желательно создать ложную учётную запись Administrator, которая будет заранее блокирована, иметь сложный случайный пароль, обнулённые часы работы и просроченную дату устаревания. Ложный администратор не должен иметь ни каких прав на машине и используется как ловушка в IDS (Intrusion Detection Systems). Попытка зарегистрироваться под этим именем вызовет тревогу. Следует знать что SID у нового администратора останется прежним (предустановленным) и новое имя может быть узнано с помощью программ типа sid2user.
  • Rename guest account - переименовывает Guest запись соответственно.

Нужно отметить что в версиях Windows выше чем Win2K (WinXP, Win2K3, в Vista наверное тоже, но я ещё не проверял) добавлены дополнительные параметры:

  • Network security: Do not store LAN Manager hash value on next password change - запрещает сохранять новый пароль (после изменения) в LM формате. Поскольку алгоритмы шифрования пароля однонаправленные - т,е, пароль не может быть восстановлен из хеша (только подобран перебором) Windows вынужден хранить все форматы паролей: LM, NTLM и NTLMv2. Включите эту опцию, если ваша система не использует старые протоколы.
  • Accounts: Limit local account use of blank passwords to console logon only - не позволяет подключение с пустым паролем, кроме как через физическую консоль. Пользователи с пустым паролем не смогут подключится к серверу через сеть. ( HKLM\System\CurrentControlSet\Control\Lsa\LimitBlankPasswordUse = 1)
  • Interactive logon: Allow Automatic Administrator Logon - Позволяет администратору автоматически подключится к серверу если вам нужен безпарольный вход в систему (например для авто инстоляции с перезагрузкой). К сожалению, вы вынужденны сохранить пароль в реестре открытым текстом. Структура

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
DefaultUserName="имя_пользователя"
DefaultPassword="пароль"
AutoAdminLogon="1" (если вход требуется члену группы Administrators)
ForceAutoLogon ="1" (если перед входом высвечивается предупреждение)

Я настоятельно рекомендую создавать временного пользователя для подобных целей, и разрушать учётную запись скриптом сразу после входа.

  • Accounts: Administrator account status - запрещение этого параметра приводит к блокировке записи администратора, например если желателен доступ только администратору домена. Реактивировать запись может член администраторской группы или через Safe Mode где этот пользователь никогда не блокируется.
  • Accounts: Guest account status - активация позволит пользователям без пароля подключатся к серверу как Guest.

Ещё два поля, связанные со входов в систему, они позволяют предупредить пользователя о правилах работы и законности подключения на данном сервере:

  • Interactive logon: Message title for users attempting to log on - заголовок сообщения - будет высвечен на рамке окна. (HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\LegalNoticeCaption)
  • Interactive logon: Message text for users attempting to log on - текст сообщения (HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\LegalNoticeText)
  • Interactive logon: Require Domain Controller authentication to unlock workstation - если активна, авторизация не может быть поризведена из кеша (вспомните о Number of previous logons to cache). Если опция выключена - для проверки пароля используется кеш, а подключение к домену происхоДит асинхронно.
  • Network access: Do not allow anonymous enumeration of SAM accounts - не позволяет не авторизованному пользователю получить список учётных записей (имеет некоторые побочные эффекты при работе в домене)
  • (HKLM\System\CurrentControlSet\Control\Lsa\RestrictAnonymousSAM = 1)
  • Network access: Do not allow anonymous enumeration of SAM accounts and shares - как и приведущий он ограничивает доступ так же к списку розданных ресурсов. (HKLM\System\CurrentControlSet\Control\Lsa\RestrictAnonymous = 1)
  • Network access: Let Everyone permissions apply to anonymous users - позволяет не авторизованному пользователю получить некоторые дополнительные возможности, например список пользователей и доступных ресурсов в домене - сведения которые могут быть применены в социальной инженерии, например. (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA\EveryoneIncludesAnonymous = 0 )
  • Network access: Named Pipes that can be accessed anonymously - содержит список разрешённых коммуникационных сессий (именованных каналов) которыми пользуются аппликации для связи через сеть. Если анонимный доступ на машину запрещён, этот параметр может позволить стандартным аппликациям т.к. сервисы - Sever, Workstation, многие DCOM аппликации (о том все ли DCOM-ы нужны поговорим позже). (HKLM\System\CurrentControlSet\Services\LanManServer\Parameters\NullSessionPipes - формат Multi-String)
  • Network access: Restrict anonymous access to Named Pipes and Shares - запрещает анонимный доступ к "Named Pipes" и "Shares" даже если он был разрешён в "Network access: Named pipes that can be accessed anonymously" и "Network access: Shares that can be accessed anonymously"
  • Network access: Shares that can be accessed anonymously - содержит список сетевых ресурсов доступных анонимно. Очень опасный параметр, находящиеся в нем ресурсы будут доступны любому пользователю сети. Используйте его осторожно и только в случае необходимости. (HKLM\System\CurrentControlSet\Services\LanManServer\Parameters\NullSessionShares\NullSessionShares - формат Multi-String)
  • Network access: Sharing and security model for lkcal accounts - описывает как пользователь прошедший сетевую авторизацию будет обращаться к ресурсам сервера. Имеет два значения Classic - 0 позволяет установить разные уровни доступа для разных пользователей, Guest only - 1 рассматривает все пришедшие из сети будут рассматриваться как Guest. Этот параметр не действует на доменную авторизацию, а так же на интерактивные подключения через службы типа Telnet или Terminal Services. (HKLM\System\CurrentControlSet\Control\Lsa\ForceGuest = 0)

На этом мы закончим рассмотрение параметров политики безопасности связанных с авторизацией. Остальные параметры постараемся рассмотреть в следующих выпусках. Хочу только заметить, что ключи реестра приведённые в этом разделе могут быть использованы для немедленного изменения значения, или даже для временного локального обхода доменной политики. Однако для создания постоянной политики я рекомендую использовать стандартные редакторы локальной и групповой политики. А так же, как наилучший метод - создание файлов темплейтов политики которые позже могут быть загружены через GUI или secdit.exe. Превосходство этого метода заключается не только в том что повреждённая или изменённая политика может быть легко восстановлена в любой момент, но и в том что можно автоматически проверить расхождения между действующими значениями и темплетом.

В заключении этого раздела хотелось бы сказать несколько слов о других (не использующих обычный пароль) методах авторизации. Прежде всего обратим внимание на системы использующие так называемые Smart card и одноразовые пароли типа SecurID. Smart card - позволяют пользователю авторизацию с очень длинным паролем (2048 и более символов) без необходимости его ручного ввода. SecurID генерирует новый (обычно 6 - 8 значный) пароль примерно каждую минуту, что делает бессмысленным кражу пароля. Главной опасностью такого метода является кража карты или TokenSecurID (обычно в форме брелока). Для устранения этой опасности используется pin код (обычно 4-х значное число) который вводится в компьютер либо в сам Token. При трёх неудачных попытках микро-контроллер устройства полностью блокируется, что делает его абсолютно непригодным к использованию. Другой метод, приобретающий все большую популярность, это биометрия (biometric) - измерение уникальных биологических данных владельца. Наиболее популярны сегодня: отпечаток пальца (fingerprint), рисунок сетчатки глаза (retinal scanning), а так же измерение био-электрических показателей например ладони.

Какие программы следует спрятать подальше

Существует большое количество инструментов в Windows которые позволяют значительно облегчить жизнь системному администратору. С их помощью можно настроить и контролировать систему, написать автоматические скрипты на все случаи жизни или получить удалённый доступ к необходимым ресурсам. К сожалению, эти же инструменты могут стать источником немалой головной боли. Чего стоит одна tftp.exe - излюбленное средство вирусов для закачивания на ваш компьютер основной исполняемой части, всевозможных "Back doors" или даже "Root kits". И так, вот список программ которые, на мой взгляд, должны быть надёжно изолированны от всех пользователей (да и самой системы) кроме администратора:

  • arp.exe
  • at.exe
  • atsvc.exe
  • attrib.exe
  • cacls.exe
  • cmd.exe
  • command.com
  • cscript.exe
  • dcomcnfg.exe
  • diskcomp.com
  • diskcopy.com
  • debug.exe
  • format.com
  • gpresult.exe
  • edit.com
  • edlin.exe
  • finger.exe
  • ftp.exe
  • ipconfig.exe
  • iexpress.exe
  • irftp.exe
  • ipsecmon.exe
  • label.exe
  • nbtstat.exe
  • net.exe
  • net1.exe
  • netsh.exe
  • netstat.exe
  • nslookup.exe
  • ntbackup.exe
  • ping.exe
  • poledit.exe
  • qbasic.exe
  • rcp.exe
  • rdisk.exe
  • regedit.exe
  • regedt32.exe
  • regini.exe
  • rexec.exe
  • route.exe
  • rsh.exe
  • runonce.exe
  • runas.exe
  • srvmgr.exe
  • secedit.exe
  • setreg.exe
  • sysedit.exe
  • syskey.exe
  • telnet.exe
  • tftp.exe
  • tracert.exe
  • verifier.exe
  • wscript.exe
  • xcacls.exe
  • xcopy.exe
  • certmgr.msc
  • ciadv.msc
  • compmgmt.msc
  • devmgmt.msc
  • dfrg.msc
  • diskmgmt.msc
  • eventvwr.msc
  • faxserv.msc
  • fsmgmt.msc
  • gpedit.msc
  • ias.msc
  • lusrmgr.msc
  • ntmsmgr.msc
  • ntmsoprq.msc
  • perfmon.msc
  • secpol.msc
  • services.msc
  • webfldrs.msi
  • wmimgmt.msc

Обратите особое внимание на файл cmd.exe. Это, как всем известно, командный процессор. Побочный эффект такого изменения - невозможность запуска .bat файлов любыми пользователями кроме администратора. О запрещении интерактивного использования командного процессора поговорим позже. А теперь, я хочу обсудить два возможных метода решения этой задачи. Первый - изменение прав доступа к файлам, без изменения их места положения. Второй в добавок к изменению прав, перенос файлов в отдельную доступную только для администратора директория. Независимо от метода, я рекомендую следующие права: Administrator - Read&Execute, Users - Deny All, Everyone - Deny Write. ЕслИ применён второй метод (я обычно пользуюсь именно им) такие же права установите и на саму директорию. Основным плюсом этого метода является защита от вредоносных скриптов, написанных в расчёте на стандартное месторасположения системных утилит и запущенных под правами администратора. Небольшое неудобство в том что в таком случае администратор не сможет запускать bat файлы простым двойным кликом, и будет вынужден использовать структуру <new_path>\cmd.exe /c или /k <script>.bat /ц -применяется если после окончания работы скрипта окно должно быть закрыто, иначе /к.

Повышаем надёжность TCP/IP

Этот раздел будет совсем небольшим. Я опиши набор ключей в реестре которые позволяют сделать TCP стек более устойчивым к DOS (Denial-of-service attack) атакам. Предназначение конкретных ключей легко понять из их названия, поясню только некоторые из них. Все параметры находятся в разделе конфигурации TCP/IP сервиса и имеют формат DWORD (если параметр не представлен в реестре, его необходимо создать)

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

  • EnableDeadGWDetect = 0 (Запрещает изменить default gateway если считает его неустойчивым)
  • EnableICMPRedirect = 0
  • IPEnableRouter = 1
  • DisableIPSourceRouting = 2
  • EnablePMTUDiscovery = 0 (Запрещает динамическое определение MTU (maximum transmission unit), устанавливает 576 bytes для всех компьютеров не находящихся в той же подсети)
  • KeepAliveTime = 300000
  • KeepAliveInterval = 1000
  • PerformRouterDiscovery = 0
  • SynAttackProtect = 2 (Перестраивает комплекс параметров для защиты от Syn атак)
  • TcpMaxHalfOpen = 100
  • TcpMaxHalfOpenedRetried = 80
  • TcpMaxPortsExhausted = 5
  • TcpMaxConnectResponseTransmissions = 3 (Если сервер подвергся жёсткой SYN flood атаке, измените это значение в 1. Однако это может повлиять на количество падений в корректных соединениях)

Ну вот пожалуй и все на этот раз. Сегодня мы коснулись широкого спектра проблем в области Windows security от простых правил работы с паролями и до тьюнинга TCP/IP стека. Но немало важных вопросов ещё впереди.

И так следующий раз:

  1. Не всё что удобно - полезно, или какие сервисы лучше остановить
  2. Права на диски - забудьте про группу Everyone
  3. А где же у него кнопка? Работаем с registry

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

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