Помощь в написании студенческих работ
Антистрессовый сервис

Программное средство для аудита паролей в информационных системах

ДипломнаяПомощь в написанииУзнать стоимостьмоей работы

Вследствие того, что время полного перебора всех возможных значений исходного пароля, сгенерированного на большом словаре символов, стремится к бесконечности, были предложены сортированные таблицы хэшей и соответствующих им паролей, в результате чего получилась система, которая с помощью быстрого бинарного поиска по таблице может получать обратное преобразование хэша в пароль для любого… Читать ещё >

Программное средство для аудита паролей в информационных системах (реферат, курсовая, диплом, контрольная)

МИНОБРНАУКИ РОССИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования ПЕНЗЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА Тема дипломного проекта ПРОГРАММНОЕ СРЕДСТВО ДЛЯ АУДИТА ПАРОЛЕЙ В ИНФОРМАЦИОННЫХ СИСТЕМАХ Специальность 90 106 — Информационная безопасность телекоммуникационных систем Исполнитель ВКР И. Ю. Котельников Руководитель ВКР начальник сектора № 53

ПФ ФГУП""НТЦ «Атлас»

В.В.Маркин Пенза 2013 г.

РЕФЕРАТ Цель работы — разработка программного средства для анализа значений хэш-функций с целью формальной оценки стойкости пароля.

Программное средство предназначено для проверки значений хэш-функций на наличие «слабых» паролей.

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

В результате были разработаны алгоритмы для методов аудита паролей и написано программное средство для аудита паролей в информационных системах. Для разработанного программного средства был разработан графический интерфейс.

ОПРЕДЕЛЕНИЯ, ОБОЗНАЧЕНИЯ И СОКРАЩЕНИЯ В настоящей выпускной квалификационной работе применяются следующие термины с соответствующими определениями, обозначения и сокращения.

Хэш (или хэш-код) — строка бит, являющаяся выходным результатом хэш-функции.

Хэш-функция — функция, отображающая строки бит в строки бит фиксированной длины и удовлетворяющая следующим свойствам:

— по данному значению функции сложно вычислить исходные данные, отображенные в это значение;

— для заданных исходных данных трудно найти другие исходные данные, отображаемые с тем же результатом;

— трудно найти какую-либо пару исходных данных с одинаковым значением хэш-функции.

PAM — partitioned access method;

АИП — аутентифицирующая информация пользователя;

АПМДЗ — аппаратно-программные методы доверенной загрузки (средства доверенной загрузки);

ОС — операционная система;

ПЭВМ — персональная электронно-вычислительная машина;

СЗИ — средства защиты информации;

СКЗД — средства криптографической защиты данных.

ВВЕДЕНИЕ

Пароли традиционно являются наиболее распространенным и доступным средством аутентификации. Для пользователей это один из самых удобных вариантов, который, к тому же, не требует наличия какого-либо дополнительного оборудования или специальных навыков. Но аутентификацию далеко не всегда можно назвать удачным выбором. Как и многие технические решения, она страдает от человеческого фактора — многие люди не могут запоминать стойкие пароли, поскольку это объективно сложно. Поэтому они используют простые, нестойкие пароли. Такие пароли легко взломать, получив доступ к хэшу от этого пароля. Актуальным становится проверка паролей на наличие «слабых» паролей. Такая проверка выполняется с помощью специальных программно-аппаратных средств, позволяющих выявить «слабые» пароли по значениям хэшей от этих паролей.

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

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

1. Обзор и сравнительный анализ существующих методов и средств аудита паролей по значениям известных хэш-функций от паролей

1.1 Проблема слабых паролей Компаниия Trustwave, провела исследование посвященное проблеме использования слабых паролей. В нем говорится, что вследствие применения ненадежных паролей происходит 80% инцидентов в сфере информационной безопасности.

Исследование Trustwave, проводившееся в 18 странах мира, акцентирует внимание на продолжающемся росте кибер атак, а также увеличению количества злоумышленников в сфере информационной безопасности. В ходе исследования было обнаружено, что 76% случаев нарушений произошло из-за уязвимости системы безопасности отделов, ответственных за системную поддержку и развитие компании. Большая часть исследования посвящена проблеме использования слабых паролей. По мнению специалистов Trustwave, до 80% инцидентов происходит вследствие слабых паролей. Слабые пароли продолжают оставаться основным уязвимым местом, которое используют злоумышленниками при атаках, как на крупные, так и на небольшие компании. В России ситуация во многом схожая. Распространенными паролями, как у администраторов информационных систем, так и у рядовых сотрудников компаний являются простые, легко подбираемые пароли. Длина пароля часто не превышает 8 символов и лишь единицы акцентируют свое внимание на создании более сложных комбинаций. Самыми распространенными паролями такого типа можно назвать: «1 234 567», «12 345 678», «12 345» и «54 321». Очень часто пользователи выбирают рядовые словарные пароли, наподобие «password» или «welcome» или же совпадающие с логином пользователя. Еще одним, крайне уязвимым местом организации информационной безопасности является применение сотрудником единого пароля для разных ресурсов. Использование пароля для регистрации в социальных сетях, электронной почты очень часто является идентичным для входа в информационную сеть компании, что делает ее уязвимой для внешних угроз. Реальность данной угрозы подтверждает недавняя утечка информации произошедшая в компании RSA, произошедшая из-за одинаковых паролей на разных ресурсах. По факту, использование слабых и стандартных паролей облегчает работу взломщиков для проникновения в информационные системы организаций. Порой преступникам не требуется использование сложных, продуманных методов для взлома. Очень важно подчеркнуть, что компании должны быть бдительны, когда дело касается защиты критически важной, конфиденциальной информации от доступа к ним злоумышленников и очень бережны по отношению к персональной информацией своих клиентов. Сегодня необходимо внедрять превентивные технологии контроля и управления доступом для решения проблемы слабых паролей.

