10.50M
Категория: ИнформатикаИнформатика

ТЗИ v12

1.

СПОСОБЫ РЕАЛИЗАЦИИ НЕСАНКЦИОНИРОВАННОГО ДОСТУПА,
УГРОЗЫ БЕЗОПАСНОСТИ ИНФОРМАЦИИ,
ВИРУСЫ, ЗАКЛАДКИ, СРЕДСТВА ЗАЩИТЫ ИНФОРМАЦИИ

2.

ОСНОВНЫЕ УГРОЗЫ БЕЗОПАСНОСТИ ИНФОРМАЦИИ, ПРИСУЩИЕ
СОВРЕМЕННЫМ ИНФОРМАЦИОННЫМ ТЕХНОЛОГИЯМ

3.

4.

5.

Возможные роли пользователей в модели угроз
и возможные нарушители

6.

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

7.

Виды нарушителей безопасности информации и их возможности
ДЕТИ
«самоутверждение»
ШКОЛЬНИКИ
«попытка заработать»
СТУДЕНТЫ
«начинает получаться»
ХАКЕРЫ
«зарабатывает»
•Взломал почту;
•Поучаствовал в распространении «зловредов»;
•Взломал сайт, нарисовал рожицу;
•Задумался о бот-сетях.
•Купил «банковского трояна»;
•Создал небольшую бот сеть;
•Провел несколько атак «отказ в обслуживании»;
•Узнал новую аббревиатуру – ДБО (дистанционное банковское
обслуживание).
•Начал сам распространять «зловредов»;
•Расширил бот сеть, нашел единомышленников;
•Начал собирать аутентификационные данные;
•Испытал пару вариантов управления счетами или картами.
•Сформирована устойчивая группа единомышленников;
•Крупная бот сеть;
•Собственные разработчики;
•Четкое разделение полномочий и ответственности в группе.

8.

В наше время значительным потенциалом могут обладать, в том числе и дети.
Например, в Интернет можно найти на легальной основе и бесплатно такие
средства для тестирования на проникновение, как
Kali Linux,
которое обладает огромным потенциалом по взлому информационных систем.
Использование таких средств в злонамеренных целях во всех странах мира
жестко карается законом!!!
Однако Kali Linux бесплатное и легально распространяемое средство, которое на
легальной основе может применять, например, испытательная лаборатория на
своих стендах для определения уязвимостей

9.

Возможности нарушителей безопасности информации
http://bdu.fstec.ru/

10.

Классификация уязвимостей

11.

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

12.

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

13.

Возможные агенты угроз в моделях угроз и
нарушителей безопасности информации
Внешний нарушитель (далее категория АГЕНТ_УГРОЗ_0) не имеет непосредственного доступа к системам
и ресурсам, находящимся в пределах КЗ системы.
Внутренние потенциальные нарушители в системе по классификации ФСТЭК России подразделяются на
восемь категорий в зависимости от способа доступа и полномочий доступа к данным.
АГЕНТ_УГРОЗ_1 - относятся лица, имеющие санкционированный доступ к системе, но не имеющие
доступа к данным.
АГЕНТ_УГРОЗ_2 - относятся зарегистрированные пользователи системы, осуществляющие ограниченный
доступ к ресурсам системе с рабочего места.
АГЕНТ_УГРОЗ_3 - относятся зарегистрированные пользователи системы - сотрудники организации,
осуществляющие удаленный доступ к данным по распределенной информационной системе.
АГЕНТ_УГРОЗ_4 - относятся зарегистрированные пользователи системы с полномочиями администратора
безопасности сегмента (фрагмента) системы.
АГЕНТ_УГРОЗ_5 - относятся зарегистрированные пользователи системы с полномочиями системного
администратора.
АГЕНТ_УГРОЗ_6 - относятся зарегистрированные пользователи системы с полномочиями администратора
безопасности системы.
АГЕНТ_УГРОЗ_7 - относятся программисты-разработчики (поставщики) ПО и лица, обеспечивающие его
сопровождение в системе.
АГЕНТ_УГРОЗ_8 - относятся разработчики и лица, обеспечивающие поставку, сопровождение и ремонт
технических средств в системе.

14.

Реализация актуальных угроз системе наиболее вероятными
нарушителями

15.

16.

17.

