Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы защиты информации. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
1 Мб
Скачать

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

Еще один момент: при защите программного продукта от несанкционированного тиражирования основная цель защиты – не сделать невозможным нелегальное использование программного обеспечения, а повысить прибыли от продаж защищаемой программы. Следовательно, сложность и взломостойкость такой защиты не обязательно должны быть высокими.

2.7. ПРИЧИНЫ ОСЛАБЛЕНИЯ ЗАЩИТЫ

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

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

Основные причины ослабления средств защиты

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

1) иллюзия простоты. Многие считают, что в защите информации нет ничего сложного, но защита информации – это такая область, где нельзя быть специалистом частично. Если в других отраслях возможность применения 90 % существующих технологий приводит к результату, который на 10 % хуже идеального, то в защите информации проценты не играют никакой роли. Полученное решение будет или защищенным, или незащищенным;

2) излишнее усердие. Оно заключается в том, что иногда предпринимаются попытки защищать то, что не нуждается в защите, в результате чего противнику становится легче понять, как устроена защита и как преобразовываются секретные данные.

2.Влияние законодательства. В некоторых странах (например, в США, Франции и других) существовали ограничения на размер ключа

51

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

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

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

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

5.Отсутствие ответственности. Очень серьезный фактор, спо-

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

52

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

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

КОНТРОЛЬНЫЕ ВОПРОСЫ

1.От чего защищают программы?

2.Дайте обзор моделей распространения программного обеспече-

ния.

3.Расскажите об атаке типа «Переполнение буфера». Приведите примеры.

4.Расскажите об атаке типа «SQL-инъекция». Приведите примеры.

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

6.Расскажите об атаке типа «XSS» (межсайтовое кодирование). Приведите примеры.

7.В чем заключается принцип минимизации привилегий?

8.Как влияют осмысленные имена функций на защищенность программы?

9.Каким образом проверяются входные данные (как метод противодействия атакам на приложения)?

10.Как влияют сообщения об ошибках на защищенность программы?

11.Расскажите об атаке типа «Отказ в обслуживании»? Приведите примеры.

12.Расскажите о таком способе защиты программного обеспечения, как регистрационные коды. Приведите примеры.

53

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

14.Расскажите о таком способе программного обеспечения, как аппаратные ключи. Приведите примеры.

15.Расскажите о таком способе программного обеспечения, как протекторы. Приведите примеры.

16.Какие критерии сравнения средств защиты приложений вы зна-

ете?

17.Каковы причины ослабления защиты программных продуктов?

54

Глава 3

НАРУШЕНИЯ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ

Двумя самыми распространенными угрозами безопасности являются нарушители и вредоносные программы. Рассмотрим сначала первую из них – нарушителей.

3.1. НАРУШИТЕЛИ

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

керами (hacker) или взломщиками (cracker).

Классификация нарушителей информационной безопасности:

1)имитатор (masquerader) – лицо, не имеющее права пользоваться компьютером, но преодолевшее механизм управления доступом и использующее права доступа некоторого легального пользователя;

2)правонарушитель (misfeasor) – легальный пользователь, пытающийся получить доступ к данным, программам или ресурсам, прав доступа к которым он не имеет;

3)тайный пользователь (clandestine user) – лицо, завладевшее правами управления системой и использующее эти права для обхода средств аудита и управления доступом либо для создания препятствий при регистрации системных событий.

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

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

55

имеющие весьма туманные представления о том, как эти программы работают.

3.1.1.ПРИЧИНЫ ПОЯВЛЕНИЯ ХАКЕРОВ

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

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

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

4.Удовольствие. Некоторые люди не стремятся к славе и деньгам – они исследуют средства защиты только из любопытства или для получения удовольствия от самого процесса исследования.

3.1.2. МЕТОДИКА ВТОРЖЕНИЯ

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

56

Существуют следующие методы получения пароля:

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

2)перебор всех коротких паролей;

3)проверка слов из словаря или из списка наиболее вероятных паролей;

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

5)проверка в качестве пароля телефонных и автомобильных номеров, номеров дома, квартиры, паспорта и других документов;

6)использование «троянского коня» для обхода ограничений доступа;

7)перехват сообщений, передаваемых по линии связи между пользователем и сервером.

3.1.3. ЗАЩИТА ПАРОЛЕЙ

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

одностороннее шифрование. Система хранит пароль пользователя только в шифрованном виде. На практике для этого обычно используют одностороннее преобразование пароля (хэширование);

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

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

encodedPassword = sha1 (md5 (password) + salt);

Использование модификатора решает следующие задачи:

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

57

2)увеличивает эффективную длину пароля, не заставляя пользователя запоминать дополнительные символы;

3)не позволяет использовать для подбора паролей словари с зашифрованными паролями.

3.1.4. СТРАТЕГИЯ ВЫБОРА ПАРОЛЯ

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

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

1.Обучение пользователей. Пользователям можно разъяснить важность использования трудно угадываемых паролей и дать рекомендации по их правильному выбору. Но в большинстве случаев такая стратегия оказывается малоэффективной, особенно если число пользователей велико или имеется постоянный приток и отток пользователей. Одни пользователи будут просто игнорировать рекомендации, другие – не смогут оценить, насколько надежны выбранные ими пароли.

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

3.Реактивная проверка пароля. Стратегия реактивной проверки паролей состоит в том, что система периодически запускает собственную программу подбора паролей, обнаруживающую легко угадываемые пароли. Эта система отменяет все разгаданные пароли и извещает об этом соответствующих пользователей. Данный подход имеет ряд недостатков:

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

58

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

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

Существует несколько подходов к реализации упреждающей проверки пароля.

1.Подход, основанный на создании простой системы контроля за соблюдением определенных правил. Например, можно потребовать, чтобы соблюдались следующие правила:

а) все пароли должны содержать не менее восьми символов; б) среди первых восьми символов должны присутствовать как ми-

нимум одна строчная буква, одна прописная буква, одна цифра и один знак препинания.

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

а) проблема объема. Чтобы подход был эффективным, словарь должен быть достаточно большим;

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

3.Подход, основанный на использовании марковской модели генерирования угадываемых паролей.

3.1.5. ОБНАРУЖЕНИЕ НАРУШИТЕЛЕЙ

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

59

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

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

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

Существующие подходы к решению проблемы обнаружения нарушений

1.Обнаружение на базе статистических отклонений. Предусматривает сбор данных, характеризующих поведение легальных пользователей, в течение определенного времени. Затем эти данные анализируются с применением статистических методов, чтобы с высокой степенью точности установить, соответствует поведение определенного пользователя поведению легального пользователя или нет. Методы обнаружения статистических аномалий можно разделить на две категории:

1) анализ пороговых значений. Данный подход предполагает определение не зависящих от конкретного пользователя пороговых значений, характеризующих частоту возникновения различных событий;

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

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

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

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

60

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]