Новости выжившей из ума смехдержавы (rex_net) wrote,
Новости выжившей из ума смехдержавы
rex_net

Category:

Как браузер помогает товарищу майору

Знаете, когда я почти нечаянно обнаружил, читая прекрасную книгу Дмитрия Кетова «Внутреннее устройство Linux» (и это не реклама), что каждый скачанный нами файл из Интернета с легкой руки браузера оставляет в расширенных атрибутах файла (в inode файла, не в самом файле) как минимум полную ссылку на то откуда он был скачан, я пришел в легкое возбуждение и хотел тут же броситься спасать мир. Позже, немного изучив этот вопрос, почитав «коммиты» и «комменты», говорившие, что этой возможности, встроенной в ядро GNU/Linux, как минимум уже около 10 лет, что ею пользуется не только браузеры, но и, к примеру, популярная утилита wget (curl нет), и что эта вещь считается чуть ли не нормой в Linux (и, как выяснилось позже в MacOS), то я немного подуспокоился. Одно не давало мне покоя: поиск ключевого слова getfattr в google по сайту «Хабра»: site:https://habr.com getfattr, равно как и по ЛОРУ: site:https://linux.org.ru getfattr ничего толком не дал. «Значит» — подумал я — «эта тема еще особенно не обсуждалась». — Что же, тогда пришло время ее обсудить, но для начала пришлось немного по-исследовать. И вот что я обнаружил:



Дисклеймер*. Из-за отсутствия времени буду добавлять много букв по мере возможности. Пока только конкретика.

Да, каждый скачанный файл с помощью любого Chromium-совместимого браузера (проверено в lxc-контейнере на Chrome, Chromium, Yandex и последней Opera) записывает в расширенных атрибутах файла, спрятанных в недрах файловой системы, вот такой вывод:

i@ars:~$ getfattr -d logo.png
# file: logo.png
user.xdg.origin.url="https://habr.com/images/logo.png"
user.xdg.referrer.url="https://habr.com/images/logo.png"

При этом все они честно ничего не пишут, если вы скачиваете файл в режиме «инкогнито» / «private browsing»

Знали ли вы об этом? Если да, то хорошо. Если нет, то теперь будете знать. Что касается Firefox и Palemoon — эти парни честно игнорируют эту помощь товарищу майору. Весь букет программ для просмотра Интернет-страниц я не проверял, но думаю, все, что основано на Chromium делает это, остальные скорее нет.

Теперь о MacOS и Windows. В «макоси» данная функция также работает в Chrome:

iMac-Igor:~ [censored]$ xattr -l habr_logo.png
com.apple.metadata:kMDItemWhereFroms:
00000000 62 70 6C 69 73 74 30 30 A2 01 02 5F 10 20 68 74 |bplist00..._. ht|
00000010 74 70 73 3A 2F 2F 68 61 62 72 2E 63 6F 6D 2F 69 |tps://habr.com/i|
00000020 6D 61 67 65 73 2F 6C 6F 67 6F 2E 70 6E 67 5F 10 |mages/logo.png_.|
00000030 20 68 74 74 70 73 3A 2F 2F 68 61 62 72 2E 63 6F | https://habr.co|
00000040 6D 2F 69 6D 61 67 65 73 2F 6C 6F 67 6F 2E 70 6E |m/images/logo.pn|
00000050 67 08 0B 2E 00 00 00 00 00 00 01 01 00 00 00 00 |g...............|
00000060 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000070 00 00 00 51 |...Q|
00000074
com.apple.quarantine: 0001;5c8a21e7;Google Chrome;26D6C537-E6B0-4715-9E77-656FF1C5B7A9

… работает она и в Safari. В FF не проверял, но полагаю, что прекраснодушный Firefox для MacOS также лишен этой «привилегии», как и в Linux.

Утверждается, что это фича используется для определения файла «скаченного из Интернет» и именно по наличию этого атрибута в «макоси» выскакивает предупреждение об опасности запуска и т.п. Хм… Странно… Но здесь мы плавно перейдем к Windows.

«Венда» вещь безусловно бездарная и следящая за всеми с неприкрытым цинизмом. (чего только стоят неотключаемые обновления в W10! ). В ней, в NTFS также спрятаны лазейки для записывания чего угодно в расширенные атрибуты файлов. Называются они streams и могут все тоже самое. Говорят, что в эти припрятанные файловой системой «потоки» периодически любят что-нибудь да записывать вирусы, поскольку все остальные программы их используют редко. Не могу ничего сказать, я Windows последние 10 лет не пользуюсь. И все же. При первом приближении в Win10 я не обнаружил подобной «мелочи», а именно того факта, чтобы в расширенный атрибуты NTFS Google Chrome писал ссылки подобно тому, как он делает это в Linux и MacOS. Оговорюсь: это при первом приближении, поскольку утверждается, что у streams есть как-бы несколько слоев и не все они прямо доступны.

ОТСЮДА

Интересное про #безопасность. Оказывается, гугловская поделка Chrome (и основанный на его движке Chromium со всем своим семейством), а так же браузер Safari - не предупреждая пользователя и не давая возможности отключить "фичу" - пишут в атрибуты скачиваемых файлов их источник. Сказать, что это неправильно - это ничего не сказать. Это существенная дыра в безопасности. 🤬 Чего ради это делается - совершенно непонятно, никакие рациональные мотивы в голову не приходят. Только анализ действий пользователей и ...сбор информации?

Что с этим делать? Для Linux можно использовать небольшой скрипт, который лишнее cотрет (см. в статье), а вот как быть с Windows и MacOS? Ничего разумнее, чем "прокрутить" скачанные файлы через носитель с FAT32/ExFAT (перенести их туда, сделать очистку диска чем-то типа CCLeaner и записать обратно) я сходу придумать не могу. Впрочем, и это неплохое решение.

А вообще, конечно, долой Chrome, да здравствует Firefox!!!

UPDATE: радикальное решение для пользовательй Windows состоит в установке ключа реестра:

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Attachments]
"SaveZoneInformation"=dword:00000002

Вот так должно получиться:



Перезагружаемся и после этого запись дополнительной информации о скачиваемых файлах прекращается.

UPDATE2: очистить уже сохраненную информацию в потоках NTFS можно с помощью утилиты streams/streams64. Скачать отсюда:
https://docs.microsoft.com/en-us/sysinternals/downloads/streams?fbclid=IwAR0CzAKPIuYctWi3T7f0cHnIr8sWQKpNRk_KVZnipMB4OUja82co-INvros

Всё довольно просто.


Tags: #безопасность, безопасность, интернет
Subscribe

Recent Posts from This Journal

  • Post a new comment

    Error

    default userpic
    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 0 comments