Скачать 1.43 Mb.
|
6. Средства безопасности операционных систем Современные операционные системы обладают мощными встроенными средствами обеспечения безопасности, осуществляющими аутентификацию, авторизацию, аудит действий пользователей в системе, защиту от сбоев, криптографическую защиту объектов операционной системы, предотвращение сетевых атак. Рассмотрим подробнее встроенные средства безопасности самых популярных операционных систем. 6.1. ОС семейства Windows Разговор о подсистемах безопасности ОС семейства Windows имеет смысл вести начиная с версий NT/2000/XP, поскольку именно это поколение ОС фирмы Microsoft включает в себя надежную подсистему безопасности как одну из концептуальных основ системы. Более ранние версии (Windows 95,98) были ориентированы на домашние компьютеры и не реализовывали большинства функций безопасности платформы Win32. ОС платформы Win32 для обеспечения безопасности позволяют: идентифицировать пользователей сети и управлять их доступом к ресурсам, кодировать информацию с использованием встроенных средств шифрования CryptoAPI, поддерживать безопасную связь по общедоступным сетям с использованием протоколов IPSec, аутентифицировать пользователей по протоколу аутентификации Kerberos версии 5 и посредством смарт-карт, разграничивать доступ к файлам и каталогам с помощью файловых систем NTFS и EFS. Система безопасности платформы Win32 основана на модели безопасности для каждого пользователя или группы пользователей. Каждый пользователь, зарегистрированный в системе, имеет собственную учетную запись, которая содержит персональную информацию о пользователе. Эти данные система использует для проверки подлинности пользователя и для авторизации его при доступе к ресурсам домена. После прохождения процедуры аутентификации пользователю присваивается маркер доступа, идентифицирующий пользователя, его группу, а также определяющий доступные пользователю привилегии в системе для доступа к ресурсам. При этом каждому объекту системы, включая файлы, принтеры, сетевые службы, контейнеры Active Directory и другие, присваивается дескриптор безопасности. Дескриптор безопасности объекта определяет права доступа к объекту и содержит список контроля доступа (ACL – Access Control List), в котором явно определяется, каким пользователям разрешено выполнять те или иные действия с этим объектом. Дескриптор безопасности объекта также определяет, для каких событий должен вестись аудит. Авторизация Win32 основана на сопоставлении маркера доступа субъекта с дескриптором безопасности объекта. Управляя свойствами объекта, администраторы могут устанавливать разрешения, назначать право владения и отслеживать доступ пользователей. Каждый дескриптор безопасности может содержать списки двух типов. Системный список управления доступом (SACL – System Access Control List) позволяет отслеживать права и ограничения, установленные для объекта на системном уровне. В этот список могут вносить изменения только те пользователи, которые обладают правами доступа на уровне системы. Пользовательский список управления доступом (DACL – Discretionary Access Control List) позволяет отслеживать права и ограничения, установленные владельцем данного объекта. DACL может быть изменен пользователем, который указан как текущий владелец объекта. Оба списка имеют одинаковую структуру. Они могут не содержать ни одной записи либо содержать одну или несколько записей. Каждая запись (ACE – Access Control Entry) состоит из трех частей: в первой указываются пользователи или группы, к которым относится данная запись, во второй – права доступа, а третья информирует о том, предоставляются эти права или отбираются. Дескрипторы безопасности могут быть представлены либо в абсолютном, либо в относительном формате. Абсолютный формат предусматривает запись дескриптора безопасности в память в виде структуры указателей и, поэтому, он более удобен для обновления содержимого дескриптора. С другой стороны, поскольку указатели содержат ссылки на области памяти, доступ к которым обычно обеспечивается только компьютером-владельцем, абсолютный формат не слишком хорош для передачи дескрипторов по сети (или записи на диск), так как при этом записываются не сами структуры, а только набор указателей. Поэтому существует второй формат дескрипторов безопасности, в соответствии с которым структура с текущим содержимым всех полей записывается в едином непрерывном блоке памяти. Такой формат более удобен для передачи дескриптора. Он называется относительным форматом (см. рис. 6.1). Задавать список прав доступа можно непосредственно в оконном диалоге Windows в окне свойств объекта (см. рис.6.2 с определением прав на доступ к файлу), а можно программно, используя специальные API-функции. В листинге 1 представлен фрагмент программы, позволяющей программно изменить права доступа к файлу для некоторого пользователя. Рис.6.2. Определения прав доступа к файлу в Windows Листинг 1. Программа управления правами доступа к объектам в Windows SID_NAME_USE SIDType; PSECURITY_DESCRIPTOR pNewFileSD; PACL pNewFileDACL; char *filename = “c:\\testfle.dat”; //имя файла char *username =”guest” ; //имя пользователя char szDomainName[250]=”VPI”; //название домена char UserSID[2048]; //идентификатор безопасности пользователя DWORD dwSIDLength = sizeof( UserSID ); DWORD dwDomainLength = sizeof( szDomainName ); DWORD dwNewACLSize; // получить SID (идентификатор безопасности) пользователя (группы) LookupAccountName((LPSTR) NULL, username, UserSID, &dwSIDLength, szDomainName, &dwDomainLength, &SIDType ); // Инициализировать новый SD (дескриптор безопасности) InitializeSecurityDescriptor( pNewFileSD, SECURITY_DESCRIPTOR_REVISION ); //получить размер ACL dwNewACLSize = sizeof(ACL) + sizeof(ACCESS_ALLOWED_ACE) + GetLengthSid(UserSID) - sizeof(DWORD) ; //создать и проинициализировать новый ACL InitializeAcl( pNewFileDACL, dwNewACLSize, ACL_REVISION2 ); //поместить новый ACE с разрешением на чтение файла для пользователя в конец DACL AddAccessAllowedAce( pNewFileDACL, ACL_REVISION2, GENERIC_READ, &UserSID ); // записать DACL в новый SD файла SetSecurityDescriptorDacl( pNewFileSD, TRUE, pNewFileDACL, FALSE ); // установить новый SD для файла с именем в filename SetFileSecurity( filename, DACL_SECURITY_INFORMATION, pNewFileSD ); Разграничение прав доступа пользователей к файлам и папкам в Win32 возможно только при использовании файловой системы NTFS. Эта файловая система обеспечивает поддержку дескрипторов безопасности для элементов файловой системы и позволяет определять следующие права на доступ: чтение, запись, выполнение, удаление, изменение прав доступа, получение права владельца, запись/чтение атрибутов (см. рис. 6.2). Необходимо, однако, отметить, что файловая система NTFS не выполняет шифрования информации на носителях, в связи с чем существует возможность получить доступ к информации на физическом уровне, например, загрузившись с другой операционной системы, получить доступ к информации в файлах. Такую возможность предоставляет утилита ntfsdos.exe, которую можно запустить, предварительно загрузив на компьютер операционную систему MS DOS c гибкого диска. Для того чтобы предотвратить доступ к логическим NTFS – дискам необходимо запретить загрузку компьютера с гибкого диска, запретить подключение других носителей к компьютеру и отключение носителя от компьютера. Альтернативой этому комплексу мер может стать использование файловой системы EFS (Encrypting File System). Шифрующая файловая система EFS - это тесно интегрированная с NTFS служба, располагающаяся в ядре Windows. Ее назначение: защита данных, хранящихся на диске, от несанкционированного доступа путем их шифрования. EFS использует архитектуру Windows CryptoAPI. В ее основе лежит технология шифрования с открытым ключом. Для шифрования каждого файла случайным образом генерируется ключ шифрования файла. В текущей реализации EFS использует алгоритм - DESX, являющийся специальной модификацией стандарта DES. Локальные учетные записи пользователей в Win32 хранятся в базе данных SAM (Security Account Manager). Она располагается в каталоге \%Systemroot%\System32\ConfIg в отдельном файле, который называется SAM. В учетных записях базы данных SAM находится информация о пользовательских именах и паролях, которая необходима для идентификации и аутентификации пользователей при их интерактивном входе в систему. Учетные записи создаются с использованием инструмента Local Users and Groups (Локальные пользователи и группы) из программы Computer Management (Управление компьютером). Информация в SAM хранится в зашифрованном виде. Пароль пользователя сначала хэшируется алгоритмом MD4, затем результат хэширования кодируется алгоритмом DES, причем в качестве ключа шифрования используется так называемый относительный идентификатор пользователя (Relative Identifier, RID), который представляет собой автоматически увеличивающийся порядковый номер учетной записи данного пользователя в базе данных SAM. При входе пользователя в систему его пароль подвергается аналогичным преобразованиям, и если их результат совпадет с содержимым SAM, пользователь проходит аутентификацию. Для предотвращения доступа злоумышленника к базе данных SAM доступ к ней заблокирован для всех без исключения ее пользователей. Однако, существует возможность сохранить копию этого файла с помощью утилиты резервного копирования NTBACKUP. Доступ возможен также при загрузке альтернативной ОС (уже упоминавшаяся утилита ntfsdos.exe из под MS DOS может предоставить доступ к SAM). Необходимо также защищать от несанкционированного доступа автоматически создаваемую сжатую архивную копию SAM (файл SAM) в каталоге \%Systemroot%\Repair. При наличии файла SAM злоумышленник может получить доступ к хранящимся в нем учетным записям, используя такие программы, как LOphtCrack или Advanced NT Security Explorer. В связи с этим необходимо защищать SAM от несанкционированного доступа, запретив загрузку альтернативных ОС с других дисков в BIOS, установив соответствующие права доступа к файлам SAM в системе или используя специальную утилиту SYSKEY, дополнительно шифрующую содержимое файла SAM. ОС платформы Win32 активно используют возможности защищенного режима процессора и позволяют эффективно защищать код и данные процессов от взаимного влияния друг на друга. Каждый процесс работает в собственном виртуальном адресном пространстве, доступ к которому других процессов запрещен, если только сам процесс-владелец не разрешит его. Платформа Win32 предоставляет программный интерфейс CryptoAPI для кодирования информации по различным алгоритмам, как симметричным, так и асимметричным. CryptoAPI – это интерфейс прикладного программирования (API – Application Programming Interface) в операционной системе Windows, предоставляющий службы шифрования для операционной системы и приложений, работающих под ее управлением. Он содержит ряд функций, позволяющих приложениям шифровать данные и ставить цифровую подпись различными способами, обеспечивая защиту личных ключей. Однако, сами функции CryptoApi не выполняют никаких криптографических действий, а служат лишь посредниками между прикладной программой и CSP (Cryptographic Service Provider – поставщик службы шифрования). Программная часть криптопровайдера представляет собой dll-файл с функциями поддержки шифрования. Криптопровайдеры отличаются друг от друга составом функций, требованиями к оборудованию, алгоритмами, осуществляющими базовые действия (создание ключей, хеширование и пр.). По составу функций и обеспечивающих их алгоритмов криптопровайдеры подразделяются на типы. Например, любой CSP типа PROV_RSA_FULL поддерживает как шифрование, так и цифровые подписи, использует для обмена ключами и создания подписей алгоритм RSA, для шифрования — алгоритмы RC2 и RC4, а для хеширования - MD5 и SHA. В зависимости от версии операционной системы состав установленных криптопровайдеров может существенно изменяться. Однако на любом компьютере с Windows можно найти Microsoft Base Cryptographic Provider, относящийся к типу PROV_RSA_FULL. Именно с этим провайдером по умолчанию будут взаимодействовать все программы. Пользователь имеет возможность приобрести CSP другого производителя, тогда функции CryptoAPI будут работать с программами этого CSP. Пример использования функций CryptoAPI для кодирования файла симметричным алгоритмом RC4 приведен в листинге 2. Листинг 2. Использование функций CryproAPI для кодирования файла HCRYPTPROV hProv; //Подключаемся к криптопровайдеру типа PROV_RSA_FULL if(!CryptAcquireContext(&hProv,NULL,NULL,PROV_RSA_FULL,0)) { puts("Ошибка инициализации CSP\n"; return; } //Открываем входной и выходной файл HANDLE hInFile; hInFile=CreateFile("d:\\NS.doc", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); HANDLE hOutFile; hOutFile=CreateFile("d:\\crypt", GENERIC_WRITE, FILE_SHARE_READ, NULL,CREATE_ALWAYS, 0, NULL); HCRYPTKEY hKey; //генерируем сессионный ключ для RC4 if(!CryptGenKey(hProv,CALG_RC4,CRYPT_EXPORTABLE,&hKey)) { puts("ошибка генерации ключа RC4\n"); return; } BYTE buf[BUFFER_SIZE]; DWORD dwSzLow,dwSzHigh; dwSzLow=GetFileSize(hInFile,&dwSzHigh);// получить размер входного файла unsigned __int64 fSize=(dwSzHigh<<32)+dwSzLow; while(fSize) { if(!ReadFile(hInFile,buf,BUFFER_SIZE,&dwLen,NULL)) //читаем блок данных puts("Ошибка чтения данных\n"); dwSzLow=dwLen; if(!CryptEncrypt(hKey,0,fSize<=BUFFER_SIZE,0,buf,&dwSzLow,sizeof(buf))) //шифруем блок данных puts("Ошибка шифрования\n"); if(!WriteFile(hOutFile,buf,dwSzLow,&dwSzLow,NULL)) puts("Ошибка записи\n"); fSize-=dwLen; } CloseHandle(hOutFile); CloseHandle(hInFile); CryptReleaseContext(hProv,0); Аудит - очень важный элемент системы безопасности, позволяющий регистрировать в специальных журналах события, связанные с действиями пользователей в системе. ОС платформы Win32 поддерживают систему аудита, позволяющую выбрать типы отслеживаемых событий и регистрировать их в системных журналах. Основной инструмент аудита в Windows – утилита Event Viewer (Просмотр событий). Запуск этой утилиты осуществляется из папки Administrative Tools (Администрирование). Рис.6.3. Внешний вид утилиты Event Viewer (Просмотр событий) Windows Windows записывает события в три журнала:
Все журналы размещены в папке %Systemroot%\System32\Config. П ри выборе событий для проведения аудита следует учитывать возможность переполнения журнала. Для настройки каждого журнала можно использовать диалоговое окно Event Log Settings (Свойства журнала, рис. 6.4) . С помощью этого окна можно управлять:
Затирать старые события по необходимости – в случае заполнения журнала при записи новых событий операционная система удаляет самые старые события; Затирать события старее N дней– в случае заполнения журнала при записи новых событий удаляются самые события, но только если они старше N дней, иначе новые события будут проигнорированы; Не затирать события – в случае заполнения журнала новые события не фиксируются. Очистка журнала производится вручную. Каждая запись в журнале содержит сведения о выполненном действии, о пользователе, который его выполнил, а также о дате и времени события. Можно проводить аудит как успешных, так и неудачных попыток выполнения некоторых действий. В журнал заносятся записи 5 различных типов:
Администратор имеет возможность определять набор подлежащих аудиту событий. В WindowsNT это осуществляется в диалоговом окне Audit Policy (Политика Аудита) утилиты User Manager for Domains (Менеджер пользователей) Основные события, которые могут регистрироваться:
Настройка аудита доступа пользователей к тому или иному файлу или папке осуществляется в окне свойств этого объекта, закладка Безопасность-> Дополнительно-> Аудит. С помощью оконного интерфейса здесь можно определить события, связанные с файлом или папкой, возникновение которых должно отражаться в журнале системы. Список возможных событий отображен на рис. 6.5. Рис.6.5. Определение событий, связанных с файлом, подлежащих аудиту 6.2. Средства безопасности ОС семейства Unix. С самых первых версий операционная система Unix разрабатывалась как многопользовательская многозадачная операционная система. Она должна была обеспечивать одновременную работу нескольких пользователей, работающих с различными приложениями. Таким образом, необходимо было защитить пользователей друг от друга и предотвратить несанкционированный доступ, случайный или злонамеренный. Поэтому системе безопасности в ОС семейства Unix отводится очень большое внимание. В настоящий момент существует много различных версий операционных систем семейства Unix, однако все они поддерживают единую модель безопасности. Некоторые современные версии систем поддерживают различные расширения и улучшения системы безопасности, ознакомиться с которыми администратор может из справочного руководства к данным системам. В дальнейшем будем рассматривать традиционную модель безопасности операционных систем семейства Unix. Основу безопасности ОС семейства Unix составляют пользователи системы. Пользователи обладают определенными правами, они владеют файлами, от их имени запускаются системные и прикладные процессы. Причем набор функций, системных вызовов и операций, которые может выполнять процесс зависит от прав пользователя, запустившего этот процесс. Все зарегистрированные в системе пользователи учитываются в файле /etc/passwd. Каждый пользователь системы имеет регистрационное имя (login name). Однако система различает пользователей не по именам, а по ассоциированным с ними уникальным идентификаторам пользователей или UID (User Identifier). Также каждый пользователь является членом одной или нескольких групп. Группы описываются в файле /etc/group. Каждая группа имеет уникальное имя и уникальный идентификатор группы GID (Group Identifier). В файле /etc/passwd указывается идентификатор первичной группы пользователя. Таким образом UID и GID определяют, какими правами обладает пользователь в системе. Среди всех пользователей особое положение занимает пользователь с UID=0, или так называемый суперпользователь. Данный пользователь обычно имеет регистрационное имя root, однако в системе может быть несколько пользователей с UID=0 и различными именами. Суперпользователь обладает неограниченными правами и может выполнять над файлами и процессами любую допустимую операцию. Кроме того, некоторые системные вызовы и операции может выполнять только суперпользователь. Например, следующие операции доступны лишь суперпользователю: создание файлов устройств, изменение системного времени, увеличение лимитов на использование ресурсов, увеличение приоритетов процессов, задание сетевого имени, конфигурирование сетевых интерфейсов, останов и перезагрузка системы. Администратору следует проявлять большую осторожность при работе под именем суперпользователя, поскольку неосторожные действия могут привести к необратимым последствиям. Также во многих системах существует специальная привилегированная группа с GID=0 и именем wheel. Некоторые операции, например выполнение команды su, доступны только пользователям, являющимся членами этой группы. Кроме имени пользователя и идентификаторов в файле /etc/passwd содержатся также: зашифрованный пароль пользователя, домашний каталог пользователя и интерпретатор команд. Алгоритм шифрования пароля зависит от конкретной версии системы и является однонаправленным алгоритмом шифрования. Например, в системе FreeBSD используется алгоритм MD5. Следует особо отметить, что в открытом виде пароль никогда и нигде не хранится. При входе пользователя в систему введенный им пароль шифруется и сравнивается два зашифрованных варианта. Даже суперпользователь не может узнать пароль какого-либо пользователя, однако он может сменить пароль любого пользователя с помощью утилиты passwd. Данная утилита также позволяет обычным пользователям менять их пароли. Если в файле паролей вместо зашифрованного пароля стоит символ ‘*’, то такой пользователь не сможет войти в систему. Если же поле пароля пустое, то пользователь сможет войти в систему, введя пустой пароль. Даже в зашифрованном виде файл паролей предоставляет некоторую угрозу безопасности, поскольку возможен подбор паролей, например, с использованием словаря. Поэтому во многих системах пароли были перенесены из файла /etc/passwd в другие файлы. Например, во FreeBSD пароли находятся в файле /etc/master.passwd, а в Solaris и Linux в /etc/shadow. Оба этих файла доступны только суперпользователю и недоступны другим пользователям системы даже для чтения. При входе пользователя в систему запускается указанный в файле /etc/passwd интерпретатор команд. Обычно это один из стандартных командных интерпретаторов /bin/sh (Bourne shell), /bin/csh (C shell), /bin/ksh (Коrn shell) или /bin/bash (Bourne shell again), позволяющих пользователю вводить команды и запускать задачи. Для пользователей, которым не нужен интерпретатор в этом поле можно указать, например, /sbin/nologin, /nonexistent (для псевдопользователей) или /bin/date (для удаленных пользователей). В общем случае в этом поле может быть указана любая программа, важно то, что, завершив выполнение этой задачи, пользователь автоматически выйдет из системы. В файле /etc/shells содержится список программ, которые могут быть использованы в качестве командного интерпретатора. Как уже было отмечено, пользователи в ОС семейства Unix могут владеть файлами. Следует отметить, что в Unix файловая подсистема обеспечивает унифицированный интерфейс доступа к данным, расположенным на дисковых накопителях, и к периферийным устройствам. Т.е. доступ ко всем устройствам осуществляется через специальные файлы устройств. В ОС семейства Unix файлы имеют двух владельцев: владельца-пользователя и владельца-группу. Владельцем-пользователем вновь созданного файла является пользователь, создавший файл. Владелец-группа для вновь созданного файла определяется по-разному в различных версиях систем. В BSD-версиях UNIX владелец-группа определяется по группе, владеющей каталогом, в котором создается файл. В AT&T системах владельцем-группой становится первичная группа, которой принадлежит пользователь, создавший файл. В Unix существуют три базовых класса доступа к файлу: |
Учебное пособие является логическим продолжением пособия «Методы... Пласковский А. М., Новопашенный А. Г., Подгурский Ю. Е., Заборовский В. С. Методы и средства защиты компьютерной информации. Межсетевое... |
Миит кафедра “сапр транспортных конструкций и сооружений” ... |
||
Учебное пособие рпк «Политехник» Гринчук Ф. Ф., Хавроничев С. В. Комплектные распределительные устройства напряжением 610 кВ. Часть I: Учеб пособие / Воггту, Волгоград,... |
Учебное пособие рпк «Политехник» Гринчук Ф. Ф., Хавроничев С. В. Комплектные распределительные устройства напряжением 610 кВ. Часть II: Учеб пособие / Воггту, Волгоград,... |
||
Учебное пособие рпк «Политехник» Авторы: Б. А. Карташов (главы 5, 6); Е. В. Матвеева (главы 1, 2); Т. А, Смелова (глава 3); А. Е. Гаврилов (введение, глава 4) |
Учебное пособие Рекомендовано учебно-методическим объединением по... Шевченко Н. Ю. Электронная техника. Руководство к лабораторным работам: Учеб пособие / Волггту, Волгоград, 2006. – 52 с |
||
Учебное пособие Викторова Т. С., Парфенов С. Д. Системы компьютерной графики. Учебное пособие, том 13 Вязьма: филиал фгбоу впо «мгиу» в г. Вязьме,... |
Учебное пособие для подготовки войск го по зомп, М, гу по делам го... Ионизирующие излучения и методика их обнаружения. Приборы радиационной, химической разведки и дозиметрического контроля |
||
Учебное пособие М74 модели и методы управления персоналом: Российско-британское учебное пособие /Под ред. Е. Б. Моргунова (Серия «Библиотека журнала... |
Разъяснения по получению средства криптографической защиты информации «Континент-ап» Выдача средства криптографической защиты информации (далее скзи) «Континент-ап» производится на основании заключенного договора об... |
||
Учебное пособие Пенза 2014 удк 004. 415. 2(076. 5) М31 Рецензен т... М31 Методы и средства проектирования программного обеспечения : учеб пособие / Т. В. Черушева, Т. Ю. Горюнова. – Пенза : Пенз филиал... |
Монография рпк «Политехник» Книга предназначена для инженерно-технических работников проектных и эксплуатационных организаций объектов электроэнергетики и электротехники,... |
||
«защита информации от несанкционированного доступа» Фз о защите информации, который рассматривает проблемы защиты информации и задачи защиты информации, а также решает некоторые уникальные... |
И. Н. Привалов Современные методы и технические средства для испытаний... Учебное пособие предназначено для работников кабельных сетей энергосистем и промышленных предприятий |
||
А. И. Мансурова, Р. Р. Зиннатов методы кха в экологическом мониторинге учебное пособие Методы кха в экологическом мониторинге: Методическое пособие к лабораторным и практическим занятиям для студентов направления подготовки... |
Методические указания к практическим занятиям рпк «Политехник» Методические указания предназначены для проведения практических занятий по дисциплине “Базы данных” в соответствии со стандартом... |
Поиск |