Специалисты по кибербезопасности из компании Check Point обнаружили серьезную уязвимость в архиваторе WinRar. Затем они же показали, как при помощи этой уязвимости можно распаковать файл в произвольное место — совсем не то, которое указывает пользователь.
Ну а поскольку пользователей архиватора около полумиллиарда, то эта уязвимость угрожает всем. Стоит отметить, что проблема, о которой идет речь, существует уже 19 лет, уязвимость за это время никто не закрыл.
Специалисты, которые обнаружили проблему, сначала уведомили разработчиков WinRar и те закрыли «дыру». И только после этого представители Check Point изложили детали в сети, рассказав о технических подробностях уже ликвидированной уязвимости.
Как оказалось, проблема связана с библиотекой UNACEV2.DLL. Она входит в состав дистрибутива практически всех версий архиватора уже очень много лет. Последний раз обновление библиотеки выполнялось в 2005 году. Отвечает она за распаковку архивов в формате ACE (которые, к слову, встречаются не так и часто). Понятно, что за время, прошедшее с момента обновления библиотеки в мире информационных технологий произошло много всего, а скрытую уязвимость смогли обнаружить без особых проблем.
Для того, чтобы распаковать свой файл в произвольное место требуется сформировать архив ACE. Лишь этот путь позволит обойти указанную пользователем директорию распаковки. Специалисты по информационной безопасности смогли разместить зловредное ПО в директории Startup, откуда вредонос будет запускаться при каждой загрузке системы.
Проблема не единичная, специалисты обнаружили сразу несколько уязвимостей (CVE-2018-20250, CVE-2018-20251, CVE-2018-20252 и CVE-2018-20253). Но их ликвидировали в релизе WinRAR 5.70 Beta 1. Стоит отметить, что решение было оригинальным. В связи с тем, что исходный код библиотеки UNACEV2.DLL оказался утрачен много лет назад, его решили не возобновлять. Никто не проводил реверс-инжиниринг библиотеки, разработчики полностью отказались от поддержки формата ACE.
Создатели WinRar посоветовали пользователям установить обновление как можно быстрее, кроме того, специалисты по информационной безопасности рекомендуют не открывать архивы ACE, хотя бы те, что получены от незнакомых отправителей. Вполне может быть, что злоумышленники, которые узнали о проблеме, станут распространять зараженные архивы, что приведет к заражению большого количества пользовательских машин.
Сейчас неизвестно, использовалась ли эта уязвимость злоумышленниками ранее или нет. Но, как и говорилось выше, полмиллиарда пользователей архиватора под угрозой.
Стоит отметить, что уязвимости нулевого дня, подобные этой, охотно скупают компании, которые занимаются приобретением технологий для различных государств и военных. Одна из организаций, которая вполне официально занимается скупкой уязвимостей и эксплоитов, является Zerodium. Относительно недавно она повысила награду за работающие инструменты взлома WhatsApp и iMessage, с нескольких сотен тысяч долларов США до $1 млн.
«Приложения по обмену сообщениями, включая WhatsApp, иногда работают в качестве коммуникационного канала для злоумышленников, а шифрование усложняет получение необходимых данных спецслужбами», — говорит основатель Zerodium Чауки Бекрар.
Клиентами этой организации были такие государственные подразделения, как Equation Group (FiveEyes, Tilded Team) и Animal Farm (Snowglobe). Стоит отметить, что в Zerodium и другие подобные компании обращаются не только покупатели, но и продавцы — в том числе, специалисты по кибербезопасности, желающие продать обнаруженную уязвимость задорого. Да, многие поставщики программных и аппаратных продуктов имеют собственную баунти-программу, но здесь есть две проблемы. Первая — вознаграждение выплачивается далеко не всегда. Вторая — размер вознаграждения баунти-программы и Zerodium могут отличаться в разы, причем далеко не в пользу программ.
Комментарии (56)
VitalKoshalew
22.02.2019 03:21+1Стоит заметить, что на многих ресурсах упоминается возможность переименовать .ace в .rar и непатченный WinRAR такой архив откроет, так что нельзя полагаться на то, что вы увидите, что пришёл файл .ace и не будете его открывать — может прийти как раз .rar. Так что или ставить бету WinRAR или удалять WinRAR и ставить 7Zip.
akhalat
22.02.2019 06:35Стоит заметить, что на многих ресурсах упоминается возможность переименовать .ace в .rar и непатченный WinRAR такой архив откроет,
Проверил ради интереса, winrar ругается на формат архива при таком переименовании, но всё-таки сам архив открывает, да.
Так что или ставить бету WinRAR или удалять WinRAR
Или просто вручную снести из своей версии винарара UNACEV2.DLL. В таком случае он ACE-архивы всё ещё открывает и содержимое показывает, но ничего распаковать уже будет не в состоянии.
fmj
22.02.2019 07:23Так себе уязвимость. Сам winrar же не выполняет произвольный код. А проблема с запуском извлеченных файлов решается правами, srp или applocker-ом.
alexanster
22.02.2019 07:48+1Ну кто из обычных пользователей будет этим страдать? Полмиллиарда установок — это же не только корпоративный сектор.
fmj
22.02.2019 11:24«Обычные пользователи», к сожалению, тупо сидят из-под админа(еще и с выключенным uac) и у них дырень в любом ПО = доступ ко всей системе.
mayorovp
22.02.2019 09:28+1А исполняемый файл распаковывать и не обязательно. Можно подменить какой-нибудь важный конфиг.
Кстати, srp и applocker не спасают от программ на java, .net core, python, js, ruby, а также, возможно, от rust и go если ставить их в исходниках (разумеется, только если эти штуки уже установлены на компьютере).fmj
22.02.2019 11:28-1А исполняемый файл распаковывать и не обязательно. Можно подменить какой-нибудь важный конфиг.
Какой? Системные конфиги, например, перезаписать прав не хватит.
Кстати, srp и applocker не спасают от программ на java, .net core, python, js, ruby
Насчет js — ложь. java тоже можно добавить в список. С остальным дел не имел.mayorovp
22.02.2019 12:05В какой список вы собрались добавлять java?
fmj
22.02.2019 12:07В список расширений srp. Также туда можно добавить js, чтобы wscript не выполнял его откуда попало.
mayorovp
22.02.2019 12:51Каких таких расширений? Объясните, какое такое "расширение" srp позволит сделать так, чтобы команда
java -jar c:\trusted\foo.jar
работала, а командаjava -jar c:\untrusted\bar.jar
— нет?
Дополнительное условие: команда
java -jar c:\trusted\baz.jar c:\untrusted\data.txt
тоже должна работать.fmj
22.02.2019 13:29Каких таких расширений?
файловых.
чтобы команда java -jar c:\trusted\foo.jar работала, а команда java -jar c:\untrusted\bar.jar — нет?
Дополнительное условие: команда java -jar c:\trusted\baz.jar c:\untrusted\data.txt тоже должна работать.
В статье пишут про помещение в автозагрузку — от этого srp спасает(не запускается и пишет в лог). Как вы собрались помещением файла в каталог вызвать выше написанный код(java -jar /****/)?
Если бы дырень была, в том, что код выполнялся в самом WinRAR, то тут ничего из мною перечисленного бы не помогло.
P.S. если кто-то использует srp, отбирайте права у пользователей на выполнение mshta.mayorovp
22.02.2019 13:41В автозагрузку можно положить ярлык, а там внутрях уже прописать всё что нужно.
fmj
22.02.2019 13:50ярлыки по-дефолту контролируются srp.
mayorovp
22.02.2019 13:55И как это поможет? Напомню, ярлык на
java.exe
с параметрами-jar c:\trusted\baz.jar
в автозагрузке должен работать, это важное корпоративное приложение!fmj
22.02.2019 13:58-1Добавьте его(ваше приложение) в разрешающий список по хэшу или сертификату. И почему вашему корпоративному приложению надо авто загружаться ярлыком?
mayorovp
22.02.2019 14:04Вы не объяснили как будете отделять
java -jar c:\trusted\foo.jar
отjava -jar c:\untrusted\bar.jar
.
И почему вашему корпоративному приложению надо авто загружаться ярлыком?
Потому что производитель по-другому не умеет.
fmj
22.02.2019 14:05Вы не объяснили как будете отделять java -jar c:\trusted\foo.jar от java -jar c:\untrusted\bar.jar
Вы это собрались в ярлыке прописывать или где?mayorovp
22.02.2019 14:07В ярлыке. А вы что, собрались считать хеш у ярлыка? Нет, это не сработает: ярлык у корпоративного приложения генерируется при установке и каждом обновлении, замаетесь каждый раз новый хеш подсчитывать.
fmj
22.02.2019 14:10В ярлыке. А вы что, собрались считать хеш у ярлыка? Нет, это не сработает: ярлык у корпоративного приложения генерируется при установке и каждом обновлении, замаетесь каждый раз новый хеш подсчитывать.
Самим прописать автозагрузку через реестр, добавить в белый список ваш .jar по хешу или сертификату.mayorovp
22.02.2019 14:13Я всё еще не понимаю как вы собираетесь добавлять в список именно jar, а не java.exe
fmj
22.02.2019 14:14Просто добавляете правило(можно по сертификату ли хэшу) на ваш .jar файл.
у нас java-по так и работает, потому что сохраняет в свой каталог и поэтому сидит не в prg files, а в appdata у пользователя.mayorovp
22.02.2019 14:15… и как оно будет работать?
fmj
22.02.2019 14:19?
если нет в белом списке, то никак. Понятно, что не в случае запуска через, например, конструкции «java -jar …». Но эту строку надо еще через что-то запустить, а в статье просто помещение файла в автозагрузку.mayorovp
22.02.2019 14:22Вы постоянно забываете, что обычные программы на Java могут быть запущены только через java.exe или javaw.exe
fmj
22.02.2019 14:26И? От запуска через «java -jar …» srp не спасет, но от запуска через автозагрузку спасет и ярлыки можно запретить. Понятно, что если вам приходится иметь дело с таким кривым софтом, который только через ярлыки в автозагрузке работает, то тут как-то все настроить и не получится.
Duss
22.02.2019 10:00Вспомните, когда последний раз сами распаковывали какой нибудь архив (просто посмотреть, не пытаясь что то из него запустить), скачанный с любого сайта и представьте, что он мог незаметно поместить что то в автозагрузку.
(Причём владелец сайта может быть и не в курсе о происходящем, а сайт вполне себе безобидный)
Лично я ужаснулся и пошлёт сканировать систему.
Ps А Вы сами пользуетесь указанными программами?
Pss. Хуже всего, что вин пар не распространяет апдейты на архиватор, т.е. в безопастности только те, кто сам зайдёт на их сайт и скачать новую версию. А архиватор, это то, что поставил и забыл.fmj
22.02.2019 11:32-1Вспомните, когда последний раз сами распаковывали какой нибудь архив (просто посмотреть, не пытаясь что то из него запустить), скачанный с любого сайта и представьте, что он мог незаметно поместить что то в автозагрузку.
Ну поместит. Дальше то что?
А Вы сами пользуетесь указанными программами?
WinRAR-ом? нет. Или вы про srp с applocker-ом? srp активно пользуюсь.
я просто не понимаю паники: если бы, например, сам WinRAR начинал выполнять произвольный код, то да — дырень.
Хуже всего, что вин пар не распространяет апдейты на архиватор, т.е. в безопастности только те, кто сам зайдёт на их сайт и скачать новую версию. А архиватор, это то, что поставил и забыл.
То что, нет апдейтов, это очень плохо, согласен.
amarao
22.02.2019 12:21apt-cache policy unrar unrar: Installed: 1:5.6.6-1 Candidate: 1:5.6.6-1 Version table: *** 1:5.6.6-1 500 500 http://archive.ubuntu.com/ubuntu disco/multiverse amd64 Packages 100 /var/lib/dpkg/status
(ещё раз о пользе дистрибутивов по сравнению с "скачал исполняемый файл, установил и забыл").
we1
22.02.2019 09:40-2А я несколько лет назад поставил бесплатный китайский «клон» KuaiZip, и он меня очень даже радует.
DrGluck07
22.02.2019 09:42+1Хм, полмиллиарда пользователей, цена от 20 долларов… Да эти парни миллиардеры!
NickViz
22.02.2019 11:03угу угу. вы лично (если пользуетесь) уже купили, да? :-) ну вот и остальные так же.
DrGluck07
22.02.2019 12:59Много лет пользуюсь 7zip. Если бы нужно было обязательно использовать именно WinRar, то купил бы. Но обычно стараюсь найти бесплатное/свободное решение.
Правда вынужден признаться, что в лихие бандитские времена (в конце 90-х начале 2000-х) я часто снимал защиту с винрара, винзипа, винампа, и т.д. Снимал ASProtect и прочие защиты. Чисто для себя, в качестве тренировки, никогда это не распространял. Сейчас эти умения периодически пригождаются в моей работе.JerleShannara
22.02.2019 15:57А зачем с винрара было снимать защиты, онж как и тотал командер всего-то просил купить, особо ничего не вырезая (кроме подписей архивов).
DrGluck07
22.02.2019 16:49Для тренировки же, чтоб он себя лицензионным считал. Мне было вообще всё равно что кракать. Я был молод и мне нужны были
деньбезумные умения. Как ни странно, это всё весь помогает когда нужно что-то отладить на железе, а из всех возможностей один светодиод и бинарник прошивки.
Vitalley
22.02.2019 11:23Теперь еще один довод появился, почему не планирую на другие ОС — часть исходников то потеряна
Mingun
22.02.2019 17:21Остаётся понять, зачем сегодня нужен WinRar, если есть простой, удобный, бесплатный и свободный 7z? Который и жмёт к тому же (немного, конечно, но всё же) чуть лучше.
Mur81
22.02.2019 18:59+1Например у меня под WinRAR написаны хитрые скрипты для архивации. Не знаю можно ли работать с 7-zip из командной строки (наверняка да), но мне просто тупо лень их переписывать.
В остальном действительно не понятно зачем он нужен. Тем более если еще быть честным и покупать его — он стоит $29 + НДС. Очень нарядно скажу я вам.Mingun
22.02.2019 19:16Однозначно можно. Я уже давно все манипуляции с архивами провожу из Far'а и до билда 1722 эти манипуляции проводились через встроенный в него плагин Multiarc, а он как раз и работал через 7z посредством передачи ему команд через командную строку (в новых Far'ах работа с архивами ведётся «напрямую» (плагин arclite) через библиотеку
7z.dll
, так что надобность в отдельномexe
'шнике отпала).
stalinets
23.02.2019 13:43Ну я вот часто сталкиваюсь с таким багом. Открываю архив с фотками в 7-zip и двойным кликом хочу открыть какую-нибудь фотку. Под капотом она сначала распаковывается куда-то, а потом винда открывает её в программе по умолчанию.
Так вот, в случае 7-zip открывается просмотрщик картинок windows, но фотка в нём не открывается. Чтобы посмотреть, нужно сначала перетащить фотку из архива в какую-нибудь папку и оттуда уже руками открыть. Это напрягает.
А если открыть архив в WinRar, то по двойному клику картинки нормально открываются.
Сталкивался с этим на Win7 и Win10.
И ещё у 7-zip бывает корявая работа с большими и нестандартно упакованными архивами. Например, у меня личные фотки и документы запакованы в большие многогигабайтные rar-архивы, solid-типа, под паролем, с добавленной инфой для восстановления и прочим.
WinRar, в котором они создавались, открывает без проблем (ну, немного потупит, читая десятки тысяч файлов в большом архиве). А вот 7-zip может не справиться. Или вылетит, или зависнет, или ещё что-то.
kav4ik
22.02.2019 21:36+1Теперь мне понятно, почему на корп. почту приходит спам с архивами *.ace. П.С. уже как года два приходит.
Maccimo
24.02.2019 01:21Отличный пример того, почему статьи следует читать в оригинале.
Здесь — концентрированная выжимка желтизны (19 лет!, пиццот мильёнов жертв!, мы все умрём!!11!)
В оригинале (https://research.checkpoint.com/extracting-code-execution-from-winrar/) — довольно подробное описание того, как эта уязвимость была найдена.
Wesha
Где-то грустно вздохнули те, кто надцать лет назад запаковал свои драгоценные файлы в архивы этого формата. Когда они полезут их открывать, их ждёт сюрприз.
click0
Еще есть PeaZip, поддерживающий ACE.
LoadRunner
А что, уже запретили скачивать предыдущие версии, где поддержка есть?
Wesha
Скачивать не запретили — просто они больше не развиваются, и неизвестно, будут ли они запускаться в Windows 2030.