Beranda > Uncategorized > Mengapa perlu?

Mengapa perlu?

Secure your data base Environments, Now !!!

Secure your data base Environments!

Mengapa perlu?

SQL server adalah merupakan database server yang didalamnya kita menyimpan informasi data berupa database object seperti table, view, store procedure, function trigger dll. Dalam berbagai kasus pengamanan database server kurang terperhatikan dan cendrung sangat sekali minim dilakukan

Hampir sebagian besar developer kurang memperhatikan perlunya pengamanan dari sisi database server ini. Sehingga tidak jarang terjadi pencurian bahkan pembobolan data yang diakibatkan oleh minimnya pengamanan data di sisi database back end.

Beberapa contoh hal yang memungkinkan database kita tidak aman dan memiliki resiko dalam hal keamanan adalah sebagai berikut:

– Menggunakan user SA sebagai user untuk koneksi ke database yang di tuliskan di connection string di Object Connection. Memungkinkan orang dapat mengetahui password SA (apalagi jika tidak menggunakan strong password) dan dapat masuk kedalam database kita melalui program yang dibuat dengan menggunakan connection string yang sama.

– Selalu menggunakan SQL Command Text dari pada memanggil store procedure, memungkinkan aplikasi yang dibuat akan sangat rentan dengan methoda threats yang disebut SQL Injection seperti halnya pernah terjadi pada kasus nama partai bisa dirubah menjadi partai jambu pada pemilu lalu.

– Tidak mengimplementasikan IP Secure yang memungkinkan data base server bisa di akses melalu sembarang Work station yang memiliki SQL server, sehingga orang dapat mengakses database server asal terinstal enterprise manager atau management studio di Pcnya.

Berikut ini adalah gambar mengenai pada titik mana saja kemungkinan terjadi gangguan keamanan terhadap database server kita.

Basic Configuration untuk security

Berikut ini adalah beberapa hal yang perlu diperhatikan dalam hal pengamanan database server kita khususnya untuk data production.

  1. Defence in depth

Sebagai best practice dari system keamanan suatu system kita perlu mengetahui konsep dasar dari system keaman system yaitu defence in depth yang terdiri dari komponen berikut ini:

– Policies, Procedure & Awareness

– Physical Security

– Perimeter security

– Internal Network security

– Host/Server Security

– Application Security

– Data Security

  1. Apply service pack and patch

Untuk mengetahui adakah update yang tertinggal dan belum di apply gunakan MBSA sehingga kita mengetahui patch atau service pack apa saja yang belum terinstall

  1. Disable Unused service

Matikan semua service yang tidak diperlukan seperti:

– MSSQLServer

– SQLServerAgent

– MSSQLServerADHelper

– Microsoft Search

– Microsoft DTC

Database Security Category

Pengamanan database server merupakan syarat mutlak bagi aplikasi yang digunakan untuk mengolah data production. Gambar berikut menunjukkan category security yang perlu dilakukan terhadap database server.

Pengamanan database dapat dikelompokkan sebagai berikut:

  1. Pengamanan Network

Pengamanan netowork ini bertujuan untuk mengamankan jaringan/network dari kemungkinan akses oleh orang yang tidak berhak dan bermaksud mengacaukan keamanan database server kita. Pengaman ini dapat berupa:

– Restrict SQL to TCP/IP

Meliputi pengontrolan siapa saja yang bisa mengakses database server dengan menggunakan IP Secure Policy. Dimana hanya computer dengan IP terdaftar saja yang dapat mengakses database server. Dalam kasus web application maka hanya web server saja yang bisa akses database server. Akses dari computer lain yang tidak terdaftar akan di tolak

– Hardening TCP/IP Stack

Proses ini dilakukan untuk memastikan TCP/IP yang digunakan secure dari kemungkinan gangguan keamanan

– Restrict Port

Melakukan blocking terhadap semua port kecuali SQL Server port dan port-port yang diperlukan untuk authentication. Selain itu IP Sec harus di configure untuk membatasi akses hanya port SQL saja yang bisa di akses yaitu Port 1433 dan 1434.

  1. Pengamanan System operasi

Pengaman ini dilakukan guna memastikan bahwa data yang ada di database server dari sisi system operasi akan tersimpan dengan aman tanpa adanya gangguan terhadap keamanan data. Hal yang perlu dilakukan di level database server adalah:

