Назначение системы безопасности: обеспечение целостности, управляемости, доступности и контроля.
Целостность
Компьютерная система должна обеспечивать точность, надежность и конфиденциальность обрабатываемых данных. Пользователи системы должны быть уверены в том, что данные, содержащиеся в системе, а также данные, полученные в результате выполнения каких-либо операций над хранящимися данными, являются точными и защищенными от искажения. Системы, которые соответствуют этому требованию, называются системами, обеспечивающими целостность (integrity) данных.
Точность отнюдь не сводится лишь к возможности правильно сложить два числа. В более широкой трактовке обеспечение точности – это обеспечение того, что оба исходных числа и результат вычислений будут защищены от искажения. При этом не должно происходить никаких несанкционированных изменений, а все данные должны быть доступны в любое время для тех, кто имеет соответствующие права доступа.
Целостность данных системы может нарушаться по ряду причин, среди которых главными являются следующие:
· ошибки человека;
· физические сбои во время передачи данных;
· аппаратные сбои (например, разрушение жесткого диска);
· программные ошибки;
· стихийные бедствия (наводнения, ураганы);
· злой умысел (вирусы, «троянские кони», искажение данных и программного кода).
Одних из перечисленных проблем можно избежать, от последствий других можно защититься, а к третьим можно заблаговременно подготовиться – все это достигается путем физической защиты инфраструктуры, создания архивных копий и планирования действий в нештатных ситуациях, защиты от вирусов, применения методов обнаружения ошибок и искажений, а также программного управления передачей данных и доступом.
Если рассмотреть все соответствующие методики в контексте повседневных операций, можно разделить задачу обеспечения целостности данных на четыре следующие категории:
1) целостность данных, хранящихся на сервере;
2) целостность передаваемых данных;
3) целостность программного кода операционной системы;
4) целостность программного кода приложений.
Так как две из этих категорий относятся к области целостности данных, а две другие – к области целостности программного кода, их можно рассмотреть по отдельности.
Целостность данных. Целостность данных, хранящихся на сервере, обеспечивается путем настройки системы управления доступом, соответствующей эксплуатации аппаратных средств и заблаговременной подготовки к возникновению сбоев с помощью создания резервных копий. В систему управления доступом входят как средства обеспечения физической защиты, так и средства управления доступом по компьютерным сетям. Физическая защита сервера заключается в его размещении в том месте, доступ к которому разрешен лишь строго ограниченному кругу лиц (в специальной запираемой серверной стойке, шкафу или отдельном помещении). Доступ по компьютерным сетям контролируется с помощью средств аутентификации и авторизации.
Когда данные копируются с сервера или, наоборот, сохраняются на сервере извне, необходимо также обеспечить их целостность. Часто эту задачу систем безопасности называют целостностью сообщений (message integrity). Если обеспечивается целостность сообщений, значит, отправленное серверу сообщение будет им принято в том виде, в котором оно было отправлено, т.е. во время передачи в сообщение не будет вставлено никаких посторонних данных, фрагменты сообщения не будут дублироваться, модифицироваться, следовать не в том порядке, в котором они были отправлены, или повторяться. Кроме того, гарантируется, что данные не будут нарушены.
Для того чтобы обеспечить решение этих задач, необходимо применить два следующих механизма защиты:
1) обнаружение ошибок. Были ли какие-то данные потеряны или повреждены во время передачи вследствие искажения или сбоя?
2) защиту передаваемых данных. Можно ли предотвратить искажение или потерю данных?
Для обнаружения ошибок, возникающих во время передачи, используются подсчет контрольной суммы, а также более сложные методы. При этом перед отправкой данных вычисляется некоторое число по тем или иным формулам, оперирующим отправляемыми данными. Затем данные и полученное число пересылаются получателю, который снова выполняет над ними те же вычисления и сравнивает результат с переданным ему контрольным числом. Если они не совпадают, значит, во время передачи произошел сбой, и данные необходимо переслать повторно. Понятно, что такой метод сам по себе не защищает от всех возможных искажений, например ничто не мешает злоумышленнику перехватить пересылаемые данные, изменить их, вычислить новое значение контрольной суммы, а затем передать все это получателю.
Вот почему на практике для определения того, были ли искажены данные во время передачи, применяются более сложные методы. Суть их состоит в защите от искажений контрольного числа, полученного на основе передаваемых данных. Точнее, это число модифицируется таким образом, чтобы его мог декодировать только авторизованный получатель. Другой подход заключается в том, что сгенерировать такое число может только авторизованный отправитель. С помощью таких методов достигается гарантированное отсутствие в передаваемых данных искажений, чем и обеспечивается целостность данных.
Windows 2000 обладает встроенными средствами обеспечения целостности данных. Используя для аутентификации протокол Kerberos, встроенную шифрующую файловую систему, а также средства избирательного управления разрешениями файлов и папок, можно защитить данные, хранящиеся в компьютерных системах. Встроенная поддержка служб сертификатов (Certificate Services), протокола IP Security (IPSec – Internet – протокола безопасного межсетевого обмена) и защищенных виртуальных частных сетей (VPN – virtual private network) способствует обеспечению целостности передаваемых данных.
Целостность кода. Выполняемый код операционной системы не должен содержать ошибок, и должен быть защищен от случайного удаления или подмены. Кроме того, необходимо исключить возможность работы на уровне операционной системы. Например, никто не должен иметь возможности внедрить в систему программный код, который воспрепятствовал бы регистрации деятельности той или иной учетной записи.
Инструменты администрирования, используемые для предоставления прав доступа к утилитам операционной системы, должны обеспечивать такие права. Иными словами, если пользователю было предоставлено право добавления новых пользователей, он на самом деле должен иметь возможность добавлять новых пользователей. Что еще более важно, ни один пользователь независимо от того, был ли он авторизован для работы в системе, не должен иметь права добавления пользователей, если такое право не было ему предоставлено в явном виде.
Операционные системы обычно обеспечивают свою целостность путем запрещения доступа к выполняемому коду самой операционной системы, а также путем выполнения этого кода в более защищенных областях оперативной памяти, отдельно от выполняемого кода приложений. Основная защита выполняемого кода во время его хранения в системе обеспечивается в результате установки разрешений, предоставляющих права чтения и выполнения, но без права записи. Путем же разделения в оперативной памяти выполняемого кода операционной системы и кода приложений обеспечивается защита системы от некорректных или вредоносных программ, которые при отсутствии таких защитных мер могли бы привести к нарушению работы или даже к разрушению системы.
Windows 2000 выполняет программный код операционной системы в защищенном режиме процессора, а защиту файлов операционной системы осуществляет посредством установки разрешений файлов и папок. Кроме того, в Windows 2000 имеется дополнительное средство защиты – система Windows File Protection (WFP), которая препятствует перезаписи или удалению защищенных системных файлов.
Защитные функции операционной системы (например, разрешения доступа к программным файлам) можно распространить и на код приложений. К тому же для обеспечения целостности кода можно использовать функции, встроенные в сами приложения. Таким образом, обеспечение целостности приложений возлагается на создателей операционных систем, разработчиков приложений, а также на администраторов, которые должны применять средства защиты приложений, имеющиеся в операционных системах.
Управляемость
Доступ к компьютерной системе и распределение ее ресурсов должны быть управляемыми – даже самые совершенные устройства и схемы защиты не смогут обеспечить безопасность информационной системы, компьютера или сети, если такие устройства и схемы никак не применяются.
Права, которые имеет пользователь в определенной системе, всегда должны предоставляться лицом, уполномоченным на принятие таких управленческих решений, и никем другим. Не должно быть методов, позволяющих другим пользователям обойти или превысить полномочия такого лица. Сначала в соответствии с организационно-штатной структурой предприятия назначаются руководители информационных систем, которые затем, в свою очередь, назначают должностных лиц, ответственных за управление компонентами и отдельными областями информационных систем.
В Windows 2000 можно создать широкий спектр ролей и делегируемых полномочий, которые базируются на полномочиях учетной записи Administrator (Администратор), создаваемой при установке системы. Если компьютеры Windows 2000 объединяются в логическую единицу, называемую доменом (domain), управление системами строится на основе полномочий учетной записи Administrator (Администратор) первого контроллера домена (контроллер домена – это компьютер, на который возложены функции обеспечения централизованного управления доменом).
Несколько доменов могут объединяться в иерархическую структуру, называемую лесом (forest). Хотя в такой структуре защищаемыми единицами являются домены (администратор одного домена по умолчанию не имеет никаких прав или привилегий в другом домене), существует группа Enterprise Admins (Администраторы предприятия), участники которой имеют право управлять любыми доменами леса. Первым участником группы Enterprise Admins (Администраторы предприятия) по умолчанию становится учетная запись Administrator (Администратор) первой системы леса (так называемый корневой домен).
Таким образом, имея доступ к учетным записям администраторов, можно управлять сетью Windows 2000.
Доступность
Доступность (availability) означает, что система (приложение или файл данных) должна быть готовой к использованию, когда к ней предпринимаются попытки доступа. Для того чтобы обеспечить достаточный уровень доступности, система должна быть защищена от каких бы то ни было попыток несанкционированного доступа и нарушений, происшествий, ошибок или недосмотра, в результате которых авторизованные пользователи не смогут получить к ней доступ. Если авторизованные пользователи испытывают проблемы, связанные доступом к системе, это может привести к срыву сроков выполнения работ, потере средств и т.п.
Доступность часто обозначается такими терминами, как «24 x 7» (произносится как «двадцать четыре – семь»), которые означают, что система должна быть доступной авторизованным пользователям двадцать четыре часа в сутки семь дней в неделю. Это не значит, что всем без исключения пользователям таких систем действительно нужно иметь к ним доступ, скажем, в два часа ночи в воскресенье. Но независимо от того, каким образом формулируется доступность, время, когда система должна быть доступной, обязательно нужно соблюдать.
Причины, приводящие к нарушению целостности данных (разрушение жесткого диска, стихийные бедствия, ошибки пользователей, вирусы и злонамеренные действия), могут нарушить и доступность системы.
Аудит
Аудит (auditing) – это наблюдение за тем, происходят ли в системе события должным образом. Для того чтобы обеспечить надлежащий уровень контроля, необходимо иметь средство, с помощью которого можно было бы отслеживать происходящие в системе процессы и события.
Для аудита информационных систем необходимо, чтобы на уровне компьютерной системы велась регистрация событий. Это позволит администраторам, аудиторам информационных систем, а также другим имеющим соответствующие полномочия должностным лицам определять, какие операции выполнялись тем или иным пользователем либо той или иной системой. Степень детализации событий, регистрируемых в контрольных журналах, зависит от следующего:
· возможностей системы аудита, основанных на возможностях конкретной операционной системы;
· работающих средств аудита (некоторые операционные системы не могут функционировать без набора определенных включенных средств аудита).
Контрольные журналы являются эффективным средством для определения действий, выполняемых пользователями. Например, контрольные журналы могут рассказать о том, кто получал доступ к файлам начисления зарплаты, добавлял пользователя к группе администраторов или последним применял принтер для распечатки чеков.
Системы Windows NT и Windows 2000 по умолчанию не включают режима ведения аудита. Однако Windows 2000 предоставляет возможность разработки политики аудита, определяющей тип событий, которые Windows 2000 должна заносить в журнал регистрации событий, имеющих отношение к безопасности. Эту политику затем можно автоматически применять на других серверах и рабочих станциях, а также централизованно обновлять и изменять.