Как узнать какой процесс создал файл

Обновлено: 03.07.2024

Я ищу приложение, которое может отслеживать мой системный диск C: и находить, какая программа создает папку с довольно общим именем TEMP1\ на этом диске.

Я бы не возражал, если бы он также мог перехватывать создание файлов - так как там также было создано несколько файлов (вполне вероятно, из другого процесса). Google не помогает мне, так как имена этих файлов тоже немного родовые (не как TEMP1 будто - dvmaccounts.ini и dvmexp.idx ).

Проблема в том, что каждый раз, когда я удаляю их, они воссоздаются при запуске, поэтому утилита, которую я ищу, должна запускаться при загрузке, а также запускаться быстро. Это также должно быть очень умно, так как мой диск C: огромен.

Почему вы даже беспокоитесь об этом? Вы знаете, что некоторым программам действительно нужно создавать некоторые файлы для правильной работы (даже если они неправильно спроектированы)? @slhck: сделанные вами правки фактически исключают информацию - пожалуйста, верните ее. Нет: например, TEMP1 - TEMP1, что означает, что Google не поможет. И я не (очень - у меня есть несколько причин для беспокойства) беспокоиться - довольно любопытно. Папка всегда пуста, кстати. И по общему признанию я ненавижу людей, снимающих вещи с моего диска c: Я не совсем понял, но теперь это имеет больше смысла? Я вернул предложение к тому, что вы изначально написали. Пожалуйста, измените при необходимости. Извините, если потерял какую-то информацию.

Вы можете использовать Process Monitor , бесплатный от Microsoft, чтобы сделать это. Установите фильтр внутри Process Monitor для этой папки, и он покажет вам, когда / если к нему обращаются:

Process Monitor - это расширенный инструмент мониторинга для Windows, который в режиме реального времени показывает файловую систему, реестр и активность процессов / потоков.

Если вы считаете, что к этой папке обращаются только во время процесса загрузки, вы можете включить ведение журнала загрузки , выбрав соответствующий пункт меню в разделе «Параметры». При следующей загрузке Windows Process Monitor записывает всю системную активность в файл журнала, который можно просмотреть позже. Вам действительно нужно ввести ограничительный фильтр, иначе время загрузки будет очень долгим.


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

Однажды на форум обратился человек, у которого какое-то приложение записывало в корень системного диска файлы, в имени которых содержится tmp _out.

Process Monitor

Конечно, не исключено, что эта система заражена, и требуется тщательная проверка всевозможными антивирусными средствами. Но далеко не всегда проблема связана с вредоносным кодом, и тогда понадобится другой подход. Проще всего вычислить виновника появления таких файлов с помощью утилиты Process Monitor. Из видео за четыре минуты вы узнаете, как это сделать.

Отслеживание активности

При запуске утилита отслеживает несколько типов системной активности:

  • реестр
  • файловую систему
  • сеть
  • процессы и потоки

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

Process Monitor

Кроме того, убедитесь, что утилита отслеживает активность. Если у вас перечеркнута кнопка, которая на рисунке обведена красным, нажмите CTRL+E.

На рисунке выше активность отслеживается, причем только в файловой системе.

Основной фильтр

Теперь нужно применить фильтр, чтобы исключить не относящуюся к делу активность. Нажмите сочетание клавиш CTRL+L, и вы увидите возможности фильтрации. В Process Monitor сразу активны некоторые фильтры, исключающие отслеживание деятельности самой программы, а также некоторых системных компонентов (файла подкачки, таблицы MFT и т.д.). Это сделано для того, чтобы исключить мониторинг стандартной активности системы. В большинстве случаев удалять эти фильтры не нужно, и достаточно просто добавить свой.

Process Monitor

На рисунке выше показан фильтр, который будет отслеживать создание и изменение всех файлов, в путях к которым содержится tmp _out. Давайте разберем фильтр подробнее слева направо:

  • Path. Путь в файловой системе. Также можно указывать разделы реестра, когда отслеживается активность в нем.
  • contains. Условие, по которому определяется поиск ключевого слова. В переводе с английского это слово означает «содержит». В зависимости от задачи можно конкретизировать условие, выбрав вариант begins with (начинается с) или ends with (заканчивается на).
  • tmp _out. Ключевое слово, которое в данном случае должно содержаться в пути. Имя файла и его расширение являются частью полного пути к файлу.
  • Include. Включение заданного условия в список отслеживаемых.

