820 likes | 1.14k Views
کنفرانس امنیت سامانه های نرم افزاری SoftSec 2014. دکتر محسن کاهانی استاد گروه مهندسی کامپیوتر مدیر آزمایشگاه آپا دانشگاه فردوسی مشهد. ارزیابی خودکار امنیت برنامههای مبتنی بر وب. فهرست. مقدمه و تعاریف ارزیابی برنامههای کاربردی مبتنی بر وب استخراج مدل برنامه کاربردی
E N D
کنفرانس امنیت سامانه های نرم افزاری SoftSec 2014 دکتر محسن کاهانی استاد گروه مهندسی کامپیوتر مدیر آزمایشگاه آپا دانشگاه فردوسی مشهد ارزیابی خودکار امنیت برنامههای مبتنی بر وب
فهرست مقدمه و تعاریف ارزیابی برنامههای کاربردی مبتنی بر وب استخراج مدل برنامه کاربردی تعیین سطح امنیت برنامه های کاربردی مبتنی بر وب
ارزیابی نرم افزار فرآيندي است که کيفيت نرمافزار کامپيوتري را مشخص ميکند فرآيند اجراي يک برنامه با هدف يافتن خطاهاي نرمافزاري يک قسمت مهم از فرآيند تضمين کيفيت نرمافزار آزمودن همه ترکيبات ممکن ورودي و پيش شرطها، حتي زمانيکه يک محصول ساده را آزمون ميکنيم، ممکن نيست
انواع خطاها خطاهای فنی خطاهای منطقی
سطوح آزمون آزمون واحد آزمون يكپارچگي آزمون سيستم آزمون پذيرش
انواع آزمون آزمون عملكرد آزمون بار آزمون فشار آزمون رگرسيون آزمون قابليت استفاده آزمون امنیت
روش های آزمون • آزمون جعبه سفید • اطلاع از ساختار برنامه و کد منبع • آزمون جعبه سياه • در نظر گرفتن نرم افزار بعنوان یک جعبه سیاه؛ وردی/خروجی • آزمون جعبه خاکستری • اطلاعات کمی از ساختار نرم افزار + آزمون جعبه سیاه
کارکردهای وب یک کتابخانه دیجیتال بزرگ یک رسانه ارتباطی یک سکوی برنامه نویسی
نرم افزار های مبتنی بر وب معماری چند لایه امکان اجرای لایه ها روی سکوهای متفاوت پیکربندی پویا عدم کنترل برنامه نویس روی اجزای سیستم مبتنی بر محتوا توسعه تدریجی حساس به زمان
آزمون سیستم های مبتنی بر وب عدم امکان استفاده از ابزارهای نرم افزارهای غیر وبی پیچیدگی بعلت توزیع شدگی نیاز به خودکار سازی بعلت توسعه تدریجی و حساسیت به زمان آزمون نیازمندی های کارکردی/ غیر کارکردی
اهمیت امنیت در سیستمهای مبتنی بر وب ورود سیستمهای مبتنی بر وب در تمامی زمینههای اقتصادی، آموزشی و فرهنگی سیستمهای مبتنی بر وب شامل دادهها و اطلاعاتی میگردند که معمولاً حساس و باارزش میباشند تعداد بسيار زياد کاربران و غیر قابل پیش بینی و همچنين امکان دسترسي آنان از هر جايي امکان ناشناس ماندن کاربران
روند کلی تهدیدات امنیتی Packet Forging/ Spoofing High پیچیدگی ابزارهای حمله Stealth Diagnostics Sniffers Sweepers Hijacking Sessions Back Doors Disabling Audits Exploiting Known Vulnerabilities Password Cracking Self Replicating Code دانش فنی مورد نیاز Password Guessing Low 1980 زمان
مخاطرات امنیتی در لایه کاربرد 90% سایتها به حملات لایه کاربرد آسیبپذیرند. 75% از حملات به سیستمهای اطلاعاتی ناشی از برنامههای وب است که رفع آسیبپذیریهای آن تنها 10% از هزینههای رفع باگ را صرف میکند
مخاطرات امنیتی در لایه کاربرد • ریشه مخاطرات • برنامهنویسان معمولاً برای نوشتن برنامههای وب ایمن آموزش ندیدهاند و اطلاعات امنیتی کافی ندارند. • مکانیزمهای امنیتی لایه شبکه همچون دیواره آتش و سیستمهای تشخیص نفوذ مانع از آسیبپذیریهای لایه کاربرد نمیشوند.
محل قرار گرفتن برنامه های مبتنی بر وب معماری کلان سیستم های مبتنی بر وب از دید امنیت محل ذخیره اطلاعات حساس Internet Firewall لایه کاربر (مرورگر) Database SSL محافظ لایه انتقال لایه داده ها محافظ شبکه لایه میانی
شکاف امنیتی سیستم های مبتنی بر وب متخصصان امنیت از تولید برنامه سر در نمی آورند برنامه نویسان از امنیت اطلاعی ندارند
خودکارسازی آزمون امنبت • به علت گستردگی و پیچیدگی روزافزون برنامههای وب استفاده از روشهای خودکار یا نیمهخودکاربرای ارزیابی امنیت اجتنابناپذیر است. • استفاده از روشها و ابزارهای خودکار دارای چهار مزیت اساسی است: • افزایش سرعت • کاهش هزینهها • افزایش دقت • نیاز به اطلاع تکنیکی کم
ابزارهای تست خودکار امنیت • ابزارهای تست خودکار امنیت برنامههای وب از بر اساس ویژگیهایشان به دستههای مختلفی تقسیم میشوند: • تحلیلگرهای کد برنامه • پویشگرهای برنامهی وب (جعبه سیاه) • پویشگرهای پایگاه داده • ابزارهای تحلیل باینری • ابزارهای تحلیل زمان اجرا • ابزارهای مدیریت پیکربندی • پراکسیهای HTTP • دیگر ابزارها
مشکلات ابزارها MITREدر گزارش خود بیان کرده است که اگر همه آنچه ابزار ها ادعا می کنند را کنار هم بگذاریم تنها 45% از حملات شناخته شده (695) را پوشش میدهند. میزان هم پوشانی ابزارها با هم زیاد نیست
مزایای تست به روش جعبه سیاه • برای مشخص کردن آسیبپذیریهای سیستمهای بزرگ و پیچیده مناسب هستند • روشی است که در آن تست کننده و برنامهنویس از هم مستقلند و غرضورزی کم میشود • در صورت استفاده از روش جعبه سیاه کارایی تست رگرسیون بالا میرود • نیاز به اطلاعات جزئی و دقیق عملکرد برنامه ندارند • برای یافتن آسیبپذیریهای مربوط به پیکربندی نامناسب (مخصوصاً در مورد وب سرور) کارا هستند.
معایب تست به روش جعبه سیاه پوشش تست ناکامل ایجاد هشدار نادرست (false positive) عدم تشخیص (false negative)
تعاریف آزمون مبتنی بر مدل: یک روش آزمون است که در آن موارد آزمون بصورت کلی یا جزئی از مدلی که جنبه های سیستم تحت آزمون (SUT)را توصیف می کند بدست می آید مورد آزمون: مجموعه ای شرایط یا متغیر هایی است که آزمونگر مشخص می سازد تا تست کند که یک برنامه بدرستی کار می کند اراکل: مکانیزمی است که مشخص می کند که آیا تست موفق بوده است یا خیر اسکریپت تست: مجموعه ای از دستوراعلم هاست که بر روی سیستم تحت آزمون اجرا می شود تا تست شود که کارکردهای سیستم مطابق انتظار است
معماری انجام کار Static analyzer Form filling model ontology Test script generator verdict Test executer
پرکردن خودکار فرم • بدون دادن اطلاعات بیشتر هیچ ابزاری نمی تواند به صفحات بعدی (مگر صفحه رد درخواست) دسترسی پیدا کند. • برای کمک به ابزار باید اطلاعات کمکی برای خزش از طریق فرم فراهم گردد. پرکردن فرم یک مشکل کلیدی است که برای دسترسی به صفحات مخفی وب باید بنحوی حل گردد یک صفحه حاوی یک فرم برای درخواست نام کاربری و کلمه عبور را درنظر بگیرید.
هستان شناسی ( آنتولوژی) یک روش رسمی و صریح برای بیان یک مفهوم مشترک یک فرهنگ لغت مشترک که برای مدل کردن یک دامنه (انواع اشیا و مفاهیم، ویژگیهای آنها و روابط فیمابین) میتوانداستفاده شود
هستان شناسی ( آنتولوژی) • هستان شناسی یک دامنه را به طور رسمي توصيف ميکند و شامل يک ليست محدود از اصطلاحات و روابط بين آنهاست. اين اصطلاحات، مفاهيم مهم در يک دامنه را مشخص ميکند. • هستان شناسی فهم مشتركي از يك زمينه ارائه ميدهد، چنين درک مشترکي براي غلبه بر تفاوت در اصطلاحات لازم است. در حال حاضر مهمترین زبانهاي آنتولوژی RDF – RDF Schema و OWL میباشد. • RDF بصورت یک گراف از سهتایی ها (triplets) ارائه می شود
نحو RDF • Subject, Predicate and Object Triplets (Tuples) • Subject: The resource being described. • Predicate: A property of the resource • Object: The value of the property • A combination of them is said to be a Statement (or a rule) JohnDoe http://foo.bar.org/index.html Author A property of the web page (author) [Predicate] A web page being described [Subject] The value of the predicate (here the author) [Object]
بازنمون هستان شناسی • از OWL برای نمایش هستان شناسی استفاده می شود. • با استفاده از منطق توصیفی امکان استنتاج فراهم می آید • در این کار از سه نوع هستان شناسی استفاده شده است: • هستان شناسی سیستم • هستان شناسی عمومی • شبکه واژگان
هستان شناسی سیستم • این هستان شناسی با تبدیل پایگاه داده سیستم به زبان OWL ایجاد میگردد. • از ابزار Jena برای بکارگیری مفاهیم معنایی استفاده می شود
قواعد Inverse functional property Datatype property simple • 1.Add pk_tableName cocept • 2.Add primary key as datatype property • 3.Add object property to relate tablename • concept to pk_tablename concept Primary key compound column Foreign key Table Default value object property data type property Concept Allowed value uniqueness Min cardinality>1 Length Min or Max restriction
هستان شناسی عمومی اکثر فرم های وب اطلاعات مشابهی را از کاربران دریافت می کنند (اطلاعات شخصی، بانکی، آموزشی، مسافرتی، خرید...) یکصد فرم از برنامه های مختلف وب از اینترنت دانلود و نام متغیرهای انها ذخیره گردید. بعد از حذف کلمات هم معنی و افزودن قیود به آنها، هستان شناسی عمومی تولیدشد
شبکه واژگان (wordnet) برای کمک به درک کلمات هم معنی و متضاد استفاده می شود یک پایگاه داده بزرگ از کلمات انگلیسی است که بصورت مجموعه های مرتبط هم معنی (synset) گروه بندی شده اند این مجموعه ها توسط مفاهیم معنایی و روابط فیمابین بهم مرتبط شده اند برای استفاده از شبکه واژگان از کتابخانه JWI استفاده شد
عناصر فرم ها فیلد های متنی، دکمه های رادیویی و چک باکس ها ... ارتباط بین فرم های برنامه و هستان شناسی سیستم بصورت یک نگاشت انجام می شود اگر این نگاشت امکان پذیر نبود از هستان شناسی عمومی کمک گرفته می شود تا قیود استخراج شوند. از معیارها پوشش نقاط مرزی برای تولید داده های آزمایشی استفاده می شود
چارچوب خودکار تست برنامههای وب یک چارچوب جامع برای تست خودکار برنامههای وب طراحی و پیادهسازی توسط آزمایشگاه فناوری وب دانشگاه فردوسی انواع تست در این چارچوب شامل تست عملکرد، تست بار، تست استرس و تست امنیت میشود.
Web Application HTML Test Executer Agent RMI Test Code Generator Agent Dashboard Agent RMI HTML/SOAP RMI RMI Test Runtime Environment RMI Result Analyzer Agent RMI Test Script Generator RMI RMI RMI RMI RMI Recorder Agent Application Model Agent Wrapper Agent Ontology Agent Control Flow Source Code Information Flow User Session Agent Direct Interaction چارچوب خودکار تست برنامههای وب معماری عاملگرا پیادهسازی توسط JADE مستقل از سکو تست جعبه سیاه ذخیره موارد تست برای انجام تست رگرسیون
اعمال چارچوب بر روی یک برنامه وب برنامهی WebCalendar یک تقویم را برای یک کاربر یا گروهی از کاربران اینترانت فراهم میکند. به عنوان تقویم رویدادهای یک سازمان یا یک سیستم زمانبندی برای یک اینترانت استفاده شود.
تولید اسکریپت آزمون موارد آزمون از داده های تستی که از روش فوق الذکر بدست امده اند، تولید می شوند مسیر اجرا هم با اعمال الگوریتم های پوشش مدل بدست می اید با ترکیب این دو اسکریپت های لازم برای دسترسی به صفحات نوشته می شود. پس از دسترسی به صفحات، آزمون های مختلف من جمله ازمون های امنیت می تواند اجرا شود
میزان خودکار سازی آزمون برای صفحات مختلفwebcalendar
روش های مرتبط با آزمون امنیت • استانداردهای بررسی امنیت • ISO/IEC 15408، ISO/IEC 18045 • ASVS • روش های تخمین ریسک • PCI/DSS • OWASP • CVSS
استاندارد ISO/IEC 15408، ISO/IEC 18045 • ISO/IEC15408 استانداردی برای معیارهای ارزیابی امنیت فناوری اطلاعات است. • ISO/IEC18045 استانداردی برای روش ارزیابی امنیت فناوری اطلاعات است. • ISO/IEC15408 شامل سه قسمت میباشد: • قسمت اول: مقدمه و مدل عمومی • قسمت دوم: نیازمندیهای عملیاتی امنیت • قسمت سوم: نیازمندیهای تضمینی امنیت • هفت سطح اطمینان ارزیابی امنیت شده است.
Application Verification Security Standard (ASVS) استاندارد تأیید امنیت برنامه وبچهار سطح سلسله مراتبی برای تأیید امنیت نرمافزار مبتنی بر وب تعریف نموده است. هر چه سطح تأیید بالاتر رود، میزان اطمینان از امنیت نرمافزار تحت ارزیابی بیشتر میشود. برای هر سطح تأییدات امنیتی مربوط به آن و روش انجام هر یک از تأییدات مشخص شده است.
Application Verification Security Standard (ASVS) • سطح یک- تأیید خودکار • سطح 1A- پویش پویا • سطح 1B- پویش کد برنامه • سطح دو- تأیید دستی • سطح سه- تأیید طراحی • سطح چهار- تأیید داخلی
تخمین ریسکOpen Web Application Security Project (OWASP) • سازمان OWASP روشی کلی برای تخمین و رتبهبندی ریسک آسیبپذیریها ارائه کرده است. • مدل تخمین ریسک : ریسک= احتمال× تأثیر • دسته معیارهای تخمین احتمال • معیارهای عامل تهدید • معیارهای آسیبپذیری • دسته معیارهای تخمین تأثیر • معیارهای تأثیر تکنیکی • معیارهای تأثیر بر کسب و کار
تخمین ریسکOpen Web Application Security Project (OWASP) پس از اندازهگیری معیارها برای هر دسته معیار ریسک کلی به صورتی که در شکل زیر آورده شده رتبهبندی میشود.