Кіріспе

Компьютердегі рұқсат етілмеген орындарға кіруді қамтамасыз ететін бағдарламалық қамтамасыз ету. Руткит – компьютерге немесе оның бағдарламалық қамтамасыз етуінің басқаша рұқсат етілмеген аймағына (мысалы, рұқсат етілмеген пайдаланушыға) кіруді қамтамасыз ететін, көбінесе зиянды компьютерлік бағдарламалар жиынтығы. Ол өз және басқа бағдарламалық қамтамасыз етудің бар екенін жасырады. "Rootkit" термині зиянды бағдарламалармен байланысты болғандықтан, жағымсыз мәнге ие. Мұндай қолжетімділікті алу жүйеге тікелей шабуыл жасаудың нәтижесі болып табылады, яғни осалдықты пайдалану (мысалы, құқықтарды кеңейту) немесе парольді (бұзу немесе "фишинг" сияқты әлеуметтік инженерия тактикасы арқылы қолға түсіру). Орнатылғаннан кейін, кіргендерді жасыру және артық құқықтарды сақтап қалу мүмкін болады. Жүйеге толық бақылау дегеніміз – қолданыстағы бағдарламалық қамтамасыз етуді, оның ішінде оны анықтау немесе айналып өту үшін пайдаланылатын бағдарламалық қамтамасыз етуді өзгерту. Руткитті анықтау қиын, себебі ол оны табуға арналған бағдарламалық қамтамасыз етуге зиян келтіре алады. Анықтау әдістеріне: баламалы және сенімді операциялық жүйені пайдалану, мінез-құлыққа негізделген әдістер, қолтаңбаны тексеру, айырмашылықты тексеру және жадтың сақтамасын талдау кіреді. Жою күрделі немесе іс жүзінде мүмкін емес болуы мүмкін, әсіресе руткит ядрода орналасқан жағдайларда; операциялық жүйені қайта орнату – проблеманы шешудің жалғыз жолы болуы мүмкін. Егер руткит микрокодта (firmware) болса, оны жою үшін аппаратты ауыстыру немесе арнайы жабдықтар қажет болуы мүмкін.

Тарих

Руткит, ркит немесе рут-кит термині бастапқыда Unix сияқты операциялық жүйеде "root" құқығын беретін әкімшілік құралдар жиынтығының қасақана өзгертілген нұсқасын білдірді. Егер шабуылшы жүйедегі стандартты әкімшілік құралдарды руткитпен алмастыра алса, ол жүйеге root-қа қол жеткізе алатын болып, осы әрекеттерін заңды жүйе әкімшісінен жасыра алатын еді. Мұндай бірінші буын руткиттерін Tripwire сияқты, бұзылмаған құралдар арқылы анықтау оңай болды. 1983 жылы Тьюринг сыйлығын алған кезде Берген дәрісінде Unix-тің жасаушыларының бірі, Bell Labs-тің Кен Томпсон, Unix дистрибутивінде C компиляторын бұзу мүмкіндігі туралы теория ұсынды және осы қауіпті пайдалану жолын талқылады. Өзгертілген компилятор Unix жүйеге кіру командасын құрастыру әрекетін анықтап, пайдаланушының дұрыс паролімен қатар, шабуылшыға белгілі қосымша "арқалық" парольді қабылдайтын өзгертілген кодты жасайтын еді. Сонымен қатар, компилятор компилятордың жаңа нұсқасын құрастыру әрекетін анықтап, сол қауіпті жаңа компиляторға да енгізер еді. Логин командасының бастапқы кодын немесе жаңартылған компиляторды қарап шыққанда ешқандай зиянды код табылмайтын еді. Бұл қауіп руткитке тең келеді. 1986 жылы ашылған, жеке компьютерді нысанаға алған алғашқы компьютерлік вирус өзін жасыру үшін жасыру әдістерін қолданды: Brain вирусы жүктеу секторын оқу әрекетін тоқтатып, оны дискідегі басқа жерге қайта бағыттады, онда бастапқы жүктеу секторының көшірмесі сақталған еді. Уақыт өте келе DOS вирустарын жасыру әдістері күрделене түсті. Күрделі әдістерге төменгі деңгейлі диск INT 13H BIOS үзілісі арқылы файлдарға рұқсатсыз енгізілген өзгерістерді жасыру кіретін еді. Stuxnet құртын алғаш рет бағдарламаланатын логикалық контроллерлерді (PLC) нысанаға алды.

Sony BMG-дің көшірмеден қорғау руткит-қақтығысы

2005 жылы Sony BMG First 4 Internet бағдарламалық қамтамасыз ету компаниясы жасаған Extended Copy Protection деп аталатын көшірмеден қорғау және цифрлық құқықтарды басқару бағдарламалық жасақтамасы бар CD-дискілерді шығарды. Бағдарламалық жасақтама музыка ойнатқышын қамтыды, бірақ пайдаланушының CD-ге қол жеткізу мүмкіндігін шектейтін руткитті жасырын түрде орнатты. Руткит өзін жасыру үшін "$sys$" деп басталатын кез келген файлды пайдаланушыдан жасырады. Бағдарламалық жасақтама инженері Марк Руссинович, RootkitRevealer руткит анықтау құралын жасаған адам, өз компьютерінің бірінде осы руткитті тапты. Руссиновичтің хабарламасынан кейін көп ұзамай, зардап шеккен жүйелердегі қолданыстағы руткитті пайдаланатын зиянды бағдарлама пайда болды. Sony BMG руткитті жою үшін жаңартулар шығарды, бірақ бұл пайдаланушыларды одан да қауіпті осалдыққа ұшыратты. Соңында компания CD-дискілерді қайтарып алды. АҚШ-та Sony BMG компаниясына қарсы топтық сот процесі басталды.

Түрлері

Кем дегенде бес түрлі түбіртектер бар, олар аппараттық құрылғыдағы ең төменгі деңгейден (ең жоғары құқықтары бар) басталып, 3-сапта жұмыс істейтін, ең төменгі құқықтары бар пайдаланушыға негізделген нұсқаларға дейін жетеді. Бұлардың гибридтік комбинациялары да болуы мүмкін, мысалы, пайдаланушы режимі мен ядро режимін қамтуы мүмкін. blockquote|text=Пайдаланушы режиміндегі барлық қолданбалар өздерінің жеке жад кеңістігінде жұмыс істейтіндіктен, түбіртек әрбір іске қосылған қолданбаның жад кеңістігінде осы түзетулерді жасауы керек. Сонымен қатар, түбіртек жүйедегі жаңа бағдарламаларды толық орындалуына дейін бақылап, олардың жад кеңістігін түзетуі керек.|sign=Windows Rootkit Overview|source=Symantec Ядролық түбіртектерді анықтау және жою әсіресе қиын, себебі олар операциялық жүйенің өзімен бірдей қауіпсіздік деңгейінде жұмыс істейді және осылайша операциялық жүйенің ең сенімді операцияларын ұстап алуға немесе бұрмалауға қабілетті. Зақымдалған жүйеде жұмыс істейтін кез келген бағдарламалық қамтамасыз ету, мысалы, антивирустық бағдарламалық қамтамасыз ету де сол сияқты осал болады. Мұндай жағдайда жүйенің ешбір бөлігіне сенуге болмайды. Түбіртек Windows ядросындағы дерек құрылымдарын тікелей ядролық объектілерді манипуляциялау (DKOM) деп аталатын әдіс арқылы өзгерте алады. Бұл әдіс процестерді жасыру үшін қолданылуы мүмкін. Ядролық режимдегі түбіртек жүйелік қызметтер сипаттамалық кестесін (SSDT) ұстап алуға немесе өзін жасыру үшін пайдаланушы режимі мен ядролық режим арасындағы қақпаларды өзгертуге болады. Түбіртек басқа зиянды бағдарламаларды немесе ол жұқтырған файлдардың түпнұсқалық көшірмелерін жасыра алатын жасырын, шифрланған файлдық жүйені жасау арқылы жиі әрекет етеді. Операциялық жүйелер ядролық режимдегі түбіртектердің қаупіне қарсы тұру үшін дамып келеді. Мысалы, Microsoft Windows-тың 64 биттік нұсқалары қазір барлық ядролық деңгейлі драйверлерді міндетті түрде қолтаңбалауды енгізеді, бұл жүйеде ең жоғары құқықтармен сенімсіз кодтың орындалуын қиындатады.

Жүгірткі жиынтығы

Ядролық режимдегі руткит түрі болып табылатын бастау жинағы (bootkit), Бастау жазбасы (MBR), Көлемдік Бастау жазбасы (VBR) немесе жүктеу секторы сияқты бастау кодын жұқтыра алады, осылайша толық дискілік шифрлау жүйелеріне шабуыл жасауға қолданылуы мүмкін. Дискіні шифрлауға жасалған мұндай шабуылдың мысалы – "жаман қызметші шабуылы", онда шабуылшы қараусыз қалған компьютерге бастау жинағын орнатады. Көрінетін сценарий – құрбандар жабдықтарын қалдырып кеткен қонақ үй бөлмесіне үй қызметшісінің тығырықтап кіруі. Bootkit заңды жүктеушіні олардың бақылауындағы жүктеушімен алмастырады. Әдетте, зиянды бағдарлама жүктеуіш ядро жүктелген кезде қорғалған режимге ауысу кезінде сақталады, соның арқасында ядроны бұза алады. Мысалы, "Stoned Bootkit" шифрлау кілттерін және парольдерін ұстап алу үшін бұзылған жүктеушіні пайдаланып жүйені бұзады. 2010 жылы Alureon rootkit Windows 7 жүйесіндегі 64 биттік ядролық режимдегі драйвердің қолтаңбалау талабын, бас жүктеу жазбасын өңдеу арқылы сәтті бұзды. Пайдаланушы қаламайтын нәрсені жасау мағынасында зиянды бағдарлама болмаса да, кейбір "Vista Loader" немесе "Windows Loader" бағдарламалық жасақтамасы Windows Vista және Windows 7 белсендіру процесін жеңу үшін BIOS-тың RAM кэштелген нұсқасына ACPI SLIC (System Licensed Internal Code) кестесін енгізу арқылы ұқсас жұмыс істейді. Бұл шабуыл векторы Windows 8-дің (серверлік емес) нұсқаларында күшін жойды, ол әр жүйе үшін бірегей, машинаға тән кілтті пайдаланады, оны тек сол машина ғана қолдана алады. Көптеген антивирус компаниялары бастау жинақтарын жоюға арналған тегін құралдар мен бағдарламаларды ұсынады.

Гипервизор деңгейі

Rootkit-тер академиялық ортада концепцияны дәлелдеу мақсатында II типті гипервизорлар ретінде құрылды. Intel VT немесе AMD V сияқты аппараттық виртуализация мүмкіндіктерін пайдаланып, осы типтегі rootkit 1-деңгейде жұмыс істейді және нысаналық операциялық жүйені виртуалды машина ретінде іске қосады, соның арқасында rootkit бастапқы операциялық жүйе жасаған аппараттық шақыруларды ұстап ала алады. Қалыпты гипервизорлардан өзгешелігі, олар операциялық жүйе жүктелуінен бұрын жүктелуі міндетті емес, бірақ оны виртуалды машинаға көшіру алдында операциялық жүйеге жүктеуге болады. Blue Pill бағдарламалық құралы да осыған ұқсас. 2009 жылы Microsoft және Солтүстік Каролина штатының университетінің зерттеушілері ядролық режимдегі rootkit-терге қарсы жалпы қорғаныс ұсынатын Hooksafe деп аталатын гипервизорлық қабатты анти-rootkit ретінде көрсетті. Windows 10 операциялық жүйені rootkit сияқты зиянды бағдарламалардан тәуелсіз сыртқы қорғаумен қамтамасыз ету үшін виртуализацияны пайдаланатын "Device Guard" деп аталатын жаңа мүмкіндікті енгізді.

Қатты бағдарламалық жасақтама және аппараттық жабдық

Фирмалық бағдарламаны пайдаланушы руткит, маршрутизатор, желілік карта, қатты диск немесе жүйелік BIOS сияқты аппараттық құрылғыларда тұрақты түрде зиянды бағдарламалық бейне жасау үшін құрылғының немесе платформаның фирмалық бағдарламасын пайдаланады. Руткит фирмалық бағдарламада жасырынады, себебі фирмалық бағдарлама әдетте кодтың тұтастығына тексерілмейді. Джон Хисман ACPI фирмалық бағдарламасында да, PCI кеңейту картасының ROM-ында да фирмалық бағдарламалық руткиттердің мүмкіндігін көрсетті. 2008 жылдың қазан айында қылмыскерлер Еуропалық кредиттік карталарды оқитын құрылғыларды орнату алдында бұзған. Бұл құрылғылар ұялы телефон желісі арқылы кредиттік карта мәліметтерін ұстап алып, жіберген. 2009 жылдың наурыз айында зерттеушілер Альфредо Ортега мен Анибал Сакко дискіні ауыстырғанда немесе операциялық жүйені қайта орнатқанда да сақталып қалатын BIOS деңгейіндегі Windows руткиті туралы мәліметтерді жариялады. Бірнеше айдан кейін олар кейбір ноутбуктерде көптеген BIOS суреттеріне алдын ала орнатылған Absolute CompuTrace немесе Absolute LoJack for Laptops деп аталатын заңды руткит сатылатынын білді. Бұл ұрлыққа қарсы технологиялық жүйе, зерттеушілер оны зиянды мақсаттарға пайдалануға болатынын көрсетті. Кейбір зиянды руткиттерді орнату коммерциялық сипатта болады, тарату үшін төлем жасау (PPI) компенсациясының әдеттегі тәсілі қолданылады. Орнатылғаннан кейін, руткит диагностика, сканерлеу және мониторинг үшін қолданылатын стандартты операциялық жүйе қауіпсіздік құралдарын және қолданбалы бағдарламалау интерфейсін (API) бұзу немесе жасыру арқылы хост жүйесінде өзінің болуын жасыру үшін белсенді шаралар қолданады. Руткиттер басқа процестерге кодты жүктеу, драйверлерді орнату немесе өзгерту немесе ядролық модульдер арқылы операциялық жүйенің негізгі бөліктерінің мінез-құлқын өзгерту арқылы мұны іске асырады. Жасыру техникаларына жүйелік мониторинг механизмдерінен жұмыс істеп тұрған процестерді жасыру және жүйелік файлдар мен басқа конфигурациялық деректерді жасыру кіреді. Руткиттер үшін операциялық жүйенің оқиғаларды тіркеу мүмкіндігін өшіру, шабуылдың дәлелін жасыру үшін бұл ерекше емес. Теориялық тұрғыдан алғанда, руткиттер кез келген операциялық жүйе әрекеттерін бұза алады және зерттеушілерге оларды анықтау және талдау оңай болатын виртуалды машиналарға орнатудан аулақ болады.

Анықтау

Руткиттерді анықтаудың негізгі мәселесі – егер операциялық жүйе, әсіресе ядролық деңгейдегі руткит арқылы бұзылған болса, оған өзіне немесе оның құрамдас бөліктеріне жасалған рұқсатсыз өзгерістерді табуды тапсыруға болмайды. Іске қосылған процестердің тізімін немесе каталогтағы файлдар тізімін сұрау сияқты әрекеттердің күтілгендей орындалуына сенуге болмайды. Яғни, жұқтырылған жүйеде жұмыс істейтін руткит анықтағыштар тек камуфляжда кемшіліктері бар немесе ядродағы анықтау бағдарламалық жасақтамасынан төменгі пайдаланушы құқықтарымен жұмыс істейтін руткиттерге ғана тиімді. Компьютерлік вирустар сияқты, руткиттерді анықтау және жою – осы қақтығыстың екі жағы арасындағы үздіксіз күрес. Сондай-ақ, жасырын процестерді көрсететін үлгілерді іздеу үшін жадты тексеру де қажет. Unix жүйесі үшін ұсынылатын руткит анықтағыштарға Zeppoo, chkrootkit, rkhunter және OSSEC кіреді. Windows үшін анықтау құралдары: Microsoft Sysinternals RootkitRevealer, Avast Antivirus, Sophos Anti Rootkit, F Secure, Radix, GMER және WindowsSCOPE. Кез келген тиімді руткит анықтағыш өзінің тиімсіздігіне әкеледі, себебі зиянды бағдарламалардың авторлары кодтарын жақсы қолданылатын құралдардан қашып құтылу үшін бейімдеп, сынақтан өткізеді. Күдікті операциялық жүйе жұмыс істемей тұрғанда сақтау құрылғысын тексеру арқылы, тексеру бағдарламалық жасақтамасы тани алмайтын руткиттер жіберіліп қалуы мүмкін, себебі руткит белсенді емес және күдікті әрекеттері жасырылады; руткит өзін тиімді жасыра алса, оның жұмыс істеп тұрған кезде іске қосылған дәстүрлі антивирустық бағдарламалар сәтсіз аяқталуы мүмкін.

Басқа сенімді құрал

Операциялық жүйе деңгейіндегі руткиттерді анықтаудың ең жақсы және сенімді әдісі – жұқтырылған деп күдіктенген компьютерді өшіру, содан кейін оның жадтық құрылғыларын (мысалы, "құтқару" CD-ROM немесе USB флеш-дискі) арқылы жүктеу арқылы тексеру. Бұл техника тиімді, себебі руткит іске қосылмаса, өзінің бар екенін жасыра алмайды.

Әдеп-тәрбиелік негізде

Руткиттерді анықтаудың мінез-құлыққа негізделген тәсілі, руткитке ұқсас әрекеттерді іздеу арқылы руткиттің болуын болжауға тырысады. Мысалы, жүйенің жұмысын зерделеу арқылы API шақыруларының уақыты мен жиілігіндегі, немесе жалпы процессордың (CPU) қолданылу деңгейіндегі өзгерістер руткитке байланысты болуы мүмкін. Бұл әдіс күрделі және көптеген жалған оң нәтижелерге ұшырайды. Бұзылған руткиттер кейде жүйеге айқын өзгерістер енгізе алады: Alureon руткиті, қауіпсіздік жаңартуы оның кодындағы құрылымдық қателікті ашқаннан кейін Windows жүйелерін құлатты. Желіде руткит әрекеттерінің дәлелдерін пакеттерді талдаушы, брандмауэр немесе кіршікті алдын алу жүйесінің журналынан табуға болады. Бұл біріктірілген тәсіл шабуылдаушыларды антивирустық бағдарламаларды тоқтатуға тырысатын қарсы шабуыл механизмдерін немесе "ретро" процедураларын енгізуге мәжбүрлейді. Белгілі руткиттерге қарсы қолтаңбаға негізделген анықтау әдістері тиімді болуы мүмкін, бірақ арнайы жасалған, жеке руткиттерге қарсы тиімділігі төмендеу. Дегенмен, бұл жағдайда операциялық жүйе механизмдері, мысалы, жадты қайта орналастыру немесе "шимминг" сияқты әрекеттер арқылы кейбір дұрыс айырмашылықтар енгізілуі мүмкін. Руткит мұндай айырмашылықты анықтайтын сканердің немесе виртуалды машинаның (соңғысы көбінесе сот-медициналық талдау үшін қолданылады) бар екенін анықтап, өзінің әрекеттерін айырмашылықтарды анықтау мүмкін болмауы үшін өзгерте алады. Айырмашылыққа негізделген анықтауды Руссиновичтің RootkitRevealer құралы Sony DRM руткитін табу үшін қолданды. Алайда, қарапайым схемалар код орнатылғаннан бері өзгертілгенін ғана тексереді; одан бұрынғы өзгерістер анықталмайды. Жүйеге өзгерістер енгізілген сайын саусақ іздерін қайта құру қажет: мысалы, қауіпсіздік жаңартуларын немесе қызметтік жинақты орнатқаннан кейін. Хеш-функция хабарламаның дайджестін жасайды, бұл файлдың әрбір битінен алгоритм арқылы есептелетін салыстырмалы түрде қысқа код, тіпті кішкентай өзгерістер файлдың бастапқы нұсқасына үлкен өзгерістер енгізеді. Орнатылған файлдардың хабарлама дайджестін үнемі қайта есептеу және оны сенімді хабарлама дайджестерінің тізімімен салыстыру арқылы жүйедегі өзгерістерді анықтауға және бақылауға болады, егер бастапқы базалық деңгей зиянды бағдарлама қосылғанға дейін құрылған болса. Күрделі руткиттер файлдың өзгертілмеген көшірмесін тексеруге ұсыну арқылы немесе кодты жадта ғана өзгерту арқылы тексеру процесін бұза алады, ал қайта конфигурациялық тіркеулер кейін күтілетін мәндердің ақ тізімімен салыстырылады. Хеш-кодты есептеу, салыстыру немесе кеңейту операцияларын орындайтын кодты да қорғау қажет – осы контексте, сенімнің өзгермейтін түбірі деген ұғым жүйенің қауіпсіздік қасиеттерін өлшейтін ең алғашқы кодтың өзі сенімді болуы керек, бұл руткит немесе буткит жүйені ең негізгі деңгейде бұзбауын қамтамасыз етеді.