Классификация атак, реализуемые в сетях общего пользования и сетях
международного информационного обмена
• Угадывание паролей.
• Взлом паролей.
• Использование известных уязвимых мест.
• Отключение/обход систем аудита.
• Back doors (специальные входы в программу, возникающие из-за ошибок при ее
написании или оставленные программистами для отладки).
• Использование снифферов и sweepers (систем контроля содержимого).
• Использование программ диагностики сети для получения необходимых данных.
• Использование автоматизированных сканеров уязвимостей.
• Подмена данных в IP-пакетах.
• Атаки типа «отказ в обслуживании» (DoS).
• Атаки на Web-серверы (CGI-скрипты).
• Технологии скрытого сканирования.
• Распределенные средства атаки.
• Социальная инженерия

18.

19.

БАЗЫ УГРОЗ И УЯЗВИМОСТЕЙ В ФСТЗК РОССИИ, ИЗМЕНЕНИЯ С 2015 ГОДА

20.

ДИНАМИКА УГРОЗ

21.

ДИНАМИКА УГРОЗ

22.

23.

УЯЗВИМОСТИ В ЦИФРАХ

24.

МЕТОДИКА ОПРЕДЕЛЕНИЯ УГРОЗ БЕЗОПАСНОСТИ ИНФОРМАЦИИ
В ИНФОРМАЦИОННЫХ СИСТЕМАХ
(Проект, ФСТЭК России)
идентификация источников угроз
Для идентификации угроз безопасности информации в информационной
системе определяются:
- возможности (тип, вид, потенциал) нарушителей, необходимые им для реализации угроз безопасности информации;
- уязвимости, которые могут использоваться при реализации угроз безопасности информации (включая специально внедренные программные закладки);
- способы (методы) реализации угроз безопасности информации;
- объекты информационной системы, на которые направлена угроза безопасности информации (объекты воздействия);
- результат и последствия от реализации угроз безопасности информации.

25.

МЕТОДИКА ОПРЕДЕЛЕНИЯ УГРОЗ БЕЗОПАСНОСТИ ИНФОРМАЦИИ
В ИНФОРМАЦИОННЫХ СИСТЕМАХ
(Проект, ФСТЭК России)
типы нарушителей
Типы нарушителей определяются по результатам анализа
прав доступа субъектов к информации и (или) к
компонентам информационной системы, а также анализа
возможностей нарушителей по доступу к компонентам
информационной системы исходя из структурнофункциональных характеристик и особенностей
функционирования информационной системы.

26.

МЕТОДИКА ОПРЕДЕЛЕНИЯ УГРОЗ БЕЗОПАСНОСТИ ИНФОРМАЦИИ
В ИНФОРМАЦИОННЫХ СИСТЕМАХ
(Проект, ФСТЭК России)
виды и потенциал нарушителей
- специальные службы иностранных государств (блоков государств);
- террористические, экстремистские группировки;
- преступные группы (криминальные структуры);
- внешние субъекты (физические лица);
- конкурирующие организации;
- разработчики, производители, поставщики программных, технических и
программно-технических средств;
- лица, привлекаемые для установки, наладки, монтажа, пусконаладочных и
иных видов работ;
- лица, обеспечивающие функционирование информационных систем или
обслуживающие инфраструктуру оператора (администрация, охрана, уборщики и т.д.);
- пользователи информационной системы;
- администраторы информационной системы и администраторы безопасности;
- бывшие работники (пользователи).

27.

28.

ОСНОВНЫЕ ТЕНДЕНЦИИ И ДОКУМЕНТЫ, РЕГУЛИРУЮЩИЕ
ВОПРОСЫ ЗАЩИТЫ ИНФОРМАЦИИ ОТ
НЕСАНКЦИОНИРОВАННОГО ДОСТУПА

29.

Основные термины и определения

30.

31.

32.

Направление в вопросах несанкционированного доступа, связанное с
руководящим документом по средствам вычислительной техники
(Оранжевая книга)
Руководящий документ СВТ. Защита от НСД к информации. Показатели
защищенности от НСД к информации (РД СВТ)

33.

Показатели защищенности в РД СВТ

34.

35.

Направление в вопросах несанкционированного доступа, связанное с
ГОСТ Р ИСО/МЭК 15408
(Общие критерии)
Примеры функциональных требований безопасности информации

36.

Требования доверия к безопасности

37.

Требования доверия к безопасности

38.

Приказ ФСТЭК России от2 0 марта 2012г. №28
(зарегистрирован Минюстом России 3 мая 2012г., рег.№24045)
«Об утверждении Требований к средствам антивирусной защиты»

39.

Открыто опубликованы только 12 Профилей защиты средств
антивирусной защиты –для 4, 5 и 6 классов

40.

Типовая схема применения в ИС САВЗ типа «А»

41.

