
جعل هويت در وب به صورت ساده! - قسمت اول
در زمانهاي گذشته سرقتهاي بانكي توسط دزدان حرفه اي و با تجربه اي انجام مي شد كه سالهاي عمر خود را در اين راه گذرانده اند و به قول معروف پير اين راه شده اند ولي امروزه دزدي از بانكها توسط افراد زير 18 سالي انجام مي شود كه فقط يك ارتباط تلفني با اينترنت دارند.
براي فهميدن اين خطر سناريو هاي زير را بخوانيد :
سناريو اول :
مايكل كه يك كارمند ساده مي باشد ( كاربر مشروع) براي بررسي حساب بانكي خود(پايگاه داده ) به بانك محلي خود(سرور وب بانك ) مي رود و توسط تحويلدار آن (برنامه كاربردي وب ) كارش را انجام داده و بر مي گردد.
سناريو دوم:
ادوارد (كاربر نامشروع) به همان بانك محلي رفته و از در جلو وارد مي شود(پورت 80 ) و خودش را شبيه هر مشتري كه مي خواهد مي كند !
او حتي به اين فكر مي كند كه براي سرقت بانك لازم نيست كه از درهاي ديگر وارد شود (پورتهاي ديگر ) بنابراين از نظر نگهبان جلو در (ديواره آتش) او فرد بي خطري مي باشد. او توسط تحويل دار ديگري (برنامه كاربردي وب) سرويس دهي مي شود در حاليكه او به دروغ خود را مايكل معرفي كرده است و تحويل دار نيز اين را باور كرده است(مديريت نشست ها [1]) كه او ادوارد نيست و مايكل مي باشد. بنابراين به او اجازه مي دهد كه به حساب بانكي مايكل دسترسي داشته باشد.
سناريو دوم يك حمله واقعي جعل هويت را شرح مي دهد كه توسط نگهبان امنيتي (ديواره آتش) نيز قابل شناسايي نمي باشد.
ازدياد تجارتخانه هاي الكترونيكي و يا هر چيز ديگري كه توسط اينترنت انجام مي شود باعث شده است حملات به آنها از دنياي واقعي به دنياي مجازي نفوذگران تغيير مكان دهد.
نتيجه چنين حملات جعل هويتي در برنامه هاي كاربردي وب ( كه در دنياي نفوذگران به حملات جعل هويت[2] معروف است ) باعث آشكار شدن اطلاعات و هويت افراد و پس از آن دستبرد و دزدي سرمايه هاي آنها در وب مي باشد.
به علت ضعف ديواره هاي آتش در تشخيص چنين حملاتي باعث شده است كه اينگونه حملات مورد توجه بسياري از نفوذگران كلاه سياه قرار گيرد و باعث دغدغه خاطر و نگراني بسياري از مديران سايت ها و برنامه نويسان تحت وب قرار گرفته است.
در اين مقاله قصد بر آن است كه توضيح بسيار مختصري درباره اين نوع حمله داده شود و توسط مثالهايي كه زده مي شود فهم اين مطلب را براي بسياري از دوستان راحت كنيم. هر چند براي فهم بهتر اين مطلب بايد آشنايي تقريبي با تكنيكها مديريت نشست ها داشته باشيد. در پايان نيز راههاي مقابله با اين گونه حملات بيان شده است كه اميد است مورد توجه مديران و برنامه نويسان سايتها قرار گيرد.
مديريت نشستها
مديرست نشستها شامل تكنيكهايي مي باشد كه به وسيله برنامه هاي كاربردي وب به كار مي رود تا براي هر درخواست Http اي كه كاربران مي فرستند هر باره LOGIN نكنند و كسب مجوز لازم براي حق دسترسي به آن درخواست داده شود. مسووليت مديريت اين كار توسط خود برنامه كاربردي وب مي باشد. به همين وسيله مي باشد كه پروتكل Http از حالت Stateless به حالت Statefull درآيد.مديريت نشست ها به اين صورت مي باشد كه برنامه كاربردي وب پس از دادن كسب مجوز لازم براي كاربر يك نشانه نشست براي او ارسال مي كند. در بيشتر مواقع اين نشانه توسط مجموعه كوكيها تنظيم مي گردد كه در سيستم مشتري ذخيره مي شود. اين نشانه هاي نشست با هر درخواستي كه كاربر دارد ارسال مي گردد تا برنامه كاربردي وب بر طبق آن هويت شما را تشخيص دهد.
مثال ساده :
وقتي در سايت www.iranianchat.com وارد مي شويد و مي خواهيد وارد اتاق گفتگو شويد هنگامي كه يك اسم را انتخاب مي كنيد و وارد اتاق مي شويد برنامه كاربردي يك نشانه نشست(chatID ) به شما مي دهد كه در متن صفحه اتاق گفتگو نهفته است و وقتي كه شما پيغامي را براي دوستتان مي فرستيد پيغام شما به همراه اين نشانه براي برنامه كاربردي ارسال شده و متن فرستاده شده از طرف شما روي صفحه ظاهر مي گردد.يعني به صورت زير:
http://www.englishpersian.com/Chat1/Chat.asp?ChatID=3087.2&PostMsg=Hello
و از همين طريق مي باشد كه برنامه كاربردي تشخيص مي دهد كه كدام كاربر كسب مجوز دارد و كدام ندارد در مثال بالا يعني كاربري كه پيام خود را ارسال مي كند آيا قبلا اسمي براي خود انتخاب كرده است يا خير !
مكانيسمهاي مديريت نشستها را در دو دسته مي توان گنجاند : مكانيسمهاي سمت مشتري و مكانيسمهاي سمت سرور . اين دسته بندي بر اساس محتواي نشانه هاي نشست هايي است كه بين مشتري و برنامه هاي كاربردي رد و بدل مي شود.
مديريت نشستهاي سمت كاربر
در اين نوع از مديريت نشستها ، نشانه توكن شامل ضروري ترين بخش براي دادن كسب مجوز به كاربران مي باشد.بنابراين اين بخش از اطلاعات كسب مجوز در سمت مشتري خيره مي شود كه اغلب اين كار توسط كوكيها در سمت مشتري انجام مي گردد. حال اگر كسي اين نشانه را طوري ماهرانه تغيير دهد تا شبيه نشانه فرد ديگري شود آنگاه برنامه كاربردي اينگونه فكر مي كند كه اين شخص همان شخص است.
مديريت نشستهاي سمت سرور
يك اختلاف اساسي بين اين نوع از مديريت با نوع قبلي وجود دارد و آن اين است كه در اين نوع مديريت اطلاعات كاربران در بانك اطلاعاتي سرور ذخيره مي شود و در كوكيها هيچ اطلاعاتي ذخيره نمي گردد. ولي در اينجا نيز نشانه نشست (Token Session ) بين سرور و كاربر رد و بدل مي شود. به عنوان مثال وقتي وارد سايت xyzbank.com مي شويد و پس از اينكه كسب مجوز لازم براي ورود به سايت را دريافت كرديد يك sessioniID به شما تعلق مي گيرد كه اين نشانه شما مي باشد.
Amiri :
http://www.xyzbank.com/showbil.asp?sessionID=1027
Alizade:
http://www.xyzbank.com/showbil.asp?sessionID=1028
اين نشانه هاي مي تواند در بانك اطلاعاتي سمت سرور به صورت زير ذخيره گردد: aaa
| Account | Admin | Username | Index |
|---|---|---|---|
| .... | .... | .... | .... |
| All | Y | Hosseini | 1025 |
| 087 | N | Madadi | 1026 |
| 545 | N | Amiri | 1027 |
| 784 | N | Alizade | 1028 |
| 452 | N | Sharifi | 1029 |
| .... | .... | .... | .... |
براي اينكه آقاي اميري بخواهد خودش را جاي آقاي عليزاده بزند كافي است كه SessionID خودش را به SessionID آقاي عليزاده تغيير دهد يعني لينك زير را ارسال كند:
http://www.xyzbank.com/showbil.asp?sessionID=1028
باز هم مي بينيم كه طلاعات ذخيره شده در سمت سرور هم نمي تواند ما را در برابر جعل هويت مصون كند.
ادامه مطلب را در قسمت دوم مطالعه كنيد.