Согласно исследованию известной консалтинговой компании Deloitte Touche [3], проводимый ими аудит информационной безопасности на крупных предприятиях показывает, что с проблемой использования слабых паролей сталкивались в течение последних 12 месяцев 14% компаний. В 9% случаев были использованы пароли по умолчанию, а еще в 7% случаев — простые, как правило, известные злоумышленникам пароли.

Суммируя данные этого исследования, можно говорить о том, что 30% всех предприятий ежегодно сталкиваются с проблемами использования слабых паролей. Из них 16% - это грубые пренебрежения элементарными правилами безопасности и культурой работы с паролями.

По данным исследования Брюса Шнайдера 3,8% пользователей использую простые односложные пароли, легко подбираемые по словарю. Еще 12% также используют в составлении паролей простые слова, но с добавление одного специального символа в конце. 28% используют в паролях только буквы нижнего регистра и цифры, что значительно ускоряет их взлом простым перебором.

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

1.2 Метод предварительного анализа Метод предварительного анализа включает в себя следующие алгоритмы поиска паролей:

— использование для подбора паролей уже найденные пароли на целевой системе;

— подбор паролей по найденным на целевой системе текстовым строкам, в том числе именам (логинам) пользователей;

— подбор паролей, представляющих собой комбинации соседних клавиш на клавиатуре, например, «12 345», «qwerty», «qazwsxedc», «qweasd» и т. п.;

— подбор паролей по распространенным клавиатурным комбинациям, например, «ssssss», «abcdef», «qwerty123456» и т. п.

Основными достоинствами рассматриваемого метода являются:

— быстрый поиск простейших паролей;

— нахождение длинных буквенно-цифровых паролей, представляющих собой комбинации соседних клавиш, например, «q1w2e3r4t5y6u7i8o9p0», которые с помощью других рассмотренных ниже методов аудита восстановить в разумные сроки проблематично.

Основными недостатками рассматриваемого метода являются:

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

— невозможно заранее просчитать хэши для всех перебираемых паролей, например, невозможно заранее знать имена (логины) субъектов доступа и/или раскладку клавиатуры.

1.3 Метод полного перебора Метод полного перебора (brute force) предполагает последовательный перебор всех возможных паролей, которые могут быть составлены из символов заданного набора с заданной глубиной (длиной пароля).

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

В большинстве случаев метод полного перебора применяется при анализе хэшей на небольшую глубину широким символьным набором или на большую глубину узким символьным набором.

Основными достоинствами рассматриваемого метода являются:

— простейший алгоритм поиска паролей;

— возможность проведения распределенного поиска паролей (распределение всего перебираемого диапазона паролей между несколькими вычислительными машинами).

Основными недостатками рассматриваемого метода являются:

— низкая скорость поиска паролей;

— в большинстве случаев мощностей одного компьютера для перебора паролей в разумные сроки часто бывает недостаточно, требуются высокопроизводительные вычислительные комплексы;

— вследствие большого количества вариантов перебираемых паролей невозможно заранее просчитать их хэши из-за огромного размера базы данных хэшей.

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

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

Маска пароля задается на основании полученной информации о пароле: где, и какие символы используются в исходном тексте пароля.

Основными параметрами данного метода являются маска пароля, длина пароля (глубина перебора) и ширина пароля (символьный набор).

Основными достоинствами рассматриваемого метода являются:

— достаточно быстрый поиск паролей;

— нахождение длинных буквенно-цифровых паролей, представляющих собой комбинации вида «admin???» или «???pass???», которые с помощью других рассмотренных методов аудита восстановить в разумные сроки проблематично.

Основными недостатками рассматриваемого метода являются:

— для формирования маски необходима информация о пароле;

— требуются высокоинтеллектуальные алгоритмы поиска паролей по маске;

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

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

1.5 Метод простого поиска по словарям Метод простого поиска по словарям предполагает последовательный перебор всех возможных паролей из словаря (словарей).

Словарь представляет собой текстовый файл, содержащий исходные тексты паролей в большинстве случаев в формате «одна строка — один пароль». Как правило, используется один общий словарь, содержащий наиболее популярные слова и ряд дополнительных словарей разделенных по тематике.

Основными достоинствами рассматриваемого метода являются:

— достаточно быстрый поиск паролей;

— простейший алгоритм поиска паролей;

— могут быть заранее просчитаны хэши по заданным алгоритмам хэширования для всех перебираемых паролей из словаря.

Основными недостатками рассматриваемого метода являются:

— требуются словари с большим объемом фраз различной тематики (города, имена, термины и т. п.), в которых содержаться часто употребляемые слова и части слов на разных языках;

— целевой пароль должен быть осмысленным словом (например, «administrator», «computer», «Попугай», «Федя» и т. п.).

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

атака пароль хэш словарь

1.6 Метод комбинированного поиска по словарям Метод комбинированного поиска по словарям предполагает последовательный перебор всех возможных паролей, составленных из двух и более словарей.

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

Основными достоинствами рассматриваемого метода являются:

— быстрый поиск длинных паролей типа «ilovemercedes», «finalfantasy», «masterblaster» и т. п., представляющих собой конкатенацию двух и более словарных слов;

— могут быть заранее просчитаны хэши по заданным алгоритмам хэширования для всех возможных паролей, составленных из двух и более словарей.

Основными недостатками рассматриваемого метода являются:

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

— целевой пароль должен быть осмысленным словосочетанием, фразой (например, «ИванПетрович», «ПопугайФедя», «iamhacker», «crackmehehe» и т. п.).

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

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

Правила модификации могут быть следующими: заменить в пароле одни символы другими (похожими), например, «P@$$w0rd», напечатать одно и то же слово много раз, например, «1 234 512 345», поочередно использовать разные регистры символов, например, «CrIsTiNa» и т. д.

Таблицы замены символов позволяют подменять символы в паролях, формируя вместо слова «привет» пароль «privet» или «ghbdtn». Например, пароль «fktrcfylh2008» восстановить другими методами аудита практически невозможно, но при использовании таких таблиц аудит на него займет несколько минут, т.к. последовательность «fktrcfylh2008» это пароль «александр2008», набранный в английской раскладке клавиатуры.

Основными достоинствами рассматриваемого метода являются:

— модификация исходного текста паролей на основе правил и таблиц замен символов позволяет осуществлять быстрый поиск «сложных» паролей типа «P@$$w0rd», «m@st3r», «h4cky0u», «forum+forum», «-lancer-», «h1a2c3k4e5r», «f.o.r.u.m.», «Mr.Johnson», «12 345 123 451 234 512 896», «CrIsTiNa» и т. д., которые другими методами аудита восстановить проблематично;

— модификация на основе таблиц замены символов особенно эффективна там, где клавиатура компьютера имеет две раскладки (английскую и локализированную);

— могут быть заранее просчитаны хэши по заданным алгоритмам хэширования для всех перебираемых паролей из словарей после их модифицирования согласно установленным правилам.

Основными недостатками рассматриваемого метода являются:

— необходимо постоянное обновление (добавление) правил и таблиц замен символов, используемых при модификации исходного текста паролей;

— требуются высокоинтеллектуальные алгоритмы модификации паролей;

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

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

1.8 Метод поиска по «радужным таблицам»

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

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

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

Такие таблицы получили наименование Rainbow Tables («Радужные таблицы»). С одной стороны, они имеют объем в тысячи раз меньше обычных таблиц, содержащих все возможные пароли, с другой — позволяют найти за несколько минут результат любого алгоритма хэширования, если искомый пароль был просчитан заранее в этих таблицах.

Современные «радужные таблицы» генерируются с использованием технологии «time_memory tradeoff» (выбор оптимального соотношения «время_память»). Это компромиссный подход к решению ряда задач в информатике, при котором требуемый объем памяти может быть снижен за счет более медленного выполнения программы (или, наоборот, время вычислений может быть снижено за счет увеличения объема используемой памяти).

Основными достоинствами рассматриваемого метода являются:

— в настоящее время является одним из самых быстрых методов поиска паролей (время поиска ограниченно только возможностями системы по загрузке больших «радужных таблиц» в память компьютера);

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

Основными недостатками рассматриваемого метода являются:

— для хранения «радужных таблиц», сгенерированных на большом наборе символов с длинным паролем, требуются значительные объемы памяти;

— из-за особенностей формирования «радужных таблиц» для достижения максимальной вероятности успешной попытки подбора пароля должны быть сгенерированы с одинаковыми параметрами (алгоритм хэширования, набор символов, длина пароля) несколько «радужных таблиц» (при этом 8 таблиц это почти 100 процентная вероятность успеха);

— на большом наборе символов с длинным паролем требуется значительное количество времени на генерацию «радужных таблиц»;

— наиболее важным ограничением данного метода является механизм замешивания в хэш уникального значения — использование алгоритма с дополнительными параметрами. В этом случае заранее рассчитанные таблицы хэшей становятся бесполезными. Механизм замешивания используется в следующих алгоритмах хэширования: MD5(UNIX), SHA256(UNIX), SHA512(UNIX).

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

1.9 Существующие средства аудита паролей Существует множество средств для аудита паролей по значениям известных хэш-функций от паролей. Рассмотрим особенности наиболее известных из них:

а) John the Ripper:

1) обладает одной из самых высоких скоростей перебора паролей;

2) поддерживает большое количество алгоритмов хэширования;

3) распространяется как бесплатная (официально не поддерживает NTLM-хэши) и платная версии;

4) отсутствует графический интерфейс;

5) программа реализует лишь методы полного перебора и поиска по словарю;

6) отсутствуют методы автоматического извлечения хэшей из системы;

б) Password Pro:

1) обладает высокой скоростью подбора паролей;

2) имеет графический интерфейс;

3) поддерживает большое количество алгоритмов хэширования;

4) распространяется как бесплатная (доступен аудит только одного хэша) и платная версии;

5) отсутствуют методы автоматического извлечения хэшей из системы;

в) L0pht Crack+:

1) присутствуют встроенные методы автоматического извлечения хэшей из системы;

2) поддерживает только NTLM/LM алгоритмы хэширования;

3) программа реализует не все методы аудита паролей;

г) Rainbow Crack:

1) программа поддерживает метод «радужных» таблиц, который позволяет проводить аудит с гигантской скоростью;

2) поддерживает большое количество алгоритмов хэширования;

3) существует возможность добавления в качестве dll-библиотеки своей реализации любого алгоритма хэширования;

4) большая часть «радужных» таблиц с большой глубиной пароля и символьным набором не доступна бесплатно;

5) отсутствуют методы автоматического извлечения хэшей из системы.

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

2. Порядок проведения аудита для конкретных типов ОС

2.1 Аутентификация с использованием заранее вычисленного хэша от пароля Авторизация субъекта доступа в системе может быть выполнена только при наличии АИП. АИП в общем случае состоит из имени (логина) и пароля субъекта доступа.

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

В большинстве случаев доступ к хранилищу сверток паролей ограничивается на системном уровне, что легко обходится при загрузке инструментальной ОС с внешнего носителя.

Необходимо отметить, что доступ к АИП может осложняться наличием в целевой системе установленных:

— СЗИ, усиливающих механизмы аутентификации;

— АПМДЗ, блокирующих загрузку инструментальной среды с внешних носителей;

— СКЗД, зашифровывающих файлы, разделы или полностью диски системы.

2.2 Получение хэшей из ОС семейства Linux

Файл «/etc/passwd» всегда открыт на чтение для всех субъектов доступа, зарегистрированных в ОС, и используется многими штатными утилитами из состава ОС для получения сведений об АИП. При этом информация об учетных записях субъектов доступа, содержащаяся в файле «/etc/passwd», является общедоступной.

Для защиты от несанкционированного доступа к сведениям изложенным в файле «/etc/passwd» в ОС Linux был добавлен специальный механизм скрытия (затенения) паролей субъектов доступа. Для реализации указанного механизма в ОС Linux стал использоваться специальный файл «/etc/shadow», доступ к которому контролируется с помощью штатных средств контроля доступа. Только процессы с правами суперпользователя root могут читать и писать в файл «/etc/shadow» напрямую. Для всех других субъектов доступа обращения к АИП возможны только с помощью функций специальной библиотеки PAM.

В «скрытый» файл «/etc/shadow» из файла «/etc/passwd» были перенесены свертки паролей для всех зарегистрированных учетных записей, и добавлена дополнительная информация о паролях субъектов доступа (срок действия, дата смены пароля и т. п.). При этом в файле «/etc/passwd» в поле password для каждого субъекта доступа свертка пароля заменяется символом «x», означающий, что свертка пароля находятся в специальном файле «/etc/shadow».

Однако файл «/etc/shadow» на целевой ОС легко доступен для чтения и редактирования при загрузке системы с помощью внешней ОС.

Алгоритм получения АИП из ОС семейства Linux следующий:

а) извлечение свертки пароля.

Для извлечения свертки пароля необходимо выполнить поиск файла «/etc/passwd» и считать для каждой учётной записи значение поля password. Если считанное значение соответствует символу «х», то необходимо выполнить поиск файла «/etc/shadow» и далее из него для каждой учётной записи считать значение поля password;

б) идентификация схемы преобразования.

В случае если данные из поля password считывались из файла «/etc/passwd», то свертка пароля была получена с помощью традиционной схемы на базе DES. Эта схема устарела и сейчас практически нигде не используется.

Для идентификации других схем преобразования исходного текста пароля в свертку необходимо проанализировать формат данных, считанных из файла «/etc/shadow».

Если данные начинаются с символа «$», то в зависимости от следующих двух символов после знака «$» схема преобразования идентифицируется следующим образом:

1) если 1 — схема на базе MD5;

2) если 5 — схема на базе SHA2 (SHA-256);

3) если 6 — схема на базе SHA2 (SHA-512).

2.3 Получение хэшей из ОС семейства Windows

Алгоритм получения исходного текста пароля субъекта доступа в ОС Windows начиная с версии NT следующий:

а) снятие дополнительного контура защиты (в случае активации в ОС Windows механизма защиты свертки пароля на основе системного ключа boot_key):

1) извлечение системного ключа boot_key.

Ключ boot_key разбит на 4 части и располагается в скрытой области данных (атрибут «class») следующих ключей реестра ОС Windows: JD, Skew1, GBG, Data ветки HKLM/System//Control/Lsa.

Весь раздел реестра HKLM/System располагается в системном файле System по адресу «%SystemRoot%/system».

Фрагменты ключа boot_key хранятся в скрытой области данных в строковом представлении шестнадцатеричных чисел, причем по принципу big-endian (т.е. старший байт записан по младшему адресу);

2) формирование расширенного системного ключа ext_boot_key с использованием ключа boot_key.

Ключ ext_boot_key есть результат расшифровывания фрагмента данных, расположенного по адресу [0×80:0xA0] F-блока (параметр F реестра ОС Windows по адресу HKLM/SAM/SAM/Domains/Account/users/), по алгоритму RC4 с использованием ключа rc4_key. Ключ rc4_key — это хэш на массив данных, рассчитанный с помощью алгоритма MD5:

rc4_key = MD5(F[0×70:0×80] + aqwerty + boot_key + anum)

где aqwerty, anum — строковые константы (ASCII);

3) формирование ключей хранения LM и NT последовательностей соответственно rc4_key_lm и rc4_key_nt с использованием ключа ext_boot_key для дополнительного контура защиты.

Ключ rc4_key_lm — это ключ хранения LM последовательности, представляющий собой хэш на массив данных, рассчитанный с помощью алгоритма MD5:

rc4_key_lm = MD5(ext_boot_key[0×0:0×10] + RID + almpassword),

где: — ext_boot_key[0×0:0×10] - первая половина расширенного системного ключа (ext_boot_key);

— RID — значение RID субъекта доступа (наименование ключа реестра ОС Windows по адресу HKLM/SAM/SAM/Domains/Account/users/) в виде 4х байт (дополненное нулями);

— almpassword — строковая константа (ASCII).

Ключ rc4_key_nt — это ключ хранения NT последовательности, представляющий собой хэш на массив данных, рассчитанный с помощью алгоритма MD5:

rc4_key_nt = MD5(ext_boot_key[0×0:0×10] + RID + antpassword)

где: — ext_boot_key[0×0:0×10] - первая половина расширенного системного ключа (ext_boot_key);

— RID — значение RID субъекта доступа в виде 4х байт (дополненное нулями);

— antpassword — строковая константа (ASCII);

4) расшифрование LM и NT последовательностей по алгоритму RC4 с использованием ключей rc4_key_lm и rc4_key_nt — снятие дополнительного контура защиты.

С помощью алгоритма RC4 выполняется расшифрование LM последовательности, считанной из V-блока реестра ОС Windows, с использованием ключа rc4_key_lm:

DES_LMpass = RC4(rc4_key_lm, RC4_DES_LMpass)

где: — RC4_DES_LMpass — зашифрованная двумя контурами LM последовательность;

— DES_LMpass — зашифрованная основным контуром LM последовательность.

С помощью алгоритма RC4 выполняется расшифрование NT последовательности, считанной из V-блока реестра ОС Windows, с использованием ключа rc4_key_nt:

DES_NTpass = RC4(rc4_key_nt, RC4_DES_NTpass),

где: — RC4_DES_NTpass — зашифрованная двумя контурами NT последовательность;

— DES_NTpass — зашифрованная основным контуром NT последовательность;

б) снятие основного контура защиты:

1) формирование ключей хранения des_key1 и des_key2 для основного контура защиты (алгоритм DES) на основе данных RID субъектов доступа.

Ключи хранения des_key1 и des_key2 формируются независимо от типа последовательности (LM или NT) на основе четырех байтов RID субъекта с использованием перестановок и побитовых операций. При этом ключ des_key1 необходим для расшифровывания первой половины LM или NT последовательности, а ключ des_key2 для расшифровывания второй половины LM или NT последовательности. Размер каждой половины равен 8 байтам;

