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 بعد از مدتي تغيير و اعلام مي شد. – تغيير به يک مقدار مشترک – تغيير به يک مقدار معين : شماره تلفن فرد – توليد دلخواه.inp.iap Compile 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 به سه دسته کاربر RoleGranted ToPrivileges connectUsersاتصال به DB،ايجاد View،synonyms،database link، table export resourceDevelopersايجاد و اعطاي privilege بر روي جداول ،شاخص ها،clustersوsequences dbaDatabase 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 – استفاده از تاريخچه 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 PolicySchemaTable or ViewFunctionKey Columns پرسنل تنها سفارشات مشتريان خود را ببينند SECAPCUSTOMER.PRODUC T_ORDERS ORDERS_ SEC COMPANY_ID, CUST_ID پرسنل تنها داده هاي مشتريان خود را ببينند SECAPCUSTOMER.CUSTOM ERS, CUSTOMER.PRODUC T_ORDERS EMPOYEE _ID_SEC COMPANY_ID, EMPLOYEE_ID

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

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

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=(servi ce_name=customer)))’  select * from USTOMER;  پايگاه داده =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 منابع 1.Oracle Security Handbook, 2001 Oracle Press 2.Oracle 9i DBA Handbook, 2002 Oracle Press 3.Oracle Security Overview, 2002 Oracle Press 4.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 A Q & Q U E S T I O N S A N S W E R S

43


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

Similar presentations


Ads by Google