Pull to refresh
51

Погромист

15
Subscribers
Send message
Улыбнуло, спасибо. Это код примера из DDK. Совершенно непонятно — зачем его патчить.

Драйверу файловой системы присылаются на открытие файла или один или два токена. Primary — это под кем запущен сервис. А Client — это уже имперсонированный токен. Никакие CreateAsUser этот токен не воспринимают, потому что это не logon token.

Не все так просто. Да, из-под драйвера можно запустить процесс, хоть и нетривиальное действие, но смысл? Из-под сервиса то же самое только проще и быстрее. И под Win32 подсистему ручками настраивать не надо.
Нет, если серьезно — к ынтерпрайзу это отношения не имеет.

И ваш пример неверен — это разные токены. Хотите узнать кто добрался до вашего файла? Вот вам sid. Только на него имперсонироваться — нельзя.

FLT_PREOP_CALLBACK_STATUS beforeOpenCb (
    IN OUT PFLT_CALLBACK_DATA Data,
    IN PCFLT_RELATED_OBJECTS FltObjects,
    OUT PVOID *CompletionContext)
{
    PFILE_OBJECT fileObject = Data->Iopb->TargetFileObject;
    if(FLT_IS_REISSUED_IO(Data))
         return FLT_PREOP_SUCCESS_NO_CALLBACK;

    securityIsNULL = 
         Data->Iopb->Parameters.Create.SecurityContext == NULL 
         || Data->Iopb->Parameters.Create.SecurityContext->AccessState == NULL ;
    if(!securityIsNULL) {
        PACCESS_STATE aState = Data->Iopb->Parameters.Create.SecurityContext->AccessState;
        SeLockSubjectContext(&aState->SubjectSecurityContext);
        if (ARGUMENT_PRESENT(aState->SubjectSecurityContext.ClientToken)) 
            EffectiveToken = aState->SubjectSecurityContext.ClientToken;
        else 
            EffectiveToken = aState->SubjectSecurityContext.PrimaryToken;
       SeUnlockSubjectContext(&aState->SubjectSecurityContext);
    }
    ...
}


Ситуация с сертификатами проста как мычание и описывается одним словом — blu-ray.

Микрософт сама со вкусом расписывала — зачем и почему. Почитайте, что отключается при переходе в тест-мод, это подсказка.

А вот еще. Зачем в висте появились средства преднамеренного ухудшения аудиопотока?

Вот именно, только потому что микрософт получила право проигрывать лицензионный контент — мы получаем вот такие вот оргмеры и ограничения.

К слову, все нынешние пляски с UEFI нужны микрософту только для одного — не дать стартовать активаторам пиратских лицензий до того как стартанет сама винда. Все.

А все «заботы» о ентерпрайзе — это маркетоидный бульшит. И описывается это одной фразой — видеосьемка в туалете ведется для вашей безопасности.
Правильно. Вот она — забота о пользователях. Вася старался, добиваясь отличных показателей, и в его плеере звук от видеоряда не уползает так, что это видно на глаз.

Но вот в микрософте сделать лучше или хотя бы так же — не удалось. Ага, ага — у них же уже есть иксбокс медиаплеер (гораздо хуже), зачем стараться.

А давайте мы Васю запретим! Нам делать лучше не придется.

Вы именно это хотели сказать? ;-)
Ну а эти-то технари чем им помешали? ;-)))
> Ага, так всё-таки нет у среднестатистического Васи Кулибина желания или возможностей купить краденные сертификаты ))

Это у меня нет — я же в белой шляпе, мне стыдно покупать у черных шляп краденые битики ;-))))
> если вы такой умный, то почему не богатый? =)

Дык — микрософт, итить его, от Вась-Кулибиных зашшыту придумал, накрылся мой опенсорц проект, там драйверов три штуки сразу ;-) И не только мой, но и соседние на ту же тему.

А делать не опенсорц — я не настолько богат, чтобы организовать поддержку пачки predefined песочниц, без которых смысла в затее немного. Генерик рулами все не охватишь.

> Я САМ и переключусь на инфицированную песочницу и САМ запущу поддельную ДБО

А кто даст не той песочнице доступ к банке? ;-) Access denied.
> Не хватает производительности сделать песочницы для каждого приложения

(смотрит) намекаю — я это делал. Не так уж много ресурсов надо, на самом деле, если ограничиться минимальной паравиртуализацией.

Линки и reparse points прекрасно решают вопрос «а фактически в другом месте» на диске и в реестре. Я даже как-то copy on write пытался приделать, чтобы минимизировать расходы на диск и на их основе сделать версии. Работает, но подпорок вылезает — мама не горюй.