Типовая схема ИС, в которой применяется САВЗ типа «Б»

42.

Типовая схема ИС, в которой применяется САВЗ
типа «В»

43.

«Об утверждении Требований к системам обнаружения вторжений»

44.

Типовая схема применения в ИС СОВ уровня сети

45.

«Об утверждении Требований к межсетевым экранам»

46.

47.

48.

Security Studio Endpoint Protection

49.

Схема защиты ресурсов компьютера от угроз безопасности
информации при применении SSEP и Secret Net

50.

Основные и дополнительные возможности SSEP

51.

SECRET NET
Secret Net – это система защиты конфиденциальной
информации от несанкционированного доступа, которая
реализует требования руководящих документов и ГОСТ по
защите информации и функционирует под управлением ОС
семейства MS Windows. Существует в автономном и сетевом
вариантах.

52.

За счёт интеграции собственных защитных механизмов с механизмами
управления сетевой инфраструктуры защищаемой сети Secret Net повышает
защищенность всей автоматизированной информационной системы в целом и
при этом:
• обеспечивает централизованное управление настройками политики
безопасности;
• работает совместно с ОС Windows, расширяя, дополняя и усиливая
стандартные механизмы защиты;
• осуществляет мониторинг и аудит политики безопасности в режиме
реального времени;
• позволяет оперативно реагировать на события НСД;
• поддерживает терминальный режим работы пользователей с рабочей
станцией.

53.

Структура Secret Net

54.

Электронный замок «Соболь»

55.

56.

Возможности электронного замка ПАК Соболь
•Аутентификация пользователей
•Блокировка загрузки ОС со съемных носителей
•Контроль целостности программной среды
•Контроль целостности системного реестра Windows
•Контроль конфигурации компьютера (PCI-устройств, ACPI,
SMBIOS)
•Сторожевой таймер
•Регистрация попыток доступа к ПЭВМ

57.

Достоинства электронного замка ПАК Соболь
•Наличие сертификатов ФСБ и ФСТЭК России.
•Защита информации, составляющей государственную тайну.
•Помощь в построении прикладных криптографических
приложений.
•Простота в установке, настройке и эксплуатации.
•Поддержка 64-битных операционных систем Windows.
•Поддержка идентификаторов iButton, iKey 2032, eToken PRO,
eToken PRO (Java) и Rutoken S/ RF S.
•Гибкий выбор форматов исполнения платы (PCI, PCI-E, Mini
PCI-E) и вариантов комплектации.

58.

ИСТОРИЯ СОЗДАНИЯ ВИРУСОВ
Теоретические основы создания компьютерных
вирусов были заложены в 40-х годах прошлого
столетия американским ученым Джоном фон
Нейманом (John von Neumann), который также известен
как автор базовых принципов работы современного
компьютера.

59.

ВИРУСЫ
Впервые термин вирус в отношении компьютерных программ
применил Фред Коэн (Fred Cohen).
Ранее также были попытки создания вирусных программ, но
3 ноября 1983 года на еженедельном семинаре по
компьютерной безопасности в Университете Южной
Калифорнии (США), где был предложен проект по созданию
самораспространяющейся программы, которую тут же
окрестили вирусом.

60.

ВИРУСЫ
Для отладки программы (вируса) представленной на
еженедельном семинаре по компьютерной безопасности в
Университете Южной Калифорнии потребовалось 8 часов
компьютерного времени на машине VAX 11/750 под
управлением операционной системы Unix и ровно через
неделю, 10 ноября состоялась первая демонстрация. Фредом
Коэном
По результатам этих исследований была опубликована работа
"Computer Viruses: theory and experiments" с подробным
описанием проблемы.

61.

ВИРУСЫ
Первая вирусоподобная программа была написана
для компьютера Univac 1108 (конец 1960-х - начало
1970-х годов). Он назывался Pervading Animal и
фактически представлял собой игру, написанную с
ошибкой - с помощью наводящих вопросов
программа пыталась определить имя животного,
задуманного играющим.

62.

ВИРУСЫ
Ошибка в Pervading Animal заключалась в том, что при
добавлении новых вопросов модифицированная игра
записывалась поверх старой версии плюс копировалась
в другие директории. Следовательно через некоторое
время диск становился переполненным.
Pervading Animal не был настоящим вирусом, он не
содержал процедуры самораспространения и
передавался исключительно через пользователей

63.

ВИРУСЫ
В 1981 году были зафиксированы случаи заражения Elk
Cloner, который распространялся через пиратские копии
компьютерных игр. Поскольку жестких дисков тогда еще
не было, он записывался в загрузочные сектора дискет
и проявлял себя переворачиванием изображения на
экране и выводом текста:

