Компания DrWeb сообщила (http://news.drweb.ru/show/?i=10140&c=5&lng=ru&p=0) о выявлении нового вредоносного ПО Linux.Lady.1 (http://vms.drweb.ru/virus/?_is=1&i=8400823), поражающего серверы на базе Linux с установленными незащищёнными конфигурациями СУБД Redis. Linux.Lady.1 написан на языке программирования Go. После получения контроля (https://www.opennet.ru/opennews/art.shtml?num=44766) над уязвимым сервером Redis программа устанавливается в систему и используется злоумышленниками как звено в кластере майнинга биткоинов.Вредоносное ПО также может заниматься сбором и отправкой информации со скомпрометированного сервера и организовывать атаки на другие системы с целью расширения ареала своего распространения. После проникновения в систему Linux.Lady.1 устанавливает себя под видом исполняемого файла /usr/sbin/ntp, создаёт сервис /etc/systemd/system/ntp.service для автоматического запуска, добавляет в ~/.ssh/authorized_keys* свой SSH-ключ и устанавливает в /etc/ssh/sshd_config возможность входа по SSH с правами root.
URL: http://news.drweb.ru/show/?i=10140&c=5&lng=ru&p=0
Новость: https://www.opennet.ru/opennews/art.shtml?num=44948
> создаёт сервис /etc/systemd/system/ntp.service для автоматического запускаХорошо что у меня не systemd.
Ну ничего, скоро вебовцы специально для тебя напишут Linux.Man.1 с установкой прямиком в /proc/Documents and Settings/
> Ну ничего, скоро вебовцы специально для тебя напишут Linux.Man.1 с установкой прямиком
> в /proc/Documents and Settings/Фанаты Учения Рыжего Пророка такие фанаты. У них и юмор свой, лишь только таким же, на всю го^W инициализацию системдэшнутым, понятный.
Хотя вот как раз их любимое детище пилится в лучших традициях виндуза — один большой, везде проталкиваемый комбайн, "быстрые бинарные протоколы". И может этот комбайн все-все-все!
Правда, шаг влево или вправо и у нестандартного хотетеля начинается «веселье».
Тут вон, недавно, один любитель демонстрировал "замену" крону с систем-комбайн^W системд-таймерами – подумаешь простыня копипасты из бложика^W Скрижалей Пророка в нескольких файлах, вместо одной строчки в crontab. Зато "встроенно и из коробки!".Разве что код (пока) открыт.
Но вот качество этого кода …
https://github.com/systemd/systemd/blob/master/src/basic/uni...s = new(char, a + 1 + b + strlen(e) + 1);
if (!s)
return -ENOMEM;strcpy(mempcpy(mempcpy(s, f, a + 1), i, b), e);
https://github.com/systemd/systemd/blob/master/src/basic/uni...
t = newa(char, strlen(p) + 2 + 4 + 1);
stpcpy(stpcpy(stpcpy(mempcpy(t, p, fn - p), ".#"), fn), ".lck");
> Но вот качество этого кода …а что не так с качеством? покажи-ка свой код для начала
>> Но вот качество этого кода …
> а что не так с качеством?А, понятно. Очередной питонист.
> А, понятно, очередное треплоЧто же вы так самокритично-то?
А так да, вы еще очень похожи на очередного питонисто-жабиста, который восторгается тем, что код написан на Волшебном СИ и не замечает всей глубины пятой точки, на которую обречен тот, кто захочет ЭТО поправить или тем более переписать.
Я намекну:
> t = newa(char, strlen(p) + 2 + 4 + 1);
> strcpy(mempcpy(mempcpy(s, f, a + 1), i, b), e);но если вы слепы, то это бесполезно.
Декларируйте и далее с пеной у рта "Это яйцо не тухлое! Сначала сам стань курицей и снеси лушее!", тактично забывая, что тогда во-первых, теряется весь смысл анонимного постинга, во вторых, указанны два конкретных примера и в третих, что как раз Анонимный Защитник пока что только языком и трепался.
Кривизна кода системд - это мелочь по сравнению с твоим жёлчным самопиаром. Пены, дыма и гари слишком много.
> Кривизна кода системд - это мелочьВполне допускаю, что для того, кто ничего не смыслит в написании кода, кривизна самой пропиаренной и проталкиваемой системы инициализации и управления демонами, сравнимой по количеству кода с ядром версий 1.3+ -- это мелочь мелкая. Вот только те, кто умеет не только потреблять готовенькое, но и отсылает патчи с багфиксами с вами не согласны. Но вы вполне можете и далее продолжать считать их глупцами, ведь главное -- чтоб были жёлуди!
Пишите ещё, ведь ваше ценное мнение потреблятеля очень важно для вас!> по сравнению с твоим жёлчным самопиаром.
> Пены, дыма и гари слишком много.Отличный спрыг с темы.
отвечаешь невпопад, но ничего. Поржать можно. И даже не с Поцтеринга.
> Вполне допускаю, что для того, кто ничего не смыслит в написании кода,
> кривизна самой пропиаренной и проталкиваемой системы инициализации и управления демонами,Ты и такой не напишешь. И даже Led и его дружки делом доказали что на шелле можно и похуже. Они там до сих пор таскают баш 3.х параллельно с 4.х, потому что кучу окаменелых скриптов всем лень переписывать. Т.е. по факту у них куча легаси кода на шелле который кто-то когда-то наворотил и который никто майнтайнить не хочет. Вот так баш превращается в какой-то питон.
Да с ним абсолютно всё не так. Вообще рекордный какой-то пример.1) на фиг такие цепочки - их крайне неудобно отлаживать, и при чтении запутаться легко.
2) именовать переменные не учили?
3) макрос, написанный маленькими буквами (new)
4) литералы в коде - ".#", ".lck"
5) размер буфера неявно прибит к длине этих литералов - а надо sizeof использовать.Я это паре коллег показал - охренели.
> Да с ним абсолютно всё не так. Вообще рекордный какой-то пример.Да нет, просто показательный, а так там много чего. Меня когда-то заинтересовало, что там используется в качестве парсера конфигов, ну я и полез …
Кстати, ссылочкой ошибся, запостив два раза одну и ту же:
https://github.com/systemd/systemd/blob/09541e49ebd17b41482e...Еще из "классики":
https://github.com/systemd/systemd/blob/09541e49ebd17b41482e...
strcpy(mempcpy(mempcpy(r, f, a + 1), i, b), e);
https://github.com/systemd/systemd/blob/3bb81a80bd18c15a1bef...
strcpy(stpcpy(stpcpy(stpcpy(mempcpy(t, p, fn - p), ".#"), extra), fn), "XXXXXX");
https://github.com/systemd/systemd/blob/a0bfc9c26a2cc44b95b1...
if (path_is_absolute(option+15)) {
if (strv_extend(&arg_tcrypt_keyfiles, option + 15) < 0)
https://github.com/systemd/systemd/blob/a0bfc9c26a2cc44b95b1...if (!path_is_absolute(option+7)) {
Там все прибито намертво к такому "ручному" парсингу в его "худшей ипостаси".> Я это паре коллег показал - охренели.
Вы подождите, в прошлый или позапрошлый раз заявился аноним и пытался с умным, уверенным и серьезным видом убедить всех в том, что код на самом деле очень хорош и вообще, типичен для Си, а сомневающиеся на самом деле "жабисты", которые не смыслят в этом по определению )
а что не нравится? на любимом линуксе Лени работает - а остальной шлак не нужен.
Вам что сказали ? правильно переносимый код не нужен. Ничего жрите что дают и не вякайте.
RedHat за вас уже решил :-)
вообще-то "переносимый" и "поддерживаемый" - это совсем-совсем разные вещи. Если "переносимость" означает ограничивать себя ради аболютной экзотики или устаревших систем, которыми вообще никто не пользуется (вроде помянутого недавно unsigned time_t) - на фиг её. А вот вбивать в код длины строк цифирками - это тоскливый быдлокод, который рванёт не на экзотической системе (потому что его там никто не станет запускать), а при попытке что-то подправить.Вот насчёт редхата - я всерьёз не пойму. Как на ЭТОМ можно основывать свою систему, на которой держится весь бизнес? Не, я в курсе, что внутри "больших и дорогих" часто куча мусора, подпёртая костылями, но как-то не в самых базовых компонентах обычно. Когда оно всерьёз рванёт - это ж только вопрос времени.
> Вам что сказали ? правильно переносимый код не нужен.Где и когда системы инициализации были портабельными? Бзды дро...и как хотели и совместимостью ни с кем не парились. У большинства дистров линукса инит-скрипты никогда и не были совместимыми, как минимум без большого напильника. Проприетарные юниксы вообще городили кто во что горазд. Как там насчет переносимости SMF? Кто и куда его перенес?
> Ничего жрите что дают и не вякайте.
Да вот что-то мы тут с парнями повякали насчет эмбедовки и ее проблем. Поттеринг более-менее услышал. В отличие от тугих на ухо хейтеров, с которыми конструктивный диалог невозможен в принципе а все ответы сводятся к "это ваши проблемы, пишите весь код сами".
> RedHat за вас уже решил :-)
Редхат за меня может решить только в одном случае: когда им окажется нужно то же самое что и мне. В этом случае очень хорошо если проблемы замахают они а не я. У них ресурсов вона сколько.
> Да нет, просто показательный, а так там много чего. Меня когда-то заинтересовало,
> что там используется в качестве парсера конфигов, ну я и полезТы забыл выдержки перлов из инит-скриптов. Их там есть. Буквально каждый первый скрипт плюет на логгинг и коды возврата. Если сервис повис на старте, это навсегда и обнаружено не будет. В случае любых ошибок упирается сам админ. Пути прописанные на примерно третьей странице - норма жизни. И при переносе между системами эти пути надо править. Что делает процесс не слишком пресным.
> Ты забыл выдержки перлов из инит-скриптов. Их там есть.Угу. Принцип "Протухшая говядина все же лучше свинины с диоксином!"?
Во-первых, системд уже давно не только/просто система инициализации. Во-вторых, менять шило на мыло все равно очень сомнительный профит. Особенно учитывая количество кода (где-то 350 тыщ строк) и старательное завязывание на системд всего и вся.
Еще раз: никто не спорит, что сами по себе некоторые задумки в системд очень даже ничего.
Но с такой реализацией как то это уж очень смахивает на хорошую такую мину замедленного действия. Причем, очень даже покруче инит-скриптов.А ведь я еще даже не вспоминаю про некоторые личностные качества и "забытые" обещания. Вон, когда мержили тот же udev, обещали что "After udev is merged into the systemd tree you can still build it for usage *outside of systemd systems*, and we will support these builds officially."
Но года через два оказалось что это было "давно и неправда".
зловред из новости работает со всеми системами инициализации, создание юнита systemd в описании новости приведено в качестве примера (провокативного, надо сказать, раз тут же появились дегенераты вроде тебя)
Брешешь! Нету в новости ничего про другие системы инициализации! Да и как ты себе это представляешь? :-)
Радуюсь за поняшек топивших за системДы :) Запах винды уже с нами ....
В оригинальной новости на сайте Dr.Web - вообще ни слова о systemd, так что провокативность подачи новости автором на opennet очевидна. А то, что тут же дегенераты-хейтеры уцепились именно за systemd - тому (провокативности) дополнительное подтверждение
> В оригинальной новости на сайте Dr.Web - вообще ни слова о systemd,Плохо читали оригинал от Dr.Web - "создает файл /etc/systemd/system/ntp.service". См http://vms.drweb.ru/virus/?_is=1&i=8400823
> провокативность подачи новости автором на opennet очевидна.
В новости на opennet тоже лишь косвенно, а не на прямую упомянут systemd, сказано только "создаёт сервис /etc/systemd/system/ntp.service".
Да ну ничего ты не понимаешь в колбасных обрезках. Вирмэйкер тоже человек и людские слабости вирмэйкерам на чужды. Например желание инсталлировать вирь без геморроя с майнтенансом кривых глючных скриптов.
На языке GO с его тягой к статической сборке бинарников.
Шутка про троянского слона.
Как еще линукс вирус распространятт если не статической сборкой! А ну версия libc не совпадет!
>с установленными незащищёнными конфигурациямиСначала они ставят незащищенные конфигурации, а потом удивляются, что их взломали
> >с установленными незащищёнными конфигурациями
> Сначала они ставят незащищенные конфигурации, а потом удивляются, что их взломалито есть домашние воры это хорошо ?
> то есть домашние воры это хорошо ?Домашние воры не есть хорошо, но если ты бросаешь кошелек с сотнями денег на улице, у всех на виду, без присмотра, не стоит удивляться что у кошелька выросли ноги. Особенно если по улицам будут шнырять тысячи неизвестно чьих роботов, как в интернете.
> исполняемого файла /usr/sbin/ntpТ.е. зловред вместо того, что бы действительно проявить свои вирусные качества - встроиться в бинарник и данные redis-а каким-нибудь хитрым способом, тупо устанавливается, слегка маскируясь. А редис использует только из-за уязвимости.
Никакой красоты, одни биткоины.
Да, Go! это круто
Гошные бинарники деплоить удобно, в том числе и зловредные.
Выявлены вирусы поражающие серверы на базе любой операционной системы с установленными незащищёнными конфигурациями любого программного обеспечения, вирус написан на любом языке программирования. После получения контроля над уязвимым сервером программа устанавливается в систему и используется злоумышленниками как угодно.
Вредоносное ПО также может заниматься чем угодно со скомпрометированного сервера и организовывать атаки на другие системы с целью расширения ареала своего распространения. После проникновения в систему вирусы делают что хотят.fixed
drweb не благодари
Так архитектура линуха же не позволяет запускаться вирусам, это ж не масдай! Не переживайте, держитесь там и хорошего настроения!
Архитектура твоего мозга не позволяет тебе осознать, что в твоем теле вирусы, которые негативно влияют на твою адекватность.
> Так архитектура линуха же не позволяет запускаться вирусам, это ж не масдай!
> Не переживайте, держитесь там и хорошего настроения!Чтобы redis смог записать что-то в /etc ... нннннуууу, на тестовой машине докторвеба так наверное бывает, да.
Я думаю именно так и взломали сервера drweb-a
А что значит незащищенная конфигурация?
Если я просто поставил редис в качестве session storage для чата и ничего не настраивал моя конфигурация считается незащищенной?
Для работы этого "вируса" нужно чтобы redis биндился на все интерфейсы, а не только локалхост, но самое главное работал из под рута, а не отдельного пользователя. И если как у многих получается первое я еще могу понять, то зачем кто-то делает второе для меня загадка.
Это стандартная фича редиса - записывать файлы в ФС, ставить им права на выполнение и запускать со своими привелегиями? Или оно просто решето?
Нет. Просто ты не способен придумать как использовать абсолютно нормальную для DBM-на-стероидах возможность указать файл БД. "Вирус" там конечно примитивный, но все-таки не настолько, как ты думаешь.
Где ты такое видел? Профиль в помощь https://github.com/vitvegl/AppArmor-profiles/blob/master/ubu...
так можно к любой системе с незащищенной конфигурацией или ослабленной (по дефолту) - а вот откуда берутся такие дефолты это вопрос интересный ...
В данном случае «незащищенный» это Redis слушающий внешний интерфейс и не имеющий авторайза. При этом во всех дистрибутивах по дефолту Redis слушает только lo, то есть по умолчанию Redis «защищен».
Один я заметил ? чтобы майнить на серверах биткоины как они написали, нужно минимум тысяч 10-30 серверов чтобы более менее что-то заработать.
Калькулятор майнинга в помощь )
Возможно, майнили другие криптовалюты.Либо у них большой пул, и серверы с уязвимым Redis – лишь небольшая его часть.
Итак, надо поставить ничем не защищённый редис, обязательно запустить его от рута (взломанный редис, запущенный от юзера в /etc и /usr/sbin ничего не запишет), выпустить этот редис в интернет.
Потом надо, чтобы у админа не было selinux и прочего, ему было плевать на появившиеся сервисы, на новые ключи в конфиге ssh, на изменённый конфиг ssh.Молдавский вирус, по мне, даже поэффективнее будет, задо ДрВеб может радостно вопить "Смотрите же! Смотрите! Ну ведь есть вирусы для линукса, есть! Купите у нас антивирус!"
>Linux.Lady.1 устанавливает себя
> под видом исполняемого файла /usr/sbin/ntp, создаёт сервис /etc/systemd/system/ntp.service
> для автоматического запуска, добавляет в ~/.ssh/authorized_keys* свой SSH-ключ и устанавливает
> в /etc/ssh/sshd_config возможность входа по SSH с правами root.И придет мне часов через пяток письмецо:
Warning: The file properties have changed:
File: /usr/sbin/ntp
Current hash: f1da229780e39ff6511c0fc227744b2817d122f4
Stored hash : 9abab0d7e41ae6c88fb4c54f1623087d00a0b4e0
Current inode: 13370 Stored inode: 13380
Current file modification time: 1469445909 (25-июля-2016 13:25:09)
Stored file modification time : 1468099630 (9-июля-2016 23:27:10)
и буду я чесать репу, как зловред смог записаться на RO /
>[оверквотинг удален]
>> для автоматического запуска, добавляет в ~/.ssh/authorized_keys* свой SSH-ключ и устанавливает
>> в /etc/ssh/sshd_config возможность входа по SSH с правами root.
> И придет мне часов через пяток письмецо:
> Warning: The file properties have changed:
> File: /usr/sbin/ntp
> Current hash: f1da229780e39ff6511c0fc227744b2817d122f4
> Stored hash :
> 9abab0d7e41ae6c88fb4c54f1623087d00a0b4e0
> Current inode: 13370
> Stored inode: 13380Вот ты ж фантазёр, фантазируешь, как зловред уже обновляться будет?
Настоящий файл называется sbin/ntpd. Камуфляж же.
$ zgrep usr/sbin/ntp <main+Contents-i386.gz |less
usr/sbin/ntp-keygen net/ntp
usr/sbin/ntp-wait net/ntp
usr/sbin/ntpd net/ntp,net/openntpd
usr/sbin/ntpdate net/ntpdate
usr/sbin/ntpdate-debian net/ntpdate
usr/sbin/ntptime net/ntp
(END)> и буду я чесать репу, как зловред смог записаться на RO /
> Вот ты ж фантазёр, фантазируешь, как зловред уже обновляться будет?
> Настоящий файл называется sbin/ntpd. Камуфляж же.Посыпаю от стыда голову пепом!
Да, будет тогда все по другому: будет мне письмецо про "unknown file".
>[оверквотинг удален]
> Stored hash :
> 9abab0d7e41ae6c88fb4c54f1623087d00a0b4e0
> Current inode: 13370
> Stored inode: 13380
> Current file modification
> time: 1469445909 (25-июля-2016 13:25:09)
> Stored file modification
> time : 1468099630 (9-июля-2016 23:27:10)
>
кстати, Поттеринг поломал ro / в systemd > 222 где-то =). В связи с systemd-tmpfiles-*
> кстати, Поттеринг поломал ro / в systemd > 222 где-то =). В
> связи с systemd-tmpfiles-*Рассказывая в очередной раз о том, что системдводы ССЗБ, а сам системд больше похож на хорошо спланированную диверсию со стороны окошек и прочих проприетарщиков, вы не сообщаете мне ничего нового.
Сейчас набегут "новые клоуны", которые точно знают, что "юниксвей давно устарел и ни на что не годен" и вообще, пережитки старых юниксоидов мешают делать новую, бесплатную винду ...
А убирание кнопки пуск и плиточки в windows 8 диверсия со стороны опенсорсников?
> А убирание кнопки пуск и плиточки в windows 8 диверсия со стороны
> опенсорсников?Нет, диверсия со стороны тех же прорпиетарных окошек, типа "код закрыт, править нельзя, так что жрите что дают!". А так как в неокошках такой подход не катит, нужен более комплексный "оно конечно открыто и вроде даже модулярно, но без пол-литры …"
> А убирание кнопки пуск и плиточки в windows 8 диверсия со стороны опенсорсников?Скорее, случайно самоэлопотомировались. Смотри, Элоп вернулся в MS. Продажи упали в 3 раза. Увлекся мужик работой :)
> кстати, Поттеринг поломал ro / в systemd > 222 где-то =). В
> связи с systemd-tmpfiles-*Вот те раз, а как же у меня debian с systemd 229 загружается с RO rootfs-ом то?
Для майнинга на чем, на проце?? Уже даже на видюхах умер...
Ты сейчас про какую крипту? X11, X13 вполне, менее популярные алгоритмы тем более.
А кроме Dash что-то имеет смысл майнить? Оборот и цена - мизер, да и где их потом менять?Даже на видюхе ниочем
$ ./ccminer -a X11 --benchmark
[2016-08-12 17:29:47] GPU #0: GeForce GTX 660, 1925.65 kH/s
[2016-08-12 17:29:47] Total: 1910.37 kH/sНе говоря уж о проце
$ ./cpuminer -a x11 --benchmark
[2016-08-12 17:08:40] Total: 64.87 kH/s
блокчейн - уже давно не только криптовалюты.
уже и мессенджеры и почта и голосовые сервисы(гуглим меш потато).
недавно до уровня альфы и IPFS доросла. в общем помаленьку растет.