Pull to refresh

Comments 95

UFO landed and left these words here
UFO landed and left these words here
UFO landed and left these words here
ага, стандарт из эпохи мейнфреймов — де факто:)

уже давно общие критерии являются основным нормативным документом в этой области
UFO landed and left these words here
класс А оранжевой книги — не панацея. хотя бы потому что он абстрагируется от оборудования и связанных с ним уязвимостей.
UFO landed and left these words here
Напишем вирус на Perl, Shell, C — на Линуксе выбор средств программирования номного шире, а вот в винде Перл стоит не всюду.
Дадим этому вирусу права на запуск (вручную), запустим его (тоже вручную)… а вот только в винде он может самостоятельно запуститься…
Скажем пользователю, что для просмотра роликов он должен набрать perl super-mega-video в консоли ;)
Нет, вначале надо сказать в какую папку скопировать этот скрипт, объяснить, что такое консоль и где ее найти. Если это сделать в корень домашней папки, тогда запустить скрипт можно будет с помощью вашей команды, но никак ни по другому — в противном случае вам придется ему объяснять, как в консоли перейти в другую папку.

И чтобы этот вирус смог распространяться, нужно к каждому его экземпляру прилагать инструкцию по запуску. Вот такие они — вирусы под Линукс!
Это в случае низкого уровня вхождения в ОС. Вы же все на него уповаете, якобы только он влияет на подверженность Линукса заражению вирусами.
Мэйнстримовых — не тысячи. Максимум сотни. При том разных типов — максимум десятки.
Напомните-ка для начала, на какой день после обнародования дыры стали доступны заплатки.
На шестой, кажется. И хорошо если у юзера включено обновление безопасности. Но ведь не у всех же и не под всеми дистрибутивами.
15-го апреля стало известно о уязвимости. в этот же день создан тикет в багзилле. через 2 часа уже был первый патч всё там же. через два дня размаскировали ебилд. сегодня — 20-е апреля. где вы тут 10 дней насчитали?
Открытым остался вопрос — как заставить пользователя запустить у себя на компьютере эту программу :).
Вот вам и разница.
UFO landed and left these words here
Возможно. Хотя это по-прежнему затруднительно чисто технически. Я больше о другом — нет таких глупостей, как, например, авторан с флешек. Который даже «продвинутым пользователям» венды надёжно запретить более чем нетривиально :(.
UFO landed and left these words here
Гм… Ну, давайте в сторону вендов опять посмотрим. Там такое есть? Есть десятки тысяч пользователей, установивших себе заражённый изначально дистрибутив, взятый неизвестно откуда? Я подозреваю, что такое бывает, поскольку сделать это не сложно, но разве это реально массовое явление на которое могут сделать ставку ботнетописатели?
UFO landed and left these words here
>В большинстве случаев вирус идет вместе с комплектом программа + кряк.
Ну, эт понятно
>Говносборки очень любят и, хоть и редко, но попадаются дистрибутивы с «закладкой».
Всё-таки редко?
>Сейчас происходит ажиотаж с промежуточными сборками Windows 7, которые предоставляются неизвестно кем и как.
Ну, это особоспециальные кульхацкеры с неизвестными сборками развлекаются. Страшно далеки они от народа. :)
Основа для ботнетов — т.н «кодеки», типа поставь себе чудо-кодек и фильм (как правило порно) заиграет прям в том же окне. Пример приводить не надо? Фильм конечно может и заиграть с халявного порно-туба, но лоадер (а что потом лоадер поставит, дело владельца лоадера, зависит от цены того что надо ставить) поставится 100%

На этом и собирается миллионные ботнеты.
Концепция доверенных репозитариев УЖЕ есть и работает.
Доверенные репы в например убунте давно есть и «недоверенный» туда добавить может только достаточно продвинутый юзер. Потом, были как-то подобные «учения», когда в опенсорный коммитился кусок с вредоносным кодом, это выяснилось уже через пару часов.

С другой стороны, нельзя не вспомнить про дыру в openssh в дебиане размером с КОСМОС, которую нашли только через полтора что-ли года после ее появления :)
Например в gnome, кстати, autorun есть :-)
Но он пока еще спрашивает «вы точно хотите запустить программу с флэшки?»
Вот у меня на гноме этого авторана нету…
а как ботнет под макинтошами появился? Люди сами вводили пароль администратора установщику трояна. Так что с этим проблем не будет
Доля правды есть в его словах, но… Вы же не станете спорить, что по *nix работают по большей части серверы. И мне лично кажется, что будь эта ось такой же дырявой как винда, очень и очень все было бы печально, ибо одно дело ботнет на пачке пользовательских машин, и совсем другое — на пачке серверов ;)
UFO landed and left these words here
Любая уязвима. Только в той же Gentoo багованные версии udev были убраны из портежа в день публикации новости от уязвимости.

