Автор работы: Пользователь скрыл имя, 28 Ноября 2012 в 19:10, реферат
Двумя основными классами ошибок при разработке программного обеспечения, приводящими к потенциальной возможности проведения атак на информацию, являются интерференция данных и нарушение неявных ограничений.
Интерференция (то есть непредусмотренное взаимодействие) данных между собой и данных с кодом является менее распространенным, но более опасным синдромом, чем описываемая ниже проблема ограничений по умолчанию. Практически единственным способом вызвать наслоение данных друг на друга либо данных на код программы является попытка дойти при операции записи до границы области памяти, отведенной под данный блок информации, и преодолеть ее – то есть умышленное переполнение буфера.
1. Ошибки, приводящие к возможности атак на информацию……….…..….3
2. Получение пароля на основе ошибок в реализации……………..……..…..5
3. Распространенные средства и методики взлома парольной защиты офисных документов…………………………………………………..………10
4. Программа взлома пароля файлов Microsoft Office…………………….....13
5. Принципиальные недостатки защитных механизмов ОС семейства Windows…………………………………………………………………………17
6. Список использованной литературы………………………………………..26
Реферат
по дисциплине «Защита информации»
на тему:
Ошибки в реализации защиты в распространенных коммерческих программных продуктах фирмы Microsoft.
2011
СОДЕРЖАНИЕ
1. Ошибки, приводящие к
возможности атак на
2. Получение пароля на основе ошибок в реализации……………..……..…..5
3. Распространенные средства
и методики взлома парольной
защиты офисных документов……………
4. Программа взлома пароля файлов Microsoft Office…………………….....13
5. Принципиальные недостатки
защитных механизмов ОС
6. Список использованной литературы………………………………………..26
ОШИБКИ, ПРИВОДЯЩИЕ К ВОЗМОЖНОСТИ АТАК НА ИНФОРМАЦИЮ
Двумя основными классами ошибок при разработке программного обеспечения, приводящими к потенциальной возможности проведения атак на информацию, являются интерференция данных и нарушение неявных ограничений.
Интерференция (то есть непредусмотренное взаимодействие) данных между собой и данных с кодом является менее распространенным, но более опасным синдромом, чем описываемая ниже проблема ограничений по умолчанию. Практически единственным способом вызвать наслоение данных друг на друга либо данных на код программы является попытка дойти при операции записи до границы области памяти, отведенной под данный блок информации, и преодолеть ее – то есть умышленное переполнение буфера. Естественно, что это возможно только в тех ситуациях, когда программный код не производит проверки длины записываемого значения.
Для целых и дробных чисел, значений времени и тому подобных типов данных запись производится всегда в фиксированном объеме (2 байта, 4 байта, 10 байт). А вот для строк и массивов данных проверки длины перед операциями записи необходимы. Для того, чтобы заставить ЭВМ выполнить код или записать данные туда, куда у него нет прав записи, злоумышленник специально заставляет систему обрабатывать строки очень большой длины, либо помещать в массив количество элементов большее, чем его объем. В случае успеха возможно либо попадание части строки в сегмент кода или стека с последующим исполнением, либо модификация каких-либо служебных данных, что позволит затем злоумышленнику войти в систему в обход системы защиты. Естественно, что содержимое конца строки (оказывающееся после переполнения буфера в ненадлежащей области памяти) подбирается специальным образом. Сами данные или строки могут быть абсолютно бессмысленными.
Проблема ограничений, которые разработчик программы считает само собой разумеющимися, но которые на самом деле могут не выполняться, встречается гораздо чаще, но реже приводит к каким-либо серьезным последствиям. Чаще всего результатом обработки подобных данных становится прерывание работы программы с сообщением об ошибке или просто «зависание». То есть данный класс атак используется с целью проведения атаки «отказ в сервисе».
Спектр возможных ограничений, не продуманных на этапе разработки ПО, чрезвычайно широк. Это могут быть и отрицательное время или сумма платежа, и текстовое значение на месте ожидаемого числа, и строки, созданные целиком из управляющих символов, и, конечно же, пустые строки. Все это приводит к одному из главных правил разработки ПО: тщательно и полностью проверяйте те входные данные программы, которые поступают в нее от человека, либо передаются по каналу связи, незащищенному от модификации.
ПОЛУЧЕНИЕ ПАРОЛЯ НА ОСНОВЕ ОШИБОК В РЕАЛИЗАЦИИ
Основывается на методике получения паролей из самой системы. Здесь нет возможности дать какие-либо общие рекомендации, поскольку все методы атаки зависят только от программной и аппаратной реализации конкретной системы. Основными двумя возможностями выяснения пароля являются несанкционированный доступ к носителю, содержащему их, либо использование недокументированных возможностей и ошибок в реализации системы.
Первая группа методов основана на том, что любой системе приходится где-либо хранить подлинники паролей всех клиентов для того, чтобы сверять их в момент регистрации. При этом пароли могут храниться как в открытом текстовом виде, как это имеет место во многих клонах UNIX, так и представленные в виде малозначащих контрольных сумм (хеш-значений), как это реализовано в ОС Windows, Novell NetWare и многих других. Проблема в том, что в данном случае для хранения паролей на носителе не может быть использована основная методика защиты – шифрование. Действительно, если все пароли зашифрованы каким-либо ключом, то этот ключ тоже должен храниться в самой системе для того, чтобы она работала автоматически, не спрашивая каждый раз у администратора разрешение «Пускать или не пускать пользователя Anton, Larisa, Victor и т.д.?». Поэтому, получив доступ к подобной информации, злоумышленник может либо восстановить пароль в читабельном виде (что бывает довольно редко), либо отправлять запросы, подтвержденные данным хеш-значением, не раскодируя его. Все рекомендации по предотвращению хищений паролей состоят в проверке не доступен ли файл с паролями, либо таблица в базе данных, хранящая эти пароли, кому-либо еще кроме администраторов системы, не создается ли системой резервных файлов, в местах доступных другим пользователям и т.п.. В принципе, поскольку кража паролей является самым грубым вторжением в систему, разработчики уделяют ей довольно пристальное внимание, и соблюдения всех рекомендаций по использованию системы обычно достаточно для предотвращения подобных ситуаций.
Получение доступа к паролям благодаря недокументированным возможностям систем встречается в настоящее время крайне редко. Ранее эта методика использовалась разработчиками намного чаще в основном в целях отладки, либо для экстренного восстановления работоспособности системы. Но постепенно с развитием, как технологий обратной компиляции, так и информационной связанности мира она стала исчезать. Любые недокументированные возможности рано или поздно становятся известными, после чего новость об этом с головокружительной быстротой облетает мир и разработчикам приходится рассылать всем пользователям скомпрометированной системы «программные заплатки» либо новые версии программного продукта. Единственной мерой профилактики данного метода является постоянный поиск на серверах, посвященных компьютерной безопасности, объявлений обо всех неприятностях с программным обеспечением, установленным в Вашем учреждении. Для разработчиков же необходимо помнить, что любая подобная встроенная возможность может на порядок снизить общую безопасность системы, как бы хорошо она не была завуалирована в коде программного продукта.
Следующей распространенной технологией получения паролей является копирование буфера клавиатуры в момент набора пароля на терминале. Этот метод используется редко, так как для него необходим доступ к терминальной машине с возможностью запуска программ. Но если злоумышленник все-таки получает подобный доступ, действенность данного метода очень высока:
Работа программы-перехватчика паролей (так называемого «троянского коня») на рабочей станции незаметна.
Подобная программа сама может отправлять результаты работы на заранее заданные сервера или анонимным пользователям, что резко упрощает саму процедуру получения паролей хакером, и затрудняет поиск и доказательство его вины. У нас в России, например, широкое распространение получила подобная троянская программа, подписывающаяся к самораспаковывающимся архивам.
Двумя основными методами борьбы с копированием паролей являются:
адекватная защита рабочих
станций от запуска сторонних
программ:
а) отключение сменных носителей информации
(гибких дисков),
б) специальные драйвера, блокирующие
запуск исполнимых файлов без ведома оператора,
либо администратора,
в) мониторы, уведомляющие о любых изменениях
системных настроек и списка автоматически
запускаемых программ, очень мощная, но
неудобная мера – система единовременных
паролей (при каждой регистрации в системе
клиентам с очень высоким уровнем ответственности
самой системой генерируется новый пароль).
Сканирование современными
антивирусными программами
Следующий метод получения
паролей относится только к сетевому
программному обеспечению. Проблема заключается
в том, что во многих программах не
учитывается возможность
Современное аппаратное и
программное обеспечение
1) это может сделать служащий компании со своего рабочего компьютера,
2) злоумышленник, подключившийся
к сегменту с помощью
Наконец, трафик, идущий от Вас
к Вашему партнеру или в другой
офис по сети Интернет, технически может
прослушиваться со стороны Вашего непосредственного
провайдера, со стороны любой организации,
предоставляющей транспортные услуги
для сети Интернет (переписка внутри
страны в среднем идет через 3-4 компании,
за пределы страны – через 5-8). Кроме
того, если в должной мере будет
реализовываться план СОРМ (система
оперативно-розыскных
Для комплексной защиты от подобной возможности кражи паролей необходимо выполнять следующие меры:
Физический доступ к сетевым кабелям должен соответствовать уровню доступа к информации.
При определении топологии сети следует при любых возможностях избегать широковещательных топологий. Оптимальной единицей сегментирования является группа операторов с равными правами доступа, либо если эта группа составляет более 10 человек, то комната или отдел внутри группы. Ни в коем случае на одном кабеле не должны находиться операторы с разными уровнями доступа, если только весь передаваемый трафик не шифруется, а идентификация не производится по скрытой схеме без открытой передачи пароля.
Ко всем информационным потокам, выходящим за пределы фирмы, должны применяться те же правила, что и только что описанные выше для объединения разноуровневых терминалов.
РАСПРОСТРАНЕННЫЕ СРЕДСТВА И МЕТОДИКИ ВЗЛОМА ПАРОЛЬНОЙ ЗАЩИТЫ ОФИСНЫХ ДОКУМЕНТОВ
При установке пароля на открытие документ Microsoft Office шифруется по симметричному алгоритму RCA. В документе хранится зашифрованный хеш пароля, используемый при проверке. Единственный способ нахождения пароля – перебор. Количество попыток (K), необходимое для полного перебора всех возможных вариантов пароля можно вычислить по формуле (1):
где N — число символов, которые возможно использовать в пароле, L — предельная длина пароля.
Как следует из формулы (1),
величина K может быть достаточно большой,
что свидетельствует о
Во многих случаях можно
предположить, что попытка НСД
к офисным документам осуществляется
злоумышленником в условиях реализации
на предприятии грамотной политики
безопасности. Это предопределяет невозможность
использования злоумышленником
средств технического съема пароля
при вводе, модификации механизма
парольной защиты, а также модификации
учетных данных на защищаемом объекте.
Эта предпосылка позволяет
В настоящее время хорошо изучены такие методы подбора как: прямой перебор, перебор по маске и перебор по словарю.
Прямой перебор. Суть метода заключается в переборе всех возможные комбинации символов, используемых в качестве пароля. Время (T) необходимое для гарантированного взлома пароля можно рассчитать так (2):