Файл: Классификация угроз и атак на операционную систему (Краткое описание основных атак).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 04.04.2023

Просмотров: 579

Скачиваний: 5

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Представлены способы защиты от данной атаки:

    1. Передавать адрес электронной почты необходимо только проверенным источникам.
    2. В качестве преграды для mailbombing-а может быть и Web-сайт провайдера, зачастую настраиваемый таким образом, чтобы он автоматически проверял на почтовые атаки. В большинстве случаев они определяются сервером посредством сравнения исходных IP-адресов входящих сообщений. При большом количестве сообщений от одного адреса превышает какие то разумные пределы, после этого они автоматически поступают в Recycle Bin на сервере[7].

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

Реализации атаки требует решения двух подзадач:

    1. Подготовка кода, который будет выполняться в контексте привилегированной программы.
    2. Изменение последовательности выполнения программы с передачей управления подготовленному коду.

Классификация атак по переполнению буфера представлена в таблице.

Таблица 1 Классификация атак по переполнению буфера

Исходя из подзадач, реализацию которых необходимо атаке, выделяют некоторые способы борьбы с атаками такого типа:

    1. Корректировка исходных кодов программы для устранения уязвимостей. Переполнение буфера возможно, из-за неправильного алгоритма работы программы, когда ею не предусматривает проверок по переполнению границы буферов. Возможно установка специальных утилит автоматического поиска уязвимостей в исходном коде программы. Эти методы и средства обеспечивают более защищенные программы, но не решают проблему, а лишь делают минимальным число уязвимостей по переполнению буфера. Такой подход направлен непосредственно на разработчиков программного обеспечения и не может быть инструментом конечного пользователя или системного администратора.
    2. Применение неисполнимых буферов. Заключается в запрете исполнения кода в сегментах данных и стека, т.е. параметры сегментов данных и стека содержат только атрибуты записи и чтения, но не исполнения. Но ограничение на исполнение данных приводит к проблеме несовместимости. Выполняемый стек нужен для работы многим программам, так как на его основе генерируется код компиляторами, реализуются системные функции ОС, реализуется автоматическая генерация кода. Защита с использованием неисполнимых буферов исключит только атаки с внедрением кода, но не решит проблему с другими видами атак.
    3. Применение проверок выхода за границы. Данного метод основывается на выполнение проверок выхода за границы переменной при каждом обращении к ней. Это предотвращает возможные атаки по переполнению буфера и полностью исключает само переполнение. Но у этого метода существует недостаток - большое (до 30 раз) снижение производительности программы.
    4. Применение проверок целостности. Это решение получено благодаря проекту Synthetix. Цель Synthetix - специализация кода для увеличения производительности ОС. Но необходимо ввести понятие так называемого квази-постоянства (Quasi-invariant), т.е. состояния среды, которое неизменно в определенных рамках. Такое квази-постоянство может устранить ряд избыточного кода проверки реализации различных условий. В этом проекте реализован некий набор утилит, который обеспечивает контроль и защиту квази-постоянных состояний среды. К ним относятся StackGuard и PointGuard.

Использование специализированных программ. Персональные компьютеры конечных пользователей уязвимы для вирусов и троянских коней. Вирусами называются программы, имеющие вредоносный характер, внедряющиеся в другие программы для реализации определенной нежелательной функции. Примером является вирус, который прописывается в файле command.com (главном интерпретаторе систем Windows) и уничтожает другие файлы, аналогично заражает все найденные им версии command.com[7].

"Троянский конь" - это не программная вставка, а реальная программа, выглядящая как полезное приложение, но при запуске несет вредоносную роль. Обычно "троянский конь" является программа, имеющая вид простой игры для рабочей станции пользователя. Пока пользователь играет в игру, программа направляет свою копию по электронной почте каждому контакту, занесенному в адресную книгу. Абоненты, получившие по почте игру, вызывают ее дальнейшее распространение[2].

Сниффер пакетов представляет собой прикладную программу, которая использует сетевую карту, работающую в режиме promiscuous mode (в этом режиме все пакеты, полученные по физическим каналам, сетевой адаптер отправляет приложению для обработки). При этом сниффер перехватывает все сетевые пакеты, передающиеся через определенный домен. Сейчас снифферы работают в сетях на вполне законном основании. Их задача диагностика неисправностей и анализа трафика. Но некоторые сетевые приложения передают данные в текстовом формате (telnet, FTP, SMTP, POP3 и т.д.), с помощью сниффера можно изъять полезную, а иногда и конфиденциальную информацию (имена пользователей и пароли).

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

Rootkit - программа или набор программ для скрытия следов присутствия хакера или вредоносной программы в системе. В большинстве случаев из реализаций современных rootkit прячутся от пользователя файлы, папки и ключи реестра, скрывать запущенные программы, системные службы, драйверы и сетевые соединения. Хакеру доступно создавать файлы и ключи реестра, запускать программы, работать с сетью обнаружения этой активности администратором. Так же, rootkits могут скрывать сетевую активность с помощью модификации стека протоколов TCP/IP.


