автордың кітабын онлайн тегін оқу Современные технологии информационной безопасности
М. В. Шаханова
Современные технологии информационной безопасности
Учебно-методический комплекс
Информация о книге
УДК 614.2
ББК 66.4(2)3
Ш11
Автор: Шаханова М. В.
Рецензенты: Гряник В. Н., канд. техн. наук, доц., зав. кафедрой электроники ВГУЭС;
Быканова А. Ю., канд. техн. наук., ст. научный сотрудник ИПМТ ДВО РАН.
Последовательно излагаются основные понятия построения современных технологий информационной безопасности. Учебно-методический комплекс содержит актуальный материал справочно-аналитического характера по следующим темам: понятие информационной безопасности; основные классификации угроз информационной безопасности; программы с потенциально опасными последствиями; элементарные методы цифрового шифрования; симметричные системы защиты информации; криптографические системы с открытым ключом; аутентификация; методы криптоанализа классических шифров.
Пособие предназначено для студентов специальности «Информационные системы и технологии» для изучения дисциплины «Информационная безопасность и защита информации».
УДК 614.2
ББК 66.4(2)3
© ДВФУ, 2007
© ООО "Проспект", электронная версия книги, 2015
ВВЕДЕНИЕ
В последнее столетие появилось много отраслей производства, которые почти на 100% состоят из одной информации, например дизайн, создание программного обеспечения, реклама и др. Ярко демонстрирует повышение роли информации в производственных процессах появление такого занятия, как промышленный шпионаж. Не материальные ценности, а чистая информация становится объектом похищения.
С появлением и распространением компьютеров и средств автоматизированной обработки информации возникла потребность в автоматизированных средствах защиты файлов и другой хранимой компьютерами информации. Особенно остро потребность в средствах защиты ощущается в многопользовательских системах, таких как системы с разделением времени, а также в системах, к которым можно получить доступ по обычным телефонным линиям связи или открытым компьютерным сетям. Поэтому для описания совокупности методов и средств, предназначенных для защиты данных и противодействию хакерам, стал применяться термин компьютерная безопасность.
В результате появления распределенных систем обработки данных и использования сетей и коммуникационного оборудования для обмена данными между пользователями терминалов и центральными компьютерами возникла потребность в обеспечении защиты сети, по которой передаются данные. Здесь следует отметить, что термин “сетевая безопасность” подразумевает не одну, отдельно взятую локальную сеть, а некоторую совокупность сетей предприятий, правительственных учреждений и учебных заведений, связанных между собой в объединенную сеть обработки данных (Internet).
Между этими двумя формами безопасности – компьютерной и сетевой – вряд ли можно провести четкую границу. Например, одним из самых широко известных типов вмешательства в работу информационной системы является компьютерный вирус. Вирус может вноситься в систему как физически, например с дискеты, с которой он считывается и попадает в компьютер, так и через объединенную сеть. Но как бы то ни было, после заражения компьютерной системы вирусом для его идентификации и удаления приходится использовать локальные средства компьютерной безопасности.
Учебное пособие, представляющее собой структурированную подборку материалов, посвященных рассмотрению современных технологий информационной безопасности и методов защиты информации, ставит своей целью предложить систематический обзор теоретических основ криптографии и ее практических приложений в области защиты информации. В данном пособии освещаются актуальные вопросы защиты информации при создании и использовании распределенных корпоративных информационных систем. Особое внимание уделено проблемам обеспечения информационной безопасности, элементарным методам цифрового шифрования, аутентификации и методам криптоанализа классических шифров.
Учебно-методический комплекс по дисциплине “Информационная безопасность и защита информации” включает в себя учебное пособие, рабочую учебную программу по дисциплине, методические рекомендации к выполнению лабораторных курсовых работ, а также тесты. Вопросы с вариантами ответов для самоконтроля помогут лучше разобраться в изучаемом материале и глубже понять его смысл, также эти вопросы могут быть использованы преподавателями с целью контроля усвоения материала учащимися.
Цикл, состоящий из пяти лабораторных работ, проводится в рамках дисциплины “Информационная безопасность и защита информации”.
Среди всего спектра методов защиты данных от нежелательного доступа особое место занимают криптографические алгоритмы. В отличие от других методов, они опираются лишь на свойства самой информации и не используют свойства ее материальных носителей, особенности узлов ее обработки, передачи и хранения. Образно говоря, криптографические методы строят барьер между защищаемой информацией и реальным или потенциальным злоумышленником из самой информации.
Криптографические методы защиты информации в автоматизированных системах могут применяться как для защиты информации, обрабатываемой в ЭВМ или хранящейся в различного типа узлах, так и для закрытия информации, передаваемой между различными элементами системы по линиям связи.
Основные направления использования криптографических алгоритмов – передача конфиденциальной информации по каналам связи (например, электронная почта), установление подлинности передаваемых сообщений, хранение информации (документов, баз данных) на носителях в зашифрованном виде.
Выполнение лабораторной работы № 1 “Алгоритмы вычисления наибольшего общего делителя” дает студентам практические навыки реализации алгоритмов Евклида (классического, бинарного, расширенного). Программы, реализующие указанные алгоритмы, используются в двух следующих лабораторных работах и, кроме того, применяются в дальнейших работах по дисциплине “Криптографические методы и средства обеспечения информационной безопасности” для вычисления наибольшего общего делителя и обращения чисел и многочленов (например, при выработке параметров криптосистемы RSA).
При выполнении работы № 2 “Вероятностные алгоритмы проверки чисел на простоту” студенты должны написать программы, реализующие тесты Ферма, Соловэя-Штрассена и Миллера-Рабина, убедиться в работоспособности алгоритмов (учитывая вероятностный характер тестирования), исследовать алгоритмы на количество ошибок, допускаемых ими в зависимости от вида тестируемого числа (распознавание чисел Кармайкла) и от количества прогонов теста, обработать полученные статистические данные, а также измерить и сравнить время работы программ. Полученные навыки используются в курсовых работах по дисциплине “Криптографические методы и средства обеспечения информационной безопасности” при выработке параметров криптосистем с открытым ключом (для шифрования, цифровой подписи, алгоритмов на эллиптических кривых).
При выполнении лабораторных работ № 3, № 4 и № 5 “Элементарные методы цифрового шифрования”, “Симметричные системы защиты информации” и “Системы защиты информации с открытым ключом. Асимметричные системы” студенты должны написать программы, реализующие эти алгоритмы, протестировать их и реализовать программы, помогающие вскрыть один из алгоритмов путем криптографического анализа, исследовать алгоритмы на количество ошибок, обработать полученные статистические данные, а также измерить и сравнить время работы программ.
Учебное пособие, предназначенное как для академической, так и профессиональной аудитории, может выступать в качестве основы курса по информационной безопасности и защиты информации для студентов, а также может использоваться как справочная литература.
1. ПОНЯТИЕ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ
Давно известно, что информация может быть настоящим сокровищем. Именно поэтому часто много усилий затрачивается как на охрану информации, так и на добывание ее. Информацию нужно защищать в тех случаях, когда есть опасения, что она станет доступной посторонним, которые могут обратить ее во вред законному пользователю.
Информация – основное понятие научных направлений, изучающих процессы передачи, переработки и хранения различных данных. Суть понятия информации обычно поясняется на примерах. Формальное определение не дается, поскольку понятие информации относится к таким фундаментальным понятиям, как материя.
Информация, которая нуждается в защите, возникает в самых разных жизненных ситуациях. В таких случаях говорят, что информация содержит тайну и является защищаемой, приватной, конфиденциальной, секретной. Для наиболее типичных ситуаций введены специальные понятия: государственная тайна, военная тайна, коммерческая тайна, юридическая тайна, врачебная тайна.
Защищаемая информация имеет следующие признаки:
– имеется определенный круг законных пользователей, которые имеют право владеть этой информацией;
– имеются незаконные пользователи, которые стремятся овладеть этой информацией с тем, чтобы обратить ее себе во благо, а законным пользователям во вред.
Со стороны незаконных пользователей существуют различные виды угроз для защищаемой информации: угроза разглашения информации, подмена информации, имитация информации и др.
Между людьми происходит интенсивный обмен информацией, причем часто на большие расстояния. Для обеспечения такого обмена информацией существуют различные виды технических средств связи: телеграф, телефон, радио, телевидение. Нередко возникает необходимость в обмене между удаленными пользователями не просто информацией, а защищаемой информацией. В этом случае незаконный пользователь может попытаться перехватить информацию из общедоступного технического канала связи. Опасаясь этого, законные пользователи должны принять дополнительные меры для защиты своей информации.
С повышением значимости и ценности информации соответственно растёт и важность её защиты.
С одной стороны, информация стоит денег. Значит, утечка или утрата информации повлечёт материальный ущерб. С другой стороны, информация – это управление. Несанкционированное вмешательство в управление может привести к катастрофическим последствиям в объекте управления – производстве, транспорте, военном деле. Например, современная военная наука утверждает, что полное лишение средств связи сводит боеспособность армии до нуля.
Защиту информации (ЗИ) в рамках настоящего курса определим так: меры для ограничения доступа к информации для каких-либо лиц (категорий лиц), а также для удостоверения подлинности и неизменности информации.
Аспекты защиты информации
Кроме всего вышесказанного, есть еще одна важная проблема: проблема соотношения цены информации, затрат на ее защиту и затрат на ее добывание. При современном уровне развития техники сами средства связи, а также разработка средств перехвата информации из них и средств защиты информации требует очень больших затрат.
Во-первых, хорошая защита информации обходится дорого. Плохая же защита никому не нужна, ибо наличие в ней лишь одной “дырки” означает полную бесполезность всей защиты в целом (принцип сплошной защиты). Поэтому прежде чем решать вопрос о защите информации, следует определить, стоит ли она того. Способен ли возможный ущерб от разглашения или потери информации превысить затраты на её защиту? С этой же целью надо максимально сузить круг защищаемой информации, чтобы не тратить лишних денег и времени.
Во-вторых, прежде чем защищать информацию, нелишне определить перечень вероятных угроз, поскольку от всего на свете вы всё равно не защититесь. Возможен вариант, когда вам надо обезопасить данные от несанкционированного доступа извне, например из Интернета. Возможно, однако, что хакеров ваши данные вовсе не интересуют, и вам следует защищать информацию только от собственных сотрудников. Возможно также, что похищение или разглашение вашей информации никому не навредит, но вот её подмена может нанести вам урон. Во всех трёх случаях методы защиты будут сильно различаться.
В-третьих, при планировании схемы ЗИ большое значение имеет не только её объективная надёжность, но и отношение к защите других людей. В некоторых случаях достаточно, чтобы вы сами были уверены в достаточной надёжности защиты. А в других – это нужно доказать иным людям (например, заказчикам), часто не разбирающимся в соответствующих вопросах.
Таким образом, не существует абсолютной защиты. Всякая защита измеряется временем взлома.
Быстро развивающиеся компьютерные информационные технологии вносят заметные изменения в нашу жизнь. Информация стала товаром, который можно приобрести, продать, обменять. При этом стоимость информации часто в сотни раз превосходит стоимость компьютерной системы, в которой она хранится.
От степени безопасности информационных технологий в настоящее время зависит благополучие, а порой и жизнь многих людей. Такова плата за усложнение и повсеместное распространение автоматизированных систем обработки информации.
Под информационной безопасностью понимается защищенность информационной системы от случайного или преднамеренного вмешательства, наносящего ущерб владельцам или пользователям информации.
На практике важнейшими являются три аспекта информационной безопасности:
– доступность (возможность за разумное время получить требуемую информационную услугу);
– целостность (актуальность и непротиворечивость информации, ее защищенность от разрушения и несанкционированного изменения);
– конфиденциальность (защита от несанкционированного прочтения).
Нарушения доступности, целостности и конфиденциальности информации могут быть вызваны различными опасными воздействиями на информационные компьютерные системы.
Исходя из всего упомянутого в этой главе, можно прийти к выводу, что обеспечение информационной безопасности – это очень важный, чрезвычайно обширный и необходимый вопрос, решение которого планируется из совершенно чётко определённых условий, имеет множество вариантов, совокупное использование которых дает приемлемый результат.
2. ОСНОВНЫЕ КЛАССИФИКАЦИИ УГРОЗ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ
Современная информационная система представляет собой сложную систему, состоящую из большого числа компонентов различной степени автономности, которые связаны между собой и обмениваются данными. Практически каждый компонент может подвергнуться внешнему воздействию или выйти из строя.
Обеспечение сохранности конфиденциальной информации необходимо начинать с определения системы угроз, т.е. негативных процессов, способствующих утечке информации. Именно угрозы призваны устранять механизмы обеспечения безопасности. Для успешной защиты ВС необходимо знать весь перечень угроз безопасности. Тип угроз и их количество зависят от типа ВС, но если разработчик имеет полный список угроз, то он сможет выбрать необходимые и применить требующиеся для их устранения средства защиты. Существует множество классификаций видов угроз по принципам и характеру их воздействия на систему, по используемым средствам, по целям атаки и т.д. В данной работе приводятся несколько общих классификаций угроз безопасности.
2.1. Классификация угроз, предложенная Стивом Кентом
Для классификации угроз был принят подход, предложенный Стивом Кентом. Эта классификация не потеряла актуальности и составляет основу большинства описаний угроз защиты (рис. 2.1).
Рис. 2.1. Угрозы безопасности
Угрозы подразделяются на преднамеренные (связанные с целенаправленными действиями нарушителя; в качестве нарушителя могут выступать служащий, посетитель, конкурент, наемник и т.д.) и случайные. Причинами случайных воздействий могут быть аварийные ситуации из-за стихийных бедствий и отключений электропитания, отказы и сбои аппаратуры, ошибки в программном обеспечении, ошибки в работе обслуживающего персонала и пользователей, помехи в линиях связи из-за воздействий внешней среды.
Преднамеренные в свою очередь подразделяются на пассивные и активные. Пассивные атаки носят характер перехвата или мониторинга передаваемой информации и не связаны с каким-либо изменением информации, их можно условно разделить на две группы: раскрытие содержимого сообщения и анализ потока данных. Что такое раскрытие сообщения пояснять не нужно (телефонный разговор, электронная почта).
Второй тип пассивных нарушений – анализ потока данных – более сложен для понимания. Предположим, что мы используем такой способ маскировки содержимого сообщения, что нарушитель, получив сообщение, не может извлечь из него информацию. Но даже если шифрование надежно скрывает содержимое, у нарушителя остается возможность наблюдать характерные признаки передаваемых сообщений. Например, можно вычислить узлы отправления, отследить частоту обмена сообщениями и их длину.
Пассивные нарушения обнаружить очень трудно, но их вполне реально предупредить.
Активные угрозы связаны с изменением потока данных либо с созданием фальшивых потоков и могут быть подразделены на четыре группы:
1. Имитация означает попытку одного объекта выдать себя за другой. Обычно имитация выполняется вместе с попыткой активного нарушения какого-нибудь другого типа. Например, перехватив поток данных аутентификации, которыми обмениваются системы, нарушитель может затем воспроизвести реальную последовательность аутентификации, что позволяет объекту с ограниченными полномочиями расширить свои полномочия, имитировав объект, имеющий более широкие полномочия.
2. Воспроизведение представляет собой пассивный перехват блока данных и последующую повторную передачу перехваченных данных с целью получения несанкционированного эффекта.
3. Модификация означает либо изменение части легитимного сообщения, либо его задержку, либо изменение порядка поступления сообщения с целью получения несанкционированного эффекта. Например, сообщение “Разрешить доступ к секретному файлу Бюджет Ивану Иванову” можно преобразовать к виду “Разрешить доступ к секретному файлу Бюджет Петру Петрову”.
4. Помехи в обслуживании создают препятствия в нормальном функционировании средств связи или управлении ими. Например, объект может задерживать все сообщения, направленные определенному адресату. Другим примером помех в обслуживании является блокирование работы всей сети путем вывода сети из строя либо путем преднамеренной ее перегрузки интенсивным потоком сообщений.
Активные угрозы защиты имеют характеристики, противоположные характеристикам пассивных нарушений. Если пассивные нарушения трудно обнаружить, но существуют методы, позволяющие их предотвратить, то активные угрозы полностью предотвратить очень непросто, поскольку это можно осуществить только непрерывной во времени физической защитой всех средств связи. Поэтому в случае активных нарушений основной целью должно быть выявление таковых и быстрое восстановление нормальной работоспособности системы, которая может работать медленнее или не работать вообще.
2.2. Классификация угроз безопасности по средствам воздействия на систему
По средствам воздействия различают три основных класса угроз:
1. Вмешательство человека в работу вычислительной системы. К этому классу относятся организационные средства нарушения безопасности (кража носителей информации, несанкционированный доступ к устройствам хранения и обработки информации, порча оборудования и т.д.) и осуществление нарушителем несанкционированного доступа к программным компонентам системы (все способы несанкционированного проникновения в систему, а также способы получения пользователем-нарушителем незаконных прав доступа). Меры, противостоящие таким угрозам, носят организационный характер, а также включают в себя совершенствование систем разграничения доступа и системы обнаружения попыток атак (например, попыток подбора паролей).
2. Аппаратурно-техническое вмешательство в работу вычислительной системы. Имеется в виду нарушение безопасности и целостности информации с помощью технических средств, например получение информации по электромагнитному излучению устройств, электромагнитные воздействия на каналы передачи информации и другие методы. Защита от таких угроз, кроме организационных мер, предусматривает соответствующие аппаратные и программные меры.
3. Разрушающее воздействие на программные компоненты системы с помощью программных средств. Такие средства называются разрушающими программными средствами (РПС). К ним относятся компьютерные вирусы, троянские кони, средства проникновения в удалённые системы с использованием локальных и глобальных сетей. Средства борьбы с подобными атаками состоят из программно – и (реже) аппаратно-реализованных систем защиты.
Рассмотрим подробно каждый из этих классов.
Вмешательство человека
• Диверсия (sabotage) – это физическое или логическое повреждение, сознательно наносимое злоумышленником оборудованию либо информации. При физическом повреждении злоумышленник может, например, повредить жёсткий диск или отключить питание при выполнении критической дисковой операции. В качестве примеров логического повреждения можно привести изменение внутренних или внешних меток и использование программного обеспечения, которое изменяет содержимое файла. Диверсии в основном осуществляют обиженные сотрудники перед увольнением. Месть фирме либо конкретному лицу – основной мотив диверсии.
• Искажение (misrepresentation) – это использование компьютера для введения в заблуждение или запугивания с определённой целью. При данной угрозе компьютер рассматривается как объект, предмет или инструмент правонарушения. Обман, даже если с его помощью извлекается прибыль, не обязательно является преступлением, поэтому искажение само по себе согласно законодательству ещё не компьютерное преступление. Главная опасность искажения состоит во введении в заблуждение лиц, ответственных за безопасность, при сокрытии нарушений.
• Кража (theft) может быть трёх типов: кража оборудования, кража информации и кража услуг.
Кража оборудования – чаще всего вызывает самые большие опасения. Ведь потеря компьютеров означает потерю производительности фирмы, потерю всей хранящейся в похищенных компьютерах информации, которая после этого потеряет свою секретность, доступность и может быть целостность.
Кража информации – для того чтобы похитить информацию, не нужно выносить из здания компьютер. Термин “утечка данных” (data leakage) применяется для описания действий, заключающихся в тайном копировании информации и выносе её за пределы организации. Целостность подвергается опасности только в том случае, когда совершается кража единственной копии информации. Кража информации может оставаться незамеченной.
Кража услуг – может проявляться в разных формах: от игр на служебном компьютере до изготовления с его помощью книг. Использование продукции фирмы и её ресурсов в личных целях есть кража услуг. Этот вид кражи представляет опасность доступности.
• Хищение (embezzlement) обычно имеет отношение к внутренней работе, когда кража денег или ресурсов работодателя выполняется его же сотрудником. Будучи одним из самых старых видов преступлений вообще, хищение является одним из наиболее распространённых видов компьютерных преступлений в частности. Самым лёгким способом хищения данных является их подмена (data diddling) – процесс изменения данных перед вводом или в процессе ввода. Расхитители могут воспользоваться таким богатым набором различных приёмов, что рассказать обо всех практически невозможно.
• Мошенничество (fraud) – это любое использование информационной системы при попытке обмана организации или получения её ресурсов. Способы мошенничества столь же разнообразны, как и способы хищения.
• Небрежность (bumbling) – ошибки человека (human errors), случайности (accidents), оплошности (errors of omission), проявления некомпетентности (errors of commission).
• Неточная или устаревшая информация.
• Различные версии. Программное обеспечение постоянно обновляется, поэтому всегда необходимо следить за тем, какие версии программ используются и своевременно их обновлять.
• Пиггибекинг (piggybacking) – это нелегальное проникновение куда-либо вслед за лицом, имеющим легальный доступ. Электронный пиггибекинг – это получение нелегального доступа после того, как легальный пользователь, введя пароль и подключившись к системе, некорректно завершил сеанс работы или завершил сеанс работы, но не отключился от системы. Физический пиггибекинг – это непосредственное проникновение в закрытую зону после лица, имеющего к ней доступ.
• Самозванство (impersonation) – это использование кода доступа другого человека для проникновения в систему в целях изучения данных, использования программ или отводимого ему компьютерного времени.
• Сбор мусора (scavenging) или подсматривание (browsing) часто связаны с необходимостью покопаться в отходах (dumpster diving), чтобы найти листинги, ленты, диски, информацию о кредитных карточках, использованные копирки и другие сведения. Применительно к компьютерам сбор мусора может означать восстановление с помощью соответствующих утилит файлов, удалённых пользователями. Кроме того, источником утечки информации может стать принтер, когда из-за задержки печати пользователь создаёт большее число копий, которые могут попасть в чужие руки.
• Умышленное повреждение данных или программ.
Аппаратурно-техническое вмешательство
При аппаратурном вмешательстве в функционирование ВС возможны два варианта нарушения безопасности: случайное нарушение (аппаратные сбои, перегрузка) и умышленное (излучение, перехват), при котором аппаратура выступает инструментом нарушителей. Рассмотрим все эти случаи.
• Аппаратные сбои, которые могут нарушить секретность, если они происходят в устройстве управления доступом или если восстановление работоспособности системы требует понижения уровня защиты. Аппаратный сбой может нанести ущерб целостности. Иногда даже сбой одной из микросхем памяти может привести к потере информации, если он произойдёт, например, при копировании. Доступность также может пострадать от аппаратного сбоя. Если какое-либо устройство выйдет из строя, то может быть временная или постоянная потеря доступа к предоставляемым им ресурсам.
• Перегрузка. При больших нагрузках сломается всё что угодно. Когда система перегружается, безопасность сети подвергается риску.
• Излучение (emanations) – это испускание электромагнитных сигналов, являющееся одним из слабых мест в компьютерной защите. Как кабели, так и подключаемые с их помощью устройства излучают определённые сигналы. Чувствительная антенна позволит на расстоянии прочесть данные даже при незначительном уровне излучения. Слабыми местами в системе безопасности из-за излучения могут быть: компьютеры, принтеры, модемы, мониторы, клавиатуры, переходники, усилители, распределительные коробки, места соединения коаксиального кабеля.
• Перехват (wiretapping) может выполняться как с применением элементарных зажимов типа “крокодил”, так и путём наблюдения за излучением или спутниковыми передачами с помощью антенн. Очень часто установить подслушивающее устройство на одном конце кабеля проще, чем подключиться где-то посередине.
Воздействие на программные компоненты вычислительной системы
Существует три вида использования программных продуктов для атаки на вычислительную систему. Либо используются внедряемые разрушительные программные средства (вирусы, черви, троянские кони), либо используется установленное программное обеспечение (логические бомбы, ошибки программирования, неправильная маршрутизация, потайные ходы и лазейки). Третьим видом является использование особых утилит и программ (сетевые анализаторы, суперзаппинг).
Разрушительные программные средства (РПС) – это класс программ, предназначенных для атаки на ВС и содержащих деструктивные функции. РПС бывают несамовоспроизводящимися (троянские кони) и самовоспроизводящимися (вирусы, черви). Классификация РПС представлена на рис. 2.2.
Рис. 2.2. Типы РПС
Установленное программное обеспечение служит источником потенциальных брешей в безопасности. Потенциальные бреши в безопасности (flaw) – это недостатки программного обеспечения, заложенные на этапе его разработки и внедрения. За этот тип угроз несут ответственность разработчики, которые допускают ошибки в программировании, оставляют в готовом продукте средства отладки и скрытые лазейки. Ошибки в ходе эксплуатации также приводят к появлению потенциальных брешей в безопасности, например неправильная маршрутизация.
Особые утилиты являются средством нарушения безопасности в руках злоумышленников. Прослушивание сетевого трафика, осуществление целого класса удалённых атак возможно лишь с помощью специального программного обеспечения.
Очень кратко дадим понятия разрушительных программных средств, подробнее о них будет изложено далее.
• Вирусы – это программы, которые могут заражать другие программы, модифицируя их посредством добавления своих, возможно изменённых копий. По статистике основными способами проникновения вирусов являются принесённые из дома носители и программное обеспечение, распространяемое по глобальным сетям. Для вирусов, в отличие от других РПС, необходим носитель, с которым они проникают в систему и заражают другие файлы.
• Троянский конь (troyan horse) – это любая программа, содержащая в себе некоторую разрушающую функцию, которая активизируется при наступлении некоторого условия срабатывания. Троян – это вирус, который, маскируясь под полезную программу, антивирус, upgrade к Windows и т.д., заражает ваш компьютер.
• Сетевыми червями называют вирусы, которые распространяются по глобальным сетям, поражая целые системы, а не программы. С появлением глобальной сети Internet этот вид нарушения безопасности представляет наибольшую угрозу. Обычно целью взлома сетей является приобретение нелегальных прав на пользование ресурсами системы.
• Логическая бомба (logic bomb) – это модификация компьютерной программы, в результате которой данная программа может выполняться несколькими способами в зависимости от определённых обстоятельств. При проверке в обычных условиях бомба никак не проявляется, но при определённом событии программа работает по алгоритму, отличному от заданного. Логические бомбы могут использоваться для хищений, могут случайным образом изменять или уничтожать данные.
• Потайной ход (back door) – это дополнительный способ проникновения в систему, часто преднамеренно создаваемый разработчиком сети, хотя иногда он может возникнуть и случайно. Лазейка (trap door) – разновидность потайного хода. Так обычно называют вспомогательные средства, которые программисты используют при создании, тестировании или поддержке комплексных программ. Потайные ходы обычно не документируются.
• Ошибки программирования (bugs). Ошибки не являются результатом злого умысла, но их наличие в программном продукте подвергает опасности самые различные аспекты функционирования системы.
• При работе в сетях очень часто возникает проблема неправильной маршрутизации, т.е. информация передаётся не тому, кому она предназначена. Это может быть связано с совпадением номеров узлов глобальной сети либо со слишком педантичным следованием инструкции, когда несколько пользователей дают своим узлам имена, указанные в инструкции по умолчанию.
• Сетевые анализаторы – это программы, позволяющие вести анализ сетевого трафика. Используя аппаратные и программные средства, большинство из них могут считывать любые параметры потока данных, включая любой незашифрованный текст.
• Суперзаппинг (superzapping) – это несанкционированное использование утилит для модификации, уничтожения, копирования, вскрытия, вставки, применения или запрещения применения компьютерных данных. Никакими программными средствами суперзаппинг обычно обнаружить невозможно. Кроме того, даже используя системные журналы, доказать суперзаппинг очень сложно, так как нарушитель может отредактировать эти журналы.
2.3. Угрозы безопасности в распределительных системах
Рассмотрим типичные угрозы, характерные для современных распределенных систем. Классифицируя угрозы, выделим фундаментальные, первичные инициирующие и базовые угрозы.
К фундаментальным угрозам относятся:
утечка информации – раскрытие информации неавторизованному пользователю или процессу;
нарушение целостности – компрометация согласованности (непротиворечивости) данных путем целенаправленного создания, подмены и разрушения данных;
отказ в услуге – преднамеренная блокировка легального доступа к информации или другим ресурсам (например, при помощи перегрузки сервера потоком запросов);
незаконное использование – использование ресурсов незаконным образом, неавторизованным объектом или субъектом. Например, использование удаленного компьютера с целью “взлома” других компьютеров сети.
Реализация фундаментальных угроз во многом зависит от реализации первичных угроз. Первичные угрозы инициируют фундаментальные угрозы. Первичные угрозы подразделяются на угрозы проникновения и угрозы внедрения.
К угрозам проникновения относятся:
маскарад. Пользователь (или иная сущность – процесс, подсистема и т.д.) маскируется и пытается выдать себя за другого пользователя. Данная угроза, как правило, связана с попытками проникновения внутрь периметра безопасности и часто реализуется хакерами;
обход защиты – использование слабых мест системы безопасности для обхода защитных механизмов с целью получения законных прав и привилегий;
нарушение полномочий – использование ресурсов не по назначению. Данная угроза связана с действиями внутреннего нарушителя.
К угрозам внедрения относятся:
троянские программы – программы, содержащие скрытый или явный программный код, при исполнении которого нарушается функционирование системы безопасности;
потайные ходы – некоторые дополнительные возможности, тайно встраиваемые в систему или ее компоненты, нарушающие функционирование системы безопасности при введении специфических данных.
Подобные угрозы, как правило, реализуются при помощи специальных агентов внедрения, активизирующихся после некоторого периода латентности.
Рассматривая фундаментальные угрозы, следует учитывать также угрозы базовые. Например, утечка информации связана с такими базовыми угрозами, как подслушивание, анализ трафика, персональная неосторожность, “копание в мусоре”.
2.4. Взаимосвязь различных видов угроз
Взаимосвязь различных угроз может быть достаточно сложной (рис. 2.3). Так, маскарад является угрозой, инициирующей фундаментальные угрозы, в том числе утечку информации. Однако маскарад сам по себе также может зависеть от утечки информации. Например, раскрытие пароля может инициировать угрозу маскарада.
Рис. 2.3. Взаимосвязь угроз
Анализ более трех тысяч компьютерных преступлений показал, что чаще всего возникают следующие угрозы (в порядке убывания): нарушение полномочий, маскарад, обход защиты, троянские программы или потайные ходы, “копание в мусоре”.
Рассмотренные в данной главе угрозы безопасности довольно многочисленны и разнообразны. Конечно, разработчику необходимо знать и ориентироваться во всё возрастающем объёме угроз, но для вычислительной системы разного назначения список актуальных угроз разный. Чтобы определить, какие угрозы для данной системы более актуальны, а какие совсем не важны, существуют методы анализа опасностей – это определение вероятности угроз и потенциальных потерь, которые могут произойти вследствие изъянов системы. Основываясь на результатах анализа, можно выбрать ряд средств контроля или мер обеспечения безопасности, обладающих высокой экономической эффективностью и обеспечивающих необходимый уровень защиты.
3. ПРОГРАММЫ С ПОТЕНЦИАЛЬНО ОПАСНЫМИ ПОСЛЕДСТВИЯМИ
Программой с потенциально опасными последствиями назовем программу или часть программы, которая способна выполнить одно из следующих действий:
• скрыть признаки своего присутствия в программной среде ПЭВМ;
• самодублироваться, ассоциировать себя с другими программами и/или переносить свои фрагменты в какие-либо области оперативной или внешней памяти, не принадлежащие программе;
• изменять код программ в оперативной или внешней памяти;
• сохранять фрагменты информации из оперативной памяти в некоторых областях внешней памяти (локальных или удаленных);
• искажать произвольным образом, блокировать и/или подменять выводимый во внешнюю память или канал связи массив информации, образовавшийся в результате работы прикладных программ, или уже находящиеся во внешней памяти массивы данных.
Программы с потенциально опасными последствиями можно условно подразделить:
• на классические программы-“вирусы”;
• программы типа “программный червь” или “троянский конь” и фрагменты программ типа “логический люк”;
• программы типа “логическая бомба”;
• программные закладки – обобщенный класс программ с потенциально опасными последствиями.
Кроме того, такие программы можно классифицировать по методу и месту их внедрения и применения (т.е. по “способу доставки” в систему):
• закладки, связанные с программно-аппаратной средой (BIOS);
• закладки, связанные с программами первичной загрузки;
• закладки, связанные с драйвером DOS, командным интерпретатором, сетевыми драйверами, т.е. с загрузкой и работой операционной среды;
• закладки, связанные с прикладным программным обеспечением общего назначения (встроенные в клавиатурные и экранные драйверы, программы тестирования ПЭВМ, утилиты, файловые оболочки);
• исполняемые модули, содержащие только код закладки (как правило, внедряемые в пакетные файлы типа ВАТ);
• модули-имитаторы, совпадающие по внешнему виду с легальными программами, требующими ввода конфиденциальной информации;
• закладки, маскируемые под программные средства оптимизационного назначения (архиваторы, ускорители и т.д.);
• закладки, маскируемые под программные средства игрового и развлекательного назначения (как правило, используются для первичного внедрения других закладок; условное название – “исследователь”).
3.1. Компьютерные вирусы
Первые исследования саморазмножающихся искусственных конструкций проводились в середине прошлого столетия: в работах фон Неймана, Винера и других дано определение и проведен математический анализ конечных автоматов, в том числе самовоспроизводящихся. Термин “компьютерный вирус” появился позднее – официально считается, что его впервые употребил сотрудник Лехайского университета (США) Фред Коэн в 1984 г. на 7-й конференции по безопасности информации, проходившей в США.
Что такое компьютерный вирус? Формальное определение этого понятия до сих пор не придумано, и есть серьезные сомнения, что оно вообще может быть дано. Многочисленные попытки дать “современное” определение вируса не привели к успеху. Чтобы почувствовать всю сложность проблемы, попробуйте, к примеру, дать определение понятия “редактор”. Вы либо придумаете нечто очень общее, либо начнете перечислять все известные типы редакторов. И то, и другое вряд ли можно считать приемлемым. Поэтому мы ограничимся рассмотрением некоторых свойств компьютерных вирусов, которые позволяют говорить о них как о некотором определенном классе программ.
Компьютерный вирус – это программа, обладающая способностью к самовоспроизведению. Такая способность является единственным средством, присущим всем типам вирусов. Но не только вирусы способны к самовоспроизведению. Любая операционная система и еще множество программ способны создавать собственные копии. Копии же вируса не только не обязаны полностью совпадать с оригиналом, но и могут вообще с ним не совпадать!
Вирус не может существовать в “полной изоляции”: сегодня нельзя представить себе вирус, который не использует код других программ, информацию о файловой структуре или даже просто имена других программ. Причина понятна: вирус должен каким-нибудь способом обеспечить передачу себе управления. Программа, внутри которой находится вирус, называется “зараженной”. Когда такая программа начинает работу, то сначала, как правило, управление получает вирус. Вирус находит и “заражает” другие программы или выполняет какие-нибудь вредные функции: портит файлы или таблицу размещения файлов на диске, “засоряет” оперативную память, изменяет адресацию обращений к внешним устройствам и т.д. Более того, зараженные программы могут быть перенесены на другой компьютер с помощью дискет или локальной сети.
В настоящее время известно более тридцати тысяч вирусов. Условно они подразделяются на классы по следующим признакам:
• среда обитания вируса;
• способ заражения среды обитания;
• деструктивные возможности;
• особенности алгоритма.
По среде обитания различают вирусы сетевые, файловые, загрузочные и специальные. Сетевые вирусы распространяются по компьютерной сети, файловые внедряются в выполняемые файлы, т.е. в файлы, имеющие расширения СОМ и EXE. Файловые вирусы могут внедряться и в другие типы файлов, но, как правило, записанные в таких файлах, они никогда не получают управление и, следовательно, теряют способность к размножению. Загрузочные вирусы внедряются в загрузочный сектор диска (Boot-сектор) или в сектор, содержащий программу загрузки системного диска (Master Boot Record). Специальные ориентированы на конкретные особенности программного обеспечения (ПО), например вирус, заражающий документы редактора Word. Существуют сочетания – например, файлово-загрузочные вирусы, заражающие и файлы, и загрузочные сектора дисков. Кроме того, по сети могут распространяться вирусы любых типов.
По способу заражения вирусы делятся на резидентные и нерезидентные. Резидентный вирус при заражении (инфицировании) компьютера оставляет в оперативной памяти свою резидентную часть, которая потом перехватывает обращение операционной системы к объектам заражения (файлам, загрузочным секторам дисков и т.п.) и внедряется в них. Резидентные вирусы находятся в памяти и являются активными вплоть до выключения или перезагрузки компьютера. Нерезидентные вирусы не заражают память компьютера и являются активными ограниченное время. Некоторые вирусы оставляют в оперативной памяти небольшие резидентные программы, которые не распространяют вирус. Такие вирусы считаются нерезидентными.
По деструктивным возможностям вирусы можно разделить:
• на безвредные, никак не влияющие на работу компьютера (кроме уменьшения свободной памяти на диске в результате своего распространения);
• неопасные, влияние которых ограничивается уменьшением свободной памяти на диске и графическими, звуковыми и прочими эффектами;
• опасные вирусы, которые могут привести к серьезным сбоям в работе компьютера;
• очень опасные вирусы, которые могут привести к потере программ, уничтожить данные, способствовать ускоренному износу или повреждению частей механизмов (например, головок винчестеров).
По особенностям алгоритма вирусы трудно классифицировать из-за большого разнообразия. Простейшие вирусы – паразитические, они изменяют содержимое файлов и секторов диска и могут быть достаточно легко обнаружены и уничтожены. Можно отметить вирусы-репликаторы, называемые червями, которые распространяются по компьютерным сетям, вычисляют адреса сетевых компьютеров и записывают по этим адресам свои копии. Известны вирусы-невидимки, называемые стелс-вирусами, которые очень трудно обнаружить и обезвредить, так как они перехватывают обращения операционной системы к пораженным файлам и секторам дисков и подставляют вместо своего тела незараженные участки диска. Наиболее трудно обнаружить вирусы-мутанты, содержащие алгоритмы шифровки-расшифровки, благодаря которым копии одного и того же вируса не имеют ни одной повторяющейся цепочки байтов. Имеются и так называемые квазивирусные или “троянские" программы, которые хотя и не способны к самораспространению, но очень опасны, так как, маскируясь под полезную программу, разрушают загрузочный сектор и файловую систему дисков.
3.1.1. Основные виды вирусов и схемы их функционирования
Среди всего разнообразия вирусов можно выделить следующие основные группы:
• загрузочные;
• файловые;
• файлово-загрузочные.
Теперь поподробнее о каждой из этих групп.
Загрузочные вирусы
Рассмотрим схему функционирования очень простого загрузочного вируса, заражающего дискеты. Что происходит, когда вы включаете компьютер? Первым делом управление передается программе начальной загрузки, которая хранится в постоянно запоминающем устройстве (ПЗУ), т.е. ПНЗ ПЗУ. Эта программа тестирует оборудование и при успешном завершении проверок пытается найти дискету в дисководе А:\.
Всякая дискета размечена на так называемые секторы и дорожки. Секторы объединяются в кластеры, но это для нас несущественно. Среди секторов есть несколько служебных, используемых операционной системой для собственных нужд (в этих секторах не могут размещаться ваши данные). Среди служебных секторов нас пока интересует один – сектор начальной загрузки (boot-sector). В секторе начальной загрузки хранится информация о дискете – оличество поверхностей, количество дорожек, количество секторов и пр.
Теперь рассмотрим вирус. В загрузочных вирусах выделяют две части – голову и хвост. Хвост, вообще говоря, может быть пустым.
Пусть у вас имеются чистая дискета и зараженный компьютер, под которым мы понимаем компьютер с активным резидентным вирусом. Как только этот вирус обнаружит, что в дисководе появилась подходящая жертва – в нашем случае не защищенная от записи и еще не зараженная дискета, он приступает к заражению. Заражая дискету, вирус производит следующие действия:
• выделяет некоторую область диска и помечает ее как недоступную операционной системе, это можно сделать по-разному, в простейшем и традиционном случае занятые вирусом секторы помечаются как сбойные (bad);
• копирует в выделенную область диска свой хвост и оригинальный (здоровый) загрузочный сектор;
• замещает программу начальной загрузки в загрузочном секторе (на стоящем) своей головой, организует цепочку передачи управления.
Таким образом, голова вируса теперь первой получает управление, вирус устанавливается в память и передает управление оригинальному загрузочному сектору, в цепочке
ПНЗ (ПЗУ) – ПНЗ (диск) – СИСТЕМА
появляется новое звено:
ПНЗ (ПЗУ) – ВИРУС – ПНЗ (диск) – СИСТЕМА
Мораль ясна: никогда не оставляйте (случайно) дискет в дисководе А.
Мы рассмотрели схему функционирования простого загрузочного вируса, живущего в загрузочных секторах дискет. Как правило, вирусы способны заражать не только загрузочные секторы дискет, но и загрузочные секторы винчестеров. При этом в отличие от дискет на винчестере имеются два типа загрузочных секторов, содержащих программы начальной загрузки, которые получают управление. При загрузке компьютера с винчестера первой берет на себя управление программа начальной загрузки в MBR (Master Boot Record – главная загрузочная запись). Если ваш жесткий диск разбит на несколько разделов, то лишь один из них помечен как загрузочный (boot). Программа начальной загрузки в MBR находит загрузочный раздел винчестера и передает управление на программу начальной загрузки этого раздела. Код последней совпадает с кодом программы начальной загрузки, содержащейся на обычных дискетах, а соответствующие загрузочные секторы отличаются только таблицами параметров. Таким образом, на винчестере имеются два объекта атаки загрузочных вирусов: программа начальной загрузки в MBR и программа начальной загрузки в бут-секторе загрузочного диска.
Файловые вирусы
Рассмотрим теперь схему работы простого файлового вируса. В отличие от загрузочных вирусов, которые практически всегда резидентны, файловые вирусы совсем не обязательно резидентны. Рассмотрим схему функционирования нерезидентного файлового вируса. Пусть у нас имеется инфицированный исполняемый файл. При запуске такого файла вирус получает управление, производит некоторые действия и передает управление “хозяину” (т.е. самой программе).
Какие же действия выполняет вирус? Он ищет новый объект для заражения – подходящий по типу файл, который еще не заражен (в том случае, если вирус “приличный”, а то попадаются такие, что заражают сразу, ничего не проверяя). Заражая файл, вирус внедряется в его код, чтобы получить управление при запуске этого файла. Кроме своей основной функции – азмножения, вирус вполне может сделать что-нибудь замысловатое (сказать, спросить, сыграть) – это уже зависит от фантазии автора вируса. Если файловый вирус резидентный, то он установится в память и получит возможность заражать файлы и проявлять прочие способности не только во время работы зараженного файла. Заражая исполняемый файл, вирус всегда изменяет его код – следовательно, заражение исполняемого файла всегда можно обнаружить. Но, изменяя код файла, вирус не обязательно вносит другие изменения:
• не меняет длину файла;
• не использует участки кода;
• не меняет начало файла.
Наконец, к файловым вирусам часто относят вирусы, которые “имеют некоторое отношение к файлам”, но не обязаны внедряться в их код. Рассмотрим в качестве примера схему функционирования вирусов известного семейства Dir-II. Нельзя не признать, что появившись в 1991 г., эти вирусы стали причиной настоящей эпидемии компьютерной чумы в России. Рассмотрим модель, на которой ясно видна основная идея вируса. Информация о файлах хранится в каталогах. Каждая запись каталога включает в себя имя файла, дату и время создания, некоторую дополнительную информацию, номер первого кластера файла и так называемые резервные байты. Последние оставлены «про запас» и самой MS-DOS не используются.
При запуске исполняемых файлов система считывает из записи в каталоге первый кластер файла и далее все остальные кластеры. Вирусы семейства Dir-II производят следующую “реорганизацию” файловой системы: сам вирус записывается в некоторые свободные секторы диска, которые он помечает как сбойные. Кроме того, он сохраняет информацию о первых кластерах исполняемых файлов в резервных битах, а на место этой информации записывает ссылки на себя.
Таким образом, при запуске любого файла вирус получает управление (операционная система запускает его сама), резидентно устанавливается в память и передает управление вызванному файлу.
Загрузочно-файловые вирусы
Мы не станем рассматривать модель загрузочно-файлового вируса, потому что никакой новой информации вы при этом не узнаете. Но здесь представляется удобный случай кратко обсудить крайне “популярный” в одно время загрузочно-файловый вирус OneHalf, заражающий главный загрузочный сектор (MBR) и исполняемые файлы. Основное разрушительное действие – ифрование секторов винчестера. При каждом запуске вирус шифрует очередную порцию секторов, а зашифровав половину жесткого диска, радостно сообщает об этом. Основная проблема при лечении данного вируса состоит в том, что недостаточно просто удалить вирус из MBR и файлов, надо расшифровать зашифрованную им информацию. Наиболее “смертельное” действие – просто переписать новый здоровый MBR. Главное – не паникуйте. Взвесьте все спокойно, посоветуйтесь со специалистами.
Полиморфные вирусы
Большинство вопросов связано с термином “полиморфный вирус”. Этот вид компьютерных вирусов представляется на сегодняшний день наиболее опасным. Объясним же, что это такое.
Полиморфные вирусы – вирусы, модифицирующие свой код в зараженных программах таким образом, что два экземпляра одного и того же вируса могут не совпадать ни в одном бите.
Такие вирусы не только шифруют свой код, используя различные пути шифрования, но и содержат код генерации шифровщика и расшифровщика, что отличает их от обычных шифровальных вирусов, которые также могут шифровать участки своего кода, но имеют при этом постоянный код шифровальщика и расшифровщика.
Полиморфные вирусы – это вирусы с самомодифицирующимися расшифровщиками. Цель такого шифрования: имея зараженный и оригинальный файлы, вы все равно не сможете проанализировать его код с помощью обычного дизассемблирования. Этот код зашифрован и представляет собой бессмысленный набор команд. Расшифровка производится самим вирусом уже непосредственно во время выполнения. При этом возможны варианты: он может расшифровать себя всего сразу, а может выполнить такую расшифровку “по ходу дела”, может вновь шифровать уже отработавшие участки. Все это делается ради затруднения анализа кода вируса.
3.1.2. Пути проникновения вирусов в компьютер и механизм распределения вирусных программ
Основными путями проникновения вирусов в компьютер являются съемные диски (гибкие и лазерные), а также компьютерные сети. Заражение жесткого диска вирусами может произойти при загрузке программы с дискеты, содержащей вирус. Такое заражение может быть и случайным, например, если дискету не вынули из дисковода А и перезагрузили компьютер, при этом дискета может быть и не системной. Заразить дискету гораздо проще. На нее вирус может попасть, даже если дискету просто вставили в дисковод зараженного компьютера и, например, прочитали ее оглавление.
...