گزارش هفتگی فایروال دفتر کار دویست سطر دارد که همه یک چیز میگویند: IP spoof dropped. در همان هفته، خبری از وبسایتی میگوید که زیر ترافیکی از کار افتاده است که به نظر میرسید از هزاران سرور معمولی میآید، در حالی که هیچکدام از آن سرورها هک نشده بودند. پشت هر دو ماجرا یک ترفند است: بستهای که درباره جای آمدنش دروغ میگوید.
این نوشته توضیح میدهد IP spoofing (جعل آدرس IP) چیست، چرا یک آدرس جعلی میتواند سروری را زیر سیل ترافیک ببرد اما نمیتواند یک صفحه وب را باز کند، حملههای اصلی کداماند، آن سطر لاگ چه معنایی دارد و شبکهها چگونه بستههای جعلی را مسدود میکنند. همچنین توضیح میدهد چرا استفاده از پروکسی یا VPN جعل IP به شمار نمیآید. این نوشته راهنمای انجام آن نیست و فقط به شناختن و جلوگیری از آن میپردازد.
IP spoofing چیست؟
هر چیزی که در اینترنت فرستاده میشود در قالب بسته (packet) جابهجا میشود و هر بسته با یک هدر (header) آغاز میشود که دو آدرس دارد: آدرس مقصد و آدرس مبدأ. نوشته آدرس آیپی چیست؟ توضیح میدهد این آدرسها را چه کسی واگذار میکند. رایانهای که بسته را میسازد هر دو آدرس را خودش مینویسد.
IP spoofing یعنی نوشتن آدرسی در فیلد مبدأ که به فرستنده تعلق ندارد. پروتکل اینترنت هیچ سازوکار داخلی برای بررسی این موضوع ندارد. روترها بسته را با خواندن مقصد آن جلو میفرستند؛ آدرس مبدأ بدون بررسی پذیرفته میشود، مگر اینکه شبکهای در طول مسیر آن را بررسی کند. واژه انگلیسی spoof یعنی جعل یا فریب، همانطور که در ایمیل جعلی (spoofed email) به کار میرود، اما اینجا آنچه جعل میشود آدرس خود دستگاه است.
IP spoofing چگونه کار میکند؟
یک بسته جعلی در پنج مرحله از اینترنت عبور میکند:
- فرستنده هدر را دستی مینویسد. برنامههای معمولی پر کردن آدرس مبدأ را به سیستمعامل میسپارند؛ جعل آن به کنترل کامل دستگاه نیاز دارد، پس ترافیک جعلی بیشتر از سرورها یا دستگاههای آلوده میآید.
- نخستین شبکه تصمیم میگیرد. فقط ارائهدهنده اینترنت خود فرستنده میداند کدام آدرسها به آن مشتری تعلق دارند. اگر این ارائهدهنده آدرس مبدأ را بررسی کند، بسته همینجا از بین میرود.
- روترها آن را جلو میفرستند و فقط مقصد را میخوانند.
- هدف آن را میپذیرد، آن هم بهعنوان بستهای معمولی از آدرس جعلی.
- پاسخ به صاحب واقعی آدرس جعلی میرود، نه به فرستنده.
مرحله 5 همهچیز دیگر را شکل میدهد: جاعل میتواند بفرستد، اما نمیتواند دریافت کند.
چرا با آدرس IP جعلی نمیتوان وبسایتی را باز کرد؟
صفحههای وب، ورود به حسابها و دانلودها روی TCP کار میکنند و TCP هر اتصال را با یک دستدادن سهمرحلهای آغاز میکند که در نوشته تفاوت TCP و UDP شرح داده شده است:
- کلاینت یک SYN («میخواهم وصل شوم») همراه با یک شماره توالی (sequence number) آغازین میفرستد.
- سرور با یک SYN-ACK پاسخ میدهد که شماره آغازین خود سرور را دارد؛ این شماره تصادفی انتخاب میشود.
- کلاینت یک ACK میفرستد که شماره سرور بهعلاوه یک را تکرار میکند. فقط پس از آن داده میتواند جابهجا شود.
وقتی آدرس مبدأ جعلی است، SYN-ACK به صاحب واقعی آن آدرس میرود. جاعل هرگز شماره سرور را نمیبیند، نمیتواند مرحله 3 معتبری بنویسد و اتصال هرگز باز نمیشود. هیچ درخواستی فرستاده نمیشود و هیچ صفحهای برنمیگردد.
برخی سیستمهای قدیمیتر گاهی شمارههای توالی قابلپیشبینی به کار میبردند. این کار به مهاجم اجازه میداد پاسخ را کورکورانه حدس بزند و اتصالی را از یک آدرس مورد اعتماد جعل کند. RFC 6528 ریشه این حمله را به مقالهای از رابرت موریس در سال 1985 برمیگرداند و شمارههایی را الزامی میکند که فردی بیرونی نتواند پیشبینی کند.
UDP دستدادن ندارد: یک درخواست یک پاسخ میگیرد. همین ویژگی آن را به حامل طبیعی ترافیک جعلی تبدیل میکند.
انواع حملههای IP spoofing
مهمترین ستون جدول این است که آیا حمله باید پاسخها را ببیند یا نه.
| حمله | چه چیزی جعل میشود | چه کسی آسیب میبیند | به پاسخ نیاز دارد؟ | دفاع اصلی |
|---|---|---|---|---|
| SYN flood | آدرسهای مبدأ تصادفی روی درخواستهای اتصال | جدول اتصال سرور | خیر | SYN cookies، فیلتر کردن ترافیک (RFC 4987) |
| بازتاب و تقویت (reflection and amplification) | آدرس قربانی، روی درخواستهای UDP به سرورهای عمومی | قربانی | خیر | فیلتر کردن در ارائهدهنده اینترنت، نبود سرویس UDP باز |
| تزریق کور یا قطع اتصال (reset) | هر دو سر یک اتصال TCP | دو طرف اتصال | خیر، حدس میزند | شمارههای توالی تصادفی، رمزگذاری |
| سوءاستفاده از اعتماد | آدرسی که یک سیستم به آن اعتماد دارد | سرویسهایی که فقط به IP اعتماد میکنند | بله، پس معمولاً شکست میخورد | احراز هویت واقعی |
| ARP spoofing | پیوند IP به MAC در شبکه محلی | افرادی که روی همان وایفای هستند | بله، خودش روی مسیر قرار میگیرد | محافظت سوئیچ، HTTPS، VPN |
ARP spoofing، که مسمومسازی ARP هم نامیده میشود، خویشاوند IP spoofing است. در شبکه محلی، ARP آدرسهای IP را با آدرسهای سختافزاری تطبیق میدهد (نوشته مک آدرس (MAC) چیست؟ را ببینید). دستگاهی که روی همان وایفای است میتواند ادعا کند آدرس روتر متعلق به اوست و ترافیک دیگران را از خودش عبور دهد؛ به همین دلیل برای شنود به کار میرود. سوئیچهای تجاری با قابلیتهایی مانند Dynamic ARP Inspection جلوی آن را میگیرند. در وایفای مشترک، HTTPS و VPN از ترافیک شما محافظت میکنند، همانطور که نوشته آیا وایفای عمومی امن است؟ توضیح میدهد.
IP spoofing چگونه به حملههای DDoS قدرت میدهد؟
حمله منع سرویس توزیعشده (DDoS) میکوشد با فرستادن ترافیکی بیش از توان یک سرویس، آن را از دسترس خارج کند. جعل آدرس از دو راه به این حمله کمک میکند.
SYN flood حافظه را هدف میگیرد. هر SYN سرور را وادار میکند جایی رزرو کند و منتظر مرحله 3 بماند که هرگز نمیرسد. این جاها پر میشوند و بازدیدکنندگان واقعی پس زده میشوند. چون آدرس مبدأ با هر بسته عوض میشود، مسدود کردن آدرسها هیچ نتیجهای ندارد.
بازتاب و تقویت پهنای باند را هدف میگیرد. مهاجم درخواستهای کوچک UDP را با آدرس قربانی بهعنوان مبدأ به هزاران سرور عمومی، مانند سرورهای پاسخدهنده DNS (resolver)، میفرستد. هر سرور به قربانی پاسخ میدهد، اغلب با پاسخی بسیار بزرگتر. هشدار CISA درباره حملههای تقویتی مبتنی بر UDP ضریبهای تقویت را فهرست میکند: 28 تا 54 برای DNS، 556.9 برای NTP و 10,000 تا 51,000 برای سرور memcached که در معرض اینترنت قرار دارد. قربانی فقط آدرس سرورهای بیگناه را میبیند؛ آدرس خود مهاجم هیچجا دیده نمیشود.
همه حملههای DDoS از جعل آدرس استفاده نمیکنند. یک باتنت، یعنی شبکهای از دستگاههای آلوده، میتواند از آدرسهای واقعی اتصالهای واقعی باز کند. با چنین سیلهایی بهجای آن از راه محدودیت نرخ و سرویسهای محافظت در برابر DDoS مقابله میشود.
پیام «IP spoof dropped» در لاگ فایروال چه معنایی دارد؟
فایروالی که این سطر را ثبت میکند کارش را درست انجام داده است: بستهای دیده که آدرس مبدأ آن با پورت شبکهای که از آن رسیده جور درنمیآید، و آن را دور انداخته است.
مقاله پایگاه دانش SonicWall درباره پیامهای IP spoof توضیح میدهد که این پیام زمانی ثبت میشود که فایروال در یک بخش از شبکه (segment) آدرس IP ببیند که به باور خودش به بخش دیگری تعلق دارد. SonicWall این را نشانه احتمالی تلاش برای حمله میداند، اما دلایل بیخطری هم فهرست میکند: یک مسیر (route) نادرست، رایانهای با آدرسی بیرون از محدوده آدرسهای دفتر، یک زیرشبکه (subnet) اضافه، حلقه در کابلکشی، کارت شبکه دوم یا رایانه ویندوزی که به خودش یک آدرس موقت 169.254.x.x داده است.
WatchGuard همین بررسی را Drop Spoofing Attacks (رها کردن حملههای جعل) مینامد که زیر Firewall > Default Packet Handling قرار دارد و بهطور پیشفرض روشن است. FortiGate آن را reverse path forwarding (ارسال بر پایه مسیر معکوس) یا anti-spoofing (ضدجعل) مینامد؛ یادداشت فنی Fortinet این دور انداختن بسته را به شکل reverse path check fail, drop نشان میدهد.
بستههایی از اینترنت که ادعا میکنند از آدرسهای داخلی شما آمدهاند جعلیاند و دور انداختنشان درست است. دور انداختن بستههایی که از درون شبکه خودتان میآیند معمولاً نشانه یک مشکل در پیکربندی است. در هر دو حالت، این محافظت را روشن نگه دارید.
چگونه جلوی IP spoofing گرفته میشود؟
سادهترین جا برای متوقف کردن بسته جعلی نخستین گام مسیر است، چون فقط شبکه خود فرستنده میداند کدام آدرسها واقعاً به فرستنده تعلق دارند.
- فیلتر ورودی (BCP 38). RFC 2827 که از سال 2000 با عنوان Best Current Practice 38 (رویه جاری توصیهشده IETF) شناخته میشود، از هر ارائهدهنده اینترنت میخواهد ترافیک یک مشتری را فقط وقتی بپذیرد که آدرس مبدأ در محدوده آدرسهای همان مشتری باشد. جعل آدرس درون این محدوده همچنان ممکن است، اما به یک شبکه مشخص محدود میماند.
- بررسی مسیر معکوس (BCP 84). RFC 3704 مشتریانی را پوشش میدهد که چند ارائهدهنده اینترنت دارند. حالت سختگیرانه (strict) بسته را فقط وقتی میپذیرد که از همان رابطی (interface) رسیده باشد که روتر برای رسیدن به آن آدرس مبدأ به کار میبرد؛ حالت آزاد (loose) فقط بررسی میکند که مسیری به آن آدرس وجود داشته باشد. روترها این بررسی را uRPF مینامند.
- فیلتر خروجی (egress filtering). فایروال خودتان نباید بستههایی را بیرون بفرستد که آدرس مبدأ آنها جزو آدرسهای شما نیست.
- تعهد عمومی. ابتکار MANRS جلوگیری از جعل آدرس (anti-spoofing) را در میان اقدامهایش برای اپراتورهای شبکه آورده است و به ابزار Spoofer از CAIDA اشاره میکند که میآزماید آیا یک شبکه اجازه خروج بستههای جعلی را میدهد یا نه.
- مقاومسازی سرورها. سازوکار SYN cookies به سرور اجازه میدهد بدون رزرو کردن جا به یک SYN پاسخ دهد. DNS، NTP و memcached نباید به کل اینترنت پاسخ دهند.
- احراز هویت واقعی. TLS و SSH با کلیدها ثابت میکنند چه کسی آن سوی اتصال است، کاری که از بسته جعلی برنمیآید؛ یک آدرس بهتنهایی هیچ چیزی را ثابت نمیکند.
هشدار CISA BCP 38 و BCP 84 را دفاع اصلی در برابر حملههای بازتابی میداند.
آیا استفاده از پروکسی یا VPN همان IP spoofing است؟
خیر، و دلیلش همان دستدادن است. دستگاه شما به پروکسی وصل میشود و از آن میخواهد صفحهای را بیاورد. پروکسی از آدرس IP خودش اتصال تازهای به وبسایت باز میکند، دستدادن را کامل میکند، پاسخ را دریافت میکند و آن را برای شما میفرستد. هر بسته آدرس مبدأ واقعی دارد. VPN همین کار را برای کل دستگاه انجام میدهد؛ نوشته فرق پروکسی و VPN چیست؟ این دو را مقایسه میکند.
| بسته جعلی | اتصال از راه پروکسی یا VPN | |
|---|---|---|
| آدرس مبدأ | جعلی | واقعی، آدرس پروکسی یا سرور VPN |
| مقصد پاسخها | صاحب آن آدرس | به پروکسی برمیگردد و سپس به شما |
| دستدادن TCP | کامل نمیشود | بهطور عادی کامل میشود |
| میتواند صفحه وب را باز کند | خیر | بله |
وقتی کسی از «جعل IP» برای اینکه از کشور دیگری دیده شود حرف میزند، منظورش استفاده از یک آدرس واقعی دیگر از راه پروکسی یا VPN است. برخی پروکسیها حتی آدرس اصلی شما را در یک هدر به سایت میدهند؛ نوشته تفاوت پروکسی شفاف، ناشناس و elite چیست؟ نشان میدهد کدامها. سرویسهای پروکسی مسکونی و پروکسی دیتاسنتر ما هم همینگونه کار میکنند: هر درخواست از راه اتصالی به سایت میرسد که پروکسی از آدرس خودش باز میکند، و کلاینت هرگز آدرس مبدأ آن بستهها را تعیین نمیکند.
آیا جعل X-Forwarded-For همان IP spoofing است؟
خیر، اما صاحبان سایت خیلی بیشتر با آن روبهرو میشوند. بسیاری از برنامهها آدرس بازدیدکننده را از هدر X-Forwarded-For میخوانند که ریورس پروکسیها اضافه میکنند، و هر کلاینتی میتواند این هدر را با هر مقداری بفرستد. اتصال TCP همچنان از آدرس واقعی کلاینت میآید، پس این جعل هدر است و در خود برنامه رفع میشود. مرجع MDN درباره X-Forwarded-For تصریح میکند که محدودیت نرخ یا کنترل دسترسی مبتنی بر IP فقط باید از آدرسهایی استفاده کند که پروکسی مورد اعتماد شما اضافه کرده است. نوشته فوروارد پروکسی و ریورس پروکسی: تفاوت در چیست؟ تنظیم مربوط به آن را در Nginx نشان میدهد.
چه کسانی باید به IP spoofing اهمیت بدهند؟
- کاربران خانگی. هیچکس نمیتواند با جعل آدرس شما «بهجای شما» در وب بگردد. گرفتن آدرسی تازه برای خودتان موضوع دیگری است؛ نوشته آدرس IP را چطور تغییر دهیم؟ را ببینید.
- صاحبان سایت و برنامه. لیست سفید IP روی یک سرویس TCP یک اتصال کاملشده را بررسی میکند که جعل کور نمیتواند آن را بسازد؛ نقطههای ضعف واقعی آدرسهای مشترک و ورودیهای فراموششدهاند. نوشته احراز هویت پروکسی: نام کاربری و رمز یا لیست سفید IP این دو روش را با هم میسنجد.
- تیمهای شبکه و امنیت. قاعدههای ضدجعل و فیلتر خروجی باید در بازبینی فایروال بررسی شوند؛ نوشته پروکسی و فایروال: تفاوت در چیست؟ نشان میدهد هر دستگاه کجای شبکه قرار میگیرد.
- تیمهای تضمین کیفیت (QA). برای دیدن سایت همانطور که بازدیدکنندگان در کشورهای دیگر میبینند، درخواستهای واقعی را از آدرسهای واقعی در همان کشورها بفرستید، همانطور که صفحه تست اپلیکیشن ما توضیح میدهد.
اشتباههای رایج
- «کسی IP مرا جعل کرد و وارد حسابم شد.» با جعل آدرس نمیتوان به هیچجا وارد شد. به دنبال رمز عبور یا نشست دزدیدهشده بگردید؛ نوشته session hijacking چیست؟ دومی را بررسی میکند.
- حمله دانستن هر سطر لاگ جعل، یا خاموش کردن این بررسی برای ساکت کردن لاگ.
- نامیدن پروکسی یا VPN با عنوان «IP spoofing».
- اعتماد به
X-Forwarded-Forاز سوی هر کسی. - باز گذاشتن DNS، NTP یا memcached روی اینترنت.
- استفاده از لیست سفید IP بهعنوان تنها قفل.
راهنمای انتخاب
| وضعیت شما | چه باید کرد |
|---|---|
| دور انداختن بستهها به دلیل جعل، از آدرسهای درون شبکه خودتان | محدودههای آدرس، زیرشبکهها و مسیرهای VPN را بررسی کنید؛ محافظت را روشن نگه دارید |
| دور انداختن بستههایی از اینترنت که ادعا میکنند آدرس داخلی دارند | چیزی برای رفع کردن نیست؛ فیلتر درست کار میکند |
| سرور شما زیر حمله SYN flood است | SYN cookies را روشن کنید؛ از میزبان خود بخواهید ترافیک را پیش از رسیدن به شما فیلتر کند |
| سیل پاسخهای DNS یا NTP که هرگز درخواستشان نکردهاید | حمله بازتابی است: با ارائهدهنده اینترنت یا سرویس محافظت DDoS خود تماس بگیرید |
| شبکهای با مشتری اداره میکنید | فیلتر BCP 38/84 را پیاده کنید، با CAIDA Spoofer بیازمایید و پیوستن به MANRS را در نظر بگیرید |
برنامه شما X-Forwarded-For را میخواند | فقط به ورودیهایی اعتماد کنید که پروکسیهای خودتان اضافه کردهاند |
| برای تست به آدرسی در کشور دیگر نیاز دارید | از آدرس واقعی یک پروکسی یا VPN استفاده کنید |
پرسشهای متداول
آیا کسی میتواند آدرس IP مرا جعل کند؟
میتواند آدرس شما را در بستههایش بنویسد، اما هیچ پاسخی نمیگیرد، پس نمیتواند بهجای شما در وب بگردد، وارد حسابی شود یا چیزی دانلود کند. بیشترین اتفاقی که ممکن است بیفتد این است که آدرس شما در لاگهای کسی بهعنوان مبدأ ظاهری ترافیک بیارزش دیده شود.
آیا میتوان IP spoofing را ردیابی کرد؟
فقط با همکاری شبکهها. بسته هیچ مدرکی از مبدأ خود ندارد، پس بازرسان باید تا زمانی که ترافیک هنوز جریان دارد آن را شبکه به شبکه به عقب دنبال کنند. جایی که ارائهدهندگان اینترنت BCP 38 را اجرا میکنند، بسته جعلی فقط میتواند آدرسی از محدوده خود فرستنده داشته باشد و همین به شبکه درست اشاره میکند.
آیا IP spoofing غیرقانونی است؟
فرستادن بستههای جعلی برای از کار انداختن یک سرویس یا نفوذ به یک سیستم، در بیشتر کشورها طبق قوانین جرائم رایانهای جرم است. جعل آدرس در یک آزمایشگاه بسته و روی تجهیزات خودتان موضوع دیگری است. پروکسی و VPN جعل نیستند؛ وضعیت قانونی آنها در نوشته آیا استفاده از VPN یا پروکسی قانونی است؟ بررسی شده است.
آیا HTTPS یا VPN از من در برابر IP spoofing محافظت میکند؟
از داده شما محافظت میکنند، نه از شبکه. HTTPS به یک اتصال کاملشده نیاز دارد و گواهی سرور را بررسی میکند، پس جاعلی که پاسخها را نمیبیند نمیتواند صفحه را بخواند یا تغییر دهد؛ VPN در وایفای مشترک جلوی ARP spoofing را هم میگیرد. هیچکدام جلوی سیل بستههای جعلی را که به سوی یک سرور فرستاده میشوند نمیگیرد.
IP spoofing در LoadRunner و دیگر ابزارهای تست بار چه معنایی دارد؟
چیزی بیخطر: دادن چندین آدرس IP واقعی به دستگاه تست تا سرور کاربران مجازی را در حال آمدن از آدرسهای متفاوت ببیند. ابزار تست OpenText، که پیشتر LoadRunner نام داشت، قابلیت Multiple IP Address خود را دقیقاً همینطور مینامد. آدرسها روی خود دستگاه تنظیم شدهاند، پس هر اتصال واقعی است.
آیا IP spoofing همان session hijacking است؟
خیر. چند دهه پیش، مهاجمان جعل آدرس را با حدس زدن شماره توالی ترکیب میکردند تا نشستهای TCP را تصاحب کنند؛ شمارههای توالی غیرقابلپیشبینی این کار را عملاً ناممکن کرد. session hijacking (ربودن نشست) امروز یعنی دزدیدن کوکی یا توکن ورود، که به هیچ بسته جعلی نیاز ندارد.
خلاصه
IP spoofing آدرس مبدأ یک بسته را جعل میکند. این کار ممکن است چون IP فرستنده را تأیید نمیکند، و محدود است چون پاسخها به آدرس جعلی میروند؛ پس جاعل هرگز نمیتواند دستدادن TCP را کامل کند یا صفحهای را باز کند. همین ویژگی آن را به ابزاری برای حملههای یکطرفه مانند SYN flood و DDoS بازتابی تبدیل میکند. راهحلها بیشتر در بالادست شبکهاند: فیلتر BCP 38 و BCP 84، قاعدههای خروجی، SYN cookies، نبود تقویتکنندههای UDP باز و احراز هویتی که به یک آدرس تکیه نکند. پروکسی نقطه مقابل جعل است: نقطه پایانی واقعی با آدرس واقعی. اگر همین را لازم دارید، صفحه پروکسی ما را ببینید.




