Ошибка: Failed to parse the Currency Converter XML document.
$31 196.44
|
Ошибка: Failed to parse the Currency Converter XML document.
$37 588.28
|
Ошибка: Failed to parse the Currency Converter XML document.
$20 041.45
|
Хакеры: Приёмы взлома.
Согласно недавнему опросу, проведённому в США, обычные граждане боятся хакеров больше, чем обычных преступников. Интересно, что высокие технологии входят в нашу жизнь очень быстро и становятся её неотъемлемой частью. Каждый день наполнен множеством взломов, которые, как правило, не бывают зарегистрированы. Атакуют всех от обычных пользователей до крупных правительственных организаций. Цели бывают разные, машины обычных пользователей, как правило, становятся «зомби», с которых проводятся атаки или рассылается спам, а у организаций похищается информация.
Согласно недавнему опросу, проведённому в США, обычные граждане боятся хакеров больше, чем обычных преступников. Интересно, что высокие технологии входят в нашу жизнь очень быстро и становятся её неотъемлемой частью. Каждый день наполнен множеством взломов, которые, как правило, не бывают зарегистрированы. Атакуют всех от обычных пользователей до крупных правительственных организаций. Цели бывают разные, машины обычных пользователей, как правило, становятся «зомби», с которых проводятся атаки или рассылается спам, а у организаций похищается информация.
Приёмов взлома было придумано достаточно много, и в этой статье мы их опишем, приведём краткую техническую справку и по возможности дадим рекомендации по минимизации угрозы. Хотелось бы напомнить, что далеко не всегда можно привести общие рекомендации по защите. В этой статье мы приведём как самостоятельные, так и вспомогательные приёмы взлома. Мы не будем описывать методы взлома, которые актуальны для «редких» случаев. Например, основанные на ошибках протокола NetBEUI.
Кроме этого, мы не будем описывать техники применения приёмов, а приведём только общую информацию, необходимую для понимания принципов работы. Возможно, в дальнейшем мы выпустим цикл статей, которые будут посвящены именно проведению взлома с использованием тех или иных приёмов всё будет зависеть от запросов аудитории. Но стоит учесть, что направленность нашего проекта другая, и в его рамках не подразумевается написание технических статей в помощь молодым взломщикам.
Данная же статья направлена на то, чтобы помочь понять, какие приёмы используются взломщиками для достижения своих целей, а также привести общие рекомендации по минимизации угрозы. В целом, если у администраторов возникнет желание самим проверить свою систему на защищённость, то они могут найти в Интернете подробную информацию по применению того или иного приёма. Однако, всегда стоит помнить, что не все «рецепты» могут быть применимы в каждом случае, ведь безумное применение «всех подряд» может привести к потере информации. Поэтому, если есть сомнения в своей компетенции, то сначала лучше узнать о приёме как можно больше, в частности, о последствиях применения.
Хотелось бы ещё отметить, что в России понятие системного администратора совсем иное, нежели за рубежом. У нас специалист такого рода, по мнению работодателей (в большинстве случаев) должен ремонтировать технику (причём всю), даже принтеры, писать программы, работать с сетями, иногда даже телефонными и АТС, работать дизайнером сайтов, обслуживать сервера, обеспечивать их безопасность, а ещё консультировать всех пользователей, как сохранить документ на дискету (плюс кто ещё чего придумает…).
За рубежом все эти обязанности разделены между разными специалистами, и, если обслуживанием компьютеров пользователей занимается System Administrator (Системный Администратор), то обслуживанием сети Network Administrator (Сетевой Администратор), а вопросами безопасности занимаются Application Security Architect, Application Security Engineer, Technology Risk Consultant, Security Researcher, Security Analyst, Security Engineer, Security Auditor. Надеемся, что никого не пропустили. Можете проверить сами на сайте, где располагаются вакансии для специалистов этого рода <!-- HideBegin --> <!-- CUT --> <!-- HideEBegin --> http://www.securityfocus.com/jobs/opportunities <!-- HideEnd --> <!-- CUT --> <!-- HideEEnd --> Мы полагаем, что нет смысла переводить названия на русский, потому что обычно все эти обязанности выполняются одним человеком (конечно, за исключением больших профессиональных команд), а поэтому русские эквиваленты созвучны с приведёнными названиями.
В процессе изучения данной статьи могут возникнуть сложности. Некоторые базовые понятия мы приведём в самом начале. Но всё же главная сложность – в терминологии, она общая для всех, но при этом нет строгих названий, есть наиболее часто употребляющиеся (такие мы и будем употреблять). В том случае, если есть несколько популярных названий приёма, то мы приведём их. У некоторых названий Вы можете встретить русский эквивалент, у некоторых нет. Обусловлено это тем, что очень часто названия приёмов не имеют русских аналогов и в среде компьютерного андеграунда они называются созвучными английским русскими звуками (Например: Spoofing – Спуфинг). В книгах, посвящённых этой тематике, приёмы часто называются описательными именами, и случается, что каждый автор предпочитает давать своё название. Особенно это касается длинных названий. Мы же оставим такие названия в оригинале. Что же касается статьи в целом, то мы будем называть компьютер, который подвергается (или должен быть подвержен) атаке (будь то сервер или просто клиентская машина) «атакуемый компьютер» или «жертва».
Для начала мы приведём краткую справку, которая может понадобиться для понимания данного материала людям, которые не знакомы с сетевыми технологиями. Те, кто знаком, могут пропустить эту часть, потому что всё дано только в базовых понятиях и даёт только общую картину, без технических деталей.
Виды сетевых пакетов: Вся информация в сети передаётся пакетами, т.е. «порциями». У пакета есть адрес отправителя, получателя, порт отправителя и порт получателя, а так же некоторые другие служебные данные. Пакеты могут быть фрагментированы, т.е. один пакет может быть разбит на несколько фрагментов и отправлен в таком виде. Информация о фрагментации добавляется к служебной, поэтому компьютер-получатель знает, как правильно собрать фрагменты в один пакет. Для понимания материала статьи мы скажем про три типа пакета:
TCP – самый надёжный пакет, потому что компьютер должен послать уведомление, что пакет получен, если уведомления нет, то пакет посылается повторно. Поэтому потеря информации исключена. Но есть недостаток: из-за посылки уведомления о получении каждого пакета снижается скорость.
UDP – схож с TCP, но уведомление о получении не посылается, поэтому возможна потеря информации в том случае, если пакет не достигает получателя. Но этот вид пакетов быстрее, нежели TCP.
ICMP – не используются для передачи информации. Пакеты, скорее служебного плана, например для диагностики сети или для пинга.
Связь между двумя компьютерами в модели клиент->сервер: Клиент посылает серверу на открытый порт SYN-пакет (т.е. пакет, у которого установлен флаг SYN), на что сервер отвечает SYN/ACK-пакетом (в том случае, если он готов установить соединение), после этого клиент посылает ACK-пакет, и связь считается установленной. Это элементарнейшая модель, которая может понадобиться для понятия некоторых атак, за более подробной информацией нужно обратиться к справочнику по сетевым технологиям.
IP адрес – сетевой адрес компьютера вида ХХХ.ХХХ.ХХХ.ХХХ, где ХХХ могут быть от 0 до 255.
MAC адрес – уникальный адрес, вшитый в сетевую карту. Имеет вид: ХХ:ХХ:ХХ:ХХ:ХХ:ХХ, где ХХ могут быть от 00 до ff
Примечание: адреса имеют некоторые ограничения, и некоторые не могут существовать (т.е. принадлежать компьютеру в сети), например IP адрес 0.0.0.0 или 255.255.255.255 Некоторые IP адреса не могут принадлежать машине, напрямую подключённой к Интернет, т.к. некоторые группы (т.е. диапазоны) IP адресов зарезервированы. За более подробной информацией можно обратиться к специальному справочнику.
TCP/IP протокол служит для передачи данных в Интернете и в большинстве сетей.
ARP протокол служит для сопоставления IP адресов MAC адресам.
ARP сервер – сервер, который отвечает за хранение сопоставленных записей вида IP адрес – MAC адрес.
DNS сервер – компьютер, который по DNS запросу клиента (например, Вашему запросу, когда Вы вводите адрес в строке адреса в Internet Explorer) переводит буквенные Интернет адреса (например: yandex.ru) в соответствующие им IP адреса (например: 23.145.14.155).
Коммутатор и концентратор – предназначение у этих устройств одинаково: подключить к одному каналу (например, Интернета) несколько компьютеров. Но принцип действия различается. Концентратор принимает пакет, а потом пересылает его каждому компьютеру, а дальше компьютеры проверяют, для них ли был предназначен этот пакет. Коммутатор точно знает, какой пакет какому компьютеру предназначается, и он посылает его конкретному компьютеру, а не всем сразу. Коммутаторы более дорогие устройства, но и более быстрые и безопасные.
Сегмент сети – группа компьютеров, подключённая к одному концентратору или коммутатору.
Deface/Defacement (или Дефейс) – изменение взломщиком какой-либо страницы на Веб-сервере (например, начальную) на свою (например с надписью «Взломана»).
Privileges escalation (Поднятие привилегий). Только администратор может выполнять команды, критические для работы системы, (например: команда, выключающая компьютер). И только программы, запущенные администратором, могут получить доступ к критическим данным. Поэтому, чтобы иметь полный контроль над системой, хакеру необходимы права администратора. Если хакер получил доступ к системе как обычный пользователь, то ему необходимо «поднять привилегии» для получения контроля.
Инвентаризация или Сбор информации. Необходимо для получения максимально возможного объёма информации о целевом компьютере. Методы описаны в нашей статье «Инвентаризация сети».
Хотелось бы обратить внимание, что мы не хотим повторять о том, как можно реализовать ту или иную атаку (потому что некоторые их них реализуются одним и тем же программным продуктом), но и не хотим описывать то, как реализовать некоторые из атак. При этом, мы ни в коем случае не рекламируем никаких программных продуктов, они приведены только для примера (это также не значит, что мы пользуемся именно такими), а поэтому, скажем в самом начале, что все атаки, которые основаны на подделке или генерировании особых пакетов, можно реализовать либо встроенным генератором пакетов, который входит в состав LINUX, либо таким продутом как Packet Generator. Программа Nemesis – хороший генератор пакетов, который умеет подделывать адрес отправителя. Спуфинг IP можно сделать с помощью Spoofer, но она подходит для IRC сетей; для остальных, как вспомогательное средство можно использовать Tribal Flood Network (которая служит для атак типа Flood, конечно эта возможность в ней не единственная) и Nemesis. Для сложных атак типа Host Spoofing (в том виде, в котором она представлена нами в этой статье) нет общедоступного инструмента, поэтому атака может быть реализована другими, неспециализированными средствами. Часто инструменты не выложены публично, но написаны и используются ограниченным кругом людей. Ещё раз мы хотим повторить, что описание выходит за рамки данной статьи. Возможно, мы напишем следующий цикл статей, посвящённый реализации, но только если получим достаточное количество просьб.
Помните, что неправильно настроенные права доступа к файлам и каталогам, а также неправильно настроенные права, под которыми запускаются те или иные сервисы, являются благоприятной почвой для взлома. Поэтому, не запускайте Веб-сервер с правами администратора, ему не нужно выполнять никаких команд или считывать данные из других каталогов, кроме своего и того, где лежат Веб-страницы. Следите за правами!
1) Fishing (или Фишинг). Очень широкое понятие. Смысл его в том, чтобы получить от пользователей информацию (пароли, номера кредитных карт и т.п.) или деньги. Этот приём направлен не на одного пользователя, а на многих. Например, письма якобы от службы технической поддержки рассылаются всем известным клиентам какого-либо банка. В письмах обычно содержится просьба выслать пароль к учётной записи, якобы из-за проведения каких-либо технических работ. Несмотря на то, что пользователей предупреждают, что никакую подобную информацию от них никто из работников не может потребовать, и эта информация не должна разглашаться, всегда находятся те, кто с удовольствием «дарит» свои номера, пароли и прочее. Подобные письма, обычно очень правдоподобно и грамотно составлены, что, возможно, подкупает доверчивых пользователей. Нужно оговориться, что приёмов для фишинга есть несколько, помимо писем. Некоторые из нижеприведённых приёмов при правильном применении подходят для фишинга (как правило, мы упоминаем об этом при описании приёма).
Рекомендации: Помните, что паранойя – лучшая защита. Не доверяйте ничему подозрительному, никому не давайте свои данные. Администраторам не нужно знать Ваш пароль, если он предназначен для доступа к их серверу. Они полностью управляют сервером и могут сами посмотреть пароль или изменить его.
2) Социальная инженерия – это не технический, а психологический приём. Пользуясь данными, полученными при инвентаризации, взломщик может позвонить какому-либо пользователю (например, корпоративной сети) от имени администратора и попытаться узнать у него, например, пароль. Это становится возможным, когда в больших сетях, пользователи не знают всех работников, и тем более не всегда могут точно узнать их по телефону. Кроме этого, используются сложные психологические приёмы, поэтому шанс на успех сильно возрастает.
Рекомендации: те же самые. Если действительно есть необходимость, то сообщите нужные данные лично. В том случае, если Вы записали пароль на бумаге, не оставляйте её где попало и по возможности уничтожайте, а не просто выбрасывайте в мусорную корзину.
3) Вирусы. Самая известная простому пользователю проблема. Суть во внедрении вредоносной программы в компьютер пользователя. Последствия могут быть различны и зависят от вида вируса, которым заражён компьютер. Но в целом от похищения информации до рассылки спама, организации DDoS атак, а так же получения полного контроля над компьютером. Помимо прикрепленного к письму файла, вирусы могут попасть в компьютер через некоторые уязвимости ОС, которые описываются в нашей статье «Рейтинг уязвимостей Windows». Вирусов существует огромное множество, но всё же возможно их классифицировать. Мы не хотим изобретать заново велосипед, поэтому можно воспользоваться информацией этой страницы <!-- HideBegin --> <!-- CUT --> <!-- HideEBegin --> http://school8.uriit.ru/people/av/class.html <!-- HideEnd --> <!-- CUT --> <!-- HideEEnd --> где приводится классификация вирусов с описанием. Чуть более подробно эта тема раскрывается здесь <!-- HideBegin --> <!-- CUT --> <!-- HideEBegin --> http://fivt.krgtu.ru/kafedri/mo/site/ANTIVIRUS/pages/02.htm <!-- HideEnd --> <!-- CUT --> <!-- HideEEnd -->
Рекомендации: Пользуйтесь антивирусным ПО. Не ограничивайтесь только DrWEB или Kaspersky Anti-Virus (потому как они не проверяют реестр), используйте специализированные антивирусы против Malware, например Ad-Aware, SpyBot, XSpy. А так же не открывайте подозрительных вложений и вообще не отрывайте программ от неизвестных отправителей. Даже если отправитель Вам знаком, всё равно сначала проверьте антивирусом. Здесь как в медицине, легче избежать, чем потом вылечить.
4) DoS (Denial of Service или Отказ от Обслуживания). Мы бы хотели сказать, что это скорее не отдельная атака, а результат атаки; используется для вывода системы или отдельных программ из строя. Для этого взломщик особым образом формирует запрос к какой-либо программе, после чего она перестаёт функционировать. Требуется перезарузка, чтобы вернуть рабочее состояние программы. Часто встречается мнение, что DoS, это то же самое, что и атака типа Flood и что вообще нужно соединить все атаки, которые приводят к отказу системы под общим названием DoS. Здесь стоит оговориться, что:
a) Общей терминологии нет, есть скорее негласные правила, по которым классифицируется атака, поэтому даже в рамках данной статьи мы приведём, в чем-то расхожую классификацию.
Как мы уже сказали, к отказу от обслуживания может привести не только Flood, но, например и Buffer Overflow.
Поэтому, DoS можно охарактеризовать как результат атаки. Например: «эффект отказа от обслуживания достигнут применением атаки типа Flood».
5) Flood (Флуд или Поток/Затопление). Этот тип достаточно спорный, отчасти его можно отнести к DoS, но мы хотели бы выделить его отдельно. С некоторого количества машин (в этом случае атака будет называться DDoS Distributed Denial of Service. Распределенная атака на отказ от обслуживания), как правило «Зомби» посылают жертве максимально возможное количество запросов (например, запросы на соединение). От этого жертва не успевает отвечать на каждый запрос, и в итоге не отвечает на пользовательские запросы, т.е. можно сказать, что перестаёт нормально функционировать. Примечание: этот тип атаки можно назвать хулиганством, когда, например, форумы заполняют большим количеством бессмысленных сообщений. Можно выделить следующие типы Flood:
a) SYN Flood – Затопление атакуемого компьютера пакетами типа SYN. Как известно, компьютер должен на такой пакет ответить пакетом типа SYN/ACK. Если пакетов SYN слишком много, то компьютер не успевает отвечать на каждый и не может принимать пакеты от других компьютеров.
ICMP Flood или Ping Flood – То же самое, только пакетами ICMP. Система должна ответить на такой пакет, тем самым создаётся большое количество пакетов, которые снижают производительность (пропускную способность) канала.
c) Identification Flood (Ident Flood). Похожа на ICMP Flood, но ответ на запрос на порт 113 типа identd занимает у системы больше времени, поэтому атака более эффективна.
d) DNS Flood – атака направлена на DNS сервера. Их наводняют DNS запросы, на которые сервер не успевает отвечать, таким образом, на Ваши запросы он так же ответить не сможет. Как следствие, Вы не сможет посещать Интернет сайты.
e) DDoS DNS – Атака достаточно новая, и мы не встречали «устоявшегося» названия. По сути, этот приём примерно то же самое, что и предыдущий, с той лишь разницей, что запросы поступают с большого количества машин (предыдущий тип этого не исключает). Адрес, по которому должен ответить DNS-сервер на эти запросы, равен адресу самого DNS сервера, т.е. его не только наводняют запросы DNS, но он же ещё и отправляет их себе же. Таким образом, приём более эффективен, чем предыдущий, но и более сложен в реализации.
f) Boink (Bonk, Teardrop) – Жертве посылается огромное количество сильно фрагментированных пакетов, но при этом фрагменты большого размера. Для каждого фрагментированного пакета выделяется специальный буфер, в который в последствии будут помещены другие фрагменты, чтобы потом сложить их воедино. Огромное количество больших фрагментов переполняют буфера и могут спровоцировать зависание или аварийную остановку.
g) Pong – то же самое, что и любой другой из вышеперечисленных видов, отличие только в том, что адрес отправителя поддельный. Это даёт взломщику некоторую анонимность.
Рекомендации: для каждой ОС или маршрутизатора свои; они, как правило, даны в технической документации. Не пренебрегайте ими, чётко ограничивайте количество допустимых пакетов. К сожалению, некоторые виды невозможно отразить ничем, кроме физического отключения. Правильно настроенные межсетевые экраны (или Брандмауэры) часто являются панацеей.
6) Smurf (атака, направленная на ошибки реализации TCP-IP протокола). Сейчас этот вид атаки считается экзотикой, однако раньше, когда TCP-IP протокол был достаточно новым, в нём содержалось некоторое количество ошибок, которые позволяли, например, подменять IP адреса. Однако, этот тип атаки применяется до сих пор. Некоторые специалисты выделяют TCP Smurf, UDP Smurf, ICMP Smurf. Конечно, такое деление основано на типе пакетов.
Рекомендации: коммутаторы CISCO предоставляют хорошую защиту, как и многие другие, а также свежее ПО и межсетевые экраны; необходимо блокировать широковещательные запросы.
7) Ping-of-Death (или Jolt, SSPing) – Атака заключается в том, что жертве посылается фрагментированный ICMP пакет, но размер фрагмента очень большой (64кБ). Старые версии ОС, например Windows 95, повисают. Эту атаку можно осуществить с помощью программы Shadow Security Scanner.
Рекомендации: легче всего обновить ОС, отказавшись от старой версии.
8) UDP Storm (UDP шторм) – используется в том случае, если на жертве открыто как минимум два UDP порта, каждый из которых отсылает отправителю какой-нибудь ответ. Например, порт 37 с сервером time на запрос отправляет текущую дату и время. Взломщик отправляет UDP пакет на один из портов жертвы, но в качестве отправителя указывает адрес жертвы и второй открытый UDP порт жертвы. Тогда порты начинают бесконечно отвечать друг другу, что снижает производительность. Шторм прекратится, как только один из пакетов пропадёт (например, из-за перегрузки ресурсов).
Рекомендации: по возможности исключить использование сервисов, которые принимают UDP пакеты, либо отрезать их от внешней сети межсетевым экраном.
9) UDP Bomb – взломщик отправляет системе UDP пакет с некорректными полями служебных данных. Данные могут быть нарушены как угодно (например, некорректная длина полей, структура). Это может привести к аварийному завершению.
Рекомендации: обновите ПО.
10) Land – жертве посылается пакет на определённый порт, но адрес отправителя устанавливается тот же самый, что и жертвы, а порт отправителя равен порту получателя. (пример: получатель: 1.1.1.1 порт 111 отправитель: 1.1.1.1 порт 111). Жертва пытается установить соединение с собой, отчего может произойти повисание системы. Подобная атака также может быть на 100% эффективна против некоторых маршрутизаторов.
11) Mail Bombing («Почтовая бомбёжка»). Если на атакуемом компьютере есть почтовый сервер, то на него посылается огромное количество почтовых сообщений с целью вывода его из строя. С одной стороны, это напоминает Flood, но с другой стороны, если сообщения содержат большие вложения, которые будут проверяться серверным антивирусом, то подобная проверка множества входящих вложений может существенно снизить производительность или свести её на нет. Кроме того, такие сообщения сохраняются на жёстком диске сервера и могут переполнить его, что может вызвать DoS. Конечно, сейчас эта атака, скорее история, но в некоторых случаях всё же может быть использована.
Рекомендации: грамотная настройка почтового сервера.
12) Sniffing (Сниффинг или прослушивание сети). В том случае, если вместо коммутаторов в сети установлены концентраторы, полученные пакеты рассылаются всем компьютерам в сети, а дальше уже компьютеры определяют для них этот пакет или нет. Если взломщик получит доступ к компьютеру, который включен в такую сеть, или получит доступ к сети непосредственно, то вся информация, передаваемая в переделах сегмента сети, включая пароли, станет доступна. Взломщик просто поставит сетевую карту в режим прослушивания и будет принимать все пакеты независимо от того, ему ли они предназначались. Можно использовать как консольные снифферы, например TcpDump (встроенный в *NIX системах), WinDump (для Windows, но не встроенный), а так же с визуализированным интерфейсом, например Iris.
Рекомендации: используйте коммутаторы вместо концентраторов, шифруйте трафик.
13) IP Hijack (IP хайджек). Если есть физический доступ к сети, то взломщик может «врезаться» в сетевой кабель и выступить в качестве посредника при передаче пакетов, тем самым он будет слушать весь трафик между двумя компьютерами. Очень неудобный способ, который часто себя не оправдывает, за исключением случаев, когда никакой другой способ не может быть реализован. Подобное включение само по себе неудобно, хотя есть устройства, которые немного упрощают эту задачу, в частности они следят за нумерацией пакетов, чтобы избежать сбоя и возможного выявления вторжения в канал. Такой способ используется для обмана банкоматов, но такой случай технически сложнее, потому что недопустим разрыв связи между банком и банкоматом, а «врезание» в канал без его разрыва – задача только для высококвалифицированного специалиста. Кроме этого, теперь банкоматы устанавливаются гораздо лучше, что исключает возможность свободного физического доступа к кабелю.
Рекомендации: следите за доступом к кабелям, например, используйте короба. Шифруйте трафик.
14) Dummy ARP (Ложный ARP). ARP сервер, маршрутизатор или коммутатор знают какие IP принадлежат MAC адресам (т.е. сетевым картам). При возможности физического доступа к сети, взломщик может подделать ARP ответ и выдать себя за другой компьютер в сети, получив его IP. Тем самым все пакеты, предназначенные тому компьютеру, будет получать он. Это возможно, если тот компьютер выключен, иначе это действие вызовет конфликт IP адресов (в одной сети не могут быть 2 компьютера с одним и тем же IP адресом).
Рекомендации: используйте ПО, которое информирует об изменении MAC адресов у IP, следите за лог-файлами ARP сервера.
15) Dummy DNS Server (ложный DNS Сервер). Если настройки сети поставлены в автоматический режим, то при включении в сеть, компьютер «спрашивает» (т.е. отправляет широковещательный пакет) кто будет его DNS сервером, к которому он в дальнейшем будет отправлять DNS запросы. При наличии физического доступа к сети, взломщик может перехватить такой широковещательный запрос и ответить, что его компьютер будет DNS сервером. После этого он сможет отправлять обманутую жертву по любому маршруту. Например, жертва хочет пройти на сайт банка и перевести деньги, взломщик может отправить её на свой компьютер, где будет сфабрикована форма ввода пароля. После этого пароль будет принадлежать взломщику. Достаточно сложный способ, потому что взломщику необходимо ответить жертве раньше, чем DNS сервер.
Рекомендации: по возможности ограничьте доступ к сети посторонних.
16) Fuzzy (Фаззи). Фильтры могут быть настроены на блокировку определённых видов пакетов, например UDP. Взломщик может сфабриковать пакет так, что фильтр не поймет, что этот пакет UDP и не отфильтрует его, и он попадёт по назначению. Таким образом, взломщик может обойти фильтры пакетов. Этот приём очень узкий и предназначен для частных случаев, точнее тех, когда связь не обязательно должна быть двусторонней. Двусторонняя связь будет невозможна в большинстве случаев, т.к. в основном, если блокируются входящие пакеты определённого типа на какой-либо порт, то блокируются и исходящие. Получается, что даже если сфабрикованный пакет пройдёт через фильтр (например на порт UDP), то сервер ответит на него пакетом того же типа, т.е. UDP, но при этом он не будет его фабриковать по примеру взломщика. Т.о. этот исходящий пакет будет отфильтрован и не попадёт к взломщику. Как бы там ни было, всё равно стоит обезопасить себя от подобного рода атак.
Рекомендации: обычно новые версии межсетевых экранов предоставляют достаточную защиту против этого приёма.
17) Puke – взломщик фабрикует ответ ICMP unreachable (ошибка удалённой системы), что спровоцирует клиента на отключение от сервера. Используется скорее как вспомогательное средство, в том случае, если какой-либо клиент должен быть отключён от сервера для проведения атаки.
18) Fake unreachable – взломщик фабрикует сообщение о том, что пакет не может быть доставлен (unreachable), тем самым заставляет сервер думать, что у клиента сбой и пакеты не доставляются по назначению. Это может спровоцировать сервер отключить клиента. Тоже вспомогательное средство, похоже на №17, только направлен не на клиента, а на сервер.
19) IP-Spoofing (Спуфинг или Подмена IP адреса). Атакующий подменяет свой реальный IP фиктивным. Это необходимо, если доступ к ресурсу имеют только определённые IP адреса. Взломщику нужно изменить свой реальный IP на «привилегированный» или «доверенный», чтобы получить доступ. Этот способ может быть использован по-другому. После того, как два компьютера установили между собой соединение, проверив пароли, взломщик может вызвать на жертве перегрузку сетевых ресурсов специально сгенерированными пакетами. Тем самым он может перенаправить трафик на себя и таким образом обойти процедуру аутентификации.
Рекомендации: их может быть много, по той причине, что приёмов достаточно много. Но стоит упомянуть, что угрозу снизит (но возможно затруднит легимитивные соединения) уменьшение времени ответного пакета с установленными флагами SYN и ACK, а также увеличить максимальное количество SYN-запросов на установление соединения в очереди (tcp_max_backlog). Так же можно использовать SYN-Cookies.
20) Host spoofing (Подмена хоста). Очень сложная техника, требующая физического доступа к сети. Каждый компьютер знает маршрутизатор, на который он отправляет все пакеты, которые потом маршрутизатором доставляются по назначению. При смене маршрутизатора каждому компьютеру высылается redirect уведомление, после чего компьютеры начинают посылать пакеты новому маршрутизатору. Взломщик может сфабриковать подобное уведомление и выдать себя за маршрутизатор, таким образом он получит контроль над трафиком в пределах сегмента сети.
Рекомендации: контроль над доступом к сети и момента смены маршрутизатора. Например, можно следить, весь ли прошлый трафик (т.е. старые соединения) «появились» на новом маршрутизаторе.
21) Подбор пароля. Используется для регистрации в системе путём подбора пароля к учётной записи. Есть два вида: подбор всех возможных комбинаций символов (BruteForce) и подбор по словарю. Первый способ более эффективен, т.к. всё равно найдётся комбинация символов, которую вы ввели с клавиатуры в качестве пароля, но этот способ крайне медленный, особенно если в расчёт принимаются знаки препинания и т.п. Второй способ быстрый, но если вы ввели слово, которого не может быть в словаре, например: «Мой-Новый-Пароль», то подобрать по словарю его будет невозможно. Программ, которые служат для подбора пароля очень много, поэтому мы не думаем, что есть смысл называть какие-либо конкретные. Как правило, программы, ОС и пр. хранят пароли в шифрованном виде, поэтому даже если взломщик получил доступ к файлу, ему придётся расшифровать пароль. Он это может делать сутками на своём домашнем компьютере.
Рекомендации: использовать сложные пароли, лучше со знаками препинания. Ограничьте количество попыток ввода пароля. Против расшифровки пароля поможет только его сложность.
22) Back Connect/Pipes/Reverse (Обратный сеанс или Реверс). Это вспомогательный приём, но сам по себе он очень интересный. Например, взломщик не хочет каждый раз выполнять много действий ради одной команды. Он может упростить задачу, используя этот приём. Суть его в том, что взломщик вынуждает атакуемый компьютер подключиться к компьютеру взломщика. Например на атакуемом компьютере можно выполнить команду telnet [ip.адрес.взломщика] [порт]. После этого взломщик, по сути дела получает командную строку (командную оболочку или Шелл/Shell) на атакуемом компьютере.
23) Software vulnerabilities (Ошибки ПО). Использование ошибок в программном обеспечении. Эффект может быть разный. От получения несущественной информации до получения полного контроля над системой. Атаки через ошибки ПО самые популярные во все времена. Старые ошибки исправляются новыми версиями, но в новых версиях появляются новые ошибки, которые опять могут быть использованы. Дальше мы опишем не виды атак, а приёмы, используемые для атаки на ошибки ПО. Рекомендации: приведём сразу для всех, потому как рекомендация общая поможет только «безопасно» написанный код программ. По этой теме можно найти большое количество материала в Интернет.
24) Buffer Overflow (Переполнение буфера). Очень опасный вид атаки, когда запрос формируется так, что он переполняет выделенные ему рамки памяти и команды «вшитые» в запрос попадают в стек, а после выполняются процессором. Это можно сделать как удалённо, так и локально, если взломщик может запустить свою программу на атакуемом компьютере. Это может быть использовано как для выполнения кода на компьютере, так и для поднятия прав. Есть несколько подвидов атак на переполнение буфера. Мы не будем описывать каждый из них, т.к. для объяснения принципа нам придётся привести примеры кода, который будет непонятен людям, незнакомым с программированием. Нижеприведённая классификация принадлежит Андрею Колищаку (andr[at]sandy.ru) и находится в его статье «Атаки на переполнение буфера». Поэтому найти их описание, примеры и рекомендации Вы можете непосредственно в этой статье. Мы же приведём их просто для ознакомления.
a) Атака “срыв стека”
Атака “срыв стека” с параметризацией
c) Атака “срыв стека” с передачей управления
d) Искажение указателей функций
e) Атака на указатели функций
f) Атака на указатели функций с параметризацией
g) Атака на указатели функций с передачей управления
h) Искажение таблиц переходов
i) Атака на таблицы переходов
j) Атака на таблицы переходов с параметризацией
k) Атака на таблицы переходов с передачей управления
l) Искажение указателей данных
m) Атака с искажением указателей данных
n) Атака с искажением указателей данных с параметризацией
o) Атака с искажением указателей данных с оригинальным кодом.
К вышеприведённой классификации мы бы хотели привести ещё один тип: Integer Overflow (Переполнение целочисленных). За более подробной информацией можно обратиться к статье «Целочисленное переполнение: Атака» и «Целочисленное переполнение: Защита» или «Basic Integer Overflows» от Blexim.
25) Shatter – Уязвимость Windows систем, которая может быть использована только локально. Очень похожа на переполнение буфера, точнее приводит к тому же самому результату: команды взломщика попадают в стек. Основана на том, что у каждого окна в Windows, у которого есть поле для ввода, есть и максимальная длина вводимого значения. Она устанавливается ещё на стадии разработки программы и для небольших полей может быть равна, например 50. С клавиатуры нельзя ввести количество символов больше 50, но работа окон Windows основана на Messages (Посланиях). Можно легко получить Header (Хидер или Заголовок(особый, предназначенный только для ОС)) поля для ввода и послать SETTEXT (установить текст) сообщение (используя этот хидер) полю для ввода. Сообщение должно сказать, что необходимо установить текст длиною больше 50, соответственно, всё, что будет после 50-го символа, попадёт в стек и будет выполнено процессором. Защиты от этого не существует. Единственная панацея – это процессоры AMD Athlon 64, у которых есть встроенная защита, и они не выполняют команды из стека.
26) Nuke (WinNuke или Нюк). Сейчас это скорее история. Windows по умолчанию использует протокол NetBIOS для совместной работы с файлами и принтерами в сети. Для этого ОС открывает три TCP порта (137, 138, 139). Реализация этого протокола на старых версиях Windows содержала уязвимость. Суть в том, что можно послать в открытый 139 порт несколько OutOfBand «сообщений» подряд. Система не могла корректно обработать подобные данные и система повисала. Программ для подобных атак было написано немало, но мы упомянем только Shadow Security Scanner, который уже был назван нами ранее, как средство для SSPing.
27) Cross User Attack (межпользовательская атака). На наш взгляд достаточно неоднозначное название, т.к. не лучшим образом отражает суть атаки, но всё же мы придержимся этого, общеизвестного названия. Squid 2.4 и ISA/2000 позволяют пользователям делить между собой TCP соединения с сервером. Можно спровоцировать с помощью HRS (описана ниже) два ответа от сервера, один из которых будет контролироваться взломщиком и фальсифицирует полученную пользователем информацию.
28) Атака на CGI. Большинство WWW (Веб) серверов используют скрипты для предоставления пользователям дополнительных услуг или предоставления дополнительных возможностей. Например, почтовые сервера, как mail.ru На многих серверах установлены «самописные» CMS (Content Management System или Системы управления содержимым (сайта)). Программисты далеко не всегда заставляют свои скрипты проверять вводимые пользователем значения, отчего появляются возможности использования таких оплошностей в различных целях. Атака на переполнение буфера также может быть проведена через ошибки CGI скриптов. Например: <!-- HideBegin --> <!-- CUT --> <!-- HideEBegin --> http://host/cgi-bin/helloworld?type=A*100 <!-- HideEnd --> <!-- CUT --> <!-- HideEEnd --> (т.е. буква A будет в количестве 100 раз). По адресу <!-- HideBegin --> <!-- CUT --> <!-- HideEBegin --> http://www.opennet.ru/base/sec/linux_sec_guide.txt.html <!-- HideEnd --> <!-- CUT --> <!-- HideEEnd --> можно найти отличную статью, во второй части которой описываются проблемы безопасности, которые обычно оставляются без внимания CGI программистами. Многие не являются приёмами взлома, а только помогают взлому, поэтому для написания хорошего кода лучше ознакомиться со статьёй. Рамки