• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

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

panasonic.ir

Registered User
تاریخ عضویت
2 سپتامبر 2013
نوشته‌ها
298
لایک‌ها
51
محل سکونت
تهران
به نام خدا



برای دیدن عکس در سایز واقعی خود یعنی 731 در 548 پیکسل ، اینجا کلیک کنید .
network-security.jpg

حملات در شبکههای کامپیوتری جزو جدانشدنی دنیای اینترنت شده اند. حملات به دلایل متفاوتی همانند منافع تجاری، دلایل کینهجویانه، حیلهگری و تقلب، جنگ و منافع اقتصادی انجام میپذیرند.حملهها در نتیجه نقص یکی از ابعاد امنیتی همانند محرمانگی، یکپارچگی و یا دسترسپذیری در شبکه و منابع آن انجام میپذیرند.تقسیمبندیهای مختلفی برای انواع حملات تعریف شده است. شما هر کتاب و مرجعی را که ببینید نوعی گروهبندی را انجام دادهاند. در مجموع حملات را به گروههای زیر تقسیم مینماییم.- Modification Attacks (تغییر غیرمجاز اطلاعات)- Repudiation Attacks (جلوگیری از وقوع یک اتفاق و یا تراکنش)- Denial of service attacks (عملی که مانع میشود از اینکه منابع شبکه بتوانند سرویسهای درخواستی را به موقع ارایه دهند.)- Access attacks (دسترسی غیرمجاز به منابع شبکه و اطلاعات)به طور عام هر عملی که باعث میشود تا عملکرد شبکه ناخواسته گردد، حمله نامیده میشود. ممکن است این عمل تغییر رفتار مشهودی در سیستم شبکه نباشد.حمله غیرفعال: وقتی فرد غیرمجاز در حال شنود ترافیک ارسالی میباشد، تغییر مشهودی در رفتار سیستم نداریم. این حمله، حمله غیرفعال است. در صورتی که شنودکننده موفق به رمزگشایی گردد، اطلاعات مفیدی به دست آورده است.حمله فعال: حملهای که محتوای پیام را اصلاح نماید، فرستنده و یا گیرنده پیام را تغییر دهد و یا هر ترفندی که پاسخ مجموعه را تغییر دهد، حمله فعال نامیده میشود.در ادامه به معرفی حملات معروف شبکه و راههای مقابله با آن خواهیم پرداخت.Denial of Service (DOS)/ Distributed DOSدرحمله DOS ، منابع یک سیستم اشغال میشود تا آن منبع توانایی پاسخگویی به درخواستها را نداشته باشد. این حمله با بمباران سیل آسای یک سرور با تعداد زیادی از درخواستها مواجه مینماید که نمیتوان به همه آنها به صورت کارآمد پاسخ گفت. مورد دیگر فرستادن مجموعه درخواستها به هارد درایو یک سیستم است که تمام منابع آن را درگیر نماید. نوع دیگر DOS توزیع شده است که از طریق تعداد زیادی از host ها انجام میپذیرد. برنامه حمله بدون اطلاع مالکان، بر روی این سیستمها نصب و در رابطه با اجرای حمله به سوی هدف، فعال میگردند.مثالهای زیر را میتوان برایDOS نام برد.Buffer overflow (دریافت حجم زیادی از دادهها در پاسخ یک درخواست مانند دریافت حجم زیادی از پاسخها در مقابل دستور echo در پروتکل ICMP) SYN attack(بهرهبرداری از فضای بافر درhandshake پروتکل TCP)Teardrop Attack(تغییر فیلد offset در بسته IP)Smurf (فرستادن Broadcast یک دستور PING - ارسال پاسخ کلیه آنها به سمت هدف حمله- ایجاد ترافیک اشباع شده در سمت هدف)Back doorحمله در مخفی از طریق مودمهای dial up و غیره انجام میگردد. سناریو آن دسترسی به شبکه از طریق کنار گذاشتن مکانیزمهای کنترلی با استفاده از راههای مخفی میباشد.IP Spoofingدر این حمله قربانی متقاعد میگردد که به یک سیستم شناخته شده و قابل اطمینان متصل شده است. این حمله در لایه TCP انجام میپذیرد و آدرس یک مبدا مجاز (به جای مبدا غیرمجاز) داده میشود و مقصد این بسته را گرفته و دستورات بسته را پذیرفته، اعمال مینماید.
File extensions


سیستم عامل ویندوز قابلیتی دارد که اجازه میدهد تا پسوند یک برنامه در مقابل کاربر مخفی باقی بماند که ظاهرا باعث راحتی در کار است، اما باعث میشود برخی کدهای مخرب در ظاهری آشنا، مخفی شوند. مثلا فایلی با نام readme.txt در ظاهر یک فایل متنی بی آزار است، در حالی که می تواند نام آن readme.txt.bat باشد! و پسوند واقعی.bat به علت خاصیت ویندوز مخفی شده باشد.


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





Packet sniffing


ترافیک ایستگاه کاری شبکههای LAN ، در مقابل شنود توسط بقیه ایستگاههای کاری، در یک hub آسیبپذیر است. در این محیط، کاربر ترافیک دیگران را بدون اینکه آشکار شود و به صورت off lineگوش میدهد. ابزار شنود در این محیط، حمله را انجام داده ، ترافیک را شنود کرده، کپی نموده و سپس به مقصد نفوذکننده میفرستند. شنود شامل تمام ترافیک اینترنت مانند پست الکترونیکی، instant message و ترافیک web خواهد بود. در زمان شنود ترافیک web،تمام عملیاتی که کاربر انجام میدهد، توسط شنودکننده دیده میشود.


راه مقابله: بهترین روش محافظتی در مقابل این حمله، رمزگذاری پیامهای انتقالی است تا در صورت شنود نیز نتوان استفادهای از پیامها نمود.



Hijacking & session replay


Hijacking به معنی دزدی در حین انتقال به منظور انتقال به مقصد جدید است.


Session Hijacking وقتی رخ میدهد که یک session پروتکل TCP/IP توسط یک شنودکننده شبکه برداشت شود. به این معنی که در حال انتقال یک پیام بین فرستنده و گیرنده، تغییرات لازم در وضع و حالت پیام داده شده و پیام اصلاح شده دوباره در جریان ترافیک شبکه قرار میگیرد. با این تغییرات، نفوذکننده به عنوان مقصد پیام تعریف میشود.


تمام پیامهای بعدی تعریف شده در آن session، بین مبدا اصلی و نفوذکننده(به عنوان مقصد جدید) در جریان خواهد بود و ترافیک به سمت مقصد مورد نظر حملهکننده، تغییر مسیر میدهد و تمامی پیامهای بعدی آن session به حمله کننده میرسد.