– Configure SQL Server Service agar dijalankan diatas user account dengan hak aksess (Permission) yang seminim mungkin. Ini ditujukan agar jangan sampai sql service dijalankan oleh account dengan role administrator. Sehingga memiliki hak akses yang sangat tinggi.

– Delete atau disable user account yang tidak digunakan, misalnya account guest atau local account yang tidak ada hubungannya dengan applikasi yang menggunakan database maka harus dihapus atau di disable dari sql server.

– Secure Authetication traffic, dengan cara melakukan konfigurasi windows agar dapat menggunakan windows Integrated authentication (NTLM)

– Secure File and directories, perlu diperhatikan pula tentang keamanan dalam penyimpanan data berupa file data dan directory di database server dengan cara:

o pastikan bahwa sqlserver terinstall di SQL Servcer installation directories.

o Pastikan bahwa everyone group user tidak memiliki hak akses guna mengkases sql server file (mdf file)

o Pastikan bahwa registry key telah terkonfigurasi dengan Access Control List yang tepat.

o Remove semua sharing folder yang tidak butuhkan

o Remove password yang ada di log file dengan menggunakan tools KillPwd.exe

o Remove semua tools, utilities dan SDK bahkan development tools sepertti Visual studio dari database server.

  1. Login dan User Role

Ada beberapa hal yang perlu menjadi catatan penting sebagai best practice dalam mengamankan SQL Server sebagai database server adalah sebagai berikut:

– Gunakan strong password untuk sa (system administrator) agar tidak mudah di tebak. Strong password ini bisanya terdiri dari kombinasi huruf dan angka dengan carakter khusus seperti (!@#$%^&*()) dengan panjang tidak boleh kurang dari 5 character.

– Remove Guest Account dari user di SQL server

– Remove BUILTIN\Administrator user dari SQL Sever

– Jangan melakukan grand permission terhadap public role

SQL Authentication Best Practice

Untuk mengamankan akses terhadap database server kita, maka kita perlu pastikan mekanisme authentication untuk database diserver production kita memenuhi syarat sebagai berikut:

  1. Set Windows Authentication menggunakan windows only dan bukan Mixmode, dengan penjelasan sebagai berikut:

    1. bahwa credential dari windows only tidak dipassing melalui network

    2. security dengan menggunakan windows only akan mudah di manage

    3. dengan window authentication memungkinkan credential bisa di deligate

    4. menghilangkan keperluan menyimpan user id dan password di client (seperti penulisan user id dan password untuk connection string).

  1. Secure Database object, hal ini perlu dilakukan guna memastikan bahwa setiap object database (Table, view, Store procedure, Function dan trigger) hanya diakses oleh user yang berhak saja. Khususnya jika dalam satu database server terdapat lebih dari 1 database yang sama sama digunakan sebagai data production. Adapun best practice untuk melakukan secure database objects adalah sebagai berikut :

    1. Remove sample database dari database server

    2. Restrict access terhadap store procedure, dengan cara :

i. membuat SQL Login kemudian

ii. map login to database user

iii. Add database user kedalam user define DB Role kemudian grant permission terhadap DB Role Tersebut.

iv. Restrict cmdExec access hanya untuk sysadmin role

  1. Gunakan View dan Store procedure, ini pelu dilakukan karena

    1. SQL Query mungkin mengandung informasi confidential sehingga perlu di hide seperti misalnya:

i. Nama dari database component (Nama field, nama table)

ii. Relasi antara table serta process logic

iii. Account name serta password

    1. Gunakan Store procedure seintensif mungkin karena selain menyembunyikan logic yang ada. SP membuat proses eksekusi lebih cepat dibandingkan query biasa.

    2. Sebaiknya view lebih banyak digunakan daripada mengakses table secara langsung. Ini ada kaitannya juga dengan kemanan dalam hal menyembunyikan informasi dan relasi dari table yang ada.

    3. Gunakan security best practice khususnya untuk aplikasi yang jalan di atas web application (secure code)

Demikian secara singkat bagaimana kita mengamankan database yang ada di SQL Server kita dengan memanfaatkan best practice untuk mengamankan database server khususnya untuk data production (kn).

Posted: Wednesday, July 12, 2006 3:42 AM by kiki

Filed under: SQL Server

Kategori:Uncategorized
  1. Belum ada komentar.
  1. No trackbacks yet.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: