Как да откриете зомби процеси и подозрителна активност в macOS

Последна актуализация: 26/02/2026
Автор: Isaac
  • Зомби процесите в macOS са прекратени дъщерни процеси, които остават в списъка поради неуспехи на родителския процес и обикновено не консумират процесорна мощност.
  • „Зомби Mac“ в рамките на ботнет мрежа е различен: това е заразен компютър, който участва в DDoS атаки или други злонамерени дейности.
  • Инструменти като Activity Monitor, ps, top, lsof и pmset позволяват откриването на аномални процеси и странно системно поведение.
  • Прегледът на подозрителни процеси, почистването на „зомбита“ и използването на диагностика на Apple помагат да поддържате вашия Mac стабилен, сигурен и да работи добре.

откриване на зомби процеси в macOS

Ако забележите, че вашият Mac работи по-бавно от обикновено, вентилаторът работи на пълна скорост без видима причина или батерията се изтощава бързо дори при затворен капак, е много вероятно да има необичайни процеси, които консумират ресурси във фонов режим . Те включват така наречените зомби процеси и, в най-лошия случай, процеси, свързани със злонамерен софтуер или дори ботнет мрежи.

Въпреки че macOS е сравнително сигурна система, тя не е недосегаема. Има документирани случаи на компютри Apple, които стават част от „зомби“ мрежа, използвана за стартиране на DDoS атаки , особено когато са инсталирани пиратски приложения като iWork или Photoshop. Освен това, тъй като macOS е UNIX-базирана система, тя наследява и техническата концепция за зомби процес , който няма нищо общо с вирусите, но все пак е важно да се разбере и да се знае как да се открива.

Какво точно е зомби процес в macOS (и в UNIX-подобни системи)?

концепция за зомби процеси в macOS

В UNIX и UNIX-базирани системи, като например macOS, всеки път, когато дадена програма се изпълнява, се създава поне един родителски процес и често един или повече дъщерни процеси, които обработват специфични задачи . Всеки процес има идентификатор (PID), собственик, използване на процесора, използване на паметта, време за изпълнение и др.

Когато дъщерен процес завърши работата си, той изпраща сигнал за изход към родителския процес (извикване за изход), показващ, че е завършил задачата си. Обикновено родителският процес получава тази информация, като извиква wait (или варианти), прочита състоянието на изход и операционната система премахва записа на дъщерния процес от таблицата с процеси.

Понякога обаче родителският процес не обработва добре тази изходна информация. Ако родителският процес не успее да прочете състоянието на дъщерния процес, който вече е завършил , дъщерният процес се показва като прекратен, но продължава да заема запис в таблицата с процеси. Този „фантом“ запис, който вече не прави нищо, а остава в списъка, се нарича зомби процес.

Представете си го като строителен работник, който вече не получава заплата, не прави нищо, но все още седи на обекта и заема място . Зомби процесът вече е „мъртъв“: той не изпълнява код и не използва процесора, но основната му информация (PID, състояние на изход, някои метаданни) остава в паметта, докато родителският процес не я извлече или системата не я почисти.

От гледна точка на производителността, няколко зомби процеса не са сериозен проблем . Но ако дадено приложение е лошо програмирано и не убива зомбитата, може да се стигне до унищожаване на много от тях, което може ненужно да изразходва памет и да възпрепятства управлението на процесите на системата.

Разлика между зомби процес и „зомби“ Mac в ботнет

Mac зомби ботнет

Важно е да се прави разлика между две понятия, които често се бъркат: зомби процесът е вътрешна техническа функция на операционната система; зомби Mac е компютър, контролиран от трета страна за извършване на атаки, обикновено дистанционно.

В миналото троянски коне са били откривани в пиратски версии на iWork'09 и Photoshop CS4, които са инсталирали компонент, наречен iWorkServices (или iworkserv) на Mac . Този процес е превърнал компютъра в част от ботнет мрежа, използвана за извършване на разпределени атаки тип „отказ от услуга“ (DDoS) срещу конкретни цели.

В този контекст вашият компютър се превръща в „зомби“ в мрежа от заразени компютри: някой може да използва вашия Mac, за да атакува сървъри в интернет без ваше знание. Въпреки че антивирусните програми и инструментите за сигурност днес откриват тези специфични троянски коне доста лесно, ако сте инсталирали пиратски софтуер, все пак е препоръчително да сканирате системата си.

Следователно, докато зомби процесите не изпълняват нищо или не ви атакуват , зомби Mac в рамките на ботнет мрежа извършва незаконна дейност, консумира ресурси и ви излага на правни и защитни проблеми.

Интересното е, че както за откриване на зловреден софтуер, който превръща вашия Mac в зомби, така и за локализиране на „класически“ UNIX зомби процеси, ще използвате много сходни инструменти: Activity Monitor и команди на Terminal.

Как да откриете дали вашият Mac е част от ботнет мрежа (случай с iWorkServices и подобни)

Ако някога сте инсталирали неофициални версии на iWork'09, Photoshop CS4 или друг пиратски софтуер, е важно да проверите системата си за подозрителен процес, свързан със старата ботнет мрежа, или други процеси, които рядко се срещат в чисти инсталации.

  Киберхигиена за нетехнически екипи: пълно и практично ръководство

За да направите това, можете да използвате Terminal. Отворете Spotlight, въведете Terminal и натиснете Enter. След като влезете, използвайте тази основна команда, за да проверите дали процесът iWorkServices (iworkserv) работи:

sudo ps aux | grep -i iworkserv | grep -v "grep"

Командата изброява всички процеси и филтрира по подозрително име. Ако изпълнението не върне записи, можете да си отдъхнете сравнително спокойно : по принцип този процес не е изпълнен. Ако, от друга страна, се появи съвпадение, е много вероятно да има остатъци от старата заплаха или нещо подобно.

Следващата стъпка е да проверите дали този процес има отворени файлове или връзки. Можете да използвате:

sudo lsof -i -P | grep -i iworkserv

Ако видите отворени файлове или мрежови връзки, свързани с този процес, почти сигурно е, че сте заразени или че са останали остатъци от инфекция. За да намерите файловете на диска си, използвайте:

sudo find / -iname "iworkserv*" -print

Това търсене ще разкрие пътя до всички файлове, чиито имена започват с „iworkserv“, което ви позволява да потвърдите наличието на злонамерения компонент. По онова време се препоръчваше използването на безплатен инструмент от доставчик на сигурност (като SecureMac) за автоматично премахване на троянския кон; в днешно време е по-практично да използвате актуализирана антивирусна програма или да се свържете с официалната поддръжка на Apple, ако имате някакви съмнения.

Монитор на активността: Вашият първи прозорец към процесите на macOS

Преди да се потопите в Terminal, е добре да се запознаете с Activity Monitor, графичната помощна програма на macOS , която ви позволява да виждате какво се изпълнява на компютъра ви по всяко време. Ще я намерите в Applications > Utilities > Activity Monitor.

Когато го отворите, ще видите списък с процеси с колони като PID, име, потребител, CPU %, CPU време, нишки, памет, използване на GPU и други данни. Можете да сортирате по всяка колона, като щракнете върху съответния заглавен файл, което ви помага бързо да идентифицирате кой изразходва най-много ресурси.

В горната част имате няколко раздела: Процесор, Памет, Захранване, Диск и Мрежа. Всеки един от тях ви показва конкретна информация: кои процеси използват най-много процесор, колко RAM памет се използва , кои приложения изтощават батерията или диска или кои процеси генерират мрежов трафик.

Вляво от тези раздели ще видите три ключови бутона: Stop (Стоп), Get Info (Получаване на информация) и менюто Sample/Diagnostic (Проба/Диагностика) . Бутонът Stop (Стоп) е по същество удобен за потребителя интерфейс за изпращане на сигнали за прекратяване на процеса, точно както бихте направили от терминала. Избирате процес и натискате Stop (Стоп), за да го затворите.

Ако изберете „Получаване на информация“, ще се отвори прозорец с подробности за процеса: използвана памет, статистика, отворени файлове, активни портове и др. От същия прозорец можете да генерирате „пример“, който улавя вътрешното състояние на процеса, с използвани стекове за повиквания и рамки, полезни за отстраняване на грешки при блокиране или необичайно поведение.

Терминални команди за анализ на процеси в macOS

За потребители, които искат да отидат малко по-далеч, терминалът предлага няколко класически UNIX инструмента за анализ на това, което се изпълнява в системата и как се държи, а ако трябва да контролирате приоритетите, вижте практически примери за използване на nice и renice.

Най-известната команда е topТова показва най-активните процеси в реално време, подобно на текстов монитор на активността. Просто въведете:

top

и натиснете Enter. Ще видите редовно актуализирана таблица с процеси, сортирани по използване на процесора, заедно със системна статистика. Ако искате да научите за всички негови опции, можете да се консултирате с ръководството му:

man top

Друго много практично приложение е psТова ви позволява да експортирате списък с всички активни процеси във файл или да ги покажете на екрана. Например, ако искате да запазите моментна снимка на процесите в текстов файл на вашия работен плот, можете да използвате:

ps -A > /Users/TU_USUARIO/Desktop/procesos.txt

Замяна на YOUR_USERNAME с действителното ви системно потребителско име. Този текстов файл може да бъде анализиран ръчно или качен в онлайн услуги (като класическия Triviaware), които описват всеки процес и ви помагат да идентифицирате легитимни програми и потенциално злонамерени процеси.

Как да намерите и анализирате зомби процеси от терминала

Намирането на зомби процеси в macOS е сравнително лесно, като се използват стандартни команди. Зомби процесите са маркирани със статус "Z" в изхода на `ps`, така че можете да ги филтрирате по следния начин:

ps aux | grep Z

Тази команда ще покаже редове на процеси, чийто статус съдържа буквата Z , което означава „зомби“. Обърнете внимание, че може да се появи и самият команден ред grep; важното е да се идентифицират записите, чийто статус действително показва зомби процес.

  LLMNR и IPv6: какво представлява, рискове в обществения Wi-Fi и как да го деактивирате

Ако откриете един или повече, не забравяйте, че те не консумират процесорна мощност или не извършват активна работа; те просто заемат запис в таблицата с процеси, защото родителският процес не е получил своето изходно състояние.

Обикновено SIGKILL се използва за прекратяване на активни процеси (например с kill -9 PID), но в случая със зомбита това не работи: Не можеш да „убиеш“ нещо, което технически вече е мъртво.Ключът е да се действа върху родителския процес.

Как да се опитате да премахнете зомби процесите (без да създавате прекалено голяма бъркотия)

Теоретично, най-елегантният начин за почистване на зомбита е да се изпрати сигнал към родителския процес, за да се извлече състоянието на неговите мъртви деца. Много UNIX системи използват следния метод:

kill -s SIGCHLD PID_DEL_PADRE

Заменете PID_DEL_PADRE с идентификатора на процеса, посочен като родител в изхода на ps. Този сигнал кани родителския процес да изпълни рутината на изчакване и да почисти всички чакащи зомби деца.

На практика обаче, ако приложението е лошо програмирано и не обработва правилно тези сигнали, най-ефективното решение обикновено е да се прекрати родителският процес . Когато родителският процес се прекрати, операционната система преназначава своите деца (включително зомбитата) на процеса init (или негов еквивалент в macOS), който автоматично ще ги събере и почисти.

Въпреки че това решение е ефективно, трябва да се приложи известна доза здрав разум: не е препоръчително да се прекратяват критични системни процеси, защото това може да причини нестабилност, неочаквани излизания или рестартирания. Преди да прекратите каквото и да е, уверете се, че знаете какво прави този процес (използвайки Activity Monitor, консултиране с документацията или използване на услуги за анализ на процеси).

Как да открием подозрителни процеси и странно поведение в macOS

Освен зомбитата, това, което може да ви тревожи, е странното поведение на компютъра: батерията се изтощава бързо, когато капакът е затворен, вентилаторът не спира, лаптопът се нагрява в раницата ви и т.н. В много случаи тези симптоми показват, че някой процес предотвратява правилния сън или непрекъснато използва процесора.

На съвременните Mac лаптопи е сравнително често срещано да се наблюдават процеси на индексиране (като тези, свързани със Spotlight или Photos), които консумират процесора, докато компютърът е включен. Проблемът възниква, когато това продължава дори при затворен капак или в моменти, когато системата би трябвало да е в спящ режим.

За да проучите какво се случва в тези моменти, можете да използвате командата pmset -g log в Терминала, който показва лог файлове, свързани с управлението на захранването, заспиването на системата и събуждането. Анализирането на тези лог файлове ви позволява да откриете кой процес или услуга предотвратява или причинява заспиване. непрекъснати събуждания, които изтощават батерията.

Ако имате проблеми с разбирането на лога, по-лесен начин за отстраняване на проблема е да проверите Activity Monitor, като сортирате по консумация на енергия и използване на процесора, особено веднага след отваряне на капака или когато забележите, че компютърът е топъл. Всеки процес, който продължава да се изпълнява в тези изгледи, е подозрителен и трябва да бъде разследван.

Използвайте диагностиката на Apple, за да изключите хардуерни проблеми

Понякога необичайното поведение, което приписваме на злонамерени или „зомби“ процеси, всъщност може да бъде причинено от хардуерен проблем (дефектна батерия, вентилатор, температурни сензори и др.). За да изключите тези причини, можете да използвате Apple Diagnostics, който е включен в Mac компютрите.

Първо, добра идея е да инсталирате най-новите актуализации на macOS . След това изключете напълно вашия Mac. Ако не реагира, натиснете и задръжте бутона за захранване (или Touch ID на съвременните лаптопи) за около 10 секунди, докато се изключи.

Изключете всички външни устройства, освен клавиатурата, мишката, дисплея, захранващия кабел и Ethernet връзката (ако е приложимо). Поставете вашия Mac върху твърда, равна и добре проветрива повърхност за оптимално тестване.

Оттук нататък процедурата се променя леко в зависимост от това дали имате Mac с чип на Apple (M1, M2 и др.) или Mac с процесор на Intel. И в двата случая системата ще ви води стъпка по стъпка на екрана, като ви подканва да изберете Wi-Fi мрежа, ако е необходимо, или ви позволява да стартирате офлайн диагностика, ако нямате достъп до интернет.

В по-новите версии на системата (например macOS с вътрешно име Tahoe 26 и по-нови), самият диагностичен инструмент ще ви помоли да изберете какъв тип тест искате да изпълните : екран, клавиатура, тракпад и др. В по-ранните версии тези тестове са по-автоматични и по-малко конфигурируеми.

Когато диагностичният процес приключи, ще видите един или повече референтни кодове. Можете да потърсите тези кодове на официалната страница за поддръжка на Apple, за да разберете точно какво означават. Ако не можете да разрешите проблема с тази информация, препоръчително е да посетите магазин на Apple, оторизиран сервизен доставчик или независим сервиз , като вземете кодовете със себе си, тъй като те ще ви помогнат значително да определите проблема.

  Как да използвате Fortect в Windows: Пълно ръководство, функции и цени

Разширено управление на процеси: изгледи, колони и допълнителна диагностика

Връщайки се към Activity Monitor, има няколко „скрити“ опции, които ви позволяват да имате много по-фин контрол върху случващото се в системата и, между другото, ви помагат да откривате зомби или подозрителни процеси.

В менюто Изглед > Колони можете да активирате и деактивирате много допълнителни колони освен тези, които се показват по подразбиране: брой събуждания, приоритет, отворени портове, използване на графичния процесор и др. Като коригирате тези колони според вашите нужди, е по-лесно да идентифицирате необичайни процеси.

От същото меню „Изглед“ можете също да промените честотата на актуализиране на списъка , да филтрирате по тип процес (само потребителски процеси, системни процеси, прозорци на текущия потребител и др.) или да изчистите историята на процесора. Това е полезно, ако ще наблюдавате поведението на системата в продължение на няколко минути и искате да започнете отначало.

В менюто „Прозорец“ ще намерите преки пътища към плаващи графики, показващи историята на процесора, моментното използване на процесора и историята на графичния процесор . Тези графики могат да бъдат закрепени в ъгъл, което ви позволява да видите с един поглед дали има пикове в активността в моменти, когато не би трябвало да имате отворени нищо ресурсоемко.

И накрая, иконата на Activity Monitor Dock може да бъде настроена като индикатор на живо за използването на процесора или натоварването на системата, което ви дава постоянна визуална индикация дали процесите натоварват машината, дори когато приложението не е на преден план.

DNS, мрежови процеси и тяхната непряка връзка с аномални процеси

Въпреки че изчистването на DNS кеша на вашия Mac няма да елиминира зомби процесите или зловредния софтуер, то може да бъде полезно, когато срещнете проблеми с достъпа до определени уебсайтове или подозирате, че нещо не е наред с преобразуването на имена на домейни.

DNS кешът е по същество локален списък, където системата съхранява най-новите преводи на имена на домейни в IP адреси. По този начин, когато посетите отново уебсайт, macOS не е необходимо да отправя отново запитване към външния DNS сървър , което значително ускорява сърфирането. Ако обаче даден сайт е променил сървърите, IP адресите или е възникнал проблем с разрешаването на DNS, този кеш може да остарее и да причини периодични проблеми.

В macOS Big Sur и по-стари версии можете ръчно да изчистите DNS кеша, като отворите Терминал и използвате:

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

Системата ще поиска вашата администраторска парола. Когато я стартирате, вътрешният кеш се изчиства и услугата mDNSResponder се рестартира. Имайте предвид, че зареждането на някои уебсайтове може да отнеме малко повече време , защото вашият Mac ще трябва да възстанови кеша си за резолюция от нулата.

В по-ранните версии на системата командата се променя леко. Например, в macOS Sierra обикновено се използва следното:

sudo killall -HUP mDNSResponder; say DNS cache has been flushed

А в OS X El Capitan и Yosemite този формат е често срещан:

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder; say cache flushed

Съществуват и приложения на трети страни, като например някои пакети за поддръжка като CleanMyMac X, които включват графична опция за изчистване на DNS кеша без използване на Terminal . Тези инструменти могат да бъдат удобни, но винаги е най-добре да ги изтегляте от надеждни източници и, ако е възможно, от източници, сертифицирани от Apple.

Във всеки случай, изчистването на DNS кеша е нещо, което трябва да правите само когато е разумно: след миграция на уебсайт, промяна на IP адреса на сървъра или когато откриете постоянни проблеми с разрешаването на проблеми . Това не е операция, която трябва да се повтаря рутинно, нито пък сама по себе си ще реши проблеми със зомби процеси или прекомерно използване на процесора.

Чрез комбиниране на всичко горепосочено – Activity Monitor, команди като ps, top, lsof, pmset logs и, в по-малка степен, управление на DNS – ще имате сравнително пълна представа за това какво се изпълнява на вашия Mac във всеки един момент, какво се държи необичайно и как да го поправите. Разбирането на разликата между безобидни зомби процеси, лошо програмирани процеси, които оставят следи, и наистина „зомби“ Mac в рамките на ботнет мрежа е ключово за избягване на прекомерно тревожене, но също така и за запазване на бдителност.

примери за използване на nice, renice и ionice в Linux
Свързана статия:
Практически примери за използване на nice, renice и ionice в Linux