در اين مقاله در تكنيك تشخيص حمله براي شبكه هاي and-hoc كه از همكاري گره ها در يك همسايگي براي كشف يك گره مهاجم (بدانديش) در آن همسايگي استفاده مي كند. اولين روش براي تشخيص گره هاي مهاجم در يك همسايگي كه هر دو جفت گره در يك محدودة راديويي مي باشند. اين قبيل گره هاي همسايه به عنوان دسته (گروه يا clique) شناخته مي شوند.

روش دوم براي تشخيص گره هاي مهاجم در يك همسايگي كه ممكن است دو گره در يك محدودة راديويي نباشند اما يك گره مياني مابين آنها وجود دارد كه ساير گره‌ها در يك همسايگي one-hop از آن قرار دارند. اين همسايگي به عنوان كلاستر شناخته مي شود. يك گره كه monitor ناميده مي شود فرايند تشخيص حمله را آغاز مي كند. هر دو روش از روش message-passing بين گره ها استفاده مي كنند. بر اساس پيام هايي كه در خلال فرايند تشخيص دريافت مي شود هر گره از گره هاي مظنون را تعيين مي كند و نظر خود را به گره مانيتور مي فرستد. گره مانيتور به محض بازرسي آراي گره هاي مهاجم را از ميان گره هاي مظنون تعيين مي‌كند. اين سيستم تشخيص حمله از هر پروتكل مسيريابي مستقل مي‌باشد. اثبات درستي روش اول در اين جا مي آيد و نشان مي دهد كه روش هنگامي كه هيچ از دست رفتن پيام نداشته باشيم به درستي كار مي كند. همچنين با شبيه سازي نشان داده مي شود كه هر دو الگوريتم راندمان خوبي حتي وقتي كه از بين رفتن پيام در كانالهاي نامطمئن داشته باشيم.

۱- مقدمه
ازياد وسايل موبايل مانند لپ تاپ، PDA و تلفنهاي همراه، برنامه‌هاي كاربردي مهيجي نظير كلاسهاي مجازي، كنفرانسهاي مجازي و… را باعث شده است . شبكه ael-hoc موبايل يك تكنولوژي است كه تمامي برنامه هاي مذكور را در هر مكاني مقدمه مي سازد. همه چيزي كه مورد نياز مي باشد اين است كه يك گروه از گروه هاي متحرك قابليت خود سازماندهي و شكل دهي يك شبكه بدون نياز به ساختار پايه اي ثابت و يك كنترل مركزي داشته باشند. در اين شبكه يك گره موبايل به عنوان يك ميزبان و يك روتر در يك زمان عمل مي‌كند. اين شبكه يك گره موبايل را به صورت واقعي موبايل مي سازد در مقايسه با شبكه هاي موبايل ساختارگرا كه يك گره مقيد به فعاليت در يك شعاع مشخص توسط زير ساختار مي باشد .

همچنين يك شبكه adhoc موبايل (Monet) مي تواند در زماني كه امكان يك ارتباط در يك ناحيه توسط يك ساختار ثابت قول به صرفه نباشد و يا از لحاظ جغرافيايي غيرممكن باشد، سودمند باشد. اما نقطه منفي اين شبكه سختي تضمين يك ارتباط مطمئن در آن شبكه مي باشد. فراهم كردن امنيت در شبكه هاي adhoc به خاطر احتياج به يك ارتباط محافظت شده و مطمئن بين گره هاي متحرك در محيط داشتن موضوع اصلي و مهم اين شبكه‌ها مي‌باشد. برخلاف شبكه هاي بي سيم ساختارگرا ويژگي واحد Manet ها مانند ساختار باز شبكه، رسانه بي سيم مشترك، محدوديت منابع و توپولوژي هاي پوياي شبكه چالش هاي امنيتي جديدي را مطرح كرده است.

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

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

در اين مقاله به بررسي دو الگوريتم براي تشخيص گره هاي مهاجم مي پردازيم. اولي كه ADCII ناميده مي شود براي تشخيص گره هاي مهاجم در يك گروه (Clique) و دومي كه ASDCLU نام دارد براي تشخيص گره هاي مهاجم در يك كلاستر مي باشد. در هر دو الگوريتم از مكانيزم تبادل پيام استفاده مي شود كه هر كدام از گره ها را قادر مي سازد كه گره هاي فطتون به نفوذ را تعيين كنند. در پايان يك رأي گيري براي تشخيص گره هاي مهاجم از بين اين گره هاي مظنون صورت مي‌گيرد. از دست رفتن بسته به خاطر ارتباط غيرمطمئن نيز شبيه سازي شده است و از طريق شبيه سازي نيز كارايي الگوريتم دوم نيز بررسي مي شود.

– كارهاي مربوطه
در زير تعدادي از تكنيكهاي پيشنهاد شده براي تشخيص حمله در MANET آمده است .
Watchday: يك روش ID مي باشد كه در هر گره در شبكه adhoc موبايل اجرا مي شود. در اين روش فرض مي شود كه گره ها در يك حالت بيقاعده عمل مي كنند. كه گره ها را وادار به گوش داده به انتقالات در همسايه هاي مجاور (يك پرشه) مي كند . بنابراين با گوش دادن به همسايه‌هايش مي تواند تشخيص دهد كه بسته هايي را كه به همسايه‌اش فرستاده است توسط آن منتقل شده است يا نه. اگر گره همسايه به عنوان يك نفوذي تشخيص داده شود به آن گره و رفتارش را به عنوان نفوذي به path-rater گزارش مي دهد. مثالهايي از رفتارهاي نفوذي از بين بردن يك بسته و يا تغيير محتواي آن قبل از فوروارد كردن آن مي باشد .

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

Ling , Manik opaulas يك معماري براي امنيت شبكه موبايل adhoc ارائه كرده اند كه در آن يك IDS بر روي تمامي گره ها اجرا مي شود. اين IDS داده هاي محلي را از گره ميزبان و همسايگانش در يك محدوده ارتباطي جمع آوري كرده و به داده هاي خام را پردازش مي كند و به صورت دوره اي دسته بندي از رفتارهاي نرم و غير نرمال بر اساس داده هاي پردازش شده اند. گره ميزبان و گره هاي همسايه را پخش مي كند.
يك طرح ديگر كه بر اساس طرح اصل كشف سوء استفاده مي باشد كه به درستي اثرات حملات شناخته شده در آن را تطبيق مي كند. طرح ديگر بر اساس رفتار غير عادي گره هاي همسايه مي باشد. هر گره فعاليت هاي رفت و آمدي مشخصي را در حوزه راديويي خود مانيتور مي كند. تمام نفوذهاي كشف شده محلي دريك udit log نگهداري مي‌شود. اين داده هاي جمع آوري شده توسط الگوريتم هاي خاص پردازش مي شوند و حملات را تشخيص مي دهند.

الگوريتم ها:
در اين بخش دو الگوريتم براي تشخيص گره هاي بدخواه در يك MANET پيشنهاد مي شود يك گره بدخواه، گره اي است كه مطابق رفتار مورد نظر عمل نمي كند و ممكن است از انواع مختلف روشهاي حمله كه در بخش قبل گفته شد استفاده كند. بيشتر اين حملات با تغيير محتواي پيام قبل از فوروارد كردن آن و يا فوروارد نكردن پيامي كه بايد منتقل شود صورت مي گيرد. در زمان توسعه اين دو الگوريتم فرض شده است كه گره هاي بدخواه اين دو ويژگي را در طول دوره حياتشان بروز خواهند داد. سعي مي شود كه اين رفتارهاي ناخواسته كشف و در نهايت گره هاي بدخواه كه اين ويژگيها را نمايان مي سازند به دام افتاده شوند.

الگوريتم هيا ADCLU, ADCLI مي تواند در گروه ها يا كلاسترهاي مختلف اجرا شوند. هر گروه (كلاستر) با يك سري اطلاعات در مورد گره هاي بدخواه مطرح مي شوند (اگر اين اطلاعات وجود داشته باشد) . از اين اطلاعات جهت ايزوله كردن گره هاي بدخواه مي تواند استفاده شود. علاوه بر اين اين اطلاعات ممكن است به گره هيا ديگر در ديگر گروه ها (كلاسترها) فرستاده شود به طوريكه آنها نيز بتواند اين گره را از خود ايزوله كنند.

