МИНИСТЕРСТВО ОБЩЕГО И ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Факультет прикладной математики и механики Кафедра технической кибернетики и автоматического регулирования
Методические указания к спецкурсу
"Основы информационной безопасности" для студентов 4 курса дневного и вечернего отделений факультета ПММ
Составители: Воронков Б.Н., Голуб В.А., Родивилов В.И., Рудалев В.Г.
Воронеж - 1999
2
Содержание Предисловие............................................................................……….......…..2 1. Рабочая программа и распределение учебных часов по спецкурсу "Основы информационной безопасности"....................................…….....2 1.1. Рабочая программа ...................................................................…...2 1.2. Распределение учебных часов по темам спецкурса..............……3 2. Угрозы информации и политика безопасности.......................……….....5 2.1. Угрозы информации ...............................................................….....5 2.2. Дискреционная (разграничительная) политика ...................…….7 2.3. Политика MLS (многоуровневая политика)..........................……8 3. Криптографические методы защиты информации......………......…...…8 4. Безопасность учетных записей пользователей в Windows NТ………..12 4.1. База данных учетных записей...................................................…..13 4.2. Хранение паролей ...........................................……….............…...13 4.3. Возможные атаки на SAM ...........…...................................….…...14 4.4. Основные методы защиты SAM ..............….....................…..…...16 Список рекомендуемой литературы........................................…..………...20 Приложение 1. Некоторые алгоритмы хеширования и шифрования .…..20 Приложение 2. Словарь терминов…..................................................…......22
Предисловие Методические указания включают распределение учебных часов по спецкурсу, описание различных видов угроз информации, изложение политики безопасности, рассмотрение современных методов криптографической защиты информации и основы информационной безопасности в перспективных операционных средах. Рассматриваемые основные понятия являются основополагающими при изучении ряда разделов учебных курсов специализации «Математическое и программное обеспечение защиты информации».
1.Рабочая программа и распределение учебных часов по спецкурсу "Основы информационной безопасности" 1.1.
Рабочая программа [4, 6, 10, 11]
Целью курса является формирование у будущих системных и прикладных программистов, администраторов баз данных и администраторов безопасности компьютерных сетей структуры знаний об основных поняти-
3
ях и методах защиты информации (данных, знаний) и программного обеспечения (системного, прикладного, инструментального). Защита информации и программного обеспечения представляет собой комплекс методов обеспечения необходимого уровня (частичного, полного или гарантированного) физической и логической доступности, целостности и конфиденциальности при существующих потенциальных угрозах. Курс основан на математических моделях конфликтных ситуаций и на знаниях, полученных студентами из курсов дискретной математики, системного и прикладного математического обеспечения, баз данных и экспертных систем. Курс включает изучение концептуальных, информационных, программных, физических, психологических, математических, криптологических, правовых, экономических, системотехнических и практических основ защиты, вместе реализующих парадигму многоуровневой распределенной системы с учетом ограничений каждого метода защиты. При изучении курса студенты должны получить представление о принципах защиты от несанкционированного доступа, копирования, разрушающих программных средств, криптографической защиты, выполнения защищенных программ и работы с защищенными программами. Курс может помочь при организации обучения по информационной безопасности как составляющей компьютерной грамотности и при разработке спецкурсов по специализации "Защита информации и программного обеспечения".
1.2.Распределение учебных часов по темам спецкурса 1.Концептуальные основы 2 часа. Прагматика, семантика, синтаксис, ограничения, история и современное состояние защиты информации и программного обеспечения. Две парадигмы, десять заповедей и три аспекта защиты (обеспечение доступности, целостности и конфиденциальности). Объекты, потенциальные угрозы и механизмы защиты. Концепция дескриптора. Унифицированная концепция защиты - концепция надежной вычислительной базы: произвольное управление доступом, безопасность повторного использования, метки безопасности, принудительное управление доступом. Классы безопасности. 2.Информационные основы 4 часа.
4
Традиционная и динамическая теория информации. Управление, сообщение, преобразование, код, информация, информирование. Информация, данные и знания о защите. Угрозы и защита для систем управления базами данных (СУБД). Управление доступом, использование представлений для управления доступом, поддержание целостности данных и высокой готовности в СУБД. Защита информации в серверах баз данных. Управление системными, объектными и колонными привилегиями. 3.Программные основы 4 часа. Программное обеспечение и порождаемые им факторы риска. Системы защиты от копирования, использования и изменения программ. Средства собственной защиты, в составе вычислительной системы, с запросом информации, активной и пассивной защиты. Защита операционных систем. Объектно-ориентированные системы. Защита от программных средств отладки и диассемблирования. Защита программ в оперативной памяти. Безопасная связь с внешним миром: мосты, маршрутизаторы, шлюзы и блокираторы. Диагностический контроль программ и инструментальных средств. 4.Физические основы 2 часа. Физические процессы при хранении, обработке и передаче информации. Временные и спектральные характеристики систем обработки информации. Физические и аппаратно-технические методы защиты. Физическая преграда по периметру. Физические методы установления подлинности. 5.Психологические основы 2 часа. Когнитивная психология. Представление знаний о защите. Психология программирования. Классы пользователей. Компьютерное пиратство. Категории хакеров. Психологические методы и психологическая привлекательность защиты. 6.Математические основы 4 часа. Пространство информационной безопасности. Основная теорема безопасности. Доказательство безопасности системы защиты. Оптимальное распределение ресурсов защиты. Модели анализа безопасности. Модели конфликтных ситуаций. 7.Криптологические основы 4 часа. Криптография и криптоанализ. Защищенность и имитостойкость. Шифрование и цифровая подпись. Требования к алгоритму шифрования. Симметричное и асимметричное шифрование. Криптографические стандарты. Электронная шифровальная книга. Шифрование с обратной свя-
5
зью. Криптография с временным раскрытием. Стеганография. Защита от ошибок и удостоверение стойкости шифрования. Совместное криптологическое преобразование и помехоустойчивое кодирование. 8.Правовые основы 2 часа. Закон Российской Федерации "Об информации, информатизации и защите информации". Компьютерное право. Правовая защита - патенты, авторское право и торговые знаки. Лицензирование программ. Этические законы и нормы. Традициональная, модальная и деонтическая логика. 9.Экономические основы 2 часа. Стоимостные модели защиты. Затраты и степень защиты. Стоимость преодоления защиты. Актуарная математика. 10.Системотехнические основы 4 часа. Высокоуровневый синтез систем защиты и инструментальные средства защиты. Уровни, стратегии, паллиативные и перспективные методы защиты. Критерии защищенности. Причины нарушения защиты. Рост множества угроз. 11.Практические основы 4 часа. Методика сравнительного анализа эффективности методов, систем и критериев оценки качества защиты. Выполнение защищенных программ и работа с защищенными программами.
2.Угрозы информации и политика безопасности [3] 2.1. Угрозы информации Различают несколько видов угроз информации. Если ценность информации теряется при ее раскрытии, то говорят, что имеется опасность нарушения секретности информации. Если ценность информации теряется при изменении или уничтожении информации, то говорят, что имеется опасность для целостности информации. Если ценность информации в ее оперативном использовании, то говорят, что имеется опасность нарушения доступности информации. Если ценность информации теряется при сбоях в системе, то говорят, что есть опасность потери устойчивости к ошибкам. Чаще рассматриваются первые три опасности, которые необходимо предотвратить или минимизировать с помощью систем защиты: секретность, целостность, доступность. Под угрозами подразумевают пути реализации опасных воздействий. Так, угроза съема информации и перехвата излучения с дисплея компьютера ведет к потере секретности, угроза пожара - к нарушению це-
6
лостности информации, угроза разрыва канала связи опасна потерей доступности. Угрозы секретности. Существует два нарушения секретности: утрата контроля над системой защиты и каналы утечки информации. В первом случае возможно осуществление несанкционированного доступа к секретной информации. Во втором имеет место ситуация, когда разработчики системы защиты не смогли предупредить, либо система защиты не в состоянии рассматривать такой доступ как запрещенный. Утрата управления системой защиты может быть реализована оперативными мерами, и при этом важными являются административные и кадровые методы защиты. Ситуация, в которой возникает утрата контроля над защитой, может возникать стихийно или создаваться искусственно. Утрата контроля также может стать следствием взламывания защиты самой системы защиты. Весьма опасными являются каналы утечки, основной класс которых в электронных системах обработки данных представляют каналы по памяти, т.е. каналы, образующиеся за счет использования доступа к общим объектам системы. Угрозы целостности. Нарушения целостности информации - это незаконное уничтожение или модификация информации. Защита целостности традиционно относится к категории организационных мер. Основным источником угроз целостности являются пожары и стихийные бедствия. К уничтожению и модификации могут привести также случайные и преднамеренные критические ситуации в системе, вирусы и т.д. Основой защиты целостности является своевременное регулярное копирование ценной информации. Другой класс механизмов защиты целостности основан на идее помехозащищенного кодирования информации на основе введения избыточности в информацию и составляет основу контроля целостности. Он основан на аутентификации, т.е. подтверждении подлинности, целостности информации. К механизмам контроля целостности информации следует отнести создание системной избыточности (повышение "живучести" системы). При этом одновременно решаются и задачи устойчивости к ошибкам и защиты от нарушений доступности. Политика безопасности - это набор норм, правил и практических приемов, которые регулируют управление, защиту и распределение ценной информации. По сути политика безопасности - это набор правил управления доступом. Построение политики безопасности обычно двухэтапно: 1.В информацию вводится структура ценностей и проводится анализ риска.
7
2.Определяются правила для любого процесса пользования данным видом доступа к элементам информации, имеющим данную оценку ценностей.
2.2. Дискреционная (разграничительная) политика Пусть O - множество объектов, S- множество субъектов ( S ⊆ O ), U = { u1 ,u2 ,...,um } - множество пользователей. В соответствии с отображением O → U каждый объект объявляется собственностью соответствующего пользователя. Пользователь, являющийся собственником объекта, имеет все права доступа к нему, а иногда и право передавать часть или все права другим пользователям. Кроме того, собственник объекта определяет права доступа других субъектов к этому объекту, т.е. политику безопасности в отношении этого объекта. Указанные права доступа записываются в виде матрицы доступа, элементы которой есть подмножества, определяющие доступы субъекта si к объекту o j ( i = 1,2 ,...; j = 1,2 ,... ) . Существует несколько вариантов задания матрицы доступа. 1.Листы возможностей, когда для каждого субъекта создается лист (файл) всех объектов, к которым имеет доступ данный субъект. 2.Листы контроля доступа, когда для каждого субъекта создается список субъектов, имеющих право доступа к этому объекту. Существует ряд разновидностей дискреционной политики, однако ряд проблем защиты информации эта политика решить не может. Один из основных недостатков дискреционной политики состоит в неустойчивости к атакам при помощи "троянского коня", т.е. система защиты, реализующая такую политику, плохо защищает от проникновения вирусов в систему и других средств скрытого разрушающего воздействия. Проблемой дискреционной политики является автоматическое определение прав. Когда объектов много, задать вручную перечень прав каждого субъекта на доступ к объекту невозможно. Поэтому матрица доступа различными способами агрегируется, например, оставляются в качестве субъектов только пользователи, а в соответствующую ячейку матрицы вставляются формулы функций, вычисление которых определяет права доступа субъекта, порожденного пользователем, к объекту. Эти функции могут изменяться во времени. В частности, возможно изъятие прав после осуществления некоторого события; возможны и другие модификации. Важнейшей проблемой, возникающей при использовании дискреционной политики, является проблема контроля распространения прав
8
доступа. Так, если владелец файла передает содержание файла другому пользователю, тот, тем самым, приобретает права собственника на информацию. Таким образом, права могут распространяться, и даже, если исходный владелец не хотел передавать доступ некоторому субъекту s к своей информации в o, то после нескольких шагов передача прав может состояться независимо от его воли.
2.3.Политика MLS (многоуровневая политика) Политика MLS имеет дело с множеством информационных потоков в системе и делит их на разрешенные и неразрешенные. В современных системах защиты информации политика MLS осуществляется через мандатный контроль (мандатную политику). Мандатный контроль реализуется подсистемой защиты на самом низком аппаратнопрограммном уровне. Устройство мандатного контроля, удовлетворяющее еще и некоторым дополнительным требованиям, называется монитором обращений. Мандатный контроль проходит каждое обращение субъекта к объекту, если субъект и объект находятся под защитой системы безопасности. Организуется мандатный контроль следующим образом. Каждый объект о имеет метку с информацией о классе с(о). Каждый субъект также имеет метку с(s) о классе доступа, который он имеет. Мандатный контроль осуществляет сравнение меток и удовлетворяет запрос субъекта s к объекту о на чтение ( r ) информации в о, если с(s) ≥ с(о) и удовлетворяет запрос на запись ( w ), если с(s) ≤ с(о).
3.Криптографические методы защиты информации [1, 2, 5] Проблема защиты информации все больше привлекает внимание специалистов, связанных с информационными технологиями. Проблема эта многогранна и решается комплексно с использованием множества мер и способов, начиная с организационно-режимных и кончая применением сложных программно-аппаратных комплексов. Одним из важных способов защиты информации является криптографическая защита или криптографическое преобразование информации, шифрование. Криптология (от греческого крипто-тайный и логос-мысль) - это наука о проектировании и взломе систем информационной безопасности.
9
Криптология разделяется на два направления -криптографию и криптоанализ. Цели этих направлений прямо противоположны. Иностранному термину информация достаточно близко отвечает русское слово смысл. Очевидно, что одну и ту же информацию можно передать разными сообщениями, например, на разных языках, а также письмом, телеграфом, факсом или электронной почтой. С другой стороны, одно и то же сообщение разными людьми понимается по-разному. Например, при сообщении о победе "Спартака" иной футбольный болельщик обрадуется, другой может огорчиться, а третий вообще никак не прореагирует на это сообщение. Таким образом, можно сделать вывод, что информация извлекается людьми из сообщения с помощью ключа, правила, придающего сообщению конкретный смысл. Особую роль играет ключ в криптографии, где его знание гарантирует извлечение истинного смысла сообщения. Язык сообщений (текстов) криптологи считают заранее известным и алфавит его фиксированным. Под алфавитом понимается конечное множество используемых для кодирования знаков. Текст - упорядоченный набор элементов алфавита. Следует различать понятия: тайнопись, коды, шифрация (шифрование). Тайнописью принято называть скрытые сообщения. Коды - это системы условных обозначений или названий, применяемых при передаче информации. В отличие от тайнописи, которая прячет сам факт наличия сообщения, шифровки передаются открыто, а прячется только смысл. Хотя криптологи различают шифры и коды, потому что для практических работ это разные системы, но коды представляют собой шифр простой замены слов. Кодирование часто применяется для повышения качества передачи сообщений. Несомненно, что коды могут служить и для сокрытия смысла сообщений. Однако область применения кодирования для сокрытия смысла ограничена одиночными сообщениями. Криптография занимается проектированием систем шифрования и расшифровывания (дешифрации) конфиденциальных данных в каналах коммуникаций. Она также применяется для того, чтобы исключить возможность искажения информации или подтвердить ее происхождение. Целью криптоанализа является вскрытие шифровок без знания ключа и, порой, без знания примененной системы шифрования. Часто криптоанализ рассматривается как область криптологии, проверяющая и доказывающая устойчивость шифров как теоретически, так и практически. Классическую схему передачи секретных сообщений криптографическим преобразованием можно представить следующим образом. Отпра-
10
вителем сообщение шифруется с помощью ключа, и полученная шифровка передается по обычному открытому каналу связи получателю в то время как ключ отправляется ему по закрытому каналу, гарантирующему секретность. Имея ключ и шифровку, получатель восстанавливает исходное сообщение. В зависимости от целей засекречивания эта схема может несколько видоизменяться. Так, в компьютерной криптографии обычен случай, когда отправитель и получатель - одно и то же лицо. Криптографические преобразования применяют для достижения двух целей по защите информации: 1) недоступность информации для лиц, не имеющих ключа; 2) подтверждение с требуемой надежностью факта обнаружения несанкционированного перехвата или внесения преднамеренных искажений. Системы шифрации, базирующиеся на использовании вычислительной техники, называют криптографическими системами (криптосистемами). В криптосистемах ключ шифрования - специальное уникальное число. Под классической криптографией будем понимать системы шифрования с симметричными ключами (одноключевые системы), когда ключ отправителя должен совпадать с ключом получателя. Здесь обмен секретными ключами в ряде случаев представляет серьезную проблему. В середине семидесятых годов двадцатого века наряду с классическими системами шифрования стали использовать шифровальные системы с открытым ключом. Здесь ключ для шифрования открытый, а для расшифровывания секретный. Поэтому их еще называют двухключевыми системами, асимметричными или системами с несимметричными ключами. Открытый и закрытый ключи математически связаны друг с другом. Информация шифруется с помощью открытого ключа, который доступен всем желающим, а расшифровывается с помощью закрытого ключа, известного только получателю сообщения. Хотя асимметричные криптосистемы быстро развиваются в последние годы, целый ряд преимуществ классических систем позволяет им надежно удерживать ведущее место. К недостаткам криптосистем с несимметричными ключами относятся медлительность и зависимость криптостойкости от длины ключа и современного состояния вычислительных средств. Однако в таких областях, как пересылка ключей и цифровая (электронная) подпись, роль систем с открытыми ключами уникальна. Под криптостойкостью понимается характеристика шифра, определяющая его стойкость к расшифровыванию. Показателями криптостойкости являются количество всех возможных ключей и среднее время, необходимое для криптоанализа. Цифровой
11
(электронной) подписью называется присоединяемое к тексту его криптографическое преобразование, которое позволяет при получении текста другим пользователем проверить авторство и подлинность сообщения. Таким образом, криптография обеспечивает сокрытие смысла сообщения с помощью шифрования и открытие расшифровыванием, которые выполняются по специальным криптографическим алгоритмам с помощью ключей у отправителя и получателя. Современная криптография базируется на использовании двух типов криптографических алгоритмов: классических алгоритмов, основанных на применении закрытых, секретных ключей, и новых алгоритмов с открытым ключом, в которых применяется один открытый и один закрытый ключ. Кроме того, существует возможность шифрования информации и более простым способом - с использованием генератора псевдослучайных чисел. Любая криптографическая система надежна лишь настолько, насколько полно она отвечает следующим требованиям: ♦ невозможность ее раскрытия даже при известном тексте, а в случае раскрытия сообщения - гарантия безопасности сообщений, которые были переданы ранее, и тех, которые будут переданы в дальнейшем; ♦ достаточно большое число вариантов шифрования, не позволяющее раскрыть истинное содержание информации даже с использованием современных вычислительных средств; ♦ высокая сложность шифра, не позволяющая раскрыть его с применением математических методов; ♦ гарантированная надежность хранения ключа и алгоритма шифрования, а также самих шифровальных устройств. ♦ зашифрованное сообщение должно поддаваться чтению только при наличии ключа; ♦ число операций, необходимых для определения использованного ключа шифрования по фрагменту шифрованного сообщения и соответствующего ему открытого текста, должно быть не меньше общего числа возможных ключей; ♦ число операций, необходимых для расшифровывания информации путем перебора всевозможных ключей должно иметь строгую нижнюю оценку и выходить за пределы возможностей современных компьютеров (с учетом возможности использования сетевых вычислений); ♦ знание алгоритма шифрования не должно влиять на надежность защиты; ♦ незначительное изменение ключа должно приводить к существенному изменению вида зашифрованного сообщения даже при использова-
12
нии одного и того же ключа; ♦ структурные элементы алгоритма шифрования должны быть неизменными; ♦ дополнительные биты, вводимые в сообщение в процессе шифрования, должны быть полностью и надежно скрыты в шифрованном тексте; ♦ длина шифрованного текста должна быть равной длине исходного текста. ♦ не должно быть простых и легко устанавливаемых зависимостей между ключами, последовательно используемыми в процессе шифрования; ♦ любой ключ из множества возможных должен обеспечивать надежную защиту информации; ♦ алгоритм должен допускать как программную, так и аппаратную реализацию, при этом изменение длины ключа не должно вести к качественному ухудшению алгоритма шифрования. По сравнению с другими методами защиты информации классическая криптография гарантирует защиту лишь при условиях, что: использован эффективный криптографический алгоритм; -соблюдены секретность и целостность ключа. Однако использование систем криптографической защиты, построенных на основе стойких алгоритмов, само по себе еще не гарантирует надежность защиты. Наряду с разработкой и использованием таких алгоритмов необходимо использование надежных протоколов (правил), регламентирующих применение этих алгоритмов и способных обеспечить заданную криптостойкость.
3. Безопасность учетных записей пользователей в Windows NT [8, 9] По-настоящему безопасной можно считать лишь систему, которая выключена, замурована в бетонный корпус, заперта в помещении со свинцовыми стенами и охраняется вооруженным караулом, - но и в этом случае сомнения не оставляют меня. Юджин Х. Спаффорд
4.1. База данных учетных записей
13
Одним из основных компонентов подсистемы безопасности операционной системы Windows NT является Диспетчер учетных записей [8]. Он обеспечивает взаимодействие других компонентов подсистемы безопасности Windows NT с базой данных учетных записей (Security Account Database, SAM), в которой хранятся имена и пароли пользователей. С помощью SAM Диспетчер производит идентификацию и проверку подлинности (authentication) пользователей при интерактивном входе в систему или при доступе по сети. База данных SAM представляет собой один из кустов (hive) системного реестра Windows NT. Этот куст находится в ветви (subtree) HKEY_LOCAL_MACHINE и называется SAM. Как и остальные кусты реестра, он хранится в отдельном файле в папке \winnt\system32\config. Из этого файла при загрузке ОС строится та часть реестра, которую будет контролировать Диспетчер учетных записей. (В упомянутой папке три файла SAM: последняя версия без расширения, предпоследняя - с расширением .SAV и файл SAM.LOG - журнал транзакций базы). Основная часть информации в SAM хранится в двоичном виде. Доступ на чтение и запись к данному разделу реестра для обычных пользователей и групп Windows NT (в том числе и Administrators) запрещен.
4.2. Хранение паролей Как и в любой другой современной многопользовательской операционной системе, пароли в системе Windows NT хранятся в SAM не в открытом текстовом виде. Для защиты от просмотра они обрабатываются специальной процедурой - хешированием (hashing). В отличие от шифрования хеширование является необратимой операцией. Поэтому, даже если известна хешированная форма пароля, восстановить его в исходном текстовом виде с помощью алгоритма нельзя ни пользователю, ни администратору. В SAM пароли обычно хранятся в виде двух 16-байтовых последовательностей, полученных двумя разными методами. В методе системы Windows NT строка символов пароля (в кодировке Unicode) сначала преобразуется с помощью хеш-функции MD4 в хешированный пароль Windows NT. Это число затем шифруется по алгоритму DES (Data Encryption Standart), a результат сохраняется в базе данных SAM. Для совместимости с другими клиентами и серверами фирмы Microsoft (Windows for Workgroups, Lan Manager) в базе данных SAM хранится также хешированное и зашифрованное представление пароля пользователя в стандарте системы Lan Manager. Этот пароль гораздо менее устойчив к
14
взлому [9], чем пароль Windows NT, полученный с помощью функции MD4. Совместимость паролей. Обычно в SAM сохраняются в зашифрованном виде оба хешированных пароля. Однако в некоторых случаях система может вычислить только один из них (например, если пользователь изменит пароль, работая на ЭВМ с Windows For WorkGroups). При входе пользователя в систему модуль проверки подлинности вычисляет хешированные пароли обоими методами, причем для сравнения используется в первую очередь пароль Windows NT, а если его нет - то пароль Lan Manager. Сравнение с Unix. Безопасность Unix-систем несколько выше. В последних, кроме собственно символов текстового пароля, введенного пользователем, при хешировании применяется 24-битное случайное число. В результате хешированные представления одинаковых паролей разных пользователей отличаются друг от друга. В Windows NT одинаковые пароли в хешированном виде не отличаются, а при их дополнительном DESшифровании для построения ключей берется относительная часть идентификатора безопасности (RID) данного пользователя. Фактически RID это автоматически увеличивающийся порядковый номер учетной записи в SAM. Зная относительные идентификаторы и зашифрованные хешированные пароли, можно извлечь последние из базы SAM, расшифровать и выяснить, какие пользователи имеют одинаковые текстовые пароли. Случайное число, применяемое при хешировании пароля в Unix, сохраняется в файле учетных записей как часть этого пароля. Если злоумышленник попытается вскрыть пароли многих пользователей одновременно, то в Unix ему надо будет приложить значительно больше усилий, чем в NT, поскольку даже в случае совпадения текстовых паролей разных пользователей их хешированные формы отличаются друг от друга. 4.3. Возможные атаки на SAM В компьютерной системе взломщик стремится, в первую очередь, узнать пароль ее администратора либо в хешированном, либо в текстовом виде. Основной удар направлен на базу данных SAM, извлеченные из нее хешированные пароли могут быть впоследствии использованы для установления сетевого соединения с компьютером, подвергшимся атаке, а также для восстановления паролей в текстовом виде. Доступ к базе данных SAM. Доступ к файлу \winnt\System32\ Con-
15
fig\SAM для обычных пользовательских программ заблокирован. Тем не менее с помощью программы NTBACKUP любой обладатель права Back up files and directories может скопировать его в составе реестра на резервный магнитный носитель. Резервную копию реестра также позволяет создать программа REGBACK из Windows NT Resource Kit. Кроме того, взломщик может попытаться переписать копию файла SAM (SAM.SAV) из папки \winnt\System32\Config или сжатую архивную копию - файл SAM._ из папки \winnt\Repair. Извлечение информации из SAM. Чтобы прочитать добытую физическую копию файла SAM, ее можно загрузить в реестр любого доступного Windows NT-компьютера (командой Load Hive в программе RegEdit32). Изучая ее, нетрудно узнать, например, имя пользователя Administrator, даже если оно было изменено. Для этого достаточно просмотреть значения параметров F и V подраздела \Domains\Account\Users\0001F4 в подгруженной базе, поскольку у пользователя Administrator всегда одинаковый RID, равный 500 (т.е. 1F4). Если не включен режим хранения старых паролей, то последние 32 байта параметра V указанного подраздела представляют собой не что иное, как зашифрованные хешированные пароли, сначала Lan Manager, затем Windows NT (Если режим хранения старых паролей в базе данных включен, то в параметр V записываются сначала хешированные представления текущего пароля пользователя, а затем - ранее использованных им паролей). DES-шифрование хешированных паролей выполняется с помощью ключей, построенных на основе RID пользователя, и является обратимой процедурой. Программу, выполняющую такое обратное преобразование, легко найти в Internet. Эта программа извлекает хешированные пароли непосредственно из реестра локального либо удаленного компьютера и выводит их на экран или в файл. Поскольку раздел SAM реестра по умолчанию недоступен даже пользователям группы Administrators, то программа в процессе работы модифицирует списки прав доступа к этому разделу, а по окончании работы восстанавливает их исходный вид. Для применения программы необходимо войти в систему как Administrator, но исходный текст программы также доступен, и это ограничение можно снять. Хотя знание хешированного пароля не дает возможности быстро восстановить его в исходном текстовом виде и входить в систему, но с его использованием взломщик может установить сетевой сеанс с другим компьютером и получить доступ к его ресурсам. Пароль в текстовом виде для этого не нужен. Данное свойство называется равнозначностью паролей. Восстановление паролей в текстовом виде. Для этого чаще всего ис-
16
пользуют два подхода: поиск по словарю и прямой подбор. По первому способу пароль взламывается с помощью некоторого заранее подобранного набора слов, который и называется словарем. Последовательно к каждом слову из словаря применяется хеш-функция, и, как только результат применения совпадет с хешированным паролем из базы данных, пароль считается найденным. Вероятность вскрытия пароля зависит в первую очередь от объема словаря. Разумеется, для взлома применяются специальные программы. Работают они очень быстро. При прямом подборе для получения хешированных паролей используются последовательности символов, генерируемые из некоторого набора автоматически. Такой способ в принципе позволяет вскрыть любой пароль, содержащий символы из данного набора, однако из-за экспоненциально возрастающего числа перебираемых комбинаций работает он гораздо медленнее, чем поиск по словарю. В первую очередь для восстановления текстового пароля используют хешированный пароль Lan Manager, так как он недостаточно устойчив к взлому (алгоритм вскрытия см. в [9]). Программы взлома имеются на общедоступных серверах Internet.
4.4. Основные методы защиты SAM Ограничение физического доступа к основным серверам сети. Основные рекомендации: не применять попеременную (dual-boot) загрузку; форматировать все разделы под файловую систему NTFS; установить пароль BIOS на запуск компьютера, отключив при этом возможность загрузки со сменных магнитных носителей; тщательно планировать формирование групп пользователей, имеющих право интерактивного доступа к серверам и контроллерам доменов. Защита базы данных SAM от несанкционированного доступа. Доступ пользователей ко всем копиям базы данных SAM необходимо строго ограничивать. Потенциальным риском является разрешение на доступ к ним даже со стороны администраторов. Например, злоумышленник может попытаться внедрить в систему троянского коня - программу, которая, маскируясь под стандартную программу операционной системы, выполняет действия, облегчающие дальнейший взлом системы. Запущенная по неосторожности администратором, такая программа может, присвоив его права, передать копию SAM на компьютер взломщика. Следует ограничить количество пользователей с правами администратора и членов групп Backup Operators и Server Operators и запретить им запуск на сервере непроверенных программ и просмотр полученных через Internet сомнитель-
17
ных Web-страниц, использующих технологии ActiveX. Резервный файл SAM.SAV создается при установке или при обновлении ОС и может быть после этого сразу удален. Папку \winnt\Repair надо средствами файловой системы NTFS закрыть для доступа всех пользователей, включая Administrators. Разрешать доступ к этой папке следует только на время работы программы RDISK, которая создает в ней новые архивные копии кустов реестра Windows NT. Принять меры к физическому сокрытию архивных копий и загрузочных дискет. Отмена кэширования паролей на компьютерах домена. По умолчанию имена и хешированные пароли последних десяти пользователей домена, регистрировавшихся ранее на данном компьютере, сохраняются в его локальном реестре. Локальный администратор данного компьютера в состоянии извлечь эту информацию из реестра, и, если среди десяти пользователей обнаружится администратор домена, его пароль может быть взломан. Кэширование информации на локальном компьютере может быть отменено администратором домена. Дополнительное шифрование хешированных паролей в базе данных SAM. Для этого можно применить программу SYSKEY фирмы Microsoft, включенную в состав Service Pack 3 for Windows NT 4.0. Запустить ее могут только члены локальной группы Administrators данного компьютера. Уникальный 128-битный ключ для дополнительного шифрования паролей, созданный программой SYSKEY, после ее работы автоматически сохраняется в реестре для последующего применения. Чтобы усилить защищенность паролей, этот ключ перед записью в реестр зашифровывается еще раз другим (тоже 128-битным ключом). Последний называется системным ключом или ключом запуска. Программа SYSKEY предлагает два способа его хранения: в реестре данного компьютера, на отдельной дискете, либо вообще его не хранить. В последнем случае он будет вычисляться (с помощью хеш-функции MD5) каждый раз при запуске системы на основе пароля, набираемого на клавиатуре системным администратором. Пароль указывается в диалоговом окне программы SYSKEY. Это окно будет выводиться перед появлением приглашения Press Ctrl-Alt-Del to log on. Отменить однажды установленный режим дополнительного шифрования паролей нельзя. Защита учетных записей от подбора. Простейший способ защитить пароли пользователей от вскрытия методом подбора вариантов - включить блокировку учетных записей после определенного количества неудачных попыток входа в систему. Такая блокировка существенно уменьшает возможность подбора пароля той или иной учетной записи пользователя как
18
при интерактивной регистрации, так и при сетевом доступе. Исключением здесь является учетная запись Administrator, создаваемая при установке системы Windows NT. На нее режим обычной блокировки не распространяется. Программа PASSPROP из Windows NT Resource Kit позволяет установить специальный режим блокировки для учетной записи Administrator. Для этого ее надо запустить с ключом /ADMINLOCKOUT. Если после этого произойдет блокировка учетной записи, администратор сможет войти в систему интерактивно на любом из контроллеров домена, но любые попытки регистрации этого пользователя по сети будут отвергнуты. Чтобы дополнительно защитить от подбора пароль администратора (т.е. пользователя с RID, равным 500), рекомендуется изменить имя в его учетной записи. После этого можно создать нового пользователя с именем Administrator, предоставив ему минимальные права. Переименованную учетную запись в дальнейшем лучше вообще не применять, а для системных администраторов можно создать отдельные учетные записи и поместить их в локальную группу Administrators или в глобальную группу Domain Admins. Можно также лишить пользователей этих групп права доступа к Windows NT-компьютеру по сети, особенно если это контроллер домена. В последнем случае, однако, управлять сетью администратору придется непосредственно на этих компьютерах, а не удаленно. Выбор паролей и их фильтрация. Для повышения устойчивости паролей пользователей к взлому рекомендуется принять ряд мер. Во-первых, с помощью программы User Manager for Domains необходимо установить минимальную длину пароля, которая должна быть не меньше 8 символов. Во-вторых, следует установить режим устаревания паролей, чтобы пользователи их периодически обновляли, чем выше риск атаки, тем короче должен быть срок устаревания. Чем шире используемый для построения пароля набор символов и чем длиннее пароль, тем в среднем больше времени понадобится пользователю для его вскрытия. В следующей таблице приведены оценки числа комбинаций символов в зависимости от указанных параметров.
19
Длина пароля A-Z 5 5 26 - 11,9 млн. 6 266 - 309 млн. 7 267 - 8 млрд. 8 268 - 209 млрд.
Набор символов A-Z, 0-9 A-Z, a-z, 0-9 5 5 36 - 60,5 млн. 62 - 916 млн. 6 36 - 2,2 млрд. 626 -56,8 млрд. 367 - 78,4 млрд. 627 -3,52 трлн. 368 - 2,8 трлн. 628 - 218 трлн.
Для взломщика (обладателя персонального компьютера) большинство этих значений вполне по силам. Кроме того, надо учесть недостаточную устойчивость к вскрытию пароля Lan Manager, хранящегося в базе данных SAM. За счет использования в этом пароле половин, полученных независимо друг от друга, и приведения букв к верхнему регистру максимальное число комбинаций, необходимых для его подбора (даже при длине 14 символов и при использовании букв разных регистров и цифр), все равно остается величиной порядка 367, а не 6214 , как в случае пароля Windows NT. Поэтому администратор должен проинформировать пользователей о необходимости применения как можно более широкого набора букв в разных регистрах и цифр. Запрету подлежат пароли, состоящие только из цифр, и пароли, представляющие слова того или иного языка. Способы фильтрации паролей в Windows NT. Принудить пользователей вводить устойчивые к взлому пароли поможет уже упоминавшаяся выше программа PASSPROP. После ее запуска с ключом /COMPLEX «правильными» будут признаваться только пароли, сочетающие или буквы в разном регистре, или буквы с цифрами, или буквы со специальными символами, или цифры с символами. Еще более строгие правила фильтрации вводимых пользователями паролей в Windows NT 4.0 можно установить после запуска Service Pack 2 или 3. Для дополнительного контроля в этом случае применяется специальная библиотека PASSFILT.DLL, которая проверяет, что новый пароль - содержит не менее 6 символов; - включает в себя символы из, по крайней мере 3-х наборов из 4-х возможных: 1) A-Z, 2) a-z, 3) 0-9, 4) специальные символы, например, знаки препинания; - не содержит в себе имя пользователя или любую часть его имени. Чтобы включить такой режим проверки, необходимо с помощью программы REGEDIT32 в раздел HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa добавить параметр Notification Packages типа REG_MULTI_SZ и вписать в него строку PASSFILT. Если этот параметр уже есть и содержит строку FPNWCLNT, допишите новую строку после существующей. Сам файл PASSFILT.DLL должен находиться в папке, содержащей системные DLL.
20
Строка FPNWCLNT- это название еще одной динамически загружаемой библиотеки, применяемой в Windows NT для взаимодействия с серверами Novell NetWare при модификации учетных записей пользователей. Этот файл (FPNWCLNT.DLL) находится в папке \winnt\System32 и может быть подменен «троянским конем» («пасущимся в Интернете»). Поэтому, если поддержка NetWare неактуальна, то строку FPNWCLNT лучше удалить, в противном случае защитить файл FPNWCLNT.DLL средствами файловой системы NTFS.
Список рекомендуемой литературы 1.Акритас А.Г. Основы компьютерной алгебры с приложениями: Пер. с англ.- М.: Мир, 1984.-544с. 2.Баричев С. Современные криптографические методы защиты информации.-М.:
[email protected],1998.-68c. 3.Грушо А.А., Тимонина Е.Е. Теоретические основы защиты информации.-М.: Яхтсмен, 1996.-192с. 4.Дейтел Г. Введение в операционные системы: Пер. с англ.:В 2-х томах- М.: Мир, 1987.-Т.1.-359с., Т.2.-398с. 5.Жельников В. Криптография от папируса до компьютера.М.:ABF, 1996.-336с. 6.Защита программного обеспечения/Пер. с англ. под ред. Д.Гроувера.- М.: Мир, 1992.-288с. 7. Зубанов Ф. Windows NT - выбор «профи». - М.: Изд. отдел «Русская редакция» ТОО «Channel Trading Ltd.», 1997. - 416 с. 8. Кастер Х. Основы Windows NT и NTFS. - М.: Изд. отдел «Русская редакция» ТОО «Channel Trading Ltd.», 1996. - 440 с. 9. Безопасность компьютерных сетей на основе Windows NT/Люцарев В.С., Ермаков К.В., Рудный Е.Б. и др. - М.: Изд. отдел «Русская редакция» ТОО «Channel Trading Ltd.», 1998. - 304 с. 10.Стенг Д., Мун С. Секреты безопасности сетей.-Киев: Диалектика, 1995.-554с. 11.Хофман Л.Дж. Современные методы защиты информации: Пер. с англ.- М.: Сов. радио, 1980.-264с. ПРИЛОЖЕНИЕ 1
Некоторые алгоритмы хеширования и шифрования Алгоритмы хеширования. Алгоритм хеширования - это последова-
21
тельность математических преобразований, в результате которой из некоторой двоичной последовательности переменной длины (m) получается уникальная двоичная последовательность фиксированной длины (h). Функция H(x), реализующая такой алгоритм, называется хеш-функцией, h=H(m). Хеш-функция должна обладать свойствами однозначности и необратимости, что обеспечивает несовпадение хешированных форм разных паролей и невозможность восстановления исходного пароля. Наиболее широко применяются хеш-функции MD2, MD4, MD5, SHA. Например, в алгоритме MD4 сообщение дополняется так, чтобы его длина (в битах) плюс 64 нацело делилась на 512, затем к нему добавляется 64-битовое значение его исходной длины. Полученная таким образом битовая последовательность (длина ее кратна 512 битам) обрабатывается блоками по 512 битов с помощью некоторой итерационной процедуры, причем каждый блок модифицируется тремя разными способами. Результатом работы алгоритма является 128-битовая последовательность. Алгоритм MD4 работает быстро, но, как показали исследования, недостаточно устойчив к взлому. Алгоритмы шифрования. Один из самых распространенных алгоритмов шифрования - DES - разработан в середине 70-х годов и используется в США в качестве федерального стандарта. Это блочный алгоритм с симметричным ключом. Ключ состоит из 64 битов, но лишь 56 из них применяются непосредственно при шифровании. Оставшиеся 8 предназначены для контроля четности: они устанавливаются так, чтобы каждый из 8 байтов ключа имел нечетное значение. Шифруемая информация обрабатывается блоками по 64 байта, причем каждый блок модифицируется с помощью ключа в итерационной процедуре, включающей 16 циклов. Алгоритм считается устойчивым к взлому с применением различных методов криптографического анализа. DES имеет экспортные ограничения в США. Алгоритм RSA - популярный алгоритм шифрования с открытым ключом. Основан на возведении в степень(по модулю) чисел, полученных из шифруемой информации и ключа. Степень устойчивости зашифрованной информации к взлому, а также невозможность по открытому ключу восстановить закрытый определяются трудностью факторизации (т.е. разложения на простые множители) больших чисел и зависят от длины ключа. Для достижения криптографической устойчивости, сравнимой с устойчивостью симметричных систем шифрования, эта длина должна быть довольно велика. Поэтому рекомендуются 768- или 1024-битные ключи. RSA работает медленнее алгоритмов с секретным ключом (например, DES), поэтому обычно не применяется для шифрования всей передаваемой информации. Вместо этого используется комбинированный подход: сначала сообщение кодируется с помощью некоторого ключа по алгоритму DES, а
22
затем ключ зашифровывается с применением RSA и передается вместе с закодированным сообщением. Это позволяет достичь высокой скорости обработки информации и в то же время обеспечить надежную защиту. ПРИЛОЖЕНИЕ 2
Словарь терминов Домен (domain) Группа компьютеров Windows NT, которая использует общий список учетных записей, хранящийся на контроллерах домена.. Доступ (Access) Запрос процесса на открытие объекта для последующего выполнения над ним операций определенного типа. Закрытый ключ (private key) Один из ключей несимметричной системы шифрования. В отличие от открытого ключа закрытый является секретом. Используется для расшифровки сообщений и формирования электронной подписи. Идентификатор безопасности (security identifier) Уникальный идентификатор субъекта системы безопасности (администратора, пользователя и т.п.) Интерактивный вход (interactive logon) Вход с образованием полноценного сеанса (в отличие от сетевого входа). Обычно осуществляется нажатием комбинации клавиш Ctrl+Alt+Del и вводом имени и пароля в появившемся диалоговом окне. Ключ шифрования (encryption key) Параметр алгоритмов шифрования и расшифровки. Контроллер домена (domain controller) Компьютер, на котором хранится список учетных записей домена, выполняющий проверку пароля при сквозной проверке подлинности. Контроль доступа (access control) Проверка допустимости для данного процесса запрошенного им доступа к данному объекту Куст реестра (registry hive)
23
Раздел реестра и его подразделы, физически хранящиеся в одном файле. Кэширование паролей (password cashing) Хранение паролей и других сведений о пользователе на локальном компьютере. Открытый ключ (Public key) Один из ключей несимметричной системы шифрования. Открытый ключ секретом не является, но вычислить по нему соответствующий закрытый ключ нельзя. Применяется для шифрования сообщений и при проверке электронной подписи. Относительный идентификатор (relative identifier) Младшая часть идентификатора безопасности. В пределах домена идентификаторы безопасности имеют одинаковую старшую часть, а относительный идентификатор принимает последовательно возрастающие значения, начиная с 1 000. Проверка подлинности (authentication) Процедура, удостоверяющая, что пользователь именно тот, за кого себя выдает. Проверяет знание пользователем пароля, хранящегося в его учетной записи. Процесс (process) Объект ОС, включающий описание исполняемой программы, доступное ей адресное пространство, один или несколько потоков управления, выделенные программе системные и пользовательские ресурсы. Поток (thread) Исполняемая сущность, принадлежащая одному ( и только одному) процессу. Поток состоит из указателя текущей команды, пользовательского стека, стека ядра и набора значений регистров центрального процессора. Все потоки процесса находятся в его адресном пространстве. Реестр (registry) База данных с иерархической структурой для хранения параметров настройки программного и аппаратного обеспечения. Сетевой вход (network logon) Вход с образованием ограниченного сеанса, который не дает пользователю возможности создавать новые процессы и имеет другие ограничения. Обычно осуществляется неявно при подключении к серверу по сети.
24
Сквозная проверка подлинности (pass-through authentication) Проверка подлинности, при которой компьютер входа передает сведения, идентифицирующие пользователя, на другой компьютер. Учетная запись (account) Информация, идентифицирующая субъект системы безопасности. Указателем на учетную запись является ее идентификатор безопасности. Различают учетные записи пользователей, групп, компьютеров и доменов. Файловая система Windows NT (NTFS) Файловая система (способ хранения файлов), разработанная специально для Windows NT. NTFS использует парадигмы базы данных, обработки транзакций и объектов, чтобы обеспечить защиту, надежность и восстанавливаемость данных. NTFS представляет все файлы как объекты с атрибутами, определяемыми пользователями и системой. Хеширование (hashing) Необратимое криптографическое преобразование информации. Используется в электронной подписи и для сокрытия исходной текстовой формы пароля. Шифрование (encryption) Обратимое криптографическое преобразование информации. Расшифровка возможна только при наличии соответствующего ключа. Различают симметричное шифрование (для шифрования и расшифровки используют только один ключ) и несимметричное (два ключа различны и не могут быть вычислены один через другой). Электронная подпись (digital signature) Криптографическое средство, позволяющее проверить подлинность отправителя и целостность текста сообщения. Составители: Воронков Борис Николаевич, Голуб Владимир Александрович, Родивилов Виктор Иванович, Рудалев Валерий Геннадиевич Редактор Кузнецова З.Е. .Заказ №___ от ____1999г. Тир.___экз. Лаборатория оперативной полиграфии ВГУ