Sistem Keamanan

1 ).SISTEM KEAMANAN SAAT PEMBUATAN (SI) SISTEM INFORMASI
Keamanan saat pembuatan sistem informasi menrujuk pada bagaimana cara-cara pencegahan agar sistem informasi yang dibuat nantinya memiliki tingkat keamanan yang baik. Poin-poin yang dapat diperhatikan dalam langkah ini adalah :
• Bagaimana menulis kode yang aman
Gunakan nama yang kuat untuk menandai secara digital pekerjaan kita. Kurangi profil
serangan dengan mengikuti prinsip-prinsip desain object oriented, lalu gunakan keamanan akses kode untuk membatasi kode mana bisa memanggil kode lainnya. Gunakan penanganan eksespi yang terstruktur untuk menjaga informasi yang sensitif agar tidak keluar dari batas yang terpercaya dan untuk mengembangkan kode yang lebih kuat.
• Bagaimana menangani eksespi yang aman
Jangan pernah mengungkapkan informasi tentang sistem internal atau aplikasi seperti
stakj traces, SQL statement fragments, dan sebagainya. Pastikan informasi jenis ini tidak sampai pada end user atau keluar dari batas yang terpercaya. Jangan mencatat data yang sensitif atau pribadi seperti password. Ketika mencatat laporan eksespi, jika input dari user dimasukkan dalam pesan yang dicatat, validasilah atau bersihkan terlebih dahulu, misalnya jika pesannya dalam format HTML, maka harus di encode terlebih dahulu untuk menghindari injeksi script.
• Bagaimana melaksakan pemeriksaan keamanan pada managed code
Gunakan alat analisa seperti FxCop untuk menganalisa file binary dan untuk memastikan
sesuai dengan design guideline dari framework yang dipakai. Perbaiki vulnerability yang dapat ditemukan oleh alat tersebut.Gunakan fasilitas pencarian text untuk scan kode sumber. Berikan perhatian lain pada vulnerability akibat SQL injection dan cross-site scripting.
• Bagaimana mengamankan alat kerja pengembang
Tempat kerja harus juga mendapat perhatian dalam masalah keamanan. Pengembang harus mengamankan alat kerjanya seperti: account, protokol, port, service, share, file dan
direktory, dan registry. Hal penting lainnya adalah memastikan bahwa workstation selalu
mengikuti update dan patch terbaru.
• Bagaimana menulis least privileged code
Kita dapat membatasi kode apa yang bisa dijalankan berdasarkan account. Untuk itu
dapat digunakan code access security untuk membatasi resources dan operasi yang
diperbolehkan dengan membuat kebijakan terlebih dahulu. Jika kode tidak membutuhkan
mengakses sebuah resource atau operasi, maka dapat digunakan declarative security attributes untuk memastikan kode tersebut tida diberi hak oleh administrator. Intinya, berikan akses pada yang membutuhkan saja.
• Bagaimana membatasi file I/O
Penggunaan code access security dapat dilakukan untuk membatasu kemampuan kode
dalam mengakses area dari sistem file dan menjalankan file I/O. Sebagai contoh, sebuah aplikasi web dapat dibatasi hanya bisa mengakses file pada virtual directory yang dimilikinya.
• Bagaimana mencegah SQL injection
Untuk mengakses data, sebaiknya digunakan stored procedures yang mempunyai
parameter. Penggunaan parameter tersebut untuk memastikan nilai input sudah dicek tipe dan panjangnya. Parameter juga diberlakukan untuk menjamin sebagai nilai yang aman dan bukan kode yang dapat dieksekusi dalam database. Jika tidak dapat menggunakan stored procedures, sebaiknya menggunakan SQL statement dengan parameter. Jangan pernah membangun SQL statement dengan langsung memasukkan nilai input dalam SQL command. Pastikan aplikasi memberikan hak akses ke database seperlunya saja.
• Bagaimana mencegah cross-site scripting
Untuk mencegah cross-site sripting, validasi semua input termasuk tipe, panjang, format,
dan range dan yang penting encode outputnya. Sebagai contoh, encode form fileds, query string parameters, cookies, dan sebagainya.
• Bagaimana mengatur rahasia
Carilah pendekatan alternatif guna menghidari menyimpan informasi rahasia di urutan
pertama. Jika harus menyimpan informasi tersebut, jangan pernah menyimpannya dalam text biasa di kode sumber atau di file konfigurasi. Jangan lupa enkripsi informasi rahasia dengan Data Protection Application Programming Interface (DPAPI) untuk menghindari isu manajemen key.
• Bagaimana memanggil unmanaged code secara aman
Berilah perhatian tersendiri pada paramater yang memasuki atau datang dari unmanaged
API, dan hati-hati dengan kemungkinan terjadinya buffer overflows. Validasi panjang dari parameter string input dan output, cek array, dan hati-hati dengan panjang file path. Gunakan permintaan izin tertentu untuk menjaga akses ke unmanaged resources sebelum menyatakan izin unmanaged code. Gunakan peringatan untuk meningkatkan performance.
• Bagaimana melakukan validasi input yang aman
Batasi, tolak, bersihkan input merupakancara yang lebih mudah dalam melakukan
validasi data untuk tipe, pola, range yang valid dan sudah diketahui terlebih dahulu kemudian mencari karakter yang jelek. Untuk input berupa string bisa digunakan ekspresi regular.
• Bagaiaman mengamankan Forms authentication
Harus ada pembagian area mana yang bisa diakses oleh anonim dan area mana yang
hanya bisa diakses oleh user dengan menggunakan otentifikasi. Jika aplikasi berbasis web, gunakanlah Secure Sockets Layer (SSL). Batasi juga jangka waktu sesi dan pastikan
authentication cookie hanya melalui HTTPS saja. Enkripsi authentication cookie dan jangan gunakan untuk tujuan personalisasi. Untuk personalisai, gunakan cookie terpisah selain authentication cookie.

