äåòåêòîð ëæè ÊÐÈÑ ÊÀÑÏÅÐÑÊÈ ÀÊÀ ÌÛÙÚÕ Ñïåöâûïóñê: Õàêåð, íîìåð #070, ñòð. 070-060-3 1 ÌÎÄÈÔÈÖÈÐÎÂÀÒÜ NTDLL.DLL ÍÀ ÄÈÑÊÅ, ÓÑÒÀÍÎÂÈ  ÍÀ×ÀËÎ ÔÓÍÊÖÈÈ NTQUERYSYSTEMINFORMATION ÊÎÌÀÍÄÓ ÏÅÐÅÕÎÄÀ ÍÀ ÑÂÎÉ ÎÁÐÀÁÎÒ×ÈÊ (ÐÀÑÏÎËÎÆÅÍÍÛÉ ÃÄÅ-ÍÈÁÓÄÜ Â ÑÂÎÁÎÄÍÎÌ ÌÅÑÒÅ ÂÍÓÒÐÈ NTDLL.DLL), «ÂÛ×ÈÙÀÞÙÈÉ» ÈÇ ÂÛÄÀÂÀÅÌÎÉ ÅÞ ÈÍÔÎÐÌÀÖÈÈ ÂÑßÊÎÅ ÓÏÎÌÈÍÀÍÈÅ Î ÑÅÁÅ. ÑÏÎÑÎÁ ÏÐÎÑÒÎÉ ÊÀÊ ÁÀÐÀÁÀÍ, ÍÎ ÃÐßÇÍÛÉ È ËÅÃÊÎ ÎÁÍÀÐÓÆÈÂÀÅÌÛÉ ÏÓÒÅÌ ÄÈÇÀÑÑÅÌÁËÈÐÎÂÀÍÈß NTDLL.DLL ÈËÈ ÑÐÀÂÍÅÍÈÅÌ ÅÅ Ñ ÎÐÈÃÈÍÀËÎÌ. ÒÀÊ ÆÅ ÌÀËÂÀÐÈ ÏÐÈÄÅÒÑß ÏÐÎÒÈÂÎÑÒÎßÒÜ SFC È ÓÑÒÀÍÎÂÊÅ SERVICEPACK'ÎÂ, ÍÅÊÎÒÎÐÛÅ ÈÇ ÊÎÒÎÐÛÕ ÎÁÍÎÂËßÞÒ NTDLL.DLL. 2 ÌÎÄÈÔÈÖÈÐÎÂÀÒÜ NTDLL.DLL!NTQUERYSYSTEMINFORMATION  ÏÀÌßÒÈ. ÏÎÑÊÎËÜÊÓ NT ÏÎÄÄÅÐÆÈÂÀÅÒ ÌÅÕÀÍÈÇÌ COPY-ON-WRITE, ÀÂÒÎÌÀÒÈ×ÅÑÊÈ «ÐÀÑÙÅÏËßÞÙÈÉ» ÑÒÐÀÍÈÖÛ ÏÀÌßÒÈ ÏÐÈ ÇÀÏÈÑÈ, ÌÎÄÈÔÈÊÀÖÈß NTDLL.DLL ÏÐÈÎÁÐÅÒÀÅÒ ËÎÊÀËÜÍÛÉ ÕÀÐÀÊÒÅÐ, ÎÃÐÀÍÈ×ÅÍÍÛÉ ÊÎÍÒÅÊÑÒÎÌ ÏÐÎÖÅÑÑÀ-ÏÈÑÀÒÅËß. ÒÎ ÅÑÒÜ, ×ÒÎÁÛ ÂÎÇÄÅÉÑÒÂÎÂÀÒÜ ÍÀ «ÄÈÑÏÅÒ×ÅÐ ÇÀÄÀ×»,  ÍÅÃÎ ÏÐÅÆÄÅ ÍÅÎÁÕÎÄÈÌÎ ÂÍÅÄÐÈÒÜÑß. ÂÎÒ ÎÄÈÍ ÈÇ ÂÎÇÌÎÆÍÛÕ ÑÖÅÍÀÐÈÅÂ. ÌÀËÂÀÐÜ ÑÎÇÄÀÅÒ ÑÂÎÞ DLL È ÏÐÎÏÈÑÛÂÀÅÒ ÅÅ Â ÑËÅÄÓÞÙÓÞ ÂÅÒÊÓ ÑÈÑÒÅÌÍÎÃÎ ÐÅÅÑÒÐÀ: HKLM\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\WINDOWS\APPINIT_DLLS.  ÐÅÇÓËÜÒÀÒÅ ×ÅÃÎ ÝÒÀ DLL ÏÎÑËÅ ÁÓÄÅÒ ÎÒÎÁÐÀÆÀÒÜÑß ÍÀ ÂÑÅ ÏÐÎÖÅÑÑÛ. ÄËß ÁÎËÜØÅÉ ÑÊÐÛÒÍÎÑÒÈ ÌÎÆÍÎ ÌÎÄÈÔÈÖÈÐÎÂÀÒÜ NTDLL.DLL ÒÎËÜÊÎ Â ÊÎÍÒÅÊÑÒÅ ÒÅÕ ÏÐÎÖÅÑÑÎÂ, ÊÎÒÎÐÛÅ ÈÑÏÎËÜÇÓÞÒÑß ÄËß ÂÛÂÎÄÀ ÑÏÈÑÊÀ ÇÀÄÀ× (TASKMNG.EXE, FAR.EXE, TLIST.EXE È Ò. Ä.).  ÝÒÎÌ ÑËÓ×ÀÅ, ÇÀÃËßÍÓ ÎÒËÀÄ×ÈÊÎÌ ÂÍÓÒÐÜ NTQUERYSYSTEMINFORMATION, ÌÛ ÍÅ ÍÀÉÄÅÌ ÍÈÊÀÊÈÕ ÑËÅÄΠÌÀËÂÀÐÈ. ÌÎÆÍÎ, ÊÎÍÅ×ÍÎ, ÏÐÎÂÅÐÈÒÜ APPINIT_DLLS, ÍÎ ÝÒÎ ÍÅ ÅÄÈÍÑÒÂÅÍÍÛÉ ÑÏÎÑÎÁ ÂÍÅÄÐÅÍÈß, ÒÀÊ ×ÒÎ ÇÀÄÀ×À ÂÛßÂËÅÍÈß ÌÀËÂÀÐÈ ÐÅÇÊÎ ÓÑËÎÆÍßÅÒÑß. 3 ÌÎÄÈÔÈÖÈÐÎÂÀÒÜ ÒÀÁËÈÖÓ ÈÌÏÎÐÒÀ TASKMNG.EXE («ÄÈÑÏÅÒ×ÅÐ ÇÀÄÀ×»), PROCLIST.DLL (ÏËÀÃÈÍ FAR'À, ÎÒÂÅÒÑÒÂÅÍÍÛÉ ÇÀ ÂÛÂÎÄ ÑÏÈÑÊÀ ÏÐÎÖÅÑÑÎÂ), TLIST.EXE ÍÀ ÄÈÑÊÅ (ÈËÈ Â ÏÀÌßÒÈ), ÏÎÄÌÅÍÈ ÂÛÇÎÂΠNTQUERYSYSTEMINFORMATION ÑÂÎÅÉ ÑÎÁÑÒÂÅÍÍÎÉ ÔÓÍÊÖÈÉ ÎÁÅÐÒÊÎÉ. ÒÀÊÎÉ ÏÅÐÅÕÂÀÒ ËÅÃÊÎ ÎÁÍÀÐÓÆÈÂÀÅÒÑß ÏÓÒÅÌ ÑÐÀÂÍÅÍÈß ÈÑÏÎËÍßÅÌÛÕ ÔÀÉËÎÂ Ñ ÈÕ ÎÁÐÀÇÎÌ ÏÀÌßÒÈ, ÊÎÒÎÐÛÉ ÌÎÆÅÒ ÁÛÒÜ ÏÎËÓ×ÅÍ ÏÓÒÅÌ ÑÍßÒÈß ÄÀÌÏÀ ÓÒÈËÈÒÎÉ ÒÈÏÀ PE TOOLS ÈËÈ ÑÒÀÐÛÌ ÄÎÁÐÛÌ PROCDUMP'ÎÌ. Ê ÒÎÌÓ ÆÅ ÌÀËÂÀÐÈ ÏÐÈÄÅÒÑß ÄÎÏÎËÍÈÒÅËÜÍÎ ÏÅÐÅÕÂÀÒÛÂÀÒÜ GETPROCADDRESS, ×ÒÎÁÛ ÎÒÑËÅÆÈÂÀÒÜ ÄÈÍÀÌÈ×ÅÑÊÓÞ ÇÀÃÐÓÇÊÓ NTDLL.DLL. Ïðè íàëè÷èè ïðàâ àäìèíèñòðàòîðà, ìàëâàðü ìîæåò ïðîíèêíóòü â NTOSKRNL.EXE è ïîäìåíèòü ñåðâèñ 97h ñâîèì ñîáñòâåííûì îáðàáîò÷èêîì. Òîãäà ñ ïðèêëàäíîãî óðîâíÿ îáíàðóæèòü çëîâðåäíûé ïðîöåññ óæå íå óäàñòñÿ è ïðèäåòñÿ ñïóñêàòüñÿ íà óðîâåíü ÿäðà (ïîäðîáíî ðàññìîòðåíî â ðàçäåëå «âîññòàíîâëåíèå SST»). À âîò Soft-Ice íå èñïîëüçóåò NtQuerySystemInformation è äëÿ îòîáðàæåíèÿ ñïèñêà ïðîöåññîâ ñàìîñòîÿòåëüíî ðàçáèðàåò áàçîâûå ñòðóêòóðû îïåðàöèîííîé ñèñòåìû, à ïîòîìó ëåãêî âûÿâëÿåò ñêðûòûå ïðîöåññû. Òåîðåòè÷åñêè, ìàëâàðü ìîæåò âíåäðèòüñÿ â soft-ice è ïåðåõâàòèòü ëþáóþ èç åãî êîìàíä (íàïðèìåð, êîìàíäó «PROC»), äåéñòâóÿ ïî òîé æå ñõåìå, ÷òî è IceExt/IceDump (áëàãî, ÷òî îáå óòèëèòû ðàñïðîñòðàíÿþòñÿ â èñõîäíûõ òåêñòàõ). Íî â æèâîé ïðèðîäå òàêèå «ìîíñòðû» ïîêà ÷òî íå âñòðå÷àëèñü. Ìîæíî íàäåÿòüñÿ, ÷òî IceExt, ñêðûâàþùèé soft-ice îò áîëüøèíñòâà çàùèò, ñêðîåò åãî è îò ìàëâàðè, îäíàêî, ïðè ýòîì îñòàåòñÿ óãðîçà ñèãíàòóðíîãî ïîèñêà îòëàä÷èêà â ïàìÿòè. Ê òîìó æå íà õàêåðñêèõ ôîðóìàõ íå ïåðâûé ãîä îáñóæäàåòñÿ ãèïîòåòè÷åñêèé àëãîðèòì ñêðûòèÿ, ïåðåõâàòûâàþùèé ôóíêöèè ïåðåêëþ÷åíèÿ êîíòåêñòà è «âûòèðàþùèé» ñåáÿ â ïðîìåæóòêàõ ìåæäó íèìè. Íî ðåàëèçàöèÿ òàêîãî ïðîåêòà óïèðàåòñÿ â íåïðåîäîëèìûå ïðàêòè÷åñêèå òðóäíîñòè. Ôîðìàò ïðîöåññîðíûõ ñòðóêòóð íåïîñòîÿíåí è ìåíÿåòñÿ îò îäíîé âåðñèè ñèñòåìû ê äðóãîé, ê òîìó æå ñ íèìè âçàèìîäåéñòâóåò ìíîæåñòâî íåäîêóìåíòèðîâàííûõ ôóíêöèé, âûçûâàåìûõ â ðàçíîå âðåìÿ èç ðàçëè÷íûõ ìåñò. È ìàëâàðü, ïûòàþùàÿñÿ çàìàñêèðîâàòüñÿ, ïîñòîÿííî îáðóøèâàåò ñèñòåìó â BSOD, ÷åì ñðàçó ñåáÿ è ðàçîáëà÷àåò... |