А сколько будет в такой ситуации раскачиваться MS?
UFO landed and left these words here
Касательно последней строки — имхо одну из ключевых ролей в уязвимости ОС играет человек, её использующий. При прочих равных — при наличии за «рулём» опытного пользователя шансы поюзать уязвимость будут значительно ниже.
А в случае с unix-like ОС, я вообще очень смутно себе представляю применение локальных уязвимостей — софт большинство ставят из репозиториев. Можно конечно предположить, что «говнецо» подложат именно туда, но кмк, вероятность этого мала.
UFO landed and left these words here
Я тоже сначала обновился — а потом увидел новость о дыре :)

А вообще, наличие дыр, количество дыр, их опасность — всё фигня по сравнению со скоростью их исправления. Если найдут 10 дыр, о которых объявят вместе с прилагающимся обновлением и если найдут одну, исправления для которой не будет несколько месяцев — что хуже?
UFO landed and left these words here
udev 141-1 не существует в природе. Это версия udev из какого-то дистрибутива.
Соответственно, читайте ChangeLog к пакету :-)
что-то я сегодня разошёлся на скорое комментирование. в качастве восстановления внутреннего балланса проверил эксплоит на 141. не пущает
И что? 141 != 141-1. Какой патч наложили в дистрибутиве я сказать однозначно не могу — историю с debian и openssl, думаю, все помнят :-)
Для этого нужно еще получить доступ к исполнению бинарников
Обычно у локальных пользователей он есть. Речь изначально и шла про локальный подъем привелегий с пользователя до UID=0.
Имей я локальный доступ к серверу, то получить рута можно загрузкой с livecd
Угу, и DoS устроить красной монтировкой.
На практике мы видим что из 15-20к ботнета с которого на нас недавно велись атаки — не менее 20% судя по user-agent'am браузеров — Linux системы, хотя тут сложно сказать точно — скорее уязвимости браузеров. Причём судя по всему user-agent'ы эти не вставлены нарочно, а это именно уязвимые версии браузеров, и если с IE 6-7 на Windows всё давно понятно, то видеть такое довольно внушительное число заражённых компьютеров на довольно устойчивой к таким вещам ОС — как минимум заставляет задуматься. То ли ещё будет.
А не могли бы вы статистику опубликовать? А то получается, что на долю linux приходится уже 20%, если принять уязвимость linux-версий браузеров равной уязвимости win-версий. Как-то не верится.
Нашёл один чудом спасшийся лог размером 2.3 Гб (это примерно 15 минут атак). Выбрал основные попавшиеся на глаза user-agent'ы.

Вот статистика (useragent — общее кол-во запросов):

==================

Mozilla/4.0 (compatible; MSIE 5.0; Windows 2000) Opera 6.03 [en] — 1779347

Mozilla/4.0 (compatible; MSIE 6.0; America Online Browser 1.1; rev1.5; Windows NT 5.1;) — 1740587

Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.8.1.6) Gecko/2007072300 Iceweasel/2.0.0.6 (Debian-2.0.0.6-0etc
h1+lenny1) — 1503310

Mozilla/5.0 (compatible; Konqueror/3.5; Linux 2.6.15-1.2054_FC5; X11; i686; en_US) KHTML/3.5.4 (like Gecko) — 882791

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0) — 1399225

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; WOW64; Trident/4.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.21022;.
NET CLR 3.5.30729; .NET CLR 3.0.30618) — 869930

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/0.4.154.25 Safari/525.
19 — 849723
Хм. Моих знаний не хватает, чтобы это правильно интерпретировать…
К невероятной доле в 20% добавились ещё и Konqueror/Iceweasel… Хотя по логике вещей должны были быть линуксовые версии Firefox и Opera… Есть кто в теме, как это вообще объяснить-то?
Я не профессионал в этой области, но истинность тоже вызывает серьёзные подозрения. А именно метки о:
1) Принадлежности клиента к 2.6.15-FC5(Fedora Core 5, насколько я понял?). Я сто лет не сталкивался с Федорой, но вспоминая продукцию RedHat`a, они в гуях держали утилитку для апдейта системы, которая трудолюбиво сообщала про обновления(было это еще в RH8, если я не ошибаюсь — не думаю, что они отказались от столь полезной вещи). В таких условиях крайне маловероятно, что 5й релиз не превратился во что-нибудь посвежее под влиянием апдейтов(текущий-то вроде как — FC11?).
2) Конкретного билда IceWeasel(оно же Firefox в Debian`овском исполнении), причем версии 2.0.x, когда в стейбле уже давно лежит экземпляр 3й ветки.

В общем, как мне кажется — где-то собрали «срез» user-agent`ов и просто бомбили данными, взятыми из него.
Сам сижу на федоре. Ставил как 8, сейчас уже обновилась до 10. 11 релиз в конце мая обещают, то него только ядро держу. До того 6-я без проблем обновидась до 7-й, но потом понадобилось переезжать на другой винт и решил просто чистую установку сделать.
А может быть часть ддоса была организована путём внедрения ссылки (картинки) на каком-то популяром ресурсе?
Нет, полностью исключено как и iframe. Юзерагентов было до 10-15 штук. Наша защита собственно на этом и основывалась. Да и стран там было много, мы блокировали 12 стран но это вообще почти никак не повлияло.
Все дело в том, что прикинуться можно любым браузером и любой осью, видимо это ботнет успешно и сделал.
Занятно. Хотя, возможно, это был какой-нибудь банальный iframe на вмеру популярном сайте.
Нет, не iframe. У нас по статистике доходило до 15-25к запросов в секунду, причём если отсеивать по IP то видно было что с каждого IP поступает стабильно 2-3 запроса в секунду. Да и не видел я таких популярных сайтов с iframe — забанить по рефереру можно вообще без проблем.

Статистику к сожалению опубликовать скорее всего не смогу — логи мы не сохраняли, не видели в этом большой надобности учитывая что они и весили не мало. Если что-то найду сегодня на эту тему — отпишусь.
UFO landed and left these words here
А как правило для /dev/ufo попало в систему?
У меня в системе на rules.d не стоят права 777, то есть от ограниченного юзера написать там Вы ничего не сможете.
Как Вы собираетесь испольнить произвольный код, используя эту уязвимость?
читайте внимательно.
не нужно прописывать ничего в rules.d — всё уже прописано за нас с вами.

root@kms0042 /home/zerkms # cat /etc/udev/rules.d/95-udev-late.rules
# do not edit this file, it will be overwritten on update

# run a command on remove events
ACTION==«remove», ENV{REMOVE_CMD}!="", RUN+="$env{REMOVE_CMD}"

# event to be catched by udevmonitor
RUN+=«socket:@/org/kernel/udev/monitor»
чот странно уже несколько раз пост автоматом отправляется, хотя ни до ентера, ни до кнопки «написать» явно не докасался… нло?
UFO landed and left these words here
Так вопрос не о том, что прописано, а как сделать хоть что-то, используя эту уязвимость.
как написал автор поста + комментаторы, REMOVE_CMD выполняется от рута.
в посте продемонстрировано создание файла в корневой директории. этого мало?
Да!
Вы не сможете, не обладая правами рута, вписать произвольный REMOVE_CMD в правила udev, значит, не сможете выполнить произвольный код на машине.
REMOVE_CMD отправляется из эксплойта. отправляется от текущего пользователя. далее udevd, избыточно доверяя всему, что ему подсунут (это собсна и есть дыра) исполняет этот вызов.
Вообще в оригинальном отчете об уязвимости было сказано о возможности создавать устройства с правами rw-rw-rw-. Я просто не стал разбираться, как это делать, и пошел более кротким путём, найдя уязвимое правило, наличие которого проверил на Debian, Ubuntu и Gentoo :-)
Тоже любопытно в какой. Хотел потестить на своей 8.04, ан нет, не работает. Заглянул в лог — обновление udev пришло 16го числа.
На необновленной системе.

$ apt-cache policy udev
udev:
Установлен: 124-9

После того как в каноникле поломали при апдейте руби, и пришлось пересесть на генту, как-то в первой не спешу обновляться, тут придется…
Уязвимости есть, их фиксят. Это нормально. Хотя опять же на продакш это обновление попадет не раньше чем через месяц, а иногда полгода-год. Но продакшн у всех разный.
Да, уязвимости есть везде.

И пока практике оказывается что windows без антивируса есть огромный риск потери личных данных, а под MacOS и в Linux вирус подхватить практически нереально, я предпочту альтернативную систему, самой наипопулярной.
когда на прошлой неделе я читал новость об этой уязвимости на лоре — попивая утренний чаек — оживился update applet и сказал о том, что как раз обновление udev вышло, так что не все так страшно…
UFO landed and left these words here
Локальный злоумышленник может получить привилегии суперпользователя…

Ну, ка бы не смертельно.
А удалённо оно работает?
Кстати, udev в Fedora обновился с тех пор.
>Ну, ка бы не смертельно.

угу… особенно для хостеров, где клиенты по SSH на сервер могут ходить.
Ну а удалённо можно получить какого-нибудь nobody через дырку в PHP-скрипте, а потом таким образом поднять права до root :-)
Занимательно, попробуем-с :)

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

У студента-недоучки занижена самооценка?
Да нет, я просто назвал вещи своими именами.

Не так же смешно будет звучать «фриланствующий бакалавр-математик с некоторым опытом кернельхакинга». :-D
В Mandriva не работает. udev установлен 19'го Марта, то есть уязвим. Тем не менее, такого правила (с «ACTION==«remove», ENV{REMOVE_CMD}!="", RUN+="$env{REMOVE_CMD}"») или аналогичного там нет, поэтому устройство создаётся (а толку?), но произвольный код выполнить не получится.
Если верить первоначальному объявлению об уязвимости — получится, просто это было бы сложнее. Пришлось бы создать устройство с правами rw-rw-rw- и через него уже насиловать FS, ядро или еще что-нибудь.

Ну и еще можно сделать DoS, удалив /dev/null и прочие популярные устройства.
скучнейший отстой, продолжайте в том же духе!
Спасибо! Если этот топик показался хоть кому-то скучным — значит хабр еще тот :-)
Only those users with full accounts are able to leave comments. Log in, please.