64.

ВИРУСЫ
При заражении Elk Cloner выводится текст:
ELK CLONER:
THE PROGRAM WITH A PERSONALITY
IT WILL GET ON ALL YOUR DISKS
IT WILL INFILTRATE YOUR CHIPS
YES, IT'S CLONER
IT WILL STICK TO YOU LIKE GLUE
IT WILL MODIFY RAM, TOO
SEND IN THE CLONER!

65.

В 1984 году вышли в свет первые
антивирусные программы - CHK4BOMB и
BOMBSQAD. Их автором был Энди Хопкинс
(Andy Hopkins).

66.

Первую настоящую глобальную эпидемию вызвал в 1986
году вирус Brain. Он был написан двумя братьямипрограммистами Баситом Фарук и Амжадом Алви (Basit
Farooq Alvi и Amjad Alvi) из Пакистана с целью
определения уровня компьютерного пиратства у себя в
стране: вирус заражал загрузочные сектора, менял метку
диска и оставлял сообщение с именами, адресом и
телефоном авторов.

67.

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

68.

В ноябре 1988 года случилась глобальная
эпидемия червя Морриса. Небольшая программа,
написанная 23-летним студентом Корнельского
университета (США) Робертом Моррисом,
использовала ошибки в системе безопасности
операционной системы Unix для платформ VAX и
Sun Microsystems.

69.

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

70.

Общие убытки были оценены в минимум 8 миллионов часов потери доступа и
свыше миллиона часов прямых потерь на восстановление работоспособности
систем. Общая стоимость этих затрат оценивается в 96 миллионов долларов.
Ущерб был бы гораздо больше, если бы червь изначально создавался с
разрушительными целями. Роберт Моррис также стал первым человеком,
осужденным за написание и распространение компьютерных вирусов - 4 мая
1990 года состоялся суд, который приговорил его к 3 годам условно, 400 часам
общественных работ и штрафу в 10 тысяч долларов США.

71.

В 1988, вышла первая широко известная антивирусная программа,
написанная английским программистом Аланом Соломоном (Alan
Solomon) и называлась Dr. Solomon's Anti-Virus Toolkit. Она завоевала
огромную популярность и просуществовала вплоть до 1998 года, когда
компания Dr. Solomon была поглощена другим производителем
антивирусов - американской Network Associates (NAI).

72.

В августе 1995 появился Concept - первый вирус, поражавший
документы Microsoft Word.
Первая утилита удаленного администрирования - BackOrifice,
Backdoor.BO - была обнаружена в августе 1998 года. Единственное ее
отличие от обычных программ для удаленного управления - это
несанкционированная установка и запуск. Действие утилиты сводилось к
скрытому слежению за системой: ссылка на BackOrifice отсутствовала в
списке активных приложений, но при этом зараженный компьютер был
открыт для удаленного доступа. Фактически, на зараженные компьютеры
предоставлялся свободный вход для других вредоносных программ.
Впоследствии возник целый класс вирусов - червей, размножение
которых базировалось на оставленных BackOrifice дырах.

73.

Вредоносные программы - это не только вирусы, черви и трояны. К
этому классу в полной мере можно отнести и adware - программы,
которые отображают на экране рекламу без ведома и согласия
пользователя, и pornware - программы, самостоятельно инициирующие
соединения с платными порнографическими сайтами. Начиная с 2004
отмечается широкое распространение использования вирусных
технологий для установки adware/pornware на целевые компьютеры.
Этот год также запомнился масштабными арестами вирусописателей было осуждено около 100 хакеров, причем трое из них находились в
двадцатке самых разыскиваемых ФБР преступников.

74.

ОПРЕДЕЛЕНИЕ ВИРУСОВ
Определение в ГОСТ
ОБЯЗАТЕЛЬНЫМ (НЕОБХОДИМЫМ) СВОЙСТВОМ КОМПЬЮТЕРНОГО ВИРУСА является
возможность создавать свои дубликаты (не обязательно совпадающие с оригиналом) и внедрять
их в вычислительные сети и/или файлы, системные области компьютера и прочие выполняемые
объекты. При этом дубликаты сохраняют способность к дальнейшему распространению.
Определение по ГОСТ Р 51188-98:
Определение Касперского
Определение: Вирус — программа, способная создавать свои копии (необязательно
совпадающие с оригиналом) и внедрять их в файлы, системные области компьютера,
компьютерных сетей, а также осуществлять иные деструктивные действия. При этом копии
сохраняют способность дальнейшего распространения. Компьютерный вирус относится к
вредоносным программам.
Легко заметить, что определение в ГОСТ практически полностью повторяет определение Е.
Касперского

75.

ЗАГРУЗОЧНЫЕ ВИРУСЫ
Загрузочные вирусы - вирусы, заражающие загрузочные сектора
постоянных и сменных носителей.
Примеры. Вредоносная программа Virus.Boot.Snow.a записывает свой
код в MBR жесткого диска
После получения управления вирус остается в памяти
компьютера (резидентность) и перехватывает прерывания
INT 10h, 1Ch и 13h. Иногда вирус проявляет себя визуальным
эффектом - на экране компьютера начинает падать снег.

76.

ФАЙЛОВЫЕ ВИРУСЫ
Файловые вирусы - вирусы, заражающие файлы. Эта группа дополнительно
делится на три, в зависимости от среды в которой выполняется код:
1. Собственно файловые вирусы - те, которые непосредственно работают с
ресурсами операционной системы.
Примеры. Самый известный файловый вирус всех времен и народов —
Virus.Win9x.CIH, известный также как "Чернобыль". Имея небольшой размер около 1 кб - вирус заражает PE-файлы (Portable Executable) на компьютерах под
управлением операционных систем таким образом, что размер зараженных
файлов не меняется. Для достижения этого эффекта вирус ищет в файлах
"пустые" участки, возникающие из-за выравнивания начала каждой секции
файла под кратные значения байт.

77.

ФАЙЛОВЫЕ ВИРУСЫ
2. Макровирусы - вирусы, написанные на языке макрокоманд и исполняемые в
среде какого-либо приложения. В подавляющем большинстве случаев речь идет
о макросах в документах Microsoft Office.
Примеры. Одними из наиболее разрушительных макровирусов являются
представители семейства Macro.Word97.Thus. Эти вирусы содержат три
процедуры Document_Open, Document_Close и Document_New, которыми
подменяет стандартные макросы, выполняющиеся при открытии, закрытии и
создании документа, тем самым обеспечивая заражение других документов.

78.

ФАЙЛОВЫЕ ВИРУСЫ
3. Скрипт-вирусы - вирусы, исполняемые в среде определенной командной
оболочки: раньше - bat-файлы в командной оболочке DOS, сейчас чаще VBS
и JS - скрипты в командной оболочке Windows Scripting Host (WSH).
Примеры. Virus.VBS.Sling написан на языке VBScript (Visual Basic Script). При
запуске он ищет файлы с расширениями .VBS или .VBE и заражает их. При
наступлении 16-го июня или июля вирус при запуске удаляет все файлы с
расширениями .VBS и .VBE, включая самого себя

79.

СИГНАТУРА ВИРУСА
Сигнатура вируса — в широком смысле, информация,
позволяющая однозначно определить наличие данного вируса в
файле или ином коде. Примерами сигнатур являются: уникальная
последовательность байт, присут-ствующая в данном вирусе и не
встречающаяся в других программах; контрольная сумма такой
последовательности.

80.

МАСКИРОВКА ВИРУСОВ
При создании копий для маскировки могут применяться следующие
технологии:
Шифрование — вирус состоит из двух функциональных кусков:
собственно вирус и шифратор. Каждая копия вируса состоит из
шифратора, случайного ключа и собственно вируса, зашифрованного
этим ключом.
Метаморфизм — создание различных копий вируса путем
замены блоков команд на эквивалентные, перестановки местами кусков
кода, вставки между значащими кусками кода "мусорных" команд,
которые практически ничего не делают.

81.

ОТДЕЛЬНЫЕ ТИПЫ ВИРУСОВ
Шифрованный вирус — вирус, использующий простое шифрование со
случайным ключом и неизменный шифратор. Такие вирусы легко
обнаруживаются по сигнатуре шифратора.
Метаморфный вирус — вирус, применяющий метаморфизм ко всему
своему телу для создания новых копий.
Полиморфный вирус — вирус, использующий метаморфный шифратор
для шифрования основного тела вируса со случайным ключом. При этом часть
информации, используемой для получения новых копий шифратора также
может быть зашифрована. Например, вирус может реализовывать несколько
алгоритмов шифрования и при создании новой копии менять не только
команды шифратора, но и сам алгоритм.

82.

ВНЕДРЕНИЕ ВИРУСОВ
Внедрение вирусных копий может осуществляться двумя принципиально
разными методами:
Внедрение вирусного кода непосредственно в заражаемый объект
Замена объекта на вирусную копию. Замещаемый объект, как
правило, переименовывается
Для вирусов характерным является преимущественно первый метод.
Второй метод намного чаще используется червями и троянами, а
точнее троянскими компонентами червей, поскольку трояны сами по
себе не распространяются.

83.

Компьютерный вирус и компьютерный червь — это
вредоносные программы, которые способны
воспроизводить себя на компьютерах или через
компьютерные сети.
Вредоносное программное обеспечение из подкласса
вирусов и червей включает:
Email-Worm
IM-Worm
IRC-Worm
Net-Worm
P2P-Worm
Virus

84.

Компьютерные черви
Большинство известных компьютерных червей
распространяется следующими способами:
в виде файла, отправленного во вложении в
электронном письме;
в виде ссылки на интернет - или FTP-ресурс
в виде ссылки, переданной через сообщение ICQ или
IR
через пиринговые сети обмена данными P2P (peer-topeer)

85.

КАНАЛЫ РАСПРОСТРАНЕНИЯ ЧЕРВЕЙ
На этапе проникновения в систему черви делятся преимущественно по типам
используемых протоколов:
Сетевые черви — черви, использующие для распространения протоколы
Интернет и локальных сетей. Обычно этот тип червей распространяется с
использованием неправильной обработки некоторыми приложениями базовых
пакетов стека протоколов tcp/ip
Почтовые черви — черви, распространяющиеся в формате сообщений
электронной почты
IRC-черви — черви, распространяющиеся по каналам IRC (Internet Relay
Chat)
P2P-черви — черви, распространяющиеся при помощи пиринговых (peerto-peer) файлообменных сетей
IM-черви — черви, использующие для распространения системы
мгновенного обмена сообщениями (IM, Instant Messenger - ICQ, MSN Messenger,
AIM и др.)

86.

Макровирусы
Файловые вирусы
Вирусные скрипты
Вирусы загрузочного сектора
Троянские программы — это вредоносные программы, выполняющие
несанкционированные пользователем действия. Такие действия могут включать:
удаление данных;
блокирование данных;
изменение данных;
копирование данных;
замедление работы компьютеров и компьютерных сетей.
В отличие от компьютерных вирусов и червей троянские программы
неспособны к самовоспроизведению

87.

СПОСОБЫ ПРОНИКНОВЕНИЯ ТРОЯНОВ
Маскировка — троян выдает себя за полезное приложение, которое
пользователь самостоятельно загружает из Интернет и запускает. Иногда
пользователь исключается из этого процесса за счет размещения на Webстранице специального скрипта, который используя дыры в браузере
автоматически инициирует загрузку и запуск трояна.
Кооперация с вирусами и червями — троян путешествует вместе с чер-вями
или, реже, с вирусами. В принципе, такие пары червь-троян можно
рассматривать целиком как составного червя, но в сложившейся практике
принято троянскую составляющую червей, если она реализована отдельным
файлом, считать независимым трояном с собственным именем. Кроме того,
троянская составляющая может попадать на компьютер позже, чем файл
червя.

88.

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

89.

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

90.

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

91.

DDoS-троянцы
Эти программы предназначены для проведения атак
типа «отказ в обслуживании» (Denial of Service, DoS) по
целевым веб-адресам. При такой атаке с зараженных
компьютеров системе с определенным адресом
отправляется большое количество запросов, что может
вызвать ее перегрузку и привести к отказу в
обслуживании.

92.

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

93.

Trojan-Dropper
Эти программы используются хакерами, чтобы
установить троянские программы и/или вирусы
или предотвратить обнаружение вредоносных
программ. Не каждая антивирусная программа
способна выявить все компоненты троянских
программ этого типа.

94.

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

95.

IM-троянцы
Программы Trojan-IM крадут логины и пароли к
программам мгновенного обмена сообщениями,
таких как ICQ, MSN Messenger, AOL Instant
Messenger, Yahoo Pager, Skype и многие другие.

96.

УЯЗВИМОСТИ В OPENSSL
OpenSSL. – это продукт информационных технологий,
который свободно распространяется и имеет
открытый программный код и применяется для
кодирования информации, а также имеет известную
уязвимость Heartbleed Bug (OpenSSL vulnerability CVE2014-0160), которая приводит, в том числе к
компрометации закодированной информации, а
также и самих ключей кодирования.

97.

