ورود

نسخه کامل مشاهده نسخه کامل : در خواست مقاله : امنیت Oracl



salim_a
13-01-2009, 20:10
سلام دوستان

مقاله ی در خصوص امنیت در اوراکل می خوام

هر چی مگرم چیز بدرد بخوری پیدا نمی کنم

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

با تشکر

Oracle_Eldorado
13-01-2009, 20:56
محافظت از پایگاه داده (در اوراکل)

برای چندین نسخه اصلی پایگاه داده، پایگاه داده اوراكل ، لیست كنترل امنیتی را برای مشتریان ارائه كرده تا بتواند امنیت پایگاه داده را بهبود بخشد.از اوراكل نسخه ۹i ، اوراكل برای شناخت بهترنیازهای پیش فرض كاربران و محكم سازی پایگاه داده خود همكاری نزدیك تری را شروع كرد. پایگاه داده اوراكل نسخه ۱۰g Release۱ ، دارای بسته مدیریتی قدرتمندی است كه به راحتی می تواند سیاست های لازم را بیان كرده و علاوه بر آن توانایی پویش پایگاه داده را برای پیدا كردن تنظیماتی كه با امنیت پایگاه داده مرتبط است دارا می باشد .اوراكل به این بسته مدیریت قدرتمند، هر روز قابلیت های بیشتری را در جهت كمك به مدیران پایگاه داده اضافه می كند . از جمله این قابلیت ها ، می توان به پویش نحوه نصب اوراكل اشاره كرد كه می توان مواردی را كه دارای نواقص امنیتی است تشخیص و برطرف سازد. از جمله این حفره های امنیتی می توان به فعال كردن دسترسی های از پیش تعریف شده اوراكل اشاره كرد. استفاده از ابزار EM policy manager می تواند تا حد زیادی امنیت اوراكل را بهبود بخشد.


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

اوراكل ابزارهایی نظیر:

Client identifier

Secure application roles

Oracle database auditing


را برای پیشبرد اهداف امنیتی خود در دسترس كاربران قرار داده است. اگرچه برای رسیدن به حداكثر امنیتی كه اوراكل پیشنهاد كرده است، لازم است خود پایگاه داده نیز امنیت مورد قبول داشته باشد.

ده قدم برای امنیت پایگاه داده پیشنهاد شده است ، كه عنوان و توضیح كوتاهی در مورد هر كدام آورده شده است.



Step ۱: Install only what is required

Step ۲: Lock and Expire Default User Accounts

Step ۳: Change Default User Passwords

Oracle Database ۱۰g enables you to use the same or different passwords for administrative accounts such as SYSTEM, SYSMAN and DBSNMP. Use different passwords for each: in any Oracle environment (production or test), assign strong and distinct passwords to these administrative accounts.

Step ۴: Enable Data Dictionary Protection

Oracle recommends that customers implement data dictionary protection to prevent users having the ANY system privileges from using such privileges on the data dictionary.

To enable dictionary protection, set the following configuration parameter to FALSE, in the init.ora control file:

O۷_DICTIONARY_ACCESSIBILITY = FALSE

Step ۵: Practice the principle of least privilege

Step ۶: Enforce access controls effectively and authenticate clients stringently

Step ۸: Restrict Network Access

Step ۹: Apply all security patches


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

Step ۱۰: Contact Oracle Security products if you come across vulnerability in Oracle Database


جدول زیر حاوی نام های كاربری پیش فرض و وضعیت هر یك در اوراكل ۱۰G-R۱,۲ می باشد:


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

نامهای كاربری پیش فرض و وضعیت آنها در اوراكل ۹i R۲ در جدول زیر آمده است:


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

و همین اطلاعات در مورد اوراكل ۹i-R۱ :


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

Oracle_Eldorado
13-01-2009, 21:04
نگاهي كوتاه به امنيت در اوراكل

ماهنامه شبکه - مرداد ۱۳۸۶ شماره 78

