Обман систем контроля содержимого. 10 способов обойти средства контроля содержимого
Речь пойдет о способах обхода систем контроля содержимого (content filtering system), которые получают все большее распространение в России. Я расскажу, как обманывать почтовые сервера, чтобы они пропускали нужные нам файлы :), поставим антивирусы в позу "Россия, принимающая кредиты" и поговорим о других полезных хитростях.
Любой грамотный взломщик никогда не будет ломиться "в лоб" - он попытается обойти систему защиты и зайти с черного хода. Не исключением являются и средства контроля содержимого, которые занимаются тем, что ищут в почтовом или Web-трафике непотребные слова, запрещенные вложения (avi'шники, mp3, zip и т.д.). По заявлению разработчиков эти средства могут анализировать архивы до 50 уровней вложенности, понимать различные кодировки и применять другие способы анализа над SMTP или HTTP-сообщениями. Однако, как это уже не раз бывало, умные люди находили, находят и будут находить способы обхода самых изощренных защитных механизмов.
Кстати, не стоит думать, что контроль содержимого проводится только специальными средствами, такими, как: MAILsweeper, MailMarshal или Дозор. Аналогичные подсистемы, только с меньшей функциональностью, существуют и в антивирусных продуктах, и в файрволах, и даже в обычных почтовых программах. И в этих средствах также существуют ошибки, которыми мы можем воспользоваться. Например, 19 мая была обнаружена дыра в межсетевом экране SonicWALL SOHO (SonicWALL SOHO3 Firmware version: 6.3.0.0, ROM version: 5.0.1.0), которая позволяла обойти встроенный механизм блокировки доступа к определенным Web-серверам.
Шифрование данных
Для того чтобы средства контроля содержимого могли нормально выполнять свою работу, они должны "понимать" трафик. Поэтому самый простой способ обмана - применение шифрования. Зашифрованный трафик не сможет быть проанализирован никаким, даже самым навороченным средством. Кстати, этот способ позволяет обойти не только средства анализа контента, но и антивирусные средства и системы обнаружения атак. Все, что можно сделать с зашифрованным трафиком, - это обнаружить его и отбросить (так, например, делает SECRETsweeper). Конечно, это не самый лучший способ, но лучше что-то, чем ничего.
Очень похожий способ - использование кодировок, "непонятных" для системы анализа контента. Например, тег <script>, который очень часто используется для отсеивания скриптов в Web-трафике, может быть закодирован как {'<', 0, 's', 0, 'c', 0, 'r', 0, 'i', 0, 'p', 0, 't', 0, '>', 0 в UCT-2 или <+AHM-+AGM-+AHI-+AGk-+AHA-+AHQ-> в UTF-7.
Подмена URL
Использование прокси-серверов, анонимайзеров и ремейлеров позволяет скрыть или подменить исходный адрес, что, в свою очередь, поможет обойти системы контроля содержимого, использующих в качестве критерия отсеивания именно IP-адрес или почтовый адрес.
Запутывание Web-адреса на этом не заканчивается. Все знают про символ "@", но мало кто знает, что его можно использовать при доступе к Web-серверам. "Для указания логина и пароля", - скажешь ты и будешь прав, но... Этим символом можно запутать многие средства контроля, зная, что все, что написано ДО собаки, не будет восприниматься как Web-адрес.
Обход в SMTP-трафике
Теперь более насущные проблемы для многих. Нередко в компаниях, которые ратуют за то, чтобы сотрудники на своем рабочем месте работали, а не рассылали свое резюме конкурентам, контролируют всю почтовую переписку. Конечно, это нарушает наши конституционные права, и мы можем подать на своего работодателя в суд. В случае успешного завершения дела ему грозит арест на срок от 2 до 4 месяцев, штраф от 100 до 300 МРОТ или лишение права занимать определенную должность на срок от 2 до 5 лет. Правда, мы не самоубийцы и не будем портить отношения со своим руководством. Поэтому попытаемся обойти средства контроля содержимого. Самый простой способ - шифровать всю переписку, но... Во-первых, начальник заподозрит, что ты что-то скрываешь, а во-вторых, как я уже упомянул выше, существуют средства (например, SECRETsweeper), которые позволяют блокировать передачу зашифрованной почты. Что делать? А сделать надо так, чтобы система контроля содержания смогла видеть твои сообщения, но не могла бы их понять и отследить. Один из таких способов - использование более 50 уровней вложенности архивов ;-). Однако можно пойти другим путем и воспользоваться тем, что большинство средств контроля контента "думает", что все сообщения должны соответствовать стандарту, например, MIME. Но что будет, если письмо чуть-чуть модифицировано? Все зависит от производителя, я же себе позволю привести несколько вариантов изменения стандартных атрибутов MIME.
Например, стандартное письмо с вирусом I LOVE YOU содержит следующий атрибут: filename="iloveyou.vbs" или filename="=?us-ascii?Q?iloveyou=2Evbs?=". Ты можешь поэкспериментировать следующим образом:
* filename==?us-ascii?Q?iloveyou=2Evbs?=
* filename=iloveyou. "v"b"s
* filename=iloveyou.vbs
* filename=""iloveyou.vbs
* filename=iloveyou .vbs
* filename="iloveyou.vbs
Какой-то из этих вариантов должен обязательно сработать. Ты также можешь добавить точку в конец имени файла. Например, в ZoneAlarm 3.0 это позволяло обойти подсистему MailSafe, которая используется для фильтрации и блокировки электронных сообщений. В частности ZoneAlarm может блокировать письма, содержащие вложения с некоторым расширением.
Дальше - больше. Многие системы делают вывод о типе передаваемого вложения на основании его имени или расширения. Например, документы Word идентифицируются по расширению DOC, исполняемые файлы - по расширению EXE и т.д. Изменив стандартное расширение, можно обойти защитный механизм. Аналогичным образом можно поступить и с атрибутом MIME - Content-Type. Например, вложение с атрибутом Content-Type: application/msword; name="macro.doc" будет блокировано, а с атрибутом Content-Type: text/plain; name="macro.doc" пройдет незамеченным. Кстати, этот метод позволяет обойти защиту многих провайдеров (например, narod.ru), пытающихся запретить загрузку на свои сервера файлов с расширением rar, zip и т.д.
Надуваем антивирусы
Еще одна особенность связана с использованием ASCII-символа NULL, который обычно интерпретируются как конец строки. Поэтому файл filename="file.txt\0.exe" будет считаться текстовым, а не исполняемым. Чтобы не быть голословным, приведу пример системы контроля содержимого, обладающей целым букетом описанных багов. Это всем известный Norton AntiVirus 2002. В нем имеется 4 дыры, позволяющих обойти механизм анализа контента. Во-первых, можно обойти систему защиты электронной почты в NAV 2002, вводя NULL-символ в MIME сообщение. Если NULL-символ появляется перед вирусной частью, то NAV 2002 не в состоянии обнаружить вирус.
Во-вторых, в некоторых неописанных в RFC форматах электронных сообщений NAV 2002 не способен произвести полное сканирование письма на наличие вируса или опасного кода. Кстати, аналогичная ошибка присутствует и в других защитных средствах. Например, если ты используешь старую добрую UUENCODE, до сих пор используемую в FIDO, то для многих средств контроля содержимого это является непреодолимым препятствием.
|