Kerja kursus: Masalah keselamatan pangkalan data. Memastikan keselamatan dalam SMS. Keselamatan maklumat dalam sistem pengurusan pangkalan data moden. Senarai sumber yang digunakan

Dengan peningkatan dalam penggunaan pangkalan data, kekerapan serangan terhadap pangkalan data juga meningkat. Serangan pangkalan data adalah trend yang semakin meningkat hari ini. Apakah sebab serangan ke atas pangkalan data? Satu sebab ialah peningkatan akses kepada data yang disimpan dalam pangkalan data. Apabila data telah digunakan oleh ramai orang, kemungkinan kecurian data meningkat. Ia berikutan bahawa keselamatan pangkalan data ialah pelbagai teknik yang digunakan untuk melindungi maklumat yang disimpan dalam pangkalan data. Memandangkan percubaan menggodam pangkalan data adalah yang paling biasa, anda perlu memikirkan tentang keselamatan pangkalan maklumat, kerana terdapat banyak bahaya lain.

Kerosakan fizikal pada komputer, pengekodan yang salah atau rasuah, dan muat semula data adalah hampir semua potensi ancaman kepada pangkalan data. Ini bermakna terdapat banyak langkah keselamatan - daripada tembok api kepada pengauditan dan sandaran cakera - untuk memastikan sebarang kerosakan yang mungkin berlaku pada tahap minimum dan mengelakkan kehilangan keseluruhan pangkalan data. Kebanyakan perniagaan mempunyai protokol keselamatan data mereka sendiri untuk melindungi daripada serangan tertentu dan kemungkinan kerosakan.

Memasang tembok api untuk pangkalan data, sejenis halangan pelindung yang melarang semua sambungan yang tidak diketahui, ini adalah bentuk perlindungan pangkalan data yang paling asas. Firewall dipasang pada kebanyakan komputer dan direka bentuk sedemikian rupa sehingga penggodam akan menghadapi kesukaran menyambung ke komputer mangsa. Firewall berfungsi dengan menapis sambungan rangkaian supaya hanya komputer atau pengguna yang dipercayai boleh mengakses pangkalan data. Walaupun penggodam berpengalaman boleh mengatasinya, tembok api menyediakan tahap keselamatan yang tinggi.

Penyulitan ialah satu lagi langkah keselamatan untuk pangkalan data di mana data itu disulitkan, atau telah dibuat, tidak dapat difahami oleh sesiapa sahaja yang mengakses pangkalan data. Apabila menggunakan penyulitan, algoritma mengekod aksara menjadi karut, jadi ia tidak boleh dibaca. Ini bermakna jika penggodam mempunyai sedikit pengetahuan tentang kunci penyulitan, maklumat yang anda perlukan untuk menukar data yang disulitkan daripada aksara yang tidak dapat difahami kembali ke dalam bentuk yang boleh difahami, tidak mungkin dia boleh membaca pangkalan data.

Audit- ini adalah apabila pemimpin atau pengurus menyemak pangkalan data untuk memastikan tiada apa-apa perubahan di dalamnya. Jenis perlindungan pangkalan data ini biasanya dilakukan secara fizikal, oleh seseorang yang boleh membaca pangkalan data, atau untuk pangkalan data besar menggunakan program untuk melihat bahawa integriti pangkalan data kekal sama. Selain itu, audit mungkin termasuk menyemak akses pangkalan data dan melihat perkara yang dilakukan oleh seseorang apabila mereka mengakses pangkalan data. Ini menghalang kecurian data atau sekurang-kurangnya membolehkan pentadbir mengetahui siapa yang melakukan kecurian data.

Sandaran pangkalan data biasa adalah langkah keselamatan pangkalan data yang boleh melindungi pangkalan data daripada pelbagai ancaman. Apabila sandaran pangkalan data dilakukan dengan kerap, ini bermakna data akan disimpan pada pemacu keras atau pelayan lain. Jika pangkalan data kehilangan mana-mana atau semua maklumat, ia boleh dimulakan semula dengan cepat dengan kehilangan minimum menggunakan salinan sandaran. Dengan membuat sandaran pangkalan data, pentadbir boleh menghalang kerosakan fizikal pada komputer, seperti kebakaran, kerosakan pangkalan data, atau penutupan pangkalan data akibat beban berlebihan.

Hantar kerja baik anda di pangkalan pengetahuan adalah mudah. Gunakan borang di bawah

Kerja yang bagus ke tapak">

Pelajar, pelajar siswazah, saintis muda yang menggunakan pangkalan pengetahuan dalam pengajian dan kerja mereka akan sangat berterima kasih kepada anda.

Disiarkan pada http://www.allbest.ru/

Kementerian Pendidikan dan Sains Persekutuan Rusia

Institusi swasta organisasi pendidikan pendidikan tinggi

"Akademi Kemanusiaan Omsk"

Jabatan Sains Komputer, Matematik dan Sains Semula Jadi

KERJA KURSUS

mengenai topik: Keselamatan pangkalan data

dalam disiplin akademik: Pangkalan Data

Dilengkapkan oleh: Nurgalieva Shynar Altaybekovna

pengenalan

1. Kecurian maklumat daripada pangkalan data

1.1 Kawalan capaian dalam pangkalan data

1.2 Pengurusan integriti data

1.3 Kawalan konkurensi

1.4 Pemulihan data

1.5 Transaksi dan pemulihan

1.6 Pemulangan dan pelepasan transaksi

2. Keselamatan pangkalan data

2.1 Perancangan pangkalan data

2.2 Menyambung kepada pangkalan data

2.3 Storan data yang disulitkan

2.4 Suntikan SQL

2.5 Teknik perlindungan

Kesimpulan

Senarai sumber yang digunakan

Aplikasi

pengenalan

Tawaran berterusan untuk membeli pelbagai pangkalan data (kebanyakannya jabatan) menunjukkan bahawa penjualan maklumat sulit tentang warganegara dan entiti undang-undang telah menjadi spesies yang berasingan perniagaan. Jika kemunculan pangkalan data lain yang diterbitkan untuk warganegara hanyalah satu lagi fakta yang tidak menyenangkan tentang penerbitan maklumat tentang kehidupan peribadi mereka, maka di sesetengah perusahaan ini boleh menjejaskan perniagaan secara negatif. Sebagai contoh, untuk pengendali komunikasi selular penyebaran pangkalan pengebilan boleh mengakibatkan aliran keluar pelanggan yang ketara kepada pengendali pesaing yang lebih "dipercayai". Oleh itu, kadangkala lebih menguntungkan dari segi ekonomi bagi pengendali untuk mencari "pengilang" yang telah menyediakan pangkalan data yang dicuri untuk dijual dan membeli semula keseluruhan peredaran. Tetapi masalah untuk menutup kemungkinan kebocoran masih sangat relevan.

Perlindungan pangkalan data adalah salah satu tugas paling sukar yang dihadapi jabatan yang bertanggungjawab untuk memastikan keselamatan maklumat. Di satu pihak, untuk bekerja dengan pangkalan data, adalah perlu untuk menyediakan akses kepada data kepada semua pekerja yang, sebagai sebahagian daripada tugas mereka, mesti mengumpul, memproses, menyimpan dan menghantar data sulit. Sebaliknya, penyatuan pangkalan data tidak selalu mempunyai seni bina berpusat, dan oleh itu tindakan pelanggar menjadi lebih dan lebih canggih. Pada masa yang sama, tiada metodologi yang jelas dan tepat untuk penyelesaian menyeluruh kepada masalah perlindungan pangkalan data yang boleh digunakan dalam semua kes, dalam setiap situasi tertentu anda perlu mencari pendekatan individu.

Pendekatan klasik untuk menyelesaikan masalah ini termasuk memeriksa perusahaan untuk mengenal pasti ancaman seperti kecurian, kehilangan, kemusnahan, pengubahsuaian dan penafian keaslian. Peringkat kedua melibatkan penyusunan model matematik aliran maklumat utama dan kemungkinan pelanggaran, memodelkan tindakan biasa penyerang; pada ketiga - pembangunan langkah-langkah komprehensif untuk menindas dan mencegah ancaman yang mungkin melalui perundangan, organisasi, pentadbiran dan langkah teknikal perlindungan. Walau bagaimanapun, kepelbagaian aktiviti perusahaan, struktur perniagaan, rangkaian maklumat dan aliran maklumat, sistem aplikasi dan cara untuk mengatur akses kepada mereka, dsb. tidak membenarkan mencipta kaedah penyelesaian universal.

Untuk masa yang lama, perlindungan pangkalan data dikaitkan dengan melindungi rangkaian tempatan perusahaan daripada serangan luar oleh penggodam, memerangi virus, dsb. Laporan analisis terkini daripada syarikat perunding telah mengenal pasti bidang lain yang lebih penting untuk melindungi sumber maklumat syarikat. Penyelidikan telah menunjukkan dengan meyakinkan bahawa tiada siapa yang boleh menyelamatkan pentadbir pangkalan data yang "berkuasa" daripada kebocoran maklumat di pihak kakitangan dan tindakan berniat jahat. tembok api, baik VPN, mahupun sistem pengesanan serangan dan analisis keselamatan yang "canggih". Capaian tanpa kebenaran kepada data dan kecurian maklumat sulit adalah komponen utama kerugian perusahaan selepas kerosakan yang disebabkan oleh virus.

Salah satu penemuan utama laporan CSI/FBI ialah peningkatan kerosakan yang ketara daripada ancaman kecurian data sulit. setiap satu syarikat Amerika secara purata kehilangan $355.5 ribu disebabkan kebocoran data sulit sahaja sepanjang 12 bulan yang lalu. Purata kerugian daripada tindakan orang dalam ialah $300 ribu (maksimum $1.5 juta). Menyelesaikan isu akses peribadi kepada data sulit membolehkan anda mengenal pasti penyerang menggunakan maklumat yang tidak dapat dinafikan membuktikan kesalahannya. Ini, seterusnya, adalah mustahil tanpa menggunakan kaedah pengesahan dan kawalan akses yang paling moden.

Tujuan kerja kursus ini adalah untuk mempertimbangkan isu keselamatan pangkalan data.

Untuk mencapai matlamat ini, perlu menyelesaikan tugas berikut:

1. Keupayaan untuk mengelakkan capaian tanpa kebenaran kepada pangkalan data.

2. Storan data yang disulitkan.

3. Teknik perlindungan pangkalan data.

keselamatan pengurusan pangkalan maklumat

1 . Kecurian maklumat daripada pangkalan data

1.1 Kawalan capaian dalam pangkalan data

Untuk merumuskan sebab utama capaian tanpa kebenaran kepada data dan, dalam beberapa kes, jualan komersial pangkalan data yang mengandungi data peribadi pelanggan, rakan kongsi atau pekerja, dan rahsia perdagangan syarikat.

Jadi, kami mempunyai data awal berikut:

Ramai orang tidak menyedari bahawa pangkalan data mereka dicuri;

Kecurian dan kerosakan yang disebabkan adalah bersifat terpendam;

