Presentation is loading. Please wait.

Presentation is loading. Please wait.

Oracle Security استاد درس : دکتر رسول جليلي تنظيم و ارائه:

Similar presentations


Presentation on theme: "Oracle Security استاد درس : دکتر رسول جليلي تنظيم و ارائه:"— Presentation transcript:

1

2 Oracle Security استاد درس : دکتر رسول جليلي تنظيم و ارائه:
صالح حافظ قرآني ابراهيم ترامشلو دانشگاه صنعتي اميرکبير دانشکده مهندسي کامپيوتر و فناوري اطلاعات تير 1384

3 سابقه امنيتي Oracle رابطه قديم شرکت Oracle و سازمان CIA آمريکا
تاثير اين رابطه در انتخاب مکانيزمهاي امنيتي از آغاز نوع پيامهاي خطا Oracle v.2 در سال 1979 select EMP_LAST_NAME from EMLPOYEES; Error at line 2: ORA :table or view does not exist دريافت اين پيام در صورتي که دسترسي درست نباشد امکان تشخيص براي مهاجم وجود ندارد (جدول موجود نيست يا دسترسي) در آن زمان دسترسي فيزيکي به کامپيوترها نيز مشکل بود

4 پشتيبان گيري (Backup) به عنوان يک خط مشي امنيتي عوامل ايجاد خطا
خطاي کاربر : پاک کردن رکوردي از داده ها به طور اتفاقي خطاي توسعه دهنده : رفتار متفاوت کد در فازهاي تست و عملياتي خطاي مدير : حذف غير عمد يک جدول عملياتي خطاي مهاجم : پاک کردن عمدي اطلاعات خطاي سخت افزاري : خراب شدن تجهيزات خطاي طبيعي :آتش سوزي، سيل،... وجود ابزارهاي import و export

5 حرکت به سمت مکانيزمهاي امنيتي قوي‌تر Password
ارتباط کاربران با پايگاه داده از طريق زبانهايUFI و PUFI ، اجداد SQL و PL/SQL اجرا بر روي IBM Mainframe و Digital VAX فايل .aip قابل اجرا با دستور runform کاربران يک username و password داشتند. password توسط DBA بعد از مدتي تغيير و اعلام مي شد. تغيير به يک مقدار مشترک تغيير به يک مقدار معين : شماره تلفن فرد توليد دلخواه Compile .inp .iap IAG

6 حرکت به سمت مکانيزمهاي امنيتي قوي‌تر Privileges
سه سطح privilege وجود داشت (تا قبل از v.6) Connect privilege : در حد ايجاد يک session Resource privilege :ايجاد شاخص، جدول،view DBA privilege : کنترل کامل دسترسي ها از طريق يک ترمينال با دسترسی فيزيکي ترمينال لال (dumb) امنيت ورود به فضاي ترمينال ها بيشتر از امنيت سيستم بعدها امکانات زير اضافه شد FASTFORM : توليد کننده بلاک در SQL*Forms CRT : امکانات گرافيکي rpt(Oracle report) : نمايش گزارش ها در يک فرمت انعطاف پذير

7 نگاهي به تغييرات v.5 V.5.0.b قابل اجرا بر روي PC SQL*Net v.1.0
مدل Client-Server مسائل جديد امنيتي (Identification) تسهيل استفاده از Import و Export (از طريق شبکه به کمک SQL*Net) فايل Export شده ، قابل اجرا بر روي سيستم عامل هاي مختلف

8 خط مشي هاي جديد امنيتي در v.6
تغيير مفهوم سطوح privilege به Role به سه دسته کاربر Role Granted To Privileges connect Users اتصال به DB،ايجاد View،synonyms،database link، table export resource Developers ايجاد و اعطاي privilege بر روي جداول ،شاخص ها،clustersوsequences dba Database Administrators اعطا و لغو privilege،ايجاد و حذف کاربر،انجام هر نوع export ،مشاهده داده کاربران،...

9 ادامه. خط مشي هاي جديد امنيتي در v.6 Auditing
ذخيره تمامي Audit ها در جدول SYS.AUD$ انجام Audit بر فعاليت هاي زير در هر دو حالت موفق و نا موفق : Login attempts Object access Database actions CONNECT RESOURCE DBA مثال :audit CONNECT audit all on براي audit هر فعاليت روي جدول دلخواه تنظيم Auditing در init.ora audit_trail=TRUE

10 ادامه. خط مشي هاي جديد امنيتي در v.6 Backup Enhancement
ظهور شکل جديدي از log file ها Redo logs : ثبت تغييرات جزئي، تا زمان نوشتن در DB archived log mode امکان ترميم پايگاه داده Rollback segments : تامين محل موقت داده ها در هنگام ترميم (recovery) پايگاه داده مواردي که ثبت مي شدند : چه کسي، چه زماني، چه چيزهايي در جداول اما اينکه چه داده هايي تغيير کرده اند، ثبت نمي شد.  v.7

11 امکانات امنيتي Oracle7 نزديک دهه 1990
ظهور Trigger ها ، بهبود قابليتهاي Auditing Hot Backups : پشتيبان گيري در سطح فايل بدون shutdown پايگاه داده در حالت پشتيبانگيري با استفاده از export مي بايست حتما پايگاه داده در حال اجرا باشد . يک پروسه زمانبر و طاقت فرسا مشکلات فراوان در ترميم، در صورتي که در حين Hot Backup، سيستم Crash يا shutdown بشود .

12 ادامه. امکانات امنيتي Oracle7
User-defined Roles امکان تعريف role هاي جديد و انتساب آنها به کاربران Trusted Oracle7 يک ابزار امنيتي بر اساس مدل BLP پياده سازي با استفاده از Labeling و رابطه تفوق (domination) لزوم ترکيب کنترل ها بر Role، Privilege در استخراج داده نصب مشکل و زمان بر  استقبال چنداني نشد افزايش پيچيدگي در تنظيمات ، (با توجه به خاصيت User-defined Roles)

13 ادامه. امکانات امنيتي Oracle7
Oracle Advanced Networking Option در v.7.3،سال 1996 رشد و بلوغ شبکه هاي internet و intranet  نيازمندي هاي امنيتي جديد متناسب با اين شرايط امکانات encryption و authentication قوي پشتيباني از سيستم هاي Kerberos ،CyberSafe و SecureID مشکل کاهش کارايي رمز کردن query در سمت client و رمزگشايي در سمت سرور رمز کردن پاسخ در سمت سرور و رمزگشايي در سمت client

14 امکانات امنيتي Oracle8 بهبود مديريت Password
استفاده از تاريخچه password (براي جلوگيري از تکرار password قبلي) قفل کردن حساب کاربري يک کاربر Oracle Oracle Security Server tool Single sign-on Digital signature در عمل غير موثر و ناکارآمد

15 ادامه.امکانات امنيتي Oracle8
بهبود Auditing امکان جابجايي SYS.AUD$ به tablespace ديگر براي جلوگيري از fragmentation در SYSTEM tablespace SYS.AUD$ تنها جدول سيستمي با اجازه جابجايي و حذف داده cataudit.sql : مجموعه script هاي قابل اجرا براي ساختن view هاي مختلف (12 نوع) بر روي SYS.AUD$ کمبودها: دقيقا کدام داده تغيير کرده است کدام سطر اصلاح و يا پاک شده است محتويات سطر پاک شده؟

16 ادامه.امکانات امنيتي Oracle8
بهبود پشتيبان گيري و ترميم با RMAN utility پشتيبان گيري در سطح فايل در زمان اجرای پايگاه داده ترميم با گزينه هاي point in time و until cancel the operation ترميم با گزينه only the changed block Tablespace point-in-time recovery utility امکان ترميم يک بخشي از پايگاه داده بدون تاثير بر ساير tablespace ها کاربرد در data warehouses (تعدد tablespaces)

17 Oracle8i Advanced Security Features
جايگزين Oracle Advanced Networking Option پشتيباني از ابزارهاي Authentication SSL (Secure Sockets Layer) Authentication Data encryption Data integrity RADIUS (Remote Authentication Dial-In User Service) Token card, Smart card Kerberos and CyberSpace Single sign-on Database link authentications

18 Oracle8i Advanced Security Features
پشتيباني از DCE Authorization Distributed Computing Environment Solaris platform امکان ترکيب با LDAPv.3 Lightweight Directory Access Protocol تنظيم از طريق Oracle Net8 در sqlnet.ora حذف دستور connect internal Connect/as sysdba Connect/as sysoper قدرت ايجاد ،شروع و خاتمه کار يک پايگاه داده

19 Oracle8i Advanced Security Features contd. Virtual Private Database
يک نوع مکانيزم کنترل دسترسي سياستهاي امنيتي مستقيما به جداول متصلند اعمال سياستها توسط DB نه به وسيله Application اعمال خودکار در هر بار استفاده از جداول تصحيح query ها با استفاده از اين سياستها در سمت سرور مثال: query يک کارمند در دپارتمان IT select * from EMPLOYEE; select * from EMPLOYEE where DEPARTMENT=‘IT’; پياده سازي : Security Policy Map Constraint

20 VPD Contd. Security Policy Map
Schema Table or View Function Key Columns پرسنل تنها سفارشات مشتريان خود را ببينند SECAP CUSTOMER.PRODUCT_ORDERS ORDERS_SEC COMPANY_ID, CUST_ID پرسنل تنها داده هاي مشتريان خود را ببينند CUSTOMER.CUSTOMERS, CUSTOMER.PRODUCT_ORDERS EMPOYEE_ID_SEC COMPANY_ID, EMPLOYEE_ID

21 جمع بندي بخش اول کنترل پيام هاي خطا پشتيبان گيري و ترميم Auditing
Privilege & Roles مديريت Password Authentication & Encryption VPD DataLinkage در دو بخش آتي

22 Oracle & Database Links
Server2 Server1 يک نوع اتصال سرور به سرور مي باشد تامين شفافيت محل ذخيره سازي از ديد کاربر امکان به اشتراک گذاري داده ها بين سرورها استفاده از Oracle Net8 listener به عنوان بر قرار کننده ارتباط DB DB Database Link Server Server Client DB DB Client

23 يک مثال از Database Link
create database link OUR_CUSTOMER connect to ORDERS identified by OH_SO_NOSY1 using ‘(description=(address=(protocol=tcp)(host=customer.our.company.com)(port=1521))(connect_data=(service_name=customer)))’ select * from پايگاه داده =customer schema = ORDERS جدول = ORDERS_TAB Database Link = OUR_CUSTOMER

24 مشکلات امنيتي در Database Link
5 نوع view براي مشاهده اطلاعات يک DB Link در Oracle data dictionary DBA_DB_LINKS ALL_DB_LINKS USER_DB_LINKS V$DBLINK LINK$ در v8.1.7 اجراي دستور مربوط به USER_DB_LINKS view فيلد password به صورت متن واضح استفاده از Trusted Third Party Linkage Unitدر پروتکل هاي linkage ، به طور معمول لازمه اطمينان زياد به TTP LU

25 ادامه .مشکلات امنيتي در Database Link
خطر افشاء اطلاعات در صورتي که پايگاههاي داده نسبت به هم trusted نباشند، پس از ايجاد اتصال خطر افشاء اطلاعات از طريق TTP LU راه حل در intersection : PPLP و PPXP Cohort-Obscuring کمترين افشاء

26

27 تصديق اصالت كاربر - مقدمه
پايه تمام كارهاي اعمال امنيت ، شناسايي كاربري است كه ميخواهد با سيستم كار كند. تمامي سطوح دسترسي و مكانيزم هاي امنيتي بر اساس نام كاربران عمل مي كنند. انواع تصديق اصالت : Database Authentication External Authentication Proxy Authentication

28 تصديق اصالت توسط كلمه عبور
مرسوم ترين روش تصديق اصالت كلمات عبور به صورت رمز شده در پايگاه ذخيره ميشوند . هر كاربر قادر به تعويض كلمه عبور خود است . وجود تهديداتي از قبيل جعل و دزدي كلمه عبور.

29 تصديق اصالت توسط كلمه عبور
مواردي جهت افزايش امنيت اين روش: اعمال خط مشي مديريت كلمات عبور توسط DBA و مسئول امنيت از طريق پروفايل‌هاي كاربران تعريف استانداردهايي براي اعمال پيچيدگي‌هاي لازم براي كلمات عبور، مثل حداقل طول كلمات عبور نبايد شامل نام و مشخصات كاربران باشد. كلمات عبور بايستي مرتبا تعويض گردد و بعد از مدتي دوباره نامعتبر گردد. استفاده مجدد از كلمه عبور قبلي بايستي محدود شود. بعد از تعداد مشخصي تلاش ناموفق براي اتصال ، حساب كاربر Lock ميگردد.

30 تصديق اصالت قوي تصديق اصالت با استفاده از تركيب موارد زير: مزايا :
انچه كه كاربر ميداند مثل كلمه عبور انچه كه كاربر در اختيار دارد. مزايا : تنوع مكانيزم هاي تصديق اصالت مثل كارتهاي هوشمند ،كربروس و... استفاده ازNetwork Authentication براي Single Signon

31 Profiles Oracle از Profile ها براي اعمال محدوديت هاي خاص و كنترل هايي روي منابع سيستمي مورد استفاده ، كلمات عبور، و محصولات مختلف Oracle توسط مدير سيستم استفاده مي‌كند. پروفايل ها توسط اسامي آنها متمايز مي شوند و به كاربر يا گروه كاربران انتساب داده مي شوند. بر دو نوع هستند : پروفايل هاي محدودكننده منابع سيستمي پروفايل هاي محدودكننده استفاده از محصولات