راه مقابله: کاربردهای مبتنی بر web ، برای حملههای hijacking مناسب هستند. استفاده از پروتکل SSL از حملات hijacking و replay جلوگیری مینماید. این پروتکل بر روی TCP/IP و قبل از پروتکلهای HTTP,IMAP استفاده میگردد و به صورت client- Server اجرا میشود. سرور خود را برای Client احراز هویت نموده و اجازه میدهد client نیز خود را به سرور معرفی نماید پس از احراز هویت دو سویه، یک ارتباط رمز شده بین دو طرف برقرار میشود.
شناسایی حمله در مکانیزم های دفاعی برای پیشگیری از وقوع حمله مهم است. IDS:Intrusion Detection System از ابزاری است که در شبکه به این منظور استفاده می شود.
سیستم IDS به صورت یک ابزار در شبکه(به عنوان مسیریاب- سوییچ...) با نرم افزاری که کار مونیتورینگ ترافیک عبوری را انجام میدهد، نصب میشود. معمولا دیوار آتش به همراه IDS کار تشخیص حمله را انجام میدهند. اگر از درون یک LAN به سمت بیرون حرکت کنید ابتدا به IDS سپس به دیوار آتش میرسید و پس از آن به شبکه بیرونی(اینترنت) میرسید. زیرا دیوار آتش یا از عبور بسته ممانعت می نماید و یا بسته را عبور می دهد. بنابراین ترافیک گسیل شده از شبکه بیرون در صورتی که از دیوار آتش عبور نمود توسط IDS بررسی می شود تا در مورد مشکوک بودن رفتار آن تصمیمگیری شود. در عمل این دو ابزار در یک آدرس IP میتوانند پیادهسازی شوند. طبق تجربه بخش امنیت شبکه فناوران عصر شبکه پاسارگاد به علت منحرف نمودن توجه مهاجم از وجود ابزار امنیتی در شبکه، معمولا سیستمهای امنیتی را در غالب یک مسیریاب، سوییچ در شبکه قرار میدهیم.
یک IDS کار مونیتور نمودن ترافیک شبکه و سرکشی به فایلهایlog راانجام میدهد. به این ترتیب هرگونه تخلف از سیاستهای امنیتی معمول شبکه را تشخیص میدهد.
انواع متفاوتی از این سیستم تعریف شده است. سیستم هایی که بر مبنای رفتار ترافیک شبکه، تنظیمات پورتها، بر اساس نشانهها و رفتار یک حمله که در منبع سیستم IDS ذخیره شده است و تغییر ترافیک با این الگو تطابق داده میشود، بر اساس تخطی از الگوی رفتاری معمول یک کاربر و یا سایر مشخصه ها به تشخیص یک حمله میپردازد و هشداری مبنی بر احتمال حمله را میدهد. سیستمIDS کار مقابله با حمله و سد آن را نیز عهده دار میباشد.
سیستمهای IDSای که رفتار آماری غیر عادی را تشخیص میدهند(behavior-based) وسیستمهایی که بر روی سگمنتهای شبکه و ترافیک آنها به صورت بلادرنگ شنود و تحلیل مینمایند، سیستمهای مبتنی بر شبکه میباشند که در واقع نشانهها را تشخیص میدهند . این سیستمها شامل یک برنامه لایه کاربرد به همراه NIC میباشند. ترافیک بقیه سگمنتهای آن شبکه و یا بقیه خطوط ارتباطی همانند خطوط تلفن مونیتور نمی شوند.
سیستمهای کارآمد باید بتوانند هر نوع حملهای را با ترکیبی از این روشها و بدون تلف نمودن منابع سیستم، دادههای بلادرنگ و قابل اعتمادی از شبکه را بدست آورند. این سیستم ها برای مقابله با حمله DOS کاربرد دارند.
می توان IDS را کنار سوییچها نصب نمود و با استفاده از پورتهای خاص این ابزار که خاصیت یک هاب را دارند، ترافیک عبوری از سوییچ را به IDS فرستاد (forward نمود) به این ترتیب یک سیستم محافظتی خاموش در شبکه قرار دادهایم.
سیستم هایIDS مشکلاتی نیز دارند:
برخی هکرها حوصله زیادی در عملی نمودن حمله خود دارند. برخی حملهها بر اساس تغییرات بسیار کند ترافیک عبوری و با گذشت زمان زیاد به وقوع می پیوندند و این یعنی سیستم IDS باید نمونههای زیادی از اطلاعات را در پایگاه داده ذخیره و تحلیل نماید! و تشخیص حمله نیازمند هزینه فضای حافظها و تحلیل رفتاری طولانی مدت شبکه است.
در مواردی مشخصهها و شناسههایی که در بخش کاربرد سیستم IDS تنظیم میشوند مانند نوع سیستم عامل و شماره نسخه آن و platform مربوطه باعث میشود حملاتی که به صورت موردی و یا با فرمت جدید انجام می شود از دید دور بماند. این نوع سیستمIDS به شدت به سیستم عامل و منابع خود وابسته است و برای داشتن شبکه سالم به پشتیبانی و به روز شدن مداوم نیازمند است تا شناسایی آسیبپذیریهای جدید و هماهنگی با آنها را به خوبی انجام دهد. در واقع داشتن دید سازگار با تغییرات نوع حمله ها نیازمند همراهی با تغییرات کاربردها و امکانات مهاجمان میباشد.
در مورد سیستمهای IDS که بر اساس رفتار ترافیک عبوری تصمیمگیری مینمایند، به روز شدن و پشتیبانی ضرورت کمتری دارد. آنها بر اساس تحلیل ترافیک به تصمیمگیری میپردازند.
گاهی سیستم آنقدر حساس تنظیم شده است که با کوچکترین تغییر و تحولی در شبکه هشدار میدهد و این موقعهاست که مدیر شبکه شاکی از این ابزار محافظتی ترجیح میدهد خود با ترفندهای دستی همانند بستن پورت ICMP، کنترل دسترسی به ترافیک و برخی محدودیت های دیگر، خود به trace شبکه برای مقابله با حملات بپردازد.
نرمافزارهایی open source در شبکه با هسته Linux, Unix تعریف میشوند که ادعا مینمایند به scan پورتها میپردازند و به ما در کنترل شبکه کمک مینمایند. این نرمافزارها گاهی از طریق Back door های تعریف شده به شنود ترافیک مشغولند.
نرمافزاری مانند snort که در عمل به همراه یک موتور IDS میتواند یک سیستم تشخیص نفوذ را ایجاد کند توسط مهاجم برای استراق سمع بسته های مربوط به دیگران استفاده می شود.
حمله های مربوط به لایه کاربردی شامل انواع ویروسها و کرمها میباشد. یکی از روش های انتشار ویروسها ، قرار گرفتن در boot sector است که با هر بار روش شدن و بالا آمدن سیستم، ویروس فعال میگردد و در جاهای مختلف نظیرDVD,CD و ... قرار می گیرد.
یک ویروس روش های متفاوت تکثیر را در شبکه دارد. ویروس برای تکثیر نیازمند یک برنامه میزبان می باشد که در کامپیوتر میزبان نصب میگردد و از طریق اجرای این برنامه ، فعالیت خود را آغاز مینماید.
یک ویروس فایلهای داده را آلوده نمیکند، چون فایلهای داده اجرا نمیشوند و قسمت اجرایی هم ندارند که بتوانند به ویروس کمک کنند.

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


ویروس ها بر اساس یک برنامه HOST و بر اساس تحریکی که ممکن است کاربر به آن پاسخ دهد( مثل کلیک کردن توسط کاربر) به سیستم وارد شده و منتشر میگردند. گاهی برنامه های نامربوطی به صورت دادن پیغام از ما می خواهند یکی از گزینه های YES/NO را انتخاب کنیم تا آنها اجازه داشته باشند که نصب شوند و ما غافل از اینکه هر دو گزینه YES/NOدر باطن یکی هستند گزینه NO را انتخاب می نماییم!! و به این ترتیب به برنامه ویروس اجازه می دهیم تا در کامپیوتر ما نصب شوند!!


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

برای جلوگیری از نفوذ کرمها و ویروسها در شبکه اینترنتDARPA یک گروه به نام گروه CERT

Computer Emergency Response Team را تشکیل داد که هنوز هم در زمینه امنیت فعال است.


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

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


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

- تعیین پورت های باز

- تعیین ماشین های فعال

- به دست آوردن نقشه شبکه

- تعیین موقعیت مسیریابها و دیواره آتش

- تعیین سیستم عامل

- تجزیه و تحلیل دیواره آتش و نقاط ضعف و قوت آن


علاوه بر اطلاعات بالا می توان از نرم افزارهای قوی که برایscan نمودن و تشخیص وضعیت شبکه نوشته شدهاند، بهره برد. نرم افزارهایی مانند ethereal,NESUSو.... که البته دو نوع مورد استفاده مفید و مضر می توانند داشته باشند.


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


البته جالبه بدونید که یک مهاجم می تواند از طریق پورتی که بازمونده، نفوذ کرده و نرم افزار NESUS را در سیستم نصب نموده و نقاط ضعف شبکه را به صورت غیر مجاز scan نماید و این حسن سواستفاده از نرم افزار است!!

پروتکلهای امنیتی شبکه ها
پروتکل، مجموعه قوانینی برای ارتباط طرفین و یا دو موجودیت نظیر(peer entity) میباشد. مجموعه قوانینی که برای انتقال پیام بین دو طرف ارتباط در یک شبکه وجود دارد. پروتکلهای مختلفی در لایه های مختلف شبکه ها تعریف شدهاند. این پروتکلها اهداف مختلفی را دنبال مینمایند. پروتکلهای تعریف شده در لایه کاربرد ارتباط بین دو نهاد به صورت انتها به انتها را برقرار مینمایند. یعنی دو کاربرد در دو انتهای ارتباط به صورت امن رابطه برقرار مینمایند.

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

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

معرفی یک کاربر به شبکه، بسته به اینکه پروتکل امنیتی مربوط به کدام لایه باشد، فرق میکند. پروتکل امنیتی لایه سه، آدرس IP او را بررسی نموده و تصدیق مینماید. پروتکل امنیتی لایه کاربرد، آدرس پورتها، شماره نشست و بقیه مشخصهها را بررسی مینماید. بقیه مشخصهها میتواند شامل شماره ترتیبی(Sequent Number) نیز باشد.

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

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

از پروتکلهای امنیتی میتوانم به IPsec، SSL، SSH،TLS،WTLS اشاره کنم. هر کدام از این پروتکلها میتوانند به همراه پروتکلهای شبکه و در کنار آنها، وظیفه اجرا و پیادهسازی مکانیزمهای امنیتی را به منظور حفظ ابعاد هشتگانه امنیتی برعهده داشته باشند.

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

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

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

پروتکلهای دیگر لایه انتقال SSL، TLS میباشند و پروتکلSSH مربوط به ارتباط در لایه کاربرد میباشد. با وجودی که پروتکلهای SSL، TLS شباهت زیادی دارند، به طور همزمان و در دو طرف یک ارتباط قابل استفاده نیستند. هدف این دو پروتکل صحت داده و محرمانگی ارتباط بین طرفین ارتباط میباشد.

SSL بیشتر توسطWEB browser ها و کارهای مربوط به شبکه که امنیت در آنها مهم میباشد، به کار گرفته میشود. یکی از این کاربردهای مهم تجارت الکترونیک میباشد.SSL بر روی TCP اجرا میگردد.

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