С сетью чуть сложнее — горы фейковых адаптеров система переваривает плохо, приходится ndis im miniport городить с сопутствующими проблемами и маскарадингом самому себе. Так что прежде чем сюда писать — я это проверил.

Осталось только подпереть COM — и вот мы виртуализовали, хе-хе. Тоже решаемо, даже в IETester справились.

Неожиданно, да? А с виду ботан — теоретик баки заколачивает ;-)

> Сейчас большинство ДБО работает через браузер, так их проще кодить

Закрыл браузер, открыл — у вас все та же песочница. А фейковый апдейт — в другой песочнице. И чтобы он сработал — вам надо на инфицированную песочницу переключиться. Ручками. Улавливаете момент?

Я по долгу службы пишу банкам всяческие защиты (от слова шит). Сюрприз. И от ботов там не только капча, там мноого всего интересного применяется с подписями, рандомизациями, секурити кодами и т. д. Не надо думать что банкиры — это МТС ;-)

И вот банку очень выгоден подход с виртуализациями. Он тогда может паравиртуалку выдать в офисе по паспорту (в виде отстроенного firefox portable к примеру со своим правильным виндовсом и средствами контроля). И хоть обставься, из соседней виртуалки можно просто не пускать.

> все состояния и все изменения в системе хранить нереально

Вернее не так — хранить не вопрос, мержить нереально.

> Главная уязвимость — это сам пользователь. Именно его под разными предлогами завлекают нажать на вот эту кнопочку.

Да.

> Нет других варианто, кроме как ограничить ему возможность нажимать на неправильные кнопочки

Нет.

> апдейты включены по умолчанию, как же тогда трояны заражают компьютеры, ума не приложу?

Ну наконец-то — задумались, хвала аллаху ;-)

Подсказываю — зачем нужен юзеру обыкновенному firewall? Неверно, плевать он хотел на ваше секурити и «у вас злые хакеры тырят бабло». Ему надо предотвратить — нет, не утечку документов! а утечку того факта, что (нужное название подставить) у него нелицензионное. Улавливаете? Вот именно поэтому у него отключены апдейты. А ну как новый апдейт по-новому проверит лицензию? И что тогда, переставлять винду с начала?

> RBL большинство спама перекрывают, если что

Назовите ваш, посмеемся.

Это IronPort большинство перекрывает, но там не списки а математика.
От Васи не спасает — ему не надо делать лицензионно чистый продукт, его полностью устроит краденый сертификат. Так ему даже лучше.

А опенсорц-коммунити не может для своих проектов покупать краденые байты. И честно получить не может — сертификат нельзя выложить под GPL.

И от кого в итоге защитились? От FUSE for Windows? Или от ext2fs? Или от опенсорц драйвера к устаревшему сканеру? Опенсорц драйвер — это так страшно — аж жуть, да.

да у нас все противоречия — в отношении к пользователям, в остальном — полное совпадение позиций ;-)
> изоляция решает проблему? И все?

Нет, конечно же — не все, это всего лишь поддерживающий механизм. Точно так же как наличие базы сигнатур не означает вирус-фри.

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

С введением изоляции, вдруг выясняем, что

1. У каждого приложения — свой реестр, своя сеть со своим фаерволлом, и своя эксклюзивная файловая система… Напортачил — легко перемещаемся по чекпоинтам и любые действия в пределах песочницы 100% не затронут всех остальных. Своя windows с блэкджеком — каждому приложению, порть не хочу.

2. Запуск дочерних процессов автоматом приводит к созданию копии песочницы. Ограничения родителя всегда добавляются к ограничениям потомков, никогда не уменьшая уровней изоляции. Обмен между приложениями не из одного дерева — в песочницах разрешен только по сети и через clipboard,

3. Список изменений в каждой песочнице строго локален и легко версионируется.

Казалось бы — ну набредил, да? Как это вообще поможет?

А вот пара следствий.

а. антивирь всегда в своей песочнице, не достанешь. И даже не узнаешь что он вообще есть!

б. с хост-системы проверять на наличие вирусов можно банально по таймеру и только в последних изменениях песочниц. А реалтаймы в файловой системе (самый бесящий меня компонент) просто не нужны.

в. эвристики могут быть у каждой песочницы свои. У «инторнет експлойтера» — параноидальные, а у вижуалстудии — никакие (давно об этом мечтаю, хе-хе). Даже не так — в каждой песочнице может быть свой антивирус, во!

