Какого черта NTFS разрешает невидимые исполняемые файлы?

105

Вы можете скрыть любой файл внутри другого файла, просто набрав:

type sol.exe > container.txt:sol.exe

и для запуска файла скрытый файл просто используйте:

start c:\hide\container.txt:sol.exe

Но сумасшедшая часть этого в том, что он не увеличивает размер файла (поэтому он полностью скрыт).

И если вы удалите файл со скрытым содержимым внутри, скрытый материал не будет удален. Просто используйте:

more <  container.txt:sol.exe > sol.exe

Почему NTFS позволяет это? Кажется, это лучший способ скрыть вирус.

Kredns
источник
1
приятно, похоже на Mac.
Стефано Борини
15
хуже, когда вы запускаете sol.exe таким образом, диспетчер задач отображает имя процесса в виде container.txt
hasen
16
Мы должны бомбить Google, чтобы «страшно» привело к этому вопросу
Хасен
4
С тех пор, как это было вокруг, все еще поразительно время от времени сталкиваться с разработчиками AV / другими людьми, которые интенсивно работают с файловой системой, которая все еще не знает об этом. Я не ожидаю, что среднестатистический разработчик приложений узнает об этом, так как в этом нет необходимости, но если вы увлечены работой с файловой системой ... :-)
Брайан Кноблаух,
Предположительно, вы также можете прикрепить ADS к папке. Вы можете удалить ADS, удалив папку, но когда папка является корнем вашего диска, вы не можете удалить свой диск C: например, без переформатирования диска. Похоже, механизм создания скрытого вируса руткита для меня (?).
HighTechGeek

Ответы:

98

У этого вопроса есть две стороны. Во-первых, почему эта функция вообще существует, а во-вторых, почему графический интерфейс (или командная строка) не облегчает просмотр и управление этой функцией.

Это существует, потому что это полезно. Несколько других платформ поддерживают несколько потоков данных на файл. Например, на Mac их называли вилками . Я достаточно уверен, что подобные вещи существовали в мире мэйнфреймов, но сегодня я не могу указать на какие-либо явные примеры.

В современной Windows он используется для хранения дополнительных атрибутов файла. Вы можете заметить, что в окне «Свойства», доступном из проводника Windows, есть вкладка «Сводка», которая в простом представлении (у меня Windows XP, пробег у вас будет отличаться от других вариантов) включает в себя множество полезных полей, таких как заголовок, тема, автор и так далее. Эти данные хранятся в альтернативном потоке, вместо того, чтобы создавать какую-то базу данных вспомогательной машины для хранения всего, что слишком легко отделить от файла.

Альтернативный поток также используется для хранения маркера, который говорит, что файл получен из ненадежного сетевого источника, который применяется как Internet Explorer, так и Firefox при загрузке.

Сложный вопрос: почему нет лучшего пользовательского интерфейса для того, чтобы замечать, что потоки вообще существуют, и почему в них можно поместить исполняемый контент и, что еще хуже, выполнить его позже. Если здесь есть ошибка и угроза безопасности, вот оно.

Редактировать:

Вдохновленный комментариями к другому ответу, вот один из способов узнать, знает ли ваша антивирусная и / или антивирусная защита об альтернативных потоках.

Получить копию тестового файла EICAR . Это 68 байтов текста ASCII, который также является допустимым исполняемым файлом x86. Несмотря на то, что антивирусная индустрия совершенно безвредна, было решено, что она будет обнаружена как настоящий вирус. Создатели думали, что тестирование программного обеспечения AV с реальным вирусом было бы слишком похоже на тестирование пожарной сигнализации, зажигая мусорную корзину в огне ...

Файл EICAR:

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

Сохраните его с расширением, .COMи оно будет выполнено (если ваш AV не обращает на это внимания) и напечатает приветствие.

Было бы полезно сохранить его в альтернативном потоке данных и запустить сканирование ...

RBerteig
источник
11
По структуре отображаемый размер файла показывает только размер основного потока $ DATA. Это также то, что вы обычно хотите. Вы не включаете длину имени файла (который является одним из видов метаданных) в размер файла. Что касается угрозы безопасности. ADS не более риск, чем любой отдельный файл. Я не слышал ни о каком вредоносном ПО, которое успешно распространялось / скрывалось с помощью этих механизмов.
Джои
4
Вы не можете случайно запустить исполняемый файл, хранящийся в ADS текстового файла. Он хорошо спрятан, слишком спрятан для обычного пользователя, чтобы случайно запустить его. Вы должны быть скомпрометированы в первую очередь.
Р. Мартиньо Фернандес
7
@ashh: Мартиньо прибивает его - мрак, который затрудняет поиск исполняемого файла в таком потоке, также затрудняет его выполнение без активной попытки. Сравните это, скажем, с целым фиаско «скрытых расширений файлов», где исполняемые файлы могут выглядеть, скажем, как текстовые файлы в графическом интерфейсе ... и при этом выполнять очень легко.
Shog9
3
Предполагая, что у вас есть AV, который, по крайней мере, обращает внимание на файл .COM в режиме реального времени, вы не сможете прикрепить его как ADS, так как AV не позволит вам получить доступ к файлу .COM (при подключении ADS требуется один для доступа к файлу. файл). Однако вы должны иметь возможность прикрепить текстовый файл со строкой EICAR и назвать его с расширением .COM внутри ADS. т.е. введите EICAR.txt> test.txt: EICAR.COM
KTC
2
Интересный факт о файле EICAR.COM: он не будет работать ни на каких 64-битных версиях Windows, поэтому я полагаю, что этот трюк больше не будет работать, если все будут работать на 64-битных машинах (что, вероятно, еще долго будет).
Креднс
15