2) расшифрование LM и NT последовательностей по алгоритму RC4 с использованием ключей хранения des_key1 и des_key2 — снятие основного контура защиты.

Перед выполнением расшифровывания необходимо выполнить разбиение LM или NT последовательности на две равные половины по 8 байтов:

DES_LMpass1 = DES_LMpass[0×0:0×7],

DES_LMpass2 = DES_LMpass[0×8:0xF],

DES_NTpass1 = DES_NTpass[0×0:0×7],

DES_NTpass2 = DES_NTpass[0×8:0xF].

С помощью алгоритма DES выполняется расшифрование первой и второй половины LM или NT последовательности, с использованием ключа des_key1 и des_key2:

LMpass1 = DES (DES_LMpass1, des_key1),

LMpass2 = DES (DES_LMpass2, des_key2),

NTpass1 = DES (DES_NTpass1, des_key1),

NTpass2 = DES (DES_NTpass2, des_key2).

где: — DES_LMpass1, DES_LMpass2 и DES_NTpass1, DES_NTpass2 — первая и вторая половины соответственно LM и NT последовательности, зашифрованные на основном контуре защиты. При этом если версия целевой ОС Windows 2000 и выше, то используется LM и NT последовательность после снятия дополнительного контура защиты, если версия целевой ОС младше ОС Windows 2000, то LM и NT последовательность считывается непосредственно из V-блока реестра ОС Windows;

— LMpass1, LMpass2, NTpass1, NTpass2 — первая и вторая половины расшифрованной соответственно LM и NT последовательности;

— des_key1, des_key2 — ключ хранения для первой и второй половины LM или NT последовательности.

Результат объединения двух расшифрованных половинок LM или NT последовательности есть «чистая» свертка пароля:

— для LM последовательности — LanMan (DES);

— для NT последовательности — MD4-хэш.

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

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

Для минимизации времени проведения аудита паролей субъектов доступа предлагается:

а) частично или совсем не использовать следующие методы аудита:

1) метод полного перебора (т.к. требуется много процессорного времени);

2) метод поиска по маске (т.к. отсутствуют предварительные сведения о пароле);

3) метод поиска по «радужным таблицам», сгенерированным на больших символьных наборах (т.к. с помощью этого метода аудита, теоретически могут быть распознаны все пароли возможные в наборе символов, на базе которых была сгенерирована таблица, в том числе и «надежные» пароли);

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

1) метод предварительного анализа (поиск простейших часто используемых паролей);

2) поиск по «радужным таблицам», сгенерированным на цифровом символьном наборе (поиск пароля, представляющего собой, например, номер телефона);

3) метод гибридного поиска по словарям (расширенный поиск простых паролей — с одним корнем);

4) метод комбинированного поиска (поиск составных паролей — с двумя корнями);

5) метод полного перебора на небольшом символьном наборе с малой глубиной перебора.

Исходя из вышесказанного оптимально использовать следующие варианта порядка проведения аудита паролей в зависимости от типа и версии ОС:

а) для устаревших ОС семейства Windows (до версии Vista).

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

Для проведения оценки стойкости пароля предлагается последовательно использовать следующие методы аудита:

1) метод предварительного анализа;

2) поиск по «радужным таблицам», сгенерированным предварительно для схемы LM (алгоритм DES) на символьном наборе, состоящем только из цифр [123 456 789], на глубину до 7 символов;

3) метод простого поиска по словарю;

б) для остальных ОС семейства Windows, использующих получение хэша по схеме NTLM.

Для проведения оценки стойкости пароля предлагается последовательно использовать следующие методы аудита:

1) метод предварительного анализа;

2) метод комбинированного поиска по словарям;

3) метод простого поиска по словарям;

4) метод гибридного поиска по словарям;

5) метод полного перебора на символьном наборе, состоящем только из цифр [123 456 789], на глубину до 10 символов;

в) для ОС семейства Linux, в которых для свертки паролей субъектов доступа могут быть использованы алгоритмы хеширования (MD5, SHA-256, SHA-512) с дополнительными параметрами, для проведения оценки стойкости пароля предлагается последовательно использовать следующие методы аудита:

1) метод предварительного анализа (для алгоритмов хэширования MD5, SHA-256, SHA-512);

2) метод простого поиска по словарю (для алгоритмов хэширования MD5, SHA-256, SHA-512);

3) метод гибридного поиска по словарю (для алгоритмов хэширования MD5);

4) метод комбинированного поиска по словарю (для алгоритмов хэширования MD5, SHA-256).

3. Разработка алгоритмов для методов аудита паролей Общий алгоритм аудита паролей следующий:

а) формирование очередной комбинации, представляющей собой вариант пароля, в зависимости от метода аудита пароля:

1) для метода предварительного анализа.

Первым этапом в качестве варианта пароля берется пустой пароль.

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

Затем в качестве варианта пароля берутся распространенные клавиатурные комбинации и комбинации из соседних клавиш клавиатуры. Все эти комбинации записаны в общий файл-словарь для метода предварительного анализа;

2) для метода полного перебора.

Общее количество вариантов пароля — множество вариантов размещения с повторением из символьного набора по длине пароля. Вариант пароля представляет собой один элемент из этого множества;

3) для метода поиска по маске.

Общее количество вариантов пароля — множество вариантов размещения с повторением из символьного набора по длине пароля. Вариант пароля представляет собой конкатенацию маски с одним из элементов этого множества в нужной последовательности;

4) для метода простого поиска по словарю.

Общее количество вариантов пароля — множество строк в файле-словаре. Вариант пароля представляет собой один элемент из этого множества;

5) для метода комбинированного поиска по словарям.

Общее количество вариантов пароля множество вариантов конкатенации строки из первого файла-словаря со строкой из второго файла-словаря. Вариант пароля представляет собой один элемент из этого множества;

6) для метода гибридного поиска по словарю.

Вариант пароля представляет собой один элемент из множества строк в файле-словаре, взятый во всех возможных регистрах.

Под очередной комбинацией понимается последовательный перебор всех возможных вариантов пароля;

б) вычисление нужной хэш-функции от варианта пароля.

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

Если в информационной системе не используется алгоритм хэширования с дополнительными параметрами, то вычисляется общий хэш и сравнивается последовательно со всеми хэшами;

в) сравнение вычисленной хэш-функции с «эталонной».

Если при сравнении вычисленная хэш-функция будет равна «эталонной» хэш-функции, то текущий вариант пароля выводится как найденный для данного логина.

4. Разработка графического интерфейса для программного средства Программное средство реализовано на аппаратной платформе Intel IBM PC с использованием библиотеки qt4 под ОС Linux Ubuntu 10.04.

Для удобства работы пользователя с программным средством был разработан графический интерфейс. Графический интерфейс главного окна программного средства представлен на рисунке 4.1.

Рисунок 4.1 — Графический интерфейс главного окна программного средства Главное окно содержит:

а) список запланированных задач.

Графический интерфейс списка запланированных задач представлен на рисунке 4.2.

Рисунок 4.2 — Графический интерфейс списка запланированных задач Содержит список запланированных задач и статус их выполнения.

Под задачей понимается один из методов аудита паролей, описанных в пунктах 1.2−1.8, с конкретными значениями (символьный набор, файл словаря, глубина пароля и т. д.), который будет использоваться для текущего аудита паролей;

б) верхняя панель управления.

Графический интерфейс верхней панели управления представлен на рисунке 4.3.

Рисунок 4.3 — Графический интерфейс верхней панели управления Верхняя панель содержит:

1) кнопка «Добавить задачу».

Данная кнопка позволяет вызвать окно для добавления новой задачи, в котором пользователь может выбрать конкретный метод аудита паролей, указать конкретные значения для выбранного метода и добавить выбранный метод в список запланированных задач. Графический интерфейс окна для добавления новой задачи представлен на рисунке 4.4.

Рисунок 4.4 — Графический интерфейс окна для добавления новой задачи На вкладках данного окна расположена все методы аудита, перечисленные в пунктах 1.2−1.8, с необходимыми для каждого метода параметрами;

2) кнопка «Удалить задачу».

Данная кнопка позволяет удалить из списка запланированных задач выделенную задачу/задачи;

3) кнопка «Начать аудит».

Данная кнопка позволяет начать аудит паролей по всем задачам из списка запланированных задач;

4) кнопка «Отменить аудит».

Данная кнопка позволяет отменить аудит паролей. Те задачи из списка запланированных задач, которые не успели завершиться, получат статус «Отменено»;

в) список найденных хэшей в информационной системе.

Графический интерфейс списка найденных хэшей в информационной системе представлен на рисунке 4.5.

Рисунок 4.5 — Графический интерфейс списка найденных хэшей в информационной системе Содержит все логины и хэши, найденные в информационной системе. По ходу выполнения аудита паролей в этот список будут добавляться и найденные пароли;

г) нижняя панель управления.

Графический интерфейс нижней панели управления представлен на рисунке 4.6.

Рисунок 4.6 — Графический интерфейс нижней панели управления Нижняя панель управления содержит:

1) текстовое поле.

Предназначено для ручного ввода каталога, содержащего информационную систему (например, «/media/802C94C42C94B71E»);

2) кнопка «Обзор».

Данная кнопка позволяет вызвать диалоговое окно для выбора каталога, который содержит информационную систему. Выбранный каталог заносится в текстовое поле из предыдущего пункта. Графический интерфейс диалогового окна для выбора каталога реализован стандартными методами операционной системы, поэтому графический интерфейс будет различен для разных операционных систем. На операционной системе Linux Ubuntu 10.04 (Lucid) вид данного окна представлен на рисунке 4.7;

