نام دامنه
آدرس قابل خواندن برای انسان مانند example.com که به یک آدرس IP نگاشت میشود و به خاطر سپردن مکان وبسایتها را آسانتر میکند.
تعریف کوتاه
دامنه نام قابل خواندن یک وبسایت است، مثل google.com یا github.com. به جای تایپ 172.217.164.78، شما google.com را تایپ میکنید. DNS نام دامنه را به آدرسهای IP که کامپیوترها واقعاً استفاده میکنند ترجمه میکند.
تعریف کامل
نام دامنه یک شناسه قابل خواندن برای انسان برای یک مکان در اینترنت است. بخشی از یک سیستم سلسلهمراتبی است که وب را قابل استفاده میکند.
ساختار:
1subdomain.example.com2│ │ │3│ │ └─ TLD (دامنه سطح بالا)4│ └─ دامنه سطح دوم5└─ زیردامنه (اختیاری)67مثالهای کامل:8www.example.com9api.example.com10blog.subdomain.example.com
سطوح:
- TLD: .com، .org، .io، .gov
- سطح دوم: example (در example.com)
- زیردامنه: www، api، mail
چگونه کار میکند: ۱. کاربر دامنه را در مرورگر تایپ میکند ۲. جستجوی DNS به IP ترجمه میکند ۳. مرورگر به آن IP متصل میشود ۴. سرور پاسخ میدهد
چرا مهم است
- دامنهها نحوه پیدا کردن وبسایتها توسط کاربران است
- اعتماد مرتبط با نام دامنه
- گواهیها به دامنهها متصل هستند (HTTPS)
- دامنهها در سیاستهای امنیتی استفاده میشوند (CORS، CSP)
- مالکیت دامنه = کنترل
چگونه مهاجمان از آن استفاده میکنند
تکنیکهای حمله:
۱. تایپاسکواتینگ (typosquatting):
1google.com ← قانونی2gooogle.com ← جعلی (o اضافی)3g00gle.com ← جعلی (صفر به جای 'o')
۲. تصاحب زیردامنه:
1# شرکت زیردامنه ایجاد میکند2old-app.company.com → به AWS S3 اشاره میکند34# شرکت باکت S3 را حذف میکند اما DNS را فراموش میکند5# مهاجم باکتی با همان نام ایجاد میکند6old-app.company.com → اکنون تحت کنترل مهاجم است
۳. DNS Rebinding (SSRF):
1۱. attacker.com → 1.2.3.4 (سرور مهاجم)2۲. اعتبارسنج میبیند: 1.2.3.4 ✓3۳. attacker.com → 169.254.169.254 (DNS تغییر کرد)4۴. درخواست واقعی به: 169.254.169.254 میرود
۴. حملات هموگراف:
1аpple.com ← از 'а' سیریلیک استفاده میکند، نه 'a' لاتین2apple.com ← دامنه واقعی
یکسان به نظر میرسند اما دامنههای متفاوت هستند.
۵. سرقت کوکی از طریق زیردامنه:
1# کوکی روی .example.com تنظیم شده2# مهاجم به خطر میاندازد: evil.example.com3# میتواند کوکیهای همه زیردامنهها را بدزدد
چگونه تشخیص یا پیشگیری کنیم
پیشگیری:
برای سازمانها:
- ثبت تایپهای رایج
- نظارت بر دامنههای مشابه
- استفاده از HTTPS با HSTS
- پیادهسازی رکوردهای CAA DNS
- نظارت بر گزارشهای شفافیت گواهی
- حذف رکوردهای DNS آویزان
- استفاده از سرویسهای نظارت دامنه
برای برنامهها:
- اعتبارسنجی دامنه در برابر لیست سفید
- بررسی آدرس IP حل شده
- استفاده از دامنههای پین شده برای درخواستهای حیاتی
- پیادهسازی صحیح CORS
- تنظیم دامنههای خاص کوکی
نمونه اعتبارسنجی:
1from urllib.parse import urlparse23ALLOWED_DOMAINS = ['example.com', 'api.example.com']45def is_safe_domain(url):6 parsed = urlparse(url)7 domain = parsed.hostname89 # تطابق دقیق10 if domain in ALLOWED_DOMAINS:11 return True1213 # بررسی اینکه زیردامنه دامنه مجاز است14 for allowed in ALLOWED_DOMAINS:15 if domain.endswith('.' + allowed):16 return True1718 return False
تشخیص:
- نظارت بر درخواستهای DNS برای دامنههای غیرعادی
- بررسی گزارشهای شفافیت گواهی
- استفاده از سرویسهای اعتبار دامنه
- هشدار در مورد دامنههای مشابه تازه ثبت شده
- ردیابی تلاشهای شمارش زیردامنه
باورهای غلط رایج
- "زیردامنه = مالکیت جداگانه" - مالک یکسان همه را کنترل میکند
- "HTTPS = دامنه قانونی" - مهاجمان نیز گواهی میگیرند
- ".com امنتر از .io است" - TLD امنیت را تعیین نمیکند
- "دامنه در URL واضح است" - حملات هموگراف وجود دارد
- "نمیتوان دامنه را جعل کرد" - تایپاسکواتینگ و هموگراف کار میکنند
مثال واقعی
تایپاسکواتینگ ورود Steam
دامنههای جعلی:
1steamcommunity.com ← واقعی2steamcommunitу.com ← جعلی (у سیریلیک)3steamcommunity.co ← جعلی (.co به جای .com)4steam-community.com ← جعلی (خط تیره)
نتیجه: هزاران اعتبارنامه دزدیده شده
تصاحب زیردامنه GitHub (چندین مورد)
۱. شرکت ایجاد میکند: docs.company.com → GitHub Pages
۲. شرکت مخزن GitHub را حذف میکند
۳. رکورد DNS باقی میماند: docs.company.com → URL قدیمی GitHub
۴. مهاجم مخزنی با همان نام ایجاد میکند
۵. مهاجم اکنون docs.company.com را کنترل میکند
موارد واقعی: Uber، Shopify، Tesla و دیگران
حمله هموگراف PayPal
1paypal.com ← واقعی (حروف لاتین)2pаypаl.com ← جعلی ('а' سیریلیک)
مرورگر ممکن است جعلی را در نوار آدرس واقعی نشان دهد.
اصطلاحات مرتبط
DNS, URL, Subdomain, IP Address, Certificate
================================================================================ [ادامه اصطلاحات باقیمانده با همین قالب...]
آیا میخواهید با اصطلاحات باقیمانده (۱۳-۲۰) ادامه دهم؟