УЯЗВИМОСТИ В OPENSSL
• На данный момент времени эта уязвимость устранена в OpenSSL.
Heartbleed Bug является серьезной уязвимостью, выявленной в
популярной библиотеке OpenSSL криптографического
программного обеспечения. Эта уязвимость позволяет красть
информацию, защищаемую при кодировании по протоколам
взаимодействия SSL / TLS, используемых для защиты
информации в Интернете. Протоколы SSL/TLS предназначены
для обезпечения безопасности связи и конфиденциальности в
Интернете для таких приложений, как электронная почта, обмен
мгновенными сообщениями (IM) и виртуальные частные сети
(VPN).

98.

УЯЗВИМОСТИ
Многие подобные уязвимости выявлены специалистами, и информация
о них собирается в специальных базах данных. Например, для этих
целей служит известная в Интернете база данных уязвимостей – CVE.
Также известной является база данных уязвимостей, находящаяся на
сайте ФСТЭК России, расположенная по адресу http://bdu.fstec.ru/

99.

УЯЗВИМОСТИ В ПРОГРАММНОМ КОДЕ
При поиске экспертом избыточности функциональности в программном
коде сертифицируемого продукта также может быть найдена
уязвимость, например, в виде закладки.

100.

ЗАКЛАДКИ В ПРОГРАММНОМ КОДЕ
Для организации закладки может быть использована кон-струкция, где
применяется обращение к другой программе, не собранной из исходных
текстов ПО, о чём свидетельствует следующий вызов:
ShellExecute(Handle, "manual", Path, NULL, NULL, SW_SHOW).
Недекларированные возможности проявляются в данном случае в том,
что с помощью такой конструкции можно вызывать из программы
любые другие программы (как некие закладки). В виде закладки тут
можно использовать любую программу с любыми действиями с именем
«manual»

101.

ЗАКЛАДКИ В ПРОГРАММНОМ КОДЕ
Можно привести другие примеры уязвимостей, в том числе некоторых
закладок. Например, рассмотрим следующую программную
конструкцию, написанную на языке программирования C++

102.

ЗАКЛАДКИ В ПРОГРАММНОМ КОДЕ
• void _enforce()
•{
• FILE *f;
• f = _of(_FILE);
• if (f)
• {
_wf(f);
_cf(f);
• }
•}

103.

ЗАКЛАДКИ В ПРОГРАММНОМ КОДЕ
С помощью такой конструкции можно, например, обнулить
привилегированные права (root) при использовании файла. С помощью
функции _of(_FILE) можно задать возможность изменения прав файла по
доступу к нему из операционной системы, а затем с помощью функций
_wf(f) и _cf(f) можно снять привелегированные права и установить
другие права

104.

Рассмотрим другой пример (этот пример может быть вполне связан с ошибкой
программиста, но в отдельных случаях такая ошибка может приследовать
злонамеренные цели):
un = umask(077);
(void) sprintf(Filename, “/tmp/crontab.XXXXXXXXXX”);
if ((t = mkstemp(Filename)) == -1) {
warn(“%s”, Filename);
(void) umask(um);
goto fatal;
}

105.

Основная ошибка (или преднамеренная ошибка) заложена в команде
sprintf(Filename, “/tmp/crontab.XXXXXXXXXX”), где создан шаблон названия
временного файла. Окончание наименования такого файла должно
содержать семь знаков “X”, а созданном названии их десять. В таком
случае создание временного файла с помощью функции
mkstemp(Filename) завершится ошибкой, т.е эта функция выдаст на выходе
значение -1. Это значит, что функция if ((t = mkstemp(Filename)) == -1)
будет всегда выполняться, и программа будет выходить на ошибочное
фатальное завершение (goto fatal;).

106.

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

107.

