The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Зафиксирована подстановка вредоносного кода в Ruby-пакет Strong_password

08.07.2019 14:07

В опубликованном 25 июня выпуске gem-пакета Strong_password 0.7 выявлено вредоносное изменение (CVE-2019-13354), загружающее и выполняющее подконтрольный неизвестному злоумышленнику внешний код, размещённый на сервисе Pastebin. Общее число загрузок проекта составляет 247 тысяч, а версии 0.6 - около 38 тысяч. Для вредоносной версии число загрузок указано 537, но не ясно насколько оно соответствует действительности с учётом того, что данный выпуск уже удалён с Ruby Gems.

Библиотека Strong_password предоставляет средства для проверки надёжности пароля, задаваемого пользователем при регистрации. Среди использующих Strong_password пакетов think_feel_do_engine (65 тысяч загрузок), think_feel_do_dashboard (15 тысяч загрузок) и superhosting (1.5 тыс). Отмечается, что вредоносное изменение было добавлено неизвестным, перехватившим у автора контроль за репозиторием.

Вредоносный код был добавлен только на RubyGems.org, Git-репозиторий проекта не пострадал. Проблема была выявлена после того, как один из разработчиков, использующий в своих проектах Strong_password, начал разбираться, почему в репозитории последнее изменение было добавлено более 6 месяцев назад, но на RubyGems появился новый релиз, опубликованный от лица нового мэйтенера, про которого никто до этого ничего не слышал.

Атакующий мог организовать выполнение произвольного кода на серверах, использующих проблемную версию Strong_password. В момент обнаружения проблемы с Pastebin загружался скрипт для организации запуска любого кода, переданного клиентом через Cookie "__id" и закодированного при помощи метода Base64. Вредоносный код также отправлял параметры хоста, на который установлен вредоносный вариант Strong_password, на подконтрольный злоумышленнику сервер.



  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: В Ruby-библиотеке bootstrap-sass выявлен бэкдор
  3. OpenNews: В RubyGems устранено 7 уязвимостей
  4. OpenNews: В RubyGems устранена уязвимость, позволявшая подменять файлы в репозитории
  5. OpenNews: Взлом инфраструктуры Docker Hub с возможной компрометацией связанных репозиториев
  6. OpenNews: Бывший техдиректор NPM развивает распределённый репозиторий пакетов Entropic
