3201 читатель, 556 постов
Администрация
Модераторы
О том, как мы защищаем свою информацию — от взлома, повреждения, фишинга и т.д. Новости мира anti-virus, anti-spam, anti-spy и т.д.
Личные впечатления, опыт, мнения.
Личные впечатления, опыт, мнения.
комментарии (167)
Ubuntu Linux user.
Куча поводов, на само деле! :)
Действительно очень сложно, когда хорошо отработанная технология дает сбой.
И еще хуже когда производитель отказывается исправлять в ней существенные найденные недостатки.
Ребята у нас тут проблемы замками, любой человек может сесть и уехать, обращайтесь к автомеханикам, нам как-то влом чинить.
Если у вас никак не фильтруется то, что загружают на сервер, а так же пользователи могут использовать html теги без всяких фильтров, то флеш тут как бы не виноват.
Ближайшая аналогия — xss
embed src="/userfiles/ololololo.zip", причем это еще должно отдаться с нужным mime-type, если я правильно понимаю.
чтобы он сделал свое черное дело, он должен лежать на домене хабра и отдаться с нужным mime-типом.
Популярные веб-сервера как правило берут миме-тип из расширения файла. Этот зип скорей всего Вам предложат скачать как application/zip, а не выполнить как application/x-shockwave-flash.
А вот уже локально, да, можете поменять расширение, чтобы он сделал свое грязное дело.
вы не поняли. Я выкладываю этот «зип» на яндекс.диск, и он ломает именно яндекс, а хабр мне нужен только для того, чтобы люди перешли по ссылке
неизвестно, как именно определится майм-тип у такого «троянского коня»
ps: если что, я знаю, что под троянами сейчас обычно имеют в виду другое
у меня почему-то есть уверенность, что он будет отдан именно как зип, т.к. является валидным зипом и имеет расширение zip.
необходимые пояснения:
* уверенность названа необоснованной из-за слов «почему-то есть уверенность»
* конкретно яндекс-диск скорее всего не подвержен уязвимости, я его привёл как доступный пример файлохостинга
* если в списке проверок автоопределителя типов проверка на флеш происходит до проверки на зип, то файл определится как флеш
olololo
покажите, пожалуйста, хоть один веб-сервер который по-умолчанию определяет mime тип по внутренним соображениям, при этом не принимая во внимание расширение файла.
я не эксперт по безопасности, поэтому точно не скажу
и всё-таки давайте не забывать, что далеко не все веб-сервера отдают content-type. Например, на ya.ru картинки отдаются без него. А nginx очень популярен как раз для файлохостингов
iolololololo
dovg@habahaba ~ $ telnet ya.ru 80 Trying 213.180.204.8... Connected to ya.ru. Escape character is '^]'. GET /logo.png HTTP/1.1 Host: ya.ru HTTP/1.1 200 OK Server: nginx Date: Fri, 13 Nov 2009 11:02:46 GMT Content-Type: image/png Content-Length: 1418 Last-Modified: Thu, 21 May 2009 09:37:21 GMT Connection: keep-alive Accept-Ranges: bytes �PNG ▒ IHDRd�7�g�PLTE ▒▒▒!!$$$'''***---000333666999<<<???BBBEEEHHHKKKNNNQQQTTTWWWZZZ]]]```cccfffiiilllooorrrxxx{{{~~~������������������������������������������������������������������������������������������������������������������������������ ▒$'03?BHKNQ`filrux{~��������������������������Ɛ��IDATX����WTU▒���af��$k�!!.�0 �EDf�y(� ���V�����k���^�s��h�Z��y�׳����<��}�$�ɝ���73��▒���[����!ߚ��'�vj��1��~},ݮ��▒\�>@����vh� G�M����9;v���\���}�N����BB�▒����$�d▒%IM0��q�_8"c��l�J�uB�$i� ��ʹ�|of�#��$�`�K���7���Ӓ�R�R�$M8^�Y�����Uy �lH��L��S�ͽ� �Ȱ��3DZ�K��)�of���>H��>h���٠���J�0��7���X�� �I:,H�H�Cw�o� ��!zA��ɯ*D��v)I&��d$?���y`X�V�q��~I�0[ў�}�G �C��Zy8t$�����3�r%�s�K� {R�,A�����@b�-3 ��?>�p ^�,9�G�HqVBzt�l�YU�&n�}��▒��ᬇ�{�ۥ��PwA�8�,C~0��T �V@��E�/)�p"q�u]�u'=d�ޒ$�WF�_5�zR�t �B,]��UpV�\b��+3��jH���\!2 $ʐ` o�w'D�o���U ��+IkQ�;W�� �E�]��\!����U$Ӄ�u]�h��t▒�!��x���N�[���Dk㐇�3�+ϫ!�ǐ�'?�CDǁy)�$Oz�u��_�m��mIR2����d��\��6�IEND�B`�Connection closed by foreign host.#�q&��=0���%��]�Content-Type: image/png
drafonfly меня подвёл, показал не все заголовки : (
> покажите, пожалуйста, хоть один веб-сервер который по-умолчанию определяет mime тип по внутренним соображениям, при этом не принимая во внимание расширение файла.
тот, который на mail.google.com, что продемонстрировано по ссылке в посте
Если я правильно понял это видео с низким разрешением, то gmail просто не фильтрует html-tags, которые живут в их письмах.
речь идёт именно об swf, а не о письме с опасным embed — с фильтрацией-то в gmail наверняка всё в порядке
чтобы все работало, оно должно именно быть отдано как «объект флеш».
Мну бешено негодует и сносит флеш к чертовой матери.
Повторяю: флеш — говно.
Хотя лучики поноса тоже не помещают, главное не увлекаться.
А мне минусы за шуточный пост…
Это решило бы много много головной боли.
А Адобе — говнюки. Влом им чинить, видите-ли %)
Чтобы исполнился — надо
Весьма непростая задача.
почему «эксплойт» открыл окно на сайте автора страницы, а не гмайловской…
«Flash имеет доступ к куки того домена, с которого он загружен (а не того, где расположен тег object).» — причем тут вообще эксплойт. Если б все было так просто…
Еще есть возможность положить сверху zip архива флешину, при том, что архив будет продолжать открываться библиотеками, а содержимое, опять же, исполняться в контексте сервера.
Суть в том, что если мы подпихиваем флешку на нужный домен, то ей разрешено делать любые запросы от имени пользователя, а лечить это можно выносом пользовательских файлов на другой домен, с которого запрещены запросы.
Кстати, если сайтом разрешены cross-domain communications (через выкладывание соответствующей xml-ки в корень), то он уязвим и при такой атаке на любой из разрешенных там хостов.
Это примерно то же, что «А-а-а-а! В exe-файлах проблема — они выполняются, там где запустишь! А microsoft не хочет устранять эту уязвимость!»
Imho, данную проблему вполне себе решает плагин FlashBlock.
Да, flash — это активный контент, который может не только кружочки двигающиеся рисовать, но и нести в себе вредоносный код. А вы до прочтения топика не знали об этом? Удивительно.
просто внезапно оказалось, что в песочнице хранятся особо ценные печеньки
С одной стороны — это нужно и удобно, с другой — потенциально небезопасно. Кстати, насколько я знаю, у флеша свои печеньки (которые \Macromedia\Flash Player\ и не зависят от используемого браузера). Но, вполне возможно, механизм получения «браузерных» флешу тоже нужен: чтобы, к примеру, не требовать авторизации на страницу отдельно, на флеш-ролик — отдельно. Опять же, «просто к файловой системе» доступ у плеера, вроде, есть (тут я могу быть неправ!), а это значит, что теоретически можно, зная ОС и браузер, просто слить файлы с куками себе на сайт.
Вообще самое слабое звено тут — всё-таки сам способ хранения сессии с помощью печенек. По-хорошему, надо бы протокол, над TCP (или UDP — почему нет?), который шифрован, обеспечивает аутентификацию и сам держит сессию. Ну да вроде что-то такое уже давно разрабатывают. Ждём. Хрустя печеньками.
браузер, вообще-то, тоже системное приложение, которое подобно флеш-плагину интерпретирует скрипты. Вы хотите сказать, что дыры в IE — это не проблемы IE?
Описанная конкретно ситуация такова: На Gmail приходит письмо с прикреплённым активным содержимым, Gmail пытается показать аттач в браузере, отдавая сформированную страницу, при этом выполняется скрипт, который внутри этого аттача. Разумеется с разрешениями для домена Гугла.
Что надо сделать для устранения? Меня устраивает простой HTML вид в гугле: он быстр, информативен и достаточен для моих целей. Ума не приложу, почему его нельзя поставить по умолчанию, а не переключаться каждый раз. Если есть аттач, я могу скачать его к себе и запустить отдельно. Если хочу.
Я хочу сказать, что не надо разводить проблем, подобных описанным в тексте про «хакера», столовую и соль (*). Надо найти хакера и надавать ему люлей. Если это будет делаться быстро и безошибочно — то будет хорошо. К этому надо стремиться.
(*) известный текст в интернете, ознакомиться можно, например, тут forum.rsu.edu.ru/viewtopic.php?f=25&t=601
Хотя некоторые пытаются «вести себя по-новому» :-)
Для недалеких, объясните в чем epicFail.
Как я понимаю на сервер сгружается «вредоносная» flash и запускается. Что страшного она делает?
Проблема возникает в том случае, если я правильно понимаю, когда «жертва» открывает чужой вредоносный flash в некоторой интимной зоне.
То есть надо оказаться на одной странице с вредной флэшкой.
Как варианты
— прислали по почте, смотрим через веб интерфейс
— на ресурсе разрешены флэшевые элементы персонализации и вставки. Форумы с аватарами, вставка блоков типа youtube.
— баннеры
Все верно?
1. Есть фейковая страница регистрации.
2. Есть страница Гмыла открытая пользователем.
3. Есть алерт с переменными со страница Гмейла.
Видно что никаких новых писем на Гмейл не приходило, то есть флэшка находится в табе с фейк-регистрацией.
Каким образом получены данные со страницы Гмыла?
[Понимающе кивает]
В общем случае ничего не мешает сделать object/embed на какой-нибудь страничке не имеющей отношения к сайту, потому как flash имеет доступ к куки того домена с которого он загружен (а не того, где расположен тег object)
Это, простите, как?
После этого просил пользователя посмотреть почту. Пользователь логинится в gmail и flash объект ранее загруженый на странице атакующего (в другой вкладке) тут же получает доступ к ящику пользователя.
Вообщем, если сервер раздает контент, то можно, скажем, в zip подмешать немного флеша и выполнить его с чужой странички. Итого, заходя на неизвестный сайт — можно ему подарить куки тех сайтов которые ему интересны (если там уже лежит нужная флэшка или почти флешка — немного подпорченый zip)
То, что у флэша есть такая проблема было известно очень давно. Насколько я знаю, эту дыру уже использовали — воровались данные пользователей с форума.
Однако пользователи хабра стали с такой активностью обсуждать возможность загрузки флэша под видом фалов других типов, что складывает впечатление, что обнаружили какую-то новую дыру в безопасности.
Если это действительно новая дыра, то объясните, какие уникальные свойства приобретает флэш в результате смены расширения? Если таких новых особенностей нет, то что обсуждаем? То, что флэш может читать куки на компьютере пользователя? Это известно очень давно.
Но если какое-то сервис позволяет загрузить swf-ку, которая будет доступна всем, то один раз сами её загружаем и вставляем тег embed на свою страницу. Останется показать нашу страницу интересующим людям.
Ничего, что об этом писали год назад сами Adobe?
Единственная новая идея, причем неуникальная, — тот факт, что можно залить файл как txt и встроить его через embed.
Вообще, довольно хорошая превентивная защита — раздавать все аттачи только через другой домен. А этот громкий пост заставит всех владельцов сайтов об этом задуматься наконец.
Как исполнится скрипт на сервере, если у него не будет флага «исполняемый».
Через обычную форму тоже можно дофига всего закачать.
Дальше: «Flash имеет доступ к куки того домена, с которого он загружен (а не того, где расположен тег object).» Жесть если это так — просто мрак… но где это продемонстрировано в ролике. Типа в алерте был текст письма? — открываем фаирбаг, смотрим… что-то не вижу переменной, в которой храниться текст письма. Ролик вообще ни о чем. Кому-нибудь удалось получить доступ к кукам другого домена?))
Флэш вообще не умеет оперировать куками, это делается через яваскрипт.
Далее типа пруфлинк, но там рассказывается про некий сомнительный эксплойт, а вначале речь шла о куках.
Короче, мальчики, вас разыграли. Оттирайте моник от слюней. И хотя я флэш не очень люблю, здесь полный бред.
P_r_i_m_a_t
Вот он повод перейти на HTML5 Canvas. +37
cybery4k
С распространением HTML5 имхо Flash можно вообще закопать. -3
Флешеры активизировались?
Повторяю: флеш — говно. +22
Да еще с тем учетом что в статье полный бред.
надо проверить кое что перед вменяемым ответом
но что тут не любят флэш как технологию это да
любой повод сказать флэш говно обрастает плюсами
и пофиг что при этом куча других технологий имеют те же самые косяки
Может его не любят за то что AS3.0 требует ООП…
Я не люблю флэш потому что считаю браузер куда более мощным «рендером» графических интерфейсов. Но тем не менее понимаю, что некоторые программные интерфейсы во флэше куда более удобные нежели в js. Например 3d.
Собственно с тегами аудио и видео фэшу остались сокеты и 3d… хотя нафига в браузере сокеты…
Вообще не вижу особых причин для ненависти: не нравится не используй. Если заказчик хочет на промосайте эффектное флэш меню, то почему нет (если конечно вы умеете работать во флэше), анимация во флэше работает плавнее, чем в js (по крайней мере пока), удобно работать со звуком и 3d, промосайт должен привлекать внимание. А какой идиот будет делать во флэше навигацию по сайту в сервисе оля хабр. Флэшу флэшево, вот и все.
Я пока понимаю это так. Я посылаю swf или файл замаскированный под swf (как говорили, можно дописать zip и он будет валидным) на ящик @gmail.com. Потом узнаю его адрес на сервере gmail. Далее делаю страницу на своем сервере куда гружу этот swf с сервера гугла и затаскиваю туда пользователя. Если он залогинен на гмыле, то тырю через яваскрипт из флэша куки с домена mail.google.com.
При этом есть несколько вопросов, которые нужно проверить.
1) Загружаем флеш на нужный нам сайт, например: vkontakte :) gmail или куда-то еще, лишь бы туда можно было лить флеш.
2) На *своем* сервере пишем код типа: [embed src=«mail.google.com/… путь к флешке»]
3) Заманиваем жертву на свой сервак
4) Флешка загружается в браузер жертвы и получает доступ к кукам юзера на mail.google.com, + возможность жделать туда запросы.
Как уже замечено, взломщикам может помочь то, что флеш можно «склеить» с zip, gif и прочими файлами, что расширяет диапазон сайтов для взлома.
Единственное исправление, в самом новом флеше: Если есть заголовок Content-disposition :attachment, такая флешка выполняться не будет. Это защищает правильно сделанные (т.е. отдающие этот заголовок) файлообменники, форумы с вложениями для скачивания, и т.д.
Если же сайт позволяет загружать на себя флеш и отображать его — он (точнее его юзеры) может стать жертвой.
Кто виноват?
Инвалиды-разработчики HTML, которые позволили включать на страницу 3rd party активный контент (скрипты, флеши, апплеты). Производители браузеров, которые их послушали. В связи с этим уже пришлось придумать кучу дурацких правил, типа same origin policy, которая все равно например не дает 100% защиты, а только осложняет все. Сколько с этим связано угроз типа CSRF, угроз приватности и прочего — никто не борется :((
К тому же все эти тонкости слишком сложны для понимания начинающими разработчиками, что потенциально увеличивает число уязвимых сайтов.
Как бороться?
Либо не позволять загружать на свой сайт флеш (даже если он переименован в zip к примеру)б либо хранить загружаемые юзерами файлы на отдельном домене, либо отдавать все загружаемые файлы с Content-Disposition: attachment.
Что делать?
Запретить флеш :) Я например, включил флеш только для сайтов типа ютуб, на многих других он все равно не нужен (спасибо, флешевую рекламу оставьте себе).
2) На *своем* сервере пишем код типа: [a href=«mail.google.com/… путь к флешке»]
3) Заманиваем жертву на свой сервак, где яваскрипт кликает по ссылке и загружает флешку в браузер. Для флешки origin domain будет хост. где она расположена. например mail.google.com
Если да — тогда для устранения «бага» нужно чтобы он работал только в случае правильного Content-Type.
Если нет — тогда вообще «бага» никакого нет, что толку загружать на сервер флеш под видом png, если он все равно будет отдаваться с типом image/png и работать не будет.
swf — приложение и нехер у себя запускать чужие приблуды. Всегда можно ограничиться набором приложений и позволить пользователю управлять лишь их параметрами. Не тупите.