Comments 101
Впрочем, эпидемия, подобная WannaCry, линуксу не грозит — все линуксоиды нищеброды, и за расшифровку никто платить не будет. Я сам линуксоид, так что точно знаю.
Я тоже такое думал. Основания?
- денег просили немного, собрали на удивление мало для эпидемии такого масштаба. Если бы была цель денег заработать, с такими термоядерными эксплоитами можно было бы что-нибудь повыгоднее придумать
- независимо от цели, попугали всех знатно. каждая домохозяйка, небось, про WannaCry слышала, обновились, пожалуй, даже те, кто никогда этого раньше не делал. Microsoft — в первый раз! — выпустила патчи для старых неподдерживаемых версий Windows.
- Ущерб, конечно, был немаленький. Но, подозреваю, что если б какие-то скрытные и предприимчивые ребята стали использовать эти эксплоиты, с целью, именно, максимизации своей прибыли — ущерб был бы больше. Тогда дропперы пролезали бы на предприятия и банки тайно, и не вывешивали бы большое красное окно по центру экрана. А такие ребята бы точно нашлись, и скоро — раз эксплоиты уже ушли в открытый доступ.
Так что может, конечно, создатели WannaCry и идиоты. А может — благодетели человечества.
И что в случае WannaCry напрягаться нужно не тем, у кого файлики оказались зашифрованы, а тем, кто якобы не пострадал. В качестве примера привёл факт, что, например, в МИДе не пострадал вообще ни один компьютер.
В эту версию как раз хорошо ложится тот факт, что создатели WannaCry не очень заморачивались сбором денег, и таким образом сам факт появления шифровальщика является просто дымовой завесой для размещения совсем другой рабочей нагрузки совсем в другие места.
>например, в МИДе не пострадал вообще ни один компьютер.
Ну, файрвол с закрытыми портами, админ параноик? Что тут странного само по себе? Тем более что уязвимость закрыта в марте.
Все-таки тут дыра не такого размера что была в винде — тут для эксплуатации нужен доступ на запись, т.е. сервер может быть атакован только кем-то из пользователей, а не любым хакером из интернета.
Все версии Samba, начиная с 3.5.0, подвержены уязвимости удаленного запуска кода, позволяя злоумышленникам загружать библиотеку совместного использования в доступный для записи общий ресурс, чтобы затем заставить сервер выполнить вредоносный код
Нет доступного для записи общего ресурса — нет уязвимости.
Уж как линуксоиды издевались над уязвимостью в Windows…
Я ведь правильно понимаю, что хрень эта запустится с правами smb сервера, которые приблизительно соответствуют правам nobody? :)
Да, причем требуются ещё права на запись на samba шару.
PS: глянул у себя — оказалось на всех «nt pipe support = no» ;-)
Во вторых — у меня сегодня утром обновление на все ПК прилетело, я еще удивился, почему у меня на ubuntu и opensuse — в один день samba обновляется.
Линукс — это не про отсутствие уязвимостей. Линукс — это про другой подход к инфраструктуре.
MS свой патч выпустила в марте (лично мне прилетел в районе 17-18 числа).
Вы считаете, что еще два месяца на то, чтобы проанализировать наличие дыр в софте, переписанном когда-то с Win, и их заделывание — это нормально? По-моему если бы не эпидемия на win, производители дистрибутивов линукс вообще не почесались бы.
Линукс указанной виндовой уязвимости не имеет. Так что было бы странно, если бы линукс исправлял то, чего нет в марте. Не?
А новая уязвимость CVE-2017-7494 — была в убунте исправлена 19 мая, например. При том что sambacry активизировался только вчера.
Т.е совсем нормальным подходом было бы после публикации викиликс провести ревизию всего этого барахла, в том числе на предмет поиска похожих уязвимостей.
>А новая уязвимость CVE-2017-7494 — была в убунте исправлена 19 мая, например. При том что sambacry активизировался только вчера.
А уязвимость в Win была закрыта в марте, т.е. за пару месяцев до атаки. Ну так что вы хотите этим продемонстрировать? Оперативно закрыли, молодцы, но пока петух не клюнет — всем пофиг. Вот как-то так я это вижу. Нет в этой (разумеется другой) инфраструктуре такого человека или компании, который бы не только искал, но и затыкал уязвимости заранее, до эксплуатации.
были неоднократно опубликованы уязвимости для самбы под win
Что вы понимаете под словами "самба под win"? Портированный проект samba? Samba собранная для cygwin? Или нативную реализацию SMB в win?
код этот весь старый, в какой-то степени и в линукс переписанный с той же Win
Вы, видимо, про проект Samba только из этого поста узнали? Она не использует и не использовала код реализации из win. Это проект реализованный посредством reverse engineering, если что.
б) код этот весь старый, в какой-то степени и в линукс переписанный с той же Win, просто потому, что это средство совместимости. Следовало ожидать, что там есть дыры.
В открытом ПО, чем старше код, тем он, вообще говоря, надёжнее. И, заметьте, уязвимость появилась только в 2010 году — после каких-то изменений.
А уязвимость в Win была закрыта в марте, т.е. за пару месяцев до атаки.
Вы, кажется, так и не поняли, что речь идёт о двух совершенно разных уязвимостях в совершенно разных программных продуктах, обнаруженных в разное время и разными людьми. Общего у них только то, что обе имеют отношение к (разным) реализациям протокола SMB.
Знатное допущение, но совершенно неверное. Вам напомнить shellshock, когда баг в коде существовал c 1992 по 2014?
И вообще, я выше ясно написал, что вполне в курсе — на самом деле есть три разные уязвимости, одна для win, закрытая в марте, и две для линукса (вторая связана с возможностью создать через SMBv1 симлинк, который будет указывать вне шары). Эксплуатируется правда тоже при наличии шары на запись.
А писал я о том, что нормальные люди, при обнаружении серьезных дыр в чужой реализации протокола, для которого у них есть своя реализация, еще в марте обеспокоились бы поиском багов в юниксной самбе, а не ждали бы два месяца, пока дыру найдут хакеры.
Да даже и не багов — а просто убедились бы, что отключение скажем v1 на винде не приведет к разным проблемам у себя — а оно таки приводит, о чем ниже ясно написали.
>Вы, кажется, так и не поняли
Да куда уж мне, с моим бедным 30-летним опытом работы с разными юниксами, что-то понимать в какой-то самбе.
Вы так пишете, как будто искать баги так просто: захотел и нашел!
Так почему вы считаете-то, что дыры — аналогичные?
>проверить, нет ли аналогичных дыр в реализации для юникс
никак не следует, что это баги в одних и тех же строчках кода. Речь идет о том, что в вашей реализации нет таких же проблем, и ее нельзя эксплуатировать таким же способом:
Remote code execution from a writable share. CVE-2017-7494
Symlink race allows access outside share definition CVE-2017-2619
Вторую эксплуатирует sambacry. Стала известна в мае, пофиксили в мае (быстро).
А первую нашли в марте. При этом как минимум один баг был в коде много лет (про второй пока непонятно).
Уж не знаю как для вас, а для меня уже первая проблема была бы вернейшим признаком, что весь код вокруг надо проверить самым тщательным образом. Статический анализатор натравить, последней версии, например, и еще раз пересмотреть всю ругань, которую он про этот код напишет. Убедиться, что все внешние данные тщательно контролируются и валидируются.
>явно специфическая для этой реализации.
Ну вот вы откуда это взяли? Исходный код windows видели?
>Ну, можно посмотреть, как конкретно эта функциональность реализована в самбе,
Хм. А чем это собственно отличается от того, что я предлагаю? Я все время именно об этом и толкую. Что при появлении первых данных о том, что в АНБ нашли и эксплуатировали дыры там-то и там-то, следовало бы… и далее по тексту.
А уязвимость в Win была закрыта в марте, т.е. за пару месяцев до атаки. Ну так что вы хотите этим продемонстрировать? Оперативно закрыли, молодцы, но пока петух не клюнет — всем пофиг.
Причём тут время между исправлением уязвимости и её использованием? Это ведь вне контроля разработчиков, не так ли?
Если уж сравнивать, то нужно сравнивать время между обнаружением уязвимости и её исправлением. Уязвимость в Windows была обнаружена (или внедрена?) много лет назад правительственной организацией, которая её, по-видимому, всё это время успешно эксплуатировала. После того, как уязвиомсть стала публичной, Microsoft потребовалось несколько месяцев, чтобы её закрыть. Когда вы говорите «за пару месяцев до атаки» — это следует перефразировать «за пару месяцев до ставшей всем известной и нашумевшей атаки». Наверняка, её начали эксплуатировать раньше, до того, как на весь мир прогремел WannaCry — только с меньшим шумом и пылью (и это не считая NSA). Создатели WannaCry — это, вообще говоря, идиоты, которые испортили жизнь благоразумным хакерам, подняв всю эту шумиху, из-за которой уязвимость была закрыта на большом количестве машин. Если бы не они, вы (и я, и любой человек, далёкий от этих вопросов) так и не узнали бы, что такая уязвимость вообще существует. Ну, или узнали бы ещё позже.
— андроид. Не могу сказать, касается ли эта уязвимость его, но что тут с патчами для ОС все фигово — вы думаю и без меня знаете.
— у меня лично есть такая железка, как WD TV Live, внутри у которой тоже какой-то линукс.
— и еще одна железка, WD MyBookLive, и снова внутри линукс.
— итого сотни и тысячи моделей разных роутеров, веб-камер, плееров…
… и прочего барахла, которые либо заброшены производителем изначально, либо по причине устаревания. Причем в большинстве случаев пользователя не спросили, чего он изволит, это вам не ноутбук, нечего вам туда лазать.
Ну и вот как со всем этим жить? Это тоже все называется линукс, разве нет? Самба в плеерах и роутерах — на каждом шагу, где только есть USB — туда можно воткнуть диск, и расшарить, догадайтесь по какому протоколу. И кто их знает, есть там уязвимости, или нет, и кто их будет фиксить, и когда…
Я с вами согласен, то что вы описали — там без разницы. линкс там или винд, или что угодно еще.
Поэтому у мея всё Open Source, в том числе и на бытовых устройствах. В крайнем случае сам пропатчу то, что будет актуально.
Это и есть инфраструктура Linux — нормальные разработчики выкатили патч еще до того, как Samba Cry появился. За теми, кто умер или просто плюет на старые устройства можно подчистить самостоятельно.
С виндой можно только плюнуть. Отдать себя в руки благородных господ и надеятся что они позаботятся.
И драйвера, кстати! А практически оно может быть подарено кому-то, и далеко.
Т.е. я собственно хотел сказать, что разница в инфраструктуре — она не между вин или линукс, а между листрибутивами, которые разработчик поддерживает, и теми, на которые забили.
>они позаботятся.
Ну так это… для конечного потребителя разницы никакой. Если вы можете — это не значит, что сможет например мой ребенок, которая пользуется WD TV. Этим людям все равно приходится надеяться на кого-то, не на дядю, так на папу. И найти этого кого-то — очень сложно, если он не производитель.
Вот и вся разница.
Свобода она не в том, чтобы делать. Она в том, чтобы иметь возможность сделать.
ну вот что мне делать с WD TV?Да ничего не делать, он же у Вас наверняка стоит за маршрутизатором.
А практически — ну вот что мне делать с WD TV?
Думаю, не открою вам Америку, если скажу, что с поддержкой устройств на каком-нибудь Windows CE всё гораздо, гораздо хуже. Там зачастую нет даже теоретической возможности что-то исправить. Даже если вы Microsoft Silver Partner. Это из личного опыта.
Собственно будучи виндузятником — первый Линукс(Open Suse 10) вполне себе купил официально у местного дистрибьютера. В красивом боксе и с прочей фигней. Я, конечно, знал что его можно скачать. Но посчитал что лучше купить и познакомиться с коммерческим сектором.
Во времена буйствования отдела К — это была распространенная практика, сделать форк известного дистрибутива и официально с лицензией его продавать.
Ну, то есть понятно, что Novell не имели отношения никакого к этой фирме, но тот факт что продавался официальный форк с лицензией — неоспорим. И это не мошенничество. Это совершенно легально чистое действие.
Вы можете сделать форк, поменять все названия и продавать, легко. Уже как свой собственный. Вы можете нарезать на болванки openSUSE и продавать, сколько угодно, но официальным дистрибьютером вы от этого не станете.
И не рассказывайте мне про буйствования отдела по борьбе с компьютерами. Самый пик их буйства пришелся на 2001-2005 года, в которые сначала у меня был комп.клуб со всеми лицензиями, в котором я каждую книжечку к лицензионной винде хранил и показывал при проверках, а потом я стал наемным админом в фирме, где мы спокойно показывали GNU GPLv2 с печатью, как лицензию на Debian стоявший на серверах и коробки с лицензиями для RH и SuSE(которые нам были нужны, ибо некоторые конторы отказывались обеспечивать тех.поддержку своего софта, если его запускали на дистрибах отличных от прописанного у них, пусть он там и работал прекрасно).
Самба нужна только для поддержки обмена файлами между windows машинами. Т.е. самба может стоять на линукс системе, которая выполняет роль файл помойки для windows. В любых других случаях она бесполезна.
Так что критичность этой проблемы сильно преувеличена.
Ну, по результатам некоторых исследований самба может показывать хорошие результаты и в гомогенной Линукс среде. То есть самба может стоять на линукс системе просто потому что она лучше того же нфс по каким-то критериям, например скорости, безотносительно того планируется ли шару использовать с виндовс-клиентов. Какая-то совместимость с виндовс при этом лишь бесплатный бонус.
Вы сейчас глупость сказали.
Если вы имели в виду ручной запуск, то уязвимость для этого не нужна.
Если же вы имели в виду сможет ли WannaCry воспользоваться этой уязвимостью — то ответ будет "нет", причем два раза.
Во-первых, это совершенно другая уязвимость, и нашумевшая версия WannaCry о ней не знает.
Во-вторых, WannaCry не умеет запускать вайн.
Для выполнения вредоносного кода в поражённой системе требуется всего одна строка кода.
simple.create_pipe("/path/to/target.so")
Что это означает? Что для использования этой уязвимости необходимо запустить код на целевой машине?
Если версия больше либо равна 3.5.0, но меньше 4.6.4/4.5.10/4.4.14, то уязвимость есть.
Однако, мне буквально только что на сервер (Ubuntu 14.04.5 LTS) пришло обновление самбы. После обновления:
$ samba -V
Version 4.3.11-Ubuntu
$ samba -V
Version 4.3.11-Ubuntu
$ sudo aptitude upgrade samba
Resolving dependencies...
The following packages will be upgraded:
libsmbclient libwbclient0 python-samba samba samba-common samba-common-bin samba-dsdb-modules samba-libs samba-vfs-modules smbclient
.... [обновление]
$ samba -V
Version 4.3.11-Ubuntu
Mint 18.2 (ubuntu 16.04)
samba4-dc-4.2.10-10.el6_9.x86_64 updates
* Thu May 18 15:00:00 2017 Guenther Deschner <gdeschner@redhat.com> — 4.2.10-10
— resolves: #1450779 — Security fix for CVE-2017-7494
Как что? Установить обновление и продолжить пользоваться SMB v1.
Да и зачем вообще отказываться от SMBv1? Вторая и третья версия — в основном про фичи и производительность, а чтобы просто положить скан в папочку хватит и первой. Если что, описанная в статье уязвимость касается Samba, а не конкретной версии протокола.
Можно сделать отдельную физическую сеть для сканеров.
Так что клиенты из других сетей так же будут юзать v1 ;-)
Можно конечно извернуться — сканер кладёт в шару по v1 на одинсервер, а этот сервер синхронизирует папку с другим сервером, который только v2/v3 умеет :-D
Берём виртуалку, расшариваем в неё папку /path/to/scans/ хоста. Пробрасываем в неё интерфейс eth1. Поднимаем на виртуалке smb v1 сервер. Цепляем сеть со сканерами к eth1.
Поднимаем на хосте smb v2/v3/etc сервер, указываем ему на /path/to/scans.
Почти то же самое, что и вы предложили. Костыльно, но не более, чем отдельная физическая сеть сама по себе.
просто для сканеров поднять отдельный samba-сервер, допустим, в контейнере (docker/lxc/lxd) и просто фаерволом рутить IP-шники сканеров в нужный контейнер
1. Класть сканы по FTP/NFS, забирать можно и по SMB v2/3
2. Отправлять на почту. Но чревато неудалением этих писем -> раздуванием мейлбоксов.
Ну и 3-й описал в другом коменте выше
т.е. всё, что до: 1, 2, 3.4 — этого не касается.
2. На QNAPe добавил строчку, запрещающую pipe. Ожидаемый результат — виндовские станции перестали видеть список ресурсов напрочь. Зато если адресоваться непосредственно к искомой расшаренной папке \\nas\my_share — всё прекрасно работает.
Внимание! Linux-версия эксплойта EternalBlue