Thursday, August 12, 2010

Website Security Systems (Keamanan Website)

Berikut ini sedikit review tentang keamanan website. Semoga Berguna.
Keamanan suatu website atau web security systems merupakan salah satu prioritas yang sangat utama bagi seorang webmaster. Jika seorang webmaster mengabaikan keamanan suatu website, maka seorang hacker dapat mengambil data-data penting pada suatu website dan bahkan pula dapat mengacak-acak tampilan website(deface) tersebut.


Quote:
Pengantar

Keamanan suatu website atau web security systemsmerupakan salah satu prioritas yang sangat utama bagi seorang webmaster.
Jika seorang webmaster mengabaikan keamanan suatu website, maka seorang hacker dapat mengambil data-data penting pada suatu website dan bahkan pula dapat mengacak-acak tampilan website(deface) tersebut.

Quote:
Metode Penyerangan


Berikut adalah beberapa metode yang biasa sering digunakan para hacker untuk menyerang suatu website:
1.Remote File Inclusion (RFI)
2.Local File Inclusion (LFI)
3.SQL injection
4.Cross Site Scripting (XSS)

Quote:
Remote File Inclusion (RFI)
Metode yang memanfaatkan kelemahan script PHP include(), include_once(), require(), require_once() yang variabel nya tidak dideklarasikan dengan sempurna.
Dengan RFI seorang attacker dapat menginclude kan file yang berada di luar server yang bersangkutan.


Local File Inclusion (LFI)
Metode yang memanfaatkan kelemahan script PHP include(), include_once(), require(), require_once() yang variabel nya tidak dideklarasikan dengan sempurna.
Dengan LFI seorang attacker dapat menginclude kan file yang berada di dalam server yang bersangkutan.


SQL injection
SQL injection adalah teknik yang memanfaatkan kesalahan penulisan query SQL pada suatu website sehingga seorang hacker bisa menginsert beberapa SQL statement ke ‘query’ dengan cara memanipulasi data input ke aplikasi tersebut.



Cross Site Scripting (XSS)
XSS dikenal juga dengan CSS adalah singkatan dari Cross Site Scripting.XSS adalah suatu metode memasukan code atau script HTML kedalam suatu website yang dijalankan melalui browser di client.


Tips Keamanan Website
-Ada beberapa cara supaya website kita tidak mudah disusupi oleh para hacker, sehingga dapat mengurangi resiko kerusakan website, antara lain:
Jika anda menggunakan suatu CMS seperti joomla, phpbb, phpnuke, wordpress dan sebagainya, rajinlah mengupdate CMS anda dengan CMS terbaru jika muncul versi yang lebih baru.
-Gunakanlah software seperti Acunetix untuk melakukan scanning atas kelemahan yang bisa terjadi di website anda

Security Pada SQL Server
Pada pembuatan database client-server tidak boleh diabaikan masalah security.

Quote:
Security
database di SQL Server cukup handal untuk databese menengah ke atas. Security system ini berhubungan erat dengan autoritas sebuah client dalam berkomunikasi dengan database. Sebuah user di SQL server dapat kita buat langsung dari SQL Server Enterprise Manager atau mapping dari user di Windows NT/2000. User default Administrator di SQL Server adalah “sa” dengan password . User ID tidak bisa kita ganti, akan tetapi kita bisa membuat User ID yang mempunyai Autoritas yang sama dengan “sa” sebagai Administrator. Password untuk user “sa” dapat kita ganti sesuka kita meskipun database sudah terbantuk. Hal ini tidak akan memberi efek apa-apa pada database. Akan tetapi bisa menyebabkan error koneksi pada aplikasi yang sudah kita bangun sebelumnya. Error koneksi pada aplikasi dapat kita atasi dengan cara membuka source programnya dan mengganti password. Error koneksi tidak akan terjadi di aplikasi jika aplikasi kita bangun dengan koneksi langsung ke database SQL Servernya.
TEKNIK SECURITY
Ada banyak teknik security pada aplikasi. Security pada aplikasi dapat kita ciptakan sendiri dengan cara membuat sebuah tabel user beserta otoritasnya untuk sebuah aplikasi tertentu. Akan tetapi hal ini kurang aman bilamana tabel yang kita buat sampai diketahui oleh orang yang tidak berkepentingan.
Teknik kedua adalah membuat mapping untuk user sebuah Windows Server untuk akses
database. Meskipun hal ini mudah untuk dilakukan akan tetapi kita akan mengalami kendala yang sama pada teknik kedua. Lebih dari itu, akan sangat rawan apabila user kita ceroboh saat meninggalkan komputernya dalam keadaan On dan tanpa Re-Login.
Teknik lain adalah dengan cara mengintegrasikan User di database dengan apikasi. Hal ini sangat terjamin keamanannya, karena encrypt password dan Autoritanya sudah di tangani oleh SQL Server itu sendiri. Kerahasiaan passsword murni ada di tangan user dan administrator database. Tinggal pandai-pandainya kita dalam membangun aplikasi untuk menangani error yang di timbulkan oleh SQL Server. Error hande yang perlu kita tangani diantaranya adalah :
1. Login Error.
2. Autoritas atas permission komponen database (table, view, stored procedure, triger
dan function (Untuk SQL Server 2000))
Untuk lebih mengintegritaskan interface user permission dengan aplikasi kita, sebenarnya dapat
kita tangani dengani memanfaatkan teknik DMO atau NameSpace pada SQL Server (tidak
dibahas pada tulisan ini).
Selain teknik pembuatan user, yang perlu kita perhatikan dalam hal security adalah teknik
koneksi. Teknik koneksi juga banyak macamnya.
Teknik koneksi pertama adalah dengan membuat koneksi untuk sebuah user yang login sampai
dia log off, dan membiarkan user login dengan user id dan password yang sama di komputer
lain. Teknik ini sangat rawan sekali.
Teknik kedua adalah dengan membuat koneksi untuk sebuah user yang login sampai dia log off
dan tidak mengijikan user login di komputer lain dengan user id dan password yang sama.
Teknik ini lebih bagus dari teknik pertama.
Teknik ketiga adalah dengan membuat koneksi untuk sebuah user yang login sampai batas
waktu tertentu jika ia tidak beraktifitas di aplikasi tersebut dan atau sampai ia log off, juga tidak
mengijikan login di komputer lain dengan user id dan password yang sama dengan cara
memutus salah satu koneksinya. Untuk menentukan koneksi mana yang diputus, user ditawari
pilihan, ia akan memakai koneksi yang baru dengan memutus yang lama atau dia membatalkan
koneksi yang baru dengan membiarkan aktif oneksi yang lamanya. Teknik ini sangat aman,
meski agak sulit untuk diterapkan.
CARA MEMBUAT USER DI SQL SERVER
Kita dapat mendefinisikan user-user lain yang akan mengakses database tersebut di SQL Server
Enterprise Manager beserta otoritasnya, seperti Select, Insert, Update, Delete dan Execute. Cara
membuat user baru :
1. Buka SQL Server Enterprise Manager
2. Masuk server yang terkonek.
3. Pilih Security – Logins.
4. Jika memilih Windows NT Authentication, Isikan Domain tempat user login dan pilih type Access (Grant atau Deny). Jika memilih SQL Server Authentication Isikan User ID pada Name, dan password. Pilih database, dan pilih bahasa yang digunakan atau pilih .
5. Kemudian klik tab Server Roles untuk memilih group user dengan segala permissionnya. Roles dapat anda buat untuk kelompok user, supervisor dll, selain yang ada di default dariSQL Server tersebut. Untuk membuat Roles baru, lihat pada bagian Roles.
6. Lalu klik tab Database Access untuk memilih database yang bisa diakses oleh user tersebut. Setelah user baru terbentuk, anda bisa mengeditnya dengan cara klik kanan user tersebut, lalu pilih Properties. Anda bisa mencoba login dengan user tersebut pada Query Analyzer.
CARA MEMBUAT ROLES DI SQL SERVER
Roles adalah sebuah group user, yang artinya mengelompokkan beberapa user SQL Server yang mempunyai hak akses sama. Hal ini memberi kemudahan saat beberapa user dalam kelompok tersebut mengalami perubahan hak akses, sehingga kita tinggal merubah hak akses roles-nya maka user-user yang ada dalam roles tersebut akan ikut berubah.
STANDARD ROLES
Untuk membuat sebuah roles (user group), masuk ke database tertentu lalu pilih roles. Kemudian klik kanan pada window sebelah kanan, pilih New Database Role…
Isikan nama Role yang akan anda buat, lalu pilih anggotanya dengan menekan tombol Add… dan pilih usernya. Setelah sebuah Role terbentuk barulah anda bisa menentukan akses permission pada role tersebut dengan meng-klok kanan role yang anda buat, lalu klik tambol Permissions.
Dari sini anda dapat memilih tabel, view atau stored procedure yang dapat diakses oleh kelompok
user tersebut dengan Select, Insert, Update, Delete, Execute atau DRI (declarative referential
integrity).
CARA MEMBUAT PERMISSIONS
Untuk membuat permission pada sebuah user atau Roles tertentu anda bisa melakukannya dengan cara masuk ke database dimana user tersebut memiliki hak akses, lalu pilih users, lalu properties. Atau pilih Roles lalu klik properties. Kemudian klik tombol permissions.
Dari sini anda dapat menentukan tabel, view atau stored procedure yang dapat diakses oleh user tersebut dengan Select, Insert, Update, Delete, Execute atau DRI (declarative referential integrity).
Anda dapat mengkombinasikan permission pada User maupun pada Role. Kedudukan kedua komponen database tersebut saling melengkapi. Akan tetapi apabila permission pada user dan role bertentangan, maka permission yang tidak mengijinkan akan lebih dominan. Misalnya seorang user U menjadi anggota role R dengan akses tabel X. Padahal permission pada user U tersebut tidak mengijinkan untuk mengakses tabel A. Maka pada implementasinya, user U tersebut tidak akan dapat mengakses tabel A.
Akan tetapi jika ada membuat permission pada user U dapat mengakses tabel A,B,C dan membuat permission pada role R dapat mengakses tabel X,Y,X, dan user U tersebut menjadi anggota dari role R, maka pada implementasinya user tersebut dapat mengakses tabel A,B,C,X,Y,Z.
CARA MENON-ACTIVE-KAN USER
Cara menon-aktive-kan user ada 2 cara, tergantung type dari user tersebut, apakah user tersebut dibuat dari user Windows NT atau dari SQL Server.
Apabila user tersebut dibuat dari user Windows NT, anda dapat melakukannya dengan cara berikut :
Masuklah ke sebuah server dari Enterprise Manager, lalu pilih Security, kemudian klik login. Pada window sebelah kanan pilih user yang akan di non-aktive-kan dengan cara klik kanan, properties. Kemudian pilih option Deny access.
Dengan demikian user tersebut sudah tidak bisa lagi mengakses database yang semula anda definisikan untuknya. Akan tetapi jika setting tersebut anda kembalikan ke Grant access, maka segala setting, baik untuk database, role dan setting akses pada user tersebut akan kembali seperti semula. Sedangkan untuk user yang dibuat dari SQL Server, anda tidak bisa membuat Deny access.
Yang bisa anda lakukan bagi user yang dibuat di SQL Server untuk menon-aktive-kan adalah dengan menghilangkan permission aksesnya untuk semua database. Dengan demikian, user tersebut masih ada akan tetapi tidak mempunyai akses ke database manapun. Saat itu anda lakukan untuk sebuah user, maka semua permission yang telah anda set untuk user tersebut akan hilang. Jika anda ingin mengaktifkan lagi, maka anda harus mengeset user tersebut pada database yang anda inginkan, termasuk juga keanggotaanya pada sebuah role dan permission
akses yang ada pada user tersebut.
CARA MENGHAPUS USER
Untuk menghapus user account, anda dapat melakukannya dengan cara masuklah ke sebuah server dari Enterprise Manager, lalu pilih Security, kemudian klik login. Pada window sebelah kanan pilih user yang akan di hapus dengan cara klik kanan, lalu pilih Delete. WINDOWS NT AUTHENTICATION Vs SQL SERVER AUTHENTICATION
Windows NT Authentication mempunyai manfaat lebih dibandingkan dengan menggunakan SQL Server Authentication.
Pertama, anda tidak perlu membuat user dan permission terpisah di SQL Server untuk
mengakses database. Kedua, keamanan Windows NT menyediakan fitur lebih dibanding SQL Server Authentication. Fitur ini meliputi password expired, panjang minimum password, dan maksimum login saat terjadi kesalahan password.
Ketiga, SQL Server membaca informasi tentang para pemakai dan kelompok manakala pemakai menghubungkan. Perubahan apapun yang dibuat untuk seorang user di account Windows NT akan direlasikan ke user SQL Server.
Akan tetapi penggabungan dua metode di atas akan lebih mudah untuk pengaturannya jika dibanding dengan hanya menggunakan Windows NT Authentication. Metode campuran ini cocok untuk database yang tidak "mission-critical" atau tidak berisi data rahasia. Anda juga bisa menggunakan hanya SQL Server Authentication untuk sebuah database dengan menyerahkan segala fasilitas dan keamanannya pada SQL Server.
sumber http://indofiles.org/showthread.php?t=9538