Кіріспе

2003 жылғы компьютерлік құрт SQL Slammer – 2003 жылғы компьютерлік құрт, ол кейбір Интернет-хосттарда қызмет көрсетуден бас тартуға және жалпы Интернет трафигін күрт баяулатты. Ол сонымен қатар әлемдік маршрутизаторларды құлатып, одан да көп тоқтауларға себеп болды. Құрт өте жылдам таралып, 10 минут ішінде 75 000 құрбанының көп бөлігіне жұқты. Бағдарлама Microsoft SQL Server және Desktop Engine деректер базасы өнімдеріндегі буферлік ағып кету қатесін пайдаланды. MS02 039 (CVE 2002 0649) түзетуі алты ай бұрын шығарылғанмен, көптеген ұйымдар оны әлі орнатқан жоқ. Ең көп зардап шеккен аймақтар – Еуропа, Солтүстік Америка және Азия (Шығыс Азия және Оңтүстік Азияны (Үндістанды) қоса алғанда).

Техникалық мәліметтер

Бұл құрт Black Hat брифингінде Дэвид Литчфилд көрсеткен концепциялық кодқа негізделген, ол бастапқыда құрт пайдаланған буфер асығу осалдығын анықтаған еді. Бұл кодтың шағын бөлігі, ол кездейсоқ IP-адрестерді жасайды және оларды сол адрестерге жібереді. Егер таңдалған адрес UDP 1434 портында тыңдап тұрған, жаңартылмаған Microsoft SQL Server Resolution Service-тің жұмыс істеп тұрған хостына тиесілі болса, хост дереу зарар көреді және құрт бағдарламасының көшірмелерін интернетке таратуды бастайды. Үй компьютерлері әдетте MSDE орнатылмаған болса, бұл құрттан зардап көрмейді. Құрт өте кішкентай болғандықтан, дискіге жазу кодын қамтымайды, сондықтан ол тек жадта қалады және оны жою оңай. Мысалы, Symantec тегін жою құралын ұсынады немесе оны SQL Server-ді қайта іске қосу арқылы жоюға болады (бірақ машина дереу қайтадан зарар көруі мүмкін). Бұл құрт SQL Server-дегі бағдарламалық қауіпсіздік осалдығының нәтижесінде пайда болды, алғаш рет Microsoft 2002 жылдың 24 шілдесінде хабарлаған. Құрт іске қосылғанға дейін алты ай бұрын Microsoft-тан түзету қолжетімді болды, бірақ көптеген орнатулар жаңартылмады – тіпті Microsoft-та да. Құрт 2003 жылдың 25 қаңтарында әлемдегі жүйелерді баяулату арқылы байқала бастады. Бұл баяулау көптеген маршрутизаторлардың құлауына байланысты болды, себебі зарар көрген серверлерден келетін өте жоғары трафик оларға үлкен жүктеме салды. Әдетте, маршрутизаторлар трафик көлемі артық болғанда, желі трафигін кешіктіруге немесе уақытша тоқтатуға тиіс. Оның орнына, кейбір маршрутизаторлар құлады (пайдалануға жарамсыз болды), ал "құрбы" маршрутизаторлар олардың тоқтағанын және олармен байланыс жасау қажет емес екенін байқады (яғни "маршрутизациялық кестеден алынып тасталды"). Маршрутизаторлар басқа маршрутизаторларға осы туралы хабарламалар жіберуді бастады. Маршрутизациялық кестені жаңарту туралы хабарламалардың көптігі кейбір қосымша маршрутизаторлардың істен шығуына себеп болды, бұл мәселені одан әрі ушықтырды. Ақырында, құлаған маршрутизаторлардың операторлары оларды қайта іске қосты, олардың мәртебесін жариялауға себеп болды, бұл маршрутизациялық кесте жаңартуларының тағы бір толқынына әкелді. Көп ұзамай интернет өткізу қабілетінің маңызды бөлігі маршрутизаторлардың бір-бірімен байланыс орнатып, маршрутизациялық кестелерін жаңартуға жұмсалды, ал қалыпты деректер трафигі баяулады немесе кейбір жағдайларда толығымен тоқтады. SQL Slammer құртының мөлшері өте кішкентай болғандықтан, кейде ол заңды трафик болмаған кезде өте алатын. SQL Slammer-дің жылдам таралуына екі маңызды фактор ықпал етті. Құрт сеанссыз UDP протоколы арқылы жаңа хосттарды зарардырады, ал құрттың барлығы (тек 376 байт) бір пакетке сыяды. Нәтижесінде, әрбір зарар көрген хост мүмкіндігінше жылдам пакеттерді жіберіп, ұмыта алатын.