Лицензия: CC-BY
Тип: Проблемы безопасности
Ключевые слова: ruby, gem, backdoor
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (31) Ajax | 1 уровень | Линейный | Раскрыть всё | RSS
  • 1.1, Аноним (1), 14:14, 08/07/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    В похожих новостях только новости об уязвимостях в Ruby:
    2. OpenNews: В Ruby-библиотеке bootstrap-sass выявлен бэкдор
    3. OpenNews: В RubyGems устранено 7 уязвимостей
    4. OpenNews: В RubyGems устранена уязвимость, позволявшая подменять файлы в репозитории
     
     
  • 2.2, Аноним (2), 14:36, 08/07/2019 [^] [^^] [^^^] [ответить]  
  • +24 +/
    К новости об уязвимости в Ruby в похожих новостях только новости об уязвимостях в Ruby.
    Удивительно, правда?
     
     
  • 3.4, fontpath (?), 15:12, 08/07/2019 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Это не уязвимость, а подстановка вредоносного кода в стороннюю библиотеку.
    Ни Ruby, как язык, ни Ruby, как какая-либо конкретная реализация интепретатора тут не при чём.

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

     
     
  • 4.24, gogo (?), 12:37, 09/07/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Добровольный аудит после всего 547 загрузок. Это ведь не тысячи  и миллионы.
    Удачи, в общем. Жриты свои гемы с нодами и наслаждайтесь жизнью... )
     
     
  • 5.29, fontpath (?), 09:28, 10/07/2019 [^] [^^] [^^^] [ответить]  
  • +/
    А причём тут жрать? Вы хотите самолично аудировать всё, что попадает в публичный репозиторий куда может запушить библиотеку абсолютно каждый?

    Даже App Store и Google Play с их автоматическим анализом и ручным аппрувом всё равно проскакивают вредоносные программы. Это неизбежно.

     
  • 2.3, Аноним (3), 14:50, 08/07/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Какие теги - такие и похожести
     

  • 1.5, Аноним (5), 15:13, 08/07/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    >http://smiley.zzz.com.ua
    >.ua

    Мы все знаем, кого в этом винить!

     
     
  • 2.6, Ordu (ok), 15:51, 08/07/2019 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Хакеров Кремля?
     
     
  • 3.8, Annoynymous (ok), 17:12, 08/07/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    А есть какие-то другие хакеры?
     
     
  • 4.11, Аноним (11), 18:40, 08/07/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Есть финский разработчик ядра. Он своим руткитом все мобильники заразил.
     
     
  • 5.19, Аноним (19), 22:10, 08/07/2019 [^] [^^] [^^^] [ответить]  
  • +/
    У него русские корни как у потомка Российской Империи. Как ни крути, всё равно русские хакеры.
     
     
  • 6.21, Аноним3 (?), 01:14, 09/07/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    заполонили всю сеть хакерами))) даже когда компов было раз и обчелся и то русские...))))
     
  • 2.13, Ilya Indigo (ok), 19:14, 08/07/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Любой домен третьего уровня можно зарегистрировать из любой точки мира, где есть интернет!
     
     
  • 3.23, Michael Shigorin (ok), 11:45, 09/07/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Нет.
     

  • 1.7, Аноним (7), 16:25, 08/07/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Вредоносный код был добавлен только на RubyGems.org, Git-репозиторий проекта не пострадал

    Почему бы вообще не сделать анальную привязку пакетных репозиториев к гитовым? Скажем, пушить в пакетный может только специально обученный бот, который самостоятельно выкачает исходники из гитхаба/гитлаба и скомпилит их в бинарь? А разраб может лишь инициировать это, ничего напрямую в рубигемс не аплоадя.

     
     
  • 2.9, KonstantinB (ok), 18:12, 08/07/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Обычно так и делается. Но у бота же будет API secret или ssh-ключик. И наверняка разработчик его где-нибудь да сохранил на всякий случай.
     
  • 2.10, Аноним (11), 18:39, 08/07/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    А почему бы не запретить внешние пакеты? Анально привязав к разработчику языка. Если что то надо пиши разработчику он запилит запушит и выпустит релиз.
     
     
  • 3.14, Аноним (7), 19:43, 08/07/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Странная аналогия. Ожидаемым является, что то, что на гитхабе - то и в рубигемсах/нпм/whatever. НЕожидаемым является, когда они содержат разный код (или когда в пакет в репе собран из чего-то отличного от того, что лежит в гитхабе).
     
  • 2.31, Аноним (31), 14:37, 15/07/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Для этого нужен житейский опыт + образование.

    Вместо творчества в захлёб в молодости.

    Примерно таг. )

     

  • 1.12, JL2001 (ok), 19:08, 08/07/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    как левый "мантейнер" смог опубликовать пакет?
    или он не левый, а нормальный, только злонамеренный?
     
  • 1.15, Онаним (?), 20:41, 08/07/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ой. Опять через хипста-репу троянчег раздали. Неожиданно. Внезапно.
     
  • 1.16, Аноним (16), 21:17, 08/07/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Никогда такого не было, и вот опять!
    Судя по количеству загрузок будет хорошая жатва.
     
     
  • 2.22, Аноним3 (?), 03:13, 09/07/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    никогда говоришь и вот опять?)))) черт да сколько ж раз было это "никогда"?)))
     

  • 1.17, Аноним (17), 21:28, 08/07/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Что за шрифт на скрине?
     
     
  • 2.27, Аноним84701 (ok), 18:26, 09/07/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Что за шрифт на скрине?

    Monospace.
    Хотите увидеть более приятный шрифт, смотрите оригинал:
    https://withatwist.dev/strong-password-rubygem-hijacked.html

    ИО КО

     

  • 1.18, Kuromi (ok), 21:42, 08/07/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    И сейчасконечно же выяснится, что причина в том что нет никакой двухфакторной авторизации (это прям клише уже какое-то).
     
     
  • 2.20, Аноним (20), 23:11, 08/07/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > двухфакторной авторизации

    Не авторизации, а аутентификации, двоечник.

     
     
  • 3.30, Анонимус2 (?), 10:44, 10/07/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Где-то двухфакторная аутентификация, а где-то - вполне себе авторизация. Двоечники это те кто их путают и считают что бывает только одно из них.
     

  • 1.25, Аноним (25), 16:55, 09/07/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Strong_password

    Not so strong

     
  • 1.26, Anixx (?), 17:32, 09/07/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну вот, причина никогда не использовать сильный пароль.
     
  • 1.28, Аноним (28), 18:38, 09/07/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    ГЫЫЫ
    Щас вот загрузил себе шаблон  yii advanced на php. Там папка есть такая vendor. В нее все зависимости (ну то есть сторонние библиотеки) ставяться. Посмотрел на размер: 68 мегабайт. И это все исходный код. Причем я себе еще ничего не подключал, только базовый комплект.
    Ну я вот чет статью прочитал и задумался: есть ли в этой папке "ЗЛОЙ умысел" или нет.
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    MIRhosting
    Inferno Solutions
    Hosting by Ihor
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2019 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру