Ҳар бир компаниянинг DNS зонасида вақт ўтиши билан кўплаб субдоменлар тўпланади. Бир йил олдин акция учун очилган саҳифа, синов сервери, вақтинча ишлатилган онлайн сўровнома ёки ташқи ёрдам маркази учун ёзувлар қўшилади. Хизматлар тўхтатилгач, улар одатда ўчирилади, лекин уларга ишора қилувчи DNS ёзувлари зонада қолиб кетади. Айнан шундай унутилган ёзувлар субдоменни эгаллаб олиш ҳужумига йўл очади.
Хавф қандай пайдо бўлади
Тасаввур қилинг, сиз promo.example.uz субдоменини ташқи ландинг саҳифа конструкторига улаш учун CNAME ёзуви яратгансиз ва у example-promo.builder.example.net номига қарайди. Акция тугагач, конструктордаги лойиҳа ўчирилди, лекин DNS ёзуви жойида қолди. Энди бу субдомен ҳеч кимга тегишли бўлмаган ресурсга ишора қилмоқда.
Кўплаб булутли хизматларда лойиҳа номи ёки уланган домен биринчи сўраган фойдаланувчига берилади ва эгалик қўшимча текширилмайди. Агар ҳужумчи ўша хизматда худди шу номли лойиҳа очса ёки promo.example.uz доменини ўз ҳисобига уласа, сизнинг субдоменингиз тўлиқ унинг бошқарувига ўтади. Ташриф буюрувчи браузерда сизнинг доменингизни кўради, лекин саҳифа мазмунини бегона одам белгилайди.
Худди шу муаммо A ёзувлари билан ҳам юз бериши мумкин. Булутли сервердан воз кечганингизда унинг IP манзили провайдерга қайтади ва кейинчалик бошқа мижозга берилиши мумкин. Агар test.example.uz ҳали ҳам ўша IP манзилга қараб турса, янги эгаси беихтиёр ёки атайлаб сизнинг субдоменингизда контент кўрсатади. Субдоменни бошқа DNS хизматига NS ёзуви орқали топшириб, кейин у ердаги зонани ўчириб юбориш ҳам худди шундай хавфли вазият яратади.
Нима учун бу жиддий муаммо
Биринчи қарашда унутилган акция саҳифаси унча муҳим эмасдек туюлади. Аммо ҳужумчи учун ишончли домен остидаги субдомен жуда қимматли. Унинг орқали фишинг саҳифаси очиш мумкин ва бундай саҳифа сизнинг расмий доменингиз остида бўлгани учун фойдаланувчиларда шубҳа уйғотмайди. Кўп ҳолларда ҳужумчи бу субдомен учун бемалол SSL сертификат ҳам олади, чунки сертификат маркази DNS орқали назоратни текширади ва назорат ҳақиқатан унинг қўлида бўлади.
Бундан ташқари, агар асосий сайтингиз cookie файлларини бутун домен учун, яъни .example.uz даражасида ўрнатса, эгаллаб олинган субдомен уларни ўқиши ёки ўзгартириши мумкин. Бу фойдаланувчи сессияларига хавф туғдиради. Шунингдек, эгалланган субдомендан спам ва зарарли файллар тарқатилса, бутун доменингизнинг обрўси қора рўйхатларда зарар кўради.
Мисол: университет қабул кампанияси
Бир хусусий университет ҳар йили қабул мавсумида qabul.example.uz манзилида алоҳида ландинг саҳифа очарди. Саҳифа ташқи конструктор хизматида яратилган ва субдомен CNAME орқали уланган эди. Мавсум тугагач, маркетинг бўлими конструктордаги обунани бекор қилди, чунки кейинги йил бошқа воситадан фойдаланишга қарор қилинган эди. DNS ёзувини ўчириш эса ҳеч кимнинг вазифалар рўйхатида йўқ эди.
Бир неча ойдан кейин абитуриентлардан бири қабул саҳифасида "ариза тўлови" учун карта маълумотларини сўраётган форма борлигини хабар қилди. Текширув шуни кўрсатдики, кимдир ўша конструкторда янги ҳисоб очиб, университет субдоменини ўз лойиҳасига улаб олган. Муаммо DNS ёзувини ўчириш билан бир неча дақиқада бартараф этилди, лекин университетга талабалар ва ота-оналарни огоҳлантириш учун анча вақт ва куч сарфлашга тўғри келди.
Заиф ёзувларни қандай топиш мумкин
Биринчи қадам зонангиздаги барча ёзувларнинг тўлиқ рўйхатини олиш. Буни DNS бошқарув панелидан экспорт қилиш орқали қилиш энг осон. Кейин ҳар бир CNAME ёзувининг мақсади ҳали ҳам мавжудлигини текшириш керак. Оддий shell скрипт бу ишни автоматлаштиради:
#!/bin/sh
# Tekshiriladigan subdomenlar ro'yxati
for sub in www shop qabul promo blog test help; do
host="$sub.example.uz"
target=$(dig +short CNAME "$host")
[ -z "$target" ] && continue
status=$(dig "$target" A | grep -o 'status: [A-Z]*')
echo "$host -> $target ($status)"
done
Агар бирор қаторда status: NXDOMAIN чиқса, бу ёзув мавжуд бўлмаган номга ишора қилмоқда ва уни дарҳол кўриб чиқиш керак. Мақсад номи мавжуд бўлса ҳам, саҳифани браузерда ёки curl орқали очиб кўриш фойдали. Хизматлар кўпинча "бундай лойиҳа топилмади" ёки "домен ҳеч қайси ҳисобга уланмаган" каби хабар қайтаради ва бу ҳам хавфли ҳолат белгисидир:
curl -sI https://promo.example.uz/ | head -n 5
curl -s https://promo.example.uz/ | grep -iE "not found|no such|not configured"
A ёзувлари учун эса ҳар бир IP манзил ҳали ҳам сизнинг ихтиёрингиздаги серверга тегишли эканини хостинг ёки булут бошқарув панелида текширинг. Бу ишни автоматлаштириш қийинроқ, шунинг учун қўлда текшириладиган рўйхат юритиш амалийроқ.
Олдини олиш қоидалари
Энг муҳим қоида хизматни ўчириш тартибини тўғри белгилашдир: аввал DNS ёзуви ўчирилади, кейин ташқи ресурс. Тескари тартибда ишлаганда ресурс ўчиб, ёзув қолиб кетадиган оралиқ пайдо бўлади ва айнан шу оралиқдан ҳужумчилар фойдаланади. Бу қоидани жамоадаги ҳар бир масъул ходим, жумладан маркетинг ва дизайн бўлимлари ҳам билиши керак, чунки ташқи хизматларни кўпинча айнан улар улайди.
- Ҳар бир субдомен учун ким масъуллиги ва у нима учун яратилганини қайд этинг.
- Ташқи хизматлардан фойдаланганда домен эгалигини TXT ёзуви орқали тасдиқлаш имконияти бўлса, уни албатта ишлатинг.
- Ҳар чоракда зонани кўриб чиқиб, ишлатилмаётган ёзувларни ўчиринг.
- Асосий сайт
cookieфайлларини имкон қадар аниқ хост номига боғланг, бутун домен даражасида эмас. - Булутли серверларни ўчиришдан олдин уларга ишора қилувчи барча
AваAAAAёзувларни топиб, олиб ташланг.
sayt.uz кабинетида доменингизнинг DNS ёзувлари бир саҳифада кўринади, шунинг учун чоракда бир марта уларни кўздан кечириш кўп вақт олмайди. Зонадаги ҳар бир ёзувнинг эгаси ва мақсади аниқ бўлса, субдоменни эгаллаб олиш хавфи деярли йўқолади.