توھان ويب ايپليڪيشنن ذريعي سڌو يا اڻ سڌي طرح ڊيٽابيس سان ڳنڍي سگھو ٿا. ضابطي جي طور تي، ڪاروباري صارف، اهو آهي، جيڪو ماڻهو DBMS سان ڪم ڪري ٿو، ان سان اڻ سڌي طرح سان رابطو ڪري ٿو.
ڪنيڪشن جي حفاظت بابت ڳالهائڻ کان اڳ، توهان کي اهم سوالن جا جواب ڏيڻ گهرجن جيڪي طئي ڪن ٿا ته حفاظتي قدمن کي ڪيئن منظم ڪيو ويندو:
ڇا ھڪڙو ڪاروباري صارف ھڪڙو DBMS صارف جي برابر آھي؟
ڇا DBMS ڊيٽا تائين رسائي صرف هڪ API ذريعي مهيا ڪئي وئي آهي جنهن کي توهان ڪنٽرول ڪندا آهيو، يا ڇا ٽيبل تائين سڌو سنئون رسائي آهي؛
ڇا DBMS هڪ الڳ محفوظ حصي کي مختص ڪيو ويو آهي، ڪير ان سان رابطو ڪري ٿو ۽ ڪيئن؛
ڇا پولنگ/پراڪسي ۽ وچولي پرت استعمال ٿيل آهن، جيڪي معلومات کي تبديل ڪري سگھن ٿيون ته ڪنيڪشن ڪيئن ٺهيل آهي ۽ ڪير ڊيٽابيس استعمال ڪري رهيو آهي.
ڊيٽابيس فائر وال ڪلاس حل استعمال ڪريو. تحفظ جو هڪ اضافي پرت، گهٽ ۾ گهٽ، شفافيت کي وڌائيندو جيڪو DBMS ۾ ٿي رهيو آهي، ۽ وڌ ۾ وڌ، توهان اضافي ڊيٽا تحفظ فراهم ڪرڻ جي قابل هوندا.
پاسورڊ پاليسيون استعمال ڪريو. انهن جي استعمال تي منحصر آهي ته توهان جي فن تعمير ڪيئن ٺهيل آهي. ڪنهن به صورت ۾، ويب ايپليڪيشن جي ترتيب واري فائل ۾ هڪ پاسورڊ جيڪو DBMS سان ڳنڍيندو آهي تحفظ لاء ڪافي ناهي. اتي ڪيترائي DBMS اوزار آھن جيڪي توھان کي ڪنٽرول ڪرڻ جي اجازت ڏين ٿا ته صارف ۽ پاسورڊ کي اپڊيٽ ڪرڻ جي ضرورت آھي.
توھان وڌيڪ پڙھي سگھو ٿا استعمال ڪندڙ جي درجه بندي افعال بابت هتي، توهان پڻ ڳولي سگهو ٿا MS SQL Vulnerability Assessmen بابت هتي.
ضروري معلومات سان سيشن جي تناظر کي بهتر بڻايو. جيڪڏهن سيشن مبهم آهي، توهان نٿا سمجهو ته DBMS ۾ ڪير ڪم ڪري رهيو آهي ان جي فريم ورڪ ۾، توهان ڪري سگهو ٿا، فريم ورڪ جي فريم ورڪ جي اندر، جيڪو ڪم ڪري رهيو آهي ۽ ڇو. اها معلومات آڊٽ ۾ ڏسي سگهجي ٿي.
SSL ترتيب ڏيو جيڪڏهن توهان وٽ DBMS ۽ آخري استعمال ڪندڙن جي وچ ۾ نيٽ ورڪ علحدگي نه آهي؛ اهو هڪ الڳ VLAN ۾ ناهي. اهڙين حالتن ۾، اهو ضروري آهي ته چينل کي تحفظ ڏيڻ لاء صارف ۽ ڊي بي ايم ايس پاڻ جي وچ ۾. سيڪيورٽي اوزار پڻ کليل ذريعو ۾ موجود آهن.
اهو ڪيئن اثر انداز ڪندو DBMS جي ڪارڪردگي؟
اچو ته PostgreSQL جو مثال ڏسون ته ڪيئن SSL سي پي يو لوڊ تي اثر انداز ٿئي ٿو، ٽائيم وڌائي ٿو ۽ TPS گھٽائي ٿو، ۽ ڇا اھو گھڻا وسيلا استعمال ڪندو جيڪڏھن توھان ان کي چالو ڪيو.
Pgbench استعمال ڪندي PostgreSQL لوڊ ڪندي ڪارڪردگي ٽيسٽ هلائڻ لاءِ هڪ سادي پروگرام آهي. اهو بار بار حڪمن جي ھڪڙي ترتيب تي عمل ڪري ٿو، ممڪن طور تي متوازي ڊيٽابيس سيشن ۾، ۽ پوء اوسط ٽرانزيڪشن جي شرح جي حساب سان.
ٽيسٽ 1 بغير SSL ۽ SSL استعمال ڪندي - هر ٽرانزيڪشن لاء ڪنيڪشن قائم ڪئي وئي آهي:
scaling factor: 1
query mode: simple
number of clients: 10
number of threads: 1
number of transactions per client: 5000
number of transactions actually processed: 50000/50000
ٽيسٽ جا نتيجا:
NO SSL ايس ايس ايل
هر ٽرانزيڪشن لاء هڪ ڪنيڪشن قائم آهي
دير جي اوسط
171.915 MS
187.695 MS
tps ڪنيڪشن قائم ڪرڻ سميت
58.168112
53.278062
tps کان سواء ڪنيڪشن قائم ڪرڻ
64.084546
58.725846
سي پي يو
24٪
28٪
سڀ ٽرانزيڪشن هڪ ڪنيڪشن ۾ ڪيا ويا آهن
دير جي اوسط
6.722 MS
6.342 MS
tps ڪنيڪشن قائم ڪرڻ سميت
1587.657278
1576.792883
tps کان سواء ڪنيڪشن قائم ڪرڻ
1588.380574
1577.694766
سي پي يو
17٪
21٪
هلڪو لوڊ تي، SSL جو اثر ماپ جي غلطي جي مقابلي ۾ آهي. جيڪڏهن منتقل ڪيل ڊيٽا جو مقدار تمام وڏو آهي، صورتحال مختلف ٿي سگهي ٿي. جيڪڏهن اسان هر ٽرانزيڪشن تي هڪ ڪنيڪشن قائم ڪريون ٿا (اهو نادر آهي، عام طور تي ڪنيڪشن صارفين جي وچ ۾ ورهايو ويندو آهي)، توهان وٽ وڏي تعداد ۾ ڪنيڪشن/منسلڪات آهن، اثر ٿورو وڏو ٿي سگهي ٿو. اهو آهي، ڪارڪردگي ۾ گهٽتائي جا خطرا ٿي سگهن ٿا، جڏهن ته، فرق ايترو وڏو ناهي جيترو تحفظ استعمال نه ڪرڻ.
مهرباني ڪري نوٽ ڪريو ته هڪ مضبوط فرق آهي جيڪڏهن توهان آپريٽنگ طريقن جو مقابلو ڪريو ٿا: توهان ڪم ڪري رهيا آهيو ساڳئي سيشن ۾ يا مختلف ۾. اهو سمجھڻ وارو آهي: هر ڪنيڪشن ٺاهڻ تي وسيلا خرچ ڪيا ويا آهن.
اسان وٽ هڪ ڪيس هو جڏهن اسان زبڪس کي اعتماد واري موڊ ۾ ڳنڍيو، اهو آهي، md5 چيڪ نه ڪيو ويو، تصديق جي ڪا ضرورت ناهي. پوءِ گراهڪ پڇيو md5 جي تصديق واري موڊ کي فعال ڪرڻ لاءِ. اهو سي پي يو تي هڪ ڳري لوڊ وجهي، ۽ ڪارڪردگي ختم ٿي وئي. اسان بهتر ڪرڻ جا طريقا ڳولڻ شروع ڪيو. مسئلي جو هڪ ممڪن حل اهو آهي ته نيٽ ورڪ پابنديون لاڳو ڪرڻ، ڊي بي ايم ايس لاءِ الڳ VLANs ٺاهيو، سيٽنگون شامل ڪريو ته جيئن اهو واضح ٿئي ته ڪير ڪٿان ڳنڍي رهيو آهي ۽ تصديق کي هٽائي ڇڏيو. توهان تصديق جي سيٽنگ کي به بهتر ڪري سگهو ٿا ته قيمت گھٽائڻ لاءِ جڏهن تصديق کي چالو ڪيو وڃي، پر عام طور تي مختلف طريقن جي استعمال جي تصديق ڪارڪردگي کي متاثر ڪري ٿي ۽ انهن عنصرن کي حساب ۾ رکڻ جي ضرورت آهي جڏهن DBMS لاءِ سرورز (هارڊويئر) جي ڪمپيوٽنگ پاور کي ڊزائين ڪرڻ.
نتيجو: ڪيترن ئي حلن ۾، جيتوڻيڪ تصديق ۾ ننڍڙا ننڍڙا به پروجيڪٽ کي تمام گهڻو متاثر ڪري سگهن ٿا ۽ اهو خراب آهي جڏهن اهو واضح ٿئي ٿو جڏهن صرف پيداوار ۾ لاڳو ٿئي ٿي.
ايڪشن آڊٽ
آڊٽ نه رڳو DBMS ٿي سگهي ٿو. هڪ آڊٽ مختلف حصن ۾ ڇا ٿي رهيو آهي بابت معلومات حاصل ڪرڻ بابت آهي. اهو ٿي سگهي ٿو هڪ ڊيٽابيس فائر وال يا آپريٽنگ سسٽم جنهن تي DBMS ٺهيل آهي.
اسان ترتيب واري فائل ۾ تقريبا ڪجھ به تبديل نه ڪندا آهيون، سڀ کان اهم شيء آهي ڊيبگ 5 موڊ کي چالو ڪرڻ لاء وڌ کان وڌ معلومات حاصل ڪرڻ لاء.
postgresql.conf
log_destination = 'stderr'
logging_collector = آن
log_truncate_on_rotation = آن
log_rotation_age = 1d
log_rotation_size = 10MB
log_min_messages = ڊيبگ 5
log_min_error_statement = ڊيبگ 5
log_min_duration_statement = 0
debug_print_parse = آن
debug_print_rewritten = تي
debug_print_plan = تي
debug_pretty_print = تي
log_checkpoints = تي
log_Connections = آن
log_disconnections = آن
log_duration = تي
log_hostname = آن
log_lock_wait = آن
log_replication_commands = تي
log_temp_files = 0
log_timezone = 'يورپ/ماسڪو'
PostgreSQL DBMS تي 1 CPU، 2,8 GHz، 2 GB RAM، 40 GB HDD جي پيٽرولن سان، اسان حڪمن کي استعمال ڪندي ٽي لوڊ ٽيسٽ ڪندا آهيون:
رام ۽ سي پي يو جي ڪارڪردگي متاثر ٿيندي، جيئن توهان کي آڊٽ فائل ٺاهڻ جي ضرورت آهي. اهو پڻ پيداوار ۾ قابل ذڪر آهي.
جيئن ته ڪنيڪشن جو تعداد وڌي ٿو، قدرتي طور تي، ڪارڪردگي ٿورڙي خراب ٿيندي.
آڊٽ سان ڪارپوريشنن ۾ اهو اڃا به وڌيڪ ڏکيو آهي:
ڊيٽا جو تمام گهڻو آهي؛
آڊيٽنگ جي ضرورت آهي نه رڳو SIEM ۾ syslog ذريعي، پر فائلن ۾ پڻ: جيڪڏهن syslog کي ڪجهه ٿئي ٿو، اتي لازمي طور تي ڊيٽابيس جي ويجهو هڪ فائل هجڻ گهرجي جنهن ۾ ڊيٽا محفوظ ڪئي وئي آهي؛
آڊيٽنگ لاءِ هڪ الڳ شيلف جي ضرورت آهي ته جيئن I/O ڊسڪ کي ضايع نه ڪري، ڇاڪاڻ ته اهو تمام گهڻو جاء وٺندو آهي؛
اهو ٿئي ٿو ته معلومات سيڪيورٽي ملازمن کي هر جڳهه GOST معيار جي ضرورت آهي، انهن کي رياست جي سڃاڻپ جي ضرورت آهي.
ڊيٽا تائين رسائي کي محدود ڪرڻ
اچو ته ڏسو ٽيڪنالاجيون جيڪي ڊيٽا کي بچائڻ لاءِ استعمال ٿين ٿيون ۽ ان کي تجارتي DBMSs ۽ اوپن سورس ۾ پهچن ٿيون.
توهان عام طور تي ڇا استعمال ڪري سگهو ٿا:
انڪريپشن ۽ طريقيڪار ۽ ڪمن جي اوچائي (ريپنگ) - اهو آهي، الڳ الڳ اوزار ۽ افاديت جيڪي پڙهڻ جي قابل ڪوڊ کي اڻ پڙهيل بڻائين. سچ پچ ته پوءِ ان کي نه بدلائي سگهجي ٿو ۽ نه ئي وري ٻيهر ٺاهي سگهجي ٿو. اهو طريقو ڪڏهن ڪڏهن گهٽ ۾ گهٽ DBMS پاسي جي ضرورت آهي - لائسنس جي پابنديون يا اختيار جي منطق جو منطق صحيح طور تي طريقيڪار ۽ فنڪشن جي سطح تي انڪوڊ ٿيل آهي.
قطارن (RLS) ذريعي ڊيٽا جي نمائش کي محدود ڪرڻ اهو آهي جڏهن مختلف استعمال ڪندڙ هڪ ٽيبل کي ڏسن ٿا، پر ان ۾ قطارن جو هڪ مختلف ٺهيل آهي، اهو آهي ته، قطار جي سطح تي ڪنهن کي ڪجهه ڏيکاري نه ٿو سگهجي.
ڏيکاريل ڊيٽا کي ايڊٽ ڪرڻ (ماسڪنگ) تڏهن ٿيندو آهي جڏهن استعمال ڪندڙ ٽيبل جي هڪ ڪالمن ۾ يا ته ڊيٽا يا صرف ستاري ڏسندا آهن، يعني ڪجهه صارفين لاءِ معلومات بند ڪئي ويندي. ٽيڪنالاجي اهو طئي ڪري ٿو ته ڪهڙو صارف ڏيکاريو ويو آهي انهن جي رسائي جي سطح جي بنياد تي.
سيڪيورٽي DBA/ايپليڪيشن DBA/DBA رسائي ڪنٽرول آهي، بلڪه، DBMS تائين رسائي کي محدود ڪرڻ جي باري ۾، اهو آهي، معلومات سيڪيورٽي ملازمن کي ڊيٽابيس جي منتظمين ۽ ايپليڪيشن ايڊمنسٽريٽرن کان الڳ ڪري سگهجي ٿو. اوپن سورس ۾ ڪجھه اهڙيون ٽيڪنالاجيون آهن، پر تجارتي ڊي بي ايم ايس ۾ انهن مان ڪافي آهن. انهن جي ضرورت آهي جڏهن اتي ڪيترائي صارف آهن جن وٽ سرور تائين رسائي آهي.
فائل سسٽم جي سطح تي فائلن تائين رسائي کي محدود ڪرڻ. توھان حق ڏئي سگھو ٿا ۽ ڊاريڪٽري تائين رسائي جا مراعات ڏئي سگھو ٿا ته جيئن ھر منتظم کي صرف ضروري ڊيٽا تائين رسائي حاصل ٿئي.
انڪرپشن جو ڪارڪردگي تي وڏو اثر آھي. اهو ڏسي سگهجي ٿو ته وقت وڌي ويو آهي، ڇو ته انڪريپٽ ٿيل ڊيٽا جي ڊيڪرپشن آپريشنز (۽ ڊيڪرپشن عام طور تي اڃا تائين توهان جي منطق ۾ لپي وئي آهي) اهم وسيلن جي ضرورت آهي. اهو آهي، ڪجهه ڊيٽا تي مشتمل سڀني ڪالمن کي انڪرپٽ ڪرڻ جو خيال ڪارڪردگي ۾ گهٽتائي سان ڀريل آهي.
بهرحال، انڪرپشن هڪ سلور بلٽ ناهي جيڪو سڀني مسئلن کي حل ڪري ٿو. ڊيٽا کي ڊريپ ڪرڻ ۽ منتقل ڪرڻ جي عمل دوران ڊڪرپٽ ٿيل ڊيٽا ۽ ڊيڪرپشن چيڪ سرور تي واقع آهن. تنهن ڪري، چابيون ڪنهن ماڻهو طرفان مداخلت ڪري سگهجن ٿيون جنهن وٽ ڊيٽابيس سرور تائين مڪمل رسائي آهي، جهڙوڪ سسٽم منتظم.
جڏهن سڀني استعمال ڪندڙن لاءِ پوري ڪالمن لاءِ هڪ ڪنجي آهي (جيتوڻيڪ سڀني لاءِ نه، پر هڪ محدود سيٽ جي گراهڪن لاءِ)، اهو هميشه سٺو ۽ درست ناهي. اهو ئي سبب آهي ته انهن آخر کان آخر تائين انڪرپشن ڪرڻ شروع ڪيو، ڊي بي ايم ايس ۾ انهن ڪلائنٽ ۽ سرور سائڊ تي ڊيٽا انڪرپٽ ڪرڻ جي اختيارن تي غور ڪرڻ شروع ڪيو، ۽ اهي ساڳيون ڪيئي والٽ اسٽوريج ظاهر ٿيا - الڳ پروڊڪٽس جيڪي ڊي بي ايم ايس تي اهم انتظام مهيا ڪن ٿيون. طرف.
مونگو ڊي بي
واندو
-
+
-
-
صرف MongoDB انٽرپرائز ۾ موجود آهي
ٽيبل مڪمل ٿيڻ کان پري آهي، پر صورتحال هي آهي: تجارتي شين ۾، سيڪيورٽي مسئلا هڪ ڊگهي وقت تائين حل ڪيا ويا آهن، اوپن سورس ۾، ضابطي جي طور تي، سيڪيورٽي لاء ڪجهه قسم جا اضافو استعمال ڪيا ويا آهن، ڪيترائي افعال غائب آهن. ، ڪڏهن ڪڏهن توهان کي ڪجهه شامل ڪرڻو پوندو. مثال طور، پاسورڊ پاليسيون - PostgreSQL ۾ ڪيتريون ئي مختلف واڌايون آهن (1, 2, 3, 4, 5)، جيڪي پاسورڊ پاليسين تي عمل ڪندا آهن، پر، منهنجي خيال ۾، انهن مان ڪو به گهريلو ڪارپوريٽ سيڪشن جي سڀني ضرورتن کي پورو نٿو ڪري.
ڇا ڪجي جيڪڏهن توهان وٽ نه هجي جيڪا توهان کي ڪٿي به گهربل هجي؟ مثال طور، توهان هڪ مخصوص DBMS استعمال ڪرڻ چاهيو ٿا جنهن ۾ اهي ڪم نه آهن جيڪي ڪسٽمر کي گهربل آهن.
پوءِ توھان استعمال ڪري سگھو ٿا ٽئين پارٽي حل جيڪي ڪم ڪن مختلف DBMSs سان، مثال طور، Crypto DB يا Garda DB. جيڪڏهن اسان گهريلو ڀاڱي مان حل جي باري ۾ ڳالهائي رهيا آهيون، پوء اهي GOSTs جي باري ۾ ڄاڻن ٿا ڀلي کليل ذريعو کان.
ٻيو اختيار اهو آهي ته جيڪو توهان کي گهربل هجي اهو لکو، پروسيس جي سطح تي ايپليڪيشن ۾ ڊيٽا جي رسائي ۽ انڪرپشن کي لاڳو ڪريو. سچ، اهو GOST سان وڌيڪ ڏکيو ٿيندو. پر عام طور تي، توھان ضرورت مطابق ڊيٽا کي لڪائي سگھوٿا، ان کي ڊي بي ايم ايس ۾ وجھو، پوءِ ان کي ٻيهر حاصل ڪريو ۽ ضرورت جي مطابق ان کي ڊريڪٽ ڪريو، ساڄي ايپليڪيشن جي سطح تي. ساڳئي وقت، فوري طور تي سوچيو ته توهان ايپليڪيشن ۾ انهن الگورتھم کي ڪيئن بچائيندا. اسان جي راء ۾، اهو ٿيڻ گهرجي DBMS سطح تي، ڇاڪاڻ ته اهو تيزيء سان ڪم ڪندو.