Не забудьте нажать кнопку Add, чтобы добавить фильтр в список. Впрочем, если вы забудете, Process Monitor напомнит об этом, прежде чем закрыть окно фильтров.

В данном случае я использовал часть имени файла в качестве ключевого слова, поскольку все непонятные файлы содержат в имени tmp_out. Если файлы создаются с разными именами, но зато в определенной папке, используйте путь к этой папке в качестве ключевого слова.

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

Проверить работу фильтра очень просто. Достаточно создать в текстовом редакторе файл с искомым именем или в наблюдаемой папке, и Process Monitor моментально отреагирует на это.

Дополнительные фильтры

Запись и открытие лога

Учтите, что при длительном отслеживании размер лога может измеряться гигабайтами. По умолчанию Process Monitor записывает лог в файл подкачки. Если у вас маленький системный раздел, имеет смысл сохранять лог в файл на другом разделе диска.

Для сохранения лога в файл нажмите сочетание клавиш CTRL+B и укажите имя и желаемое расположение файла.

Process Monitor

Изменения вступают в силу после перезапуска захвата активности. Теперь можно смело оставить Process Monitor включенным на длительное время, не опасаясь за лимит дискового пространства.

Остановить отслеживание активности можно сочетанием клавиш CTRL+E.

Впоследствии вы всегда сможете загрузить в утилиту лог из сохраненного файла. Закройте Process Monitor и дважды щелкните файл лога с расширением PML. Содержимое лога отобразится в окне Process Explorer.

Человек, обратившийся на форум с проблемой, так и не вернулся сообщить, помог ли ему мой совет. Но он был с таким вопросом не первый и, наверняка, не последний. Если вопрос возникнет у вас, вы сможете ответить на него с помощью Process Monitor.

О видео

Если честно, создание такого видео занимает намного больше времени, чем написание статьи. Поэтому я в любом случае не готов заменять печатный текст видеоматериалами. Но мне кажется, что в данном случае видео интереснее и понятнее. А что вы думаете по этому поводу?

Видео длится около четырех минут, и я старался сделать его быстрым и емким. Ведь в реальности подготовка к поимке приложения занимает буквально одну минуту. Вас устраивает скорость изложения?

Более подробный рассказ о Process Monitor и другие примеры его практического использования вы можете посмотреть в видео моего коллеги Василия Гусева, если у вас есть свободные 40 минут :)

Вадим - владелец этого блога, и почти все записи здесь вышли из-под его пера. Подробности о блоге и авторе здесь. Поддержать автора вы можете тут.

Вас также может заинтересовать:

Подпишитесь на канал и читайте интересные записи чаще! Есть вопросы? Задайте их в чате.

комментариев 19

Вадим.
Может стоит упомянуть еще и Filemon он тоже позволит решить задачу.

Ваша оценка: 0

sergm, не вижу смысла, т.к. Process Monitor объединяет функционал Regmon и Filemon. Эти две утилиты больше не распространяются автором.

Годится! Согласны? +4

PS надо будет обновиться.

Ваша оценка: 0 Ваша оценка: 0

sergm, понятно, что у каждого свой привычный набор утилит (и о моем я планирую рассказать в скором времени :) Но Process Monitor уже достаточно давно заменил две отдельные утилиты и расширил их функционал. Так что да, обновляться надо :)

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

Ваша оценка: 0 Ваша оценка: +1

Morpheus: Это может быть полезно, если сделано со вкусом. Тебе удаётся делать интересно. Спасибо! »

Morpheus: А почему нет ссылки «цитировать» для самого материала, как для комментов? »

Ваша оценка: 0

Спасибо Вадим! Очень интересно, но я с таким не сталкивался пока.
Видео суперски, кратко и ясно, такое редкость. Но и описание с нормальным количеством скринов, даже лучше.
Спасибо за Ваш блог. Читаю с удовольствием :Beer:

Ваша оценка: 0

А я Вадим сразу вам и написал- очень будет полезно если будут хоть коротелькие ролики!! Как писал выше- нажал на паузу и разобрался)..Да и мне как то зрительно более понятно(имхо).

Ваша оценка: 0 Ваша оценка: 0

Хорошая статья и самое главное (я преподаватель информатики) с хорошими примерами.

Ваша оценка: 0

Вадим понятно! но в любом случае будем надеяться хоть на редкие небольшие ролики:).

Ваша оценка: 0 Ваша оценка: 0 Ваша оценка: 0

Yuri, диагностику нужно проводить в два этапа:
1. Выявление папок, в которых записываются файлы.
2. Определение приложения, записывающего их.

Для первого этапа используйте специализированные утилиты. См. номер 5 в списке 10 лучших бесплатных программ для быстрой диагностики Windows. В комментариях упоминались и другие программы этого типа.

Ваша оценка: 0

Просто спасибо. Такой труд дорогого стоит.

Ваша оценка: 0

Дмитрий, спасибо на добром слове.

Ваша оценка: 0


Сергей Валерьевич

Ваша оценка: 0

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

Как определить, какая программа создаёт подозрительные файлы на рабочем столе


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

Для отслеживания активности в файловой системе мы предлагаем использовать такую утилиту как Process Monitor, созданную небезызвестным сотрудником Microsoft Марком Руссиновичем. Помимо Process Monitor, существуют также и другие утилиты для отслеживания изменений в файловой системе, более простые в использовании, но и менее функциональные. Тем не менее, перед тем как приступать к отлавливанию проявляющего непонятную активность файла, рекомендуем выполнить ряд простых действий, которые, возможно, позволят обнаружить его уже на первом этапе.

Проверьте фоновые процессы


Откройте командой msconfig утилиту «Конфигурация системы», переключитесь на вкладку «Службы» и отметьте флажком «Не отображать службы Майкрософт». Внимательно изучите список запущенных сторонних служб и убедитесь, что среди них нет ничего подозрительного. Вряд ли имя службы поведает вам о многом, но, по крайней мере, это даст вам зацепку для начала поиска связанного с нею файла через оснастку управления службами.
Проанализируйте автозагрузку


Для анализа автозагрузки мы рекомендуем использовать утилиту Autoruns. Запустите её от имени администратора и столь же внимательно изучите содержимое вкладки «Everything». Она включает в себя все элементы автозапуска: как те, которые запускаются из реестра или папки автозапуска, так и те, которые прописались в планировщик заданий. Обратите внимание на колонки «Description» и «Publisher»: они содержат краткое описание приложения и информацию о поставщике. Элементы автозапуска, подсвеченные розовым цветом, не имеют цифровой подписи, что косвенно указывает на их неоднозначное происхождение.
Примечание: в меню Autoruns выполните проверку не только процессов с правами текущего пользователя, но и SYSTEM, LOCAL SERVICE и NETWORK SERVICE.

Так, подозрительным нам показался файл createfiles, не имеющий ни описания, ни лицензии. Когда же мы проверили его расположение, он оказался там, где его по идее быть не должно – в папке профиля пользователя %userprofile%\AppData\Roaming\Microsoft\Crypto, а его название прямо указывало на род его деятельности. Кстати, входил он в группу «Task Scheduler», то есть был прописан в планировщике заданий. Отыскав его в оснастке планировщика, мы открыли его свойства и по его триггеру определили, что файлу было «назначено» запускаться каждые пять минут. Мы отправили этот файл на анализ в VirusTotal и в результате получили такую картину. После его физического удаления и удаления созданной записи в Планировщике заданий неполадки прекратились.
Отслеживание процесса создания файла в Process Monitor

Process Monitor — пожалуй, лучшее, что может предложить рынок бесплатного программного обеспечения для отслеживания процессов и создаваемых ими записей, причём не только на диске, но и в реестре. Язык интерфейса этого инструмента — английский, но если вы не против, для большей понятливости мы будем использовать чуть более старую, но русифицированную версию 3.33, тогда как на официальном сайте доступна уже версия под индексом 3.61. Поскольку нам нужно выяснить, какая программа создаёт на рабочем столе непонятные файлы со случайными именами, будем придерживаться следующего алгоритма.

