در این شماره به بحث درباره سایر روشها پرداخته و آنها را بررسی مینماییم. یکی از مهمترین این حملات به واسطه درهم شکستن سازوکار احراز اصالت انجام میگیرد.
حمله به سازوکار احراز اصالت
سازوکار احراز اصالت روشی است که به کمک آن هویت طرف مقابل یک ارتباط شناسایی میگردد. مهاجم میتوانند از شیوه طراحی و نیز معایب پیادهسازی این سازوکار در برنامههای کاربردی وب، از قبیل نارسایی نحوه بررسی و استحکام رمز عبور و یا انتقال ناامن گواهی نامهها استفاده نماید.
الف - تعیین نام کاربری
یک روش برای حمله به سازوکار احراز اصالت، تعیین نام کاربری قربانی بصورت فهرستنویسی، توسط مهاجم است. در صورتی که برای ورود به سیستم به دلیل رخداد خطا در وارد نمودن قسمتی از نام کاربری یا رمز عبور پیام خطا اعلام شود، نام کاربری و رمز عبور کاربرانِ نرمافزار را میتوان از روشهای سعی و خطا حدس زد.
برخی از برنامههای کاربردی به طور خودکار حساب کاربری را بر اساس یک دنباله ( مانندuser۱۰۰۱، user۱۰۰۲ و... )، تولید میکنند.
بنابراین مهاجم میتواند به گونه ای آنرا پیش بینی نماید. در نتیجه میتواند توالی و نحوه تعیین نام کاربری معتبر را بدست آورد. لازم به توضیح است که در روش تعیین نام کاربری، در صورتی که در برنامه سیاست تحریم حساب کاربری پیادهسازی شده باشد، پیامهای خطای پشت سر هم با شکست مواجه خواهد شد. بطور نمونه برنامه کاربردی پس از دریافت پیامهای خطای پشت سرهم حساب کاربری را برای مدت زمان معینی قفل مینماید.
ب - حمله به رمز عبور
حمله به رمز عبور و سوء استفاده از قابلیتهای آن روش دیگری است که برای درهم شکستن سازوکار احراز اصالت بکار میرود. این حمله خود شامل روشهای مختلفی است. بعنوان یک راهکار، مهاجم اقدام به یافتن راه حلی برای تغییر رمز عبور در داخل برنامه کاربردی، به کمک جستجوی عنکبوتی برنامه و یا ایجاد یک حساب کاربری برای ورود به سیستم مینماید.
بدین صورت که سعی میشود تا رشته ای تصادفی برای فیلد رمز عبور قدیمی، رمز عبور جدید و نیز فیلد تکرار رمز عبور جدید در نظر گرفته شود. پس از آن مهاجم به تجزیه و تحلیل خطاها برای شناسایی نقاط آسیبپذیری در قابلیتهای تغییر رمز عبور می پردازد.
روش دیگری نیز وجود دارد و آن استفاده از ویژگی «فراموشی رمز عبور» است که جهت بازیابی رمز عبور توسط کاربر از آن استفاده میشود و ما تاکنون بارها از آن استفاده کردهایم.
این موضوع معمولا یک چالش برای کاربر محسوب میشود. اگر تعداد تلاش برای بازیابی رمز عبور محدود نباشد، مهاجم به کمک مهندسی اجتماعی میتواند در این زمینه صاحب موفقیت شود. از این رو ممکن است برنامههای کاربردی آدرس بازیابیURL منحصربفرد یا همان رمز عبور فعلی را به آدرس ایمیل تعیین شده توسط مهاجمی که توانسته در این چالش پیروز شود، ارسال نماید.
یک ویژگی دیگر نیز میتواند مورد سوءاستفاده مهاجم قرار گیرد و آن استفاده از ویژگی «مرا به خاطر داشته باش» است. این کارکرد، ابزاری است که برای استفاده از آن از کوکیهای پایدار استفاده میشود.
این کوکیها بصورت شناسه دائمی یک نشست و یا یک نام همچون RememberUser=MP۶۴۲۹ یا RememberUser= mousavipour میباشند. مهاجم میتواند از یک شمارشگر نام کاربری یا پیش بینی شناسه یک نشست، مثل استفاده از مشخصات فرد استفادهکننده برای دور زدن سازوکار احراز اصالت استفاده نماید.
ج - حمله نشست
در مرحله اول این حمله که مربوط به حملات به سازوکارِ احراز اصالت است، مهاجم اقدام به جمعآوری مقادیر چند شناسه نشستِ معتبر مینماید. جمعآوری این مقادیر با آزمایش مداوم و تشخیصِ ترافیک کاربران معتبر انجام میگیرد.
سپس مهاجم شناسههای جمعآوری شده نشست را تجزیه و تحلیل نموده و فرایند تولید شناسه نشست را همچون ساختارِ شناسه نشست، اطلاعاتی که در ایجاد آن مورد استفاده قرار میگیرد و الگوریتم رمزگذاری و یا الگوریتم درهم نمودن متن را که جهت محافظت نرمافزار استفاده میشود، تعیین مینماید.
سازوکارهای تولید نشستی که مورد حمله قرار میگیرند، ترکیبی از نام کاربری یا دیگر اطلاعات قابل پیش بینی نظیر برچسب زمانی و یا آدرس IP مشتری هستند که از آنها برای شناسههای نشست استفاده میشود. مهاجم میتواند به کمک تکنیکی موسوم به کاربریِ ناشیانه مقادیر مختلفی از شناسههای نشست را تولید نموده و تست نماید و تا موفقیت در دسترسی به نرمافزار کاربردی آنرا ادامه دهد.
د - سوء استفاده از کوکیها
آخرین موردی که در چهارچوب حملات به سازوکار احراز اصالت بررسی میگردد، سوءاستفاده از کوکیها توسط مهاجم است. در صورتی که کوکیها شناسههای نشست یا رمزهای عبور را در خود داشته باشند، مهاجم میتوانند با استفاده از روشهایی مانند تزریق اسکریپت و یا استراق سمع آنها را سرقت کند. آنگاه کوکیهای مشابه را با تغییر رمزهای عبور یا شناسههای نشست، برای دور زدن برنامه احراز هویت به محل خود باز میگرداند.
حمله به ساختار احراز اصالت
یکی از روشهای دیگر حمله به برنامههای تحت وب، حمله به ساختار احراز اصالت است. مهاجم برای خرابکاری تمهیداتِ برنامههای مجازشناسی، از طریق تغییر فیلدهای ورودیِ درخواستهای HTTP اقدام نموده و آنها را دستکاری مینماید. این فیلدها مربوط به شناسه کاربر، نام کاربری، گروه دسترسی، هزینه، نام فایل، شناسههای فایل، و... میباشد.
اولین دسترسی مهاجم به نرمافزار وب با استفاده از حساب کاربری کم اهمیت انجام میگیرد و بعد از آن دسترسی به منابع حفاظت شده با اهمیتتر صورت میگیرد. در این روش مهاجم اقدام به مطالعه و بررسی غیر مجاز درخواستهای HTTP شامل پارامترهای بررسی رشتههای جستجو و نیز سرآیندهای HTTP میکند.
در صورتیکه رشته پرس و جو که جهت استخراج دادهها از پایگاه دادهها و به كارگیرى آنها استفاده میگردد، در نوار آدرس جستجوگر صفحات وب قابل دیدن باشد، مهاجم بسادگی میتواند با تغییر پارامترهای رشته، سازوکار احراز اصالت را دور بزند و از آن عبور کند.
در ارتباط با سرآیندهای HTTP نیز این نکته حائز اهمیت است که، اگر نرمافزار از سرآیند ارجاع جهت ایجاد تصمیم گیریهای کنترل دسترسی استفاده کند، مهاجم میتواند از آن برای تغییر عملکردهای دسترسی حفاظت شده نرمافزار استفاده نماید.
علاوه بر مطالعه غیر مجاز درخواستهای HTTP مهاجم اقدام به مطالعه غیر مجاز پارامترهای کوکی میکند. به این صورت که در گام نخست، اقدام به جمعآوری برخی از کوکیهای ذخیره شده توسط برنامه تحت وب نموده و جهت تعیین سازوکار و چگونگی تولید کوکیها، آنها را مورد تجزیه و تحلیل قرار میدهد.
پس از آن مهاجم کوکیهای ذخیره شده توسط برنامه تحت وب را در تله انداخته و در آنها تغییرات غیر مجاز خود را انجام میدهد.
حمله به سازوکار مدیریتِ نشست
مهاجم سازوکار مدیریت یک نشست را در یک برنامه کاربردی تجزیه نموده تا بتواند از کنترلهای مجازشناسی آن عبور کرده و خود را بجای کاربران دارای امتیاز ویژه و در واقع با هویت جعلی جا بزند.
برای تولید مجوز یک نشست ابتدا مجوزهای آن نشست پیشبینی شده و سپس دستکاری غیرمجاز بر روی علائم و مجوزهای نشست انجام میگیرد. چگونگی استفاده و بکارگیری مجوز نشست نیز موضوعی است که به آن پرداخته میشود.
همانطور که گفته شد، برای تولید مجوز یک نشست این دو عنوان مورد توجهاند. موضوع اول محاسبه و پیش بینی مجوزهای نشست و دیگری مطالعه و دستکاری غیر مجاز علائم و مجوزهای نشست میباشد. نمونهای از یک رمزگذاری ضعیف که منجر به حمله گردیده است در شکل آورده شده است که در آن رمزگذاری در مبنای شانزده یک رشته اسکی بصورت user=mousavipour;app=admin;date=۱۰/۱۲/۱۳۹۱, میباشد.
در این مثال، مهاجم میتواند مجوزهای دیگر نشست را تنها با تغییر تاریخ این متن حدس بزند و از آن در ارتباطات آتی با سرور استفاده نماید. بنابراین مهاجم میتواند مجوز نشست معتبر را با بررسی مداوم و تشخیصِ ترافیک و یا بصورت ورود غیرقانونی به نرمافزار و تجزیه و تحلیل آن برای شیوه رمزگذاری (hex-encoding, Base۶۴ ) و یا هر الگوی و نشانه دیگری بدست آورد.
در صورتیکه بتوان از هر نشانه و مفهومی با استفاده از مهندسی معکوس و نمونه برداری از مجوز نشست پی به ساختار مجوز نشست برد، مهاجم مبادرت به حدس زدن مجوزهای اخیری میکند که برای سایر کاربران برنامه صادر شده است. سپس تعداد بسیار زیادی درخواست را که مربوط به صفحه وابسته به نشست است، با حدس مجوز میسازد و جهت تعیین مجوز معتبر بکار میگیرد.
در ادامه مهاجم استفاده از مجوز نشست را در دستور کار خود قرار خواهد داد. بدین صورت که بوسیله ابزارهای ردیابی یا یک پروکسی بینراهی بصورت مداوم اقدام به بررسی ترافیک برنامه میکند.
در صورتیکه از کوکیهای HTTP جهت سازوکارِ انتقال برای مجوزِ یک نشست استفاده گردد و نیز فلگ امنیت در آن فعال نگردیده باشد، مهاجم میتواند یک کوکی را جهت دسترسی غیر مجاز به برنامه کاربردی جایگزین کوکی فعلی نماید. استفاده مهاجم از کوکیهای نشست میتواند منجر به حملات جلسه ربایی، برگرداندن نشست و مَرد میانی شود.