![]() |
|
Модераторы: Akella, bartram |
![]()
|
|
| smartov |
|
||||||||||||||||||||
![]() свой собственный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 16 Всего: 259 |
![]() Черные ходы Касперского 6/7 Перевод статьи с сайта rootkit.com Преамбула Антивирус Касперского - один из наиболее технически развитых антивирусов на сегодняшний день. Он даже может бороться с некоторыми типами руткитов, даже когда они живы и пытаются атаковать. Он имеет Модуль Проактивной Защиты (Proactive Defence), представляющий из себя частичную реализацию HIPS, способную, в теории, защитить компьютер от неизвестных угроз, анализируя поведение программ и предотвращая несанкционированные действия. Это всё теория и рекламные слоганы. В реальности же мы имеем совсем другую ситуацию. Существует много руткитов, которые вообще не обнаруживаются антивирусом, а его проактивная защита может быть подавлена таким образом, что атакующий может загрузить свой драйвер, после чего любая проактивная защита просто бесполезна. Эта статья - не просто обзор ошибок и уязвимостей - в конце каждой части мы даём рекомендации разработчикам антивируса, потому что мы видим, что они не могут разобраться с этими ошибками самостоятельно. И для приверженцев сразу оговорка: конечно, все, что написано ниже - не критические уязвимости, нет-нет =) Всего лишь несколько простых методов получить BSOD при установленном KAV/KIS даже из под гостевого аккаунта, всего лишь методы обхода KAV/KIS... и так далее, в общем не принимайте слишком близко к сердцу. Версия Касперского, про который пойдёт речь в этой статье - 7.0, последний публичный билд 125, тип продукта - Internet Security. Касперский и System Service Descriptor Table Эта часть антивируса давно известна, как самая уязвимая. Таковой она является из-за того, что содержит множество элементарных ошибок. Ошибки эти - ещё один пример плохо написанной проактивной защиты. Под Windows XP Антивирус Касперского добавляет службы в таблицу SSDT. Множество служб, которые существуют лишь под Windows 2003. Их номера - от 284 до 296. Около 13 неизвестных записей с адресами внутри klif.sys. Вот они:
Что это? Совершенно непонятно. Однако похоже, что разработчики KAV добавляют их, чтобы решить проблему с разным количеством записей в таблице SSDT под Windows XP и 2003. Почему это было сделано именно так - вопрос третий. А теперь внимание: любая из этих записей может быть взломана с последующим крахом системы в BSOD даже из под гостевой учётной записи с минимальными привилегиями. Мы написали маленькую программу. Она генерирует некорректные системные вызовы с некорректными параметрами для этих таинственных записей в SSDT. Код очень простой, но эффективный. Выполнение его на чистой Windows не приведёт ни к чем, потому что сама Windows обрабатывает такие ситуации верно.
Результат выполнения: Kaspersky Internet Security v7.0 125 build
Но и это еще не всё! Не смотря на сообщения о существующих уязвимостях в SSDT разработчики Касперского до сих пор не исправили их! Мы можем доказать это простой программой под названием NTCALL. После старта она начинает генерировать некорректные системные вызовы. NtCreateSection - вызов этой функции с неверными параметрами приведет к BSOD в klif.sys. Вот он наш BSOD:
Что тут можно сказать?... Пора прекращать извращаться с SSDT и писать нормальные обработчики для записей SSDT. Возьмите лучше и спросите Олега Зайцева, как правильно устанавливать хуки в SSDT ;) Касперский и Теневая SSDT (Shadow SSDT) Теневая SSDT - это специальная таблица в win32k.sys, которая содержит адреса системных функций, связанных с отображением пользовательского графического интерфейса (GDI). Касперский устанавливает здесь хуки на некоторые службы чтобы предотвратить работу клавиатурных шпионов и для самозащиты. И опять же хуки установлены плохо. NtUserSendInput с неверными параметрами и ... -> хаха, новый BSOD, вам это не напоминает какой-то BSOD- генератор? =)
Для этой части рекомендации просты - запустите свой драйвер под отладчиком. Следующий код
ведёт к Acces Violation и это нормально, потому что мы использовали некорректный параметр для функции, но то что НЕнормально - это где возникает Acess Violation, по адресу - 0xF80B3306. Это не шутка - 0xF80B3306. В процессах ядра! А если быть точнее - в klif.sys. Давайте посмотрим, что происходит. Мы обнаружили сильную модификацию IAT(1, 2) для каждого процесса в системе. Смотрите что происходит с explorer.exe
Странно, не так ли? Давайте отследим вызов LoadLibraryA.
Вот так выглядит LoadLibraryA внутри kernel32.dll после перенаправления IAT Антивирусом Касперского. Разве это не извращение? Если вы инсталлируете этот антивирус себе на компьютер, вы (какая ирония!) открываете его для дополнительных уязвимостей и бэкдоров, созданных благодаря Антивирусу Касперского! Смех, да и только. В этой части мы рекомендуем разработчикам Касперского убрать извращения из своего продукта. Во первых существуют лучшие и более простые способы общаться с процессами ядра, а во-вторых - это просто извращение. Антивирус Касперского и самозащита Как большинство из вас знает, Антивирус Касперского активно защищает самого себя против атак. Его процессы защищены от несанкционированного доступа и от уничтожения зловредными программами. Но вопрос: насколько хорошо они защищены? Ответ: ПЛОХО. Касперский устанавливает несколько хуков в SSDT (т.е. NtOpenProcess, NtOpenThread, NtTerminateProcess и т.д) и несколько хуков в Теневой SSDT (NtUserFindWindowEx, NtUserBuildHwndList и т.д.) чтобы дополнительно защитить себя от атак. В конце концов он устанавливает себя как службу с настройками перезапуска при возникновении ошибки. Настройки службы защищены в реестре несколькими хуками в SSDT. Так как же мы можем убить этот антивирус? И нужно ли нам его убивать? Если мы убьём визуальную часть avp.exe то она будет заново запущена службой. Если мы убьём службу - она будет запущена менеджером контроля служб (SCM). Так как же мы можем уничтожить этот антивирус (в образовательных целях, конечно)? Вопрос хороший. Ответ прост - загрузить драйвер, после этого мы будем вне зоны интересов KAV. Но сначала нам нужно его приостановить, чтобы получить такую возможность, не правда ли? Не совсем. Существует как минимум три метода, с помощью которых можно тихо загрузить драйвер без малейшей реакции со стороны Проактивной Защиты Касперского 7.0. И я уверен что существуют еще методы. В нашем случае мы просто приостановим (suspend) все потоки (threads) процессов Антивируса Касперского; просто приостановим, ничего более - этого достаточно. Мы не можем обращаться к процессам Касперского напрямую, потому что владельцем SSDT является PDM. Так что самое время использовать "любимый" бэкдор-процесс по имени csrss.exe В этом примере мы априори предполагаем что KAV приложение названо avp.exe и csrss.exe существует в одном экземпляре (LOL, да, если у вас есть вредоносные программы, работающие на ring3 и маскирующиеся как csrss.exe, то с этим кодом будут определённые проблемы).
После этого оба испольняемых модуля Касперского будут приостановлены и мы можем загрузить драйвера и сделать свою работу тихо =) Протестировано на KIS v7.0 build 125 с настройками по умолчанию. Windws XP SP2, права администратора. Мы рекомендуем ЛК пройти в HANDLE_TABLE и изменить права доступа для хендлеров своих процессов. Плюс самое время улучшить хук на NtDuplicateObject. Эпилог Вы наверное сейчас спрашиваете себя, почему такие очевидные ошибки - действительно чёрные ходы до сих пор существуют в одном из самых популярных антивирусов? Да потому что кто-то должен хорошенько дать под зад Лаборатории Касперского. Не так давно мы опубликовали другой обзор ошибок KAV. Реакция была ожидаема. Они сказали что-то наподобие "Не волнуйтесь, это не критические ошибки". Ну да, возможно Синий экран смерти из под Гостевой учётной записи это не такая уж большая проблема для компании. "Действительно. Че за BSOD вообще? Фигня, расслабьтесь ребята" Дорогие разработчики Лаборатории Касперского, ваш антивирус весьма хорош, об этом спору нет, но возможно пришло время поправить эти баги? Убрать извращения с SSDT/IAT. Тщательнее обработывать критические ситуации в своём драйвере. Нет серьёзно, а что не так? Смотря на klif.sys я вижу только одно - большой, глючный драйвер. Кстати, в некотором роде неофициальную реакцию от Лаборатории Касперского на наш предыдущий обзор klif.sys вы можете прочитать в этой чудесной статье, которая содержит несколько абсурдных утверждений и не несущих смысла комментариев. В нескольких словах: автор этой статьи частично обвинил нас в публикации информации про уязвимости в их старых и новых продуктах. http://www.viruslist.ru/analysis?pubid=204007553 Статья на русском, но я уверен вы сможете найти английский вариант. Have fun, от VX heavens EP_X0FF/UG North rootkit.com ![]() smartov: Цитата из статьи, про которую они говорят в конце
Как было в КВН: "Отличный план!". Такие себе бяки публикуют уязвимости, а из-за этого бедным-несчастным производителям антивирусов приходится оторваться от стрижки капусты разработки нового улучшенного пользовательского интерфейса и заняться их устранением. p.s. У самого установлен KAV 7.0.0.125... Оригинал моего перевода на хабре Это сообщение отредактировал(а) smartov - 11.11.2007, 15:02 |
||||||||||||||||||||
|
|||||||||||||||||||||
| December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: 1 Всего: 57 |
Забавно
|
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 35 Всего: 329 |
Супер. Классная статья. Касперсий жжёт.
|
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 1 Всего: 162 |
Да уж, зачёт
|
|||
|
||||
| Kirill89 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 501 Регистрация: 17.10.2006 Где: Питер Репутация: нет Всего: 4 |
Отличная статья! Спасибо!
|
|||
|
||||
| thomas |
|
|||
![]() Доцент... почти ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1385 Регистрация: 3.10.2006 Где: " Сказочное королевство" Репутация: нет Всего: 65 |
А я себе только что KIS 7.0 ... поставил.
А вообще интересно, как же уберечься от руткитов? Сам не знаю где, поймал такую бяку (или кто-то спецом именно мне сунул), но в начале учебного года у меня была конкретная головная боль из-за этого. Пришлось систему переустанавливать и кучу софта. И сейчас похожие симптомы возвращаются. А без инета никак нельзя. Да и флешкой активно пользуюсь, но только в связке "школа <--> дом". И куда бедному крестьнину податься? Белые придут - грабят, красные придут - тоже грабят. (фильм "Чапай") -------------------- Крепко жму горло, искренне ваш Thomas. (С)vingrad Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну! Проблемы негров шерифа не волнуют. |
|||
|
||||
| smartov |
|
|||
![]() свой собственный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 16 Всего: 259 |
thomas, пока что особых альтернатив нет. Будем надеяться что скоро залатают по крайней мере эти дыры
|
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 1 Всего: 121 |
Сегодня могу посоветовать использовать S'n'S или DrWeb. По той простой причине, что там сейчас работают компетентные в этом вопросе люди и результаты соответствующие. -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 1 Всего: 133 |
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 1 Всего: 121 |
Не уведомит. -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| Peter |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 771 Регистрация: 28.7.2003 Где: Ставрополь Репутация: 2 Всего: 1 |
А как в этом плане BitDefender Free Edition? У него ж есть функция "Искать руткиты". -------------------- всё, что делаете, делайте от души, как для Господа (Послание апостола Павла колоссянам, 3:23). |
|||
|
||||
| smartov |
|
|||
![]() свой собственный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 16 Всего: 259 |
||||
|
||||
| bartram |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1606 Регистрация: 22.2.2004 Где: Russia, Samara Репутация: 3 Всего: 29 |
Хорошая статья
|
|||
|
||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
Отличная статья. Хотелось бы подобного анализа и других антивирусов, особенно платных
-------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 1 Всего: 133 |
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
![]()
|
| Правила форума "Программное обеспечение" | |
|
|
Запрещается! 1. Обсуждение крэков, кейгенов и других подобных программ Пробуйте искать сами или обращайтесь в приват к участникам форума. Темы с подобными вещами будут немедленно удаляться, а нарушители - получать предупреждения. Также запрещается обсуждение проблем работы этих программ (что куда вписать, куда что скопировать и т.п...) 2. Давать ссылки на взломанные продукты
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Программное обеспечение | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |