Специалисты по кибербезопасности из компании 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)


  1. Wesha
    22.02.2019 02:29

    разработчики полностью отказались от поддержки формата ACE.

    Где-то грустно вздохнули те, кто надцать лет назад запаковал свои драгоценные файлы в архивы этого формата. Когда они полезут их открывать, их ждёт сюрприз.


    1. click0
      22.02.2019 03:20

      Еще есть PeaZip, поддерживающий ACE.


    1. LoadRunner
      22.02.2019 10:17

      А что, уже запретили скачивать предыдущие версии, где поддержка есть?


      1. Wesha
        22.02.2019 19:06

        Скачивать не запретили — просто они больше не развиваются, и неизвестно, будут ли они запускаться в Windows 2030.


  1. VitalKoshalew
    22.02.2019 03:21
    +1

    Стоит заметить, что на многих ресурсах упоминается возможность переименовать .ace в .rar и непатченный WinRAR такой архив откроет, так что нельзя полагаться на то, что вы увидите, что пришёл файл .ace и не будете его открывать — может прийти как раз .rar. Так что или ставить бету WinRAR или удалять WinRAR и ставить 7Zip.


    1. akhalat
      22.02.2019 06:35

      Стоит заметить, что на многих ресурсах упоминается возможность переименовать .ace в .rar и непатченный WinRAR такой архив откроет,


      Проверил ради интереса, winrar ругается на формат архива при таком переименовании, но всё-таки сам архив открывает, да.

      Так что или ставить бету WinRAR или удалять WinRAR

      Или просто вручную снести из своей версии винарара UNACEV2.DLL. В таком случае он ACE-архивы всё ещё открывает и содержимое показывает, но ничего распаковать уже будет не в состоянии.


  1. fmj
    22.02.2019 07:23

    Так себе уязвимость. Сам winrar же не выполняет произвольный код. А проблема с запуском извлеченных файлов решается правами, srp или applocker-ом.


    1. alexanster
      22.02.2019 07:48
      +1

      Ну кто из обычных пользователей будет этим страдать? Полмиллиарда установок — это же не только корпоративный сектор.


      1. fmj
        22.02.2019 11:24

        «Обычные пользователи», к сожалению, тупо сидят из-под админа(еще и с выключенным uac) и у них дырень в любом ПО = доступ ко всей системе.


    1. mayorovp
      22.02.2019 09:28
      +1

      А исполняемый файл распаковывать и не обязательно. Можно подменить какой-нибудь важный конфиг.

      Кстати, srp и applocker не спасают от программ на java, .net core, python, js, ruby, а также, возможно, от rust и go если ставить их в исходниках (разумеется, только если эти штуки уже установлены на компьютере).


      1. fmj
        22.02.2019 11:28
        -1

        А исполняемый файл распаковывать и не обязательно. Можно подменить какой-нибудь важный конфиг.

        Какой? Системные конфиги, например, перезаписать прав не хватит.

        Кстати, srp и applocker не спасают от программ на java, .net core, python, js, ruby

        Насчет js — ложь. java тоже можно добавить в список. С остальным дел не имел.


        1. mayorovp
          22.02.2019 12:05

          В какой список вы собрались добавлять java?


          1. fmj
            22.02.2019 12:07

            В список расширений srp. Также туда можно добавить js, чтобы wscript не выполнял его откуда попало.


            1. 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 тоже должна работать.


              1. 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.


                1. mayorovp
                  22.02.2019 13:41

                  В автозагрузку можно положить ярлык, а там внутрях уже прописать всё что нужно.


                  1. fmj
                    22.02.2019 13:50

                    ярлыки по-дефолту контролируются srp.


                    1. mayorovp
                      22.02.2019 13:55

                      И как это поможет? Напомню, ярлык на java.exe с параметрами -jar c:\trusted\baz.jar в автозагрузке должен работать, это важное корпоративное приложение!


                      1. fmj
                        22.02.2019 13:58
                        -1

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


                        1. mayorovp
                          22.02.2019 14:04

                          Вы не объяснили как будете отделять java -jar c:\trusted\foo.jar от java -jar c:\untrusted\bar.jar.


                          И почему вашему корпоративному приложению надо авто загружаться ярлыком?

                          Потому что производитель по-другому не умеет.


                          1. fmj
                            22.02.2019 14:05

                            Вы не объяснили как будете отделять java -jar c:\trusted\foo.jar от java -jar c:\untrusted\bar.jar


                            Вы это собрались в ярлыке прописывать или где?


                            1. mayorovp
                              22.02.2019 14:07

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


                              1. fmj
                                22.02.2019 14:10

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

                                Самим прописать автозагрузку через реестр, добавить в белый список ваш .jar по хешу или сертификату.


                                1. mayorovp
                                  22.02.2019 14:13

                                  Я всё еще не понимаю как вы собираетесь добавлять в список именно jar, а не java.exe


                                  1. fmj
                                    22.02.2019 14:14

                                    Просто добавляете правило(можно по сертификату ли хэшу) на ваш .jar файл.

                                    у нас java-по так и работает, потому что сохраняет в свой каталог и поэтому сидит не в prg files, а в appdata у пользователя.


                                    1. mayorovp
                                      22.02.2019 14:15

                                      … и как оно будет работать?


                                      1. fmj
                                        22.02.2019 14:19

                                        ?

                                        если нет в белом списке, то никак. Понятно, что не в случае запуска через, например, конструкции «java -jar …». Но эту строку надо еще через что-то запустить, а в статье просто помещение файла в автозагрузку.


                                        1. mayorovp
                                          22.02.2019 14:22

                                          Вы постоянно забываете, что обычные программы на Java могут быть запущены только через java.exe или javaw.exe


                                          1. fmj
                                            22.02.2019 14:26

                                            И? От запуска через «java -jar …» srp не спасет, но от запуска через автозагрузку спасет и ярлыки можно запретить. Понятно, что если вам приходится иметь дело с таким кривым софтом, который только через ярлыки в автозагрузке работает, то тут как-то все настроить и не получится.


                                            1. mayorovp
                                              22.02.2019 14:27

                                              Вот вы запретили ярлыки. Как теперь пользователь должен запускать программы?


                                              1. fmj
                                                22.02.2019 14:30

                                                можно симлинки сделать.


                                                1. mayorovp
                                                  22.02.2019 14:35

                                                  Симлинк на java -jar ...? Увы, работать не будет.


                                                  1. fmj
                                                    22.02.2019 14:38
                                                    -1

                                                    на сам .jar файл.


                                                    1. mayorovp
                                                      22.02.2019 14:43

                                                      А как оно будет работать-то?


                                                      1. fmj
                                                        22.02.2019 15:41

                                                        с вылетом ). ок, не прав я насчет явы и симлинков. Но от описанного в статье можно защититься тупо в каталоге автозагрузки отобрать права на запись. И показанное в видео не пройдет.


              1. kav4ik
                22.02.2019 22:34

                Кажись поможет admilink


        1. mayorovp
          22.02.2019 14:15

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


          1. fmj
            22.02.2019 14:20

            Даже если на расширения тоже белый список через групповую политику?


    1. Duss
      22.02.2019 10:00

      Вспомните, когда последний раз сами распаковывали какой нибудь архив (просто посмотреть, не пытаясь что то из него запустить), скачанный с любого сайта и представьте, что он мог незаметно поместить что то в автозагрузку.
      (Причём владелец сайта может быть и не в курсе о происходящем, а сайт вполне себе безобидный)
      Лично я ужаснулся и пошлёт сканировать систему.

      Ps А Вы сами пользуетесь указанными программами?

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


      1. fmj
        22.02.2019 11:32
        -1

        Вспомните, когда последний раз сами распаковывали какой нибудь архив (просто посмотреть, не пытаясь что то из него запустить), скачанный с любого сайта и представьте, что он мог незаметно поместить что то в автозагрузку.

        Ну поместит. Дальше то что?

        А Вы сами пользуетесь указанными программами?

        WinRAR-ом? нет. Или вы про srp с applocker-ом? srp активно пользуюсь.
        я просто не понимаю паники: если бы, например, сам WinRAR начинал выполнять произвольный код, то да — дырень.

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

        То что, нет апдейтов, это очень плохо, согласен.


      1. amarao
        22.02.2019 12:21

        apt-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

        (ещё раз о пользе дистрибутивов по сравнению с "скачал исполняемый файл, установил и забыл").


  1. we1
    22.02.2019 09:40
    -2

    А я несколько лет назад поставил бесплатный китайский «клон» KuaiZip, и он меня очень даже радует.


  1. DrGluck07
    22.02.2019 09:42
    +1

    Хм, полмиллиарда пользователей, цена от 20 долларов… Да эти парни миллиардеры!


    1. NickViz
      22.02.2019 11:03

      угу угу. вы лично (если пользуетесь) уже купили, да? :-) ну вот и остальные так же.


      1. DrGluck07
        22.02.2019 12:59

        Много лет пользуюсь 7zip. Если бы нужно было обязательно использовать именно WinRar, то купил бы. Но обычно стараюсь найти бесплатное/свободное решение.
        Правда вынужден признаться, что в лихие бандитские времена (в конце 90-х начале 2000-х) я часто снимал защиту с винрара, винзипа, винампа, и т.д. Снимал ASProtect и прочие защиты. Чисто для себя, в качестве тренировки, никогда это не распространял. Сейчас эти умения периодически пригождаются в моей работе.


        1. JerleShannara
          22.02.2019 15:57

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


          1. DrGluck07
            22.02.2019 16:49

            Для тренировки же, чтоб он себя лицензионным считал. Мне было вообще всё равно что кракать. Я был молод и мне нужны были день безумные умения. Как ни странно, это всё весь помогает когда нужно что-то отладить на железе, а из всех возможностей один светодиод и бинарник прошивки.


  1. ainoneko
    22.02.2019 10:16
    -1

    Так вот как «RAR используют козлы»?


    1. Andy_U
      22.02.2019 12:40
      +1

      O, кто-то еще помнит FIDO :)


  1. Vitalley
    22.02.2019 11:23

    Теперь еще один довод появился, почему не планирую на другие ОС — часть исходников то потеряна


  1. Mingun
    22.02.2019 17:21

    Остаётся понять, зачем сегодня нужен WinRar, если есть простой, удобный, бесплатный и свободный 7z? Который и жмёт к тому же (немного, конечно, но всё же) чуть лучше.


    1. Mur81
      22.02.2019 18:59
      +1

      Например у меня под WinRAR написаны хитрые скрипты для архивации. Не знаю можно ли работать с 7-zip из командной строки (наверняка да), но мне просто тупо лень их переписывать.
      В остальном действительно не понятно зачем он нужен. Тем более если еще быть честным и покупать его — он стоит $29 + НДС. Очень нарядно скажу я вам.


      1. Mingun
        22.02.2019 19:16

        Однозначно можно. Я уже давно все манипуляции с архивами провожу из Far'а и до билда 1722 эти манипуляции проводились через встроенный в него плагин Multiarc, а он как раз и работал через 7z посредством передачи ему команд через командную строку (в новых Far'ах работа с архивами ведётся «напрямую» (плагин arclite) через библиотеку 7z.dll, так что надобность в отдельном exe'шнике отпала).


    1. stalinets
      23.02.2019 13:43

      Ну я вот часто сталкиваюсь с таким багом. Открываю архив с фотками в 7-zip и двойным кликом хочу открыть какую-нибудь фотку. Под капотом она сначала распаковывается куда-то, а потом винда открывает её в программе по умолчанию.
      Так вот, в случае 7-zip открывается просмотрщик картинок windows, но фотка в нём не открывается. Чтобы посмотреть, нужно сначала перетащить фотку из архива в какую-нибудь папку и оттуда уже руками открыть. Это напрягает.
      А если открыть архив в WinRar, то по двойному клику картинки нормально открываются.
      Сталкивался с этим на Win7 и Win10.

      И ещё у 7-zip бывает корявая работа с большими и нестандартно упакованными архивами. Например, у меня личные фотки и документы запакованы в большие многогигабайтные rar-архивы, solid-типа, под паролем, с добавленной инфой для восстановления и прочим.
      WinRar, в котором они создавались, открывает без проблем (ну, немного потупит, читая десятки тысяч файлов в большом архиве). А вот 7-zip может не справиться. Или вылетит, или зависнет, или ещё что-то.


  1. kav4ik
    22.02.2019 21:36
    +1

    Теперь мне понятно, почему на корп. почту приходит спам с архивами *.ace. П.С. уже как года два приходит.


  1. Maccimo
    24.02.2019 01:21

    Отличный пример того, почему статьи следует читать в оригинале.


    Здесь — концентрированная выжимка желтизны (19 лет!, пиццот мильёнов жертв!, мы все умрём!!11!)


    В оригинале (https://research.checkpoint.com/extracting-code-execution-from-winrar/) — довольно подробное описание того, как эта уязвимость была найдена.