Жадының жоғалуы

Виртуалды жадтың толық көшірмесін жасауға мәжбүрлеу белсенді руткитті (немесе ядролық режимдегі руткит болған жағдайда ядроның көшірмесін) ұстап алады, нәтижесінде алынған көшірме файлымен офлайн криминалистикалық талдауды түзету құралын пайдаланып жүргізуге мүмкіндік береді, руткит өзін жасыруға ешқандай әрекет жасамайды. Бұл техника өте мамандандырылған және құпия емес бастапқы кодқа немесе түзету символдарына қол жеткізуді қажет етуі мүмкін. Операциялық жүйе жасаған жад көшірмелері гипервизорға негізделген руткитті анықтау үшін әрқашан қолданылмайды, себебі ол жадты оқуға жасалған ең төменгі деңгейдегі әрекеттерді ұстап алып, өзгерте алады. Виртуалды машиналар бұзылған машинаның жадын негізгі гипервизордан талдауды жеңілдетеді, сондықтан кейбір руткиттер осы себепті виртуалды машиналарды жұқтырудан қашады.

Алып тастау

Руткитті қолмен жою әдетте қарапайым компьютер пайдаланушысы үшін өте қиын, бірақ бірқатар қауіпсіздік бағдарламалық қамтамасыз ету өндірушілері кейбір руткиттерді автоматты түрде анықтау және жою құралдарын ұсынады, әдетте антивирустық топтаманың бір бөлігі ретінде. 2005 жылдан бері Microsoft-тың Windows-тағы Зиянды Бағдарламаларды Жою Құралы кейбір руткиттердің түрлерін анықтап, жоя алады. Сонымен қатар, Windows Defender Offline операциялық жүйе іске қосылғанға дейін сенімді ортадан жұмыс істейтіндіктен, руткиттерді жоюға қабілетті. Кейбір антивирустық сканерлер руткиттердің манипуляциялауға бейім файлдық жүйе API-ін айналып өте алады. Олардың орнына, олар тікелей файлдық жүйенің құрылымдарына кіріп, жүйе API-інен алынған нәтижелерді тексеру үшін осы ақпаратты пайдаланады, соның арқасында руткиттердің тудырған кез келген айырмашылықтарды анықтауға болады. Кейбір сарапшылар оларды жоюдың жалғыз сенімді жолы – сенімді медиадан операциялық жүйені қайта орнату екенін санайды. Өйткені, сенімсіз жүйеде жұмыс істейтін антивирустық және зиянды бағдарламаларды жою құралдары жақсы жазылған ядролық режимдегі руткиттерге қарсы тиімсіз болуы мүмкін. Сенімді медиадан басқа операциялық жүйені жүктеу арқылы жұқтырылған жүйелік томды орнатып, оны қауіпсіз тазалауға және маңызды деректерді көшіруге немесе сот-медициналық сараптама жүргізуге болады. Бұл мақсатта Windows PE, Windows Recovery Console, Windows Recovery Environment, BartPE немесе Live Distros сияқты жеңіл операциялық жүйелерді пайдалануға болады, бұл жүйені "тазалауға" мүмкіндік береді. Тіпті руткиттің түрі мен сипаты белгілі болса да, қолмен жөндеу тиімсіз болуы мүмкін, ал операциялық жүйе мен қосымшаларды қайта орнату қауіпсіз, қарапайым және жылдам. Қауіпсіздік жаңартуларын орнату, ең аз құқықтар принципін сақтау, шабуыл көзінің аумағын азайту және антивирустық бағдарламаны орнату – барлық зиянды бағдарламаларға қарсы тиімді стандартты қауіпсіздік шаралары. UEFI сияқты жаңа қауіпсіз жүктеу спецификациялары жүктеу жиынтықтарының қаупін азайту үшін жасалған, бірақ олар ұсынатын қауіпсіздік мүмкіндіктері пайдаланылмаса, олар да осал болып қалады.