به دنبال دردسر

در حقيقت، كامينسكي حمله جديدي را كشف نكرد. بلكه با شيوه‌اي هوشمندانه توانست راهكاري را براي زنده كردن يك حمله قديمي بيابد. البته بايد تصديق كرد كه در ابتدا رخنه امنيتي موردبحث امكان حمله به خود اينترنت را فراهم مي‌كرد.

پروتكل DNS در سال 1983 توسط پل ماكاپتريس بنيان‌گذاري شد، سپس در دانشگاه South California و در روزگار ARPAnet به‌منظور متصل كردن سيستم‌هاي كامپيوتري در چندين دانشگاه و مركز تحقيقاتي مورد استفاده قرار گرفت و در نهايت اينترنت پايه‌ريزي شد.

اين سيستم به‌گونه‌اي طراحي شده كه عملكردي همچون سرويس 411 شركت تلفن داشته باشد. اين سرويس با دريافت يك نام، به جست‌وجوي اعداد پرداخته و شماره مربوط به آن نام را مي‌يابد. با رشد آرپانت و عدم توانايي يك شخص در ردگيري آدرس‌هاي عددي، وجود سيستم DNS ضرورت يافت.

ماكاپتريس كه اكنون مدير و دانشمند ارشد مؤسسه Nominum (يكي از تأمين‌كنندگان نرم‌افزارهاي زيرساختي اينترنت واقع در منطقه Redwood ايالت كاليفرنيا) است، سيستم DNS را در قالب يك سلسله مراتب طراحي كرد. هنگامي كه كاربر آدرس URL صفحه وب را در مرورگر تايپ كرده يا روي يك هايپرلينك كليك مي‌كند، مرورگر درخواستي را براي سرور نام‌ها كه توسط ارائه دهنده خدمات اينترنتي به كاربر (ISP) نگهداري مي‌شود، ارسال مي‌كند.

سرور ISP آدرس‌هاي عددي مربوط به آن دسته از آدرس‌هاي URL را كه به‌طور متناوب مورد دسترسي قرار مي‌دهد (حداقل تا پايان زمان حيات آن‌ها)، ذخيره مي‌كند، اما در صورتي كه آدرس موردنظر درون اين سرور ذخيره نشده باشد، سرور مذكور نيز به نوبه خود يكي از سيزده سرور DNS اصلي را مورد درخواست قرار مي‌دهد. به اين ترتيب، درخواست سرور ISP براي يك سرور نام كه مسئوليت نگهداري يكي از حوزه‌هاي سطح بالا مانند com. يا edu. را بر عهده دارد، ارسال مي‌شود.

برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید اين سرور، درخواست را براي سرور ديگري كه مختص به نام يك حوزه مانند google.com يا mit.edu است، ارسال مي‌كند. ارسال درخواست بين سرورها ادامه مي‌يابد تا به سرورهايي با مسئوليت محدودتر (مانند mail.google.com يا liberaries.mit.edu) برسد و در نهايت براي سروري ارسال شود كه بتواند آدرس عددي متناظر را در اختيار گذاشته يا عدم وجود چنين آدرسي را اعلام كند.

با توسعه اينترنت مشخص شد سيستم DNS از امنيت كافي برخوردار نيست. فرآيند ارسال درخواست از يك سرور به ديگري فرصت‌هاي بسياري را در اختيار مهاجمان قرار مي‌دهد تا هنگام بروز عكس‌العمل‌هاي نادرست وارد جريان ارسال درخواست شوند و سيستم DNS هيچ‌گونه تضمين امنيتي‌اي براي حصول اطمينان از اعتبار سروري كه به درخواست پاسخ مي‌دهد، در اختيار ندارد.

ماكاپتريس مي‌گويد: «از سال 1989 نمونه‌هايي از ذخيره‌سازي اطلاعات اشتباه در مورد آدرس عددي مربوط به يك وب‌سايت وجود داشت. به اين نوع حمله‌ها در اصطلاح “مسموميت حافظه” (Cache Poisoning) گفته مي‌شود.»

در دهه 1990 پياده‌سازي حمله‌هاي مسموميت حافظه به سادگي انجام مي‌شد.
سرورهاي نام سطح پايين معمولاً توسط مؤسسه‌هاي خصوصي نگهداري مي‌شوند. به‌عنوان مثال، سايت amazon.com آدرس‌هايي را كه سرور آمازون توليد مي‌كند، تحت كنترل دارد. اگر يك سرور نام سطح پايين قادر به يافتن آدرس درخواستي نباشد، درخواست مذكور را به يك سرور ديگر ارسال كرده يا پيغامي را مبني بر عدم وجود صفحه درخواستي براي كاربر نمايش مي‌دهد، اما در دهه 1990 سرورهاي سطح پايين علاوه بر امور مذكور مي‌توانستند درخواست كاربران را با آدرس‌هاي سرورهاي سطح بالا نيز منطبق كنند.

براي مسموم كردن حافظه يك سرور كافي بود، مهاجمان اطلاعات اخير را به غلط در اختيار سرور قرار دهند. اگر يك مهاجم به‌طور فرضي سرور نام يك ISP را به‌منظور ذخيره آدرس‌هاي اشتباه در سرور com. فريب مي‌داد، مي‌توانست بخش اعظمي از ترافيك اطلاعاتي ISP را مورد دسترسي قرار دهد.

به گفته ماكاپتريس ويژگي‌هاي متعددي به سيستم DNS اضافه شد تا در مقابل اين حمله‌ها مصونيت يابد. به اين ترتيب، سرورهاي درخواست‌كننده از دريافت آدرس‌هاي عددي سطح بالا كه توسط سرورهاي نام سطح پايين ارسال مي‌شد، امتناع كردند، اما مهاجمان روش جديدي را براي عبور از اين محدوديت يافتند.

آنان مانند گذشته درخواست‌كنندگان را به‌طور فرض به يك سرور com. ارجاع مي‌دادند، اما درخواست‌كنندگان بايد به‌طور مستقيم آدرس‌هاي سرور com را جست‌وجو مي‌كردند. مهاجم به اين ترتيب، پس از درخواست آدرس موردنظر، مدتي زمان در اختيار داشت تا پيش از سرور مربوطه يك آدرس جعلي را در اختيار درخواست‌كننده قرار دهد.

براي مقابله با اين رويكرد، معيارهاي امنيتي ad hoc نيز در سيستم DNS به كار گرفته شدند. اكنون هر درخواست ارسالي براي سرور DNS حاوي شناسه‌اي است كه به‌طور اتفاقي از بين 65هزار عدد، به‌منظور ايمن‌سازي تراكنش اطلاعات توليد شده و همراه پاسخ نهايي براي درخواست‌كننده ارسال مي‌شود. به اين ترتيب، مهاجمان براي ارسال اطلاعات جعلي بايد اين شناسه را حدس بزنند.

متأسفانه يك كامپيوتر مي‌تواند تعداد بسيار زيادي پاسخ جعلي را در مدت زماني اندك توليد و ارسال كرده و به احتمال شناسه صحيح را بيابد. مفهوم زمان حيات كه در اصل به منظور حفاظت از سرورها در مقابل تعداد بسيار زياد درخواست‌ها ايجاد شد، اكنون به يكي از نقاط ضعف امنيتي تبديل شده‌است.

از آنجا كه پاسخ هر درخواست در يك بازه زماني روي سرور ذخيره مي‌شود، مهاجم شانس بسيار كمي براي جعل اطلاعات در اختيار دارد. در اغلب موارد، هنگامي كه سرور به دنبال يك آدرس com. است،‌پيش از ارجاع درخواست به سرور com. ابتدا حافظه توكار خود را جست‌وجو مي‌كند.

كامينسكي روش جديدي براي عبور از اين ويژگي امنيتي شبكه‌هاي ad hoc (و از همه مهم‌تر زمان حيات) يافت. به اين ترتيب، سيستم DNS به اندازه زماني كه حمله‌هاي مسموميت حافظه براي اولين بار كشف شدند، آسيب‌پذير است. يك مهاجم با استفاده از تكنيك كامينسكي تقريباً تعداد نامحدودي حافظه براي جعل اطلاعات در اختيار مي‌گيرد.

برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید فرض كنيد مهاجمي قصد دارد تمام نامه‌هاي الكترونيكي ارسال شده توسط يك شبكه اجتماعي آنلا‌ين را كه براي صندوق‌هاي پستي Gmail ارسال شده، بربايد.

اين مهاجم ابتدا يك حساب كاربري جديد در شبكه اجتماعي ايجاد كرده و هنگامي كه از او درخواست مي‌شود تا آدرس پست الكترونيكي خود را وارد كند، آدرسي را در اختيار سيستم مي‌گذارد كه در واقع مربوط به حوزه تحت كنترل وي است.

هنگامي كه سيستم اقدام به ارسال كلمه عبور جديد مي‌كند، سيستم DNS را مورد جست‌وجو قرارداده و در نهايت به حوزه تحت اختيار مهاجم مي‌رسد، اما سرور مهاجم اعلام مي‌كند كه آدرس موردنظر وجود خارجي ندارد. در اين زمان مهاجم مي‌تواند درخواست‌كننده را به سرور نام google.com ارجاع داده و پاسخ سرور مذكور آن را شبيه‌سازي كند، اما در اين شرايط تنها يك بار مي‌تواند براي كشف شناسه تراكنش اقدام كند.