پروژه درس امنیت پایگاه داده ساجده حرّاز نرگس یوسف نژاد

Slides:



Advertisements
Similar presentations
Awe sim.
Advertisements

معاونت درمان امور مامایی اردیبهشت 90. برای ثبت اطلاعات در برنامه نرم افزاری نظام مراقبت مرگ پریناتال ابتدا لازم است برنامه نرم افزار info-path وپرنیان.
فاکتورهای مهم در ایجاد یک مقاله علمی
Professor: Dr. Ahmad Abdollahzadeh Amirkabir University of Technology, Computer Engineering and Information Technology Department Intelligent Systems Laboratory.
طبقه بندی تعاریف سیستم های تصمیم یار
1 بسم الله الرحمن الرحیم. 2 پژوهش های آموزشی فرآیند – محور (POER) علی عمادزاده عضو هیئت علمی EDC
محدثه گل پرور, ملاحت ملکی استاد راهنما : مهندس برادران هاشمی.
Decision Tree.
© 2005 Prentice Hall Inc. All rights reserved. o r g a n i z a t i o n a l b e h a v i o r e l e v e n t h e d i t i o n.
پروتکلهاي امن در شبکه هاي ad-hoc ارائه دهنده: مسيح موسي پور استاد درس: دکتر بابک صادقيان نام درس: پروتکلهاي امن.
مراحل مختلف اجرای يک برنامه
فایل پردازی در C File based Programming in C. انواع فایل متنی –سرعت بالا –حجم کمتر –امکان دسترسی تصادفی –حفظ امنیت داده ها دودویی (باینری) –امکان باز.
انواع Middleware و معرفی دو نمونه
دسته بندی نیمه نظارتی (2)
Internet Protocol Security An Overview of IPSec. رئوس مطالب:  مشکلات امنیتی چیست؟  مفهوم TCP/IP  امنیت در چه سطحی؟  IP Security  سرویسهای IPSec Security.
تکنیک های پیشرفته در برنامه سازی وب ) اسلايد هفتم ) جوانمرد Website: به نام خدا.
In the next lectures you will learn  What is SQL  How to access mySQL database  How to create a basic mySQL database  How to use some basic queries.
پیاده سازی کنترلر PC/104. Contents PC/104 پیاده سازی کنترلر HILتست 1.
SQL Injection Attack (SQLIA)
مدیریت اطلاعات و داده های سازمان یافته
( Project Operation Management )
تمرین هفتم بسم الله الرحمن الرحیم درس یادگیری ماشین محمدعلی کیوان راد
معرفی پرتال سازمانی درسا مرکز فناوری اطلاعات و ارتباطات
ویژگی های DHCP جلوگیری از Conflict سرعت بخشیدن به کارها مدیریت متمرکز
بنام خدا زبان برنامه نویسی C (21814( Lecture 12 Selected Topics
SY800 router mode [AD-14-TB ].
آشنایی مقدماتی با نرم افزار Endnote X4
تحلیل و طراحی سیستم ها بخش ششم کتاب توربان.
آزمایشگاه پایگاه داده ها قیود در جداول یک پایگاه داده در SQL Server
استانداردهای تصاویر دیجیتال پزشکی با فرمت دایکام DICOM در سیستم PACS
ارائه شده: الهام قنبری فتحیه فقیه خراسانی گروه3 تابستان 85
به نام خدا موسسه آموزش عالی جهاد دانشگاهی همدان گروه کامپیوتر
نرم افزار نگهداری و تعمیرات مبتنی بر مدیریت دانش نت CMMS-MKMS
به نام خدا.
تکنیک دیماتل DEMATEL: decision making trial and evaluation laboratory.
جلسه نخست معرفی مبانی امنیت (1)
بررسی قطبش در لیزر های کاواک عمودی گسیل سطحی(vcsel)
مقدمه اي بر مهندسي نيازمنديها
SSO Single Sign-on Systems
آموزش و یادگیری Education and Training
آشنایی با سیستم های بررسی تنظیمات سیستم عامل
آشنایی با پایگاه داده mysql
SE Dept.2 تهیه کنندگان: ملیحه اسکندری نسیبه پوتی
آشنایی مقدماتی با نرم افزار Endnote X4
دینامیک سیستمهای قدرت مدرس: دکتر مهدی بانژاد
ممیزی پایگاه داده مریم آزادمنش بهار90.
تهیه و تنظیم: فاطمه قاسمی دانشگاه صنعتی شریف – پاییز 86
فصل 4. فصل 4 جمع آوری نیازمندیها و تحلیل سیستم : فاز تولید هر نرم افزار با مرحله ای به نام تعریف مسئله شروع می شود. منظور از تعریف مسئله شناخت محیط.
امنیت و اعتماد سخت افزاری
بررسی چرخه‌های ارائه شده جهت توسعه امن نرم‌افزار(1)
راهنمای استفاده از ابزار Mailings در Ms Word
معماری سرویس گرا (SOA).
MohammadMahdi Talebian Shahed University Fall 2017
تدريس يار: ميثم نظرياني
آشنایی مقدماتی با نرم افزار Endnote X4
سیستمهای تشخیص نفوذ (IDS)
بسم الله الرحمن الرحیم هرس درخت تصمیم Dr.vahidipour Zahra bayat
آشنایی مقدماتی با نرم افزار Endnote
کاربرد کامپیوتر در داروخانه
جستجوی منابع الکترونیک
به نام خدا Koha برنامه.
سمینار SharePoint رانندگی در بزرگراه پرتال ها
فصل ششم مدارهای ترتیبی.
فرشاد آقابزرگی هوش تجاری
یادگیری الکترونیکی مبتنی بر دانش
به نام یکتای دانا فصل اول: متدها و قواعد.
فصل 8 –Process and Deployment
سیستم های اطلاعاتی حسابداری
آشنایی با فرایند داده کاوی در نرم افزار R گروه داده کاوی دایکه داود دوروش تابستان 6139.
هدف با استفاده از الگوریتم بهینه سازی کلونی مورچگان( ACO ) و قوانین سیستم فازی به تفسیرقوانین آنها میپردازیم. سپس، با بهره گیری از این قوانین، تعریف مناسبی.
Presentation transcript:

پروژه درس امنیت پایگاه داده ساجده حرّاز نرگس یوسف نژاد حمله تزریق SQL پروژه درس امنیت پایگاه داده استاد : دکتر جلیلی ارائه دهندگان: ساجده حرّاز نرگس یوسف نژاد

فهرست مطالب 1 تعریف Sql Injection Attack 2 معماری WEB APPLICATION 3 انواع SQLIA 4 روش های پیشگیری وتشخیص SQLIA 3 روش های دفاعی SQLIA

عدم اعتبارسنجي وروديهايي كه در توليد دسترسی غیر مجاز به اطلاعات موجود تعریف SQLIA تهدید کاربردهای تحت وب SQLIA عدم اعتبارسنجي وروديهايي كه در توليد يك پرس وجو دسترسی غیر مجاز به اطلاعات موجود در پایگاه داده

گزارش اخیر موسسه OWASP

معماری WEB APPLICATION

انواع SQLIA Tautologies Illegal/Logically Incorrect Queries Union Query Piggy- Backed Queries Stored Procedures Inference Alternate Encodings

Tautologies attack هدف : دور زدن مکانیزم‌های احراز اصالت ، استخراج داده و تشخیص پارامتر‌های قابل تزریق SELECT ∗ FROM user WHERE id = ‘1’ or ‘1 = 1’—’ AND password = ‘1111’

Illegal/Logically Incorrect Queries attack هدف : تشخیص شمای پایگاه داده ، استخراج داده ، تشخیص پارامتر‌های قابل تزریق به دست آوردن اطلاعات با توجه به خطاهای پایگاه داده وارد کردن عبارت زیر در قسمت pin : convert (int,(select top 1 name from sysobjects wheretype=’u’)) Query تولید شده در CGI layer : SELECT accounts FROM users WHERE login=’’ AND pass=’’ AND pin= convert (int,(select top 1 name from sysobjects where xtype=’u’)) پیغام خطا در sql: "Microsoft OLE DB Provider for SQL Server (0x80040E07) Error converting nvarchar value ’CreditCards’ to a column of data type int.“ حمله کننده میفهمد: 1-پایگاه داده sql server است. 2- نام اولين جدول تعريف شده ي كاربر در پايگاه داده “credit card”

حمله کننده نسخه پایگاه داده را می فهمد. Union Query attack هدف: دور زدن مکانیزم های احراز اصالت ، استخراج داده $sqlquery = "SELECT * From news WHERE id =$id"; $process=odbc_exec($sqlconnect, $sqlquery); echo odbc_result($process,2); وارد کردن مقدار 1 and 1=2 union select 1,@@version—به جای عدد در فیلد id : SELECT * From news WHERE id = 1 and 1=0 union select 1,@@version,3 -- حمله کننده نسخه پایگاه داده را می فهمد.

Piggy- Backed Queries attack هدف: استخراج داده، اضافه كردن يا اصلاح داده، انجام دادن عدم سرويس دهي، اجرای دستورات دور وارد کردن مقدار “;drop table users - - “ در فیلد پسورد SELECT accounts FROM users WHERE login=’doe’ AND pass=’’; drop table users -- ’ AND pin=123 نتیجه:حذف جدول users

Stored Procedures attack هدف: افزایش امتیازات و عدم سرویس دهی رویه ذخیره شده در پایگاه داده: CREATE PROCEDURE DBO.isAuthenticated @userName varchar2, @pass varchar2, @pin int AS EXEC("SELECT accounts FROM users WHERE login=’" +@userName+ "’ and pass=’" +@password+ "’ and pin=" +@pin); GO وارد کردن “ ’ ; SHUTDOWN; - -” در فيلد pass: SELECT accounts FROM users WHERE login=’doe’ AND pass=’ ’; SHUTDOWN; -- AND pin= نتیجه : پایگاه داده خاموش می شود!

Alternate Encodings attack هدف: دور زدن مکانیزم های تشخیص تزریق عبارت “legalUser’; exec(0x73687574646f776e) - -“ در فیلد login   SELECT accounts FROM users WHERE login=’legalUser’; exec(char(0x73687574646f776e)) -- AND pass=’’ اعداد معادل رشته shut down است در نتیجه پایگاه داده خاموش می شود.

Inference attack هدف: مشخص کردن پارامترهای قابل تزریق ، استخراج داده و مشخص کردن شمای پایگاه داده -1 Blind Injection : استنتاج اطلاعات با توجه به رفتار صفحه با پرسیدن سوال های true یا false 1-SELECT accounts FROM users WHERE login=’legalUser’and 1=0 -- ’ AND pass=’’ AND pin=0 2-SELECT accounts FROM users WHERE login=’legalUser’ and 1=1 -- ’ AND pass=’’ AND pin=0 اگر برنامه امن باشد: پارامتر login آسیب پذیر نیست. اگر برنامه نا امن باشد:پیغام خطا نشان داده شده و پارامتر login آسیب پذیر است.

Inference attack (continue) Timing Attack-2 به دست آوردن اطلاعات با توجه به تاخیر های زمانی در عکس العمل پایگاه داده،با استفاده از ساختارهای sql که زمان مشخصی برای اجرا می گیرند SELECT accounts FROM users WHERE login=’legalUser’and ASCII(SUBSTRING((select top 1 name from sysobjects),1,1)) > X WAITFOR 5 -- ’ AND pass=’’ AND pin=0

راه های پیشگیری و کشف تست جعبه سیاه (WAVES) چک‌کننده‌های کد ایستا (JDBC-Checker) ترکیب تحلیل ایستا و پویا نمونه های توسعه یافته پرس و جوی جدید سیستم‌های تشخیص نفوذ (Valeur ) فیلترکردن proxy تصادفی کردن مجموعه دستورات (SQLrand)

راه های پیشگیری و کشف (ادامه) تست جعبه سیاه (WAVES) استفاده از یکweb crawler برای شناسایی تمام نقاط موجود در یک برنامه وب ساخت حملات، مانیتور کردن پاسخ به این حملات، استفاده ازشیوه‌های یادگیری ماشین برای بهبود روش حملات چک‌کننده‌های کد ایستا (JDBC-Checker) بررسی ایستا صحت پرس و جوها جلوگیری از حملات عدم تطابق در پرس و جو دامنه محدودی از حملات

راه های پیشگیری و کشف (ادامه) ترکیب تحلیل ایستا و پویا (AMNESIA ) در مرحله استاتیک استفاده از تحلیل استاتیک برای ساخت مدل‌های متفاوت پرس‌وجو در مرحله پویا جلوی تمام پرس‌وجوها را قبل از فرستادن به پایگاه داده می‌گیرد. مقایسه هر پرس و جو با مدل های ایستا ساخته شده محدودیت وابستگی موفقیت آن به صحت تحلیل ایستا برای ساختن مدل های پرس و جو

راه های پیشگیری و کشف (ادامه) نمونه های توسعه یافته پرس و جوی جدید (SQL DOM، Safe Query Objects) فشرده کردن پرس‌وجوهای پایگاه داده عدم استفاده از الحاق یک سری رشته برای ایجاد پرس و جو استفاده از API برای بررسی پرس و جو بررسی نوع ورودی کاربر و فیلتر کردن ورودی نقض: نیاز به یادگیری و توسعه یک نمونه برنامه نویسی جدید یا فرآیند توسعه پرس وجو جدید عدم تامین حفاظت یا امنیت سیستم های منطقی موجود

راه های پیشگیری و کشف (ادامه) سیستم‌های تشخیص نفوذ (Valeur) مبتنی بر تکنیک های یادگیری ماشین ساخت مدل از پرس و جوها، بررسی تطابق پرس و جوها با مدل حملات را به خوبی تشخیص می دهد. موفقیت آن وابسته به دنباله مجموعه یادگیری استفاده شده false positive و false negative زیاد

راه های پیشگیری و کشف (ادامه) فیلترکردن proxy (Security Gateway) اجرای قوانین تصدیق ورودی بر روی جریان داده یک برنامه وب زبان توصیف خط مشی امنیتی (SPDL) اعمال تغییرات و محدودیت، قبل از فرستاده شدن پارامترهای کاربردی به سرور مشکل وابسته به انسان طراحان باید بدانند روی چه داده هایی و با چه ساختاری باید فیلترینگ انجام دهند.

راه های پیشگیری و کشف (ادامه) تصادفی کردن مجموعه دستورات (SQLrand) اجازه ایجاد پرس‌وجوها با استفاده از دستورالعمل‌های تصادفی بجای کلمات کلیدی SQL یک فیلتر proxy پرس و جوها را از پایگاه داده جدا می کند. مشکل: سربار زیاد استفاده از يک کليد سري براي تغيير دستورات

مقایسه راه های پیشگیری و کشف

راه های دفاعی CODE SECURELY BLOCK ATTACKS MONITOR FOR ATTACKS

CODE SECURELY آموزش توسعه دهندگان پیروی از بهترین شیوه ها پرهیز از خطا در هنگام توسعه نرم افزار پیروی از بهترین شیوه ها استفاده از استانداردهای برنامه‌نویسی استفاده از جملات آماده فیلتر کردن ورودی برنامه نویسی امن با Perl برنامه نویسی امن با Java برنامه نویسی امن با VB.NET

برنامه نویسی امن با Java

MONITOR FOR ATTACKS کشف حمله در حین اجرا گزینه های کشف حمله سیستم تشخیص نفوذ شبکه (NIDS) پایگاه داده ای از قوانینِ pattern-matching مثالی از نحوه ساخت یک امضا در snort regular expression هسته ساخت هر راه حل IDS سیستم تشخیص نفوذ میزبان (HIDS) سیستم تشخیص نفوذ برنامه کاربردی (AppIDS)

BLOCK ATTACKS Application firewalls قادر به مشاهده Web-application firewalls بین مرورگرها و برنامه‌های وب مانند IDS شبکه دریافت داده در نقطه نهایی عدم تداخل با ترافیک قانونی یک برنامه وب قادر به مشاهده ترافیک رمزگشایی شدهSSL ترافیک نرمال

BLOCK ATTACKS نرم افزار فایروال برای حفاظت ModSecurity یک ماژول متن باز کاربر می‌تواند قوانین خود را اضافه کند. Cisco Application Velocity System (AVS) برای بهبود کارائی، اندازه‌گیری زمان پاسخ و حفاظت از برنامه‌های وب قوانین توکار (built-in) به مدیران اجازه افزودن قوانین را می‌دهد.

مراجع Bravenboer, M., Dolstra, E., Visser, E., "Preventing injection attacks with syntax embeddings", Science of Computer Programming, vol. 75, pp. 473-495, 2010. Clarke, J., "SQL Injection Attacks and Defense", Elsevier, Syngress Publishing, Inc., 2009. Halfond, W. G. J., Viegas, J., Orso, A., "A Classification of SQL Injection Attacks and Countermeasures", Computing, 2006. Jeong, I. Lee, S., Yeo, S., Moond, J., "A novel method for SQL injection attack detection based on removing SQL query attribute values", Mathematical and Computer Modelling, vol. 55, pp. 58–68, 2012. Mackay, C. A., "SQL Injection Attacks and Some Tips on How to Prevent Them", Technical report, The Code Project, 2005, http://www.codeproject.com/cs/database/SqlInjectionAttacks.asp. Moyle, S., "The blackhat’s toolbox: SQL injections", Network Security, pp. 12-14, 2007. Muthuprasanna, M., Kothari, W. Ke, S., "Eliminating SQL Injection Attacks - A Transparent Defense Mechanism", Analysisو. Nystrom, M. G., "SQL Injection Detection", O'Reilly Media, Inc, 2007. Ping-Chen, X., "SQL injection attack and guard technical research", Procedia Engineering, vol. 15, pp. 4131- 4135, 2011.

با تشکر

Question? ‘ or 1=1 - - ‘ ) or ‘1’ = ‘1 - - Select @@version exec(0x73687574646f776e) - - ” Question? Select @@version ASCII(SUBSTRING((select top 1 name from sysobjects),1,1)) > X WAITFOR 5 --’’