2 ). SISTEM KEAMANAN SAAT PENYIMPANAN SI
System keamanan saat penyimpanan SI merujuk pada bagaimana system informasi tersebut dilindungi saat berada pada lingkungan server, dengan kata lain perlindungan server tempat menyimpan SI, maupun database SI. Pengamanan sistem informasi dapat dilakukan melalui beberapa layer yang
berbeda. Misalnya di layer “transport”, dapat digunakan “Secure Socket
Layer” (SSL). Metoda ini umum digunakan untuk server web. Secara fisik,
sistem anda dapat juga diamankan dengan menggunakan “firewall” yang
memisahkan sistem anda dengan Internet. Penggunaan teknik enkripsi
dapat dilakukan di tingkat aplikasi sehingga data-data anda atau e-mail anda
tidak dapat dibaca oleh orang yang tidak berhak.

3 ). SISTEM KEAMANAN SAAT PENDISTRIBUSIAN SI
Sistem keamanan saat pendistribusian SI merujuk pada bagaimana sistem informasi tersebut terlindungi saat didistribusikan kepada user. Contoh-contoh pelanggaran keamanan pada pendistribusian sistem informasi yaitu :
• Informasi yang ditampilkan di server diubah sehingga dapat mempermalukan perusahaan atau organisasi anda (dikenal dengan istilah deface1);
• Informasi yang semestinya dikonsumsi untuk kalangan terbatas (misalnya laporan keuangan, strategi perusahaan anda, atau database client anda) ternyata berhasil disadap oleh saingan anda (ini mungkin disebabkan salah setup server, salah setup router / firewall, atau salah setup authentication).
• informasi dapat disadap (seperti misalnya pengiriman nomor kartu kredit untuk membeli melalui WWW, atau orang yang memonitor kemana saja anda melakukan web surfing).
• Server anda diserang (misalnya dengan memberikan request secara bertubi-tubi) sehingga tidak bisa memberikan layanan ketika dibutuhkan (denial of service attack);
• Untuk server web yang berada di belakang firewall, lubang keamanan di server web yang dieksploitasi dapat melemahkan atau bahkan menghilangkan fungsi dari firewall (dengan mekanisme tunneling).

DAFTAR PUSTAKA :
- Budi Rahardjo, “Keamanan Sistem Informasi Berbasis Internet,” PT Insan Infonesia - Bandung & PT INDOCISC – Jakarta 1998, 1999, 2000, 2001, 2002
- http://www.abdrohim.com, “Keamanan SistemWorld Wide Web”
- Program Magister Teknologi Informasi Fakultas Ilmu Komputer Universitas Indonesia, “Sistem Keamanan pada Pengembangan Sistem Informasi untuk Software Developer sektor Usaha Kecil dan Menengah (UKM),” 2005

Tuesday, September 18, 2007