اشاره :
اطلاعات صحيح در هر سازماني بسيار مفيد است و باعث موفقيت آن سازمان مي‌گردد. اما اگر اين اطلاعات دستكاري شود، بدون شك تأثيرات بدي در سازمان خواهد داشت. بانك اطلاعاتي اوراكل با محدود كردن دسترسي به داده‌ها مي‌تواند از اطلاعات شما محافظت كند. اوراكل با استفاده از Granting، يا محدود كردن مجوزهاي كاربران و فراهم كردن دستوراتي مانند Create User ،Create Role و Grant براي مديران پايگاه‌داده مي‌تواند دسترسي به اطلاعات را مديريت كند. هر كاربر اوراكل داراي نام و رمز ورودي است و صاحب چند جدول، View يا اجزاي ديگري است كه به وجود مي‌آورد. يك Oracle Role (يا نقش) در واقع شامل امتيازاتي است كه كاربر مي‌تواند براي دسترسي به اشياي بانك اطلاعاتي داشته باشد. مي‌توانيد امتيازي (Privilege) را به نقشي بدهيد و سپس آن نقش را به يك كاربر اهدا كنيد. در اين مقاله قصد ندارم شما را با مباحث پيچيده امنيت در اوراكل آشنا كنم، هدف، آشنا كردن شما به صورت كاملاً عملي با پايه امنيت در اوراكل 10g است.

ايجاد كاربر

هر سيستم اوراكل به صورت پيش‌فرض داراي چندين كاربر مانند SYSTEM و SYS است. كاربر SYS صاحب جداول داخلي بانك اطلاعاتي است (كه وظيفه مديريت بانك اطلاعاتي را به عهده دارند) و كاربر SYSTEM صاحب جداول ديگر مديريتي است و براي اين‌كه بتوانيم كاربري را در يك بانك اطلاعاتي اضافه كنيم يا تغييراتي را در مجوزهاي آن بدهيم، بايد با اين كاربر به سيستم وارد شويم. فرمت دستوري كه مي‌توانيد با آن كاربر جديدي را به سيستم اضافه كنيد، به صورت زير است:

در شكل 1 مراحل ساخت يك كاربر به نام Amin نشان داده شده است. در مرحله اول كاربر با استفاده از دستور Create User ساخته شده است. در مرحله دوم رمز كاربر تعويض شده است و در مرحله سوم براي اين‌كه به كاربر اجازه ورود بدهيم، يك Session جديد به نام او ساخته‌ايم.


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

مديريت رمزها

كاربر بانك اطلاعاتي مي‌تواند پسورد خود را با استفاده از دستور password عوض كند، ولي در اوراكل مي‌توانيم رمزهاي كاربران را به صورت پيشرفته مديريت نماييم. مثلاً مي‌توانيم رمز ورودي را منقضي كنيم DBA و... مي‌تواند پروفايل‌هاي خاصي را براي مديريت امنيت تعريف نمايد و وقتي كاربر را ايجاد مي‌كند، آن پروفايل را به آن اختصاص دهد.


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

Profile مي‌تواند محدوديت‌هايي از قبيل طول عمر يك رمز، مدت زماني كه كاربر بايد رمز خود را عوض كند، تعداد دفعات ورود به سيستم با رمز اشتباه براي قفل كردن سيستم، تعداد روزهايي كه حساب كاربر بسته باشد، تعداد روزهايي كه بايد بگذرد تا كاربر دوباره از يك رمز استفاده كند، طول رشته رمز و محدوديت‌هاي ديگر را در خود داشته باشد.

در شكل 2 طريقه ايجاد يك پروفايل را مشاهده مي‌كنيد كه تعداد اشتباه در ورود روز را «2» تعيين كرده است. همان‌طور كه در اين كدها مشخص شده است، اين پروفايل به كاربر amin داده مي‌شود و حساب او پس از دو اشتباه قفل مي گردد. البته DBA مي‌تواند با دستور زير Account او را مجدداً باز كند.


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

ايجاد نقش براي كاربر

در مراحل قبل كاربر amin را ساختيم و رمز جديدي به آن داديم. حال او داراي حساب است، ولي نمي‌تواند كار خاصي انجام دهد؛ چراكه هيچ نقش و مجوزي جز Create Session به او Grant نشده است. مهم‌ترين نقش‌هاي اوراكل براي كاربران در جدول زير مشاهده مي‌شود:


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

