На це питання вже є відповідь тут:
Причину, про яку я прошу, це те, що мені цікаво, чи може існувати вірус у комп’ютері без того, щоб я могла знати, що він існує. Якщо бути більш конкретним, то вірус, який не випромінює жодних ознак.
На це питання вже є відповідь тут:
Причину, про яку я прошу, це те, що мені цікаво, чи може існувати вірус у комп’ютері без того, щоб я могла знати, що він існує. Якщо бути більш конкретним, то вірус, який не випромінює жодних ознак.
Відповіді:
Існує клас шкідливих програм, який може повністю сховатися від операційної системи, відомої як руткіт .
Rootkits використовуються для приховування доказів інших зловмисних програм під час роботи і дуже глибоко вбудовані в операційну систему. Завдяки глибокому вбудовуванню вони здатні маніпулювати списками процесів, таблицями файлової системи та іншими важливими структурами на ходу.
Маніпулюючи структурами файлової системи в пам'яті, вони можуть повертати помилкові або оманливі результати для каталогів, зокрема не показуючи файли, пов’язані з основною шкідливою програмою. Файли є, і завантаження в незаражену операційну систему, таку як Linux LiveCD, покаже файли, хоча їх потрібно десь зберігати.
Аналогічно, руткіти можуть просто відмовитись від певних процесів від звітності до таких програм, як диспетчер завдань. Ядро операційної системи знає про них, як це потрібно для їх планування, щойно було заблоковано повідомляти про них зовнішньому світу.
shutdown -r -t 0
не потрібні привілеї) або просто почекати, поки користувач не перезавантажиться.
Усі звичайні програми з’являться там, але ...
svchost
процесу (у більшості випадків), тому немає простої точки, при якій служба працює під заданим екземпляром svchost.Існують деякі програми, призначені для виявлення руткітів. Вони роблять це, перевіряючи, наприклад, список потоків, запрограмованих на виконання, та перелік процесів у системі (потік, який не належить до жодного процесу, є ознакою прихованого процесу), або список файлів, які бачать на високому рівні, і порівнюючи його з файлами, які він вручну читає з дискового розділу.
Тим не менш, після зараження вірусом можна приховати свою присутність настільки добре, що виявити майже неможливо. Зазвичай їх називають APT (вдосконаленою стійкою загрозою).
В операційній системі є компонент, відомий як ядро. Однією з (багатьох) обов'язків ядра є управління системною пам'яттю (як фізичною, так і віртуальною).
У рамках цього ядро розбиває наявну пам'ять на дві різні області, відомі як режим користувача та режим ядра. Ядро та драйвери діляться пам'яттю режиму ядра, а користувацькі програми та менш критичні компоненти системи знаходяться в області пам'яті режиму користувача.
Процеси в режимі користувача зазвичай не можуть спілкуватися з тими, що знаходяться в режимі ядра, за винятком спеціально призначених та керованих каналів.
Для повноти слід зазначити, що процеси, що працюють в режимі користувача, також відокремлені один від одного, але можуть вільніше спілкуватися один з одним за допомогою засобів, передбачених операційною системою, за умови, що програми призначені для цього.
Ядро надає можливість запускати процеси в режимі користувача. Коли процес створюється, він додається до внутрішнього списку процесів, які існують в даний час. Коли така програма, як диспетчер завдань, запитує список процесів, вона отримує підмножину інформації в цьому списку, відфільтровану за дозволами користувача.
Один із засобів для зловмисного програмного забезпечення, такого як руткіт, щоб приховати своє існування, - це безпосередньо видалити себе з цієї таблиці. Зробивши це, він все ще може виконуватись, але більше не відображатиметься у списку процесів, отриманих звичайними засобами.
Оскільки ці процеси все ще існують та виконуються, їх можна було знайти шляхом огляду інших структур даних ядра, таких як таблиці обробки даних, у яких зберігається інформація про ресурси, які відкритий процес (наприклад, файли), або шляхом вивчення розподілу пам'яті, з якого це більше важко приховати, не перешкоджаючи функціонуванню програмного забезпечення.
Драйвери режиму ядра використовуються для багатьох речей, включаючи взаємодію з фізичними апаратними пристроями. Вони виконуються під керуванням ядра в міру необхідності, але оскільки вони не є процесом в режимі користувача, вони не відображаються в таблиці процесів. і, отже, не з’являться в диспетчері завдань чи інших інструментах, що стосуються виключно процесів.
Можливість запуску коду в режимі ядра є важливим кроком до можливості ефективно приховати існування виконуваного коду. За звичайних обставин Windows вимагає, щоб цей код у режимі ядра був підписаний для запуску, тому для зловмисного програмного забезпечення, можливо, потрібно буде використовувати подвиги в операційній системі, іншому програмному забезпеченні або навіть соціальній інженерії, щоб потрапити сюди, але як тільки код виконується в режимі ядра, приховуючи стає легше.
Підсумовуючи це, можна приховати докази існування процесів, ймовірно, завжди буде якийсь показник того, що процес існує, тому що, як правило, завжди потрібно використовувати певну форму ресурсу для того, щоб робити все, що було призначено, як важко. що виявлення залежить від конкретного зловмисного програмного забезпечення.
Віруси сьогодні досить складні. На вашому комп’ютері може бути вірус, але він не відображається в диспетчері завдань . Цілком можливо, що менеджер завдань (та інших частин операційної системи) може бути скомпрометований, тим самим приховуючи вірус. Наприклад, руткіт.
Якщо ви плануєте покладатися на диспетчер завдань, щоб перевірити наявність вірусів, то зараз слід зупинитись. Встановіть антивірус, і навіть антивірус іноді не зможе виявити вірус на вашому ПК.
Є ще один простий спосіб "приховати вірус" крім інших, що вже добре пояснено в інших відповідях:
Компрометована DLL (динамічно пов'язана бібліотека)
Для запуску великої кількості програм - майже всіх нетривіальних - потрібна одна або кілька DLL-файлів. Деякі належать до самої ОС (наприклад, hal.dll, яка абстрагує апаратний доступ для Windows), деякі використовуються лише однією програмою, яка розбита на більш дрібні фрагменти (один .exe файл та інші .dll-файли з основними функціональними можливостями, плагіни і т. д.) У вас вірус не запускається весь час, як звичайний процес або послуга, але ваш вірус буде дуже важко знайти, оскільки він буде схожий на абсолютно невинну програму або компонент програми.
Подальше читання: http://msitpros.com/?p=2012
І є одна річ, яка дуже приваблива в цьому вигляді вірусоутворення: є безліч веб-сайтів, які пропонують безкоштовну (не вимагає оплати) завантаження dll, які з тієї чи іншої причини можуть зникнути на вашому комп’ютері. Оскільки можливість порівнювати контрольні суми оригінального та нового .dll-файлу дуже обмежена і майже нікого не хвилює, dll-віруси можуть входити та залишатися в системі надовго непомітно (якщо, звичайно, антивірусна програма не виявить їх і користувач погоджується з видаленням - ви вже бачите шаблон).
Із запитання я вважаю, що ми говоримо про Windows тут, але ця методика цілком може застосовуватися і до інших ОС.
TL; DR: Диспетчер завдань Windows 'є досить обмежений в тому, що він може зробити, і це * Не буде коли - або показувати всі процеси на вашій системі. Хочете доказів? Порахуйте (приблизно) кількість оперативної пам’яті, яку використовують процеси, показані в диспетчері завдань, і порівняйте її з використанням оперативної пам’яті в системі; у вас повинна бути не менше 100 МБ оперативної пам’яті, а іноді вона збільшується до приблизно 1 Гб, залежно від того, для чого ви використовуєте систему. Графічні карти також можуть зайняти деяку пам’ять з оперативної пам’яті разом із власною оперативною пам’яттю GDDR. *
Щоб розширити відповідь Павла Петмана, можу додати, що багато складних чіт-движок для ігор покладаються на введення коду в ігрові DLL-файли, що дозволяють їх чіти.
Цей тип компромісів досить важко виявити, і та ж методика може бути застосована і в цьому питанні. Якщо, скажімо, вірус хоче залишитись невиявленим, він може представляти собою оновлення типу Windows, яке видаляє себе в системні каталоги, вірус може замінити критичний системний файл. Більшість антивірусних програм не виявить цього типу вірусу, тобто вірус може продовжувати введення коду вірусу в критичні DLL-файли Windows (а також .exes).
Коли мій клієнт розповідає про незвичну поведінку, я завжди запускаю Process Explorer (завантажую з Microsoft), щоб виявити будь-який запущений вірус. Провідник процесів може точно сказати, які саме запущені процеси (навіть ті, які відсутні в диспетчері завдань), а також які модулі DLL вони використовують.