Document 7610222
Download
Report
Transcript Document 7610222
Oracle Security
استاد درس :دکتر رسول جليلي
تنظيم و ارائه:
صالح حافظ قرآني
ابراهيم ترامشلو
دانشگاه صنعتي اميرکبير دانشکده مهندسي کامپيوتر و فناوري اطالعات
تير 1384
سابقه امنيتي Oracle
رابطه قديم شرکت Oracleو سازمان CIAآمريکا
تاثير اين رابطه در انتخاب مکانيزمهاي امنيتي از آغاز
نوع پيامهاي خطا Oracle v.2در سال 1979
select EMP_LAST_NAME
;from EMLPOYEES
Error at line 2:
ORA-00942 :table or view does not exist
دريافت اين پيام در صورتي که دسترسي درست نباشد
–
امکان تشخيص براي مهاجم وجود ندارد (جدول موجود نيست يا دسترسي)
در آن زمان دسترسي فيزيکي به کامپيوترها نيز مشکل بود
پشتيبان گيري ()Backup
به عنوان يک خط مشي امنيتي
عوامل ايجاد خطا
–
–
–
–
–
–
خطاي کاربر :پاک کردن رکوردي از داده ها به طور اتفاقي
خطاي توسعه دهنده :رفتار متفاوت کد در فازهاي تست و عملياتي
خطاي مدير :حذف غير عمد يک جدول عملياتي
خطاي مهاجم :پاک کردن عمدي اطالعات
خطاي سخت افزاري :خراب شدن تجهيزات
خطاي طبيعي :آتش سوزي ،سيل...،
وجود ابزارهاي importو export
حرکت به سمت مکانيزمهاي امنيتي قويتر
Password
ارتباط کاربران با پايگاه داده از طريق زبانهاي UFIو ، PUFIاجداد
SQLو PL/SQL
اجرا بر روي IBM Mainframeو Digital VAX
Compile
فايل .aipقابل اجرا با دستور
.iap
IAG
runform
کاربران يک usernameو passwordداشتند.
passwordتوسط DBAبعد از مدتي تغيير و اعالم مي شد.
–
–
–
تغيير به يک مقدار مشترک
تغيير به يک مقدار معين :شماره تلفن فرد
توليد دلخواه
.inp
حرکت به سمت مکانيزمهاي امنيتي قويتر
Privileges
سه سطح privilegeوجود داشت (تا قبل از )v.6
–
–
–
: Connect privilegeدر حد ايجاد يک session
: Resource privilegeايجاد شاخص ،جدولview،
: DBA privilegeکنترل کامل
دسترسي ها از طريق يک ترمينال با دسترسی فيزيکي
ترمينال الل ()dumb
امنيت ورود به فضاي ترمينال ها بيشتر از امنيت سيستم
بعدها امکانات زير اضافه شد
–
–
–
: FASTFORMتوليد کننده بالک در SQL*Forms
: CRTامکانات گرافيکي
) : rpt(Oracle reportنمايش گزارش ها در يک فرمت انعطاف پذير
نگاهي به تغييرات v.5
V.5.0.b قابل اجرا بر روي PC
SQL*Net v.1.0
–
–
مدل Client-Server
مسائل جديد امنيتي ()Identification
تسهيل استفاده از Importو Export
–
(از طريق شبکه به کمک )SQL*Net
فايل Exportشده ،قابل اجرا بر روي سيستم عامل هاي
مختلف
v.6 خط مشي هاي جديد امنيتي در
به سه دسته کاربرRole بهprivilege تغيير مفهوم سطوح
Role
Granted To
Privileges
connect
Users
database ،synonyms،View ايجاد،DB اتصال به
table export ،link
resource
Developers
شاخص، بر روي جداولprivilege ايجاد و اعطاي
sequencesوclusters،ها
dba
Database
Administrators
انجام هر نوع،ايجاد و حذف کاربر،privilege اعطا و لغو
...،مشاهده داده کاربران، export
v.6 خط مشي هاي جديد امنيتي در.ادامه
Auditing
SYS.AUD$ ها در جدولAudit ذخيره تمامي
: بر فعاليت هاي زير در هر دو حالت موفق و نا موفقAudit انجام
Login attempts
Object access
Database actions
CONNECT
RESOURCE
DBA
audit CONNECT: مثال
–
–
–
هر فعاليت روي جدول دلخواهaudit برايaudit all on
init.ora درAuditing تنظيم
audit_trail=TRUE
–
ادامه .خط مشي هاي جديد امنيتي در v.6
Backup Enhancement
ظهور شکل جديدي از log fileها
–
–
: Redo logsثبت تغييرات جزئي ،تا زمان نوشتن در DB
archived log mode
امکان ترميم پايگاه داده
: Rollback segmentsتامين محل موقت داده ها در هنگام
ترميم ) (recoveryپايگاه داده
مواردي که ثبت مي شدند :
–
–
چه کسي ،چه زماني ،چه چيزهايي در جداول
اما اينکه چه داده هايي تغيير کرده اند ،ثبت نمي شدv.7 .
امکانات امنيتي Oracle7
نزديک دهه 1990
ظهور Triggerها ،بهبود قابليتهاي Auditing
: Hot Backups پشتيبان گيري در سطح فايل بدون
shutdownپايگاه داده
–
–
–
در حالت پشتيبانگيري با استفاده از exportمي بايست حتما پايگاه داده
در حال اجرا باشد .
يک پروسه زمانبر و طاقت فرسا
مشکالت فراوان در ترميم ،در صورتي که در حين ،Hot Backup
سيستم Crashيا shutdownبشود .
ادامه .امکانات امنيتي Oracle7
User-defined Roles
–
امکان تعريف roleهاي جديد و انتساب آنها به کاربران
Trusted Oracle7
–
–
–
–
–
يک ابزار امنيتي بر اساس مدل BLP
پياده سازي با استفاده از Labelingو رابطه تفوق
()domination
لزوم ترکيب کنترل ها بر Privilege ،Roleدر استخراج داده
نصب مشکل و زمان بر استقبال چنداني نشد
افزايش پيچيدگي در تنظيمات ،
(با توجه به خاصيت )User-defined Roles
ادامه .امکانات امنيتي Oracle7
Oracle Advanced Networking Option
–
–
–
–
–
در ،v.7.3سال 1996
رشد و بلوغ شبکه هاي internetو intranetنيازمندي هاي
امنيتي جديد متناسب با اين شرايط
امکانات encryptionو authenticationقوي
پشتيباني از سيستم هاي CyberSafe، Kerberosو
SecureID
مشکل کاهش کارايي
رمز کردن queryدر سمت clientو رمزگشايي در سمت سرور
رمز کردن پاسخ در سمت سرور و رمزگشايي در سمت client
امکانات امنيتي Oracle8
بهبود مديريت Password
–
–
–
–
Passwordاز پيش منقضي شده
اجبار در نوع و طرح خاصي از password
استفاده از تاريخچه ( passwordبراي جلوگيري از تکرار passwordقبلي)
قفل کردن حساب کاربري يک کاربر Oracle
Oracle Security Server tool
–
–
–
Single sign-on
Digital signature
در عمل غير موثر و ناکارآمد
ادامه.امکانات امنيتي Oracle8
بهبود Auditing
–
–
–
امکان جابجايي SYS.AUD$به tablespaceديگر براي
جلوگيري از fragmentationدر SYSTEM tablespace
SYS.AUD$تنها جدول سيستمي با اجازه جابجايي و حذف داده
: cataudit.sqlمجموعه scriptهاي قابل اجرا براي ساختن
viewهاي مختلف ( 12نوع) بر روي SYS.AUD$
کمبودها:
–
–
–
دقيقا کدام داده تغيير کرده است
کدام سطر اصالح و يا پاک شده است
محتويات سطر پاک شده؟
ادامه.امکانات امنيتي Oracle8
بهبود پشتيبان گيري و ترميم با RMAN utility
–
–
–
پشتيبان گيري در سطح فايل در زمان اجرای پايگاه داده
ترميم با گزينه هاي point in timeو until cancel the
operation
ترميم با گزينه only the changed block
Tablespace point-in-time recovery utility
–
–
امکان ترميم يک بخشي از پايگاه داده بدون تاثير بر ساير
tablespaceها
کاربرد در ( data warehousesتعدد )tablespaces
Oracle8i Advanced Security
Features
Oracle Advanced Networking Option جايگزين
Authentication پشتيباني از ابزارهاي
)Secure Sockets Layer( SSL
Authentication
Data encryption
Data integrity
)Remote Authentication Dial-In User Service( RADIUS
Token card, Smart card
Kerberos and CyberSpace
Single sign-on
Database link authentications
–
–
–
Oracle8i Advanced Security
Features
DCE Authorization پشتيباني از
Distributed Computing Environment
Solaris platform
–
–
LDAPv.3 امکان ترکيب با
Lightweight Directory Access Protocol
–
sqlnet.ora درOracle Net8 تنظيم از طريق
connect internal حذف دستور
Connect/as sysdba
Connect/as sysoper
شروع و خاتمه کار يک پايگاه داده، قدرت ايجاد
–
–
–
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
VPD Contd.
Security Policy Map
Policy
Schema
Table or View
Function
Key
Columns
پرسنل تنها سفارشات
مشتريان خود را
ببينند
SECAP
CUSTOMER.PRODUC
T_ORDERS
ORDERS_
SEC
COMPANY_ID,
CUST_ID
پرسنل تنها داده هاي
مشتريان خود را
ببينند
SECAP
CUSTOMER.CUSTOM
ERS,
CUSTOMER.PRODUC
T_ORDERS
EMPOYEE
_ID_SEC
COMPANY_ID,
EMPLOYEE_ID
جمع بندي بخش اول
کنترل پيام هاي خطا
پشتيبان گيري و ترميم
Auditing
Privilege & Roles
Password مديريت
Authentication & Encryption
VPD
در دو بخش آتيDataLinkage
Oracle & Database Links
Server2
يک نوع اتصال سرور به سرور
باشد
ي
م
DB
تامين شفافيت محل ذخيره سازي از
ديد کاربر
Database Link
امکان به اشتراک گذاري داده ها
Server
بين سرورها
Server
استفاده از Oracle Net8
DB
listenerبه عنوان بر قرار کننده
DB
ارتباط
Client
Server1
DB
Client
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
ORDERS.ORDERS_TAB@OUR_C
USTOMER;
customer= پايگاه داده
ORDERS = schema
ORDERS_TAB = جدول
= Database Link
OUR_CUSTOMER
Database Link مشکالت امنيتي در
Oracle data درDB Link براي مشاهده اطالعات يکview نوع5
dictionary
DBA_DB_LINKS
ALL_DB_LINKS
USER_DB_LINKS
V$DBLINK
LINK$
–
–
–
–
–
فيلدUSER_DB_LINKS view اجراي دستور مربوط بهv8.1.7 در
به صورت متن واضحpassword
در پروتکل هايTrusted Third Party Linkage Unit استفاده از
به طور معمول، linkage
TTP LU الزمه اطمينان زياد به
–
ادامه .مشکالت امنيتي در Database Link
خطر افشاء اطالعات در صورتي که پايگاههاي داده نسبت به هم
trustedنباشند ،پس از ايجاد اتصال
خطر افشاء اطالعات از طريق TTP LU
راه حل در : intersection
–
PPLPو PPXP
Cohort-Obscuring
کمترين افشاء
تصديق اصالت كاربر -مقدمه
پايه تمام كارهاي اعمال امنيت ،شناسايي كاربري است كه ميخواهد با
سيستم كار كند.
تمامي سطوح دسترسي و مكانيزم هاي امنيتي بر اساس نام كاربران عمل
مي كنند.
انواع تصديق اصالت :
–
Database Authentication
–
External Authentication
–
Proxy Authentication
تصديق اصالت توسط كلمه عبور
مرسوم ترين روش تصديق اصالت
كلمات عبور به صورت رمز شده در پايگاه ذخيره ميشوند .
هر كاربر قادر به تعويض كلمه عبور خود است .
وجود تهديداتي از قبيل جعل و دزدي كلمه عبور.
تصديق اصالت توسط كلمه عبور
مواردي جهت افزايش امنيت اين روش:
–
اعمااال خااط مشااي مااديريت كلمااات عبااور توسااط DBAو مساائول امنياات از طريااق
پروفايلهاي كاربران
–
تعريف استانداردهايي براي اعمال پيچيدگيهاي الزم براي كلمات عبور ،مثل حداقل
طول
–
كلمات عبور نبايد شامل نام و مشخصات كاربران باشد.
–
كلمات عبور بايستي مرتبا تعويض گردد و بعد از مدتي دوباره نامعتبر گردد.
–
استفاده مجدد از كلمه عبور قبلي بايستي محدود شود.
– بعد از تعداد مشخصي تالش ناموفق براي اتصال ،حساب كاربر Lockميگردد.
تصديق اصالت قوي
تصديق اصالت با استفاده از تركيب موارد زير:
– انچه كه كاربر ميداند مثل كلمه عبور
– انچه كه كاربر در اختيار دارد.
مزايا :
– تنوع مكانيزم هاي تصديق اصالت مثل كارتهاي هوشمند ،كربروس و...
– استفاده از Network Authenticationبراي Single Signon
Profiles
Oracle از Profileهااا بااراي اعمااال محاادوديت هاااي خاااص و
كنترل هايي روي منابع سيستمي مورد اساتفاده ،كلماات عباور ،و
محصوالت مختلف Oracleتوسط مدير سيستم استفاده ميكند.
پروفاياال هااا توسااط اسااامي آنهااا متمااايز مااي شااوند و بااه كاااربر ياا
گروه كاربران انتساب داده مي شوند.
بر دو نوع هستند :
– پروفايل هاي محدودكننده منابع سيستمي
– پروفايل هاي محدودكننده استفاده از محصوالت
پروفايل هاي محدودكننده منابع سيستمي
براي قراردادن محدوديت در مورد اساتفاده از مناابع سيساتمي خااص باراي
كاربرن از جمله زمان استفاده از ، CPUتعداد بالك هاي داده خوانده شده
در هاار Sessionو فراخااواني هاااي انجااام شااده ،تعااداد Sessionهاااي
فعال موازي ،مدت زمان idleو حداكثر تعداد اتصااالت باراي هار كااربر
مورد استفاده قرار مي گيرد.
اسااتفاده از چنااين محاادوديت هااايي تضاامين مااي كنااد كااه كاااربري خواسااته يااا
ناخواسته منابع سيستم را تلف كند” .مفهوم ”hog
همچنااين بااراي اعمااال قااوانيني در مااورد زمااان تعريااف و مياازان پيچياادگي
كلمااات عبااور و تعااداد سااعي هاااي اشااتباه قبااا از Lockشاادن حساااب بكااار
ميرود.
پروفايلهاي محدودكننده محصوالت
بعد از تعريف كاربر ،توسط محصوالت مختلف Oracleمي
توان به بانك وصل شد.
با تعريف چنين محدوديت هايي ،اين اتصال ،به برنامه ها و
محصوالت خاصي محدود ميگردد.
مثال امكان اتصال از طريق SQL*Plusوجود دارد ولي از
طريق SQL*Report writerممكن نيست.
امتيازات
كاربر به محض ايجاد ،هيچ حقي ندارد.
براي انجام هر كاري ،بايد حق آن را داشت.
در حدود 100حق مختلف تعريف شده است.
حقوق به دو دسته تقسيم بندي ميشود :
–
System Privilege
–
Object Privilege
–
هر دو نوع با دستور Grantبه كاربران داده مي شود.
امتيازات سيستمي
ايااان امتياااازات باااه كااااربران اجاااازه سااااخت و تغييااار Objectهاااا و همچناااين انجاااام
عملياتهاي سيستمي را مي دهند ،ولي اجازه دسترسي به Objectهاي موجود و كار
با آنها را نميدهد.
Create/Alter User
Create/Alter Table
Execute Any Procedure
Export/Import Full Database
…
امتيازات روي اشيا
اين امتيازات به كاربران اجازه دسترسي كاربر به يك شي خاص پايگاه كه مالك آن
كاربر ديگري است را مي دهند .مثل جدول ،ديد ،پروسيجر و . Synonym
دسترسي به ديد بدون دسترسي به خود جدول ،يعني اعمال يك مكانيزم امنيتي براي
دسترسي به زيرمجموعه اي از دادهها .
Insert / Update / Select / Delete on Table
Select / Alter Sequence
Execute Procedure
Reference On Table
…
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
…
نقش ها
Role ها باراي تساهيل كاار ماديريت اعطااي مجوزهاا باه كااربران اساتفاده
ميشود.
بعد از ايجاد نقش ،مجموعهاي از حقوق به آن داده ميشاود و ياك ياا چنادين
نقش به كاربر انتساب داده ميشود.
نقشها مي توانند با كلمات عبور محافظت گردند و باراي اساتفاده از حقاوق
آن نقش ،بايساتي كلماه عباور زده شاود مگار اينكاه نقاش پايش فارض كااربر
باشد.
مورد استفاده :توساط Applicationخااص بتواناد ولاي غيار از آن روش
نتواند دسترسي انجام دهد .زيرا كلمه عبور توسط App.تامين مي گردد و
كاربر آنرا نميداند.
Oracle 9i امكانات امنيتي
Integrity
–
Entity Integrity
–
Referential Integrity
Authentication & Access Control
Privileges
Roles
Auditing
–
By user / statement / privilege / schema object
Views , Stored Program Unit ,Triggers
امكانات امنيتي - Oracle 9iادامه
Data Encryption
–
فراهم كردن رمزنگاري براي دادههاي انتقالي در شبكه بعد از . Oracle7
–
فراهم كردن رمزنگاري براي دادههاي ذخيره شده .
–
DBMS_OBFUSCATION_TOOLKITبراي DESو . 3DES
–
تابع MD5براي درهم سازي و تصديق اصالت پيام .
–
Random Number Generatorبراي ساخت كليد .
منابع
1.
Oracle Security Handbook , 2001 Oracle Press
2.
Oracle 9i DBA Handbook , 2002 Oracle Press
3.
4.
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
QUESTIONS
ANSWERS
{Hafez,Tarameshloo}@ce.aut.ac.ir