KavLabs
خانهبلاگ
KavLabs

یادداشت‌هایی از ذهن‌های کاوشگر، برای ذهن‌های کنجکاو

پرهام·پرهام·زال·زال·
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
نوشته‌هادسته‌بندی‌هاجستجوی پیشرفتهلاگ تغییرات

©۲٬۰۲۶ KavLabs — تمام حقوق محفوظ است

ساخته‌شده با عشق توسط پرهام و زال

واژه‌نامه
۰۷ اسفند ۱۴۰۴مبانی وبمبتدیزبان: فارسی

نام دامنه

مبتدینسخه انگلیسی

آدرس قابل خواندن برای انسان مانند example.com که به یک آدرس IP نگاشت می‌شود و به خاطر سپردن مکان وب‌سایت‌ها را آسان‌تر می‌کند.

دامنهdnsوبنام-میزباناینترنت

تعریف کوتاه

دامنه نام قابل خواندن یک وب‌سایت است، مثل google.com یا github.com. به جای تایپ 172.217.164.78، شما google.com را تایپ می‌کنید. DNS نام دامنه را به آدرس‌های IP که کامپیوترها واقعاً استفاده می‌کنند ترجمه می‌کند.

تعریف کامل

نام دامنه یک شناسه قابل خواندن برای انسان برای یک مکان در اینترنت است. بخشی از یک سیستم سلسله‌مراتبی است که وب را قابل استفاده می‌کند.

ساختار:

bash
1subdomain.example.com
2│ │ │
3│ │ └─ TLD (دامنه سطح بالا)
4│ └─ دامنه سطح دوم
5└─ زیردامنه (اختیاری)
6
7مثال‌های کامل:
8www.example.com
9api.example.com
10blog.subdomain.example.com

سطوح:

  • TLD: .com، .org، .io، .gov
  • سطح دوم: example (در example.com)
  • زیردامنه: www، api، mail

چگونه کار می‌کند: ۱. کاربر دامنه را در مرورگر تایپ می‌کند ۲. جستجوی DNS به IP ترجمه می‌کند ۳. مرورگر به آن IP متصل می‌شود ۴. سرور پاسخ می‌دهد

چرا مهم است

  • دامنه‌ها نحوه پیدا کردن وب‌سایت‌ها توسط کاربران است
  • اعتماد مرتبط با نام دامنه
  • گواهی‌ها به دامنه‌ها متصل هستند (HTTPS)
  • دامنه‌ها در سیاست‌های امنیتی استفاده می‌شوند (CORS، CSP)
  • مالکیت دامنه = کنترل

چگونه مهاجمان از آن استفاده می‌کنند

تکنیک‌های حمله:

۱. تایپ‌اسکواتینگ (typosquatting):

bash
1google.com ← قانونی
2gooogle.com ← جعلی (o اضافی)
3g00gle.com ← جعلی (صفر به جای 'o')

۲. تصاحب زیردامنه:

bash
1# شرکت زیردامنه ایجاد می‌کند
2old-app.company.com → به AWS S3 اشاره می‌کند
3
4# شرکت باکت S3 را حذف می‌کند اما DNS را فراموش می‌کند
5# مهاجم باکتی با همان نام ایجاد می‌کند
6old-app.company.com → اکنون تحت کنترل مهاجم است

۳. DNS Rebinding (SSRF):

bash
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 می‌رود

۴. حملات هموگراف:

bash
1аpple.com ← از 'а' سیریلیک استفاده می‌کند، نه 'a' لاتین
2apple.com ← دامنه واقعی

یکسان به نظر می‌رسند اما دامنه‌های متفاوت هستند.

۵. سرقت کوکی از طریق زیردامنه:

bash
1# کوکی روی .example.com تنظیم شده
2# مهاجم به خطر می‌اندازد: evil.example.com
3# می‌تواند کوکی‌های همه زیردامنه‌ها را بدزدد

چگونه تشخیص یا پیشگیری کنیم

پیشگیری:

برای سازمان‌ها:

  • ثبت تایپ‌های رایج
  • نظارت بر دامنه‌های مشابه
  • استفاده از HTTPS با HSTS
  • پیاده‌سازی رکوردهای CAA DNS
  • نظارت بر گزارش‌های شفافیت گواهی
  • حذف رکوردهای DNS آویزان
  • استفاده از سرویس‌های نظارت دامنه

برای برنامه‌ها:

  • اعتبارسنجی دامنه در برابر لیست سفید
  • بررسی آدرس IP حل شده
  • استفاده از دامنه‌های پین شده برای درخواست‌های حیاتی
  • پیاده‌سازی صحیح CORS
  • تنظیم دامنه‌های خاص کوکی

نمونه اعتبارسنجی:

python
1from urllib.parse import urlparse
2
3ALLOWED_DOMAINS = ['example.com', 'api.example.com']
4
5def is_safe_domain(url):
6 parsed = urlparse(url)
7 domain = parsed.hostname
8
9 # تطابق دقیق
10 if domain in ALLOWED_DOMAINS:
11 return True
12
13 # بررسی اینکه زیردامنه دامنه مجاز است
14 for allowed in ALLOWED_DOMAINS:
15 if domain.endswith('.' + allowed):
16 return True
17
18 return False

تشخیص:

  • نظارت بر درخواست‌های DNS برای دامنه‌های غیرعادی
  • بررسی گزارش‌های شفافیت گواهی
  • استفاده از سرویس‌های اعتبار دامنه
  • هشدار در مورد دامنه‌های مشابه تازه ثبت شده
  • ردیابی تلاش‌های شمارش زیردامنه

باورهای غلط رایج

  • "زیردامنه = مالکیت جداگانه" - مالک یکسان همه را کنترل می‌کند
  • "HTTPS = دامنه قانونی" - مهاجمان نیز گواهی می‌گیرند
  • ".com امن‌تر از .io است" - TLD امنیت را تعیین نمی‌کند
  • "دامنه در URL واضح است" - حملات هموگراف وجود دارد
  • "نمی‌توان دامنه را جعل کرد" - تایپ‌اسکواتینگ و هموگراف کار می‌کنند

مثال واقعی

تایپ‌اسکواتینگ ورود Steam

دامنه‌های جعلی:

bash
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

bash
1paypal.com ← واقعی (حروف لاتین)
2pаypаl.com ← جعلی ('а' سیریلیک)

مرورگر ممکن است جعلی را در نوار آدرس واقعی نشان دهد.

اصطلاحات مرتبط

DNS, URL, Subdomain, IP Address, Certificate

================================================================================ [ادامه اصطلاحات باقی‌مانده با همین قالب...]

آیا می‌خواهید با اصطلاحات باقی‌مانده (۱۳-۲۰) ادامه دهم؟

منابع و مراجع

  • www.cloudflare.com/learning/dns/glossary/what-is-a-domain-name

مفاهیم مرتبط

سیستم نام دامنه(DNS)

سیستمی که نام‌های دامنه (مثل google.com) رو به آدرس‌های IP تبدیل می‌کنه تا مرورگرها بتونن وب‌سایت‌ها رو پیدا کنن.

نشانی وب(URL)

آدرس وب که مکان یک منبع را در اینترنت مشخص می‌کند، مانند https://example.com/page.

آدرس آی‌پی(IP)

شناسه عددی منحصر به فردی که به هر دستگاه متصل به شبکه داده می‌شه تا بتونه با دستگاه‌های دیگه ارتباط برقرار کنه.