امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
نگاهی کوتاه به امنیت اوراکل
نویسنده پیام
Rink8 آفلاین
كاربر دو ستاره
**

ارسال‌ها: 224
موضوع‌ها: 49
تاریخ عضویت: اردیبهشت ۱۳۸۷

تشکرها : 302
( 481 تشکر در 112 ارسال )
ارسال: #1
myBB  نگاهی کوتاه به امنیت اوراکل
سلام به همه عزیزان ایران ویج
مقاله ی جالب که در اینترنت یافته ام نیز برای شما می گذارم امیدوارم که لذت ببرید...

اطلاعات صحيح در هر سازماني بسيار مفيد است و باعث موفقيت آن سازمان مي‌گردد. اما اگر اين اطلاعات دستكاري شود، بدون شك تأثيرات بدي در سازمان خواهد داشت...

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

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

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

[تصویر:  s78_oracle02_s.jpg]

مديريت رمزها

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

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

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

در مراحل قبل كاربر amin را ساختيم و رمز جديدي به آن داديم. حال او داراي حساب است، ولي نمي‌تواند كار خاصي انجام دهد؛ چراكه هيچ نقش و مجوزي جز Create Session به او Grant نشده است. مهم‌ترين نقش‌هاي اوراكل براي كاربران در جدول زير مشاهده مي‌شود:
[تصویر:  s78_oracle05_s.jpg]
حال سؤال اينجاست كه با وجود اختياراتي كه به Parham داده شده است، آيا او مي‌تواند به جداول amin دسترسي كامل داشته باشد يا خير؟ براي دسترسي كاربري به جدوال خود از دستور grant به نوعي ديگر استفاده مي‌كنيم. مثلاً مي‌توانيم با دستور زير بگوييم كه كاربر Parham مي‌تواند از جدول emp كاربر amin استفاده كند:
[تصویر:  s78_oracle07_s.jpg]
اضافه بر نقش‌هايي كه به صورت پيش‌فرض در اوراكل وجود دارد، مي‌توانيد نقش‌هاي ديگري نيز در اوراكل درست كنيد. مثلاً دو دستور زير دو نقش جديد به سيستم اضافه مي‌كند.
[تصویر:  s78_oracle08_s.jpg]

حال همان‌طور كه در كدهاي زير مي‌بينيد، مي‌توانيد امتيازها را به نقش بدهيد:
[تصویر:  s78_oracle09_s.jpg]
بررسي عملكرد كاربران‌
در اوراكل مي‌توانيم به راحتي تمامي اعمالي كه اتفاق افتاده است را بررسي كنيم. تمامي اين اعمال به صورت ركوردهايي در بانك اطلاعاتي ثبت مي‌شود. در اوراكل امكان بررسي يا Audit سه چيز وجود دارد: برقراري ارتباط با سيستم، دسترسي به اشياي بانك اطلاعاتي، و اعمالي كه روي بانك اطلاعاتي انجام مي‌گيرد. براي فعال‌سازي اين گزينه، بايد مقدار AUDIT_TRAIL در فايل Init.ora ،DB يا OS باشد.
براي اين‌كه ارتباطات كاربران به بانك اطلاعاتي را كنترل كنيم، مي‌توانيم از دستورات زير استفاده نماييم:
[تصویر:  s78_oracle10_s.jpg]
در اين حالت سيستم از تمامي ارتباطات موفق و غيرموفق كاربران ركورد برداشت مي‌نمايد. براي مشاهده اين اطلاعات مي‌توانيم از جدول dba_aduit_session استفاده نماييم و با استفاده از فيلد returncode كه در اين جدول است، خطاي مربوطه كه معمولاً ORA_1017 و ORA_1005 است را استخراج نمود.

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

براي بررسي عمل كاربرها روي اشيايي مانند Database Link ،Tablespace ،User و Index كه غالباً Drop ،Alter وCreate را اجرا مي‌كنند، بايد دستور AUDIT ROLE را اجرا كنيم و با جست‌وجوي زير عملكرد كاربران را مشاهده كرد:
[تصویر:  s78_oracle11_s.jpg]
اضافه بر كنترل دسترسي بر اشيا، مي‌توانيم اعمال دستكاري داده ها بر اشيا را نيز بررسي نماييم. مثلاً اعمالي مانند Insert ،Select و Delete. براي بررسي اين قسمت مانند دستورات قبلي از دستور Audit استفاده مي‌كنيم، ولي عبارت اضافي By Session يا By Access نيز به اين دستور اضافه مي‌شود. اين دستور به سيستم مي‌گويد: براي هر دسترسي يك ركورد جمع‌آوري كند. مثلاً براي بررسي اعمالي كه روي جدول emp انجام مي‌شود، بايد دستورات روبه‌رو را نوشت:
[تصویر:  s78_oracle12_s.jpg]

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

منبع
۱۲-آبان-۱۳۸۷, ۱۹:۱۹:۴۵
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : lord_viper, alaska


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  [سوال] امنیت برنامه نوشته شده payam200525 2 3,249 ۱۶-بهمن-۱۳۹۲, ۱۰:۲۳:۳۳
آخرین ارسال: sadra1234
  امنیت در پروتکل مسیریابی OSPF godvb 0 2,242 ۳۰-اسفند-۱۳۹۱, ۱۳:۲۳:۱۸
آخرین ارسال: godvb
  راهکارهای مهم برای افزایش امنیت وب سایت persia8 1 2,703 ۳۰-اردیبهشت-۱۳۹۱, ۱۵:۱۹:۰۴
آخرین ارسال: godvb
  چگونه امنیت سایت را بالا ببریم؟ alaska 4 9,771 ۲۲-فروردین-۱۳۸۸, ۱۴:۵۷:۲۸
آخرین ارسال: IISecurity.C

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 2 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS