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

در مقایسه فایروال‌ها، ما مفهومی از پراکسی ارائه می‌دهیم و پراکسی را از فیلترکننده بسته‌ها متمایز می‌کنیم. با پیش‌زمینه‌ای که از پراکسی در شماره قبل بیان کردیم، می‌توانیم در اینجا مزایای پراکسی‌ها بعنوان ابزاری برای امنیت را لیست کنیم:

·   با مسدود کردن روش‌های معمول مورد استفاده در حمله‌ها، هک‌کردن شبکه شما را مشکل‌تر می‌کنند.

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

·   با جلوگیری از ورود محتویات ناخواسته و نامناسب به شبکه شما، استفاده از پهنای باند شبکه را بهبود می‌بخشند.

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

·   با فراهم‌آوردن ابزار و پیش‌فرض‌هایی برای مدیر شبکه شما که می‌توانند بطور گسترده‌ای استفاده شوند، می‌توانند مدیریت شبکه شما را آسان سازند.

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

برخی انواع پراکسی

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

البته پراکسی‌ها تنظیمات و ویژگی‌های زیادی دارند. ترکیب پراکسی‌ها و سایر ابزار مدیریت فایروال‌ها به مدیران شبکه شما قدرت کنترل امنیت شبکه تا بیشترین جزئیات را می‌دهد. در ادامه به پراکسی‌های زیر اشاره خواهیم کرد:

·   SMTP Proxy

·   HTTP Proxy

·   FTP Proxy

·   DNS Proxy

 

SMTP Proxy

‌پراکسی SMTP (Simple Mail Transport Protocol) محتویات ایمیل‌های وارد شونده و خارج‌شونده را برای محافظت از شبکه شما در مقابل خطر بررسی می‌کند. بعضی از تواناییهای آن اینها هستند:

·   مشخص کردن بیشترین تعداد دریافت‌کنندگان پیام: این اولین سطح دفاع علیه اسپم (هرزنامه) است که اغلب به صدها یا حتی هزاران دریافت‌کننده ارسال می‌شود.

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

·   اجازه دادن به کاراکترهای مشخص در آدرسهای ایمیل آنطور که در استانداردهای اینترنت پذیرفته شده است: چنانچه قبلاً اشاره شد، بعضی حمله‌ها بستگی به ارسال کاراکترهای غیرقانونی در آدرسها دارد. پراکسی می‌تواند طوری تنظیم شود که بجز به کاراکترهای مناسب به بقیه اجازه عبور ندهد.

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

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

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

·   تغییردادن یا پنهان‌کردن نامهای دامنه و IDهای پیام‌ها: ایمیل‌هایی که شما می‌فرستید نیز مانند آنهایی که دریافت می‌کنید، دربردارنده دیتای header هستند. این دیتا بیش از آنچه شما می‌خواهید دیگران درباره امور داخلی شبکه شما بدانند، اطلاعات دربردارند. پراکسی SMTP می‌تواند بعضی از این اطلاعات را پنهان کند یا تغییر دهد تا شبکه شما اطلاعات کمی در اختیار هکرهایی قرار دهد که برای وارد شدن به شبکه شما دنبال سرنخ می‌گردند.

در شماره بعد بررسی انواع دیگر پراکسی را ادامه خواهیم داد.

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

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

پراکسی چیست؟

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

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

پراکسی ها بعضی اوقات با دو نوع فایروال اشتباه می  شوند «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 شبکه برای تشخیص این نوع فعالیت بسیار مناسب است.

 

نتیجه گیری

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

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

رویکردی عملی به امنیت شبکه لایه بندی شده ( (۵

در شماره قبل به سومین لایه که لایه میزبان است، اشاره شد. در این شماره به لایه برنامه کاربردی بعنوان چهارمین لایه  و لایه دیتا بعنوان پنجمین لایه می پردازیم.

سطح ۴-  امنیت برنامه کاربردی

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

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

 

                                       

                                

 

تکنولوژی های زیر امنیت را در سطح برنامه فراهم می کنند:

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

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

·   کنترل دسترسی/تصدیق هویت- مانند تصدیق هویت در سطح شبکه و میزبان، تنها کاربران مجاز می توانند به برنامه دسترسی داشته باشند.

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

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

-    کلید واژه ها را فیلتر کنید. بیشتر عبارات مربوط به فرمانها مانند «insert»، باید بررسی و در صورت نیاز مسدود شوند.

-    فقط دیتایی را بپذیرید که برای فلید معین انتظار می رود. برای مثال، یک اسم کوچک ۷۵ حرفی یک ورودی استاندارد نیست.

مزایا

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

معایب

پیاده سازی جامع امنیت سطح برنامه می تواند هزینه بر باشد، چرا که هر برنامه و میزبان آن باید بصورت مجزا ارزیابی،  پیکربندی و مدیریت شود. بعلاوه، بالابردن امنیت یک شبکه با امنیت سطح برنامه می تواند عملی ترسناک! و غیرعملی باشد. هرچه زودتر بتوانید سیاست هایی برای استفاده از این ابزارها پیاده کنید، روند مذکور موثرتر و ارزان تر خواهد بود.

ملاحظات

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

 

سطح ۵ -  امنیت دیتا

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

تکنولوژی های زیر امنیت در سطح دیتا را فراهم می کنند:

·   رمزنگاری – طرح های رمزنگاری دیتا در سطوح دیتا، برنامه و سیستم عامل پیاده  می شوند. تقریباً  تمام طرح ها شامل کلیدهای رمزنگاری/رمزگشایی هستند که تمام افرادی که به دیتا دسترسی دارند، باید داشته باشند. استراتژی های رمزنگاری معمول شامل PKI، PGP و RSA هستند.

·   کنترل دسترسی / تصدیق هویت – مانند تصدیق هویت سطوح شبکه، میزبان و برنامه، تنها کاربران مجاز دسترسی به دیتا خواهند داشت.

 

           

 

مزایا

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

معایب

بار اضافی برای رمزنگاری و رمزگشایی دیتا وجود دارد که می تواند تأثیرات زیادی در کارایی بگذارد. به علاوه، مدیریت کلیدها می تواند تبدیل به یک بار اجرایی در سازمان های بزرگ یا در حال رشد گردد.

ملاحظات

رمزنگاری تا عمق مشخص باید به دقت مدیریت شود. کلیدهای رمزنگاری باید برای تمام ابزارها و برنامه های تحت تأثیر تنظیم و هماهنگ شوند. به همین دلیل، یک بار مدیریتی برای یک برنامه رمزنگاری موثر مورد نیاز است.

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

در شماره قبل به دومین لایه که لایه شبکه است، اشاره شد، در این شماره به لایه میزبان به عنوان سومین لایه می پردازیم.

سطح ۳-  امنیت میزبان

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

 

 

 

 

تکنولوژی های زیر امنیت را در سطح میزبان فراهم می کنند:

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

·         VA (تخمین آسیب پذیری) سطح میزبان - ابزارهای VA سطح میزبان یک ابزار شبکه مجزا را برای آسیب پذیری های امنیتی پویش می کنند. دقت آنها نسبتا بالاست و کمترین نیاز را به منابع میزبان دارند. از آنجایی که VA ها بطور مشخص برای ابزار میزبان پیکربندی می شوند، درصورت مدیریت مناسب، سطح بسیار بالایی از پوشش را فراهم می کنند.

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

·         آنتی ویروس - هنگامی که آنتی ویروس های مشخص شده برای ابزار در کنار آنتی ویروس های شبکه استفاده می شوند ، لایه اضافه ای برای محافظت فراهم می کنند.

·         کنترل دسترسی\تصدیق هویت- ابزار کنترل دسترسی در سطح ابزار یک روش مناسب است که تضمین می کند دسترسی به ابزار تنها توسط کاربران مجاز صورت پذیرد. در اینجا نیز، احتمال سطح بالایی از تراکنش بین ابزار کنترل دسترسی شبکه و کنترل دسترسی میزبان وجود دارد.

 

 

 

مزایا

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

معایب

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

ملاحظات

بدلیل هزینه ها و باراضافی مدیریت، ابزار در سطح میزبان باید بدقت بکار گرفته شوند. بعنوان یک اصل راهنما، بیشتر سازمان ها این ابزار را فقط روی سیستم های بسیار حساس شبکه نصب می کنند. استثناء این اصل یک راه حل تابعیت امنیتی کاربر انتهایی است، که اغلب برای پوشش دادن به هر ایستگاه کاری که تلاش می کند به شبکه دسترسی پیدا کند، بکار گرفته می شود.

 

 

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

در مطلب قبلی به اولین لایه که لایه پیرامون است، اشاره شد، در این شماره به لایه امنیت شبکه می پردازیم.

سطح ۲-  امنیت شبکه

سطح شبکه در مدل امنیت لایه بندی شده به WAN و LAN داخلی شما اشاره دارد. شبکه داخلی شما ممکن است شامل چند کامپیوتر و سرور و یا شاید پیچیده تر یعنی شامل اتصالات نقطه به نقطه به دفترهای کار دور باشد. بیشتر شبکه های امروزی در ورای پیرامون، باز هستند؛ یعنی هنگامی که داخل شبکه قرار دارید، می توانید به راحتی در میان شبکه حرکت کنید. این قضیه بخصوص برای سازمان های کوچک تا متوسط صدق می کند که به این ترتیب این شبکه ها برای هکرها و افراد بداندیش دیگر به اهدافی وسوسه انگیز مبدل می شوند. تکنولوژی های ذیل امنیت را در سطح شبکه برقرار می کنند:

 

·   IDSها (سیستم های تشخیص نفوذ) و IPSها (سیستم های جلوگیری از نفوذ) ـ تکنولوژیهای IDS و IPS ترافیک گذرنده در شبکه شما را با جزئیات بیشتر نسبت به فایروال تحلیل می کنند. مشابه سیستم های آنتی ویروس، ابزارهای IDS و IPS ترافیک را تحلیل و هر بسته اطلاعات را با پایگاه داده ای از مشخصات حملات شناخته شده مقایسه می کنند. هنگامی که حملات تشخیص داده می شوند، این ابزار وارد عمل می شوند. ابزارهای IDS مسؤولین IT را از وقوع یک حمله مطلع می سازند؛ ابزارهای IPS یک گام جلوتر می روند و بصورت خودکار ترافیک  آسیب رسان را مسدود می کنند. IDSها و IPSها مشخصات مشترک زیادی دارند. در حقیقت، بیشتر IPSها در هسته خود یک IDS دارند. تفاوت کلیدی بین این تکنولوژی ها از نام آنها استنباط می شود. محصولات IDS تنها ترافیک آسیب رسان را تشخیص می دهند، در حالیکه محصولات IPS از ورود چنین ترافیکی به شبکه شما جلوگیری می کنند. پیکربندی های IDS و IPS  استاندارد در شکل نشان داده شده اند:

 

 

·   مدیریت آسیب پذیری – سیستم های مدیریت آسیب پذیری دو عملکرد مرتبط را انجام می دهند: (۱) شبکه را برای آسیب پذیری ها پیمایش می کنند و (۲)روند مرمت آسیب پذیری یافته شده را مدیریت می کنند. در گذشته، این تکنولوژی VA )تخمین آسیب پذیری( نامیده می شد. اما این تکنولوژی اصلاح شده است، تا جاییکه بیشتر سیستم های موجود، عملی بیش از تخمین آسیب پذیری ابزار شبکه را انجام می دهند.

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

   همچنانکه از نامش برمی آید، سیستم  مدیریت آسیب پذیری شامل ویژگیهایی است که روند بازسازی را مدیریت می کند. لازم به ذکر است که میزان و توانایی این ویژگی ها در میان محصولات مختلف، فرق می کند.

 

·   تابعیت امنیتی کاربر انتهایی – روش های تابعیت امنیتی کاربر انتهایی به این طریق از شبکه محافظت می کنند که تضمین می کنند کاربران انتهایی استانداردهای امنیتی تعریف شده را قبل از اینکه اجازه دسترسی به شبکه داشته باشند، رعایت کرده اند. این عمل جلوی حمله به شبکه از داخل خود شبکه را از طریق سیستم های ناامن کارمندان و ابزارهای VPN و RAS می گیرد.

  روش های امنیت نقاط انتهایی براساس آزمایش هایی که روی سیستم هایی که قصد اتصال دارند، انجام می دهند، اجازه دسترسی می دهند. هدف آنها از این تست ها معمولاً برای بررسی  (۱) نرم افزار مورد نیاز، مانند سرویس پک ها، آنتی ویروس های به روز شده و غیره و (۲) کاربردهای ممنوع مانند اشتراک فایل و نرم افزارهای جاسوسی است.

 

·   کنترل دسترسی\تأیید هویت – کنترل دسترسی نیازمند تأیید هویت کاربرانی است که به شبکه شما دسترسی دارند. هم کاربران و هم ابزارها باید با ابزار کنترل دسترسی در سطح شبکه کنترل شوند.

 

نکته: در این سلسله مباحث،  به کنترل دسترسی و تأییدهویت در سطوح شبکه، میزبان، نرم افزار و دیتا در چارچوب امنیتی لایه بندی شده می پردازیم. میان طرح های کنترل دسترسی بین لایه های مختلف همپوشانی قابل توجهی وجود دارد. معمولاً تراکنش های تأیید هویت در مقابل دید کاربر اتفاق می افتد. اما به خاطر داشته باشید که کنترل دسترسی و تأیید هویت مراحل پیچیده ای هستند که برای ایجاد بیشترین میزان امنیت در شبکه، باید به دقت مدیریت شوند.

 

مزایا

تکنولوژی های IDS، IPS و مدیریت آسیب پذیری تحلیل های پیچیده ای روی تهدیدها و آسیب پذیری های شبکه انجام می دهند. در حالیکه فایروال به ترافیک، برپایه مقصد نهایی آن اجازه عبور می دهد، ابزار IPS و IDS تجزیه و تحلیل عمیق تری را برعهده دارند، و بنابراین سطح بالاتری از محافظت را ارائه می کنند. با این تکنولوژی های پیشرفته، حملاتی که داخل ترافیک قانونی شبکه وجود دارند و می توانند از فایروال عبور کنند، مشخص خواهند شد و قبل از آسیب رسانی به آنها خاتمه داده خواهند شد.

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

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

 

معایب

IDSها تمایل به تولید تعداد زیادی علائم هشدار غلط دارند، که به عنوان false positives نیز شناخته می شوند. در حالیکه IDS ممکن است که یک حمله را کشف و به اطلاع شما برساند، این اطلاعات می تواند زیر انبوهی از هشدارهای غلط یا دیتای کم ارزش مدفون شود. مدیران IDS ممکن است به سرعت حساسیت خود را نسبت به اطلاعات تولید شده توسط سیستم از دست بدهند. برای تأثیرگذاری بالا، یک IDS  باید بصورت پیوسته بررسی شود و برای الگوهای مورد استفاده و آسیب پذیری های کشف شده در محیط شما تنظیم گردد. چنین نگهداری معمولاً میزان بالایی از منابع اجرایی را مصرف می کند.

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

بسیاری، اما نه همه روش های امنیتی کاربران انتهایی، نیاز به نصب یک عامل در هر نقطه انتهایی دارد. این عمل می تواند مقدار قابل توجهی بار کاری اجرایی به نصب و نگهداری اضافه کند.

تکنولوژی های کنترل دسترسی ممکن است محدودیت های فنی داشته باشند. برای مثال، بعضی ممکن است با تمام ابزار موجود در شبکه شما کار نکنند، بنابراین ممکن است به چند سیستم برای ایجاد پوشش نیاز داشته باشید. همچنین، چندین فروشنده سیستم های کنترل دسترسی را به بازار عرضه می کنند، و عملکرد می تواند بین محصولات مختلف متفاوت باشد. پیاده سازی یک سیستم یکپارچه در یک شبکه ممکن است دشوار باشد. چنین عمل وصله-پینه ای یعنی رویکرد چند محصولی ممکن است در واقع آسیب پذیری های بیشتری را در شبکه شما به وجود آورد.

 

ملاحظات

موفقیت ابزارهای امنیت سطح شبکه به نحوی به سرعت اتصالات داخلی شبکه شما وابسته است. زیرا ابزارهای IDS/IPS ، مدیریت آسیب پذیری و امنیت کاربر انتهایی ممکن است منابعی از شبکه ای را که از آن محافظت می کنند، مصرف کنند. سرعت های اتصالی بالاتر تأثیری را که این ابزارها بر کارایی شبکه دارند  به حداقل خواهد رساند. در پیاده سازی این تکنولوژی ها شما باید به مصالحه بین امنیت بهبودیافته و سهولت استفاده توجه کنید، زیرا  بسیاری از این محصولات برای کارکرد مؤثر باید به طور پیوسته مدیریت شوند و این ممکن است استفاده از آن محصولات را در کل شبکه با زحمت مواجه سازد.

وقتی که این تکنولوژی ها را در اختیار دارید، بهبود پیوسته شبکه را در خاطر داشته باشید. در شبکه هایی با پویایی و سرعت گسترش بالا، تطبیق با شرایط و ابزار جدید ممکن است مسأله ساز گردد.

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

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

 

سطح ۱: امنیت پیرامون

منظور از پیرامون، اولین خط دفاعی نسبت به بیرون و به عبارتی به شبکه غیرقابل اعتماد است. «پیرامون» اولین و آخرین نقطه تماس برای دفاع امنیتی محافظت کننده شبکه است. این ناحیه ای است که شبکه به پایان می رسد و اینترنت آغاز می شود. پیرامون شامل یک یا چند فایروال و مجموعه ای از سرورهای به شدت کنترل شده است که در بخشی از پیرامون قرار دارند که بعنوان DMZ (demilitarized zone) شناخته می شود. DMZ معمولاً وب سرورها، مدخل ایمیل ها، آنتی ویروس شبکه و سرورهای DNS  را دربرمی گیرد که باید در معرض اینترنت قرار گیرند. فایروال قوانین سفت و سختی در مورد اینکه چه چیزی می تواند وارد شبکه شود و چگونه سرورها در DMZ می توانند با اینترنت و شبکه داخلی تعامل داشته باشند، دارد.

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

تکنولوژیهای زیر امنیت را در پیرامون شبکه ایجاد می کنند:

 

·   فایروال ـ معمولاً یک فایروال روی سروری نصب می گردد که به بیرون و درون پیرامون شبکه متصل است. فایروال سه عمل اصلی انجام می دهد ۱- کنترل ترافیک ۲- تبدیل آدرس و ۳- نقطه پایانی VPN. فایروال کنترل ترافیک را با سنجیدن مبداء و مقصد تمام ترافیک واردشونده و خارج شونده انجام می دهد و تضمین می کند که تنها تقاضاهای مجاز اجازه عبور دارند. بعلاوه، فایروال ها به شبکه امن در تبدیل آدرس های IP داخلی به آدرس های قابل رویت در اینترنت کمک می کنند. این کار از افشای اطلاعات مهم درباره ساختار شبکه تحت پوشش فایروال جلوگیری می کند. یک فایروال همچنین می تواند به عنوان نقطه پایانی تونل های VPN (که بعداً بیشتر توضیح داده خواهد شد) عمل کند. این سه قابلیت فایروال را تبدیل به بخشی واجب برای امنیت شبکه شما می کند.

 

·   آنتی ویروس شبکه ـ  این نرم افزار در DMZ نصب می شود و محتوای ایمیل های واردشونده و خارج شونده را با پایگاه داده ای از مشخصات ویروس های شناخته شده مقایسه می کند.  این آنتی ویروس ها آمد و شد ایمیل های آلوده را مسدود می کنند و آنها را قرنطینه می کنند و سپس به دریافت کنندگان و مدیران شبکه اطلاع می دهند. این عمل از ورود و انتشار یک ایمیل آلوده به ویروس در شبکه جلوگیری می کند و جلوی گسترش ویروس توسط شبکه شما را می گیرد. آنتی ویروس شبکه، مکملی برای حفاظت ضدویروسی است که در سرور ایمیل شما و کامپیوترهای مجزا صورت می گیرد. بمنظور کارکرد مؤثر، دیتابیس ویروس های شناخته شده باید به روز نگه داشته شود.

 

·   VPNـ یک شبکه اختصاصی مجازی (VPN) از رمزنگاری سطح بالا برای ایجاد ارتباط امن بین ابزار دور از یکدیگر، مانند لپ تاپ ها و شبکه مقصد استفاده می کند. VPN اساساً یک تونل رمزشده تقریباً با امنیت و محرمانگی یک شبکه اختصاصی اما از میان اینترنت ایجاد می کند. این تونل VPN می تواند در یک مسیریاب برپایه VPN، فایروال یا یک سرور در ناحیه DMZ پایان پذیرد. برقراری ارتباطات VPN برای تمام بخش های دور و بی سیم شبکه یک عمل مهم است که نسبتاً آسان و ارزان پیاده سازی می شود.

 

 

مزایا

تکنولوژی های ایجاد شده سطح پیرامون سال هاست که در دسترس هستند، و بیشتر خبرگان IT با تواناییها و نیازهای عملیاتی آنها به خوبی آشنایی دارند. بنابراین، از نظر پیاده سازی آسان و توأم با توجیه اقتصادی هستند. بعضیاز فروشندگان راه حل های سفت و سختی برای این تکنولوژیها ارائه می دهند و بیشتر آنها به این دلیل پر هزینه هستند.

 

معایب

از آنجا که بیشتر این سیستم ها تقریباً پایه ای هستند و مدت هاست که در دسترس بوده اند، بیشتر هکرهای پیشرفته روش هایی برای دور زدن آنها نشان داده اند. برای مثال، یک ابزار آنتی ویروس نمی تواند ویروسی را شناسایی کند مگر اینکه از قبل علامت شناسایی ویروس را در دیتابیس خود داشته باشد و این ویروس داخل یک فایل رمزشده قرار نداشته باشد. اگرچه VPN رمزنگاری مؤثری ارائه می کند، اما کار اجرایی بیشتری را برروی کارمندان IT تحمیل می کنند، چرا که کلیدهای رمزنگاری و گروه های کاربری باید بصورت مداوم مدیریت شوند.

 

ملاحظات

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

انواع ابزاری که در DMZ شما قرار دارد نیز یک فاکتور مهم است. این ابزارها چه میزان اهمیت برای کسب و کار شما دارند؟ هرچه اهمیت بیشتر باشد، معیارها و سیاست های امنیتی سفت و سخت تری باید این ابزارها را مدیریت کنند.

 

در شماره بعدی به ادامه این مطلب خواهیم پرداخت.

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

مقدمه

امروزه امنیت شبکه یک مسأله مهم برای ادارات و شرکتهای دولتی و سازمان های کوچک و بزرگ است. تهدیدهای پیشرفته از سوی تروریست های فضای سایبر، کارمندان ناراضی و هکرها رویکردی سیستماتیک را برای امنیت شبکه می طلبد. در بسیاری از صنایع، امنیت به شکل پیشرفته یک انتخاب نیست بلکه یک ضرورت است.

در این سلسله مقالات رویکردی لایه بندی شده برای امن سازی شبکه به شما معرفی می گردد.  این رویکرد هم یک استراتژی تکنیکی است که ابزار و امکان مناسبی را در سطوح مختلف در زیرساختار شبکه شما قرار می دهد و هم یک استراتژی سازمانی است که مشارکت همه از هیأت مدیره تا قسمت فروش را می طلبد.

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

۱- پیرامون

۲- شبکه

۳- میزبان

۴- برنامه  کاربردی

۵- دیتا

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

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

 

 

 

افزودن به ضریب عملکرد هکرها

متخصصان امنیت شبکه از اصطلاحی با عنوان ضریب عملکرد (work factor) استفاده می کنند که مفهومی مهم در پیاده سازی امنیت لایه بندی است. ضریب عملکرد بعنوان میزان تلاش مورد نیاز توسط یک نفوذگر بمنظور تحت تأثیر قراردادن یک یا بیشتر از سیستمها و ابزار امنیتی تعریف می شود که باعث رخنه کردن در شبکه می شود. یک شبکه با ضریب عملکرد بالا به سختی مورد دستبرد قرار می گیرد در حالیکه یک شبکه با ضریب عملکرد پایین می تواند نسبتاً به راحتی مختل شود. اگر هکرها تشخیص دهند که شبکه شما ضریب عملکرد بالایی دارد، که فایده رویکرد لایه بندی شده نیز هست، احتمالاً شبکه شما را رها می کنند و به سراغ شبکه هایی با امنیت پایین تر می روند و این دقیقاً همان چیزیست که شما می خواهید.

تکنولوژی های بحث شده در این سری مقالات مجموعاً رویکرد عملی خوبی برای امن سازی دارایی های دیجیتالی شما را به نمایش می گذارند. در یک دنیای ایده آل، شما بودجه و منابع را برای پیاده سازی تمام ابزار و سیستم هایی که بحث می کنیم خواهید داشت. اما متأسفانه در چنین دنیایی زندگی نمی کنیم. بدین ترتیب، باید شبکه تان را ارزیابی کنید – چگونگی استفاده از آن، طبیعت داده های ذخیره شده، کسانی که نیاز به دسترسی دارند، نرخ رشد آن و غیره – و سپس ترکیبی از سیستم های امنیتی را که بالاترین سطح محافظت را ایجاد می کنند، با توجه به منابع در دسترس پیاده سازی کنید.

 

مدل امنیت لایه بندی شده

در این جدول مدل امنیت لایه بندی شده و بعضی از تکنولوژی هایی که در هر سطح مورد استفاده قرار می گیرند، ارائه شده اند. این تکنولوژی ها با جزئیات بیشتر در بخش های بعدی مورد بحث قرار خواهند گرفت.

 

ردیف

سطح امنیتی

ابزار و سیستم های امنیتی قابل استفاده

۱

پیرامون

·       فایروال

·       آنتی ویروس در سطح شبکه

·       رمزنگاری شبکه خصوصی مجازی

۲

شبکه

·       سیستم  تشخیص/جلوگیری از نفوذ (IDS/IPS)

·       سیستم مدیریت آسیب پذیری

·       تبعیت امنیتی کاربر انتهایی

·       کنترل دسترسی/ تایید هویت کاربر

۳

میزبان

·       سیستم تشخیص نفوذ میزبان

·       سیستم ارزیابی آسیب پذیری میزبان

·       تبعیت امنیتی کاربر انتهایی

·       آنتی ویروس

·       کنترل دسترسی/ تایید هویت کاربر

۴

برنامه کاربردی

·       سیستم تشخیص نفوذ میزبان

·       سیستم ارزیابی آسیب پذیری میزبان

·       کنترل دسترسی/ تایید هویت کاربر

·       تعیین صحت ورودی

۵

داده

·       رمزنگاری

·       کنترل دسترسی/ تایید هویت کاربر

 

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

 

محكم سازي ويندوز - قسمت سوم

دسترسي ها را بر «ايستگاههاي مدير» محدود كنيد

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

 

امنيت فيزيكي تمامي سيستم ها را برقرار كنيد

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

PDA ها چطور؟ چه اطلاعات حساسي در آنها وجود دارد كه مي تواند از بين رفتن آنها شما را متضرر كند ؟ اگر كامپيوتر شما روميزي است از لحاظ فيزيكي چه كسي به آن دسترسي دارد؟ براي يك مركز داده (data center) و يا يك لب تاپ مسافرتي ، امنيت فيزيكي بسيار با اهميت است. چرا بايد يك هكر خود را با استفاده از كدهاي مخرب به دردسر بيندازد، در صورتيكه به راحتي مي تواند با سرقت كليه اين اطلاعات تمامي آنچه كا نياز دارد به دست آورد؟ چه چيزي مي تواند از شبكه شما دفاع كند در حاليكه شخصي مي تواند به راحتي با استفاده از يك CD-ROM كليه اطلاعات را ضبط كند و يا كدهاي مخربي را در سيستم شما اجرا كند؟ يا با استفاده از USB و حافظه هاي فلش تمامي اطلاعات مورد نياز را در آن ذخيره كند ؟

سرور هاي خود را حتما قفل كنيد؟ تمامي درايو هاي CD-ROM و فلاپي را از سيستم هايي كه در معرض عموم قرار دارند خارج كنيد. مطمئن شويد كه دسترسي به مركز داده ها براي هركسي ممكن نيست . براي درهاي باز نگهبان بگذاريد و با آموزش آنها ، ورود افراد به مركز داده ها را به صورت متمركز كنترل كنيد و با استفاده از دوربين هاي مدار بسته تمامي اتاق ها و به خصوص اتاقهاي مهم را زير نظر بگيريد.

 

راز نگهدار باشيد

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

 

EFS را از كار بيندازيد

به جز در مواردي كه شما با توجه به اساس نامه امنيتي براي مديريت EFS استفاده مي كنيد، اين گزينه را غير فعال كنيد. EFS به طور پيش فرض فعال مي باشد، در نتيجه كاربران به راحتي مي توانند با استفاده از اين سرويس فايل هاي خود را رمزنگاري كنند بدون اينكه بدانند چگونه مي توان داده هاي از دست رفته را بازيابي كرد. شما مي توانيد EFS را در Group Policy از كار بيندازيد.

براي اينكه اين سرويس را در هر ايستگاه كاري از كار بيندازيد از Local Group Policy استفاده كنيد. ولي با دستورا آمده در زير مي توانيد اين سرويس را در سطح دامنه شبكه غير فعال كنيد:

 

تمامي شبكه هاي بيسيمي كه از ارتباطات امنيتي محكم استفاده نمي كنند را ببنديد

شبكه هاي بيسيم به راحتي قابل پياده سازي هستند. نقاط دسترسي ( Access Point) به راحتي و با هزينه بسيار كمي ، كامپيوتر هاي روميزي و لپ تاب ها را به شبكه متصل مي كنند. متاسفانه اين دستگاهها به صورت پيش فرض ، بدون هيچ امكان امنيتي پيكربندي شوند و باعث مي شوند كه به غير از كاربران اصلي ، هر كسي كه در مجاورت ما باشد بتواند به شبكه كابلي ما دسترسي پيدا كند. با آنكه براي شبكه هاي بسيم امكان پياده سازي امكانات امنيتي (از قبيل WEP ) مي باشد ولي كاربران از اينگونه امكانات استقبال نمي كنند.

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

سياستهاي شبكه هاي بيسيم بايد شما رمزنگاري (Encryption) و احراز هويت (Authentication ) باشد. اين كار را مي توانيد توسط Protected EAP و احراز هويت ها 802.1x پياده سازي كنيد. در شبكه هاي بيسيم قديمي مي توانيد براي ارتباطات شبكه هاي بيسيم و شبكه هاي كابلي از ارتباطات VPN استفاده كنيد.

 

به كامپيوتر هاي روميزي و لپ تاب هاي آسيب پذير اجازه اتصال به شبكه را ندهيد

اگر چه سياست هاي نصب اصلاحيه ها و سياست هاي آنتي ويروس مي تواند تا حدي از سيستم ها محافظت كند ولي برخي مواقع لپ تاب هايي كه به شبكه متصل مي شوند امكان داشتن ويروس را دارند و همين موضوع مي تواند امنيت شبكه ما را تحت تاثير قرار دهد. اين بدان دليل است كه اين كاربران ممكن است كه سيستم هاي خود را به روز نكرده باشند. اگر اين سيستم هاي ويروسي باشند با اتصالشان به شبكه به راحتي مي توانند سيستم هاي ديگر را نيز آلوده كنند. براي كامپيوتر هاي روميزي نيز همچنين است و در صورتيكه سيستم ها به روز نباشند همين اتفاق نيز براي آنها اتفاق خواهد افتاد.

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

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

در زير راههاي مديريت اينگونه ارتباطات آمده است :

- از گزينه هاي احراز هويت استفاده كنيد :

اگر يك كامپيوتر (كارمندي كه قصد استفاده از شبكه را دارد ، يك پيمانكاريا يك مهاجم) قصد اتصال به شبكه را داشته باشد تا هنگامي كه احراز هويت نكرده باشد نتواند از سيستم استفاده كند. اگر شما  سيستم هاي احراز هويت را مديريت مي كنيد بايد سيستم هايي را كه به طور سهوي به روز نشده اند را حذف كنيد.

 

- از گارانتي هاي شبكه اي استفاده كنيد

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

 

از Runas استفاده كنيد

اگر شما نياز داريد كه برخي مواقع حق دسترسي خود را گسترش دهيد (مثلا در حد Administrator ) از دو سطح دسترسي استفاده كنيد. با دسترسي كم از امكانات ايميل و مرور وب و گزارش هاي خود استفاده كنيد . بيشتر ويروس ها و كرم هاي اينترنتي فقط به يك حركت ساده از جمله باز كردن يك ايميل منتشر مي شوند. اگر كاربر حق دسترسي كاملي نداشته باشد چنين كدهاي مخربي نمي توانند به راحتي سيستم را تحت تاثير قرار دهند. در ويندوز 2000 و XP گزينه اي به نام Runas وجود دارد كه حق دسترسي هاي دو مرحله اي را ايجاد مي كند . اين گزينه در هنگامي استفاده مي شود كه نياز باشد يك برنامه كاربردي(Application) با استفاده از حق دسترسي بالاتر اجرا گردد.

اگر روي برنامه مورد كليك راست كنيد گزينه Runas را كليك كنيد و نام كاربري و پسورد كاربر با حق دسترسي مشخص را وارد كنيد مي توانيد برنامه فوق را با حق دسترسي كاربري داده شده اجرا كنيد.

محكم سازي ويندوز - بخش دوم

ايجاد اساس نامه هاي منطقي

تغيير سياست هاي پسوردي ممكن است تا حدي جواب دهد. اگر شما هنوز هم كاربراني داريد كه از پسورد هاي تهي و يا كاركتر هاي ساده استفاده مي كنند ، آنها را از طريق سياست هاي پسوردي وادار كنيد كه اهداف شما را پياده سازي كنند. البته قبل از اين كار تمامي جوانب را بسنجيد زيرا كه اين مساله بسيار مهم و اساسي است. هر كوتاهي در اين زمينه مي تواند ضربه اي به امنيت شبكه شما باشد.

شما مي توانيد براي شروع، ابتدا اساس نامه هاي منطقي براي گروههاي مشخص ايجاد كنيد. اين گروه ها مي توانند آن دسته از افرادي باشند كه «حق دسترسي » ها را در دامنه و برنامه هاي خاص مشخص مي كنند. معمولا اين گروه جزو مديران سيستم و شبكه مي باشند. ابتدا بايد مديران IT و زير مجموعه هاي آنان را مجاب كنيد كه از سياست هاي شما پيروي كنند. شايد لازم باشد در اين راه، به گونه اي آنها را به طور منطقي قانع كنيد كه پسورد هاي قوي مي تواند امنيت سازمان را بهبود بخشد . هر قدر در اين راه قدمهاي موثرتري برداريد، پياده سازي سياست هاي امنيتي راحت تر مي تواند باشد.

 

تغيير سياستهاي پسوردي براي نام هاي كاربري محلي

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

اين سياست ها مي تواند بسيار سخت گيرانه تر باشد. البته در بيشتر سازمان ها از نامهاي كاربري محلي در سيستم ها استفاده نمي كنند البته به جز برخي سرور ها كه نياز به نام هاي كاربري محلي دارند . به هر جهت اگر از نام هاي كاربري محلي استفاده نكنيد نيازي به اينگونه سياست هاي نداريد ولي اگر استفاده كنيد بايد با توافق طرفين پسورد هاي محدودتر و قوي تري انتخاب كنيد. سياست هاي پسوردهاي محلي كه بر كامپيوتر هايي كه به دامنه هاي ويندوز 2000 و يا ويندوز سرور 2003 الحاق مي شوند را مي توان از طريق Group Policy اعمال و مديريت كرد.

 

تغيير سياست هاي براي نام هاي كاربري منحصر به فرد

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

براي مثال ممكن است شما نياز داشته باشيد كه براي برخي از پسورد ها از رمزهاي برگشت پذير استفاده كنيد، اگر چه اين امر پيشنهاد نمي گردد و بهتر از آن است كه از جفت نام هاي كاربري استفاده كنيد، مي توانيد از طريق گزينه Store Password Using Reversible Encryption كه در تمامي نام هاي كاربري موجود در دامنه موجود است، استفاده كنيد. گزينه ديگر Password Never Expire است. به پايان رسيدن اعتبار پسورد ها براي اين است كه شما مطمئن شويد كه كاربران پسورد هاي خود را تغيير مي دهند. البته براي برخي از سرويس ها كه از اينگونه پسورد ها استفاده مي كنند مشكل ايجاد مي شود زيرا كه در زماني كه اعتبار پسورد به پايان مي رسد اين سرويس ها نمي توانند در برابر تغيير پسورد ها واكنش نشان دهند و از كار مي افتند. در اين مواقع مي توان به صورت دستي آنها را دوباره راه اندازي كرد كه البته كاريست دشوار اما براي اين دسته از نام هاي كاربري مي توان اين گزينه را فعال كرد.

البته هر دوي اين گزينه هاي مي تواند سياست هاي پسوردي را ضعيف كنند اما برخي از اينگونه تنظيمات مي تواند سياست هاي پسوردي را قوي تر كند. براي مثال گزينه Smart Card Is Required for Interactive Logon مي تواند براي برخي از نام هاي كاربري منفرد تنظيم گردد. شما مي توانيد با نصب اين دسته از كارت هاي هوشمند از دو روش تشخيص هويت براي اين دسته از نام هاي كاربري استفاده كنيد. اين كار براي نام هاي كاربري مديران و يا كاربران رده بالا مي تواند استفاده شود.

گزينه هاي ديگري نيز وجود دارد كه برخي از آنها در زير آمده است :

·                                 User Must Change Password at Next Logon

·                                 Account Is Disabled

·                                 Account Is Sensitive and Cannot Be Delegated

اين تغييرات را مي توانيد از طريق اكتيو دايركتوري و با استفاده از property نام هاي كاربري اعمال كنيد.

 

2- دسترسي هاي مديريتي راه دور را ببنديد

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

به طور ساده تر بگويم : درست است كه شما نياز به مديريت  راه دور روي يك سرور داريد ولي نبايد آن را براي بقيه كاربران باز كنيد. مديريت راه دور را ببنديد :

1-      اگر ممكن است از IPSec و يا ديگر پروتكل ها استفاده كنيد . شما مي توانيد با استفاده از IPSec برخي پورت هايي كه توسط برنامه هاي مديريت راه دور استفاده مي شوند را ببنديد و فقط به برخي از مديران ايستگاههاي كاري خاص اجازه دسترسي و مديريت راه دور دهيد. براي مثال دسترسي به پورت 3389 ، كه براي برنامه Terminal Service استفاده مي شوند ، را ببنديد و فقط آن را براي برخي از ايستگاههاي كاري باز كنيد.سياست هاي IPsec فقط مي تواند روي سيستم هاي ويندوزي 2000 ، 2003 و XP اعمال گردد.

 

 

2-      در بيشتر مواقع ، فقط برخي از نام هاي كاربري اجازه دسترسي به بقيه كامپيوتر ها را در شبكه دارا مي باشند. بقيه نام هاي كاربري را قفل كنيد. در دامنه هاي ويندوز 2000 و يا ويندوز 2003 سرور با استفاده از Access This Computer from the Network مي توانيد كاربران را براي دسترسي هاي راه دور كنترل كنيد. لازم به ذكر است كه اين گزينه را مي توانيد با استفاده از مسير زير پيدا كنيد :

Computer Configuration è Windows Setting è Security Setting è Local Policies è User Right Assignment è Access This Computer from the Network

 

 

 

3-      با استفاده از مجوزهاي كاربران، از دسترسي آنها به Remote Desktop و يا همان ترمينال سرويس جلوگيري كنيد. اين كار را مي توانيد توسط گزينه Allow Log On Through Terminal Services انجام دهيد:

Computer Configuration è Windows Setting è Security Setting è Local Policies è User Right Assignment è Allow Log On Through Terminal Services

 

 

4-      دسترسي راه دور را از طريق solicited Remote Assistance روي سرور ها كنترل كنيد. Remote Assistance براي ويندوزي هاي XP و 2003 ابزاري است كه به ويندوز اين امكان را مي دهد كه با استفاده از يك ايميل يا IM و يا يك فايل Remote Assistance را فراخواني كند. يك كاربر معمولي به يك كاربر ديگر اجازه مي دهد كه از راه دور كامپيوترش را كنترل كند. همين موضوع اگر به طور منطقي كنترل نگردد ، مي تواند باعث حادثه اي ناگوار شود. مديريت خاصي همچون محدود كردن استفاده آن توسط كاربران مجاز ، محدود كردن مدت زمان استفاده  و آموزش تمامي كاربران براي استفاده درست از آن ، را مي توان روي آن اعمال كرد. براي مديريت آن مي توانيد از مسير زير استفاده كنيد :

Computer Configuration è Administrative Templates è System è Remote Assistance è Solicited Remote Assistance Properties

 

5-      شما حتي مي توانيد Remote Assistance را غير فعال كنيد. اين خصيصه باعث مي شوند كه پيشنهادي براي استفاده از Remote Assistance توسط كاربران داده نشود. (اين درخواست بايد توسط كاربر داده شود)

6-      سرور هاي حساس را از طريق خود كنسول سرور مديريت كنيد. فقط به دليل اينكه شما بايد چندين سرور را مديريت كنيد استفاده از مديريت هاي راه دور لازم مي گردد و اين بدان معني نمي باشد كه تمامي سرور ها بايد از همين طريق مديريت گردند. بسيار مراقب باشيد كه سرور هايي كه نقش حساسي دارند و يا داده هاي حساسي را نگهداري مي كنند فقط از طريق كنسول خود سرور مديريت گردند و پسورد مديريت آنها را از طريق يك كامپيوتر ديگر و در طول شبكه هيچگاه وارد نكنيد.

محكم سازي ويندوز (بخش اول )

فورا دست به كار شويد !

همانطور كه همه مي دانيم ، ما براي زنده ماندن صنعت IT خود، نيازمند آنيم كه مشكلات امنيتي آن را حل كنيم.  ما بايد ياد بگيريم كه بايد به جنگ چه كساني برويم .

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

اين سري از مقالات كه از كتاب Hardening Windows System تهيه شده است و درباره محكم سازي تمامي انواع ويندوز هاي شركت مايكروسافت مي باشد كه قصد ما بر اين است تا قسمت هايي از اين كتاب با ارزش را بيان كنيم. اميد است كه روشنگر راه بي پايان كساني باشد كه قدم در اين راه نهاده اند.

 

بخش اول

اين كار ها را همين حالا انجام دهيد !

پيشگفتار

ما يك مشكل بزرگ داريم. ما معمولا نمي دانيم كه براي امن كردن سيستم هاي ويندوزي خود به چه چيزهايي نياز داريم. ما فقط مي دانيم كه بايد يك كارهايي انجام دهيم ولي نمي دانيم كه چه كاري ! همانطور كه براي جلوگيري از سرقت هاي خانگي راهي وجود ندارد براي امن كردن 100 درصد سيستم هاي ويندوزي و يا هر سيستم عامل ديگري راهي وجود ندارد. البته ما نيز در اينجا با طرح سوال هاي زيادي اين مساله را تا حدي تفهيم خواهيم كرد و خواهيم گفت كه چگونه سيستم هاي ويندوزي خود را از انواع حملات محافظت كنيم.

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

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

شما  به يك برنامه جامع و فراگيري براي هر مكاني كه اطلاعات در آن نقش دارد، نياز داريد. در پردازنده مركزي (mainframe ) ، در سرور وب لينوكس ، در Active Directory ، در PDA و بله حتي در مغز ها و ذهن هاي كارمندان، شركا و مشتريان خود !

ما مي دانيم كه شما بايد چه كاري انجام دهيد، بنابراين اجازه بدهيد كه با هم آن را دنبال كنيم.

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

فراموش نكنيد كه امن كردن سيستم هاي اطلاعاتي شما به سادگي نفس كشيدن مي باشد اما مطمئنا شما به تنهايي نمي توانيد تمامي اين موارد را انجام دهيد. اما شما مي توانيد تاثيرات قابل توجهي را روي وضعيت امنيتي شبكه خود با انجام برخي كنترل هاي امنيتي ، ايجاد كنيد.

براي شروع ده مورد از كارهايي كه شما بايد انجام دهيد را آورده ايم كه با انجام آنها به طور قطع وضعيت امنيتي بهتري پيدا مي كنيد.

 

سياست ها كلمات عبور خود را قوي تر كنيد

يك سياست كلمات عبور قوي از چند طريق امكان پذير است. به نظر من يك سياست كلمات عبور قوي شامل موارد زير است :

-          اصرار بر تغيير مكرر پسورد ها

-          نياز به پسورد هايي با طول بلند و مركب از حروف بزرگ و كوچك، ارقام و كاراكترهاي مخصوص

-          عدم اعطاي مجوز به پسورد هاي پوچ

-          چك كردن پسورد ها براي تكراري نبودن آنها

-          جلوگيري از عدم شباهت پسورد ها به نام كاربري (User ID )

-          اجازده ندادن به كلماتي كه در واژه نامه ها موجود مي باشد.

 

شما مي توانيد با استفاده از Group Policy Object (GPO) موارد ذكر شده در بالا را بر روي دامنه پيش فرض سرور خود اعمال كنيد:

 

 

شكل 1 – اجراي تغييرات سياست هاي كلمات عبور توسط

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

من مي دانم كه ممكن شما نمي توانيد اين كار را به تنهايي براي تمامي سازمان انجام دهيد. ولي شما به سادگي مي توانيد با تغيير سياستهاي پسوردي در دامنه ويندوز اين كار را انجام دهيد. همين كارها باعث مي شود كه بسياري از كاركنان خود را در برابر حملات بيمه كنيد. پس مطمئن باشيد و انجام دهيد.

البته شما بايد قادر باشيد و بتوانيد سياسيتهاي امنيتي را روي دامنه خود اعمال كنيد. يعني اينكه بتوانيد از طريق دامنه ويندوز تغييرات را روي سياستهاي پسوردي طوري اعمال كنيد كه نتيجه آن روي تمامي نام هاي كاربري موجود در سرور اعمال گردد، حتي اين موضوع بايد روي نام هاي كاربري محلي نيز اعمال گردد. شما مي توانيد سياست هاي پسورد هاي قوي را به راحتي از طريق ويندوز اعمال كنيد. مثلا اگر شما تصميم داريد كه تمامي مديران سازمان هر 10 روز يك بار پسورد خود را تغيير دهند و يا اينكه از پسورد هايي با 16 كاراكتر استفاده كنند به راحتي مي توانيد آن را از طريق سياست هاي پسوردي ويندوز اعمال كنيد. البته اين موضوع بايد براي هر كسي كه به طوري با سرور در تماس است،  براي مثال مسوؤل گرفتن داده هاي پشتيبان، اعمال كنيد.

اگر كمي فكر كنيد ، متوجه خواهيد شد كه چرا داشتن سياست هاي پسوردي مي تواند مهم باشد. مثلا شما فكر كنيد كه اگر پسورد هاي يكي از سرور ها توسط يك مهاجم لو برود چه اتفاقي مي افتد.

 

توجه كنيد !

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

 

البته تغيير اصلي سياستهاي پسوردي كاري است كه بايد در آينده انجام گيرد و البته تغيير و ايجاد پسورد هاي پيچيده براي مديران سطح بالا، ممكن است همراه با اجازه، تاييد و كارهايي از اين قبيل همراه باشد. ولي براي اينكه پسورد هاي پيچيده و در نهايت شبكه امني داشته باشيد بايد تمامي اين راهها را بپيماييد.

فازرها( Fuzzer) چه هستند؟

اگر می دانید ما برای شما لیست تقریبا کاملی را برای شما تهیه کرده ایم اگر هم شما اطلاع چندانی از این ابزار ندارید ما تعریف کوتاهی را برای شما عزیزان را در زیر قرار دادیم تا با این ابزار تا حدودی اشنایی پیدا کنید سپس خودتان تشخیش دهید که ایا باید دنبال کسب اطلاعات بیشتر در این زمینه باشید یا نه.

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

از كار افتادن برنامه و یا اشتباهات برگشتی  از سرورها (در این حالت برنامه های کاربردی) نشان دهنده ی کشف یک ایراد توسط این برنامه ها هستند.

فازرها Fault Injectors هم نام گرفته اند چون اساس کار آنها با فرستادن یک اشتباه و ایراد به برنامه ی کاربردی و نشان دادن  عکس العمل آن است. این برنامه ها برای پیدا کردن  ایرادات مربوط به

BufferOverflow.1

DoS.2

SQL Injection.3

Xss.4

Format String Bugs.5

بسیار خوب و  کاربردی هستند و برای یافتن ایرادت مربوط به نشت اطلاعات و ایرادات مربوط به رمز گذاری ضعیف عمل می کنند.

برنامه های زیر از معروفترین برنامه ها برای اینکار هستند.

1.مجموعه ای از اسکریپت ها  پایتون برای fuzzing:

http://lxapi.sourceforge.net/

 

2.برنامه ی Mangle از این برنامه برای پیدا کردن  باگ های نه چندان مشهور IFRAME اینترنت اکسپلورر استفاده شده است

http://lcamtuf.coredump.cx/soft/mangleme.tgz

 

3. برنامه ی SPIKE :مجموعه ی چندین فازر شرکت Immunity و استفاده شده برای پیدا کردن حمله DoS در سرویس RDP Kernel موجود در ویندوز اکس پی سرویس پک 2 شرکت مایکروسافت.

http://www.immunitysec.com/downloads/SPIKE2.9.tgz

 

4.برنامه ی PROTOS WAP: این برنامه جزو مجموعه فازرهای پروژه PROTOS  است  برایfuzzingدر WAP بکار می رود.

http://www.ee.oulu.fi/research/ouspg/protos/testing/c04/wap-wsp-request/c04-wap-r1.jar

 

5.برنامه ی PROTOS HTTP-reply : این برنامه یکی دیگر از فازرهای پروژه ی PROTOS است که برای حمله به پاسخگویی پروتکل HTTP طراحی شده است. از این ابزار بیشتر برای  پیدا کردن  ایرادات مربوط به مرورگرها بکار می رود.

http://www.ee.oulu.fi/research/ouspg/protos/testing/c05/http-reply/c05-http-reply-r1.jar

 

6.PROTOS LDAP:فازری برای LDAP ولی نسبت به بقیه فازر های این شرکت موفقیت چندانی کسب نکرده و از همه گمنام تر است.

http://www.ee.oulu.fi/research/ouspg/protos/testing/c06/ldapv3/c06-ldapv3-enc-r1.jar

 

7.برنامه ی PROTOS SNMP:یک SNMP فازر قدیمی است که از سال 2002 بوجود آمده و ایرادات مختلفی را بر روی لوازم و تجهیزات مربوط به شبکه کشف کرده است.

http://www.ee.oulu.fi/research/ouspg/protos/testing/c06/snmpv1/c06-snmpv1-req-app-r1.jar

 

8.برنامه یPROTOS SIP: از این برنامه برای فازینگ بر روی تمامی تجهیزات VOIP SIP که در همه جا دیده می شود استفاده می شود.

http://www.ee.oulu.fi/research/ouspg/protos/testing/c06/snmpv1/c06-snmpv1-req-app-r1.jar

 

9.برنامه ی PROTOS ISAKMP: فازری که برای حمله به IPSec در حال اجرا طراحی شده است.

http://www.ee.oulu.fi/research/ouspg/protos/testing/c09/isakmp/c09-isakmp-r1.jar

 

10.برنامه های RIOT&faultmon:برای حمله به پروتکل های Telnet, HTTP, SMTP بکار می رود. در ضمن این ابزار توسط اقای Riley Hassell هنگامی که درشرکت امنیتی معروف eeye کار می کرد  برای پیدا کردن باگ IIS .Printer overflow بکار گرفته شده است و در ضمن همین برنامه هم در کتابshellcoders handbook پوشش داده شده است.

http://media.wiley.com/product_ancillary/83/07645446/DOWNLOAD/Source_Files.zip

 

11.برنامه یSPIKE Proxy:این فازر  همانند SPIKE  است و عملی مشابهه آن را انجام می دهد.

http://www.immunitysec.com/downloads/SP148.zip

 

 

12.برنامه یTag Brute Forcer:

یک فازر ترس آور ساخته ی Drew Copley از شرکت امنیتی eeyeکه  برای حمله به ActiveX applications سفارشی شده است.

از این ابزار برای دسته ای از باگ های زشت وزننده ی مرورگر مایکروسافتی استفاده شده است.  این مرورگر همچنین  دارای توانایی ویژه ای برای کشف  باگ های مربوط بهheap overflows است.

http://www.eeye.com/html/resources/downloads/other/TagBruteForcer.zip

 

13.برنامه یFileFuzz: یک نوع فازر برای فایل های بایناری ویندوزی  متعلق به شرکت iDefense که دارای اینترفیس گرافیکی بسیار جالبی و قشنگی است. که بتازگی اقای Jack Koziol  از آن برای پیدا کردن چند باگ در برنامه ی word استفاده کرده است.

 http://www.idefense.com/iia/doDownload.php?downloadID=3

 

14.برنامه یSPIKEFile: فازری مختص به فایل های بایناری لینوکس و حمله به آنها در ضمن محصول شرکت iDefense است.file format fuzzer for attacking ELF (Linux) binaries

http://www.idefense.com/iia/doDownload.php?downloadID=14

 

15.برنامه ی NotSPIKEFile: برای شروع بجای استفاده از SPIKE می توان از این نرم افزار استفاده کرد.

http://www.idefense.com/iia/doDownload.php?downloadID=10

 

16.برنامه ی Screaming Cobra: استفاده ی بیشتر از این برنامه در زمینه پیدا کردن باگ های Cgi است.این برنامه اسکریپت کوچکی است  که به آسانی تغییرپذیر و قابل توسعه است.

http://www.dachb0den.com/projects/screamingcobra/screamingCobra-1.00.tar.gz

 

17.برنامه ی WebFuzzer:

یک فازر برای پیدا کردن  حفره ها موجود در برنامه هاي كاربردي وب است که بسیار بهتر از فازهای ارزان قیمت تجاری است.

http://gunzip.altervista.org/webfuzzer/webfuzzer-latest.tar.gz

 

18.eFuzz:یک فازر هوشمند برای پروتکل Tcp/ip که برای استفاده بسیار راحت است.

http://gunzip.altervista.org/webfuzzer/webfuzzer-latest.tar.gz

 

19.برنامه ی Peach Fuzzer :

بزرگ ترین فازری که تا بحال نوشته شده و توسط اقای Michael Eddington نوشته شده که در ادرس زیر می توانید ان را بیابید:

http://peachfuzz.sourceforge.net/

 

20.و اخرین مورد برنامه Fuzz است  که توسط دکتر بارتون میلر  در 1990 نوشته شده است و از ادرس زیر قابل دریافت است.

http://www.cs.wisc.edu/~bart/fuzz/fuzz.html

 

حالا دیگر بروید شروع به کندو کاش کنید ببینید چه می یابید:)

منبع وبلاگ اقای Jack Koziol  نویسنده ی کتابshellcoders  handbook

 

 

بررسی اجمالی ساختار امنیتی در سیستم عامل فدورا

سیستم عامل فدورا که بعد از ردهت گسترش یافت تاکنون توجه بسیاری ار کاربران ٬ چه کاربران فعلی لینوکس و چه کاربران سیستم عامل ویندوز را به خود جلب نمود . در این مقاله سعی خواهم کرد که ویژگی ها مهم و جدید امنیتی این سیستم عامل را مورد بررسی قرار دهم .

در واقع این چند ویژگی که به آن ها اشاره خواهم نمود توسط متخصصین سیستم عامل فدورا ایجاد گردیده است :

 

:: Exec-Shield

 

Exec-Shield بر این اساس فعالیت می کند که حافظه اطلاعات را با حالت non-executable یا غیر قابل اجرا  و حافظه برنامه ها را با حالت non-writeable یا غیر قابل نوشتن ٬ بر این نحو برچسب گذاری می نماید . هم چنین Exec-Shield آدرس هایی که قسمت های مختلف برنامه ها در آن جا قرار گرفته اند را به صورت تصادفی قرار می دهد . این ویژگی بسیاری از مشکلات امنیتی Buffer OverFlow را از بین می برد ٬ به این دلیل که بسیاری از کراکر ها نمی توانند حدس بزنند قسمت هایی که حالت اجرایی دارند در کدام قسمت حافظه قرار می گیرند . قابل ذکر است که Exec-Shield جهت سیستم های x86 است .

 

:: (PIE) Position Independent Executables

 

مانند Exec-Shield به حافظه اطلاعات اجازه می دهد که بطور تصادفی به محل های متفاوت جابجا گردند ٬ PIE به برنامه نویس ها اجازه می دهد که قسمت های اجرایی کد هایشان ٬ هر زمان که اجرا می گردند در قسمت های مختلف حافظه قرار بگیرند . با این حالت فرد نفوذگر نمی تواند حدس بزند که در کدام قسمت حافظه برنامه اجرا شده و امکان ایجاد اکسپلویت را خیلی دشوار و یا تقریبا غیر ممکن می سازد .

 

:: ELF ( Executable and Linkable Format )

 

یکسری تغییرات در کامپوننت فایل که ساختار آن را محافظت می نماید .

 

:: SELinux

 

SELinux در مشارکت با NSA و دیگر توسعه دهندگان نظیر Gentoo و Debian ایجاد شد . SELinux یا

Security Enhaced Linux ٬ کاربران و پروسه ها را با مشاهده همه اتفاقات سیستم محافظت می نماید ٬ از باز نمودن فایل گرفته تا استفاده از سوکت . کاربران می توانند SELinux مدنظر خود را با سیاست های دلخواه تعریف نمایند .  به طور پیش فرض ٬ فدورا خود دارای سیاست امنیت ست که Daemon های شبکه را که  دارای ضریب خطر بالا تری جهت نفوذ می باشند را محافظت می نماید .

به طور مثال ٬ وب سرور آپاچی در چهار حالت محافظت گردیده است : قسمت های اجرایی آپاچی ٬ httpd

هنگام کامپایل شدن توسط PIE و Exec-Shield محافظت گردیده است . فایل باینری اجرایی نیز توسط ELF محافظت شده است .

 

اما توضیحات تخصصی در مورد هر یک را در مقالات بعدی ارائه خواهم داد .

 

Resource :

RedHat Offical WebSite

 

Copyright (c)  2006  Ehsan Omidvar

بررسی ساختار امنیتی Postfix

مسلما کاربران حرفه ای لینوکس ٬ با نرم افزار Postfix آشنا بوده و در مورد عملکرد و ویژگی های آن اطلاعاتی دارند . اما جهت آشنایی کاربران دیگر٬ توضیحاتی مختصر در مورد آن خواهم داد .

Postfix نرم افزاری « اپن سورس » با عنوان mail transfer agent ( MTA ) و یا نماینده انتقال ایمیل است٬ همان طور که از نام آن به نظر می رسد جهت حمل و مسیر یابی ایمیل استفاده می شود و همواره از آن به عنوان نرم افزاری سریع با مدیریت آسان و امنیت بالا یاد می گردد که با نام های VMailer و IBM Secure Mailer نیز شناخته شده است .

 

سیستم Postfix

Postfix از سیستم پیچیده ای تشکیل یافته است به نحوی که نسخه ابتدایی آن حدودا سی هزار خط کد در برنامه نویسی آن بود . قاعدتا در یک سیستم پیچیده نبایستی امنیت آن بر محور یک مکانیزم امنیتی باشد که در غیر این صورت ممکن است ایجاد یک خطا کلا سیستم پست الکترونیکی را از کار بیندازد ٬ قابل ذکر است که Postfix از چندین لایه جهت کنترل آسیب های نرم افزاری و دیگر خطاها استفاده می کند .

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

 

پروسه های مستقل

اما مکانیزم دیگری که در Postfix پیاده شده است ٬ استفاده از پروسه های مستقل جهت جداسازی فعالیت پروسه ها از یگدیگر است ٬ بخصوص اینکه مسیر مستقیمی از شبکه به برنامه های داخلی که ساختار امنیتی حساسی دارند وجود ندارد . چنانچه شخصی بخواهد که به Postfix نفوذ کند ابتدا بایستی به پروسه های مختلف وارد شود ٬ بعضی از قسمت های Postfix حالت Multi-Threat را دارند و از طرفی تمام برنامه هایی که با دنیای بیرون در ارتباط هستند با حالت Single-Threat پیش می روند .

 

کنترل برنامه ها

هیچ کدام از برنامه های delivery در Postfix تحت کنترل یک « user process » اجرا نمی گردند . بیشتر برنامه های Postfix  تحت یک Daemon ( Daemon به زبان ساده پروسه ایست که در Background سیستم عامل اجرا شده و غالبا تحت کنترل کاربر نیستند ) مقیم در سیستم ٬ در یک محیط کنترل شده اجرا می گردند .

 

مستقل از set-uid

نکته جالب دیگر این است که هیچ کدام از برنامه های Postfix ٬ set-uid ( setuid و هم خانواده آن setgid ٬ اکثرا به این دلیل به کار می رود که کاربر بتواند فایل های باینری را با حالتی موقت اجرا کند )  نیستند ٬ در واقع setuid موجب پیدایش اشکالات بیشتری می شود تا اینکه بخواهد سودمند باشد ! هر زمانی که یک ویژگی جدید به سیستم عامل یونیکس اضافه می شد ٬ set-uid باعث مشکل امنیتی می گردید : shared libraries ٬  

پشتیبانی چند زبانه ٬  فایل سیستم /proc و ... که همه این موارد نمونه ای از آن ها بود .

 

چندی دیگر از ویژگی ها

 

:: حافظه جهت رشته ها و بافرها به طور دینامیک سازماندهی می شود ٬ به این دلیل که از مشکلات امنیتی buffer overrun جلوگیری گردد .

:: خط های طولانی در پیغام ها ٬ به قسمت هایی با سایز منطقی تقسیم بندی شده است.

 

و دیگر ویژگی های امنیتی که Postfix را در مقابل حملاتی نظیر buffer overrun مقاوم نموده است .

 

 

Resources :

http://www.postfix.org/

http://www.wikipedia.org/

 

Copyright (c)  2006  Ehsan Omidvar

ادامه . . .

 

 

---------------------------------4.4.3

:polimorphism

 

 این مفهوم ویا ویژگی روش شئ گرا امکان پیاده سازی چند تابع با یک نام و ساختارهای متفاوت را برای برنامه نویس فراهم میکند.

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

برای درک مشکلات ذکر شده توجه شما را همان مثال ماشین ها جلب مینماییم.

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

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

برای رفع این مشکل بحث چند ریختی مطرح شده است  یعنی برنامه نویس میتواند تابعی هم نام با تابع حرکت کردن یا ایستادن ولی با ساختای متفاوت ایجاد کند.

برای پیاده سازی این مفهوم ا دو عبارت زیر استفاده میکنیم:

--------------------------------------

Over load  نام یکسان  (پارامتر ها متفاوت)

 

 

 

 

              پیاده سازی یکسان

 

 

 

 

-------------------------------------------------

 

Over write نام یکسان   (پارامترها یکسان)

            

 

 

 

              پیاده سازی متفاوت

 

 

 

----------------------------------------5.3

 

 

روش برنامه نویسی شئ گرا:

برای طراحی یک برنامه به روش ساخت یافته لازم بود که ابتدا برنامه به چند زیر برنامه تقسیم شود و سپس هر از زیر برنامه ها نیز به چند زیر برنامه دیگر تبدیل می شدند تا در نهایت به چندین تابع میرسیدیم وسپس آنها راپیاده سازی میکردیم اما در روش شئ گرا باید با شیوه ای مشابه به توابع مورد نیاز رسید وسپس آنها را در یکسری کلاس پیاده سازی کنیم که البته مهمترین بخش این روش مرحله انتخاب اشیاء است.

برای اینکه بتوانیم بهترین انتخاب را داشته باشیم روش های متعددی مطرح شده است که در این قسمت به بررسی روش آقای کد میپردازیم:

  codd

میگوید برای رسیدن به بهترین و کمترین تعداد کلاس باید سه دسته کلاس زیر را در برنامه تعریف کرد:

PERSON(1

 place(2

things event(3

 

یعنی بهتر است ابتدا برای هر یک از اشخاص یا انسان های برنامه یک کلاس طراحی کنیم

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

 

نويسنده: سيدمحمود شجاعي كياسري

ادامه . . .

 

--------------------------------------2.4.3

Message passing

 

یک مسیج یک جنرال متد است که باعث می شود یک شئ یک رفتار خاص را انجام دهد وتفاوت آن با یک متد این است که یک مسیج دستور انجام یک عمل خاص است ولی یک متد شیوه ی اجرای آن عمل است.

یکی از کاربرد های این شیوه در سیستم های شبکه ای امروزی میباشد.

فرض کنید در یک شبکه برنامه ای به روش ساخت یافته ایجاد شده است و در یک لحظه خاص 100 تابع در حال اجرا شدن میباشند. اگر هر یک از توابع فقط به یک پارامتر نیاز داشته باشند واین پارامتر هم از نوع آرایه یا رکورد نباشد ویک متغیر معمولی باشد باید 100 متغیر هم زمان به 100 تابع پاس شوند وبعد هم نتایج توابع بازگردانده شوند در حالی که اگر از روش شئ گرا استفاده می شد تمام این توابع توسط 100 پیام یا میسج انجام میشدند زیرا تمام توابع چون با داده ها در یک کلاس کپسوله شده اند به آنها مستقیماً دسترسی دارند. 

 

 

 

 

 

 

 

 

 

 

---------------------------------3.4.3

 

:Inheritance(2

 

 

وراثت نیز یکی از مفاهیم مهم و پر کاربرد در روش شئ گرا می باشد.

این مفهوم از زمانی بوجود آمد که در یک سیستم کلاس هایی وجود داشتند که یکی از آنها دارای بسیاری از ویژگی های سایر کلاسها ی دیگر بود.

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

به این مثال توجه کنید:

 

تصور کنید در برنامه ای نیاز به تعریف چندین کلاس برای ایجاد شئ های ماشین های مختلف داریم. در حالت عادی باید شروع به تهریف این کلاس ها کنیم و برای هر یک از آنها یکسری خصوصیات ورفتار ایجاد کنیم اما اگر کمی دقت کنیم متوجه خواهیم شد که بسیاری از این عناصر بین تمام انواع ماشین ها مشترک است.

عناصری از قبیل:

خواص:

نام

رنگ

شماره شاسی

تعداد سرنشین

و . . .

رفتارها:

حرکت کردن

ایستادن

مسافر حمل کردن

و . . .

پس چرا باید این عناصر را برای هر کلاس مجدداً ایجاد کنیم ؟

آیا بهتر نیست سیستمی اتخاذ شود تا این عناصر مشترک فقط برای یک کلاس تعریف شود ولی در همه کلاس ها استفاده شود؟

این سیستم همن سیستم وراثت است.

به این ترتیب که برنامه نویس تمامی عناصر مشترک را در کلاس پدر از نوع حفاظت شده تعریف میکند. در این سیستم دو دسته از کلاس ها ایجاد میشوند:

 

                                        base class or super class(1

drive class or sub class(2

                                                                

 

 

               base class

         ماشین

 

        سواری

       کامیون  

 

 

 

 

           بنز

        بی ام و

                

 

 

Sub classes

 

نويسنده: سيدمحمود شجاعي كياسري

 

ادامه . . .

 

 

 

4.3  ویژگی ها و مفاهیم روش شئ گرا :

این روش دارای یکسری مفاهیم و ویژگی هاست ولی این مفاهیم از ابتدای ایجاد این روش به وجود نیامدند بلکه به مرور زمان وبا پیشرفت این روس به وجود آمدند.

حال به بررسی اجمالی هر یک از این مفاهیم می پردازیم.

 

 

encapsulation(1

Inheritance (2

polimorphism(3

 

--------------------------------------1.4.3

 :encapsulation(1

 کپسوله سازی مکانیزمی است که به موجب آن داده ها و دستورالعمل ها یی که روی آنها کار میکنند رامجتمع و پیوند میدهند و هر دو را دور از دسترس محیط خارجی قرار داده و از استفاده بی مورد آنها جلوگیری می کند.

در واقع در این مکانیسم داده ها و دستورالعمل ها همگی مثل یک جعبه سیاه هستند که همه داده ها و دستورالعمل ها در آن وجود دارد و هنگامی که به این شکل به هم پیوند می خورند یک شئ تشکیل می شود.

داستان کپسوله سازی از آنجایی شروع شد که در برنامه سازی ساخت یافته یک ساختمان داده مثل لیست پیوندی بین چندین تابع به اشتراک گذاشته میشد.

هر یک از این  توابع به طور مستقیم به این ساختار دسترسی داشتند . در نتیجه اگر یکی از توابع یک تغییر اشتباه در ساختار ایجاد کنند سایر توابع نیز به طور خودکار دچار اشتباه می شدند.

روش شئ گرا برای حل این مشکل مکانیزم کپسوله سازی را مطرح کرد ودر واقع لیست پیوندی را از ساختار داده ای به یک کلاس تبدیل کرد.

به این ترتیب کلیه تغییراتی که در لیست ایجاد میشود توسط خود شئ ایجاد میشود و احتمال ایجاد اشتباه تقریباً از بین میرود.

در واقع شئ مورد نظر خودش روابطش را کنترل میکند.

این مکانیزم برای عناصر یک کلاس سه سطح دسترسی تعریف میکند که عبارتند از:

   (عمومی)Public

    (اختصاصی)Private

  (حفاظت شده)Protected

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

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

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

در اینجا سئوالی ایجاد می شود که رابطه بین اشیاء چگونه ایجاد می شود؟

یعنی مثلاً شئ لست پیوندی از کجا متوجه میشود که مثلاً باید یکی از نود هایش را حذف کند؟

در روش شئ گرا این وظیفه را  پیام ها بر عهده دارند که در ادامه به توضیح این مکانیزم میپردازیم.

نويسنده: سيدمحمود شجاعي كياسري

ادامه . . .

کلاس (شئ) ماشین

خصوصیات:(properties)

نام

رنک

شماره شاسی

تعداد سرنشین

و . . .

رفتارها:(metod)

حرکت کردن

ایستادن

حمل مسافر

تعویض دنده ها

و . . .

 

 2.3  معرفی ساختار کلاس ها:

همانطور که قبلاً گفته شد ایجاد کلاس های جدید اساس برنامه نویسی به روش شئ گراست .

حال به معرفی ساختار یک کلاس  و ویژگی های آن میپردازیم.

در برنامه نویسی ساخت یافته هر برنامه را می توانستیم به دو بخش اصلی که کاملاً از هم جدا بودند تقسیم کنیم:

              

                       1-الگوریتم ها                                 2-داده ها

ولی در روش شئ گرا این دو بخش را در یک بسته به نام کلاس قرار داده ایم وبین آنها یک ارتباط دائمی برقرار کرده ایم . به این بسته ها کلاس میگوییم.

الگوریتم ها

Metod)

 یا 

Bihaviors)

داده ها

State) 

یا

(properties

 

 

در هر برنامه شئ گرا اغلب  نیاز به تعریف چندین کلاس مختلف داریم و برای استفاده از آنها کافی است از آنها یک نمونه یا instance بگیریم.

در واقع کلاس یک نوع abstract data type  است که دارای یکسری property  میباشد. بنا براین در هر زبانی برای تعریف یک نمونه کافی است یک متغیر از نوع آن کلاس تعریف کنیم.

 

3.3  پیاده سازی اشیاء :

در عمل به ازای تعریف هر نمونه جدید (شئ جدید) تمام خصوصیات کلاس مورد نظر برای آن شئ  تعریف میشوند ولی الگوریتم ها بین تمامی اشیاء مشترک است (share)

c

b

a

و هر گاه یکی از آنها به یک metod  نیاز داشته باشند یک اشاره گر (this) که از آن شئ خاص به metod  ایجاد میشود وارتباط لازم را بین داده ها و الگوریتم ها ایجاد می کند.

Instance 2         instance 3                         Instance 1

c

b

a

c

b

a

 

 

 

 

 

a

 

b

 

  C  

 

F1();

F2();

.

.

.

 

 

Class a

 

     Properties   

 

 

 

 

 

    Metods

 

 

 

 

 

نويسنده: سيدمحمود شجاعي كياسري

روش برنامه نویسی شئ گر ا

بررسی روش شئ گرا:

بعد از بررسی اجمالی تاریخچه برنامه نویسی ومعرفی اصول روش ساخت یافته میخواهیم به بررسی روش شئ گرا بپردازیم.

روش شئ گرا از چند دیدگاه قابل بررسی است که در ادامه به تبیین هر یک از دیدگاه ها خواهیم پرداخت.

1.3  اهداف روش شئ گرا:

هدف اصلی این روش که باعث ایجاد تفاوتهای  ساختاری با روش ساخت یافته شداین بود که برنامه ها به واحدهای کوچکتری به نام شئ تقسیم شوند که وظیفه ایجاد برنامه  و روابط بین اشیاء بر عهده خود اشیاء باشد تا از این طریق نه تنها از حجم کد نویسی کم شود بلکه برنامه نویس بیشتر زمان وفکر خود را روی طراحی سیتم مورد نظر متمرکز کند.

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

زمانی که توسط این دیدگاه اشیاء مورد نیاز توسط برنامه نویس ایجاد گردد  وظیفه سیستم تنها کنترل روی اشیاء وروابط بین آنها خواهد بود.

به عنوان مثال یک پنجره را در نظر بگیرید .

رسم شئ پنجره بر عهده خودش میباشد و برنامه نویس هنگام طراحی سیستم هیچگونه نگرانی راجع به اینگونه مسائل نخواهد داشت.

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

روش برنامه نویسی شئ گرا میگوید برای دستیابی به اهداف فوق لازم است به بالاترین سطح از "Abstraction" برسیم.

 حال به توضیح بیشتر راجع به مفهوم "abstraction"  میپردازیم.

Abstraction در لغت به معنای تجرد یا انتزاع است.

وبه مفهوم یک برداشت واحد از مجموعه مشاهدات میباشد.

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

حال به توضیح این مفهوم در برنامه نویسی شئ گرا میپردازیم.

در این روش برنامه نویس باید سعی کند اشیایی راتعریف کند که برنامه را از تعریف اشیاء بیشتر بی نیاز کند. در واقع او همواره  باید به دنبال اشیاء مادر بگردد.

یعنی بعد از یافتن توابع و داده های مورد نیاز برای پیاده سازی سیستم مورد نظر باید مجموعه ای از توابع و داده ها را توسط "یک" کلاس (شئ) پیاده سازی کند.(انتزاع)

ضمناً این کلاس برای اجرای توابع درونی خود باید حتی المقدور به کلاس های دیکر نیازی نداشته باشد وبه نوعی مستقل از سایر اجزای سیستم باشد واین همان مفهوم تجرد یا abstraction    در برنامه نویسی شئ گرا می باشد.

به عنوان مثال فرض کنید در حال نوشتن برنامه ای هستید که بخشی از آن مربوط به طراحی سیستم یک ماشین است.

هر ماشین دارای یک سری خصوصیات از قبیل : نام و رنگ و حجم موتور و تعداد سرنشین و شماره شاسی و . . . میباشد.

در عین حال دارای مجموعه ای از رفتارها است که باید  توسط توابع برای ماشین پیاده سازی شود.

 رفتارهايي از قبیل:

  حرکت کردن و ایستادن و حمل مسافر و شتاب داشتن و تعویض دنده هاو . . .

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

یعنی در پایین ترین سطح از abstraction  به طراحی بپردازیم.

ولی اگر به روش شئ گرا به طراحی سیستم بپردازیم میتوانیم یک کلاس به نام ماشین به شکل زیر طراحی کنیم دراين  حالت که توابع به شکل زیر مجموعه ای از یک شئ در آمده اند میتوان گفت که به سطح بالاتری از abstraction  رسیده ایم. همان طور كه گفته شد در اين روش نیازی به ارسال پارامتر ها نیست زیرا تمام توابع به تمام خصوصیات دسترسی دارند.

نويسنده: سيدمحمود شجاعي كياسري

روش برنامه نویسی ساخت یافته

توضیحاتی درمورد برنامه نویسی ساخت یافته:

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

ساده تر شدن پیاده سازی الگوریتمها(تجزیه به توابع)

افزایش خوانایی برنامه ها

آسان شدن اشکالزدایی برنامه ها

امکان ایجادبرنامه هایی حجیم و پیچیده تر.

امکان استفاده از توابع از قبل نوشته شده(مثل توابع کتابخانه ای)

و....

 

   اما بعد از گذشت چند سال نقاط ضعفی در این روش کشف شد که منجر به پیدایش تدریجی روش شئ گرا گردید.

در بخش های بعدی به بعضی از ضعفهای عمده آن اشاره خواهیم کرد.

نويسنده: سيدمحمود شجاعي كياسري

تاریخچه برنامه نویسی

توضیحی اجمالی راجع به تاریخچه برنامه نویسی:

قبل از سال 1950 یعنی زمان پیدایش وایجاد اولین زبان سطح با لا  تقریباً برنامه نویسی به معنای امروزی وجود نداشت. زیرا در آن زمان برنامه هایی باحجم های پایین وکوچک توسط زبان اسمبلر نوشته میشد.

اما بعد از سال 1950 و با ایجاد اولین زبان سطح بالا امکان ایجاد برنامه هایی چندین هزار خطی فراهم شد وبه همین دلیل برنامه نویسی از اهمیت خاصی برخوردار گشت.

در این برهه زمانی برنامه نویسی دارای هیچگونه استاندارد یا روش خاصی نبود وبه همین علت پس از گذشت چند سال برنامه نویسان متوجه اشکالاتی شدند که نیاز به تعریف یکسری استاندارد را تقویت کرد .

اشکالاتی از قبیل اینکه:

این روند از چند جهت  فقط برای برنامه های کوچک مفید بود.مثلاً نوشتن برنامه های بزرگ بسیار مشکل بود واز آن مهمتر سختی مرحله اشکالزدایی برنامه بود ویا برنامه نویس ناچار بود برای اجرای  یک عملیات 5 خطی که به طور نامنظم(غیر قابل پیاده سازی توسط حلقه ها) در 100 محل از برنامه قرار داشت .100 بار قطعه کد مربوطه را پیاده سازی کند. که هم باعث خستگی برنامه نویس میشد و هم باعث بلندی برنامه میگشت.ومشکلات دیگری از این قبیل.

برای رسیدن به یک استاندارد برای غلبه بر مشکلات ذکر شده  در سال 1960 اولین زبان ساخت یافته ایجاد شد.

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

با ظهور این روش امکان ایجاد برنامه هایی با حجم های چندین ده هزار خطی فراهم شد و هزینه نگه داری  آنها نیز از قبل خیلی کمتر شد.

اما به مرور زمان در این روش نیز ضعفهایی احساس شد که منجر به پیدایش روش کامل تری به نام روش شئ گرا گردید  که در ادامه بیشتر راجع به آن بحث خواهیم کرد.

 

نويسنده: سيدمحمود شجاعي كياسري

ماهيت امنيت در شبكه

امنيت ، مبحثي كاملا پيچيده ولي با اصولي ساده است . در بسياري از مواقع همين سادگي اصول هستند كه ما را دچار گمراهي مي كنند و دور نماي فعاليت هاي ما را از لحاظ سهولت و اطمينان در سايه اي از ابهام فرو مي برند. صادقانه بايد گفت كه امنيت يك پردازش چند لايه است. تعيين نوع و نحوه تلقين لايه هاي دفاعي مورد نياز ‌، فقط پس از تكميل ارزيابي قابل ارائه است . تهيه ليستي از سياست هاي اجرايي بر مبناي اينكه چه چيزي براي سازمان مهم تر و انجام آن ساده تر است در اولويت قرار دارد. پس از آنكه اين اولويت ها به تاييد رسيدند هر يك از آنها بايد به سرعت در جاي خود به اجرا گذارده شود. ارزيابي امنيتي يك بخش بسيار مهم تراز برنامه ريزي امنيتي است. بدون ارزيابي از مخاطرات ،‌هيچ طرح اجرايي در جاي خود به درستي قرار نمي گيرد. ارزيابي امنيتي خطوط اصلي را براي پياده سازي طرح امنيتي كه به منظور حفاظت از دارايي ها در مقابل تهديدات است را مشخص مي كند . براي اصلاح امنيت يك سيستم و محقق كردن شرايط ايمن، مي بايست به سه سوال اصلي پاسخ داد:
1- چه منابع و دارايي هايي در سازمان احتياج به حفاظت دارند؟
2- چه تهديداتي براي هر يك از اين منابع وجود دارد؟
3- سازمان چه مقدار تلاش ،وقت و سرمايه مي بايست صرف كند تا خود را در مقابل اين تهديدات محافظت كند؟
اگر شما نمي دانيد عليه چه چيزي مي خواهيد از دارايي هاي خود محافظت كنيد موفق به انجام اين كار نمي شويد. رايانه ها محتاج آنند كه در مقابل خطرات از آنها حفاظت شود ولي اين خطرات كدامند؟ به عبارت ساده تر خطر زماني قابل درك است كه يك تهديد، از نقاط ضعف موجود براي آسيب زدن به سيستم استفاده كند. لذا، پس از آنكه خطرات شناخته شدند، مي توان طرح ها و روش هايي را براي مقابله با تهديدات و كاهش ميزان آسيب پذيري آنها ايجاد كرد. اصولا شركت ها و سازمان ها ، پويا و در حال تغيير هستند و لذا طرح امنيتي به طور مدام بايد به روز شود. به علاوه هر زمان كه تعييرات عمده اي در ساختار و يا عملكردها به وجود آمد، مي بايست ارزيابي مجددي صورت گيرد. بنابراين حتي زماني كه يك سازمان به ساختمان جديدي نقل مكان مي كند، كليه دستگاه هاي جديد و هرآنچه كه تحت تغييرات اساسي قرار مي گيرد، مجددا بايد مورد ارزيابي قرار گيرد. ارزيابي ها حداقل مي بايست شامل رويه هايي براي موارد زير باشند:
1- رمز هاي عبور
2- مديريت اصلاحيه ها
3- آموزش كاركنان و نحوه اجراي برنامه ها
4- نحوه تهيه فايل هاي پشتيبان و فضاي مورد نياز آن
5- ضد ويروس
6- ديواره آتش
7- شناسايي و جلوگيري از نفوذ گران
8- فيلترينگ هاي مختلف براي اينترنت و پست الكترونيكي
9- تنظيمات سيستمي و پيكره بندي آنها
در حال حاضر اينترنت و پست الكترونيكي جزء عناصر انكار ناپذير در كاركرد شركت ها و سازمان ها محسوب مي شوند، ولي اين عناصر مفيد به دليل عمومي بودن، داراي مخاطرات بسياري هستند كه موجب هدر رفتن منابع و سرمايه گذاري هاي يك سازمان مي شود. به ويژه آنكه به سادگي هزينه هاي پنهان زيادي را مي توانند به سازمان تحميل كنند و يا كلا كاركرد يك سازمان را با بحران مواجه كنند. اين وضعيت بحران را با يك طرح دفاعي مناسب قابل كنترل است. هدف ما در اينجا، ارائه يك الگوي دفاعي كامل و منسجم است كه بتواند با توجه به امكانات سازمان ، مورد بهره برداري قرار گيرد. لذا در ابتدا به مخاطراتي كه تهديد كننده سازمان هستند توجه مي كنيم، جنبه هاي مختلف تهديدات را روشن كرده و آنها را اولويت بندي كرده و پس از بررسي دقيق آنها در جاي خود، راه حل مناسبي را طي يك طرح زمانبندي شده و با بودجه مشخص براي پياده سازي، ارائه مي كنيم. در طرح ريزي الگوهاي امنيتي تناسب بين كاربري و طرح امنيتي بسيار مهم است. همچنين روند تغيير و به روز آوري فناوري امنيتي مي بايست مطابق با استانداردها و تهديدات جديد پيش بيني شده باشد. بعضي از سازمان ها براي تامين امنيت خود اقدام به خريد تجهيزات گراني مي كنند كه بسيار بيشتر از ظرفيت كاربري آن سازمان است و يا جايگاه صحيح امنيتي تجهيزات، نامشخص است و لذا خريدار همچنان با مشكلات امنيتي بي شماري دست و پنجه نرم مي كند. يك طرح امنيتي كه بيشتر از ظرفيت يك سازمان تهيه شده باشد باعث اتلاف بودجه مي شود. همچنين طرح امنيتي كه نقص داشته باشد، تاثير كم رنگي در كاركرد سازمان خواهد داشت و فرسايش نيروها ، دوباره كاري ها و كندي گردش كارها و ساير صدمات همچنان ادامه خواهد داشت. اين امر نهايتا يك بودجه ناپيدا را كماكان تحميل مي كند و بهبودي حاصل نخواهد آمد.

VOIP چيست؟

مدتی است که علاقه مندان و دست اندر کاران مخابرات و IT با نام VOIP ( Voice Over Internet Protucol ) آشنا شده اند. VOIP که به کاربران برقراری تماس های تلفنی از طريق اينترنت را می دهد از آن دسته ابتکارات نويني است که نتوانست جايگاه چندان قابل توجهی در دزديهای ديجيتال پيدا کند. برای دستيابی به ( VOIP ) برنامه های زيادی نوشته شده اند. اين برنامه ها ماموريت دارند تا آنجا که ممکن است کيفيت کارکرد VOIP را آنطور که برنامه ريزی شده، ارائه دهد. شايد Skype جالب ترين برنامه حمايت کننده VOIP باشد. گرچه برای برقراری تماس از طريق Skype جالب ترين برنامه حمايت کننده VOIP باشد. گرچه برای برقراری تماس از طريق Skype بايد مبلغی را هزينه کنيد اما در عوض خدمات بسيار مفيدی را کسب خواهید کرد.
1- قدم اول ؛ ابزار شروع کار
اول از همه شما بايد به برنامه Skype مسلط شويد، برای اين کار طبيعتا نصب برنامه الزامی است. شما می توانيد برنامه Skype را به طور رايگان در http://www.skype.com بيابيد و آن را دانلود کنيد. Skype معمولا تحت سيستم های ويندوز Mac os X و لينوکس کار می کند. " هر سه اين برنامه ها به نحوی با هم همخوانی دارند به طوری که برنامه مخصوص مکينتاش با لينوکس و لينوکس با ويندوز همخوانی دارند" برنامه راه اندازی ( Set up ) را فعال کنيد تا Skype نصب شود. می توانيد برای اين کار از روش Start up ( دستی ) و يا اتوماتيک استفاده کنيد.
2- قدم دوم ؛ خود را به دنيای مجازی معرفی کنيد
حال زمان ايجاد يک آدرس شخصی رسيده است. لازم نيست برای اين کار هيچ نوع اطلاعات شخصی را ارائه دهيد اما يادتان باشد، Username خاصی را که شما معرفی می کنيد همان نامی است که بايد همواره از آن استفاده کنيد. پس در انتخاب آن نهايت دقت را به خرج دهيد.
3- قدم سوم؛ اجتناب از مزاحمت های ناشی از VOIP
در راه اندازی اين قسمت نهايت دقت را به خرج دهيد. از قسمت File گزينه Option را در اختيار و روی دگمه Privacy کليک کنيد. قسمت Call گفت و گوهايی است که شما به طرز خاصی به دوستان خود اجازه برقراری تماس با خود را می دهيد.
4- قدم چهارم ؛ سخت افزار مورد نياز را فراهم کنيد
بهتر است در اين مرحله کمی زمان به آزمايش وسايل خود اختصاص دهيد. نرم افزار کاهش اختلالات صوتی Skype به اين معنی است که حتی اگر در اتاق خود در حال گوش دادن به موزيک هستيد نبايد مشکلی در برقراری تماس از طريق VOIP داشته باشيد.
5- قدم پنجم؛ معرفی دوستان و آشنايان به برنامه
در قسمت " Adda Contact " که در گزينه Tools آن را می يابيد به محض اضافه کردن نام دوستان و آشنايان خود به ليست Contact می توانيد به راحتی هر چه تمام تر به سرعت شخص مورد نظر را انتخاب و با آنها صحبت کنيد.

امنيت در برنامه هاي IM و P2P

افشاي اسرار شركت فقط يكي از تهديداتي است كه با آمدن برنامه هايIM وP2P مطرح مي شود. در واقع هر دو نوع اين برنامه ها, حفره هايي را در شبكه شما ايجاد مي كنند كه سارقين اطلاعات, خرابكاران, ويروسها, كرمها وهمه تهديد كنندگان ديجيتالي با علاقه به دنبال آنها مي گردند. طبق گزارشي كه شركت سيمانتك هر شش ماه يك بار در مورد امنيت در فضاي اينترنت منتشر مي كنند, تعداد حملاتي كه از طريق سيستم هاي IM و P2P به كامپيوترها صورت گرفته, طي ماه ژانويه تا ژوئن سال 2003 به چهار برابر رسيده است. هر دو نوع اين برنامه ها در عبور از ديواره هاي آتش و پيدا كردن پورت هاي آزاد براي فعاليت خود مهارتي ويژه دارند و هيچ يك از برنامه هاي رايج IM در حال حاضر سيستم احراز هويت يا رمز گذاري قدرتمندي ندارد كه مانع از سرقت حساب كاربران يا استراق سمع مكالمات افرادي شوند كه غافل از همه جا, اطلاعات و اسرار شركت را به دوستان خود انتقال مي دهند.

به غير از اين مورد, مسأله پهناي باند مطرح است. از آنجا كه هر ماشين در شبكه P2P هم به عنوان كلاينت و هم به عنوان سرور عمل مي كند, پهناي باند ارزشمند شبكه شما هم به مصرف كاربران IM و P2P داخل شبكه شما مي رسد و هم طعمه كساني مي شود كه از طريق P2P به دانلود آهنگ ها و فايلهاي موجود در فولدر Shared كاربران شبكه شما مشغولند.

و تازه مسائل حقوقي را هم نبايد ناديده گرفت. اتحاديه صنايع ضبط آمريكا (RIAA) بارها به شركت هاي فورچون 1000هشدار داده است كه مسئوليت قانوني فعاليت پرسنلي كه با استفاده از شبكه شركت به دانلود, ذخيره سازي يا توزيع غير قانوني موسيقي و فيلم پرداخته و ناقص كپي رايت هستند به عهده خود شركتها است. سال 2002 بود كه اتحاديه مؤفق شد از يك شركت نرم افزاري در آريزونا به خاطر همين موضوع يك ميليون دلار ادعاي غرامت كند (كه به نتيجه هم رسيد).

پس شما به عنوان مدير شبكه شركت چه بايد بكنيد؟ اولين قدم اين است كه درخط مشي شركت خود به وضوح مشخص كنيد كه چه كسي, چه موقع و چگونه اجازه دارد از برنامه ها و خدمات IM و P2Pاستفاده كند. بعد از اين كار, بايد به كمك تجهيزات و ابزارهاي نرم افزاري و سخت افزاري به بستن يا حداقل قانونمند كردن اين برنامه ها پرداخته يا(در مورد سرويس پيام رساني فوري) اجازه كار به آنها را به صورت داخلي بدهيد, كه در اين صورت مديريت آنها امكان پذيرتر مي شود.

يكي از راههاي مسدود كردن IM اين است كه اسامي يا آدرسهاي IP تمام سرورهاي شناخته شده IM را در block list برنامه ديواره آتش خود اضافه كنيد. ولي اين كار فقط از هيچ چيز بهتر است, چرا كه عملاًَ معلوم نيست كدام كامپيوترها از IM استفاده مي كنند, بعضي شركتهاي سازنده محصولات ديواره آتش (سخت افزاري و نرم افزاري) قابليت «تشخيص پروتكل» را به محصولات خود اضافه كرده اند كه طي آن مي توان به شناسايي و انسداد برنامه هاي IM و P2Pپرداخت, و يا حملاتي كه از اين طريق صورت مي گيرند را شناسايي نمود. يك راه ديگر اين است كه روي تمام كامپيوترهاي شبكه خود برنامه ديواره آتش شخصي نصب كرده و آن را طوري تنظيم كنيد كه برنامه هاي مشخصي (چونYahoo Messenger ياKazaa ) را مسدود كند.

اگر به كنترلي باز هم دقيق تر احتياج داريد, مي توانيد از راه حل هاي پويش يا فيلترينگ gateway استفاده كنيد كه شركت هايي چون Systems, Akonix, Face Time Communications, SurfControl و Websense ارائه داده اند. اين ابزارها مي توانند به برنامه هاي IM وp2p نظارت داشته آنها را مسدود نموده , پيام ها را آرشيو كنند, يا (در خصوص Akonix L7Enterprise) سياست هاي خاصي از شركت را در رابطه با مسايلي چون محتواي پيام ها, نوع فايلهاي قابل انتقال, ساعت هاي استفاده در روز و سياست هايي ديگر به مرحله اجرا در آورند.

دست آخر اينكه وجود برنامه هاي ضد ويروس از شركت هايي چون McAfee, سيمانتك يا شركت هاي ديگر در شبكه ضروري است. روي تمام كامپيوترهاي شبكه بايد اين برنامه ها نصب كنيد و نظارت كنيد كه virusdefinition آنها پيوسته بروز باشد. نصب جديدترين patch هاي برنامه هاي IM وp2p و خود سيستم عامل هم از نكاتي است كه هرگز نبايد پشت گوش بيندازيد. اتفاق يك بار مي افتد.

استانداردسازي در كميته IEEE 802

 

   1-1-       انجمن استانداردهاي IEEE

 انجمن IEEE يك سازمان فني غيرانتفاعي با بيش از 000 ,350 عضو است. اين انجمن داراي يك  سري فعاليت‏هاي فني شامل كنفرانس‏ها، انتشارات و فعاليت‏هاي محلي است. علاوه بر اين، فعاليت‏هايي در زمينه استانداردسازي از طريق انجمن استانداردهاي (IEEE-SA[1]) IEEE انجام مي‏شود. فعاليت‏هاي اين انجمن نيز مورد تأييد مؤسسه استانداردهاي ملي آمريكا (ANSI) است.

استانداردهاي IEEE-SA با اتفاق آراء تدوين مي‏شوند. شركت در تدوين اين استانداردها و همچنين استفادة آن‏ها كاملاً اختياري است. با وجود اين، تاريخ نشان داده است كه استانداردهايي كه در يك انجمن با توافق آراء تدوين مي‏شوند، مورد قبول و استفاده تعداد زيادي از شركت‏ها و صنايع هستند.

 

   1-2-        كميته استانداردهاي IEEE 802 LAN MAN

كميته استانداردهاي IEEE 802 LAN MAN توسط انجمن كامپيوتر IEEE حمايت مي‏شود. اولين جلسه اين كميته در سال 1980 براي تدوين استاندارد LAN تشكيل شد. در اين استاندارد، لايه فيزيكي و زيرلايه MAC تحت كنترل زيرلايه LLC مورد بررسي قرارگرفته شده است. اين لايه‏ها دو لايه پائيني مدل هفت لايه‏اي OSI براي شبكه‏هاي ديتا هستند.

كميته IEEE 802 سه‏بار در سال به مدت يك هفته كامل با رياست كميته اجرايي SEC[2] برگزار مي‏شود. مابين جلسات كميته يك سري جلسات خصوصي نيز برگزار مي‏شود. كميته 802 به خاطر استاندارد 802.3 معروف به Ethernet بسيار مشهور و شناخته شده است. اين استاندارد در كل جهان موفق بوده است. بسياري از شبكه‏هاي LAN در جهان برپايه Ethernet است و عمل LAN به معناي اتصال Ethernet دستگاه‏هاست. مانند تمام استانداردهاي موفق 802، استاندارد IEEE 802.3 به‏طور پيوسته تكامل مي‏يابد و از رسانه كواكسيال اشتراكي به زوج سيم تابيده با استاندارد 10 BaseT پيش رفته است و مي‏تواند نرخ‏هاي ديتا با 100BaseT و 1000BaseT را حمايت كند. همچنين رسانه‏هاي نوري نيز حمايت مي‏شود و استاندارد 802.3 در حال تدوين و توسعه يك استاندارد 10 Gb/s است. بعد از موفقيت بزرگ Ethernet، كميته 802 مشغول اجراي تعدادي پروژه استانداردسازي شبكه بي‏سيم   شده است. قبل از اينكه جزئيات برنامه استانداردهاي بي‏سيم IEEE 802 مورد بحث و بررسي قرار بگيريد يك مروري براين پروسه خواهيم داشت.

 

   1-3-         پروسه استانداردسازي IEEE 802

پروسه IEEE 802 براي پياده‏سازي و تدوين سريع استانداردها با توافق آراء طراحي شده است. هدف از توافق جمع در اين استانداردها، داشتن اطمينان از اينكه اين استانداردها فني هستند و نيازهاي بازار را برآورده مي‏كنند‏، است. پروسه تدوين استاندارد در IEEE 802 داراي مراحل زماني زير است. اين پروسه توسط كميته اجرايي SEC نظارت مي‏شود و براساس يك سري قوانين و روالها تعريف مي‏شود. به‏طور خلاصه اين مراحل عبارتند از:

   ·    يك گروه مطالعاتي موظف مي‏شود كه اهداف استاندارد را مطالعه و بررسي كند و همچنين درخواست نامه اجازه يك پروژه ((PAR[1] را نيز تهيه مي‏كند كه درخواست نامه يك پروژه جديد بايد به تصويب IEEE-SA برسد. همچنين بايد علاوه بر تهيه PAR، يك اظهار نامه براي كميته SEC تهيه كنند كه در آن بيان شده باشد: اين استاندارد 5 ملاك و معيار كميته IEEE 802 براي تدوين يك استاندارد را شامل مي‏شود و همچنين داراي بازار گسترده، سازگار با ديگر استانداردهاي 802، داراي هويت متمايز داخل 802 است و از نظر فني و اقتصادي عملي است.

 

   ·    كميته SEC هركدام از پروژه‏هاي تصويب شده را به يك گروه كاري موجود يا جديد اختصاص مي‏دهد. تصميمات فني توسط گروه كاري با توافق حداقل 75% از اعضاء اتخاذ مي‏شود. عضويت اين گروه كاري متعلق به اشخاص است نه به شركت‏ها يا ديگر سازمان‏ها و برپايه شركت در جلسات است. افرادي غير از اعضاء گروه نيز مي‏توانند در جلسات شركت كنند.

 

روش تهيه پيش‏نويس اوليه بين گروه‏ها متفاوت است اما به‏طور معمول، مشكلات و مسائل مربوطه به يك گروه پايين‏تر ارجاع داده مي‏شود و يك دعوت عمومي براي كمك و ياري به پيش‏نويس تهيه شده صورت مي‏گيرد. در نتيجه يك پيش‏نويس اوليه انتخاب مي‏شود و سپس بهينه مي‏شود.

   ·    قبل از اينكه كميته SEC پيش‏نويس اوليه را ارتقاء دهد، بايد پيش‏نويس استاندارد تصويب شود. به اين صورت كه اعضاء گروه كاري بايد يك درخواست نامه جهت تصويب پيش‏نويس تهيه كنند. هر رأي مخالف اين پيش‏نويس بايد همراه با يك دليل مشخص باشد كه چه تغييراتي لازم است و رأي دهنده بايد آن را ثابت كند. قانون داشتن ادله محكم در زمان مخالفت با اين پيش‏نويس كمك مي‏كند تا پيش‏نويس‏ها پس از چندين جلسه بهينه شوند. اعضاء اين گروه براي تصويب پيش‏نويس حق رأي دارند و شركت كننده‏هاي غير از اعضاء فقط مي‏توانند پيشنهاد بدهند. براي تصويب يك پيش‏نويس نياز به موافقت 75% اعضاء‌ است.

 

   ·    آخرين كاري كه انجام مي‏شود اين است كه دوباره بايد به اين پيش‏نويس استاندارد رأي داده شود. در اين مرحله بايد افرادي غير از اعضاء كميته نيز به پيش‏نويس مورد نظر رأي بدهند. در واقع كميته IEEE مي‏خواهد كه استاندارد مبتني بر نظر كاربر يا سازنده تدوين نشود بلكه مورد تأييد يك گروه كارشناس باشد. البته علاوه بر رأي‏گيري در مورد استاندارد، يك سري قوانين هم وجود دارد كه براي موفق شدن استاندارد ضروري است. اغلب گفته مي‏شود كه در كميته 802، هدف از رأي‏گيري، تصويب پيش‏نويس نيست بلكه براي پيشرفت و اصلاح آن است.

تجربه نشان داده است كه پروسه IEEE 802 تأثير بسزايي در بكارگيري گروه‏هاي مختلف، پرورش پيشنهادها و اظهارات و اعمال تغييرات بنيادي دارد. در نتيجه، پيش‏نويس‏هاي 802 در حال اصلاح و بهينه شدن هستند. زمانيكه يك استاندارد روي سيستمي اعمال مي‏شود، كاربران اطمينان كافي پيدا مي‏كنند كه استاندارد مطمئن و قابل قبول است. همچنين مي‏توان يك پيش‏نويس استاندارد كه در يك زمان قابل قبولي بررسي شده است را روي سيستم‏ها اعمال كرد و بكار برد.


 


 

 

کنترل مصرف پهنای باند شبکه با استفاده از squid

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

راه‌های متعددی برای کنترل مصرف پهنای باند مانند ابزارهای Traffic Shaper و... شبکه وجود دارد که از حوصله این مقاله خارج است. ما در این مقاله کوچک سعی داریم تا نحوه کنترل مصرف پهنای باند را توسط سرویس دهنده squid آموزش دهیم.

قدم اول
فرض می‌کنیم که یک اتصال مودم یا DSL به شبکه اینترنت داریم که رابط آن ppp0 بوده، رابط شبکه محلی نیز eth0 و آدرس شبکه داخلی 192.168.0.0/24 می‌باشد. مواردی که برای پیاده سازی کنترل مصرف پهنای باند شبکه نیاز داریم عبارتند از یک سرویس‌دهنده squid و سیستم iptables که بر روی هر ماشین گنو/لینوکس وجود دارد. مراحل نصب، پیکربندی و تنظیم بسیار ساده است.

Squid چگونه کار می‌کند؟
سرویس‌دهنده Squid پیشرفته‌ترین سرویس‌دهنده پراکسی موجود برای سیستم‌عامل گنو/لینوکس می‌باشد. این سرویس‌دهنده به دو روش می‌تواند در پهنای باند صرفه جویی نماید:

۱) نخست از طریق حفظ صفحات، تصاویر و سایر اقلام دریافت شده بر روی حافظه یا فضای دیسک. بنابراین در صورتی که کاربران تقاضای دریافت مجدد یک صفحه تکراری را نمایند، این صفحه از روی اینترنت دریافت نخواهد شد.

۲) در کنار سیستم Caching معمولی، Squid دارای قابلیتی به نام delay pools است که از طریق آن می‌توانید ترافیک اینترنت را بطور معقولانه‌ای کنترل نمایید. این کار از طریق تعریف کلمات کلیدی موجود در آدرس‌های URL انجام می‌گیرد. برای مثال می‌توانید کلماتی مانند mp3، mpg، exe و... را بعنوان کلمات کلیدی تعریف نمایید. با استفاده از این کلمات کلیدی، می‌توانیم به Squid بگوییم تا آنها را حداکثر با سرعت خاصی دریافت نماید. می‌توان پهنای باند باقیمانده را برای سرویس‌های دیگر مانند مرور وب، پست الکترونیکی و... باقی گذاشت و یا حتی آنرا نیز محدود کرد.

نصب و پیکربندی ابزارهای لازم
در این بخش به بررسی چگونگی نصب و پیکربندی ابزارهای لازم می‌پردازیم. مهمترین نکته در این بخش، فعال بودن ویژگی Delay Pools در Squid می‌باشد. در صورتی که Squid را از طریق کامپایل نصب کرده‌اید، حتما بررسی کنید که به همراه گزینه enable-delay-pools-- کامپایل شده باشد، در غیر اینصورت باید آنرا مجددا کامپایل کنید. معمولا بسته‌هایی که به همراه توزیع‌ها ارائه می‌شود، دارای چنین ویژگیی به صورت پیش‌گزیده می‌باشد. با فرض اینکه از توزیع دبیان استفاده می‌کنید، Squid را نصب می‌کنیم:

# apt-get install squid

سرویس‌دهنده Squid از روی مخازن مربوطه دریافت و نصب خواهد شد. در قدم دوم، باید این سرویس‌دهنده را برای مقاصد خودمان تنظیم کنیم. به همراه تنظیم Delay Pools، سرویس‌دهنده برای ارائه سرویس Transparent Proxy نیز تنظیم خواهد شد. فایل پیکربندی مورد استفاده در Squid به شکل زیر خواهد بود:

 

#SQUID PORT

http_port 8080

hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY

cache_mem 16 MB

maximum_object_size 4096 KB
maximum_object_size_in_memory 10 KB

#CACHE DIR CONFIG
cache_dir ufs /var/spool/squid 512 16 512

#LOGS
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log

hosts_file /etc/hosts

refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320

acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8

# OUR LOCAL LAN
acl local src 192.168.0.0/255.255.255.0

acl SSL_ports port 443 563
acl SSL_ports port 873
acl Safe_ports port 80 21 443 563 70 210 631 901 1025-65535
acl purge method PURGE
acl CONNECT method CONNECT

http_access allow manager localhost local
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_reply_access allow all

#HOSTNAME
visible_hostname power

#TRANSPARENT PROXY
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

store_avg_object_size 50 KB

coredump_dir /var/spool/squid

#DELAY POOLS
acl magic_words1 url_regex -i 192.168
acl magic_words2 url_regex -i ftp .exe .mp3 .vqf .rpm .zip .tar.gz .gz .rar .avi .mpeg .mpe .mpg .qt .ram .rm .iso .raw .wav .mov .swf
acl day time
08:00-23:59

delay_pools 2

delay_class 1 2
delay_parameters 1 4500/40000 4500/40000
delay_access 1 allow magic_words1

delay_class 2 2
delay_parameters 2 4500/40000 4500/40000
delay_access 2 allow day
delay_access 2 deny !day
delay_access 2 allow magic_words2

 

این فایل پیکربندی در آدرس etc/squid/squid.conf/ قرار می‌گیرد. مهمترین بخش این فایل برای کنترل ترافیک، بخش مشخص شده با DELAY POOLS است.
در خط نخست این بخش یک
acl برای شبکه داخلی تعریف شده و در خط دوم انواع فایل‌هایی که مایل به محدود کردن دریافت آنها هستیم، مشخص شده است.
در خط سوم، ساعات کاری که محدودیت‌ها در آن اعمال می‌شوند مشخص شده و در خط بعدی، دو
Delay Pool مختلف تعریف شده است.
خط
delay_class مشخص کننده نوع کلاس pool بکار رفته می‌باشد. سه نوع کلاس delay pool وجود دارد که برای اطلاع دقیق از انها می‌توانید به مستندات سرویس‌دهنده Squid مراجعه نمایید.
خط
delay_parameters 1 مشخص کننده محدودیت‌های اعمالی برای شبکه داخلی است. در این خط مشخص شده که در صورتی که کل شبکه یا یک آدرس IP خاص مقدار حجم دریافتی معادل ۴۰ مگابایت داشت، از آن پس، سرعت دریافت آن به ۴/۵ کیلوبایت در ثانیه کاهش یابد. درصورتی که مایلید تا محدودیت برای مرور صفحات وجود نداشته باشد و در هنگام مرور صفحات، همیشه حداکثر سرعت در اختیار باشد، این خط را به صورت زیر تغییر دهید:

delay_parameters 1 -1/-1 -1/-1

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

پس از اعمال تنظیمات فوق، سرویس‌دهنده Squid را راه‌اندازی می‌کنیم:

# squid -z
# /etc/init.d/squid start

در مرحله بعدی تنظیم و پیکربندی، باید اشتراک اینترنت و تنظیمات iptables را برای transparent proxy انجام دهیم. برای این کار می‌توان از یک اسکریپت ساده مانند زیر استفاده کرد:

 

#!/bin/sh
IPTABLES=/sbin/iptables
$IPTABLES -F

$IPTABLES -t nat -A PREROUTING -i lan1 -p tcp --dport 80 -j REDIRECT --to-port 8080
$IPTABLES -A POSTROUTING -t nat -o ppp0 -j MASQUERADE

echo 1 > /proc/sys/net/ipv4/ip_forward
echo Starting Internet Connection Sharing...

کافی است این اسکریپت را در شاخه etc/init.d/ با نامی مانند ics ذخیره کرده و آنرا با chmod +x اجرایی کنید. سپس برای اینکه در هنگام بوت اجرا شود، از دستور زیر استفاده نمایید:

# ln -s /etc/init.d/ics /etc/rc2.d/S99ics

از این پس هنگام بوت سیستم (سطح اجرایی ۲ در دبیان) اسکریپت ics اجرا خواهد شد و می‌توانید ببینید که تنظیمات کنترلی به خوبی کار می‌کنند.

استانداردهاي IEEE 802 Wireless PAN LAN MAN

 كميته استانداردهاي IEEE 802 LAN MAN انجمن مهندسين برق و الكترونيك (IEEE) مسئول تهيه و تدوين استانداردهاي بي‏سيم براي شبكه‏هاي بي‏سيم LAN، MAN و PAN[1] است. اين استانداردها قابليت پياده‏سازي زيرساخت براي اينترنت بصورت بي‏سيم را فراهم مي‏كنند.

در دهة 1990، با ايجاد شبكه‏هاي ارتباطات بي‏سيم و اينترنت تغيير اساسي در صنعت ارتباطات بوجود آمد. ادغام اين دو تكنولوژي منجر به تكنولوژي اينترنت بي‏سيم شده است. از آنجا كه استانداردها، پياده‏سازي اينترنت و تلفن‏هاي سلولي بي‏سيم را تعريف كرده‏اند، در نتيجه مي‏توانند تكامل تدريجي اينترنت بي‏سيم را نيز تحت شعاع خود قرار دهند. هر دو صنعت تلفن سلولي و صنعت ارتباطات اينترنتي، مدل، مشخصات و ديدگاههاي خاص خود دارند كه براي استانداردسازي ارائه مي‏دهند. در حال حاضر استانداردسازي تكنولوژي‏هاي مبتني بر اينترنت در IEEE و كميته استانداردهاي IEEE 802 LAN MAN انجام مي‏شود و استانداردهايي براي شبكه‏هاي بي‏سيم LAN، PAN و MAN در حال توسعه و افزايش است.

مدل اينترنت بي‏سيم مبتني بر تلفن سلولي در سري IMT[2]-2000 از استاندارها، براي ارتباطات بي‏سيم نسل سوم آمده است كه توسط سازمان ITU بخش راديويي (ITU-R) منتشر شده است. در اين مجموعه از استانداردها تكامل تدريجي از سرويس‏هاي صوتي موبايل مبتني بر Circuit-Switched تا سرويس‏هاي صوت و ديتا موبايل مبتني بر Packet-Switched پيش‏بيني شده است. در اين استانداردها، زيرساخت مبتني بر ايستگاه پايه سلولي است كه به كاربرهاي متحرك با سرعت Kb/s 144 سرويس مي‏دهد و همچنين قابليت سرويس‏دهي به كاربرهاي ثابت با سرعت حداكثر Mb/s 2 دارد.

كميته استانداردسازي IEEE در حال تهيه و تدوين يك سري استانداردهاي جايگزين استانداردهاي اينترنت بي‏سيم است. اين كميته هيچ عضو ملي و سياسي ندارد و فعاليت‏هايش برپايه فن‏آوري و صنعت است. هدف اصلي اين كميته استانداردسازي، ارائه محصولات ارزان قيمت مطابق با نيازهاي كاربران به بازار است. تكنولوژي‏هاي اينترنت بي‏سيم استاندارد IEEE 802 نرخ ديتاي بيشتري نسبت به نرخ ديتاي ارائه شده در IMT-2000 حتي براي كاربران ثابت ارائه مي‏دهد. به عنوان مثال، در حال حاضر استاندارد IEEE 802.11b نرخ ديتا 11 Mb/s را پشتيباني مي‏كند. استانداردهاي IEEE مانند IMT-2000 براي كاربران متحرك سرويس فراهم نمي‏كنند و همچنين نمي‏توانند يك ناحيه پوششي براي كاربران كه در هر نقطه دلخواه داخل يك شهر قراردارند، فراهم كنند. استانداردهايي كه IEEE تدوين كرده است به شرح زير است:

 

        ·          IEEE 802.16 Wireless MAN

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

 

        ·          IEEE 802.11 Wireless LAN

     در اين استانداردها، كاربران داخل خانه‏ها، ادارات، دانشگاهها، هتل‏ها، فرودگاه‏ها، رستوران‏ها و غيره پشتيباني مي‏شوند.

 

IEEE 802.15 Wireless PAN

در اين استانداردها، لينك‏هاي كوتاه بين كامپيوترها، تلفن‏هاي متحرك و ديگر دستگاههاي الكترونيكي كه قابل حمل هستند پشتيباني مي‏شوند.


 

 

فايروال ها : يک ضرورت اجتناب ناپذير در دنيای امنيت اطلاعات  

 

امنيت اطلاعات و ايمن سازی کامپيوترها به يک ضرورت غيرقابل انکار در عصر اطلاعات تبديل شده است. پرداختن به مقوله امنيت اطلاعات با زبانی ساده بيش از هر زمان ديگر احساس می شود، چراکه هر يک از عوامل انسانی و غيرانسانی دارای جايگاه تعريف شده ای در نطام مهندسی امنيت اطلاعات می باشند. آشنائی اصولی و منطقی با اين نطام مهندسی و آگاهی از عناصر موجود در اين ساختار به همراه شناخت علمی نسبت به مسئوليت هر يک از عناصر فوق، امری لازم و حياتی است.
فايروال ها ، يکی از عناصر اساسی در نطام مهندسی امنيت اطلاعات می باشند که استفاده از آنان به يک ضرورت اجتناب ناپذير در دنيای امنيت اطلاعات و کامپيوتر تبديل شده  است . بسياری از افرادی که جديدا" قدم در عرصه گسترده امنيت اطلاعات می گذارند ، دارای نگرانی و يا سوالات مفهومی خاصی در ارتباط با فايروال ها و جايگاه استفاده از آنان در جهت ايمن سازی شبکه های کامپيوتری می باشند . 
در اين مطلب قصد داريم به برخی از مفاهيم و نکات مهم و اساسی در خصوص فايروال ها اشاره ای داشته باشيم تا از اين رهگذر بتوانيم  دانش لازم به منظور  بکارگيری و  مديريت بهينه فايروال ها را بدست آوريم .

NAT ( برگرفته از Network Address Translation )
اولين و در عين حال مهم ترين وظيفه يک فايروال ، جداسازی شبکه داخلی يک سازمان از اينترنت است . يکی از فنآوری های موجود که ما را در جهت نيل به خواسته فوق کمک می نمايد ، جداول NAT می باشند ( NAT  ، همچنين کمک لازم در جهت حل معضل کمبود آدرس های IP را ارائه می نمايد ) . مهمترين ايده مطرح شده توسط NAT ، عدم دستيابی به اکثر کامپيوترهای موجود در يک شبکه خصوصی از طريق اينترنت است .  يکی از روش های نيل به خواسته فوق ، استفاده از آدرس های IP غيرمعتبر ( Invalid ) می باشد .
در اکثر موارد بکارگيری NAT ، صرفا" آدرس IP معتبر (Valid ) به فايروال نسبت داده  می شود و تمامی کامپيوترهائی که مسئوليت حفاظت از آنان به فايروال واگذار شده است ، از آدرس های IP که صرفا" بر روی شبکه داخلی معتبر می باشد ، استفاده می نمايند . با تبعيت از چنين رويکردی ، زمانی که يک کامپيوتر موجود در شبکه داخلی نيازمند برقراری ارتباط با دنيای خارج است ، اقدام به ارسال درخواست خود برای فايروال می نمايد . در ادامه فايروال به نمايندگی از کامپيوتر متقاضی ، درخواست مورد نظر را ارسال می نمايد . در زمان مراجعت درخواست ارسالی ، پاسخ مربوطه به فايروال رسيده و در نهايت ، فايروال آن را برای کامپيوتر موجود در شبکه داخلی ارسال می نمايد . 
فرض کنيد ، کاربری قصد داشته باشد که يک وب سايت خاص را از طريق کامپيوتر موجود بر روی يک شبکه داخلی ملاقات نمايد .پس از درج آدرس وب سايت مورد نظر در بخش آدرس برنامه مرورگر ، درخواست وی به يک درخواست HTTP ترجمه شده و برای فايروال ارسال می گردد . در ادامه ، فايروال از آدرس IP مختص به خود در ارتباط با درخواست HTTP و به نمايندگی از کاربر ارسال کننده درخواست ، استفاده می نمايد . پس از پاسخ به درخواست ، پاسخ مربوطه برای فايروال ارسال شده و در نهايت فايروال آن را برای کاربر مربوطه ارسال می نمايد .

فيلترينگ پورت ها
فيلترينگ پورت ها از جمله مهمترين عملياتی است که توسط فايروال ها انجام می شود و شايد به همين دليل باشد که اکثر مردم بر اين اعتقاد هستند که فايروال ها صرفا"  به همين دليل خاص طراحی و پياده سازی شده اند و اغلب ،  آنان را به عنوان ابزاری در جهت فيلترينگ پورت ها تصور می نمايند . همانگونه که می دانيد ، مبادلات اطلاعات مبتنی بر پروتکل TCP/IP با استفاده و محوريت پورت ها انجام می گردد . در اين رابطه 65،535 پورت TCP و به همين اندازه پورت UDP جداگانه وجود دارد که می توان از آنان به منظور مبادله اطلاعات استفاده نمود .
به منظور آشنائی با جايگاه پورت ها و نقش آنان در مبادله اطلاعات در پروتکل TCP/IP ، می توان آنان را نظير ايستگاه های راديوئی تصور نمود . فرض کنيد TCP به عنوان موج FM و UDP به عنوان موج AM باشد . در چنين وضعيتی ، می توان يک پورت در پروتکل TCP/IP را همانند يک ايستگاه راديوئی تصور نمود . همانگونه که يک ايستگاه راديوئی با اهداف خاصی طراحی شده است ، پورت های TCP و UDP نيز چنين وضعيتـی را داشته و با اهداف خاصی طراحی شده اند . يکی از مهمترين دلايل ضرورت استفاده از فايروال ها و فيلترينگ پورت ها ، استفاده غيرمتعارف از پورت ها به منظور نيل به اهدافی ديگر است . مثلا" پورت 21 مربوط به پروتکل TCP بطور سنتی به منظور FTP استفاده می گردد و مهاجمان می توانند از پورت فوق و با استفاده از برنامه هائی نظير Telnet سوء استفاده نمايند ( با اين که پورت فوق به منظور استفاده توسط برنامه Telnet طراحی نشده است ) .
پويش پورت ها و آگاهی از پورت های باز ، از جمله روش های متداولی است که توسط مهاجمان و به منظور يافتن يک نقطه ورود مناسب به يک سيستم و يا شبکه کامپيوتری ، مورد استفاده قرار می گيرد . مهاجمان پس از آگاهی از پورت های باز ، با بکارگيری برنامه هائی نظير Telnet زمينه ورود غير مجاز به يک سيستم را برای خود فراهم می نمايند .
وضعيت فوق و تهديدات امنيتی مرتبط با آن ، ضرورت فيلترينگ پورت ها را به خوبی نشان می دهد . با فيلترينگ پورت ها ، اين اطمينان ايجاد خواهد شد که هيچ چيزی نمی تواند از طريق يک پورت باز ارسال گردد مگر پروتکل هائی که توسط مديريت شبکه به آنان اجازه داده شده است . مثلا" در صورتی که فيلترينگ پورت بر روی پورت 21 مربوط به پروتکل TCP اعمال گردد ، صرفا" به مبادلات اطلاعات مبتنی بر FTP اجازه داده خواهد شد که از اين پورت استفاده نمايند و مبادله اطلاعات به کمک ساير پروتکل ها و بکارگيری پورت فوق ، امکان پذير نخواهد بود .
محدوده عملياتی فيلترينگ پورت ها می تواند از موارد اشاره شده نيز تجاوز نموده و در سطح هدر يک بسته اطلاعاتی و حتی محتويات آن نيز تعميم يابد . در چنين مواردی ، هدر بسته اطلاعاتی بررسی و با مشاهده اطلاعاتی نظير آدرس مبداء ، مقصد ، شماره پورت و ساير موارد ديگر در رابطه با آن اتخاذ تصميم می گردد . مشکل موجود در اين رابطه به وجود اطلاعات جعلی و يا نادرست در هدر بسته های اطلاعاتی برمی گردد . مثلا" فرستنده می تواند آدرس های IP و ساير اطلاعات ذخيره شده در هدر بسته های اطلاعاتی را جعل نمايد . به منظور غلبه بر مشکل فوق ، نوع ديگری از فيلترينگ  که برخی فايروال ها به آن stateful packet inspections و يا فيلترينگ پويای بسته های اطلاعاتی می گويند ، ايجاد شده است . در مدل فوق ، در مقابل بررسی هدر بسته های اطلاعاتی ، محتويات آنان مورد بازبينی قرار می گيرد . بديهی است با آگاهی از  اين موضوع که چه چيزی در بسته اطلاعاتی موجود است ، فايروال ها بهتر می توانند در رابطه با ارسال و يا عدم ارسال آن برای يک شبکه داخلی تصميم گيری نمايند . 

ناحيه غيرنطامی ( Demilitarized Zone )
نواحی غيرنظامی ( DMZ ) ، يکی ديگر از ويژگی های ارائه شده توسط اکثر فايروال ها می باشد . DMZ ، ناحيه ای است که تحت قلمرو حفاظتی فايروال قرار نمی گيرد . فايروال های مختلف ، نواحی DMZ را با روش های متفاوتی پياده سازی می نمايند . مثلا" برخی از فايروال ها ، صرفا" شما را ملزم به معرفی آدرس IP ماشينی می نمايند که قصد استقرار آن در ناحيه DMZ  وجود دارد .برخی از فايروال ها دارای يک پورت شبکه ای اختصاصی می باشند که می توان از آن برای هر نوع دستگاه شبکه ای که قصد استقرار آن در ناحيه DMZ وجود دارد ، استفاده گردد  .
 پيشنهاد می گردد ، حتی المقدور از نواحی DMZ استفاده نگردد ، چراکه ماشين های موجود در اين نواحی از امکانات حفاظتی و امنيتی فايروال استفاده نخواهند کرد و تنها گزينه موجود در اين رابطه امکانات ارائه شده توسط سيستم عامل نصب شده بر روی ماشين و ساير توصيه هائی است که با رعايت و بکارگيری آنان ،   وضعيت امنيتی سيستم بهتر می گردد .
در صورتی که برای ايجاد يک ناحيه DMZ دلايل موجه و قانع کننده ای وجود دارد ، می بايست با دقت و برنامه ريزی صحيح توام با رعايت مسائل امنيتی اقدام به انجام چنين کاری گردد. در صورتی که ماشين مستقر در ناحيه DMZ دارای يک اتصال به شبکه داخلی نيز باشد ، مهاجمان با تمرکز بر روی ماشين فوق می توانند نقطه مناسبی برای ورود به شبکه را پيدا نمايند . پيشنهاد می گردد به عنوان يک قانون و اصل مهم ، ماشين های موجود در ناحيه DMZ دارای اتصالاتی به غير از پورت DMZ فايروال نباشند .

فورواردينگ پورت ها
در بخش قبل به نحوه عملکرد فيلترينگ پورت ها به منظور بلاک نمودن استفاده از يک پروتکل بجزء يک آدرس IP خاص، اشاره گرديد . فورواردينگ پورت نيز بر اساس همين مفاهيم مطرح و در سازمان هائی که در ارتباط با NAT می باشند ، کارساز خواهد بود .
برای آشنائی با مفهوم فورواردينگ پورت ها ، يک مثال نمونه را بررسی می نمائيم  .
فرض کنيد ، سازمانی دارای يک سرويس دهنده وب است که از آدرس IP: 192.168.0.12 ( يک آدرس معتبر نمی باشد ولی فرض کنيد که چنين واقعيتی وجود ندارد ) استفاده می نمايد و می بايست امکان دستيابی عمومی به آن فراهم گردد . در صورتی که سرويس دهنده وب فوق تنها سرويس دهنده موجود در سازمان است که می بايست امکان دستيابی عمومی به آن فراهم گردد ، می بايست  يک قانون فيلترينگ بسته های اطلاعاتی در سطح  فايروال تعريف گردد که تمامی درخواست های HTTP بر روی پورت 80 و به مقصد هر آدرس موجود در شبکه بجزء آدرس IP:192.168.0.12 ، بلاک گردد  . پس از تعريف قانون فوق ، در صورتی که کاربری يک درخواست HTTP را برای آدرس های ديگری ارسال نمايد ، با پيامی مبنی بر اين که  وب سايت درخواستی وجود ندارد ، مواجه خواهد شد .
 
در مثال فوق ، اين فرض نادرست را کرديم که امکان دستيابی عمومی به آدرس IP:192.168.0.12 وجود دارد . آدرس فوق صرفا" بر روی يک شبکه خصوصی معتبر بوده و امکان دستيابی آن از طريق اينترنت وجود  نخواهد داشت . بديهی است در چنين وضعيتی می بايست آدرس سرويس دهنده وب خصوصی خود را با يک آدرس عمومی جايگزين نمائيد . ( با اين که يک گزينه مطلوب در اين رابطه نمی باشد ) . برخی از مراکز ارائه دهنده خدمات اينترنت ( ISP ) ، صرفا" امکان استفاده از يک آدرس IP عمومی را در اختيار شما قرار داده و بديهی است که در چنين مواردی ما دارای گزينه های متعددی برای اختصاص اين آدرس نخواهيم بود و می بايست آن را به فايروال اختصاص داد .
يکی از موارد استفاده سنتی از NAT  به مواردی نظير آنچه اشاره گرديد ، بر می گردد . سازمان فرضی دارای صرفا" يک آدرس IP معتبر است و آن را به فايروال نسبت داده و از NAT به منظور تسهيل در مبادله اطلاعات بين ماشين های موجود در شبکه داخلی و اينترنت استفاده می نمايد . در چنين مواردی يک مشکل همچنان باقی می ماند . NAT به منظور بلاک نمودن ترافيک تمامی ارتباطات ورودی بجزء آنانی که درخواست آنان از طرف يکی از ماشين های موجود در شبکه داخلی ارسال شده است ، طراحی شده است و ما همچنان دارای يک سرويس دهنده وب می باشيم که می خواهيم امکان دستيابی عمومی به آن را نيز فراهم نمائيم .
به منظور حل مشکل فوق می توان از فورواردينگ پورت استفاده نمود . در واقع فورواردينگ پورت ، قانونی است که به فايروال می گويد در صورتی که درخواست های خاصی بر روی يک پورت خاص برای وی ارسال شده باشد ، می بايست درخواست مربوطه را برای يک ماشين طراحی شده بدين منظور بر روی شبکه داخلی، ارجاع نمايد . در مثال اشاره شده ، ما قصد داريم امکان دستيابی عمومی به سرويس دهنده وب را فراهم نمائيم . بدين منظور می بايست يک قانون فورواردينگ پورت بدين منظور تعريف که به فايروال اعلام نمايد هر درخواست HTTP بر روی پروتکل TCP و پورت 80 را به آدرس IP:192.168.0.12 تغيير مسير داده و برای آن ارسال نمايد. پس از تعريف قانون فوق ، شخصی که قصد دستيابی به وب سايت سازمان شما را داشته باشد ، پس از فعال نمودن برنامه مرورگر ، اقدام به  درج آدرس سايت سازمان شما دربخش مربوطه می نمايد. مرورگر کاربر مورد نظر به منظور آگاهی از آدرس domain سايت سازمان شما ، اقدام به ارسال يک درخواست DNS می نمايد تا از اين طريق نسبت به آدرس IP نسبت داده شده به domain آگاهی لازم را پيدا نمايد . بديهی است آدرسی که پيدا خواهد شد و به عنوان مرجع در اختيار مرورگر قرار خواهد گرفت، همان آدرس IPعمومی است که شما آن را به فايروال نسبت داده ايد . مرورگر در ادامه ، درخواست HTTP را برای آدرس IP عمومی شما ارسال می نمايد که در حقيقت اين درخواست برای فايروال ارسال می گردد . فايروال درخواست را دريافت و آن را برای سرويس دهنده وب ارسال می نمايد ( فورواردينگ )  .

خلاصه
در اين مطلب به جايگاه بسيار مهم فايروال ها در نظام مهندسی امنيت اطلاعات اشاره و پس از بررسی نحوه عملکرد آنان با چندين ويژگی مهم ارائه شده توسط فايروال ها  آشنا شديم .

تهيه شده در شرکت سخا روش -  1382