حال فرض كنيد كه كاربر amin صاحب جدول emp و نقش مدير سيستم را عهده دار است. حال مطابق شكل 3 دو كاربر به اسامي zbehro و Parham مي‌سازيم و به هر دوي آن ها اجازه ورود به سيستم را مي‌دهيم و به Parham اختيارات ديگري نيز مي‌دهيم.


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

حال سؤال اينجاست كه با وجود اختياراتي كه به Parham داده شده است، آيا او مي‌تواند به جداول amin دسترسي كامل داشته باشد يا خير؟ براي دسترسي كاربري به جدوال خود از دستور grant به نوعي ديگر استفاده مي‌كنيم. مثلاً مي‌توانيم با دستور زير بگوييم كه كاربر Parham مي‌تواند از جدول emp كاربر amin استفاده كند:


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

اضافه بر نقش‌هايي كه به صورت پيش‌فرض در اوراكل وجود دارد، مي‌توانيد نقش‌هاي ديگري نيز در اوراكل درست كنيد. مثلاً دو دستور زير دو نقش جديد به سيستم اضافه مي‌كند.


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


حال همان‌طور كه در كدهاي زير مي‌بينيد، مي‌توانيد امتيازها را به نقش بدهيد:


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

بررسي عملكرد كاربران‌

در اوراكل مي‌توانيم به راحتي تمامي اعمالي كه اتفاق افتاده است را بررسي كنيم. تمامي اين اعمال به صورت ركوردهايي در بانك اطلاعاتي ثبت مي‌شود. در اوراكل امكان بررسي يا Audit سه چيز وجود دارد: برقراري ارتباط با سيستم، دسترسي به اشياي بانك اطلاعاتي، و اعمالي كه روي بانك اطلاعاتي انجام مي‌گيرد. براي فعال‌سازي اين گزينه، بايد مقدار AUDIT_TRAIL در فايل Init.ora ،DB يا OS باشد.
براي اين‌كه ارتباطات كاربران به بانك اطلاعاتي را كنترل كنيم، مي‌توانيم از دستورات زير استفاده نماييم:


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

در اين حالت سيستم از تمامي ارتباطات موفق و غيرموفق كاربران ركورد برداشت مي‌نمايد. براي مشاهده اين اطلاعات مي‌توانيم از جدول dba_aduit_session استفاده نماييم و با استفاده از فيلد returncode كه در اين جدول است، خطاي مربوطه كه معمولاً ORA_1017 و ORA_1005 است را استخراج نمود.

ORA_1005 وقتي است كه كاربر بدون كلمه عبور مي‌خواهد وارد شود و خطاي ORA_1017 زماني است كه كاربر رمز اشتباه را وارد مي‌نمايد. براي غير فعال كردن بررسي ارتباطات كاربران، مي‌توانيم از دستور NOAUDIT session استفاده نماييم.

براي بررسي عمل كاربرها روي اشيايي مانند Database Link ،Tablespace ،User و Index كه غالباً Drop ،Alter وCreate را اجرا مي‌كنند، بايد دستور AUDIT ROLE را اجرا كنيم و با جست‌وجوي زير عملكرد كاربران را مشاهده كرد:


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

اضافه بر كنترل دسترسي بر اشيا، مي‌توانيم اعمال دستكاري داده ها بر اشيا را نيز بررسي نماييم. مثلاً اعمالي مانند Insert ،Select و Delete. براي بررسي اين قسمت مانند دستورات قبلي از دستور Audit استفاده مي‌كنيم، ولي عبارت اضافي By Session يا By Access نيز به اين دستور اضافه مي‌شود. اين دستور به سيستم مي‌گويد: براي هر دسترسي يك ركورد جمع‌آوري كند. مثلاً براي بررسي اعمالي كه روي جدول emp انجام مي‌شود، بايد دستورات روبه‌رو را نوشت:


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

با اين كار هر گونه دستكاري از قبيل اضافه كردن ركورد و حذف آن در جدولDBA_AUDIT_OBJECT ذخيره مي‌شوند و شما مي‌توانيد به راحتي اين اطلاعات را مشاهده كنيد.