Чи всі програми, що працюють на комп’ютері, відображаються на вкладці процесів у Диспетчері завдань? [дублікат]


34

На це питання вже є відповідь тут:

Причину, про яку я прошу, це те, що мені цікаво, чи може існувати вірус у комп’ютері без того, щоб я могла знати, що він існує. Якщо бути більш конкретним, то вірус, який не випромінює жодних ознак.

Відповіді:


48

Існує клас шкідливих програм, який може повністю сховатися від операційної системи, відомої як руткіт .

Rootkits використовуються для приховування доказів інших зловмисних програм під час роботи і дуже глибоко вбудовані в операційну систему. Завдяки глибокому вбудовуванню вони здатні маніпулювати списками процесів, таблицями файлової системи та іншими важливими структурами на ходу.

Маніпулюючи структурами файлової системи в пам'яті, вони можуть повертати помилкові або оманливі результати для каталогів, зокрема не показуючи файли, пов’язані з основною шкідливою програмою. Файли є, і завантаження в незаражену операційну систему, таку як Linux LiveCD, покаже файли, хоча їх потрібно десь зберігати.

Аналогічно, руткіти можуть просто відмовитись від певних процесів від звітності до таких програм, як диспетчер завдань. Ядро операційної системи знає про них, як це потрібно для їх планування, щойно було заблоковано повідомляти про них зовнішньому світу.


1
Мені цікаво, як вони досягають цього подвигу? Це здається чимось, чого Windows не повинна допускати в першу чергу. Я маю на увазі, що навіть "шоу-процес від усіх користувачів" менше "ховається" і більше "категоризується"
Raestloz

2
@Raestloz: Вони досягають подвигу, отримуючи кореневий доступ, а потім переписуючи Windows, щоб видалити біти, які забороняють його. Я чув, що деякі з них роблять це "завантажуючи" в rootkit як ОС, змінюючи Windows, а потім вони запускають Windows, тому ні користувач, ні Windows не мають уявлення про те, що нічого незвичайного.
Mooing Duck

3
добре бовтайте, можливо, хтось повинен винайти антивірус, який працює на BIOS lol
Raestloz

1
@zyboxenterprises Реальні оновлення Windows підписані і не можуть бути підроблені, але ви можете підробити лише діалогове вікно запиту про перезапуск або ввести користувача в перезапуск будь-яким іншим способом або змусити перезапустити ( shutdown -r -t 0не потрібні привілеї) або просто почекати, поки користувач не перезавантажиться.
gronostaj

4
@zyboxenterprises Можливо, може і ні;) Flame використовувала оновлення Windows для власних цілей, підробляючи сертифікат, але ця вразливість вже виправлена. Загальновідомих подвигів ВС немає, але це не означає, що їх немає. Той, який використовував Flame, раніше теж не був відомий. (див. 0-денний напад
gronostaj

16

Усі звичайні програми з’являться там, але ...

  • без облікового запису адміністратора ви зможете бачити лише свій власний процес (облікові записи адміністратора можуть вибрати для перегляду всіх процесів)
  • rootkits спробує приховати своє існування, приховавши свій процес зі списку, поставивши під загрозу менеджер завдань (щоб він не показував його), ховаючись всередині іншого простору адреси процесу ...
  • служби запускаються як потоки під час svchostпроцесу (у більшості випадків), тому немає простої точки, при якій служба працює під заданим екземпляром svchost.

Існують деякі програми, призначені для виявлення руткітів. Вони роблять це, перевіряючи, наприклад, список потоків, запрограмованих на виконання, та перелік процесів у системі (потік, який не належить до жодного процесу, є ознакою прихованого процесу), або список файлів, які бачать на високому рівні, і порівнюючи його з файлами, які він вручну читає з дискового розділу.

Тим не менш, після зараження вірусом можна приховати свою присутність настільки добре, що виявити майже неможливо. Зазвичай їх називають APT (вдосконаленою стійкою загрозою).


2
Деякі з цих пунктів дещо визнані недійсними Провідник Sysinternals Process Explorer - обмежені користувачі можуть бачити назви файлів процесів, якими керує інший користувач, а підказки svchosts перераховують те, що вони розміщують.
kirb

Ви мали на увазі написати "загрозу" чи ви мали на увазі "нитку"? Це насправді працює там;)
Конерак

Як детектор руткітів перераховує потоки або процеси? Якщо це типовий спосіб / WinAPI, чи не може руткіт маніпулювати перерахуванням, і детектор rootkit цього не помітить?
Рей

1
@DebugErr, вони дивляться на високий і низький рівень, а потім повідомляють про відмінності (іноді створюючи помилкові позитиви, наприклад, коли файл був змінений між ними). При перевірці списку потоків , запрограмованих для виконання я посилаюся до списку подвійного пов'язаних використовуваної ОС планувальника , тобто .. абсолютно низький рівень: якщо його там немає, він не отримує часовий відрізок (але, можливо, є ще місця для перевірки, як ISR).
Ángel

5

Фон

В операційній системі є компонент, відомий як ядро. Однією з (багатьох) обов'язків ядра є управління системною пам'яттю (як фізичною, так і віртуальною).

У рамках цього ядро ​​розбиває наявну пам'ять на дві різні області, відомі як режим користувача та режим ядра. Ядро та драйвери діляться пам'яттю режиму ядра, а користувацькі програми та менш критичні компоненти системи знаходяться в області пам'яті режиму користувача.

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

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

Процеси

Ядро надає можливість запускати процеси в режимі користувача. Коли процес створюється, він додається до внутрішнього списку процесів, які існують в даний час. Коли така програма, як диспетчер завдань, запитує список процесів, вона отримує підмножину інформації в цьому списку, відфільтровану за дозволами користувача.

Один із засобів для зловмисного програмного забезпечення, такого як руткіт, щоб приховати своє існування, - це безпосередньо видалити себе з цієї таблиці. Зробивши це, він все ще може виконуватись, але більше не відображатиметься у списку процесів, отриманих звичайними засобами.

Оскільки ці процеси все ще існують та виконуються, їх можна було знайти шляхом огляду інших структур даних ядра, таких як таблиці обробки даних, у яких зберігається інформація про ресурси, які відкритий процес (наприклад, файли), або шляхом вивчення розподілу пам'яті, з якого це більше важко приховати, не перешкоджаючи функціонуванню програмного забезпечення.

Драйвери режиму ядра

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

Можливість запуску коду в режимі ядра є важливим кроком до можливості ефективно приховати існування виконуваного коду. За звичайних обставин Windows вимагає, щоб цей код у режимі ядра був підписаний для запуску, тому для зловмисного програмного забезпечення, можливо, потрібно буде використовувати подвиги в операційній системі, іншому програмному забезпеченні або навіть соціальній інженерії, щоб потрапити сюди, але як тільки код виконується в режимі ядра, приховуючи стає легше.

Підсумок

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


3

Віруси сьогодні досить складні. На вашому комп’ютері може бути вірус, але він не відображається в диспетчері завдань . Цілком можливо, що менеджер завдань (та інших частин операційної системи) може бути скомпрометований, тим самим приховуючи вірус. Наприклад, руткіт.

Якщо ви плануєте покладатися на диспетчер завдань, щоб перевірити наявність вірусів, то зараз слід зупинитись. Встановіть антивірус, і навіть антивірус іноді не зможе виявити вірус на вашому ПК.


0

Є ще один простий спосіб "приховати вірус" крім інших, що вже добре пояснено в інших відповідях:

Компрометована DLL (динамічно пов'язана бібліотека)

Для запуску великої кількості програм - майже всіх нетривіальних - потрібна одна або кілька DLL-файлів. Деякі належать до самої ОС (наприклад, hal.dll, яка абстрагує апаратний доступ для Windows), деякі використовуються лише однією програмою, яка розбита на більш дрібні фрагменти (один .exe файл та інші .dll-файли з основними функціональними можливостями, плагіни і т. д.) У вас вірус не запускається весь час, як звичайний процес або послуга, але ваш вірус буде дуже важко знайти, оскільки він буде схожий на абсолютно невинну програму або компонент програми.

Подальше читання: http://msitpros.com/?p=2012


І є одна річ, яка дуже приваблива в цьому вигляді вірусоутворення: є безліч веб-сайтів, які пропонують безкоштовну (не вимагає оплати) завантаження dll, які з тієї чи іншої причини можуть зникнути на вашому комп’ютері. Оскільки можливість порівнювати контрольні суми оригінального та нового .dll-файлу дуже обмежена і майже нікого не хвилює, dll-віруси можуть входити та залишатися в системі надовго непомітно (якщо, звичайно, антивірусна програма не виявить їх і користувач погоджується з видаленням - ви вже бачите шаблон).

Із запитання я вважаю, що ми говоримо про Windows тут, але ця методика цілком може застосовуватися і до інших ОС.


0

TL; DR: Диспетчер завдань Windows 'є досить обмежений в тому, що він може зробити, і це * Не буде коли - або показувати всі процеси на вашій системі. Хочете доказів? Порахуйте (приблизно) кількість оперативної пам’яті, яку використовують процеси, показані в диспетчері завдань, і порівняйте її з використанням оперативної пам’яті в системі; у вас повинна бути не менше 100 МБ оперативної пам’яті, а іноді вона збільшується до приблизно 1 Гб, залежно від того, для чого ви використовуєте систему. Графічні карти також можуть зайняти деяку пам’ять з оперативної пам’яті разом із власною оперативною пам’яттю GDDR. *

Щоб розширити відповідь Павла Петмана, можу додати, що багато складних чіт-движок для ігор покладаються на введення коду в ігрові DLL-файли, що дозволяють їх чіти.

Цей тип компромісів досить важко виявити, і та ж методика може бути застосована і в цьому питанні. Якщо, скажімо, вірус хоче залишитись невиявленим, він може представляти собою оновлення типу Windows, яке видаляє себе в системні каталоги, вірус може замінити критичний системний файл. Більшість антивірусних програм не виявить цього типу вірусу, тобто вірус може продовжувати введення коду вірусу в критичні DLL-файли Windows (а також .exes).

Коли мій клієнт розповідає про незвичну поведінку, я завжди запускаю Process Explorer (завантажую з Microsoft), щоб виявити будь-який запущений вірус. Провідник процесів може точно сказати, які саме запущені процеси (навіть ті, які відсутні в диспетчері завдань), а також які модулі DLL вони використовують.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.