Рисунок 4.7 — Диалоговое окно для выбора каталога на ОС Linux Ubuntu 10.04 (Lucid)

3) кнопка «Определить информационную систему».

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

д) строка состояния.

Графический интерфейс строки состояния представлен на рисунке 4.8.

Рисунок 4.8 — Графический интерфейс строки состояния В строке состояния показываются системные сообщения, ошибки, возникшие при определении информационной системы, и другие незапланированные сбои.

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

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

Алгоритм работы с программным средством:

а) запуск программного средства.

Запустить файл «diplom» из папки с программным средством;

б) определение информационной системы.

Указать в текстовом поле каталог с информационной системой либо вручную, либо с помощью кнопки «Обзор».

Определить информационную систему с помощью кнопки «Определить информационную систему».

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

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

в) редактирование (по необходимости) списка запланированных задач.

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

Чтобы удалить ненужную задачу необходимо выделить ее левой клавишей мышки и нажмите кнопку «Удалить задачу».

Чтобы добавить задачу необходимо нажать кнопку «Добавить задачу». В появившемся диалоговом окне в верхней вкладке выбрать метод аудита и необходимые для него параметры, и нажать кнопку «Добавить» (при добавлении задачи необходимо, чтобы все поля диалогового окна были заполнены, символьный набор не содержал одинаковых символов, а минимальная длина пароля должна быть меньше, чем максимальная). Добавленная задача появится в списке запланированных задач;

г) запуск аудита паролей.

Для того чтобы кнопка «Начать аудит» была активна необходимо, чтобы список запланированных задач и список найденных логинов и хэшей содержали как минимум одну запись. Для начала аудита необходимо нажать кнопку «Начать аудит»;

д) контроль над выполнением аудита паролей.

В списке запланированных задач в столбце «Статус» указывается стадия выполнения задачи:

1) статус «В процессе» означает, что задача выполняется в текущий момент;

2) статус «Отменено» означает, что данная задача не была выполнена, так как аудит паролей был остановлен пользователем;

3) статус «Завершено» означает, что данная задача успешно выполнена;

4) статус «Файл словаря не найден» означает, что файл со словарем, который был указан при добавлении задачи, не существует;

5) статус «Не хватает прав доступа» означает, что пользователь, от имени которого запущено программное средство, не имеет прав на чтение файла словаря;

6) статус «Ошибка» означает, что произошла незапланированная ошибка;

е) анализ результатов выполнения аудита паролей.

По результатам выполнения аудита паролей делается вывод о надежности пароля. Если по итогам всех проверок пароль не был найден, то такой пароль оценивается как «надежный». Если по итогам всех проверок пароль был найден, то такой пароль оценивается как «ненадежный».

6. Оценка затрат на обеспечение информационной безопасности предприятия, использующего программное средство для аудита паролей

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

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

Зпс = М + Пок + Зо + Зд + Осн + Рпр + Рн руб.

где: — М — стоимость сырья и материалов;

— Пок — стоимость покупных комплектующих;

— Зо — основная заработная плата разработчиков ПС;

— Зд — дополнительная заработная плата разработчиков ПС;

— Осн — отчисления на социальные нужды;

— Рп — прочие прямые расходы;

— Рн — накладные расходы.

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

Стоимость используемых для разработки программного средства материалов (М) в общем виде может быть рассчитана по формуле:

М = Qi x Цi х КТ, i руб.

где: — n — количество видов используемых материалов;

— i — наименование соответствующего вида используемых материалов;

— Qi — расход на разработку материалов i-го наименования в соответствующих единицах измерения;

— Цi — цена приобретения единицы материала i-го наименования;

— КТ, i — коэффициент, учитывающий транспортно-заготовительные расходы при приобретении материалов i-го наименования (оплата услуг транспорта, комиссионных посредникам и др.).

КТ, i равно 1,12.

Расчет стоимости используемых материалов представлен в таблице 6.1.

Таблица 6.1 — Расчет стоимости используемых материалов

Наименование материала

Ед. изм.

Цена за единицу, руб.

Расход на разработку

Коэффициент, КТ

Сумма, руб.

Бумага для принтера А4

пачка

1,12

190,4

Папка для бумаг

шт.

1,12

67,2

Всего

257,6

В расходы по расчету стоимости покупных комплектующих следует включать стоимость необходимых для разработки, отладки и сдачи заказчику покупных изделий, таких как, информационные носители (CD-RW, DVD-RW диски), сервисных программ, систем и языков программирования и т. д.

Стоимость покупных комплектующих может в общем виде быть рассчитана по формуле:

Пок = Ni х Цi х КТ, i руб.,

где: — i — наименование покупных изделий;

— n — количество видов покупных комплектующих;

— Ni — расход на разработку покупных комплектующих i-го наименования;

— Цi — цена приобретения единицы покупных комплектующих i-го наименования.

Показать весь текст
Заполнить форму текущей работой