Pull to refresh
2
0
Eвгений @El_corona

malware analysis

Send message

Здравствуйте! Задача довольно специфичная, а я не сказать что очень маститый драйверист :) Для начала могу осветить такие нюансы:

  • в windows CryptoAPI - это юзермод. Если вы хотите делать всё в ядре - вам придётся делать очень много чего. По большому счёту вам нужно будет втащить огромный кусок кода, для работы с PKI, и не забудьте об CRL - его тоже надо как-то поддерживать

  • вам придётся поддержать работу с cat файлами, потому что драйвер - это не только sys файл, но и потенциально ресурсы - например ini файл для SetupAPI, в теории может быть и какой-нибудь блоб и pe файл - подписан не напрямую, а через каталог

  • если поднимать с диска соответствующий конкретной драйверной службе исполняемый файл, а потом его парсить и проверять подпись - это не панацея. Почему? Потому что образ в памяти уже может быть другим, например его перепатчила малвара, а patchguard по каким-то причинам выключен

Какую задачку вы решаете наличием такого драйвера?

Хорошо знаю как устроен процесс подписи драйверов для Windows в Microsoft: HCK, HLK, WLK, WHQL, тестирование, аттестация.

На средне-профессиональном уровне (всего пара лет опыта работы и чуть больше - хобби): вирусный анализ windows малвары, threat intel

Если верить событиям в книге American Kingpin за авторством Nick Bilton - один из агентов, участвовавших в поимке создателя легендарного Silk Road имел привычку перечитывать всё даже не два, а три раза. Книжку, кстати, советую, на английском читается легко и захватывающе, вроде бы есть перевод даже

имеется в виду, что раньше подразумевалось прохождение тестов и если пакет корректен и прикладываемые драйвера - целевые, то это хоть какой-то мизерный уровень их качества (ха-ха), в аттестационной это упразднили и всё на совести разработчика, что он согласен с условиями, где написано в духе "дайте слово что у вас драйвера не бажные" :) а так там как минимум можно любую либу подписать, не обязательно драйвер

никуда, просто сложилось впечатление, будто вы считаете процесс аттестационной подписи более стойким к подобного рода хакам

attested signing не сказать что далеко ушло дальше в данном вопросе, внешне всё то же самое, только пакета с тестами нет, да подпись на каталоге другого типа

Вы правы, так и есть. Это всё на веру, что драйвер приложенный в пакет и драйвер в результатах тестов один и тот же. Там были версии и хэши, насколько я помню, но их совпадения никто не проверял. Впрочем, нужно помнить, что hardware dashboard помнит все ваши отправки, а в cat вшиваются данные о вендоре, так что в теории MS легко может отследить факт подмены

Еще вспомнились нюансы:

  • тесты есть натурально бажные. Какой-то тест на фильтры фс падал если на машине больше двух гигов памяти, воркараундилось зарезанием через bcd

  • апи студий жутко бажное и не оптимизированное. Все апи не потокобезопасны, апи выгрузки пакета вообще оперирует временным файлом, у которого всегда одинаковое имя в HCK - его не поменять, несколько пакетов разом выгружать нельзя. Иногда пакеты нельзя слить в один, есть такая фича в студиях - по слиянию результатов прогонов из разных проектов. Есть места, где можно дёрнуть не разогретые кэши и вызов упадёт, конкретно не помню уже, воркараундится каким-то слабо связанным вызовом выше по коду. В общем развлечений с реверс инжинирингом этого было много

  • есть тесты, которые проходят только на конкретной редакции оси, например на server core. Если у вас какие-то завязки на GUI - придётся один тест пускать там, остальные - на обычной редакции, затем сливать пакеты проектов в один

  • для WPF приходилось писать тулзы, чтобы драйверу можно было надиктовать правила фильтрации трафика. Также эти тесты примечательны тем, что там на лету нужно делать ini файл конфига для агента студии

  • агенты порой теряют связь до студии и машина вываливается из доступных к прогону. Решалось сбрасыванием статуса машины на студии и молитвами

  • некоторые тесты читают лог агента для ассертов, если его грохнуть - тест может повиснуть или упасть, точно помню так кто-то проверял критерий произведенного ребута, что можно было элегантно костылять перезапуском службы

  • некоторые тесты проверяют состояние хранилища SxS для ассерта вида "установка драйверов не ломает систему", самое смешное - что сломаться это хранилище может абсолютно независимо от разработчиков драйверов. Приходится восстанавливать с дистрибутивом винды или переустанавливать её. Траблшуталось по логам тестов

  • какой-то тест падал при наличии в системе русской локали, имя не помню, тоже что-то связанное с фильтрами фс

ELAM это супер специфика, конечно, у них и подпись другая, нежели остальные от майкрософт

может быть всё на виртуалках - WLK/HCK/HLK, хотя формально только для HLK вроде бы заявлена поддержка виртуальных машин и даже поставлялся образ вм. У студий есть жёсткая завязка на имя хоста, если его поменять - всё развалится. Вероятно такие кейсы есть еще и поэтому не рекомендуют виртуалки. Но в целом всё работает без проблем

submission package подписывается с помощью ключа, привязанного к компании на dev portal

Согласен, сертификация - вещь в себе, тоже не хватало ресурсов в своё время. Есть еще несколько нюансов - в HCK/HLK студии есть автоматические фильтры, или автоматические эрраты - если тесты упали, не спешите расстраиваться, где-то в студии была кнопка вроде "apply filters", которая может "позеленить" их. Такие вещи иногда добавляются и поставляются на клиенты оригинальным образом - нужно с hardware dashboard выкачать архив в сиквел запросами и прокатать их в HCK/HLK используя соответствующую тулзу. Так что если вам выпишут такой фильтр (нам выписывали через premier support), то он не применится пока не примените скрипт. А еще в WLK (это древность, сейчас только для Windows Server 2008 R2 обоснованно для лого) есть тесты которые только красные и проходят только с ручной эрратой. Ручная эррата это Word документ, где описан номер эрраты и падучий тест - его надо приложить в результирующий пакет и сотрудник майкрософт через недельку вам его согласует.

В целом я бы не постеснялся сказать, что у меня огромный опыт в WLK/HCK/HLK для NDIS, ELAM и фильтров ФС. В своё время даже автоматизировали эти тесты, с горем пополам, но ручной по прогонам фактически ушёл. Могу помочь с вопросами по теме

Какой же мерзкий этот канцелярит от кадавров системы исполнительной власти "приняты меры понуждения", аж воротит от таких оборотов, сродни всяким "прокуратура на транспорте разъясняет", когда я не просил никаких разъяснений

По ssh konami code можно нагуглить, сам уже толком не помню какие были

пробросить порты можно через уже открытую сессию SSH с помощью так называемых control sequences. Чтобы попасть в меню надо нажать Enter, потом ~C - появится контекстная менюшка с выбором режима и настроек форварда

Металлический корпус в общем виде абсолютно ни о чём не говорит. Утверждаю как опытный колхозник - петли вырывались как на пластиковом MSI, так и на металлическом Asus ZenBook, у второго все крышки алюминиевые, зато внутри такие же метизы запрессованы в пластик и прилеплено не пойми на что на сам корпус. Вырвалось даже эпичнее чем на MSI - сразу несколько креплений разом. В каждом случае колхозил прихватывая через корпус насквозь, мелким крепежом с алиэкспресса с последующей "доработкой напильником" оторванных торчащих концов. Не очень эстетично, но работает. Чуть получше чем у автора на вид.

250k клуб не требует много - https://dumbsec.ninja/, генерируется из markdown, примерно 180 килобайт первая страница. Из "мусора" только гугл аналитика

При клике на «Хочу поступить» запрос к API душится по политике CORS. Странно видеть такое у школы, выпускающей разработчиков.
Странно слышать такие голословные высказывания от технического специалиста. Где доказательства, Билли? Нам нужны доказательства! (с)
Исследование будет, как вы придушили rutracker, например? Да с отсечением сторонних факторов, вроде блокировки РКН. Боюсь, такое никому не нужно, да и ещё окажется, что не отучили вовсе «всю страну».

Что касается сервиса, то лично я не стал продлять триал. Причина — на мой взгляд мизерное количество интересного контента. Сериалы не смотрю (мне скучно и лень, длинные они), а вот красивый фильм на проекторе — пожалуйста. Но так вышло, что, например, ни «Бараки» ни «Самсары» в помине нет, а за «Малхолланд драйв» и «Космическую одиссею 2001» изволь выложить дополнительных денег. Не знаю почему именно, но последний факт сильно бросается в глаза и возникает мысль поскорее с сервиса убежать. Почему-то с ivi такого не было, но от него я тоже отписался, по причине отсутствия контента и там тоже есть такого рода подход.

Была бы подписка, отписался бы принципиально, такое отношение к клиентам мне не нужно. Выходит, вроде как я, блудный сын, вор и прохиндей, пришёл к пути истинному — Алексею зарплату платить ежемесячными отчислениями. Нет, спасибо, рассказывайте свои байки совету директоров.

PS:
Как прокачать основную работу и свое технологическое развитие так, чтобы не надо было искать сторонние проекты, а расти на текущем проекте от разработчика в более крутого разработчика, потом в архитектора и технического директора компании

Видимо, нужно научиться болтать всякое нужным людям.
если используется systemd, то можно поправить юнит и добавить директиву After. man systemd.unit
1

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity