پراکسی چیست؟
در دنیای امنیت شبکه، افراد از عبارت «پراکسی» برای خیلی چیزها استفاده میکنند. اما عموماً، پراکسی ابزاری است که بستههای دیتای اینترنتی را در مسیر دریافت میکند، آن دیتا را میسنجد و عملیاتی برای سیستم مقصد آن دیتا انجام می دهد. در اینجا از پراکسی به معنی پروسهای یاد میشود که در راه ترافیک شبکهای قبل از اینکه به شبکه وارد یا از آن خارج شود، قرار میگیرد و آن را میسنجد تا ببیند با سیاستهای امنیتی شما مطابقت دارد و سپس مشخص میکند که آیا به آن اجازه عبور از فایروال را بدهد یا خیر. بستههای مورد قبول به سرور مورد نظر ارسال و بستههای ردشده دور ریخته میشوند.
تفاوت پراکسی با فایروالها
پراکسیها بعضی اوقات با دو نوع فایروال اشتباه میشوند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 و ... غربال میکنند.
پراکسیها همچنین محتوا را برای اطمینان از اینکه با استانداردهای پروتکل مطابقت دارند، میسنجند. برای مثال، بعضی اَشکال حمله کامپیوتری شامل ارسال متاکاراکترها برای فریفتن سیستم قربانی است؛ حملههای دیگر شامل تحت تاثیر قراردادن سیستم با دیتای بسیار زیاد است. پراکسیها می توانند کاراکترهای غیرقانونی یا رشتههای خیلی طولانی را مشخص و مسدود کنند. به علاوه، پراکسیها تمام اعمال فیلترهای ذکرشده را انجام می دهند. بدلیل تمام این مزیتها، پراکسیها به عنوان یکی از امنترین روشهای عبور ترافیک شناخته میشوند.
آنها در پردازش ترافیک از فایروالها کندتر هستند زیرا کل بستهها را پیمایش میکنند. به هرحال «کندتر» بودن یک عبارت نسبی است.
آیا واقعاً کند است؟ کارایی پراکسی بمراتب سریعتر از کارایی اتصال اینترنت کاربران خانگی و سازمانهاست. معمولاً خود اتصال اینترنت گلوگاه سرعت هر شبکهای است. پراکسیها باعث کندی سرعت ترافیک در تستهای آزمایشگاهی میشوند اما باعث کندی سرعت دریافت کاربران نمیشوند. در شمارههای بعد بیشتر به پراکسی خواهیم پرداخت.
یکی از بهترین پروکسی سرورهای موجود در اینترنت که در مقالههای گذشته درباره آن توضیح دادهایم، Squid نام دارد که به صورت رایگان بر روی سرورهای لینوکس نصب میشود.
بهروز کمالیان
در تپش این هفته، ماجرای فریب و تعرض در پوشش عرفانهای دروغین و رمالی را بررسی کردیم