Вот такие интересные моменты вырисовываются, с технической точки зрения.

А вот с точки зрения нашего юзера — у него появляется то о чем он давно мечтал. Он точно знает что у него сейчас в системе менялось и он может это отменить. Хотя бы — в теории.

Так что смотрите что получается.

> Троян мне пришлет ссылку с надписью — новая версия ДБО. Я ее поставлю в нужный уровень изоляции — и прощайте деньги

Ой! аштойта это у меня такое случилось? Че я тут ставил-то? Птичек и какой-то дыбыо? Тынц! Тынц! И усе, нет фейкового апдейта.

И тут есть некоторое непонимание. Нет разницы в уровнях изоляции — у каждого своя виндовс.

Юзер ставит мифический апдейт? Да огтлично, он автоматом попадет в свою(!) песочницу, отнаследованную от песочницы браузера (или откуда он там его запускал), а не песочницу ДБО.

Апдейт внутри чужой песочницы руками — задача административная и некислой сложности, требующая доступа к чистовой хост-системе. А у юзера для этого есть административный вин-експлорер, запуск любых процессов из которого тут же отправляет его в новую песочницу ;-)

> Ошибки в ПО пусть так и остаются? И пользователи с нулевым уровнем тоже?

А они и так никуда не денутся.

> поскольку, возможность принудительного обновления отсутсвует

у кого, простите? У вин-апдейта? ;-) включено по умолчанию.

> гипотетический пример — запускаю я браузер, а он и говорит, не буду работать, пока не обновишь

Это не гипотетический. Это хром. Только он в позу не встает, а просто обновляется. Молча.

> Пошел пользователь на сайт в черном списке

А вот это — окромя злоупотреблений никаких чудес. Почтовых RBL мало было, чтобы понять — нельзя верить спискам, составленным не вами, на 100%? ;-)

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

Пользователь вполне себе может четко понимать, что он делает, к слову. Или думает, что знает. В любом случае вопрос не в том, как его в бордель не пустить, а как не дать ему подхватить заразу, и вылечить — если вдруг.
Я — за правильный антивирус, как это ни банально.

Вот плюгин к огнелису / аутглюку, который проверяет на предмет зловреда по актуальнейшей базе в онлайне — это правильный антивирус.

Или сканер — тоже правильный антивирус, когда совсем кранты — скачиваешь свежачка, в сейф-мод — и часов 10ть сканишь диск по свежей базе.

Или вот догадались систему от приложений отделять — отлично, почему не пойти дальше и не отделять приложения друг от друга?

А реалтайм мониторы и проверятели по эвристикам — зло однозначное, вреда гораздо больше чем пользы, и фолс-позитивов вагон, и комп тормозит так что только беги. Но почему-то все усилия идкут именно сюда 8-(
Ну, передергивать-то не надо — наркоту запрещают потому, что наркоманы становятся опасными для третьих лиц, а не потому что это привычка плохая.

Кстати за подписи драйверов им отдельное пролетарское спасибо — угробили целый класс проектов. Попробуйте получить сертификат для опенсорц-драйвера, фигу. Зато зловредам не помеха — покупают сертификаты на черном рынке и подписываются всякими там реалтеками. Вот защитили так защитили, блин!
Вы сейчас вообще крамольную мысль выдвинули, обратите внимание. Вне зависимости от наличия антивируса (ключевой момент) вирусы на компе юзера — будут! Я даже больше скажу — и даже вне зависимости от лично его поведения в интернете — будут, он не один такой, а конфикеры и К — прекрасно размножаются и без порносайтов.

Если припомните, именно с этого я и начал.

И даже (страшное дело) критиковал предметно — предлагая подумать об изоляции приложений друг от друга и возможности их поштучно обновлять-удалять-откатывать в удобной форме.

А вот ваше предложение — поправьте, если я не так понял — заключается в том, чтобы не допускать появления заразы на корню путем люстрации юзеров и отбирания у них движимого имущества ;-)

А в остальном у нас разногласий-то и нет.

На новый круг пойдем, или уже все что хотели — друг другу сказали? Если не — давайте подведем итоги и закончим.
Да плевать — что они там делают, на самом деле. А еще эти юзеры пиво пьют и привычки имеют всякие нехорошие, и что? Ну поймал отдельный извраще юзер себе на одно место приключений, купив однодневный аккаунт — порнофильм посмотреть. Давайте теперь мы его на цепь посадим и комп отберем!

И непременно в глобальном масштабе, ага.

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

А ему в ответ — э, чувак! Это ж общемировая проблема! Пока все банки не построим и комтайну не отменим — никак тебе от баннеров не избавиться, иди совершай суицид — комп форматируй и из бэкапов восстанавливайся. Во, заодно начнешь их делать! И вообще — сам виноват, лучше б за соседкой подсматривал.

Смешно выходит, чес-слово.
> для ВАС 2 доллара не деньги

Ну конечно — 2 доллара это так много, что для их защиты надо выложить полтинник, что в 25 раз больше ;-) Браво. И кто из нас экономнее? Кстати я не зря этот пример привожу — очень нагляден градус маразма.

> Из каких моих фраз это прослеживается?
> 5. для борьбы с ВПО необходимо «зажать гайки» пользователям

Ваше? «Необходимо» в наличии.

Вдумайтесь в ваше предложение. Зачем? Затем что нынешние средства такие замечательные, все отлично — вирусы ловятся пачками и мои два бакса вовсю защищаются? ;-)
По пункту пять. Тема холиварная, поэтому нагнетаю обстановку.

Начнем с основ логики. Потому что антивирусы работают плохо(!!!) — поэтому закрутить гайки надо пользователям(!). А может — закрутить гайки авторам антивирусов? ;-)

Ничего не настораживает в такой постановке вопроса?

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

Вот примерно так выглядят ваши предложения со стороны пользователей:
Как прибыли лопатой грести на запугивании домохозяек (шаманы вуду) — так к антивирусникам вопросов нет. А как вопросы к эффективности их работы — так это пользователи у них неправильные, вот оказывается в чем дело.

Но товарищи! Если ваши антивирусы столь плохи, что вам понадобилась smarter planet, то где об этом большим красным шрифтом в ваших рекламных материалах?

А нам, пользователям, нужно решать наши задачи здесь и сейчас. Именно для этого мы и платим вам за ваши антивирусы. А не за наше принудительное обучение и не за то, чтобы вы у нас под видом заботы отбирали в свою пользу нашу собственность.

Да-да, именно. Других пользователей у нас нет.

Я понимаю, что у антивирусников сейчас реальный кризис жанра, и куда дальше тренд вывернет — предсказать сложно. Понятно, что новаторских идей пока что не видать, поэтому под видом улучшений чего только в антивирусы не засовывают. Но и на пользователей перекладывать — это не выход.
> а не восстановим за один день все машины из бэкапа

Какой бэкап? Вы же за антивирус, вот и рассказывайте — как оно с лайфсиди мастерски все починит за полчаса, а то ишь — на темную сторону переметнулись ;-))))
Вопрос масштаба — восстановить один комп стоит — а, почти ничего не стоит. А вот много компов — это проблема.

Даже 20 компов — и то уже проблема, в каждый сунь диск, с каждого загрузись, в каждом запусти, каждый проконтролируй — чем закончилось. Не пробовали, не? Рекомендую. Ощущения совсем не те.

И ремот контрол не спасет — нетиражируемое действие, нужен доступ к железу.

Ваш сарказм на мое шуточное замечание непонятен — вы просто не слышали о таких случаях? Ведь исторический факт — ваше «ВПО» уничтожает конкурентов, такие случаи известны. Даже предлагались отдельными экстремистами методы распространения антивирусов таким способом.
Кроме того, в тезисах не указан и другой вид ущерба — порча или системы или данных.

А ведь это — и есть самый распространенный вид ущерба.

Который требует ресурсов на резервирование и на восстановление. И чем бОльий ареал поражения — тем больших ресурсов. В конторе в 200 лиц поражение обойдется в пару тысяч часов простоя, в более крупной — потери выше.

Уже сейчас для типового рабочего места операциониста и проч — гораздо дешевле просто снести системный диск форматированием и развернуть его из образа. Всех потерь — это recent documents и временные файлы, и делается централизованно. А почему так? правильно, домохозяйка в вакууме важнее.

А вот файловый сканер на современных дисках работает по пол-суток, и резервов ускорения не проглядывает. Торможение — процесс объективный, сигнатур то все больше. Никакими «полчаса с загрузкой лайфсиди» и не пахнет. Полчаса — это с акронисом.

На этом первых два пкункта кратенько откомментировал.

По пунктам три, четыре возражений нет. Есть дополнение — антивирус не противопоставляется оргмерам и проч, но — органично дополняет. Вместе с бэкапами. И находится в том же ряду — в случае чего мы ух! выведем заразу и отделаемся легким испугом.

По пункту шесть возражений нет, все правильно.