Jika fakta kecurian data dipastikan, kebanyakan syarikat menutup mulut kerosakan yang disebabkan. Salah satu sebab untuk ini adalah kekurangan mekanisme sebenar untuk mengumpul bukti mengenai kecurian sumber oleh pengguna tertentu;

Teknologi yang memungkinkan untuk memperibadikan tindakan pengguna dengan ketat dan mengehadkan hak mereka tidak diketahui oleh kebanyakan pengurus;

Keupayaan untuk melindungi data daripada pentadbir sistem juga kurang diketahui, pengurus lebih suka menganggap mereka sebagai pekerja yang paling setia;

Belanjawan keselamatan maklumat biasanya kecil. Ini tidak membenarkan kami menyelesaikan masalah secara menyeluruh (memperkenalkan jawatan kakitangan yang bertanggungjawab untuk keselamatan maklumat.

Keperluan keselamatan data asas untuk pangkalan data dan DBMS sebahagian besarnya bertepatan dengan keperluan untuk keselamatan data dalam sistem komputer- kawalan akses, perlindungan kriptografi, semakan integriti, pembalakan, dsb.

Pengurusan integriti dalam pangkalan data merujuk kepada perlindungan data dalam pangkalan data daripada perubahan dan kemusnahan yang tidak betul (berbanding dengan yang tidak dibenarkan). Mengekalkan integriti pangkalan data adalah untuk memastikan pada setiap saat ketepatan (ketepatan) kedua-dua nilai semua elemen data itu sendiri dan hubungan antara elemen data dalam pangkalan data. Keperluan asas berikut dikaitkan dengan mengekalkan integriti.

Memastikan kebolehpercayaan. Maklumat dimasukkan ke dalam setiap elemen data dengan tepat mengikut penerangan elemen ini. Mekanisme mesti disediakan untuk memastikan rintangan elemen data dan hubungan logiknya dengan ralat atau tindakan pengguna yang tidak mahir.

Kawalan konkurensi Pelanggaran integriti pangkalan data boleh berlaku apabila operasi serentak dilakukan pada data, setiap satu daripadanya secara individu tidak melanggar integriti pangkalan data. Oleh itu, mekanisme pengurusan data mesti disediakan untuk memastikan integriti pangkalan data dikekalkan sementara berbilang operasi dilakukan secara serentak.

Pemulihan. Data yang disimpan dalam pangkalan data mestilah tahan terhadap pengaruh fizikal yang buruk (ralat perkakasan, kegagalan kuasa, dll.) dan ralat perisian. Oleh itu, mekanisme mesti disediakan untuk memulihkan, dalam masa yang sangat singkat, keadaan pangkalan data yang sebelum kerosakan berlaku.

Isu kawalan capaian dan mengekalkan integriti pangkalan data adalah berkait rapat, dan dalam banyak kes mekanisme yang sama digunakan untuk menyelesaikannya. Perbezaan antara aspek memastikan keselamatan data dalam pangkalan data ini ialah kawalan capaian berkenaan dengan mencegah pemusnahan pangkalan data yang disengajakan, manakala pengurusan integriti berkenaan dengan mencegah pengenalan ralat yang tidak disengajakan.

Kebanyakan sistem pangkalan data adalah cara penyimpanan data terpusat bersatu. Ini dengan ketara mengurangkan lebihan data, memudahkan akses data dan membolehkan data dilindungi dengan lebih berkesan. Walau bagaimanapun, beberapa masalah timbul dalam teknologi pangkalan data, seperti fakta bahawa pengguna yang berbeza mesti mempunyai akses kepada beberapa data dan bukan yang lain. Oleh itu, tanpa menggunakan cara khas dan kaedah, hampir mustahil untuk memastikan pengasingan yang boleh dipercayai bagi akses kepada pangkalan data.

Majoriti DBMS moden mempunyai alat terbina dalam yang membolehkan pentadbir sistem menentukan hak pengguna untuk mengakses pelbagai bahagian pangkalan data, hingga ke elemen tertentu. Dalam kes ini, adalah mungkin bukan sahaja untuk memberikan akses kepada pengguna tertentu, tetapi juga untuk menentukan jenis akses yang dibenarkan: apa sebenarnya yang boleh dilakukan oleh pengguna tertentu dengan data tertentu (baca, ubah suai, padam, dll.), sehingga penyusunan semula keseluruhan pangkalan data Jadual (senarai) ) kawalan capaian digunakan secara meluas dalam sistem komputer, contohnya, dalam OS untuk mengawal capaian kepada fail.Keanehan menggunakan alat ini untuk melindungi pangkalan data ialah bukan sahaja fail individu (kawasan dalam rangkaian pangkalan data, hubungan dalam pangkalan data hubungan) bertindak sebagai objek perlindungan ), tetapi juga yang lain elemen struktur DB: elemen, medan, rekod, set data.

1.2 Pengurusan integriti data

Pelanggaran integriti data boleh disebabkan oleh beberapa sebab:

Kegagalan peralatan, pengaruh fizikal atau bencana alam;

Kesilapan pengguna yang diberi kuasa atau tindakan yang disengajakan oleh pengguna yang tidak dibenarkan;

Ralat perisian DBMS atau OS;

Ralat dalam program aplikasi;

Pelaksanaan bersama permintaan pengguna yang bercanggah, dsb.

Pelanggaran integriti data adalah mungkin walaupun dalam sistem yang berfungsi dengan baik. Oleh itu, adalah penting bukan sahaja untuk mencegah pelanggaran integriti, tetapi juga untuk mengesan dengan segera fakta pelanggaran integriti dan segera memulihkan integriti selepas pelanggaran.

1.3 Kawalan konkurensi

Mengekalkan integriti berdasarkan kekangan integriti di atas adalah memadai masalah yang kompleks dalam sistem pangkalan data walaupun dengan satu pengguna. Dalam sistem yang berorientasikan kepada operasi berbilang pengguna, beberapa masalah baharu timbul berkaitan dengan pelaksanaan selari permintaan pengguna yang bercanggah. Sebelum mempertimbangkan mekanisme untuk melindungi pangkalan data daripada ralat yang timbul sekiranya berlaku konflik antara pertanyaan pengguna, kami akan merangkumi beberapa konsep yang berkaitan dengan kawalan konkurensi.

Cara yang paling penting dalam mekanisme perlindungan integriti pangkalan data ialah gabungan satu set operasi, akibatnya pangkalan data bergerak dari satu keadaan integral ke keadaan integral yang lain, menjadi satu. unsur logik kerja, dipanggil transaksi. Intipati mekanisme urus niaga ialah sehingga transaksi selesai, semua manipulasi data dijalankan di luar pangkalan data, dan perubahan sebenar dimasukkan ke dalam pangkalan data hanya selepas selesai transaksi biasa.

Dari sudut keselamatan data, mekanisme sedemikian untuk memaparkan perubahan dalam pangkalan data adalah sangat penting. Jika urus niaga telah terganggu, maka alat DBMS terbina dalam khas menjalankan apa yang dipanggil rollback - mengembalikan pangkalan data kepada keadaan sebelum permulaan transaksi (sebenarnya, rollback biasanya hanya terdiri daripada tidak membuat perubahan yang disebabkan oleh kemajuan transaksi dalam pangkalan data fizikal). Jika pelaksanaan satu transaksi tidak melanggar integriti pangkalan data, maka akibat pelaksanaan serentak beberapa transaksi, integriti pangkalan data mungkin dilanggar. Untuk mengelakkan ralat seperti ini, DBMS mesti menyokong mekanisme yang memastikan transaksi menangkap elemen data yang diubah suai sehingga pengubahsuaian selesai, yang dipanggil kunci. Ini memastikan tiada sesiapa yang akan mendapat akses kepada elemen data yang diubah suai sehingga transaksi mengeluarkannya. Penggunaan mekanisme penguncian membawa kepada masalah baharu kawalan konkurensi, khususnya, kepada kemunculan situasi di mana dua urus niaga menang. Lebih-lebih lagi, jika transaksi cuba mengunci objek yang telah dikunci oleh transaksi lain, maka ia perlu menunggu sehingga kunci pada objek dilepaskan oleh transaksi yang mewujudkan kunci ini. Dalam erti kata lain, hanya satu transaksi boleh memegang kunci pada objek.

1.4 Pemulihan data

Pemulihan data ialah proses mendapatkan akses kepada fail yang dirakam pada medium storan tertentu yang telah menjadi tidak boleh diakses disebabkan oleh kegagalan perisian, kegagalan media atau ralat pengguna. Kemungkinan pemulihan data menggunakan program khas wujud jika ia tidak ditimpa oleh maklumat lain. Juga, kejayaan sebahagian besarnya bergantung pada integriti struktur sistem fail dan prestasi media secara umum.

Seperti yang anda ketahui, data pada mana-mana medium storan moden disimpan pada tahap paling rendah dalam bentuk jujukan bit sifar dan satu. Iaitu, dalam bentuk sektor bermagnet/bercas (1) atau ketiadaannya (0).

Walau bagaimanapun, Windows dan sistem pengendalian lain beroperasi pada tahap yang lebih tinggi menggunakan pelbagai sistem fail. Sistem fail ialah lapisan perisian untuk interaksi berkesan OS dengan maklumat pada media fizikal. Ia terdiri daripada dua bahagian: kawasan sistem dan kawasan data. Kawasan sistem menyimpan sektor but(bertanggungjawab untuk keupayaan untuk boot daripada media dan pengecamannya yang betul), serta beberapa sektor yang menyimpan jadual indeks fail dan maklumat perkhidmatan lain.

Semua maklumat disimpan secara fizikal dalam kawasan data, bagaimanapun, rekod fail terletak di kawasan sistem. Mekanisme untuk organisasi kerja ini adalah seperti berikut: apabila menyambungkan media ke komputer, sistem tidak mengimbas keseluruhan cakera untuk fail, tetapi dengan cepat membaca data tentangnya dari kawasan sistem. OS juga berinteraksi dengan media, contohnya, apabila memadam data: fail tidak dimusnahkan secara fizikal, tetapi hanya pautan kepada mereka dalam jadual fail dipadamkan. Ini memberikan alasan sistem untuk menganggap kelompok media yang "dibebaskan" kosong dan sesuai untuk penulisan semula selanjutnya. Oleh itu, kes pertama apabila pemulihan data mungkin adalah apabila pautan ke fail dalam jadual fail hilang, dengan syarat fail itu tidak ditimpa oleh data lain. Kes biasa kedua ialah memformat media. Terdapat tiga jenis pemformatan:

Pemformatan pantas - hanya jadual fail dipadamkan, tetapi kawasan data tidak terjejas. Dengan pemformatan ini, peluang pemulihan adalah sangat tinggi (dengan syarat tiada apa-apa lagi ditulis pada pemacu kilat yang diformatkan).

Pemformatan penuh - memadam kedua-dua kawasan sistem dan kawasan data. Pemformatan jenis ini melibatkan pemadaman sepenuhnya media; namun, untuk mempercepatkan proses, kawasan data dipadamkan bukan sepenuhnya, tetapi dalam serpihan. Ini memberi (walaupun kecil) peluang untuk memulihkan fail yang diperlukan.

Pemformatan peringkat rendah - semua sektor medium storan diisi dengan sifar. Selepas pemformatan sedemikian, hampir mustahil untuk memulihkan apa-apa, kerana semua data dimusnahkan sepenuhnya. Di Windows tidak ada pilihan standard pemformatan peringkat rendah, jadi walaupun selepas mengelap cakera sepenuhnya menggunakan caranya, pemulihan data secara teorinya mungkin! Begitu juga, anda boleh cuba memulihkan maklumat sekiranya berlaku kegagalan sistem fail, yang sering menjadi masalah dengan pemacu kilat. Dengan kegagalan sedemikian, kawasan sistem biasanya dimusnahkan sebahagian atau sepenuhnya dan pemacu kilat memerlukan pemformatan:

Seperti yang telah dinyatakan, berlakunya kegagalan dalam perkakasan atau perisian mungkin memerlukan pemulihan dan pengembalian pantas kepada keadaan sedekat mungkin dengan keadaan sebelum kegagalan (ralat) berlaku. Sebab-sebab keperluan untuk pemulihan selalunya termasuk kemunculan keadaan kebuntuan.

Terdapat tiga peringkat pemulihan utama:

Pemulihan dalam talian, yang dicirikan oleh keupayaan untuk pulih pada tahap urus niaga individu sekiranya situasi manipulasi data berakhir yang tidak normal (contohnya, ralat program).

Pemulihan perantaraan Jika anomali berlaku dalam pengendalian sistem (ralat perisian sistem, kegagalan perisian yang tidak berkaitan dengan pemusnahan pangkalan data), maka adalah perlu untuk memulihkan keadaan semua transaksi yang berjalan pada masa kegagalan.

Pemulihan jangka panjang. Jika pangkalan data dimusnahkan akibat kecacatan pada cakera, pemulihan dijalankan menggunakan salinan pangkalan data. Kemudian mereka mengeluarkan semula hasil transaksi yang dilakukan sejak salinan itu diambil dan mengembalikan sistem kepada keadaan pada masa kemusnahan.

1.5 Transaksi dan pemulihan

Penamatan transaksi kerana kegagalan melanggar integriti pangkalan data. Jika keputusan transaksi sedemikian hilang, adalah mungkin untuk mengeluarkannya semula pada masa kegagalan. Oleh itu, konsep transaksi memainkan peranan penting dalam pemulihan. Untuk memulihkan integriti pangkalan data, urus niaga mesti memenuhi keperluan berikut:

Adalah perlu bahawa urus niaga sama ada dilaksanakan sepenuhnya, atau tidak dilaksanakan sama sekali;

Ia adalah perlu bahawa urus niaga membenarkan kemungkinan untuk kembali ke keadaan asal, lebih-lebih lagi, untuk memastikan pulangan bebas transaksi kepada keadaan asalnya, kunci eksklusif mesti dijalankan sehingga pengubahsuaian semua objek selesai;

Ia adalah perlu untuk dapat memainkan semula pelaksanaan transaksi, dan, untuk memastikan keperluan ini, penguncian bersama mesti dijalankan sehingga semua transaksi selesai melihat data.

Semasa pelaksanaan mana-mana urus niaga, masa penyelesaiannya tiba. Selain itu, semua pengiraan yang dibuat oleh transaksi dalam kawasan kerja, mesti dilengkapkan, salinan keputusan pelaksanaannya mesti ditulis pada log sistem. Tindakan sedemikian dipanggil operasi komit. Jika kegagalan berlaku, lebih dinasihatkan untuk tidak kembali ke permulaan transaksi, tetapi ke beberapa kedudukan pertengahan. Titik di mana pulangan sedemikian berlaku dipanggil titik penetapan (titik kawalan). Pengguna boleh menetapkan bilangan mata yang sewenang-wenangnya semasa transaksi. Jika titik komit dicapai semasa transaksi, DBMS secara automatik melaksanakan operasi di atas.

1.6 Pemulangan dan pelepasan transaksi

Alat utama yang digunakan dalam pemulihan ialah log sistem, yang merekodkan semua perubahan yang dibuat kepada pangkalan data oleh setiap transaksi. Mengembalikan transaksi kepada keadaan asalnya bermakna membatalkan semua perubahan yang dibuat semasa transaksi. Operasi ini dipanggil rollback. Untuk menghasilkan semula hasil transaksi, anda boleh menggunakan log sistem untuk memulihkan nilai perubahan yang dibuat dalam susunan ia berlaku, atau untuk melaksanakan semula transaksi. Menghasilkan semula hasil transaksi menggunakan syslog dipanggil unwinding. Promosi adalah operasi yang agak kompleks, tetapi perlu bagi mekanisme pemulihan pangkalan data moden

2 . Keselamatan pangkalandata

2.1 Perancangan pangkalan data

Hari ini, pangkalan data adalah komponen teras hampir mana-mana aplikasi berasaskan Web, membolehkan penyampaian pelbagai kandungan dinamik. Memandangkan maklumat yang sangat penting dan rahsia boleh disimpan dalam pangkalan data sedemikian, penjagaan mesti diambil untuk melindunginya. Seni bina yang digunakan untuk mencipta halaman Web menggunakan PL/SQL WebToolkit adalah sangat mudah, seperti yang ditunjukkan dalam Rajah 1 (lihat Lampiran A).

Untuk menerima atau menyimpan maklumat dalam pangkalan data, anda perlu menyambung kepadanya, menghantar permintaan, memproses respons dan menutup sambungan. Hari ini untuk semua ini biasanya digunakan bahasa berstruktur pertanyaan (Bahasa Pertanyaan Berstruktur, SQL). Mari lihat perkara yang boleh dilakukan oleh penyerang dengan pertanyaan SQL.

Seperti yang anda ketahui, PHP tidak dapat melindungi pangkalan data itu sendiri. Bahagian berikut adalah pengenalan kepada asas mengakses dan menggunakan pangkalan data dalam skrip PHP.

Ingat peraturan mudah: pertahanan dibina "secara mendalam". Lebih banyak tempat yang anda lindungi dan lebih banyak tindakan yang anda ambil untuk melindungi pangkalan data, semakin kecil kemungkinan penyerang berjaya mengekstrak dan menggunakan apa yang disimpan di dalamnya. maklumat terperingkat. Semua titik bahaya dihapuskan dengan reka bentuk struktur pangkalan data yang betul dan aplikasi yang menggunakannya.

Langkah pertama sentiasa mencipta pangkalan data sebenar, kecuali apabila menggunakan pangkalan data orang lain. Apabila pangkalan data dicipta, ia diberikan pemilik, yang memanggil arahan penciptaan. Biasanya hanya seorang pemilik ("pengguna super") boleh melakukan apa sahaja dengan objek dalam pangkalan data itu, dan untuk membolehkan pengguna lain menggunakannya, mereka mesti diberikan hak akses.

Aplikasi tidak boleh sekali-kali menyambung ke pangkalan data sebagai pemilik pangkalan data atau "pengguna super" kerana ini boleh membenarkan pengguna melakukan sebarang tindakan seperti mengubah suai skema (seperti menjatuhkan jadual) atau memadam semua kandungannya.

Anda boleh membuat pengguna pangkalan data yang berbeza untuk setiap satu tindakan yang diperlukan aplikasi, sangat mengehadkan akses mereka kepada objek pangkalan data. Hak yang diperlukan hendaklah diberikan sekali dan penggunaannya di bahagian lain aplikasi harus dielakkan. Ini bermakna jika penyerang mendapat akses menggunakan akaun tertentu, dia hanya akan mendapat akses yang dimiliki oleh bahagian program yang digunakan.

Adalah lebih baik untuk tidak memperkenalkan semua logik untuk bekerja dengan pangkalan data ke dalam aplikasi. Ini juga boleh dilakukan dalam pangkalan data itu sendiri menggunakan bendera, pandangan, peraturan dan prosedur terbina dalam. Apabila sistem berkembang dan berkembang, prosedur terbina dalam boleh diubah suai untuk memproses medan baharu secara automatik, dan bendera akan memberikan keupayaan tambahan untuk urus niaga penyahpepijatan.

2.2 Menyambung kepada pangkalan data

Anda boleh mewujudkan sambungan menggunakan SSL untuk menyulitkan sambungan pelanggan-pelayan, membenarkan peningkatan keselamatan. Bolehkah anda menggunakan ssh untuk penyulitan? jaringan rangkaian antara pelanggan dan pelayan pangkalan data. Mana-mana kaedah ini menjadikannya sangat sukar untuk memantau dan mengekstrak maklumat daripada trafik rangkaian.

2.3 Storan data yang disulitkan

SSL/SSH hanya melindungi data sepanjang laluan dari klien ke pelayan, bukan data yang disimpan dalam pangkalan data. SSL hanyalah protokol rangkaian.

Apabila penyerang mendapat akses kepada pangkalan data anda dengan memintas pelayan Web, data yang disimpan sensitif boleh diperoleh dan digunakan melainkan maklumat itu dilindungi dalam pangkalan data itu sendiri. Penyulitan adalah teknik yang sangat baik dalam kes ini, tetapi sangat sedikit sistem pengurusan pangkalan data pada masa ini menyokong kaedah ini.

Paling Jalan mudah dalam kes ini - buat sendiri sistem sendiri penyulitan dan kemudian gunakannya dalam skrip PHP. PHP memudahkan pendekatan ini melalui kehadiran sambungan khusus seperti Mcrypt dan Mhash, yang merangkumi pelbagai jenis algoritma penyulitan. Program ini menyulitkan data yang disimpan dan menyahsulit data yang diterima. Untuk Penerangan terperinci Untuk skim penyulitan, lihat pautan.

Dalam kes data tersembunyi, di mana bentuk asalnya tidak diperlukan (contohnya, untuk paparan), pencincangan boleh digunakan. Contoh pencincangan yang terkenal ialah menyimpan cincangan MD5 kata laluan dalam pangkalan data dan bukannya kata laluan itu sendiri. Untuk Penerangan terperinci lihat crypt() dan md5().

Contoh: Menggunakan kata laluan cincang

// simpan cincang kata laluan

$query = sprintf("MASUKKAN KE DALAM pengguna(nama,pwd) NILAI("%s","%s");",

// semak ketepatan kata laluan yang dimasukkan oleh pengguna

$query = sprintf("PILIH 1 DARI pengguna WHERE nama="%s" DAN pwd="%s";",

addslashes($nama pengguna), md5($kata laluan));

$result = pg_exec($connection, $query);

jika (pg_numrows($result) > 0) (

echo "Selamat datang, $nama pengguna!";

echo "Kata laluan tidak sah dimasukkan untuk $nama pengguna.";

2.4 Suntikan SQL

Banyak pembangun aplikasi Web menganggap pertanyaan SQL tidak berbaloi, tidak menyedari bahawa ia boleh digunakan oleh penyerang. Ini bermakna pertanyaan SQL boleh digunakan untuk memintas sistem keselamatan, pengesahan dan kebenaran, dan kadangkala boleh digunakan untuk mendapatkan akses kepada arahan peringkat sistem operasi.

Pelaksanaan dalam arahan SQL- teknik di mana penyerang mencipta atau mengubah suai perintah SQL untuk mendapatkan akses kepada data tersembunyi, untuk menukar yang sedia ada, dan juga untuk melaksanakan perintah peringkat sistem pengendalian. Ini dicapai apabila program menggunakan data input dalam kombinasi dengan parameter statik untuk mencipta pertanyaan SQL. Contoh berikut malangnya berdasarkan kes sebenar:

Jika data input tidak disahkan dengan betul dan pangkalan data disambungkan sebagai pengguna super, penyerang boleh mencipta pengguna super baharu dalam pangkalan data.

Contoh: Membahagikan hasil pertanyaan kepada halaman dan... mencipta pengguna super (PostgreSQL dan MySQL)

$offset = argv; // perhatian! tiada pemeriksaan latar belakang!

// dalam PostgreSQL

$hasil = pg_exec($conn, $query);

$result = mysql_query($query);

Biasanya, pengguna menggunakan butang "seterusnya" dan "sebelumnya" di mana $offset dibenamkan dalam URL. Program ini menganggap bahawa $offset ialah nombor. Walau bagaimanapun, seseorang mungkin cuba menyusupkannya dengan menambahkan data berkod urlencode() pada URL

// dalam kes PostgreSQL

masukkan ke dalam pg_shadow(usename,usesysid,usesuper,usecatupd,passwd)

pilih "crack", usesysid, "t","t",,"crack"

dari pg_shadow where usename="postgres";

// dalam kes MySQL

KEMASKINI pengguna SET Kata Laluan=KATAlaluan("crack") WHERE pengguna="root";

KEISTIMEWAAN FLUSH;

Jika ini berlaku, program akan memberikannya akses superuser. Perhatikan bahawa 0; berfungsi untuk menetapkan offset yang betul untuk permintaan asal dan melengkapkannya.

Adalah menjadi amalan biasa untuk memaksa penterjemah SQL mengabaikan pertanyaan pembangun yang lain dengan menggunakan permulaan komen SQL -- notasi.

Terdapat cara untuk mendapatkan kata laluan melalui halaman carian anda. Semua yang diperlukan oleh penyerang adalah satu pembolehubah tidak terkendali yang digunakan dalam pertanyaan SQL. Klausa WHERE, ORDER BY, LIMIT, dan OFFSET bagi pertanyaan SELECT boleh digunakan. Jika pangkalan data anda menyokong binaan UNION, penyerang boleh menambah permintaan lain pada permintaan asal untuk mendapatkan kata laluan. Dalam kes ini, menyimpan kata laluan yang disulitkan akan membantu.

Contoh: Mengeluarkan artikel... dan kata laluan (sebarang pelayan pangkalan data)

$query = "PILIH id, nama, dimasukkan, saiz DARI produk

WHERE saiz = "$size"

PESANAN OLEH $order LIMIT $limit, $offset;";

$result = odbc_exec($conn, $query);

Bahagian statik permintaan boleh digabungkan dengan yang lain dengan pertanyaan PILIH yang akan mencetak semua kata laluan:

kesatuan pilih "1", concat(uname||"-"||passwd) sebagai nama, "1971-01-01", "0" daripada jadual pengguna;

Jika pertanyaan serupa (menggunakan " dan --) dinyatakan dalam salah satu pembolehubah yang digunakan oleh $query, serangan itu akan berjaya.

Pertanyaan "KEMASKINI" SQL juga boleh digunakan untuk menyerang pangkalan data. Pertanyaan ini juga berisiko dipotong dan menambah pertanyaan baharu. Tetapi di sini penyerang bekerja dengan arahan SET. Dalam kes ini, pengetahuan tentang beberapa maklumat tentang struktur pangkalan data adalah perlu untuk berjaya mengubah suai pertanyaan. Maklumat tersebut boleh diperolehi dengan mengkaji nama bentuk pembolehubah atau hanya dengan pemilihan. Lagipun, tidak banyak nama yang dicipta untuk medan pengguna dan kata laluan.

Contoh: Daripada menetapkan semula kata laluan kepada mendapatkan keistimewaan... (sebarang pelayan pangkalan data)

$query = "KEMASKINI SET jadual pengguna pwd="$pwd" WHERE uid="$uid";";

Penyerang menghantar nilai " atau uid seperti "%admin%"; --, kepada pembolehubah $uid untuk menukar kata laluan pentadbir, atau hanya menetapkan $pwd kepada "hehehe", admin="yes", trusted=100 " ( dengan ruang belakang) untuk mendapatkan hak. Permintaan akan bercelaru seperti ini:

// $uid == " atau uid seperti"%admin%"; --

$query = "KEMASKINI SET jadual pengguna pwd="..." WHERE uid="" atau uid seperti "%admin%"; --";

// $pwd == "hehehe", admin="yes", trusted=100 "

$query = "KEMASKINI SET jadual pengguna pwd="hehehe", admin="yes", trusted=100 WHERE ...;"

Berikut ialah contoh bagaimana perintah tahap sistem pengendalian boleh dilaksanakan pada beberapa pelayan pangkalan data:

Contoh: Serangan ke atas sistem pengendalian pelayan pangkalan data (pelayan MSSQL)

$query = "PILIH * DARI produk DI MANA id SEPERTI "%$prod%"";

Jika penyerang menghantar nilai a%" exec master..xp_cmdshell "net user test testpass /ADD" -- kepada $prod, maka $query akan kelihatan seperti ini:

$query = "PILIH * DARI produk

DI MANA id SEPERTI "%a%"

exec master..xp_cmdshell "laluan ujian pengguna bersih /TAMBAH"--";

$result = mssql_query($query);

Pelayan MSSQL melaksanakan semua arahan SQL, termasuk arahan untuk menambah pengguna baharu pangkalan data tempatan Data pengguna. Jika aplikasi ini dijalankan seperti sa dan perkhidmatan MSSQLSERVER mempunyai hak yang mencukupi, penyerang akan mempunyai akaun untuk mengakses mesin ini.

Beberapa contoh di atas adalah khusus untuk pelayan pangkalan data tertentu. Tetapi ini tidak bermakna serangan serupa terhadap perisian lain adalah mustahil. Pelayan pangkalan data anda juga akan terdedah kepada serangan yang tidak dijangka dalam satu cara atau yang lain.

2.5 Teknik perlindungan

Dalam kebanyakan contoh, adalah jelas bahawa untuk menyerang, penyerang mesti mempunyai beberapa maklumat. Semuanya adalah benar, tetapi tidak pernah diketahui terlebih dahulu ke arah mana maklumat ini akan pergi. Jika ini berlaku, pangkalan data menjadi tidak terjamin. Jika anda menggunakan pakej pengurusan pangkalan data percuma yang dimiliki oleh sistem pengurusan kandungan atau forum, penyerang adalah mudah untuk mendapatkan salinan bahagian program anda. Ini juga mungkin mewakili lubang keselamatan.

Kebanyakan serangan adalah berdasarkan penggunaan kod yang ditulis tanpa pertimbangan keselamatan. Jangan sekali-kali mempercayai input, terutamanya jika ia datang dari sisi klien, walaupun dari kotak pilihan, medan tersembunyi atau entri kuki. Contoh pertama menunjukkan perkara yang boleh menyebabkan penggantian data ini.

Jangan sekali-kali menyambung ke pangkalan data sebagai pengguna super atau pemilik. Sentiasa gunakan pengguna khas dengan hak yang minimum.

Semak input anda untuk memastikan jenis data sepadan dengan yang diperlukan. PHP menyertakan sejumlah besar fungsi semakan, daripada bahagian yang paling mudah "Fungsi untuk bekerja dengan pembolehubah" dan "Fungsi untuk memproses jenis aksara" (contohnya, is_numeric() dan ctype_digit(), masing-masing kepada biasa Ungkapan Perl ("Ungkapan Biasa serasi dengan Perl").

Jika program menjangkakan nombor, semak data menggunakan is_numeric(), atau hanya tukar jenis menggunakan settype(), atau gunakan perwakilan numerik yang dihasilkan oleh sprintf().

Contoh: Penomboran lebih selamat

settype($offset, "integer");

$query = "PILIH id, nama DARI produk PESANAN MENGIKUT nama LIMIT 20 OFFSET $offset;";

// tanda %d dalam baris format, menggunakan %s tidak berguna

$query = sprintf("PILIH id, nama DARI produk PESANAN MENGIKUT nama LIMIT 20 OFFSET %d;",

Sebarang input bukan angka yang dihantar ke pangkalan data mesti didahului oleh fungsi addslashes() atau addcslashes(). Contoh pertama menunjukkan bahawa tanda petikan tidak mencukupi dalam bahagian statik pertanyaan.

Anda tidak boleh memaparkan sebarang maklumat tentang struktur pangkalan data dalam apa jua cara.

Anda boleh menggunakan prosedur tersimpan dan lokasi yang ditentukan untuk memisahkan akses kepada data daripada program supaya pengguna tidak mempunyai akses terus kepada jadual dan paparan, tetapi pilihan ini mempunyai masalahnya sendiri.

Di samping itu, adalah perlu untuk mengekalkan log operasi dalam program atau dalam pangkalan data itu sendiri, jika disokong. Pembalakan tidak akan menghalang pelaksanaan, tetapi ia akan membantu menentukan bahagian mana program telah terjejas. Jurnal itu sendiri tidak berguna - maklumat yang disimpan di dalamnya berguna. Lebih banyak, lebih baik.

Kesimpulan

Hari ini pangkalan data adalah komponen utama kebanyakan aplikasi web, membolehkan anda menyediakan di tapak kandungan dinamik. Oleh kerana pangkalan data sedemikian boleh menyimpan sangat tepat atau maklumat sulit, anda mesti memastikan perlindungan data yang baik.

Untuk mendapatkan semula atau menyimpan sebarang data, anda perlu membuka sambungan ke pangkalan data, menghantar pertanyaan yang sah, mendapatkan semula hasilnya dan menutup sambungan. Pada masa ini, standard komunikasi yang paling biasa ialah Structured Query Language (SQL). Anda harus sentiasa sedar tentang kemungkinan serangan melalui pertanyaan SQL.

Jelas sekali, PHP sahaja tidak dapat melindungi pangkalan data anda. Bahagian dokumentasi ini merangkumi asas akses selamat dan pengurusan data dalam skrip PHP.

Ingat peraturan mudah: perlindungan maksimum. Kawasan yang lebih berpotensi berbahaya dalam sistem yang anda kerjakan, lebih sukar bagi penyerang berpotensi untuk mendapatkan akses kepada pangkalan data atau merosakkannya. Reka bentuk pangkalan data yang baik dan aplikasi perisian akan membantu anda mengatasi ketakutan anda.

Langkah pertama adalah sentiasa mencipta pangkalan data, melainkan anda ingin menggunakan pangkalan data siap sedia yang disediakan oleh pihak ketiga. Selepas pangkalan data dicipta, ia diberikan kepada pengguna yang melaksanakan pertanyaan yang mencipta pangkalan data. Biasanya, hanya pemilik (atau superuser) boleh melakukan pelbagai tindakan pada pelbagai objek yang disimpan dalam pangkalan data. Untuk membolehkan pengguna lain mendapat akses kepadanya, mereka mesti diberikan keistimewaan yang sesuai.

Aplikasi tidak seharusnya bersambung ke pangkalan data menggunakan akaun pemilik atau pengguna super, jika tidak, mereka boleh mengubah suai struktur jadual (contohnya, menjatuhkan beberapa jadual) atau bahkan memadamkan keseluruhan kandungan pangkalan data.

Anda boleh mencipta akaun pengguna pangkalan data yang berbeza untuk setiap keperluan aplikasi individu, dengan sekatan fungsi yang sesuai. Adalah disyorkan untuk menetapkan hanya keistimewaan yang paling diperlukan, dan anda juga harus mengelakkan situasi di mana pengguna yang sama boleh berinteraksi dengan pangkalan data dalam berbilang mod. Anda mesti faham bahawa jika penyerang boleh mengambil kesempatan daripada mana-mana akaun pangkalan data anda, dia akan dapat membuat semua perubahan yang sama pada pangkalan data sebagai program yang menggunakan akaun semasa.

Ia tidak perlu untuk melaksanakan semua logik perniagaan dalam aplikasi web (iaitu dalam skrip); untuk ini anda juga boleh menggunakan keupayaan yang disediakan oleh pangkalan data: pencetus, pandangan, peraturan. Jika sistem berkembang, anda memerlukan sambungan baharu ke pangkalan data, dan logik pengendalian perlu diduplikasi untuk setiap antara muka akses baharu. Berdasarkan perkara di atas, pencetus boleh digunakan untuk memproses rekod secara telus dan automatik, yang selalunya diperlukan semasa menyahpepijat aplikasi atau semasa mengesan pemulangan transaksi.

Bergantung pada sistem pengendalian yang digunakan, adalah perlu untuk menyediakan kemungkinan untuk menyerang pelbagai fail, termasuk fail sistem peranti (/dev/ atau COM1), fail konfigurasi(seperti fail /etc/ atau .ini), kawasan storan data yang terkenal (/home/, My Documents), dan sebagainya. Berdasarkan ini, biasanya lebih mudah untuk melaksanakan dasar keselamatan yang melarang segala-galanya kecuali apa yang dibenarkan secara jelas.

Oleh kerana DBA korporat tidak boleh sentiasa menumpukan masa yang diperlukan untuk keselamatan, sesetengah syarikat mengambil langkah yang lebih proaktif. Mereka melepaskan pekerja ini daripada tugas tetap mereka dan meletakkan mereka dalam pasukan keselamatan IT.

Penubuhan kedudukan sedemikian menyelesaikan dua masalah sekaligus: Pakar keselamatan IT yang tidak mempunyai banyak pengetahuan dalam bidang pangkalan data boleh menggunakan bantuan profesional, dan pentadbir pangkalan data mempunyai peluang untuk menumpukan aktiviti mereka pada isu keselamatan maklumat dan menerima latihan yang diperlukan untuk memastikan keselamatan pangkalan data korporat.

Senarai sumber yang digunakan

1. Boychenko I. A. Reka bentuk komponen persekitaran yang dipercayai DBMS hubungan berdasarkan teknologi CASE [Teks] / I. A. Boychenko - Voronezh, 2014. - 251 p.

2.Borri H. Firebird: panduan pekerja pangkalan data [Teks]: trans. dari bahasa Inggeris / H. Bori. - St. Petersburg: BHV - Petersburg, 2012. - 1104 p.

3. Bronevshchuk E. S. Sistem pengurusan pangkalan data [Teks] / E.S. Bronevshchuk, V. I. Burdakov, L. I. Gukov. - M.: Kewangan dan Perangkaan, 2013. - 634 p.

4. Goncharov A. Yu. Access 2007. Direktori dengan contoh [Teks] / A. Yu. Goncharov. - M.: KUDITS - AKHBAR, 2011. - 296 p.

5.Deyt K. Pengenalan kepada sistem pangkalan data [Teks] / K. Deyt 7th ed. - M.: St. Petersburg: Williams, 2013. - 325 p.

6. Kalenik A. Menggunakan ciri-ciri baharu MS Pelayan SQL 2005 [Teks] / A. Kalenik. - St. Petersburg: Peter, 2013. - 334 p.

7. Connolly T. Pangkalan Data. Reka bentuk, pelaksanaan dan sokongan. Teori dan amalan [Teks] / T. Connolly, L Begg, A. Stragan 2nd ed. - M.: Williams, 2012. - 476 p.

8. Motev, A. A. Pelajaran SQL Saya. Manual arahan kendiri [Teks] / A. A. Motev. - St. Petersburg: BHV - Petersburg, 2013. - 208 p.

9. Oppel E. Mendedahkan rahsia SQL [Teks]: trans. dari bahasa Inggeris / E. Opel, Jim Kiu, D. A. Terentyeva. - M.: NT Press, 2012. - 320 p.

10. Promakhina I. M. Antara muka rangkaian DBMS (PC) dengan bahasa peringkat tinggi [Teks] / I. M. Promakhina - M.: Pusat Pengkomputeran RAS, 2011.- 874 p.

11. Fufaev E. V., Pangkalan Data; [Teks] / E. V. Fufaev, D. E. Fufaev - Akademi - Moscow, 2013. - 320 p.

12. Frost, R. Pangkalan Data. Reka bentuk dan pembangunan [Teks]: trans. dari bahasa Inggeris / R. Frost, D. Day, K. Van Slyke, A. Yu. Kukharenko. - M.: NT Press, 2007. - 592 hlm.

Lampiran A

Rajah A.1 - Seni bina yang digunakan untuk mencipta halaman Web

Lampiran B

Rajah B.1 - Skim keselamatan maklumat

Disiarkan di Allbest.ru

...

Dokumen yang serupa

    Asas keselamatan data peribadi. Klasifikasi ancaman kepada keselamatan maklumat data peribadi, ciri-ciri sumbernya. Pangkalan data data peribadi. Kawalan dan pengurusan akses. Pembangunan langkah untuk melindungi data peribadi di bank.

    tesis, ditambah 03/23/2018

    Pertimbangan masalah memastikan kebenaran penggunaan maklumat dalam pangkalan data (melindungi data daripada pengubahsuaian yang tidak diingini, pemusnahan, jangkitan oleh program virus) dan peraturan undang-undang keselamatan menggunakan contoh DBMS Ms SQL.

    kerja kursus, ditambah 30/03/2010

    Apakah pangkalan data, visualisasi maklumat pangkalan data. Struktur dan sifat asas yang paling mudah data. Ciri-ciri definisi, jenis data, keselamatan, spesifik pembentukan pangkalan data. Pendekatan reka bentuk terma rujukan. Bekerja dengan meja.

    pembentangan, ditambah 11/12/2010

    Bentuk maklumat yang disediakan. Jenis utama model data yang digunakan. Tahap proses maklumat. Pencarian maklumat dan pengambilan data. Penyimpanan data rangkaian. Masalah membangunkan dan menyelenggara gudang data. Teknologi pemprosesan data.

    kuliah, ditambah 19/08/2013

    Entiti dan kebergantungan fungsi pangkalan data. Atribut dan perkaitan. Jadual pangkalan data. Membina gambar rajah ER. Organisasi kemasukan dan pembetulan data. Skema pangkalan data hubungan. Pelaksanaan pertanyaan, menerima laporan. Perlindungan pangkalan data.

    kerja kursus, ditambah 02/06/2016

    Jenis pangkalan data utama. Sistem Pengurusan Pengkalan data. Analisis aktiviti dan maklumat yang diproses di klinik. Komposisi jadual dalam pangkalan data dan hubungannya. Metodologi untuk mengisi pangkalan data dengan maklumat. Algoritma untuk mencipta pangkalan data.

    kerja kursus, ditambah 17/12/2014

    Evolusi konsep pangkalan data. Keperluan yang mesti dipenuhi oleh organisasi pangkalan data. Model perwakilan data. bahasa SQL sebagai bahasa standard pangkalan data. Seni bina pangkalan data. Persekitaran Delphi sebagai alat untuk membangunkan DBMS.

    tesis, ditambah 11/26/2004

    Konsep pangkalan data, model data. Klasifikasi pangkalan data. Sistem pengurusan pangkalan data. Peringkat, pendekatan kepada reka bentuk pangkalan data. Pembangunan pangkalan data yang akan mengautomasikan penyelenggaraan dokumentasi yang diperlukan untuk aktiviti sekolah sukan belia.

    kerja kursus, ditambah 06/04/2015

    Proses pemprosesan maklumat. Kecekapan sistem maklumat automatik. Sistem Pengurusan Pengkalan data. Tempatan dan sistem teragih bank dan pangkalan data. Peringkat reka bentuk pangkalan data. Perbezaan dalam tahap persembahan data.

    ujian, ditambah 07/07/2015

    Reka bentuk asas Akses data. Sistem Pengurusan Pengkalan data. Penciptaan dan penyelenggaraan pangkalan data, menyediakan akses kepada data dan memprosesnya. Menetapkan tugas dan matlamat, fungsi utama yang dilakukan oleh pangkalan data. Jenis pangkalan data utama.

5.1. Kaedah Keselamatan

DBMS moden menyokong salah satu daripada dua pendekatan yang diterima secara meluas untuk keselamatan data, iaitu pendekatan terpilih atau pendekatan mandatori. Dalam kedua-dua pendekatan, unit data atau "objek data" yang sistem keselamatan mesti dicipta boleh sama ada keseluruhan pangkalan data atau beberapa set perhubungan, atau beberapa nilai data untuk atribut tertentu dalam beberapa tuple dalam perhubungan tertentu. Pendekatan ini berbeza dalam sifat berikut:

1. Dalam kes kawalan terpilih, pengguna tertentu mempunyai hak (keistimewaan atau kuasa) yang berbeza apabila bekerja dengan objek yang berbeza. Lebih-lebih lagi, pengguna yang berbeza biasanya mempunyai hak akses yang berbeza kepada objek yang sama. Oleh itu, skim pilihan raya dicirikan oleh fleksibiliti yang besar.

2. Dalam kes pengurusan mandatori, sebaliknya, setiap objek data diberikan tahap klasifikasi tertentu, dan setiap pengguna mempunyai tahap akses tertentu. Oleh itu, dengan pendekatan ini, hanya pengguna yang mempunyai tahap keselamatan yang sesuai mempunyai akses kepada objek data tertentu. Oleh itu, skim wajib adalah agak tegar dan statik.

Tidak kira sama ada skim itu selektif atau wajib, semua keputusan mengenai akses pengguna untuk melaksanakan operasi tertentu dibuat pada tahap strategik, bukan tahap teknikal. Oleh itu, mereka berada di luar jangkauan DBMS itu sendiri, dan semua yang DBMS boleh lakukan dalam keadaan sedemikian hanyalah untuk melaksanakan keputusan yang dibuat sebelum ini. Berdasarkan ini, perkara berikut dapat diperhatikan:

Pertama sekali. keputusan keputusan strategik mesti diketahui oleh sistem (iaitu, dibuat berdasarkan penegasan yang ditentukan menggunakan beberapa bahasa yang sesuai) dan disimpan di dalamnya (dengan menyimpannya dalam direktori sebagai peraturan keselamatan, juga dipanggil kebenaran).

Kedua. Jelas sekali, mesti ada beberapa cara untuk mengawal selia permintaan akses berhubung dengan peraturan keselamatan yang sepadan. (Di sini, "permintaan, akses" merujuk kepada gabungan operasi yang diminta,, yang diminta, objek, dan pengguna yang meminta.) Ini, semakan dilakukan oleh subsistem keselamatan DBMS,,juga dipanggil subsistem kuasa.

Ketiga. Untuk memahami peraturan keselamatan yang digunakan untuk permintaan akses, sistem mesti menyediakan cara untuk mengenal pasti sumber permintaan ini, i.e. pengenalan pengguna yang meminta. Oleh itu, pada masa log masuk, pengguna biasanya dikehendaki memasukkan bukan sahaja pengecamnya (contohnya, nama atau kedudukan), tetapi juga kata laluan (untuk mengesahkan haknya terhadap data pengenalan yang diisytiharkan sebelum ini). Biasanya, diandaikan bahawa kata laluan hanya diketahui oleh sistem dan orang tertentu yang mempunyai hak istimewa.



Dalam perhubungan titik terakhir Perlu diingat bahawa pengguna yang berbeza boleh mempunyai pengecam kumpulan yang sama. Dengan cara ini, sistem boleh menyokong kumpulan pengguna dan menyediakan hak akses yang sama untuk pengguna kumpulan yang sama, contohnya, untuk semua orang daripada jabatan pengebilan. Di samping itu, menambah operasi pengguna individu ahli ke dalam atau dikeluarkan daripada kumpulan boleh dilakukan tanpa mengira operasi penetapan keistimewaan untuk kumpulan itu. Walau bagaimanapun, ambil perhatian bahawa maklumat keahlian kumpulan juga disimpan direktori sistem(atau mungkin pangkalan data).

Kaedah kawalan capaian yang disenaraikan di atas sebenarnya adalah sebahagian daripada klasifikasi tahap keselamatan yang lebih umum. Pertama sekali, dokumen ini mentakrifkan empat kelas keselamatan – D, C, B dan A. Antaranya, kelas D adalah yang paling tidak selamat, kelas C lebih selamat daripada kelas D, dsb. Kelas D menyediakan perlindungan minimum, Kelas C menyediakan perlindungan terpilih, Kelas B menyediakan perlindungan mandatori, dan Kelas A menyediakan perlindungan yang terbukti.

Perlindungan terpilih. Kelas C dibahagikan kepada dua subkelas, C1 dan C2 (di mana subkelas C1 kurang selamat berbanding subkelas C2), yang menyokong kawalan capaian terpilih dalam erti kata kawalan capaian adalah mengikut budi bicara pemilik data.

Mengikut keperluan kelas C1, adalah perlu untuk memisahkan data dan pengguna, i.e. Bersama-sama dengan menyokong konsep akses bersama kepada data, ia juga mungkin untuk mengatur penggunaan data yang berasingan oleh pengguna.

Mengikut keperluan kelas C2, adalah perlu untuk mengatur perakaunan tambahan berdasarkan prosedur untuk log masuk ke sistem, mengaudit dan mengasingkan sumber.

Perlindungan wajib. Kelas B mengandungi keperluan untuk kaedah kawalan capaian mandatori dan dibahagikan kepada tiga subkelas - B1, B2 dan B3 (di mana B1 adalah paling kurang selamat dan B3 ialah subkelas paling selamat).

Kelas B1 memerlukan "keselamatan berlabel" (bermaksud bahawa setiap objek data mesti dilabelkan dengan tahap pengelasannya, cth. terperingkat, proprietari, dll.) serta komunikasi tidak formal mengenai strategi keselamatan yang sedia ada.

Mengikut keperluan kelas B2, adalah perlu untuk menyediakan kenyataan rasmi strategi keselamatan semasa, serta mengesan dan menghapuskan saluran penghantaran maklumat yang kurang dilindungi.

Mengikut keperluan kelas B3, adalah perlu untuk menyediakan sokongan tambahan untuk pengauditan dan pemulihan data, serta pelantikan pentadbir mod keselamatan.

Perlindungan yang terbukti. Kelas A adalah yang paling selamat dan memerlukan bukti matematik bahawa kaedah keselamatan yang diberikan adalah serasi dan mencukupi untuk strategi keselamatan yang ditentukan.

Walaupun sesetengah DBMS komersial menyediakan keselamatan mandatori pada tahap B1, ia biasanya menyediakan kawalan terpilih pada tahap C2.

5.2. Kawalan Akses Terpilih

Kawalan capaian terpilih disokong oleh banyak DBMS. Kawalan capaian terpilih disokong dalam bahasa SQL.

Secara umum, sistem keselamatan DBMS tersebut adalah berdasarkan tiga komponen:

1. Pengguna. DBMS melakukan sebarang tindakan dengan pangkalan data bagi pihak pengguna. Setiap pengguna diberikan pengecam - nama pendek yang mengenal pasti pengguna secara unik dalam DBMS. Kata laluan digunakan untuk mengesahkan bahawa pengguna boleh bekerja dengan pengecam yang dimasukkan. Oleh itu, menggunakan pengecam dan kata laluan, pengguna dikenal pasti dan disahkan. Kebanyakan DBMS komersial membenarkan pengguna yang mempunyai keistimewaan yang sama untuk dikumpulkan bersama untuk memudahkan proses pentadbiran.

2. Objek pangkalan data. Menurut standard SQL2, objek yang dilindungi dalam pangkalan data ialah jadual, pandangan, domain dan ditentukan pengguna set watak. Kebanyakan DBMS komersial mengembangkan senarai objek dengan menambahkan prosedur tersimpan dan objek lain.

3. Keistimewaan. Keistimewaan menunjukkan satu set tindakan yang boleh dilakukan pada objek tertentu. Sebagai contoh, pengguna mempunyai keistimewaan untuk melihat jadual.

5.3. Kawalan akses mandatori

Kaedah kawalan capaian mandatori digunakan pada pangkalan data di mana data mempunyai struktur yang agak statik atau tegar, seperti biasa untuk organisasi kerajaan atau tentera. Seperti yang telah dinyatakan, idea asasnya ialah setiap objek data mempunyai beberapa tahap pengelasan, contohnya: rahsia, rahsia besar, untuk kegunaan rasmi, dsb., dan setiap pengguna mempunyai tahap pelepasan keselamatan dengan penggredan yang sama seperti dalam klasifikasi tahap . Diandaikan bahawa tahap ini membentuk susunan hierarki yang ketat, contohnya: rahsia teratas ® rahsia ® untuk kegunaan rasmi, dsb. Kemudian, berdasarkan maklumat ini, dua peraturan keselamatan yang sangat mudah boleh dirumuskan:

1. Pengguna mempunyai akses kepada objek hanya jika tahap pelepasannya lebih besar daripada atau sama dengan tahap pengelasan objek.

2. Pengguna boleh mengubah suai objek hanya jika tahap pelepasannya sama dengan tahap pengelasan objek.

Peraturan 1 agak jelas, tetapi peraturan 2 memerlukan penjelasan lanjut. Pertama sekali, perlu diingatkan bahawa peraturan kedua boleh dirumus secara berbeza seperti berikut: sebarang maklumat yang direkodkan oleh pengguna tertentu secara automatik memperoleh tahap yang sama dengan tahap klasifikasi pengguna ini. Peraturan sedemikian adalah perlu, sebagai contoh, untuk menghalang pengguna yang mempunyai pelepasan keselamatan daripada menulis data terperingkat kepada fail dengan tahap pengelasan yang lebih rendah, yang akan melanggar keseluruhan sistem keselamatan.

DALAM Kebelakangan ini Kaedah kawalan capaian mandatori telah meluas. Keperluan untuk kawalan akses sedemikian dinyatakan dalam dua dokumen, secara tidak rasmi dipanggil Buku Jingga dan Buku Lavender. Buku jingga menyenaraikan satu set keperluan keselamatan untuk Pangkalan Pengkomputeran Dipercayai, dan buku merah jambu mentafsir keperluan ini untuk sistem pengurusan pangkalan data.

5.4. Penyulitan data

Setakat ini dalam bab ini, telah diandaikan bahawa pengguna penyangak yang didakwa cuba menceroboh pangkalan data secara haram menggunakan alat capaian biasa yang terdapat pada sistem. Sekarang kita harus mempertimbangkan kes apabila pengguna sedemikian cuba memecah masuk ke pangkalan data tanpa memintas sistem, i.e. dengan memindahkan sebahagian pangkalan data secara fizikal atau menyambung ke saluran komunikasi. Paling kaedah yang berkesan Perjuangan menentang ancaman tersebut ialah penyulitan data, i.e. penyimpanan dan penghantaran data yang sangat penting dalam bentuk yang disulitkan.

Untuk membincangkan konsep asas pengekodan data, beberapa konsep baharu mesti diperkenalkan. Data asal (tidak berkod) dipanggil plaintext. Teks biasa disulitkan menggunakan algoritma penyulitan khas. Input kepada algoritma sedemikian ialah teks biasa dan kunci penyulitan, dan outputnya ialah bentuk teks biasa yang disulitkan, dipanggil siferteks. Jika butiran algoritma penyulitan boleh diterbitkan, atau sekurang-kurangnya tidak boleh disembunyikan, maka kunci penyulitan mesti dirahsiakan. Ia adalah teks sifir, yang tidak dapat difahami oleh mereka yang tidak mempunyai kunci penyulitan, yang disimpan dalam pangkalan data dan dihantar melalui saluran komunikasi.

5.5. Jejak audit operasi yang dilakukan

Adalah penting untuk memahami bahawa tiada sistem keselamatan yang kebal, kerana potensi penyerang yang berterusan akan sentiasa dapat mencari jalan untuk mengatasi semua sistem kawalan, terutamanya jika ganjaran yang cukup tinggi ditawarkan untuk ini. Oleh itu, apabila bekerja dengan data yang sangat penting atau semasa menjalankan operasi kritikal, adalah perlu untuk merekodkan jejak audit bagi operasi yang dilakukan. Jika, sebagai contoh, ketidakkonsistenan dalam data membawa kepada syak wasangka bahawa gangguan yang tidak dibenarkan telah berlaku dalam pangkalan data, maka jejak audit harus digunakan untuk menjelaskan keadaan dan mengesahkan bahawa semua proses adalah terkawal. Jika ini tidak berlaku, maka jejak audit sekurang-kurangnya akan membantu mengenal pasti pesalah.

Untuk mengekalkan jejak audit, fail khas biasanya digunakan di mana sistem secara automatik merekodkan semua operasi yang dilakukan oleh pengguna apabila bekerja dengan pangkalan data biasa. Entri fail jejak audit biasa mungkin mengandungi maklumat berikut:

2. terminal dari mana operasi itu dipanggil;

3. pengguna yang menyatakan operasi;

4. tarikh dan masa apabila operasi dimulakan;

5. perhubungan asas, tupel dan atribut yang terlibat dalam proses pelaksanaan operasi;

6. nilai lama;

7. nilai baharu.

Seperti yang dinyatakan sebelum ini, walaupun menyatakan fakta bahawa sistem tertentu menyokong pemantauan pengawasan, dalam beberapa kes, sangat penting dalam menghalang kemasukan tanpa kebenaran ke dalam sistem.

5.6. Sokongan Keselamatan SQL

Standard bahasa SQL semasa hanya menyokong kawalan akses terpilih. Ia berdasarkan dua lebih atau kurang bahagian bebas SQL. Salah satu daripadanya dipanggil enjin paparan, yang (seperti yang dibincangkan di atas) boleh digunakan untuk menyembunyikan data yang sangat sensitif daripada pengguna yang tidak dibenarkan. Yang lain dipanggil subsistem kebenaran, yang memberikan beberapa pengguna kuasa untuk secara selektif dan dinamik memberikan kebenaran yang berbeza kepada pengguna lain, dan untuk mengalih keluar kebenaran tersebut apabila perlu.

5.7. GERAN dan BATALKAN arahan

Enjin paparan SQL membolehkan cara yang berbeza bahagikan pangkalan data kepada beberapa bahagian supaya beberapa maklumat disembunyikan daripada pengguna yang tidak mempunyai hak untuk mengaksesnya. Walau bagaimanapun, mod ini tidak ditetapkan menggunakan parameter operasi berdasarkan pengguna yang dibenarkan melakukan tindakan tertentu dengan sekeping data tertentu. Fungsi ini (seperti yang ditunjukkan di atas) dilakukan menggunakan arahan GRANT.

Ambil perhatian bahawa pencipta sebarang objek secara automatik diberikan semua keistimewaan pada objek itu.

Standard SQL1 mentakrifkan keistimewaan berikut untuk jadual:

1. PILIH – membolehkan anda membaca data daripada jadual atau paparan;

INSERT – membolehkan anda memasukkan rekod baharu ke dalam jadual atau paparan;

KEMASKINI – membolehkan anda mengubah suai rekod daripada jadual atau paparan;

PADAM – membolehkan anda memadam rekod daripada jadual atau paparan.

Standard SQL2 telah mengembangkan senarai keistimewaan untuk jadual dan paparan:

1. INSERT pada lajur individu, serupa dengan keistimewaan KEMASKINI;

2. RUJUKAN – untuk menyokong kunci asing.

Sebagai tambahan kepada yang disenaraikan di atas, keistimewaan USAGE telah ditambahkan untuk objek pangkalan data lain.

Selain itu, kebanyakan DBMS komersial menyokong keistimewaan tambahan, contohnya:

1. ALTER – membolehkan anda mengubah suai struktur jadual (DB2, Oracle);

2. LAKSANAKAN – membolehkan anda melaksanakan prosedur tersimpan.

Pencipta objek juga mendapat hak untuk memberikan keistimewaan akses kepada beberapa pengguna lain menggunakan pernyataan GRANT. Berikut ialah sintaks pernyataan GRANT:

GERAN (PILIH|MASUKKAN|PADAM|(KEMASKINI lajur, ...)), ...

DI atas meja KEPADA (pengguna | AWAM)

Keistimewaan INSERT dan UPDATE (tetapi bukan keistimewaan SELECT, yang sangat pelik) boleh ditetapkan pada lajur yang ditakrifkan secara khusus.

Jika arahan WITH GRANT OPTION ditentukan, ini bermakna pengguna yang ditentukan mempunyai kebenaran khas untuk objek yang ditentukan - hak untuk memberikan kebenaran. Ini, seterusnya, bermakna mereka boleh memberikan kebenaran kepada pengguna lain untuk bekerja dengan objek ini

Contohnya: berikan pengguna Ivanov kebenaran untuk memilih dan mengubah suai nama keluarga dalam jadual Pelajar dengan hak untuk memberikan kebenaran.

GERAN PILIHAN, KEMASKINI StName

PADA Pelajar KE Ivanov DENGAN PILIHAN GERAN

Jika pengguna A memberikan beberapa keistimewaan kepada pengguna B yang lain, maka dia boleh membatalkan keistimewaan tersebut untuk pengguna B kemudiannya. Membatalkan keistimewaan dilakukan menggunakan arahan REVOKE dengan sintaks berikut.

BATALKAN ((PILIH | MASUKKAN | PADAM | KEMASKINI),...|SEMUA KEISTIMEWAAN)

DI atas meja,… DARI (pengguna | AWAM),… (CASCADE | TERHAD)

Memandangkan pengguna yang sedang dibatalkan keistimewaan boleh memberikannya kepada pengguna lain (jika dia mempunyai keistimewaan pemberian), situasi keistimewaan yang ditinggalkan mungkin timbul. Tujuan utama parameter RESTRICT dan CASCADE adalah untuk mengelakkan situasi keistimewaan yang terbengkalai. Dengan menetapkan parameter RESTRICT, operasi pembatalan keistimewaan tidak dibenarkan jika ia mengakibatkan keistimewaan yang terbengkalai. Parameter CASCADE menentukan penyingkiran berurutan semua keistimewaan yang diperoleh daripada yang ini.

Contohnya: alih keluar kebenaran daripada pengguna Ivanov untuk mengubah suai nama keluarga dalam jadual Pelajar. Alih keluar juga keistimewaan ini daripada semua pengguna yang diberikan oleh Ivanov.

PADA Pelajar DARI Ivanov CASCADE

Memadamkan domain, jadual, lajur atau paparan secara automatik mengalih keluar semua keistimewaan pada objek tersebut untuk semua pengguna.

5.8. Pandangan dan Keselamatan

Dengan mencipta paparan dan memberi pengguna kebenaran untuk mengaksesnya dan bukannya jadual asal, anda boleh mengehadkan akses pengguna kepada hanya lajur atau rekod tertentu. Oleh itu, perwakilan membolehkan kami melaksanakan kawalan penuh mengenai data yang tersedia untuk pengguna tertentu.

Kesimpulan

Untuk meminimumkan risiko kerugian, adalah perlu untuk melaksanakan satu set langkah perlindungan pengawalseliaan, organisasi dan teknikal, pertama sekali: pengenalan kawalan akses berasaskan peranan, organisasi akses pengguna semasa pembentangan sijil digital, dan dalam dalam masa terdekat - penyelesaian industri untuk penyulitan terpilih dan penggunaan algoritma GOST untuk menyulitkan pangkalan segmen terpilih.

Untuk penyelesaian yang lengkap Masalah perlindungan data Pentadbir keselamatan mesti boleh memantau tindakan pengguna, termasuk mereka yang mempunyai hak pentadbir. Oleh kerana sistem audit standard tidak mempunyai langkah keselamatan yang mencukupi, adalah perlu sistem bebas, melindungi rangkaian korporat bukan sahaja dari luar, tetapi juga dari dalam. Pada masa hadapan, kaedah standard untuk menyelesaikan masalah perlindungan pangkalan data secara komprehensif untuk perusahaan pelbagai saiz, dari kecil hingga diedarkan secara geografi, juga harus muncul.

  • Dudkina Anastasia Sergeevna, bujang, pelajar
  • Universiti Agraria Negeri Bashkir
  • PERLINDUNGAN
  • PHPMYADMIN
  • MYSQL
  • PANGKALAN DATA

Artikel tersebut membincangkan arahan utama untuk melindungi data yang disimpan atau diproses dalam sistem pengurusan pangkalan data (DBMS). Menghuraikan cara untuk melindungi kerahsiaan dan integriti maklumat menggunakan alatan yang mudah digunakan yang terbina dalam DBMS.

  • Teknologi maklumat untuk interaksi dalam kerajaan perbandaran
  • Pada beberapa sifat struktur lanjutan pada taburan manifold Bi-metrik
  • Pada kelas struktur Dwimetrik lanjutan pada taburan manifold sub-Riemannian
  • Perwakilan visual data statistik menggunakan carta gelembung

Pada masa ini, hampir tiada organisasi moden boleh melakukannya tanpa menggunakan pangkalan data dalam aktivitinya. Pangkalan data (DB) adalah aset yang paling penting dan berharga bagi mana-mana syarikat. Memandangkan pangkalan data mungkin mengandungi maklumat yang sangat sensitif atau sulit, perlindungannya mesti diambil dengan sangat serius. Sebarang kegagalan dalam pengendalian DBMS dan pangkalan data boleh membawa kepada akibat bencana.

Cara utama perlindungan maklumat termasuk yang berikut:

  • perlindungan kata laluan;
  • perlindungan medan dan rekod jadual pangkalan data.
  • mewujudkan hak akses kepada objek pangkalan data;
  • penyulitan data dan program;

Perlindungan pangkalan data dijalankan pada dua peringkat:

  • pada tahap kata laluan;
  • di peringkat pengguna (perlindungan akaun pengguna dan objek yang dikenal pasti).

PhpMyAdmin ialah program yang ditulis dalam PHP dan direka bentuk untuk mengurus pelayan MySQL melalui World Wide Web. phpMyAdmin menyokong pelbagai operasi pada MySQL. Operasi yang paling biasa digunakan disokong menggunakan antaramuka pengguna(mengurus pangkalan data, jadual, medan, perhubungan, indeks, pengguna, hak, dsb.), pada masa yang sama anda boleh melaksanakan sebarang Pertanyaan SQL.

Memastikan keselamatan maklumat projek yang sedang dibangunkan dijalankan di beberapa peringkat. Pada peringkat pertama, perlindungan maklumat dipastikan oleh sistem "phpMyAdmin" itu sendiri, bermula daripada log masuk ke panel kawalan di mana panel memerlukan anda memasukkan log masuk dan kata laluan anda.

Tahap perlindungan seterusnya disediakan oleh DBMS MySQL, juga mengehadkan hak akses.


Rajah 2. Gambaran keseluruhan akaun

Di samping itu, adalah mungkin untuk menyekat akses bukan sahaja kepada sistem pengurusan pangkalan data itu sendiri, tetapi juga secara berasingan kepada pangkalan data, kepada jadual pangkalan data, kepada rekod jadual tertentu, dan juga kepada nilai medan jadual atau rekod. Perlu diingat bahawa fungsi penyulitan terbina dalam tidak terdapat dalam semua DBMS. Oleh itu, kaedah ini tidak boleh dipanggil universal. DBMS ini menawarkan dua set fungsi penyulitan yang serupa, satu daripadanya melaksanakan algoritma DES, dan satu lagi - AES. Selain itu, MySQL melaksanakan beberapa algoritma pencincangan. Set fungsi kriptografi DBMS ini kelihatan seperti ini:

Jadual 1. Fungsi kriptografi DBMS

Fungsi penyulitan data AES menggunakan kunci penyulitan 128-bit, iaitu penyulitan dengan kunci 192-bit dan 256-bit yang disediakan oleh standard AES tidak dilaksanakan dalam MySQL. Kunci penyulitan dinyatakan secara eksplisit sebagai salah satu parameter fungsi. Sebaliknya, fungsi DES_ENCRYPT() dan DES_DECRYPT(), yang menyulitkan menggunakan algoritma TripleDES, selain menyatakan kunci penyulitan secara eksplisit, membenarkan pilihan paling mudah pengurusan utama dalam borang fail kunci, mengandungi nilai kunci bernombor. Walau bagaimanapun, fungsi ini dilumpuhkan secara lalai; untuk menggunakannya, anda mesti mendayakan sokongan untuk protokol SSL dalam konfigurasi DBMS.

Fungsi ENCRYPT() hanya boleh digunakan pada sistem pengendalian Keluarga Unix, kerana ia menyulitkan data menggunakan panggilan sistem crypt(). Bagi fungsi pencincangan yang digunakan, dokumentasi MySQL mengandungi amaran bahawa algoritma asas rosak (ini ditulis secara terperinci, khususnya, jadi ia harus digunakan dengan berhati-hati. Walau bagaimanapun, MySQL belum lagi menawarkan cincangan fungsi yang lebih mantap untuk menggantikannya. yang sedia ada yang disenaraikan di atas fungsi kriptografi juga sangat mudah digunakan. Sebagai contoh, pertanyaan berikut memasukkan nilai "teks" ke dalam jadual jadual, disulitkan dengan kunci "kata laluan": INSERT IN TO table VALUES (1, AES_ENCRYPT("text", "password")); Ambil perhatian bahawa format medan di mana nilai yang disulitkan ditulis mesti mematuhi sekatan yang dikenakan oleh algoritma kriptografi yang digunakan - dalam dalam kes ini, ia mestilah binari (contohnya, taip VARBINAR) dan anggap penjajaran mengikut saiz blok 128-bit algoritma AES.

Sistem perlindungan pangkalan data memainkan peranan penting dalam mengautomasikan kawalan ke atas tindakan pengguna yang bekerja dengan pangkalan data, melindungi daripada luaran dan ancaman dalaman dan meningkatkan kebolehpercayaan operasi pangkalan data.

Bibliografi

  1. Melnikov, V.P. Keselamatan maklumat dan perlindungan maklumat. / V.P.Melnikov,
  2. S.A.Kleimenov, A.M.Petrakov // ed. ke-3, dipadamkan. - M.: Akademi, 2008. - 336 p.
  3. Panasenko S.P. Perlindungan maklumat yang komprehensif. // Teknologi maklumat. -2001 - No. 3 - hlm. 14-16
  4. Program kerja disiplin "Keselamatan Maklumat": arahan latihan 080500 Informatik Perniagaan [ sumber elektronik]: profil latihan Sistem maklumat dalam perniagaan: kelayakan siswazah (ijazah) Sarjana Muda / Bashkir State Agrarian University, [Dept. sains komputer dan teknologi maklumat; kompaun A. R. Basyrov]. - Ufa: [b. i.], 2013. - 16 p. - B. c.
  5. laman web aplikasi web PHP"phpMyAdmin" [Sumber elektronik]. – Mod akses: http://www.phpmyadmin.net/home_page/, percuma

Sistem pengurusan pangkalan data telah menjadi alat utama untuk menyimpan sejumlah besar maklumat. Aplikasi maklumat moden bergantung terutamanya pada DBMS berbilang pengguna. Dalam hal ini, perhatian sedang diberikan kepada masalah memastikan keselamatan maklumat, yang menentukan tahap keselamatan organisasi dan institusi secara keseluruhan.

Keselamatan maklumat merujuk kepada perlindungan maklumat daripada kesan tidak sengaja dan sengaja yang bersifat semula jadi atau buatan yang boleh menyebabkan kerosakan kepada pemilik atau pengguna maklumat.

Untuk melindungi maklumat dalam pangkalan data, aspek keselamatan maklumat berikut adalah yang paling penting (kriteria Eropah):

syarat akses (keupayaan untuk mendapatkan beberapa perkhidmatan maklumat yang diperlukan);

integriti (ketekalan maklumat, perlindungannya daripada kemusnahan dan perubahan yang tidak dibenarkan);

kerahsiaan (perlindungan daripada bacaan yang tidak dibenarkan).

Masalah memastikan keselamatan maklumat adalah rumit, jadi penyelesaiannya harus dipertimbangkan tahap yang berbeza: perundangan, pentadbiran, prosedur dan perisian dan teknikal. Pada masa ini, masalah pembangunan rangka kerja perundangan, menyediakan penggunaan selamat sistem maklumat.

Langkah-langkah perisian dan perkakasan utama, yang penggunaannya akan menyelesaikan beberapa masalah di atas, termasuk:

pengesahan dan pengenalan pengguna;

kawalan capaian pangkalan data;

mengekalkan integriti data;

rakaman dan pengauditan;

perlindungan komunikasi antara pelanggan dan pelayan;

mencerminkan ancaman khusus kepada DBMS.

Pengesahan pengguna aplikasi pangkalan data paling kerap dicapai sama ada melalui mekanisme sistem pengendalian yang sesuai atau melalui pernyataan SQL tertentu: pengguna dikenal pasti dengan namanya, dan alat pengesahan ialah kata laluan. Sistem sedemikian mewujudkan kesukaran yang ketara untuk semakan berulang dan menghapuskan semakan sedemikian sebelum setiap transaksi.

Kawalan capaian pangkalan data adalah berdasarkan pelaksanaan set tindakan minimum berikut:

kawalan capaian rawak;

memastikan keselamatan penggunaan semula objek;

penggunaan label keselamatan;

kawalan akses paksa.

Kawalan capaian rawak ialah kaedah menyekat capaian kepada objek, berdasarkan mengambil kira identiti subjek atau kumpulan yang menjadi milik subjek. Teknologi ini membolehkan pemilik objek (pandangan, pelayan pangkalan data, prosedur, jadual) untuk memindahkan keistimewaan kepada orang lain mengikut budi bicaranya. Orang dalam situasi ini boleh menjadi subjek pengguna atau sekumpulan pengguna.

Kelebihan utama kawalan akses rawak ialah fleksibiliti. Walau bagaimanapun, ciri-ciri yang disertakan seperti pengurusan teragih dan kerumitan kawalan berpusat menimbulkan banyak cabaran untuk memastikan keselamatan data.

Perhatian juga harus diberikan untuk memastikan keselamatan penggunaan semula pangkalan data oleh subjek. Ini bermakna melucutkan hak semua pengguna yang meninggalkan organisasi untuk memasuki sistem maklumat.

Label keselamatan terdiri daripada dua bahagian: tahap keselamatan dan senarai kategori. Komponen pertama bergantung pada aplikasi dan versi standard mungkin kelihatan seperti spektrum nilai daripada rahsia utama kepada tidak dikelaskan. Komponen kedua membolehkan anda menerangkan kawasan subjek, membahagikan maklumat kepada bahagian, yang menyumbang kepada keselamatan yang lebih baik. Mekanisme label keselamatan tidak membatalkan, tetapi melengkapkan kawalan akses rawak: pengguna masih boleh beroperasi dengan jadual hanya dalam had keistimewaan mereka dan hanya menerima sebahagian daripada data. Cabaran utama apabila menggunakan label keselamatan ialah mengekalkan integritinya. Ini bermakna semua objek dan subjek mesti dilabelkan dan sebarang operasi pada data mesti memastikan label itu betul.

Kawalan capaian yang dikuatkuasakan adalah berdasarkan padanan label keselamatan subjek dan objek. Untuk membaca maklumat objek, label subjek mesti menguasai label objek. Apabila melakukan operasi menulis maklumat pada objek, label keselamatan objek mesti mendominasi label subjek. Kaedah kawalan akses ini dipanggil terpaksa, kerana ia tidak bergantung kepada kehendak subjek. Ia telah menemui aplikasi dalam DBMS dengan langkah keselamatan yang dipertingkatkan.

Memastikan integriti data tidak kurang penting daripada kawalan akses. Dari sudut pandangan pengguna DBMS, cara utama untuk mengekalkan integriti data adalah sekatan dan peraturan. Sekatan boleh terkandung secara langsung dalam model hubungan data, atau boleh ditentukan semasa proses penciptaan jadual. Kekangan jadual boleh digunakan pada sekumpulan lajur atau atribut individu. Kekangan rujukan bertanggungjawab untuk mengekalkan integriti perhubungan antara jadual. Kekangan dikenakan oleh pemilik jadual dan menjejaskan keputusan operasi berikutnya dengan data. Peraturan membenarkan anda melaksanakan prosedur tertentu apabila perubahan pangkalan data tertentu berlaku. Tidak seperti kekangan, yang memberikan kawalan ke atas keadaan yang agak mudah, peraturan membenarkan anda menyemak dan mengekalkan perhubungan sebarang kerumitan antara elemen data dalam pangkalan data. Walau bagaimanapun, apabila menggunakan peraturan sebagai alat keselamatan maklumat, ralat dalam sistem peraturan yang kompleks penuh dengan akibat yang tidak dapat diramalkan untuk keseluruhan pangkalan data.

Perekodan dan pengauditan terdiri daripada yang berikut:

pengesanan tindakan pengguna yang luar biasa dan mencurigakan dan pengenalan orang yang melakukan tindakan ini;

penilaian kemungkinan akibat pelanggaran;

Memberi bantuan;

organisasi perlindungan pasif maklumat daripada tindakan pengguna yang menyalahi undang-undang.

Masalah melindungi komunikasi antara klien dan pelayan dalam sistem maklumat bukan DBMS khusus. Untuk memastikan perlindungan maklumat, perkhidmatan keselamatan disediakan, yang fungsinya termasuk pengesahan, penyulitan dan kebenaran.

Walau bagaimanapun, sumber utama ancaman kepada DBMS terletak pada sifat pangkalan data. Selalunya maklumat yang diperlukan, tetapi tidak boleh diakses mengikut status, boleh diperolehi melalui inferens logik. Contohnya, dengan menggunakan operasi tambah dan bukannya operasi pilih (yang anda tidak mempunyai hak), anda boleh menganalisis kod penyiapan pernyataan SQL. Untuk memerangi ancaman sedemikian, mekanisme pendaraban baris untuk DBMS yang menyokong label keselamatan digunakan. Agregasi ialah kaedah mendapatkan maklumat baharu dengan menggabungkan data yang diperoleh secara sah daripada pelbagai jadual pangkalan data. Pengagregatan boleh dilawan dengan mereka bentuk model data dengan teliti dan mengehadkan akses pengguna kepada maklumat sebanyak mungkin.