مقدمه
کنترل دسترسي و رمزگزاري، روشهاي مهمي جهت حفاظت از صحت دادهها در سيستمهاي پايگاهدادههاي تجاري هستند. اما به دليل برخي اشتباهات عملياتي، بدخواهي افراد داخلي سازمان، يا سوء استفاده از آسيبپذيريها توسط افراد خارج از سازمان، امکان دارد دادههاي ذخيره شده در يک پايگاه دادهها همچنان در خطر باشند. زماني که پايگاه دادهها با يک حمله مواجه ميشود، مکانيزمهاي برگشت به عقب و بازاجرايي تراکنشهاي آسيبديده بيشترين استفاده را در هنگام ترميم دارند. چنين مکانيزمهايي در حين عمليات ترميم و بازسازي، سرويس پايگاه دادهها را متوقف ميکنند (يا به شدت محدود ميکنند) که اين مسئله باعث غيرقابل دسترس بودن پايگاه دادهها ميشود، و يا مانع ارائه سرويس به برنامههاي حياتي ميگردد. براي حل اين مشکلات، راه حل جديدي به نام ديوار آتش پايگاه دادهها پيشنهاد شدهاست. ديوار آتش پايگاه دادهها به منظورحفاظت از دادهها در مقابل خرابي به دليل گسترش آسيبپذيريها استفاده ميشود.
1- ديوار آتش پايگاه دادهها چيست
ديواره آتش پايگاه دادهها همانند يک لايهي بالايي بر روي پايگاه دادهها است که به شکل يک ديوار منطقي بين کارگزار پايگاه دادهها و برنامههاي کاربردي عمل ميکند. مديران پايگاه دادهها به خوبي ميدانند که برنامههاي کاربرديشان چگونه با پايگاه دادهها ارتباط برقرار ميکنند، همچنين اطلاع دارند چه پرسوجوهايي در بين آنها رد و بدل ميشوند، و اين پرسوجوها از چه ساختارهايي استفاده ميکنند. به اين ترتيب مديران ميتوانند از اين اطلاعات جهت پيکربندي يک مجموعه قوانين در ديوار آتش پايگاه دادهها استفاده کنند. ديوار آتش پايگاه دادهها ميتواند پرسوجوها را پيش از آنکه به پايگاه دادهها فرستاده شوند، بررسي نمايد و آنهايي که خارج از اين مجموعه قوانين هستند را ***** کند.
ديوار آتش، علاوه بر ***** کردن پرس و جوها بر اجراي آنها نيز نظارت دارد. به شکلي در صورتي که داراي کدهاي مخرب باشند آنها را شناسايي ميکند. به اين ترتيب ديواره آتش بايد داراي مکانيزمي براي تشخيص تزريق SQL و حملات مرتبط با آن باشد.
به طور کلي ديوار آتش بايد با نظارت بر عملکرد پايگاه دادهها حملات احتمالي را تشخيص و از اجراي آنها جلوگيري کند. همچنين با شناخت آسيبپذيريهاي سيستم پايگاه دادهها از سوء استفاده آنها پيشگيري کند.
2-انواع ديوار آتش
تا کنون چندين ديوار آتش مختلف براي پايگاه دادهها ارائه شده است. در اين بخش به بررسي دو ديوار آتش پايگاه دادههاي معروف ميپردازيم.
2-1- GreenSQL
GreenSQL يک ديوار آتش پايگاه دادههاي متن باز و مجاني است که جهت حفاظت از پايگاه دادهها در مقابل حملات تزريق SQL و ديگر تغييرات غيرمجاز (همانند يک ديوار آتش که از يک شبکه در برابر حملات خارجي TCP/IP حفاظت ميکند) استفاده ميشود. GreenSQL به صورت يک پروکسي کار ميکند و در حال حاظر از پايگاهدادههاي MySQL و PostgreSQL پشتيباني ميکند. اين ديوار آتش دستورات SQL را با استفاده از يک ماتريس ارزيابي کرده و ليست دستورات مسدود، که شامل دستورات مديريتي شناخته شده نظير DROP، CREATE است، ***** ميکند. در نتيجه اين دستورات پيش از اينکه به پايگاه دادهها برسند دور انداخته ميشوند. پس از اين کار GreenSQL هيچ پيغام شکستي برنميگرداند، از اينرو مشخص نميشود که دستور با موفقيت انجام نشده است و مهاجم نميتواند دليل ناکام ماندن حمله را دريابد.
علاوه بر ليست دستورات مسدود، يک ليست سفيد نيز از دستورات در GreenSQL وجود دارد. اگر پرس و جوي درخواستي در ليست سفيد وجود داشته باشد، مستقيماً به کارگزار پايگاه دادهها ارسال ميگردد، در غير اينصورت يک مجموعه پاسخ خالي به کاربر برگردانده ميشود.
2-1-1- معماري GreenSQL
GreenSQL همانند يک پروکسي معکوس براي اتصالات پايگاه دادهها کار ميکند. بدين معنا که برنامههاي کاربردي کاربر به جاي اتصال به کارگزار پايگاه دادهها، به کارگزار GreenSQL متصل خواهند شد. سپس GreenSQL پرسوجوهاي SQL را تحليل ميکند و در صورت امن بودن آنها را به کارگزار پايگاه دادههاي پشتي ارسال ميکند.
شکل 1- فرايند اتصال برنامه کاربردي به کارگزار پايگاه دادهها را با استفاده از GreenSQL نشان ميدهد:
شکل 1- فرايند اتصال به پايگاه دادهها با استفاده از GreenSQL
همانطور که در شکل ديده ميشود، GreenSQL کارگزار واقعي پايگاه دادهها را براي اجراي دستورات SQL فراخواني ميکند، و برنامه کاربردي تحت وب براي ارتباط با پايگاه دادهها به کارگزار GreenSQL متصل ميشود.
امکان نصب GreenSQL به همراه کارگزار پايگاهدادهها بر روي يک سيستم، و يا قرار دادن آن بر روي يک کارگزار جداگانه وجود دارد. به صورت پيشفرض GreenSQL به پورت محلي 127.0.0.1:3305 ، گوش ميدهد و درخواستهاي SQL را به 127.0.0.1:3306(تنضيمات پيشفرض MySQL) ارسال ميکند. اين تنظيمات ميتوانند با استفاده از GreenSQL Console تغيير کنند.
2-1-2- مدهاي کاري پشتيباني شده
ديوار آتش پايگاه دادههاي GreenSQL در مدهاي مختلفي قابل استفاده است:
- · مد شبيهسازي (IDSپايگاه دادهها)
- · مد مسدودسازي دستورات مشکوک (IPS پايگاه دادهها)
- · مد يادگيري
- · مد محافظت فعال از پرس و جوهاي ناشناخته (ديوار اتش پايگاه دادهها)
2-1-3- تشخيص پرس و جوهاي غيرقانوني
GreenSQL پرس و جوهاي مشکوک را با استفاده از دو روش زير پيدا ميکند:
- · تشخيص دستورات SQL مديريتي و حساس
- · محاسبه ريسک انجام پرس و جو
o دسترسي به جداول حساس مانند جداول کاربران، حسابهاي کاربري، و اطلاعات حسابهاي بانکي
o توضيحات موجود درون دستورات SQL
o يک رشته خالي گذرواژه
o وجود عبارت “or” درون پرس و جو
o يک عبارت SQL که هميشه مقدار true برميگرداند
به منظور تشخيص نابهنجاريها، GreenSQL از تجزيه کننده زبان SQL خود براي تعيين توکنهاي SQL استفاده ميکند.
2-2- SecureSphere Database Firewall
ديوار آتش SecureSphere توسط شرکت امنيتي Imperva ارائه شده است. اين ديوار آتش بر عمليات پايگاه دادهها نظارت دارد و از آن در برابر سوء استفادههاي داخلي، حملات، و فعاليتهاي غيرمجاز محافظت ميکند. ديوار آتش SecureSphere يک سکوي قوي براي نظارت، مميزي و محافظت از پايگاه دادههاي Oracle، MS SQL Server، IBM DB2، Sybase، Informix، MySQL و Teradata، بدون کم کردن کارايي پايگاه دادهها و تغيير در شبکه و برنامههاي مورد نياز، فراهم ميآورد.
شرکت Imperva ابزار ديگري به نام SecureSphere Web Application Firewall ارائه کرده است. اين ديوار آتش، برنامههاي تحت وب و دادههاي حساس آنها را در برابر حملات پيچيده وب مانند تزريق SQL، XSS (يا Cross-Site Scripting)، و حملات لغتنامهاي جامع محافظت ميکند. همچنين از دزديده شدن اطلاعات و نشت آنها در برنامههاي کاربردي جلوگيري ميکند.
SecureSphere Database Firewall قبل از پايگاه دادهها قرار دارد تا از آن در برابر حملات و نشت اطلاعات محافظت کند. ابزارها و امکانات SecureSphere بر تراکنشهاي SQL براي تعيين قانوني بودن آنها، جلوگيري از نشت اطلاعات، و اطمينان از صحت اطلاعات با برپايي ابزار مميزي مستقل، نظارت دارند. مميزي SecureSphere ميتواند مستقل از ابزارهاي مميزي داخلي پايگاه دادهها و يا به شکل ترکيبي با آنها بر عمليات پايگاه دادهها و کليه دسترسيها در آن (حتي دسترسيهاي مجاز داخلي) نظارت داشته باشد. مميزي SecureSphere با استفاده از يک واسط تحت وب (با اعمال کنترل دسترسي نقش- مبنا) ارائه ميگردد.
2-2-1- مديريت و کشف آسيبپذيري
SecureSphere دادههاي حساس را مشخص و طبقه بندي ميکند. سپس با ارزيابي عملکرد پايگاه دادهها آسيبپذيريها و نواقص پيکربندي را در آنها تحليل ميکند. به عبارتي SecureSphere، مديريت و کشف آسيبپذيريها را با قابليتهاي زير فراهم ميآورد:
- · طبقهبندي پايگاه دادهها:
- · ارزيابي جامع آسيبپذيريها:
- · ارزيابي هوشمند رفتارها:
2-2-2- نظارت بر عملکرد پايگاه دادهها
SecureSphere شامل مجموعه کاملي از خط مشيهاي از پيش تعريف شده امنيتي و مميزي است که قابل پيادهسازي در هر محيط از پايگاه دادهها هستند. اين خط مشيها بر اساس ماژولهاي امنيتي دو ليست سفيد و سياه فعاليت ميکنند. ليست سياه به وسيله تيمهاي تحقيقاتي Imperva بههنگام ميشود. اما ليست سفيد قابل بههنگام سازي با ابزار Dynamic Profiling Technology (البته هنوز به شکل رسمي عرضه نشده) است که به شکل خودکار تغييرات مجاز را در زمان تشخيص داده و ثبت ميکند.
همانطور که پيشتر نيز گفته شده، براي نظارت بر عملکرد پايگاه دادهها و مميزي آن، SecureSphere ميتواند به شکل مستقل و بدون نياز به فعالسازي مميزي خاص پايگاه دادهها عمل کند. SecureSphere قادر به نظارت بر ترافيک شبکه و ثبت تمام فعاليتهاي محلي نيز ميباشد.
2-2-3-حفاظت از پايگاه دادهها در زمان حقيقي
نظارت پيوسته و زمان حقيقي و نيز تحليل عملکرد پايگاه دادهها به SecureSphere اجازه پاسخدهي سريع و مسدود سازي فعاليتهاي غيرمجاز را ميدهد. SecureSphere بر شبکه و دسترسيهاي مستقيم به پايگاه دادهها نظارت دارد و همه فعاليتها از قبيل فعاليتهاي DDL، DML و DCL، فعاليتهاي فقط خواندني (SELECTها)، تغييرات روالهاي ذخيره شده، رهاناها و اشياء پايگاه دادهها، به علاوه خطاهاي اجراي SQL و ورود به پايگاه دادهها را ثبت ميکند. همچنين SecureSphere براي اطمينان از عدم نشت اطلاعات پاسخهاي پايگاه دادهها را مانيتور و يا ثبت ميکند.
2-2-4- مديريت ريسک در پايگاه دادهها
SecureSphere به طور محسوسي تلاش لازم براي مديريت ريسک کاراي داده را کاهش ميدهد. دسترسي به اطلاعات با حداقل مجوز ممکن، به سازمانها امکان کنترل سبک دسترسيها را براي جلوگيري از گم شدن دادهها و نشت اطلاعات ميدهد. همچنين باعث کاهش ريسک دسترسيهاي غيرمجاز و کلاهبرداري ميشود.
منابع :