Укрепление (hardening) сервера
Системные политики и обучение
Внутри любой информационной системы существует множество устройств, которые могут быть использованы или злоупотреблены взломщиком для получения неавторизированного доступа к данным. Сюда входят незащищенные концентраторы и коммутаторы, гостевая учетная запись, открытые беспроводные сети и даже сети Bluetooth.
К примеру, открытая беспроводная сеть могла бы позволить хакеру полностью обойти все другие защитные устройства и получить свободную власть во внутренней сети.
Вот почему системные политики и обучение являются ключевыми предохранительными инструментами.
Всякий раз, когда компания нанимает нового пользователя, его обычно сопровождают к офису или комплексу, дают имя пользователя и пароль и затем предлагают приступить к работе. В более сознательных в плане безопасности организациях, новонанятого могут попросить прочитать и подписать соглашение о соответствующем применении компьютерной системы.
К сожалению, как правило, настолько широко распространено и совершенно лишено смысла то, что у пользователей иногда складывается такое впечатление, будто до тех пор, пока они не раскрывают свой пароль, любая игра будет честной, включая пользование P2P-клиентом и употребление пропускных мощностей организации для обмена музыкальными (или другими) файлами с сотрудниками и, если нет должного уровня безопасности, с внешними людьми.
Независимо от того как хорошо и всеобъемлюще написана политика безопасности, она бесполезна, если конечный пользователь не читает и не понимает ее. Обязательно прочитайте "лекцию 2, "Методики построения систем безопасности"" , особенно те разделы, в которых говорится о политиках безопасности, о компетентности и обучении пользователей, о проверке на соответствие.
Сканеры портов
Сканер безопасности NMap (сокращение от Network Mapper) – замечательный инструмент для укрепления, доступный по следующему URL-адресу:
NMap – это продукт open source2Open source – проект с открытыми исходными программными кодами., доступный для многих почитателей как UNIX, так и Windows (NmapNT). Он позволяет системным администраторам использовать "сырые" IP-пакеты для определения (помимо всего прочего) следующего:
- какие узлы наличествуют в заданной сети;
- какие службы (порты) открыты;
- какая работает операционная система и какой версии;
- какие используются типы пакетных фильтров и брандмауэры.
NMap также имеет возможность создавать и отправлять узлу сети фрагментированные пакеты. Используя опцию –f (фрагментирование), можно заставить NMap выполнить сканирование фрагментированными IP-пакетами. В режиме фрагментирования NMap расщепляет TCP-заголовок на несколько пакетов, чтобы усложнить обнаружение сканирования пакетными фильтрами и системами обнаружения вторжения (Intrusion Detection Systems, IDS).
Хотя этот метод и не сможет одурачить брандмауэры, которые поддерживают целостность пакетов, многие сети не способны справиться с перегрузками при отслеживании фрагментов и, таким образом, не поддерживают этого.
В конце концов такие инструменты, как Nessus, используют NMap в своем ядре, что делает NMap еще более популярным.
9.1.3 Резюме по основам укрепления
В этом разделе были очень кратко рассмотрены несколько популярных техник укрепления ИТ-системы и то, о чем следует помнить системным администраторам и вообще всем тем, кто имеет дело с ИТ-безопасностью. Дальнейший материал лекции более глубоко раскроет намеченные концепции и объяснит в частности техники и методы укрепления ИТ-инфраструктуры так, как это должно быть.
9.2 Безопасность операционной системы
Операционная система определяет все то, что может быть сделано с ИТ-системой, и то, каким образом это будет делаться. То ли происходит взаимодействие с файловой системой, то ли отправка электронной почты посредством Lotus Notes, то ли разговор с кем-нибудь через Sametime – за всем этим стоит "закулисная" работа операционной системы по обеспечению пользователя соответствующей технической поддержкой для интерпретации его запросов в нечто такое, с чем ИТ-система способна работать.
И хотя операционные системы различаются на многих уровнях, наиболее общие из них определяют нечто намного большее, чем простой интерфейс между пользователем и машиной. В них входят программы, дающие пользователю многочисленные дополнительные возможности: от простых скринсейверов3Скринсейвер – программа-хранитель экрана. до сложным схем файлового шифрования. Но при этом важно понимать, что все эти программы – именно дополнения, добавленные в ОС и не являющиеся необходимыми для функционирования компьютера.
Многие пользователи тесно знакомятся с аксессуарами операционной системы (такими, как игры, идущими в комплекте с ОС), но совершенно забывают о тех средствах безопасности, которые входят в поставку, чтобы помочь им поддерживать свою операционную среду надежной и безопасной. В результате многие ИТ-системы так и находятся в небезопасном состоянии, что оставляет их подверженными опасности заражения вирусом или даже полной компрометации взломщиком.
Данный раздел посвящен вопросам безопасности операционной системы. Его цель – рассказать о таких специальных программах настолько подробно, чтобы процесс их укрепления был легок как для понимания, так и для выполнения. Это важно, поскольку достаточно всего лишь одного вируса или программы-"трояна", чтобы запустить цепную реакцию заражения компьютеров и компрометации ИТ-систем.
9.2.1 Обзор операционной системы
Прежде чем углубляться в то, что называется безопасностью в операционной системе, необходимо знать, где же собственно ОС начинается и где заканчивается. Наш краткий обзор описывает функциональность и предназначение операционной системы, а также то, как она используется для создания компьютерного опыта.
Функции операционной системы
Кратко говоря, операционная система должна обеспечить выполнение двух основных функций. ОС должна:
- управлять ресурсами, доступными компьютерной системе;
- обеспечить приложениям надежный, стабильный, безопасный и совместимый интерфейс для доступа к ресурсам компьютера.
Первая функция имеет особенно критических характер, поскольку именно она определяет то, каким образом приложения получают доступ к системным ресурсам. Посредством контроля различных аспектов использования аппаратуры и программного обеспечения ОС гарантирует, что каждое приложение получит возможность использовать процессор.
Вторая функция определяет методы, посредством которых приложение может получить доступ к этим ресурсам. Поскольку ОС зачастую выступает в качестве буфера между выполняющейся программой и аппаратурой, нужны какие-то средства, позволяющие приложениям получать доступ к ресурсам без необходимости знать всю топологию компьютерной системы.
Виды операционных систем
Есть четыре основных вида операционных систем, классифицируемых согласно типам программ, которые они поддерживают, и способу взаимодействия этих программ с пользователями:
- Операционная система реального времени. Наиболее часто такая операционная система встречается в производстве роботов и в научных приборах (хороший пример – QNX). В ней нет много места для пользовательских операций за исключением отдельных изменений в конфигурации. Обычно в такой операционной системе находятся идеально отточенные механизмы работы со временем, поскольку даже самая незначительная ошибка может иметь значительные последствия в автоматическом производстве или измерениях.
- Однопользовательская однозадачная операционная система. Этот вид операционных систем используется такими устройствами, как PDA4PDA – Personal Digital Assistant, личный цифровой секретарь, тип сверхлегкого миниатюрного персонального компьютера с жидкокристаллическим экраном, клавиатурой и/или рукописным вводом. или другие миникомпьютеры (хороший пример – Palm OS). По большей части она позволяет одному пользователю работать с одной программой за один раз. Если требуется запустить еще одну программу, пользователь сначала должен закрыть текущее приложение.
- Однопользовательская многозадачная операционная система. Этот вид операционных систем известен больше всего, так как к нему относятся и системы Microsoft Windows. В такой операционной системе пользователь может открыть множество программ и переключаться между приложениями так, как ему требуется. Фактически сейчас ведется много дебатов по поводу того, что, хотя Windows Server Operating Systems и выглядят как многопользовательские системы, тем не менее они есть не что иное, как однопользовательские многозадачные операционные системы (за исключением Terminal Services).
- Многопользовательская операционная система. Истинная многопользовательская операционная система позволяет многим пользователям одновременно получать доступ к компьютерным ресурсам. Общеизвестный пример ОС такого типа – Linux. В системе такого типа ОС обрабатывает запросы от многих пользователей и поддерживает жесткий контроль над ресурсами, чтобы гарантировать то, что ни один пользователь никаким образом не повлияет на какого-либо другого пользователя.
Задачи операционной системы
Операционная система отвечает за широкий спектр задач внутри компьютерного окружения. Именно эти задачи часто являются тем, что делает одну операционную систему надежнее и легче в использовании по сравнению с другой. То, как ОС управляется с этими задачами, определяет реальные возможности операционной системы.
- Управление процессором. Операционная система должна обеспечить эффективное использование процессора при выполнении реальной работы и то, чтобы каждое приложение получило свою часть процессорного времени.
- Управление памятью. Это определяет те методы, посредством которых операционная система выделяет приложениям и функциям самой операционной системы память.
- Управление устройствами. Поскольку операционная система состоит из разнообразных аппаратных компонентов (жесткий диск, монитор, мышь, клавиатура и т. д.), она должны быть способна управлять тем, как все эти компоненты взаимодействуют друг с другом.
- Управление хранением информации. Операционная система не только осуществляет контроль за активными ресурсами, но и определяет, каким образом хранятся файлы и данные, при этом обеспечивая их сохранность.
- Прикладной интерфейс. Операционная система действительно является мостом между приложениями и компьютерными ресурсами, что означает, что она должна для связи с приложениями предоставить интерфейсы прикладного программирования (APIs, Application Programming Interfaces).
- Пользовательский интерфейс. Будь то посредством командной строки или графического пользовательского интерфейса (Graphical User Interface, GUI), именно операционная система отвечает за взаимодействие с конечным пользователем.
Это было очень краткое резюме тех основных задач, с которыми следует управляться операционной системе.
Следующие разделы описывают вопросы безопасности, с которыми должна иметь дело операционная система для поддержания конфиденциальности, целостности и доступности системных ресурсов. Мы пройдемся по двум наиболее известным семействам операционных систем и по присущим им особенностям реализации систем безопасности. Еще мы опишем наиболее часто встречающиеся методы взлома или обхода этих систем, а также то, каким образом можно защитить себя от подобных видов атак.
С этого момента мы будем ссылаться на две ключевые книги по безопасности, которые в своей библиотеке следует иметь каждому администратору систем Windows или UNIX, а именно:
- Максимальная безопасность для Windows 2000 (Maximum Windows 2000 Security, Sams, 2001, ISBN 0672319659);
- Максимальная безопасность для Linux (Maximum Linux Security, Sams, 1999, ISBN 0672316706).
В этих книгах находится настоящее богатство полезных мыслей по поводу слабых и сильных мест в системах безопасности Windows и Linux.