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

3539
Kredns

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

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

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

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

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

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

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

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

104
приятно, похоже на Mac. Stefano Borini 14 лет назад 1
хуже того, когда вы запускаете sol.exe таким образом, диспетчер задач показывает имя процесса в виде container.txt hasen 14 лет назад 15
Надо бомбить гугл так что "страшно" приводит к этому вопросу hasen 14 лет назад 16
With as long as this has been around, it's still astounding to occasionally run across AV developers/other people that work heavily with the filesystem that STILL don't know about it. I don't expect the average app developer to know about it since there's no need, but if you're heavy into filesystem stuff... :-) Brian Knoblauch 12 лет назад 3
Предположительно, вы также можете прикрепить ADS к папке. Вы можете удалить ADS, удалив папку, но когда папка является корнем вашего диска, вы не можете удалить свой диск C: например, без переформатирования диска. Похоже, механизм создания скрытого вируса руткита для меня (?). HighTechGeek 10 лет назад 0

5 ответов на вопрос

98
RBerteig

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

Это существует, потому что это полезно. Несколько других платформ поддерживают несколько потоков данных на файл. Например, на 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 не обращает на это внимания) и напечатает приветствие.

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

По структуре отображаемый размер файла показывает только размер основного потока $ DATA. Это также то, что вы обычно хотите. Вы не включаете длину имени файла (который является одним из видов метаданных) в размер файла. Что касается угрозы безопасности. ADS не более риск, чем любой отдельный файл. Я не слышал о каких-либо вредоносных программах, которые успешно распространялись / скрывались с помощью этих механизмов. Joey 14 лет назад 11
@ Йоханнес, "ADS не более риск, чем любой отдельный файл" Вы шутите, я надеюсь! «Простой» текстовый файл, содержащий исполняемый файл ADS, очевидно, представляет больший риск, чем текстовый файл без ADS. Такой ADS является определением «троянского коня», которое, как представляется пользователю, выполняет желаемую функцию, но в действительности выполняет некоторые вредоносные действия в системе. Ash 14 лет назад 0
Вы не можете случайно запустить исполняемый файл, хранящийся в ADS текстового файла. Он хорошо спрятан, слишком спрятан для обычного пользователя, чтобы случайно запустить его. Вы должны быть скомпрометированы в первую очередь. R. Martinho Fernandes 14 лет назад 4
@ashh: Мартиньо прибивает его - мрак, который затрудняет поиск исполняемого файла в таком потоке, также затрудняет его выполнение без активной попытки. Сравните это, скажем, с целым фиаско «скрытых расширений файлов», где исполняемые файлы могут выглядеть, скажем, как текстовые файлы в графическом интерфейсе ... и при этом выполнять очень легко. Shog9 14 лет назад 7
Предполагая, что у вас есть AV, который, по крайней мере, обращает внимание на файл .COM в реальном времени, вы не сможете прикрепить его как ADS, так как AV не позволит вам получить доступ к файлу .COM (при подключении ADS требуется один для доступа к файлу. файл). Однако вы должны иметь возможность прикрепить текстовый файл со строкой EICAR и назвать его с расширением .COM внутри ADS. т.е. введите EICAR.txt> test.txt: EICAR.COM KTC 14 лет назад 3
Некоторые антивирусные программы фактически используют альтернативные потоки данных, чтобы пометить файлы как проверенные и ускорить сканирование (предположительно, с отметкой времени и / или контрольной суммы для распознавания измененных файлов, которые необходимо перепроверить. Michael Borgwardt 14 лет назад 0
@ KTC, конечно, на самом деле включение тестового вируса EICAR в ADS - это упражнение для студента ... хорошее антивирусное решение должно сделать это трудным для достижения, так же, как оно должно затруднить распространение настоящего вируса ... RBerteig 14 лет назад 0
Фу, мой антивирус работает! :) RCIX 14 лет назад 1
Интересный факт о файле EICAR.COM: он не будет работать ни на каких 64-битных версиях Windows, поэтому я полагаю, что этот трюк больше не будет работать, когда все будут на 64-битных машинах (которые ** все еще **, вероятно, будут в то время как). Kredns 14 лет назад 2
@ Лукас, интересно. Я полагаю, это означает, что Win64 окончательно исключил всю поддержку 16-битных COM-файлов. Однако, если у вас установлено 32-разрядное расширение виртуальной машины и в нем запущен 32-разрядный файл CMD.EXE, он сможет запустить файл EICAR. RBerteig 13 лет назад 0
@LucasMcCoy: У меня 64-разрядная версия Win8, и я даже не могу заставить ее работать в первую очередь, поскольку Защитник Windows продолжает помечать и удалять ее: P Nathan Osman 10 лет назад 0
@NathanOsman Хорошая новость заключается в том, что Защитник Windows защищает вас даже от кода, который, вероятно, вообще нельзя запустить на 64-разрядной платформе. :-) RBerteig 10 лет назад 0
15
Bruce McLeod

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

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

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

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

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

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

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

Это уязвимость, а не угроза, И это не так важно, как кажется. Вы должны уже иметь учетные данные, чтобы использовать его. romandas 14 лет назад 6
Нет проблем. Кстати, проверьте свое правописание. И всегда помните: угрозы используют уязвимости. Угрозы, как правило, люди, но также учитываются природные и искусственные бедствия. romandas 14 лет назад 0
@romandas, какие учетные данные тебе уже нужны? Дома большинство пользователей Windows (в частности, XP) работают с правами администратора, так почему это не так важно, как кажется? Ash 14 лет назад 0
@ashh, "методом сокрытия ... в взломанной системе". Система уже должна быть скомпрометирована в первую очередь, чтобы что-то скрыть, и аналогичным образом выполнить что-то скрытое, как это. KTC 14 лет назад 0
5
jerryjvl

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

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

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

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

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

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