Здравствуйте! Задача довольно специфичная, а я не сказать что очень маститый драйверист :) Для начала могу осветить такие нюансы:
в windows CryptoAPI - это юзермод. Если вы хотите делать всё в ядре - вам придётся делать очень много чего. По большому счёту вам нужно будет втащить огромный кусок кода, для работы с PKI, и не забудьте об CRL - его тоже надо как-то поддерживать
вам придётся поддержать работу с cat файлами, потому что драйвер - это не только sys файл, но и потенциально ресурсы - например ini файл для SetupAPI, в теории может быть и какой-нибудь блоб и pe файл - подписан не напрямую, а через каталог
если поднимать с диска соответствующий конкретной драйверной службе исполняемый файл, а потом его парсить и проверять подпись - это не панацея. Почему? Потому что образ в памяти уже может быть другим, например его перепатчила малвара, а patchguard по каким-то причинам выключен
Какую задачку вы решаете наличием такого драйвера?
Если верить событиям в книге American Kingpin за авторством Nick Bilton - один из агентов, участвовавших в поимке создателя легендарного Silk Road имел привычку перечитывать всё даже не два, а три раза. Книжку, кстати, советую, на английском читается легко и захватывающе, вроде бы есть перевод даже
имеется в виду, что раньше подразумевалось прохождение тестов и если пакет корректен и прикладываемые драйвера - целевые, то это хоть какой-то мизерный уровень их качества (ха-ха), в аттестационной это упразднили и всё на совести разработчика, что он согласен с условиями, где написано в духе "дайте слово что у вас драйвера не бажные" :) а так там как минимум можно любую либу подписать, не обязательно драйвер
attested signing не сказать что далеко ушло дальше в данном вопросе, внешне всё то же самое, только пакета с тестами нет, да подпись на каталоге другого типа
Вы правы, так и есть. Это всё на веру, что драйвер приложенный в пакет и драйвер в результатах тестов один и тот же. Там были версии и хэши, насколько я помню, но их совпадения никто не проверял. Впрочем, нужно помнить, что hardware dashboard помнит все ваши отправки, а в cat вшиваются данные о вендоре, так что в теории MS легко может отследить факт подмены
тесты есть натурально бажные. Какой-то тест на фильтры фс падал если на машине больше двух гигов памяти, воркараундилось зарезанием через bcd
апи студий жутко бажное и не оптимизированное. Все апи не потокобезопасны, апи выгрузки пакета вообще оперирует временным файлом, у которого всегда одинаковое имя в HCK - его не поменять, несколько пакетов разом выгружать нельзя. Иногда пакеты нельзя слить в один, есть такая фича в студиях - по слиянию результатов прогонов из разных проектов. Есть места, где можно дёрнуть не разогретые кэши и вызов упадёт, конкретно не помню уже, воркараундится каким-то слабо связанным вызовом выше по коду. В общем развлечений с реверс инжинирингом этого было много
есть тесты, которые проходят только на конкретной редакции оси, например на server core. Если у вас какие-то завязки на GUI - придётся один тест пускать там, остальные - на обычной редакции, затем сливать пакеты проектов в один
для WPF приходилось писать тулзы, чтобы драйверу можно было надиктовать правила фильтрации трафика. Также эти тесты примечательны тем, что там на лету нужно делать ini файл конфига для агента студии
агенты порой теряют связь до студии и машина вываливается из доступных к прогону. Решалось сбрасыванием статуса машины на студии и молитвами
некоторые тесты читают лог агента для ассертов, если его грохнуть - тест может повиснуть или упасть, точно помню так кто-то проверял критерий произведенного ребута, что можно было элегантно костылять перезапуском службы
некоторые тесты проверяют состояние хранилища SxS для ассерта вида "установка драйверов не ломает систему", самое смешное - что сломаться это хранилище может абсолютно независимо от разработчиков драйверов. Приходится восстанавливать с дистрибутивом винды или переустанавливать её. Траблшуталось по логам тестов
какой-то тест падал при наличии в системе русской локали, имя не помню, тоже что-то связанное с фильтрами фс
может быть всё на виртуалках - WLK/HCK/HLK, хотя формально только для HLK вроде бы заявлена поддержка виртуальных машин и даже поставлялся образ вм. У студий есть жёсткая завязка на имя хоста, если его поменять - всё развалится. Вероятно такие кейсы есть еще и поэтому не рекомендуют виртуалки. Но в целом всё работает без проблем
Согласен, сертификация - вещь в себе, тоже не хватало ресурсов в своё время. Есть еще несколько нюансов - в HCK/HLK студии есть автоматические фильтры, или автоматические эрраты - если тесты упали, не спешите расстраиваться, где-то в студии была кнопка вроде "apply filters", которая может "позеленить" их. Такие вещи иногда добавляются и поставляются на клиенты оригинальным образом - нужно с hardware dashboard выкачать архив в сиквел запросами и прокатать их в HCK/HLK используя соответствующую тулзу. Так что если вам выпишут такой фильтр (нам выписывали через premier support), то он не применится пока не примените скрипт. А еще в WLK (это древность, сейчас только для Windows Server 2008 R2 обоснованно для лого) есть тесты которые только красные и проходят только с ручной эрратой. Ручная эррата это Word документ, где описан номер эрраты и падучий тест - его надо приложить в результирующий пакет и сотрудник майкрософт через недельку вам его согласует.
В целом я бы не постеснялся сказать, что у меня огромный опыт в WLK/HCK/HLK для NDIS, ELAM и фильтров ФС. В своё время даже автоматизировали эти тесты, с горем пополам, но ручной по прогонам фактически ушёл. Могу помочь с вопросами по теме
Какой же мерзкий этот канцелярит от кадавров системы исполнительной власти "приняты меры понуждения", аж воротит от таких оборотов, сродни всяким "прокуратура на транспорте разъясняет", когда я не просил никаких разъяснений
пробросить порты можно через уже открытую сессию SSH с помощью так называемых control sequences. Чтобы попасть в меню надо нажать Enter, потом ~C - появится контекстная менюшка с выбором режима и настроек форварда
Металлический корпус в общем виде абсолютно ни о чём не говорит. Утверждаю как опытный колхозник - петли вырывались как на пластиковом MSI, так и на металлическом Asus ZenBook, у второго все крышки алюминиевые, зато внутри такие же метизы запрессованы в пластик и прилеплено не пойми на что на сам корпус. Вырвалось даже эпичнее чем на MSI - сразу несколько креплений разом. В каждом случае колхозил прихватывая через корпус насквозь, мелким крепежом с алиэкспресса с последующей "доработкой напильником" оторванных торчащих концов. Не очень эстетично, но работает. Чуть получше чем у автора на вид.
250k клуб не требует много - https://dumbsec.ninja/, генерируется из markdown, примерно 180 килобайт первая страница. Из "мусора" только гугл аналитика
Странно слышать такие голословные высказывания от технического специалиста. Где доказательства, Билли? Нам нужны доказательства! (с)
Исследование будет, как вы придушили rutracker, например? Да с отсечением сторонних факторов, вроде блокировки РКН. Боюсь, такое никому не нужно, да и ещё окажется, что не отучили вовсе «всю страну».
Что касается сервиса, то лично я не стал продлять триал. Причина — на мой взгляд мизерное количество интересного контента. Сериалы не смотрю (мне скучно и лень, длинные они), а вот красивый фильм на проекторе — пожалуйста. Но так вышло, что, например, ни «Бараки» ни «Самсары» в помине нет, а за «Малхолланд драйв» и «Космическую одиссею 2001» изволь выложить дополнительных денег. Не знаю почему именно, но последний факт сильно бросается в глаза и возникает мысль поскорее с сервиса убежать. Почему-то с ivi такого не было, но от него я тоже отписался, по причине отсутствия контента и там тоже есть такого рода подход.
Была бы подписка, отписался бы принципиально, такое отношение к клиентам мне не нужно. Выходит, вроде как я, блудный сын, вор и прохиндей, пришёл к пути истинному — Алексею зарплату платить ежемесячными отчислениями. Нет, спасибо, рассказывайте свои байки совету директоров.
PS:
Как прокачать основную работу и свое технологическое развитие так, чтобы не надо было искать сторонние проекты, а расти на текущем проекте от разработчика в более крутого разработчика, потом в архитектора и технического директора компании
Видимо, нужно научиться болтать всякое нужным людям.
Здравствуйте! Задача довольно специфичная, а я не сказать что очень маститый драйверист :) Для начала могу осветить такие нюансы:
в 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 килобайт первая страница. Из "мусора" только гугл аналитика
Исследование будет, как вы придушили rutracker, например? Да с отсечением сторонних факторов, вроде блокировки РКН. Боюсь, такое никому не нужно, да и ещё окажется, что не отучили вовсе «всю страну».
Что касается сервиса, то лично я не стал продлять триал. Причина — на мой взгляд мизерное количество интересного контента. Сериалы не смотрю (мне скучно и лень, длинные они), а вот красивый фильм на проекторе — пожалуйста. Но так вышло, что, например, ни «Бараки» ни «Самсары» в помине нет, а за «Малхолланд драйв» и «Космическую одиссею 2001» изволь выложить дополнительных денег. Не знаю почему именно, но последний факт сильно бросается в глаза и возникает мысль поскорее с сервиса убежать. Почему-то с ivi такого не было, но от него я тоже отписался, по причине отсутствия контента и там тоже есть такого рода подход.
Была бы подписка, отписался бы принципиально, такое отношение к клиентам мне не нужно. Выходит, вроде как я, блудный сын, вор и прохиндей, пришёл к пути истинному — Алексею зарплату платить ежемесячными отчислениями. Нет, спасибо, рассказывайте свои байки совету директоров.
PS:
Видимо, нужно научиться болтать всякое нужным людям.