Способы борьбы с такими видами атак:

  1. Антивирусных средств и регулярное обновление их сигнатур. Решает проблему с троянскими программами, вирусами, почтовыми червями, но не поможет от снифферов и rootkit-ов.
  2. Шифрование передаваемых данных. Не решает полностью проблему снифферов, но противник перехватывает данные, закрытые для свободного чтения.
  3. Использование утилит антиснифферов (Например, AntiSniff или PromiScan).
  4. Использование межсетевых экранов.
  5. Использование антируткитов.

Сетевая разведка. Сетевой разведкой является сбор информации о сети при помощи общедоступных данных и приложений. При реализации атаки сети хакером, пытается получить все возможную информации о ней. Сетевая разведка реализуется в форме запросов DNS, эхо-тестирования (ping sweep) и сканирования портов. Запросы DNS помогают понять, кто владеет тем или иным доменом и какие адреса этому домену присвоены. Эхо-тестирование (ping sweep) адресов, раскрытых с помощью DNS, позволяет увидеть, какие хосты реально работают в данной среде. Получив список хостов, хакер использует средства сканирования портов, для составления полного списка услуг, поддерживаемых этими хостами. Так же, хакер анализирует характеристики приложений, работающих на хостах. В результате добывается информация, которую можно использовать для взлома[4].

Способы борьбы с данной атакой:

  1. Отключение эхо ICMP и эхо-ответ на периферийных маршрутизаторах. Но при этом будет потеря данных требуемых для диагностики сетевых сбоев.
  2. Реализация систем обнаружения вторжений (IDS).

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

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

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


Угрозу спуфинга не возможно полностью устранить, но возможно усложнить процесс с помощью следующих мер:

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

2. Фильтрация RFC 2827. Можете пресечь успешные попытки спуфинга сторонних сетей пользователями вашей сети (и стать добропорядочным "сетевым гражданином"). Необходимо отбраковывать все возможный исходящий трафик, исходный адрес не является одним из IP-адресов вашей организации. Данный принцип фильтрации, известный под именем "RFC 2827", может делать и провайдер. Конечный итог отбраковывается весь трафик, не имеющий исходного адреса.

  1. Криптографическая аутентификация.

Атака принципа man-in-the-middle. Такая атака типа Man-in-the-Middle хакеру необходим доступ к пакетам, передаваемым по сети. Необходимый доступ к всевозможным пакетам, передаваемым от провайдера в абсолютно любую другую сеть, может получить нужный сотрудник этого провайдера. Для атак такого типа зачастую используются снифферы пакетов, транспортные протоколы и необходимые протоколы маршрутизации. Атаки делаются с целью кражи необходимой информации, перехвата текущей сессии для получения необходимого доступа к частным сетевым ресурсам, так же анализа трафика и получения информации о сети и всех ее пользователях, так же проведения атак типа DoS, изменения передаваемых данных и нужного ввода несанкционированной информации в сетевые сессии.

Принципы борьбы с данной атакой:

  1. Использование шифрования данных

SQL-инъекция. SQL-инъекция – это атака, при которой изменяются некоторые параметры SQL-запросов к базе данных. На выходе запрос приобретает непосредственно иной смысл, и при недостаточной фильтрации всех входных данных будет способен не только сделать нужный вывод конфиденциальной информации, но и изменить/удалить необходимые данные[4].

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

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

$id=(int)$id; $total=(float)$total;

Взамен этого можно вставить систему слежения за этим тестированием на SQL инъекцию.


if((string)$id<>(string)(int)$id) {

die('ops');

}

  1. Для строковых параметров, которые не используются в like, regexp и другие, экранируем кавычки.

$str=addslashes($str);

или, лучше,

mysql_escape_string($str)

  1. В строках, которые будут использоваться внутри like, regexp и тд, нужно так же заэкранировать все специальные символы, использующихся в этих операторах, при необходимости.

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

Примеры борьбы с данной атакой (используются исключительно администраторами ресурсов):

  1. Обязательно проверять, не содержит ли переменная $name не нужные посторонние символы:

Рисунок 1

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

Рисунок 2

Межсайтовый скриптинг или XSS-атака. XSS атака - называется атака на уязвимость, находящаяся на сервере. Позволяет внедрить в генерируемую сервером HTML-страницу необходимый произвольный код. В нем может быть вообще все что возможно и передавать тот самый код в качестве значения переменной. Фильтрация по ней не работает, то есть сервер вообще не проверяет данную переменную на наличие в ней допустимых запрещенных знаков –, <, >, ’, ”. Необходимое значение данной переменной всегда передается от генерируемой HTML-страницы на сервер в скрипт, так же ее вызвавший путем отправки запроса.

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

Простым языком, XSS атака – это атака при помощи уязвимостей на сервере на персональные компьютеры клиентов.

XSS атака зачастую используется для кражи. В них находится информация о сессии посещения пользователем сайтов, что и бывает необходимым хакерам для перехвата управления персональными данными пользователя на сайте в пределах, пока сессия не будет закрыта сервером, на котором непосредственно размещен сайт. Так же в Cookies хранится зашифрованный личный пароль, под которым данный пользователь входит на сайт, и при наличии нужных утилит и желания хакерам не доставляет труда расшифровать этот пароль[2].