1. Запустите Process Monitor с правами администратора с любой папки, кроме рабочего стола, ведь зачем нам отслеживать лишнюю активность;
2. На панели инструментов снимите галочки отслеживание сетевой активности, процессов и потоков, а также обращения к реестру, оставляем отслеживание только файловой активности;
3. В меню выберите Фильтр → Фильтр;
4. В открывшемся окошке в первом выпадающем списке выбираем «Операция», во втором — «Равно», в третьем — тип операции, в данном случае «Создание» файла. Жмём «Добавить»;
5. Создаём ещё одно условие, выбирая на этот раз в первом списке «Путь», во втором — «Содержит», а в третьем указываем путь к отслеживаемому каталогу — к рабочему столу. Жмём «Добавить». Обратите внимание, что статус этих фильтров должен быть «Включить» (зелёный);
6. Чтобы вездесущий процесс Проводника не забивал нам логи, исключим его из наблюдения. В первом списке «Путь», во втором — «Содержит», а в третьем указываем название исполняемого файла Проводника explorer.exe. Статус этого фильтра выставляем «Исключить» (красный). Жмём «Добавить». Остальные пункты можно отключить;
7. В общем, должно получиться как на скриншоте. Сохраняем настройки нажатием «Применить» и «OK».
Результаты не заставили себя долго ждать. В окне Process Monitor вы видим активность некоего файла virus.exe, который создал на рабочем столе файл desktop.ini. Обнаружить месторасположение исполняемого файла не составило особого труда, открыв свойства записи. Мы видим полный путь к этому зловреду.
При этом одновременно с virus.exe запускается несколько сеансов командной строки, которая создаёт на рабочем столе файлы рандомными именам, что хорошо видно из колонки «Путь» (файл 30147 без расширения).
Получается так, что virus.exe инициирует запуск командной оболочки Windows, которая исполняет зашитый во вредоносном файле код, но это частный случай, у вас всё может быть иначе, тем не менее, надеемся, что сам принцип отслеживания файловой активности и связанной с ней процессов вам понятен. Кстати, открыв свойства события создания файла с рандомным именем и переключившись на вкладку «Процесс», мы подтвердили наши предположения о связи файла virus.exe с вполне безобидной командной строкой.
Что делать с файлом virus.exe, полагаем, объяснять не нужно, не будет лишним только проверить его записи в автозагрузке той же Autoruns.

Process Explorer как помощник по отлавливанию вирусов

Кратко рассмотрим ещё один похожий случай. На компьютере завёлся зловред, который подобно virus.exe загаживал рабочий стол файлами со случайными именами. На этот раз мы не стали прибегать к помощи Process Monitor, а воспользовались Process Explorer — утилитой от того же разработчика. Запустив её с правами администратора и просмотрев «Description» и «Company Name», мы нашли таких пустых колонки, принадлежащих некоему файлу ventura.exe, являющемуся родителем процесса cmd.exe → conhost.exe, проявляющего периодическую активность, которую мы сопоставили с временем генерирования на рабочем столе файлов.
Но интересно другое: сам факт того что процесс ventura.exe не подписан разработчиком уже косвенно свидетельствует о том, что файл создавался либо с явно вредоносными целями, либо «на коленке», но тогда непонятно, о чём вообще думал разработчик, решивший опубликовать неподписанный, а значит, неблагонадёжный с точки зрения антивирусов файл.
Да, проверив путь расположения файла, мы обнаружили его в папке %userprofile%\AppData\Local\Temp, что в принципе допустимо, хотя его быть там быть не должно, тем более, что никаких других исполняемых файлов с этим названием в системных каталогах мы не обнаружили. И что вы думаете произошло, когда мы удалили ventura.exe? Файлы на рабочем столе перестали создаваться. Вот такие дела, друзья.

как определить какой программой был создан, файл/папка?


Крыска



Просмотр профиля Сабж собственно.
Как определить какой программой был создан файл/папка? Никогда не бойся делать то, что не умеешь. Помни, ковчег был построен любителем. Профессионалы строили Титаник.


Sonnly



Просмотр профиля Сабж собственно.
Как определить какой программой был создан файл/папка? В общем случае никак, т.к. в файловой таблице NTFS или FAT такой информации точно не хранится.
Возможно, есть программы, которые занимаются мониторингом и пишут в свою базу эти данные, но скорее всего, такие программы будут неслабо подгружать систему. Для некоторых типов файлов, например jpeg, программа-создатель может указываться в метаданных/EXIF, но далеко не всегда. Какая программа обращается к файлу в данный момент, можно посмотреть с помощью утилиты unlocker.


Murometz



Просмотр профиля

Да, действительно постфактом никак.

А для мониторинга рекомендую опять же утилитку от Mark Russinovich (он же - "Windows Sysinternals"): Process Monitor

Программка бесплатная, последняя на сегодня версия (V1.26, November 5, 2007):

Мы не жулики и воры, мы клеветники и иностранные агенты.


Перерожденец

В Linux имеется платформа аудита, которая позволяет узнать обо всех случаях доступа к файлу, его изменениях или запуске. Также можно вести наблюдение за изменением целых директорий.

Как установить auditd (auditctl)

В Debian, Linux Mint, Kali Linux, Ubuntu и их производных для установки выполните команду:

В Arch Linux, Manjaro, BlackArch и их производных данный пакет называется audit и входит в core репозиторий, следовательно, он предустановлен по умолчанию.

В CentOS для установки выполните команду:

Как запустить монитор доступа и изменений файла

Необходимо начать с добавления правил. Следующая команда добавляет монитор доступа и изменения файла /etc/resolv.conf:

Это пример команды с другой нотацией, но выполняет она идентичное действие — мониторит все изменения и доступ к файлу /etc/resolv.conf:

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


Хотя правило добавлено, служба аудита ещё не запущена. Для её запуска выполните команду:

Если вы хотите добавить данную службу в автозагрузку, то выполните:

Запуск auditd без перевода в фон

Предыдущая команда запустит auditd как демон, то есть служба в фоне. Если вам это не нужно и вы хотите запустить auditd на переднем плане, то вместо использования systemctl выполните следующую команду:

В этом случае все события с отслеживаемыми файлами или папками будут отображаться в стандартном выводе. При этом файл журнала не будет вестись.

Это полезно при отладке правил, либо если вам нужно проследить за событиями в короткий промежуток времени.

Как просмотреть журнал auditd

Журнал auditd хранится в файле /var/log/audit/audit.log. Но вместо того, что просматривать его напрямую, можно воспользоваться утилитой ausearch, например:

Если будет выведено

значит данный файл ещё не трогала ни одна программа.

Если события произошли, там будут примерно следующие записи:


Чтобы узнать, какая программа выполнила действие, смотрите строку «exe=».

Как остановить службу auditd

Чтобы удалить службу из автозагрузки, выполните команду:

Если вы попытаетесь остановить службу следующей командой:

Для остановки службы выполните команду:

Как удалить все правила отслеживания изменений папок и файлов

Чтобы удалить сразу все правила, выполните команду:

Возможно удаление отдельных правил (как по отслеживаемому событию, так и по привязанному идентификатору).

Ошибка «Error opening /var/log/audit/audit.log (Нет такого файла или каталога)»

Если вы получили ошибку

То она означает, что служба audit не была запущена (вы забыли её запустить, она не запустилась из-за ошибки, либо вы запустили её на переднем плане).

Примеры настройки auditd

Чтобы посмотреть все системные вызовы, сделанные определённой программой:

Чтобы увидеть файлы, открываемые определённым пользователем:

Чтобы увидеть неудачные вызовы openat:

Для слежения за изменениями файла (два способа выражения):

Для рекурсивного слежения за директорией на предмет изменений (два способа выражения):

Чтобы посмотреть, получал ли администратор доступ к файлам пользователя:

Файлы auditd

Документация по auditd

В данной статье показано, как начать использовать auditd для отслеживания изменений в файле и отслеживанию доступа к файлу.

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

С помощью man вы можете ознакомиться со следующей документацией:

Читайте также: