Disassembler

Artificial intelligence is no match for natural stupidity.
15června2012

Když se dva antiviry perou


Znáte ten pocit, když se k vám dostane laptop, který jste instalovali, a systém je tak šíleně rozdrbaný a zaplácaný všelijakými toolbary, zrychlovači, zaručeně funkčními antispywary a jinými sračkami pochybnými aplikacemi, takže máte chuť do víka zatnout krumpáč a poslat jej tak zpátky zákazníkovi? Tak přesně takový jsem tu včera měl.

Je to rozbitý


Původní popis problému zněl „Nefunguje internet“. Odolal jsem pokušení sdělit zákazníkovi, že ty dvě a půl miliardy uživatelů internetu by o tom asi musely něco vědět a raději ho opatrným vyptáváním navedl k tomu, aby mi problém specifikoval. Při obnovování IP adresy se mi z něj podařilo vymáčknout, že mu systém hlásí, že „Server RPC není k dispozici“. S tím už se dalo pracovat, protože to znamenalo, že problém je přímo v konkrétním zařízení a ne v síti. A dokonce ani v internetu ne. Kdo by to byl řekl. Mohl jsem se tedy pohnout o kousek dál a jal jsem se zjišťovat, proč se síťové služby s uživatelem odmítají bavit. Ode mě měl v laptopu instalovaný NOD32 Antivirus, a tak má další otázka celkem logicky směřovala k identifikaci možných konfliktů v ochraně. „Není tam náhodou nainstalovej nějakej další antivir, antispyware nebo něco takovýho?“ ptám se. „Ne, já jsem s tím vůbec nic nedělal“ zněla odpověď, která by měla být automaticky postihována odnětím svéprávnosti. A protože troubleshooting něčeho takového se s negramotným uživatelem a nefunkčními síťovými službami dělá špatně, vydal se laptop za mnou.

Kazisvět


Start -> Ovládací panely -> Odinstalovat program... Co to sakra? „Já jsem s tím vůbec nic nedělal“? A ty toolbary se nainstalovaly z Windows Update nebo co? A co tam sakra dělá ten Norton Internet Security? Bylo jasno. Milý uživatel si přes NODa nainstaloval NIS. Bohužel NIS má tak hloupý instalátor, že se vůbec neobtěžuje uživatele upozornit, že už na počítači nějaký antivir má a prostě se tam nacpe. Pak zjistí, že z nějakého důvodu, který určitě nebude mít nic společného s tím, že systém už je chráněn jiným nástrojem, nemůže převzít kontrolu nad důležitými systémovými procesy a službami. A tak ho nenapadne nic lepšího, než „opravit“ všechna možná oprávnění a tím efektivně vyřadit nejen síťovou část NODu, ale i většinu síťových služeb Windows. Na jednu stranu je to skutečně efektivní ochrana před internetovými hrozbami, ale nemyslím, že je to úplně přesně to, co si uživatel přál. Bohužel nebylo možno počítač jednoduše přeinstalovat a tak jsem se musel uchýlit k částečné replikaci oprávnění z počítače neobohaceného o několikanásobnou ochranu. Napřed jsem ale samozřejmě odebral oba antiviry, aby neměly tendenci mi do toho kecat.

Úklid


Začal jsem obligátním vyčištěním TCP/IP stacku z příkazové řádky, kdyby náhodou.

netsh int ip reset
netsh winsock reset catalog
shutdown /r /t 0

To dle očekávání nepomohlo, tak jsem se šel podívat do správy systému, jestli mi někdo neřekne, co že se to službám vlastně nelíbí. Ve službách jsem se dočetl, že server RPC, na který předtím při obnově IP Windows nadávaly, běží a tváří se, že je v pořádku. Zato služba Sledování umístění v síti (NLA) se tvářila jaksi mrtvě. V prohlížeči událostí jsem se proklikal k Protokoly systému Windows -> Systém a přečetl si neuvěřitelně užitečnou chybovou hlášku.

Služba Sledování umístění v síti (NLA) ukončena s chybou %%-1073741288, specifickou pro službu.

Díky, Microsofte. Tohle mi hrozně pomohlo a hned vím co je špatně a jak to opravit. Letmé zagooglení však ukázalo, že chyba není až tak neobvyklá a je způsobena nepřítomností uživatelských účtů služeb v místní administrátorské skupině. Oprava je snadná a úplně náhodou zafunguje i na hlášky typu „Přístup byl odepřen“, nacházející se u kýblu dalších služeb.

net localgroup administrators localservice /add
net localgroup administrators networkservice /add
shutdown /r /t 0

Hurá. Po tomto restartu už vím, kde v síti jsem, mám adresu z DHCP a dokonce se mi probrala i autokonfigurace WLANu. Stále mi však v logu zůstalo pár důležitých služeb, které se nepodařilo nastartovat. Konkrétně

Služba BFE (Base Filtering Engine)
Služba DPS (Diagnostic Policy Service)

Diagnostika není až tak potřebná, ale BFE je zatraceně důležitá služba, co se zabezpečení týče. Umožňuje totiž napojení filtrů třetích stran, což je přesně to, co takový slušně napsaný antivir k integraci se systémem potřebuje. Tyhle dvě služby totiž v registrech potřebují extra oprávnění svého NT Service uživatele. Tak tedy vzhůru do registru. Donavigovat do

HKLM\SYSTEM\CurrentControlSet\services\BFE\Parameters\Policy

Na klíči kliknout pravým myšítkem -> Oprávnění... -> Upřesnit -> Přidat... Jako název objektu zadat

NT Service\BFE

a z oprávnění povolit

Dotazovat se na hodnotu
Nastavit hodnotu
Vytvořit podklíč
Vytvořit výčet podklíčů
Oznámit
Řízení čtení

Pak už jen nezapomenout zaškrtnout Přepsat všechna oprávnění podřízených objektů zděditelnými oprávněními tohoto objektu a úpravu potvrdit.

U služby diagnostiky je postup obdobný, jen je třeba nastavit oprávnění na klíči, který se nenachází přímo v podklíčích služby samotné. Ten správný se totiž nachází v umístění

HKLM\System\CurrentControlSet\Control\WDI\Config

a uživateli

NT Service\DPS

je třeba k němu přidělit plné oprávnění.

Po dalším restartu už se výše zmíněné služby rozběhly a odhalily poslední nefunkční službu – Brána Windows Firewall. Chvíli jsem koketoval s myšlenkou, že bych ji nechal rozbitou, protože tuhle službu vážně v lásce nemám, ale nakonec jsem i tuhle poslední opravil, kdyby ji náhodou někdy někdo nedej bože potřeboval. Ke klíčům

HKLM\System\CurrentControlSet\Services\SharedAccess\Epoch
HKLM\System\CurrentControlSet\Services\SharedAccess\Epoch2

bylo potřeba přidat plné oprávnění pro uživatele

NT Service\MpsSvc
NETWORK SERVICE

Antiantivir


Samozřejmě chápu, že existují lidé, kteří jsou téměř počítačově negramotní, ale sakra, když už si jednou ten počítač pořídím, tak se předpokládá, že alespoň základní znalost užívání mám. A když si s něčím nevím rady, tak by bylo vhodné napřed zavolat a pak dle rad něco provádět a ne napřed celej počítač dokurvit a pak pípnout, že to nějak nefunguje. S autem taky nevyjedu na silnici dřív, než jsem si jist, že vím jak ho ovládat a že ty barevný obrázky vedle silnic taky něco znamenají.

Kdysi jsem vytvořil Windowsovskou službu, která operovala nade mnou spravovaným blacklistem a blokovala instalace různých pochybných a závadných aplikací. Anebo i nezávadných, ale v kombinaci s jiným nástrojem nežádoucích. Časem jsem ji ale odstavil s tím, že je to až příliš radikální řešení a že stejně nebylo možno spolehlivě obsáhnout většinu možných hrozeb. Teď je mi to skoro i líto, protože přesně pro taková kopyta by se hodila. Samozřejmě se nebráním tomu, když mi někdo každý měsíc bude nosit ten samý počítač, protože moje služby bude muset zaplatit. Ale nebylo by to potřeba, kdyby se ta hloupá zvířátka alespoň trochu snažila.