Пункт пять — полная ахинея. Остановлюсь отдельно.
> распространению ВПО способствует ошибки в коде и неграмотность пользователей

Прежде всего — возможность получить с этого навар. Причем не копеечный и глупый, как винлокеры и прочая студенческая дрянь, а вполне ощутимый и регулярный.

У распространенности есть обратная сторона — стрельба ведется только по площадям, поэтому точечные пугалки не работают. Обобрать лично вас проще захватив ваш клиент-банк и выписать эн платежек на виргинские острова. Причем так чтобы ваш банк платежки пропустил (нелегкая задача).

> ВПО наносит вред пользователю

Наносит. Но акценты при рассказах как-то странным образом смещаются.

> путем кражи денег, информации

Вот это — страшилка, извините. Поясняю почему.

Деньги.

Украсть 2 доллара с вашего мобильника выслав смс-ку — конечно же может. Легко (в РФ). Но простите, сколько стоит подписка на касперского? На эту подписку могут по два раза в месяц снимать по 2 у.е. и я еще в плюсе окажусь, о как.

Но вот украсть уже стольник — проблема. Во 1х, банк тут же пришлет подтверждение транзакции, во 2х — можно тут же отзвониться и заблокировать. И в 3х — банкиры давно придумали всяких там смарткарт, тридэ-секуров и прочее, и ваш платеж можно просто не подтвердить. И — никуда не уйдет. А вирусы знаете ли секурекод с бумажки вводить не умеют ;-)

Сумму в 500 баксов украсть еще сложнее — во 1х банки могут заблокировать платежи не пойми куда, а во 2х — еще и голосом на мобилу позвонят и спросят — а это точно вы? Мне вот звонят, кстати. Особенно если платеж в другую страну идет.

А уж сумму в 5к баксов в банке надо заранее разрешить! Не пробовали по карточке автомобиль купить к примеру? Агащаз! Даже при наличии всех подтверждающих документов — ногами в банк с паспортом.

Что остается по деньгам? Правильно, или фишинг или скан по диску. В обоих случаях получишь только номер карты, потом надо организовывать сложную схему с дропами и толпой подельников. Это уже чистый криминал и можно смело трясти банк — как это со счета сняли стотыщмульенов если дневной оборот по карте в три сотни? (кстати вот мы и узнали о максимальной сумме ущерба ;-))

Но ведь что интересно — предметно хакнуть какой-нибудь электронный магазин и украсть сразу 10 000 000 карт — гораздо дешевле и выгоднее, чем распространять до одури свой вирус и ожидать подобного улова! То есть сканит то оно сканит — но не это основная задача. Крупные ботнеты — до 500 000 компов, емнип, хорошо если найдет у каждого десятого. И вот эти жалкие 50 000 — это ради этого несколько лет работы? Да на спаме больше заработать можно.

Информация.

Не, всем понятно — что на рабочем компе есть много всего. Решения, контакты, клиенты, и много чего еще. Но вот в чем загвоздка — продать это все можно только если точно знать кто я такой и с кем я работаю. Австралийскому хакеру монопенисуально — есть у меня в контактах Джон Смит или нет, для него эта информация ценности не имеет. А для меня — имеет, этот Джон Смит мне денег платит за консультации. И не подозревает, что его конкурент Педро у меня тоже консультируется по тому же вопросу ;-)

Я ведь не в ЦРУ работаю, чтобы персонально за моим решением для портала АБЦ кто-то охотился. Да, могут быть утечки — но знать кому их продать гораздо важнее. И вот тут бороться с утечками будет не антивирус, а DLP. Спросите у дочки касперского инфовотча — они подробно расскажут и покажут, как внедряется эта DLP. Как строится модель угроз, как тренируется персонал, как обносится периметр, как меняются бизнес-процессы…

А что нам предлагает «кашперский инторнет секурити»? Защиту сферической домохозяйки в вакууме? Вот спасибо, вот порадовали ;-)

> задействования машинных ресурсов

А вот это правда.

Спам разослать, биткойны насчитать, заддосить небесплатно. Самое то. Имея ботнет в 100 000 компов, можно смело послать 1 млн спамов за раз, и хозяин-жертва даже не заметит, тьфу — сто килобайт трафика и пять ватт мощности. А владелец ботнета сто баксов уже заработал. И так — каждый день.

Вам все еще охота списать 2 у.е. с мобилы и половину отдать МТСу (мегафону, нужное подставить)? ;-)

Что-то пост как-то вырос непомерно, продолжение следует.

Information

Rating
Does not participate
Location
München, Bayern, Германия
Date of birth
Registered
Activity