به بيان ديگر اطلاعات در مورد گره هاي مزاحم ممكن است در تصميم گيري هاي مسيريابي استفاده شود. هر گره اي كه الگوريتم (ADCLU) ADCLI را آغاز مي كند مانيتور ناميده مي شود. الگوريتم هاي مختلفي براي دسته بندي گره ها در يك MANET به كلاسترها وجود دارد كه الگوريتم هاي خوشه بندي ناميده مي شوند.

اين الگوريتم ها يك گره در كلاستر را به عنوان Cluster head در نظر مي گيرند. خوشه بندي (كلاسترينگ) عموماً براي مسيريابي هاي سلسله مراتبي انجام مي شود . در يك MANET كه در آن براي اهداف مسيريابي كلاسترينگ صورت گرفته است، اين الگوريتم مي‌تواند در كلاستر موجود انجام شوند و cluster head به عنوان مانيتور در نظر گرفته شود. به خاطر سربار زياد گره مانيتور باطري آن سريعتر از ساير گره هاي كلاستر خالي مي شود اين مسئله با بكارگيري الگوريتم كلاسترينگي كه در يك دوره زماني وابسته به مصرف منبع تغذيه اعضا به طوريكه يك توازن بين سطوح انرژي گره ها در يك كلاستر وجود داشته باشد.

الگوريتم ها گره هاي بدخواه در يك گروه يا كلاستر را در يك نمونه زماني مشخص كشف مي كند بهرحال اعمال مجازات براي يك گره بر اساس رفتار آن در يك لحظه از زمان جالب نيست با توجه به اينكه شبكه ممكن است داراي از دست رفتن packel و يا ازدحام باشد. بنابراين اين الگوريتم مي تواند در يك دوره زماني به صورت تصادفي اجرا شود و رفتار گره ها در دوره هاي گذشته مشاهده شود قبل از اعمال هر گونه تنبيه. اين روش به گره هايي كه قبلاً رفتار بدانديشانه داشته اندجهت اصلاح و پذيرش دوباره در شبكه كمك مي كند. گذشته از اين ها، در حالتيكه شبكه داراي ازدحام است ممكن است بسته اي drop شود الگوريتم به درستي عمل نمي كند و ممكن است كه مكانيزمي كه براي كنترل ازدحام وجود دارد abort شود.

الگوريتم ADCLI
اين الگوريتم براي كشف گره هاي فراهم درحالتيكه تمامي گره ها در يك محدوده راديويي هستند استفاده مي شود (شكل ۱) اين مجموعه از گره ها گروه (clique) ناميده مي شوددو گره در يك محدوده راديويي ممكن است توسط يك لبه بين آنها نمايش داده شوند (شكل ۲)

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

حال الگوريتم تشخيص حمله اي كه حدكثر k گره مزاحم را از ميان n گره كه در يك محدوده راديويي هستند و n>flect مي باشد ارائه مي‌شود.
گام اول: در گام اول گره مانيتور (m) يك پيام درست را به n-1 گره ديگر مي فرستد و از آنها مي خواهد آن را به n-2 گره ديگر منتقل كنند.

گام ۲ – به محض دريافت گره پيام، گره I (براي هر I كه مانيتور نباشد)‌آن را به ساير گره ها ارسال مي كند. (در اين حالت گره مزاحم ممكن است كه آن را ارسال نكند و يا به صورت اشتباه نيست به پيام درست اوليه ارسال كند).
گام ۳- در اين گام گره مانيتور يك پيام درخواست راي گيري براي گره مزاحم را به ساير گره ها مي فرستد.