Эта функция требуется для кроссплатформенной функции Windows Server: службы для Mac.

Это позволяет серверу Windows, работающему на общем ресурсе NTFS, обращаться к macs через AFP. Чтобы эта функция работала, файловая система NTFS должна поддерживать вилки, и она имеет с первого дня.

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

Основная проблема безопасности возникает, когда люди и приложения забывают или не осознают, что это там.

Вероятно, должен быть вариант, чтобы включить вилки в общий размер файла или показать их в проводнике Windows.

Брюс Маклеод
источник
2
Если вы собираетесь проголосовать вниз, оставьте комментарий, почему.
Брюс Маклеод
2
Это звучит как вполне вероятная причина существования этой функции в первую очередь.
RBerteig
3
добавление этой функции просто для того, чтобы разрешить общий доступ к файлам для macs, не выглядит правдоподобной причиной Совместное использование по сети не требует сохранения файла в целости на стороне сервера. Я видел несколько * nix яблочных серверов, которые делят файл на данные и информацию о ресурсах. Это прозрачно для клиента. Изменение фактического формата диска только для разрешения AFP не представляется реалистичным. Это может быть хорошим преимуществом, но не как ПРИЧИНА для этой функции.
Simurr
2
Да, я думаю, что [цитата нужна], если вы собираетесь утверждать, что SfM является основной причиной того, что MS внедрила ADS в NTFS.
afrazier
3
Цитата: ... Возможности ADS, изначально задуманные для обеспечения совместимости с иерархической файловой системой Macintosh, HFS ; где информация о файле иногда разбивается на отдельные ресурсы. Альтернативные потоки данных стали законно использоваться различными программами, включая собственную операционную систему Windows для хранения файловой информации, такой как атрибуты и временное хранилище. источник: windowsecurity.com/articles/Alternate_Data_Streams.html
Джеймс Барнетт
5

Я полагаю, что одно из основных применений (возможно, даже предполагаемое использование) будет прозрачно разрешать добавление метаданных любого типа в файл. Причина, по которой размер файла не изменяется, заключается в том, что в этом сценарии вы не хотите, чтобы файл выглядел или вел себя по-другому, иначе исходное приложение полагается на некоторые аспекты внешнего вида файла.

Я мог бы представить интересное использование, например, в IDE, где иногда для создания единого блока (файла кода / файла формы и т. Д.) Используется несколько файлов, которые можно прикрепить к исходному файлу таким образом, чтобы они не могли случайно отделиться.

Я также считаю, что есть команда для поиска всех таких «вложений» в заданном дереве каталогов, поэтому они не являются полностью скрытыми. Меня также удивило бы, если бы лучшие антивирусные сканеры не знали об этом и не проверяли эти «скрытые» области, но вы могли бы проверить это, целенаправленно прикрепив зараженный исполняемый файл к текстовому файлу и посмотрев, поднялся ли он.

jerryjvl
источник
Не могли бы вы опубликовать ссылку на такой исполняемый файл, чтобы я мог попробовать? ;)
Р. Мартиньо Фернандес
Я предлагаю вам запустить AVG на своей машине, а затем взять один из исполняемых файлов из папки карантина, чтобы попробовать;)
jerryjvl
2
@martinho, вам нужен тестовый файл EICAR: X5O! P% @ AP [4 \ PZX54 (P ^) 7CC) 7} $ EICAR-STANDARD-ANTIVIRUS-TEST-FILE! $ H + H * Просто вставьте этот текст (точно 68 байтов текста ASCII, см. Eicar.org/anti_virus_test_file.htm для всей истории) в файл с именем с расширением .COM. Он запустится и распечатает сообщение. Если, конечно, ваш AV не работает. Перетащите его в альтернативный поток данных и проверьте там тоже.
RBerteig
@RBerteig: Эй, круто ... не знал, что такое было.
Jerryjvl
@jerryjvl, как говорится, лучше, чем тестирование пожарной сигнализации, зажигая мусорную корзину в огне ...
RBerteig
5

Вот хорошая статья о потенциальной уязвимости безопасности, создаваемой альтернативными потоками данных .

JP Alioto
источник
6
<nitpick> Это уязвимость, а не угроза </ nitpick>. И это не так важно, как кажется. Вы должны уже иметь учетные данные, чтобы использовать его.
Романдас
Без проблем. Кстати, проверьте свое правописание. И всегда помните: угрозы используют уязвимости. Угрозы - это, как правило, люди, но учитываются и стихийные бедствия.
Романдас
@romandas, какие учетные данные тебе уже нужны? Дома большинство пользователей Windows (в частности, XP) работают с правами администратора, так почему это не так важно, как кажется?
Эш
@ashh, "методом сокрытия ... в взломанной системе". Система должна быть скомпрометирована в первую очередь, чтобы что-то скрыть, и аналогичным образом выполнить что-то скрытое, как это.
KTC
5

Хороший вопрос, я не знал должным образом об ADS до прошлого года, и я был разработчиком Windows много лет. Я могу гарантировать, что я не одинок в этом.

Что касается возможности проверять наличие альтернативных данных в файлах, я нашел полезный небольшой инструмент под названием Lads, доступный в программном обеспечении Фрэнка Хейна. Он может перечислять ADS для всех файлов в данном каталоге, даже для зашифрованных файлов (а также в подкаталогах).

ясень
источник