32 پروفايل هاي محدودكننده منابع سيستمي
براي قراردادن محدوديت در مورد استفاده از منابع سيستمي خاص براي كاربرن از جمله زمان استفاده از CPU ، تعداد بلاك هاي داده خوانده شده در هر Session و فراخواني هاي انجام شده ، تعداد Session هاي فعال موازي ، مدت زمان idle و حداكثر تعداد اتصالات براي هر كاربر مورد استفاده قرار مي گيرد. استفاده از چنين محدوديت هايي تضمين مي كند كه كاربري خواسته يا ناخواسته منابع سيستم را تلف كند. ”مفهوم hog” همچنين براي اعمال قوانيني در مورد زمان تعريف و ميزان پيچيدگي كلمات عبور و تعداد سعي هاي اشتباه قبا از Lock شدن حساب بكار مي‌رود.

33 پروفايل‌هاي محدودكننده محصولات
بعد از تعريف كاربر، توسط محصولات مختلف Oracle مي توان به بانك وصل شد. با تعريف چنين محدوديت هايي‌، اين اتصال، به برنامه ها و محصولات خاصي محدود مي‌گردد. مثلا امكان اتصال از طريق SQL*Plus وجود دارد ولي از طريق SQL*Report writer ممكن نيست.

34 امتيازات كاربر به محض ايجاد، هيچ حقي ندارد.
براي انجام هر كاري، بايد حق آن را داشت. در حدود 100 حق مختلف تعريف شده است. حقوق به دو دسته تقسيم بندي مي‌شود : System Privilege Object Privilege هر دو نوع با دستور Grant به كاربران داده مي شود.

35 امتيازات سيستمي اين امتيازات به كاربران اجازه ساخت و تغيير Object ها و همچنين انجام عمليات‌هاي سيستمي را مي دهند ، ولي اجازه دسترسي به Object هاي موجود و كار با آنها را نمي‌دهد. Create/Alter User Create/Alter Table Execute Any Procedure Export/Import Full Database

36 امتيازات روي اشيا اين امتيازات به كاربران اجازه دسترسي كاربر به يك شي خاص پايگاه كه مالك آن كاربر ديگري است را مي دهند . مثل جدول، ديد، پروسيجر و Synonym . دسترسي به ديد بدون دسترسي به خود جدول، يعني اعمال يك مكانيزم امنيتي براي دسترسي به زيرمجموعه اي از داده‌ها . Insert / Update / Select / Delete on Table Select / Alter Sequence Execute Procedure Reference On Table

37 مجوز ها در Data Dictionary
Rol_Sys_Privs Rol_Tab_Privs User_Role_Privs User_Tab_Privs_Made User_Tab_Privs_Recd User_col_Privs_Made User_col_Privs_Recd

38 نقش ها Role ها براي تسهيل كار مديريت اعطاي مجوزها به كاربران استفاده مي‌شود. بعد از ايجاد نقش، مجموعه‌اي از حقوق به آن داده مي‌شود و يك يا چندين نقش به كاربر انتساب داده مي‌شود. نقش‌ها مي توانند با كلمات عبور محافظت گردند و براي استفاده از حقوق آن نقش، بايستي كلمه عبور زده شود مگر اينكه نقش پيش فرض كاربر باشد. مورد استفاده : توسط Application خاص بتواند ولي غير از آن روش نتواند دسترسي انجام دهد. زيرا كلمه عبور توسط App. تامين مي گردد و كاربر آنرا نمي‌داند.

39 امكانات امنيتي Oracle 9i
Integrity Entity Integrity Referential Integrity Authentication & Access Control Privileges Roles Auditing By user / statement / privilege / schema object Views , Stored Program Unit ,Triggers

40 امكانات امنيتي Oracle 9i- ادامه
Data Encryption فراهم كردن رمزنگاري براي داده‌هاي انتقالي در شبكه بعد از Oracle7 . فراهم كردن رمزنگاري براي داده‌هاي ذخيره شده . DBMS_OBFUSCATION_TOOLKIT براي DES و 3DES . تابع MD5 براي درهم سازي و تصديق اصالت پيام . Random Number Generator براي ساخت كليد .

41 منابع Oracle Security Handbook , 2001 Oracle Press
Oracle 9i DBA Handbook , 2002 Oracle Press Oracle Security Overview , 2002 Oracle Press CM O’Keefe, M Yung, L Gu, R Baxter - Privacy Preserving Data Linkage Protocols Proceedings of the Workshop on Privacy in the Electronic 2004

42 Q & Q U E S T I O N S A N S W E R S A

43


Download ppt "Oracle Security استاد درس : دکتر رسول جليلي تنظيم و ارائه:"

Similar presentations


Ads by Google