گام ۴- به هنگام دريافت اين پيام توسط از گره مانيتور، n-1 گره ديگر به صورت زير عمل مي كنند: براي هر گره و پيامي است كه توسط گره I از گره j در گام ۲ دريافت شده است. (اگر گره I پيامي از گره j دريافت نكند و يا به صورت اشتباه دريافت كند مقدار برابر wrong قرار مي گيرد).
گام ۵: بعد از دريافت آراء در گام ۴ گره مانيتور به صورت زير عمل مي كند:
۱- دريافت حداكثر
۲- تعيين گره هاي (D1,D0,…Dm) كه حداقل k+1 راي به عنوان گره مزاحم دارند. M تعداد گره هاي مزاحم است.

۳- اگر تعداد گره هاي كشف شده به عنوان گره مزاحم بيشتر از k باشد فرايند كشف قطع مي شود . (وقتي فرايند كشف قطع شد به معني اينست كه تعداد گره هاي مزاحم بيشتر از k است)
در گام اول پيامي براي كشف گره هاي مزاحم توسط گره مانيتور به ساير گره ها فرستاده مي شود در گام دوم اگر يك گره مزاحم نباشد آن را به درتي منتقل مي كند و اگر گره مزاحم باشد دو حالت زير اتفاق مي افتد.

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

در گام ۴، n-1 گره اطلاعات خود را در مورد گره هاي مظنون به گره مانيتور مي فرستد گره هاي مظنون آنهايي هستند كه رفتار بدخواهانه داشته‌اند. در اين گام اين قبيل گره ها را مظنون مي خوانيم نه مزاحم. زيرا بعضي از گره هاي مظنون ممكن است كه مزاحم نباشند . اين حالت زماني پيش مي آيد كه يك گره مزاحم در مورد ساير گره به دروغ نظر دهد و اين گره ها را به عنوان مظنون به مانيتور معرفي كند.

(توجه شود كه گره مزاحم در هيچ گامي قابل اعتماد نيست كه به درستي عمل كند)
در گام ۵ گره مانيتور راي ها را شماره مي كند تا گره هاي مزاحم را پيدا كند.
مثال: براي درك بهتر الگوريتم حالتي را كه در آن ۵ گره وجود دارد و يك گره مزاحم در آن است را شرح مي دهيم . شكل ۳ پيام هاي رد و بدل شده بين گره ها در دو گام اول نمايش مي دهد . گره صفر يك گره مزاحم و گره يك گره مانيتور است. در گام اول، گره يك پيام Right (كه با برچسب R مشخص است) به ساير گره ها (۰ و ۲ و ۳ و ۴) مي‌فرستد. در گام ۲ هر كدام از اين چهار گره پيام را به گره هاي ديگر رله مي‌كنند.

گره هاي ۲ و ۳ و ۴ مزاحم نيستند و پيام را به درستي رله مي‌كنند. ولي گره صفر كه يك گره مزاحم است پيام wrong را به گره هاي ۲ و۳ و پيام Right را به گره ۴ رله مي كند. شكل ۴ پيام هاي دريافت شده توسط n-1 گره در طول گام هاي يك دو دو الگوريتم و آراء برگردانده شده توسط آنها در گام ۳ را نشان مي دهد . يك سطر بيانگر پيام هاي دريافت شده توسط يك گره است . به عنوان مثال رديف اول ماتريس نشان مي دهد كه گره صفر پيام (R,R,R,R) را از گره هاي ۱و۲و۳و۴ دريافت كرده است . در گام۳ به اين پيام گره هاي ۲و ۳ يك راي براي گره صفر بر مي گرداند. گره مزاحم صفر ممكن است يك راي دروغين را به گره مانيتور بفرستد در اينجا دو حالت مورد توجه است:

حالت اول: گره مزاحم صفر هيچ رايي را به گره مانيتور ارسال نكند. در اين حالت گره مانيتور راي (۰,۰) را دريافت خواهد كرد. در اينجا تشخيص مي دهد كه گره صفر كه حداقل k+1 راي را كسب كرده است گره مزاحم است.
حالت دوم: گره صفر در يك رفتار بدخواهانه حداكثر k راي را براي گره هاي غيرمزاحم ديگر به گره مانيتور بفرستد.

در اين حالت (شكل ۴) يك راي براي گره غيرمزاحم ۴ توسط گره صفر فرستاده شده است گره مانيتور در گام۵ آراء (۴و۰و۰) را دريافت مي كند و گره صفر را كه حداقلk+1 راي كسب كرده است به عنوان گره مزاحم كشف مي كند.
مثال بالا نشان مي دهد كه الگوريتم در حالتيكه تنها يك گره منفرد مزاحم وجود دارد كار مي كند در حالتيكه بيش از يك گره با همديگر تباني كرده باشند توسط مثال زير شرح داده مي شود.
اشكال ۵ و۶ چگونگي كار الگوريتم را براي حالتيكه كه n=9 و k=2 است شرح مي دهد . گره يك گره مانيتور و گره هاي صفر و گره مزاحم هستند.

در گام اول گره يك پيام R را ساير گره ها مي فرستد . در گام دو هر كدام از ۸ گره نيز پيام را به گره هاي ديگر به غير از گره مانيتور رله مي كنند. گره صفر پيام w را به گره هاي ۲و۶و۷و۸ (حداقل نصف هفت گره باقيمانده) رله مي كند و پيام R را به گره هاي ۳و۴و۵ ارسال مي كند . به طور مشابه گره ۲ نيز پيام w را به گره هاي ۰و۳و۴و۵ رله مي كند.

شكل ۶ . پيام هاي دريافت شده توسط گره ها در گام هاي ۱ و۲ و آراء دريافتي در گام ۳ را نشان مي دهد . فرض كنيد كه گره هاي صفر و ۲ با هم تباني كرده اند كه گزارش يكديگر را ندهند. به علاوه به توافق رسيده اند كه راهي به مظنون بودن گره هاي ۳ و۴ بدهند. ماكزيمم رايي كه توسط گره مانيتور پذيرفته خواهد شد مطابق فرض الگوريتم k تا خواهد بود. حتي اگر بخواهند بيش از k را بفرستند تنها k راي متفاوت پذيرفته خواهد شد. در نهايت گره هاي صفر و دو به عنوان گره مزاحم نشاخته مي شوند زيرا حداقل ۳ راي براي آنها كسب شده است.

 

۳-۲- الگوريتم ADCLU
اين الگوريتم براي كشف گره هاي مزاحم در حالتيكه يك مجموعه از گره ها به شكل كلاستر وجود دارد كه به صورت يك همسايگي از گره ها كه در آن يك گره به صورت ۱-hop با بقيه گره ها در ارتباط است (شكل ۷) برخلاف clique ممكن است دو گره در يك محدوده راديويي نباشند . براي ارائه الگوريتم فرضيات زير را در نظرمي گيريم: ارتباط بي سيم بين گره به صورت دوطرفه مي باشد و در زمان شروع الگوريتم توسط گره مانيتور راهي براي فهميدن اينكه الگوريتم كشف در حال فعاليت است وجود ندارد . حال گام هاي الگوريتم را شرح مي دهيم:

گام اول: ارسال پيام Right به صورت پراكني به ساير گره هاي همسايه و درخواست از آنها جهت ارسال آن به گره هاي همسايه .
گام ۲: به محض دريافت پيام R هر همسايه B از M پيام را به همسايه هايش مي فرستد (B پيام R را انتقال مي دهد اگر مزاحم نباشد و در غير اينصورت w را منتقل مي كند) .
گام ۳: گره مانيتور درخواست راي گيري مي كند (پيام راي گيري را پخش مي كند).
گام ۴: به محض دريافت پيام راي گيري توسط گره هاي همسايه M ، هر همسايه (B) اعمال زير را انجام مي دهد.

– PA پيامي است كه توسط گره B از گره A دريافت شده است (اگر گره B پيامي از گره A دريافت نكند و يا اشتباه دريافت كند در اينصورت مقدار PA برابر wrong است).
– اگر باشد، گره B يك راي براي گره A به مانيتور مي‌فرستد .
گام پنج: در هنگام دريافت آراء توسط مانيتور ، گره مانيتور كارهائي زير را انجام مي دهد.
۱-گره مانيتور فقط يك راي از هر گره در مورد گره هاي مظنون مي‌پذيرد.
۲- NA تعداد آراء دريافت شده براي گره A است. اگر باشد. گره A به عنوان مزاحم شناخته مي شود.