کاربرد پراکسی در  امنیت شبکه (۱)

بعد از آشنایی با پراکسی در مقاله «پراکسی سرور» در این مقاله به این مطلب می پردازیم که از دیدگاه امنیتی پراکسی چیست و چه چیزی نیست، از چه نوع حملاتی جلوگیری می کند و به مشخصات بعضی انواع پراکسی پرداخته می شود. البته قبل از پرداختن به پراکسی بعنوان ابزار امنیتی، بیشتر با فیلترها آشنا خواهیم شد.

پراکسی چیست؟

در دنیای امنیت شبکه، افراد از عبارت «پراکسی» برای خیلی چیزها استفاده می کنند. اما عموماً، پراکسی ابزار است که بسته های دیتای اینترنتی را در مسیر دریافت می  کند، آن دیتا را می  سنجد و عملیاتی برای سیستم مقصد آن دیتا انجام می  دهد. در اینجا از پراکسی به معنی پروسه  ای یاد می  شود که در راه ترافیک شبکه  ای قبل از اینکه به شبکه وارد یا از آن خارج شود، قرار می  گیرد و آن را می  سنجد تا ببیند با سیاست های امنیتی شما مطابقت دارد و سپس مشخص می  کند که آیا به آن اجازه عبور از فایروال را بدهد یا خیر. بسته  های مورد قبول به سرور مورد نظر ارسال و بسته های ردشده دور ریخته می  شوند.

پراکسی چه چیزی نیست؟

پراکسی ها بعضی اوقات با دو نوع فایروال اشتباه می  شوند «Packet filter  و  Stateful packet filter» که البته هر کدام از روش ها مزایا و معایبی دارد، زیرا همیشه یک مصالحه بین کارایی و امنیت وجود دارد.

 

پراکسی با Packet filter تفاوت دارد

ابتدایی ترین روش صدور اجازه عبور به ترافیک بر اساس TCP/IP این نوع فیلتر بود. این نوع فیلتر بین دو یا بیشتر رابط شبکه قرار می گیرد و اطلاعات آدرس را در header IP ترافیک دیتایی که بین آنها عبور می  کند، پیمایش می کند. اطلاعاتی که این نوع فیلتر ارزیابی می کند عموماً شامل آدرس و پورت منبع و مقصد می  شود. این فیلتر بسته به پورت و منبع و مقصد دیتا و بر اساس قوانین ایجاد شده توسط مدیر شبکه بسته را می پذیرد یا نمی پذیرد. مزیت اصلی این نوع فیلتر سریع بودن آن است چرا که header، تمام آن چیزی است که سنجیده می شود. و عیب اصلی ان این است که هرگز آنچه را که در بسته وجود دارد نمی  بیند و به محتوای آسیب رسان اجازه عبور از فایروال را می دهد. بعلاوه، این نوع فیلتر با هر بسته بعنوان یک واحد مستقل رفتار می کند و وضعیت (State) ارتباط را دنبال نمی کند.

 

پراکسی با Stateful packet filter تفاوت دارد

این فیلتر اعمال فیلتر نوع قبل را انجام می دهد، بعلاوه اینکه بررسی می کند کدام کامپیوتر در حال ارسال چه دیتایی است و چه نوع دیتایی باید بیاید. این اطلاعات بعنوان وضعیت (State) شناخته می  شود.

پروتکل ارتباطی TCP/IP به ترتیبی از ارتباط برای برقراری یک مکالمه بین کامپیوترها نیاز دارد. در آغاز یک ارتباط TCP/IP عادی، کامپیوتر A سعی می کند با ارسال یک بسته SYN (synchronize) به کامپیوتر B ارتباط را برقرار کند. کامپیوتر B در جواب یک بسته SYN/ACK (Acknowledgement)  برمی گرداند، و کامپیوتر A یک ACK به کامپیوتر ‍B می فرستد و به این ترتیب ارتباط برقرار می شود. TCP اجازه وضعیتهای دیگر، مثلاً   FIN (finish) برای نشان  دادن آخرین بسته در یک ارتباط را نیز می دهد.

هکرها در مرحله آماده سازی برای حمله، به جمع آوری اطلاعات در مورد سیستم شما می پردازند. یک روش معمول ارسال یک بسته در یک وضعیت غلط به منظوری خاص است. برای مثال، یک بسته با عنوان پاسخ (Reply) به سیستمی که تقاضایی نکرده، می فرستند. معمولاً، کامپیوتر دریافت کننده بیاید پیامی بفرستد و بگوید “I don’t understand” . به این ترتیب، به هکر نشان می دهد که وجود دارد، و آمادگی برقراری ارتباط دارد. بعلاوه، قالب پاسخ می  تواند سیستم عامل مورد استفاده را نیز مشخص کند، و برای یک هکر گامی به جلو باشد. یک فیلتر Stateful packet منطق یک ارتباط TCP/IP را می فهمد و می تواند یک “Reply” را که پاسخ به یک تقاضا نیست، مسدود کند ـــ آنچه که یک فیلتر packet ردگیری نمی کند و نمی  تواند انجام دهد. فیلترهای Stateful packet می توانند در همان لحظه قواعدی را مبنی بر اینکه بسته مورد انتظار در یک ارتباط عادی چگونه باید بنظر رسد، برای پذیرش یا رد بسته بعدی تعیین کنند. فایده این کار امنیت محکم تر است. این امنیت محکم تر، بهرحال، تا حدی باعث کاستن از کارایی می شود.  نگاهداری لیست قواعد ارتباط بصورت پویا برای هر ارتباط و فیلترکردن دیتای بیشتر، حجم پردازشی بیشتری به این نوع فیلتر اضافه می کند.

 

پراکسی ها یا Application Gateways

Application Gateways که عموماً پراکسی نامیده می شود، پیشرفته ترین روش استفاده شده برای کنترل ترافیک عبوری از فایروال ها هستند. پراکسی بین کلاینت و سرور قرار می گیرد و تمام جوانب گفتگوی بین آنها را برای تایید تبعیت از قوانین برقرار شده، می سنجد. پراکسی بار واقعی تمام بسته  های عبوری بین سرور و کلاینت را می سنجد، و می  تواند چیزهایی را که سیاستهای امنیتی را نقض می  کنند، تغییر دهد یا محروم کند. توجه کنید که فیلترهای بسته ها فقط headerها را می سنجند، در حالیکه پراکسی ها محتوای بسته را با مسدود کردن کدهای آسیب رسان همچون فایلهای اجرایی، اپلت های جاوا، ActiveX و ... غربال می کنند.

پراکسی ها همچنین محتوا را برای اطمینان از اینکه با استانداردهای پروتکل مطابقت دارند، می  سنجند. برای مثال، بعضی اَشکال حمله کامپیوتری شامل ارسال متاکاراکترها برای فریفتن سیستم قربانی است؛ حمله های دیگر شامل تحت تاثیر قراردادن سیستم با دیتای بسیار زیاد است. پراکسی ها می توانند کاراکترهای غیرقانونی یا رشته های خیلی طولانی را مشخص و مسدود کنند. بعلاوه، پراکسی ها تمام اعمال فیلترهای ذکرشده را انجام می دهند. بدلیل تمام این مزیتها، پراکسی ها بعنوان یکی از امن ترین روشهای عبور ترافیک شناخته می شوند. آنها در پردازش ترافیک از فایروالها کندتر هستند زیرا کل بسته ها را پیمایش می کنند. بهرحال «کندتر» بودن یک عبارت نسبی است.

آیا واقعاً کند است؟ کارایی پراکسی بمراتب سریعتر از کارایی اتصال اینترنت کاربران خانگی و سازمانهاست. معمولاً خود اتصال اینترنت گلوگاه سرعت هر شبکه ای است. پراکسی ها باعث کندی سرعت ترافیک در تست های آزمایشگاهی می شوند اما باعث کندی سرعت دریافت کاربران نمی شوند. در شماره بعد بیشتر به پراکسی خواهیم پرداخت.

پراکسی سرور

در یک تشکیلات که از اینترنت استفاده می‌کند، یک پراکسی سرور ترکیبی از سخت‌افزار و نرم‌افزار است که بعنوان یک واسطه بین کاربر داخلی و اینترنت عمل می‌کند به طوریکه امنیت، نظارت مدیریتی و سرویس‌های caching تامین می‌شود. یک سرور پراکسی دارای پروتکل مشخصی است،‌ بنابراین برای هرنوع پروتکلی (HTTP، FTP، Gogher و غیره) باید تنظیم شود. پراکسی سرور بعنوان بخشی از یک سرور gateway (نقطه‌ای در یک شبکه که ورودی به شبکه‌ای دیگر است) رفتار می‌کند و می‌تواند برای انجام یک یا چند فانکشن‌ که در بخش بعد به آن اشاره می‌شود، تنظیم شود.

 

 

عملکردهایی که پراکسی سرور می‌تواند داشته باشد

با تعریفی که از یک پراکسی ارائه شد، می‌توان از پراکسی برای بهبود عملکرد یک شبکه استفاده‌هایی کرد که در اینجا به چند مورد آن به اختصار اشاره می‌کنیم:

·   Firewall (دیواره آتش)

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

·   Caching (ذخیره سازی)

سرور پراکسی که عمل caching را انجام می‌دهد، منابعی مانند صفحات وب و فایل‌ها را ذخیره می‌کند. هنگامی که یک منبع مورد دسترسی قرار گرفت، در سرور دخیره می‌شود و تقاضاهای بعدی برای همین منبع مشخص با محتویات cache پاسخ داده می‌شود. این عمل، دسترسی به آن منبع را برای کاربرانی که از طریق پراکسی به اینترنت متصل هستند، سرعت می‌بخشد و از طرفی از ترافیک اینترنت می‌کاهد و اجازه استفاده بهتر از پهنای باند به کاربران داده می‌شود.

·   Filtering (فیلتر کردن)

سرور پراکسی می‌تواند ترافیک وارد شونده و خارج شونده از شبکه را بررسی کند و به آنچه که با معیارهای امنیتی یا سیاست سازمان مغایرت دارد، اجازه عبور ندهد.

·   Authentication (تصدیق هویت)

بسیاری منابع الکترونیکی سازمانی توسط ورود با کلمه رمز یا قرار داشتن در دامنه مشخصی از IP محدود شده‌اند. کاربران دور معمولاً از یک سرویس‌دهنده اینترنت ثالث استفاده می‌کنند که در این صورت این کاربر یا IP کامپیوتر آن برای سازمان معتبر تشخیص داده نمی‌شود. برای کاربرانی که بصورت فیزیکی به شبکه داخلی سازمان متصل نشده‌اند، پراکسی طوری عمل می‌کند که به کاربران دور اجازه ورود موقت داده شود یا به آنها بطور موقت یک IP سازمان تخصیص داده شود که بتوانند به منابع محدود شده دسترسی پیدا کنند.

·   Anonymization (تغییر هویت)

 برای محافظت شبکه داخلی یک سازمان از کاربران موجود در اینترنت، سرور پراکسی می‌تواند هویت سیستم‌های متقاضی داخلی را تغییر دهد. اگر منبع (مثلاً صفحه وب یا فایل) تقاضا شده توسط کاربر داخلی سازمان، در cache موجود نباشد، سرور پراکسی برای آن کاربر، بعنوان کلاینت عمل می‌کند و از یکی از آدرس‌های IP خودش برای تقاضای آن منبع از سرور موجود در اینترنت استفاده می‌کند. این آدرس IP «موقت»، آدرسی نیست که واقعاً در شبکه داخلی سازمان استفاده گردد و در نتیجه از بعضی از حمله‌های نفوذگران جلوگیری می‌شود. هنگامی که صفحه تقاضا شده، از طرف سرور روی اینترنت به پراکسی سرور می‌رسد، پراکسی سرور آن را به تقاضای اولیه مرتبط می‌کند و برای کاربر می‌فرستد. این پروسه تغییر دادن IP باعث می‌شود که تقاضا دهنده اولیه قابل ردیابی نباشد و همچنین معماری شبکه سازمان از دید بیرونی مخفی بماند.

·   Logging (ثبت کردن)

پراکسی سرور می‌تواند تقاضاها را بهمراه اطلاعات لازم در جایی ثبت کند تا بعداً امکان پیگیری اعمال کاربران داخل سازمان فراهم شود.

 

پیکربندی مرورگر

·   تعامل کاربر: کاربر باید از ابتدا مرورگر خود را پیکربندی کند که بدین ترتیب نیاز است که اطلاعات را از پشتیبانی فنی سازمان بدست آورد.

·   پیکربندی دستی: در این پیکربندی کاربر باید سروری را که نرم‌افزار پراکسی را اجرا می‌کند، مشخص کند. کاربر باید استثنائات هر دامنه‌ای را که می‌تواند بطور مستقیم به آن وصل شود، مشخص کند و به این ترتیب در اتصال به این دامنه‌های مشخص‌شده، پراکسی در مسیر قرار نمی‌گیرد.

·   پیکربندی خودکار: یک فایل تنظیم پیکربندی توسط سازمان که منطق استفاده از پراکسی توسط مرورگر در آن قرار دارد. URL فایل باید در پیکربندی مرورگر وارد گردد. اینکه یک تقاضا از طریق پراکسی مسیریابی شود یا خیر، بستگی به شروط موجود در آن فایل دارد.

رویکردی عملی به امنیت شبکه لایه بندی شده (6) : جمع بندی

در شماره های قبل به لایه های مختلف در امنیت شبکه لایه بندی شده پرداختیم. در این شماره به اختصار به جمع بندی مباحث فوق می پردازیم.

دفاع در مقابل تهدیدها و حملات معمول

مقالات گذشته نشان می دهد که چگونه رویکرد امنیت لایه بندی شده در مقابل تهدیدها و حملات معمول از شبکه شما محافظت می کند و نشان می دهد که چگونه هر سطح با داشتن نقشی کلیدی در برقراری امنیت شبکه جامع و مؤثر، شرکت می کند.

 

      

 

بعضی حملات معمول شامل موارد زیر می شود:

·   حملات به وب سرور ـ حملات به وب سرور دامنه زیادی از مشکلاتی را که تقریباً برای هر وب سرور ایجاد می شود، در برمی گیرد. از دستکاری های ساده در صفحات گرفته تا در اختیار گرفتن سیستم از راه دور و تا حملات DOS. امروزه حملات به وب سرور یکی از معمول ترین حملات هستند. Code Red و Nimda به عنوان حمله کنندگان به وب سرورها از شهرت زیادی! برخوردارند.

·   بازپخش ایمیل ها بصورت نامجاز ـ سرورهای ایمیلی که بصورت مناسب پیکربندی نشده اند یک دلیل عمده برای ارسال هرزنامه ها بشمار می روند. بسیاری از شرکت های هرزنامه ساز در پیدا کردن این سرورها و ارسال صدها و هزاران پیام هرزنامه به این سرورها، متخصص هستند.

·   دستکاری میزبان دور در سطح سیستم ـ تعدادی از آسیب پذیری ها، یک سیستم را از راه دور در اختیار حمله کننده قرار می دهند. بیشتر این نوع کنترل ها در سطح سیستم است و به حمله کننده اختیاراتی برابر با مدیر محلی سیستم می دهد.

·   فراهم بودن سرویس های اینترنتی غیرمجاز ـ توانایی آسان بکارگیری یک وب سرور یا سرویس اینترنتی دیگر روی یک کامپیوتر ریسک افشای سهوی اطلاعات را بالا می برد. اغلب چنین سرویس هایی کشف نمی شوند، در حالی که در شعاع رادار دیگران قرار می گیرند!

·   تشخیص فعالیت ویروسی ـ در حالی که برنامه ضدویروس در تشخیص ویروس ها مهارت دارد، این نرم افزار برای تشخیص فعالیت ویروسی طراحی نشده است. در این شرایط بکارگیری یک برنامه تشخیص نفوذ یا IDS شبکه برای تشخیص این نوع فعالیت بسیار مناسب است.

 

نتیجه گیری

هکرها و تروریست های فضای سایبر به طور فزاینده ای اقدام به حمله به شبکه ها می کنند. رویکرد سنتی به امنیت ـ یعنی یک فایروال در ترکیب با یک آنتی ویروس ـ در محافظت از شما در برابر تهدیدهای پیشرفته امروزی ناتوان است.

اما شما می توانید با برقراری امنیت شبکه با استفاده از رویکرد لایه بندی شده دفاع مستحکمی ایجاد کنید. با نصب گزینشی ابزارهای امنیتی در پنج سطح موجود در شبکه تان (پیرامون، شبکه، میزبان، برنامه  و دیتا) می توانید از دارایی های دیجیتالی خود محافظت کنید و از افشای اطلاعات خود در اثر ایجاد رخنه های مصیبت  بار تا حد زیادی بکاهید.