sub fdopen {
@_ == 3 or croak ‘usage: $io -> fdopen(FD,
MODE)’;
my ($io, $fd, $mode) = @_;
local(*GLOB);
.
.
.
{

108.

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

109.

Можно привести пример более простой уязвимости, например, следующий
код заставляет работать программу в бесконечном цикле:
while (1) fork(); break;.
В данном случае представлена так называемая fork-бомба — вредоносная
или ошибочно написанная программа, бесконечно создающая свои копии
(системным вызовом fork()), которые обычно также начинают создавать свои
копии и т. д.
Выполнение такой программы может вызывать большую нагрузку
вычислительной системы или даже отказ в обслуживании вследствие
нехватки системных ресурсов (дескрипторов процессов, памяти,
процессорного времени), что и является целью.

110.

Программа классической fork-бомбы (написанная на языке Си)
выглядит так:
#include <unistd.h>
int main()
{
while(1)
fork();
}

111.

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

112.

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

113.

Далее приведены примеры fork-бомб на разных языках программирования.
Bash:
:(){ :|:& };:
Perl:
fork while fork
Python:
import os
while True:
os.fork()
Ruby:
fork while fork

114.

Второй вариант:
loop { fork }
PHP:
<?php
while(true) {
pcntl_fork();
}
Пакетный файл Microsoft Windows:
:s
start %0
goto :s

115.

Третий вариант:
start %0 %0
Вариант на VB.NET:
Do
System.Diagnostics.Process.Start(System.Reflection.Assembly.GetExecutingAssembly()
.Location) Loop While True

116.

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

117.

Однако, на практике некоторые fork-бомбы не требуют та-ких радикальных мер и могут быть
уничтожены без необходимости перезагрузки. Рассмотрим, например, случай бомбы из примера выше:
:(){ :|:& };:
Особенность этого кода в том, что он не зацикливается по-сле неуспешного порождения своих копий, а
завершает работу. В результате список процессов постоянно находится на грани заполнения: одна из
копий fork-бомбы завершается, и освобождающееся место тут же занимается новосозданным процессом
из другой копии fork-бомбы. Становится возможным конкурировать с fork-бомбой за захват места в
списке процессов. Тогда возможно рано или поздно запустить команду для одновременного
уничтожения всех копий-fork бомбы или запустить безопасную программу, которая будет постепенно
«отвоёвывать» место в списке процессов до завершения работы последнего процесса fork-бомбы.
Пример такой безопасной программы на zsh:
while (sleep 100 &!) do; done

118.

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

119.

Другое решение проблемы — интеллектуальное распознавание fork-бомбы
средствами самой операционной системы, но это решение не нашло
широкого применения.
Существует и такая трудность, что если fork-бомба занимает всё доступное
процессорное время, то результаты её работы могут быть катастрофическими
не только на однопроцессорной, но и на многопроцессорной системе, даже
при ограничении числа процессов. Например, если число процессоров 16, а
максимум количества запущенных процессов 100, то на каждый процессор
будет приходиться в среднем 6-7 работающих экземпляров fork-бомбы,
пожирающих процессорное время. Для решения этой проблемы применяется
ограничение по привязке к процессорам

120.

Также приведём пример переполнения буфера памяти в программе:
char buff[100];
if(argc < 2)
{
printf(“Syntax: %s <input string>\n”, argv[0]);
exit (0);
}
strcpy (buff, argv[1]);

121.

Уязвимость в системе может проявиться при условии, если длина аргумента
программы argv[1] превысит значение 100. В этом случае при выполнении
команды strcpy (buff, argv[1]) будет превышена длина переменной buff,
которая была объявлена в программе как char buff[100], что может привести к
аварийному окончанию программы и/или к проявлению некоторого
злонамеренного действия.

122.

Для реализации уязвимостей, связанных с неправильным поиском
информации в файлах может использоваться, например, следующая
конструкция:
if (file && GetFilesize(file) > 10*1000000)
{
char pch[200000]
fseek(file, -sizeof(pch), SEEK_END);
.
.
.
}

123.

В представленнов выше программном коде неправильно заданы
условия - if (file && GetFilesize(file) > 10*1000000). Далее в команде
fseek(file, -sizeof(pch), SEEK_END) производится поиск конца файла, но
данная команда будет выдавать ошибку определения конца файла
(конец файла не найден), поскольку для поиска выбираются только те
файлы, которые имеют длину больщую значения 10*1000000, а конец
файла командой fseek определяется только для значений длины файла
не большей, чем 200000 символов.

124.

Следующий пример предлагается с целью полного разбора читателю, но стоит отметить, что
представленная конструкция исходного текста программы может использоваться для применения
ложного пароля. В данном тексте значению адреса, по которому находится хеш-дайджест пароля,
присваивается некая произвольная константа, что приведёт к тому, что вход по паролю в программу
будет не-возможен:
grub_uint16_t hash = 75439;
char *input = entered;
while (*input++) hash += *input;
if (grub_cripto_memcmp (entered, password,
GRUB_AUTH_MAX_PASSLEN) != 0 && hash)
return GRUB_ACCESS_DENIED;

125.

В данном тексте применяется конструкция, где значению адреса, по
которому находится хеш-дайджест пароля пользователя, присваивается
произвольная константа 75439 - это приводит к отказу пользователю в
доступе

126.

СПАСИБО ЗА ВНИМАНИЕ, ВОПРОСЫ
English     Русский Правила