Уязвимость PrintDemon затрагивает все версии Windows с 1996 года

Уязвимость PrintDemon затрагивает все версии Windows с 1996 года

Уязвимость PrintDemon затрагивает все версии Windows с 1996 года

Два исследователя в области кибербезопасности раскрыли информацию об уязвимости в службе печати Windows. Примечательно, что эта брешь затрагивает все версии операционной системы, начиная с самых древних — Windows NT 4 (релиз состоялся в 1996 году).

Проблема безопасности получила имя PrintDemon, она затрагивает основной компонент Windows Print Spooler, отвечающий за управление операциями печати.

Сама уязвимая служба ОС призвана отправлять данные на печать соответствующему устройству, подключённому через порт USB.

В своём отчёте специалисты утверждают, что выявленная уязвимость позволяет получить контроль над внутренним механизмом Printer Spooler. К счастью, баг нельзя использовать для удалённой атаки по сети.

PrintDemon является типичной брешью локального повышения прав в системе (LPE). На деле это значит, что атакующий с низкими привилегиями может получить права администратора с помощью простой команды PowerShell.

Опасность дыры в службе печати обусловлена её доступностью любому приложению, которое хочет распечатать файл. Никаких ограничений при этом операционная система не накладывает.

Таким образом, злоумышленник может создать задание на печать, в ходе этого процесса будет задействован файл (например, локальный DLL). Далее атакующий запускает печать, специально приводит к сбою Print Spooler и позволяет процессу возобновиться.

В этом случае операция уже будет наделена правами SYSTEM, которые позволят перезаписывать любой файл на компьютере. Эксперты с помощью обнаруженной уязвимости установили в тестовую систему бэкдор. На GitHub, кстати, доступен PoC-код эксплойта.

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

Зачем Яндекс Go создал отдельный язык для расчёта стоимости поездок

Цена поездки в Яндекс Go — это не расстояние, умноженное на минуты и километры. В расчёт вмешиваются геозоны, спрос, скидки, платные дороги, дополнительные остановки и требования вроде перевозки кота, велосипеда или лыж. Чтобы управлять этим хозяйством без бесконечных деплоев, разработчики вынесли алгоритм ценообразования из кода сервиса в собственный язык.

Как объяснили разработчики в статье на Хабре, прайсинг работает не только при заказе машины.

Он пересчитывает стоимость при смене маршрута или способа оплаты, завершении поездки, обращении в поддержку и проверке данных аналитиками. Цена при этом может быть фиксированной, интервальной или считаться по таксометру.

 

Сначала сервисы параллельно собирают параметры поездки: тарифную категорию, геозоны, скидки, повышенный спрос и дополнительные услуги. Зависимости между источниками выстраиваются в граф, а запросы выполняются асинхронно на базе userver. Если некритичный источник не ответил, весь расчёт не падает.

 

Сам алгоритм раньше можно было бы держать в C++, но он меняется в среднем дважды в неделю. Выкатка сервиса на 50 подов занимает около 40 минут, а лес динамических конфигов быстро превратил бы код в музей условных операторов.

Поэтому Яндекс разработал собственный DSL. В нём есть условия, функции, неизменяемые значения и fold вместо циклов. Правила собираются в последовательную цепочку: каждое преобразование получает текущую цену и параметры, а возвращает новый результат с метаданными. Грамматику описали через ANTLR 4, а верификатор Z3 проверяет, что программа не выдаст некорректную цену.

 

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

 

В итоге прайсинг превратился в отдельную платформу, которой уже пользуются Такси, Доставка и сервис зарядки электромобилей.

RSS: Новости на портале Anti-Malware.ru