Kamis, 21 Juni 2018

4.4 Volume data/isi harddisk pada server dengan RAID


RAID (Redundant Array of Independent Disks) adalah teknologi yang menggabungkan beberapa HDD (bisa 2, 3, 4,  dst) menjadi satu dan terbaca sebagai 1 harddisk. Ada istilahnya RAID 0, RAID 1, RAID 1+0, RAID 2 dst yang akan menentukan jenisnya.
Sebagai perbandingan, bila sistem operasi yang digunakan adalah windows, maka drive pada RAID yang muncul hanya C saja. Beda halnya jika konfigurasi RAID tidak digunakan maka drive yang muncul adalah C, D dan E atau bahkan lebih (satu drive untuk satu harddisk) tergantung berapa banyak harddisk yang digunakan.
Tujuan RAID sendiri sebenarnya cuma ada 3, yaitu kecepatan data (stripping), keamanan data (mirroring) maupun keduanya.
Awalnya RAID hanya digunakan untuk server saja, dimana keamanan data & kecepatan sangat mutlak diperlukan. Dan untuk membuat konfigurasi RAID ini awalnya perlu RAID card tersendiri yang harganya sangat mahal. Namun beberapa tahun terakhir Intel menyelipkan fasilitas RAID controller kedalam chipset ICHxR mereka sehingga RAID bisa dinikmati oleh user lewat onboard controller pada motherboard.
RAID sebenarnya tidak serumit yang dibayangkan, karena prinsip dasarnya RAID sebenarnya hanya ada 2, yaitu : stripping dan mirroring.
Stripping adalah membagi kerja 2 atau lebih hardisk untuk mengolah 1 data pada saat bersamaan. Jadi misalnya Anda menyimpan data sebesar 1GB di 2 HDD yang distripping, maka 2 hardisk itu akan menyimpan masing2 500GB. Demikian juga dengan loading data, 2 HDD tersebut akan kerja bersamaan untuk membaca data. Hasilnya adalah waktu yang jauh lebih singkat (2x lebih cepat).
Kelemahan stripping adalah jika salah satu dari array HDD macet, maka separuh data yang disimpan di HDD yang lainpun tidak akan bisa terbaca.
Nah, kalau Mirroring artinya Anda akan membackup data yang sama persis di HDD lain secara realtime. Jadi ini ditujukan untuk keamanan data. Kelemahannya adalah kerugian kapasitas. Misalnya Anda punya 2 x HDD 2TB yang dimirroring, maka itu artinya Anda hanya memiliki 2TB data dan 2TB data mirror. Beda dengan stripping yang artinya jika Anda memiliki 2x HDD 2 TB, maka kapasitas totalnya adalah 4 TB.
RAID yang umum digunakan untuk pengguna di rumah adalah RAID 0, RAID 1, dan RAID 0+1.
RAID 0 banyak memberikan keuntungan secara speed & ekonomis. Peningkatan kecepatan yang akan Anda dapatkan adalah sebanding dengan jumlah HDD yang Anda stripping. Jadi misalnya 4 HDD bisa 400MB/s kecepatannya. Berarti bisa mengalahkan kecepatan sebuah SSD yang hanya rata-rata 180 MB/s.
Tabel Level RAID
RAID0
Level ini menerapkan stripping, tapi tidak mem-back-up data. Dengan demikian, kinerja PC bisa meningkat, kapasitas HDD meningkat 2x lipat, tetapi tak ada cadangan/backup data.
RAID1
Level ini dikenal juga dengan nama mirroring. RAID1 membuat salinan data yang ada di harddisk lain sebagai back-up. Hal ini sangat berguna ketika data yang ada di harddisk adalah data yang sangat penting dan tidak boleh rusak. Akan tetapi, RAID1 tidak menawarkan peningkatan performa. Kinerja server maupun PC tetap biasa saja.
RAID2
RAID2 menggunakan stripping antara harddisk yang digunakan. Hanya saja, beberapa harddisk digunakan untuk menyimpan informasi mengenai pemeriksaan error dan koreksi, Error Checking dan Correscting(ECC).
RAID3
Tipe RAID ini menggunakan stripping dan menggunakan 1 harddisk untuk menyimpan informasi mengenai pariti (parity). RAID3 juga digunakan untuk mendeteksi adanya error. RAID3 berguna untuk sistem yang digunakan oleh 1 orang yang berisi data yang amat panjang.
RAID4
RAID4 menggunakan stripe yang besar. Dengan demikian, sistem bisa membaca data dari 1 drive. Sistem yang meggunakan RAID4 bisa mengambil keuntungan dari adanya pembacaan data secara bersamaan.
RAID5
Tipe RAID ini memiliki array parity. Semua penulisan dan pembacaan data dapat dilakukan bersamaan. RAID5 menyimpan data parity, tetapi tidak bisa melakukan back-up. RAID5 paling tidak butuh 3 harddisk. Tapi biasanya 5 harddisk yang digunakan.
RAID6
Mirip dengan RAID5, tetapi memiliki pariti kedua yang tersebar di beberapa harddisk sehingga menawarkan back-up yang luar biasa.
RAID7
RAID7 membuat sistem operasi sebagai controller, caching menggunakan jalur cepat.

RAID 0
Juga dikenal dengan modus stripping. Membutuhkan minimal 2 harddisk. Sistemnya adalah menggabungkan kapasitas dari beberapa harddisk. Sehingga secara logikal hanya “terlihat” sebuah harddisk dengan kapasitas yang besar (jumlah kapasitas keseluruhan harddisk).
Pada awalnya, RAID 0, digunakan untuk membentuk sebuah partisi yang sangat besar dari beberapa harddisk dengan biaya yang efisien. Data yang ditulis pada harddisk-harddisk tersebut terbagi-bagi menjadi fragmen-fragmen. Dimana fragmen-fragmen tersebut disebar di seluruh harddisk. Sehingga, jika salah satu harddisk mengalami kerusakan fisik, maka data tidak dapat dibaca sama sekali.
Namun ada keuntungan dengan adanya fragmen-fragmen ini: kecepatan. Data bisa diakses lebih cepat dengan RAID 0, karena saat komputer membaca sebuah fragmen di satu harddisk, komputer juga dapat membaca fragmen lain di harddisk lainnya.

RAID 1
Biasa disebut dengan modus mirroring. Membutuhkan minimal 2 harddisk. Sistemnya adalah menyalin isi sebuah harddisk ke harddisk lain dengan tujuan: jika salah satu harddisk rusak secara fisik, maka data tetap dapat diakses dari harddisk lainnya.
Contoh:
Sebuah server memiliki 2 unit harddisk yang berkapasitas masing-masing 80GB dan dikonfigurasi RAID 1. Setelah beberapa tahun, salah satu harddisknya mengalami kerusakan fisik. Namun data pada harddisk lainnya masih dapat dibaca, sehingga data masih dapat diselamatkan selama bukan semua harddisk yang mengalami kerusakan fisik secara bersamaan.

RAID 2
RAID 2, juga menggunakan sistem stripping. Namun ditambahkan tiga harddisk lagi untuk pariti hamming, sehingga data menjadi lebihreliable. Karena itu, jumlah harddisk yang dibutuhkan adalah minimal 5 (n+3, n > 1). Ketiga harddisk terakhir digunakan untuk menyimpan hamming code dari hasil perhitungan tiap bit-bit yang ada di harddisk lainnya.
Contoh:
Kita memiliki 5 harddisk (sebut saja harddisk A,B,C, D, dan E) dengan ukuran yang sama, masing-masing 40GB. Jika kita mengkonfigurasi keempat harddisk tersebut dengan RAID 2, maka kapasitas yang didapat adalah: 2 x 40GB = 80GB (dari harddisk A dan B). Sedangkan harddisk C, D, dan E tidak digunakan untuk penyimpanan data, melainkan hanya untuk menyimpan informasi pariti hamming dari dua harddisk lainnya: A, dan B. Ketika terjadi kerusakan fisik pada salah satu harddisk utama (A atau B), maka data tetap dapat dibaca dengan memperhitungkan pariti kode hamming yang ada di harddisk C, D, dan E.
RAID 3
RAID 3, juga menggunakan sistem stripping. Juga menggunakan harddisk tambahan untuk reliability, namun hanya ditambahkan sebuah harddisk lagi untuk parity.. Karena itu, jumlah harddisk yang dibutuhkan adalah minimal 3 (n+1 ; n > 1). Harddisk terakhir digunakan untuk menyimpan parity dari hasil perhitungan tiap bit-bit yang ada di harddisk lainnya.
Contoh kasus:
Kita memiliki 4 harddisk (sebut saja harddisk A,B,C, dan D) dengan ukuran yang sama, masing-masing 40GB. Jika kita mengkonfigurasi keempat harddisk tersebut dengan RAID 3, maka kapasitas yang didapat adalah: 3 x 40GB = 120GB. Sedangkan harddisk D tidak digunakan untuk penyimpanan data, melainkan hanya untuk menyimpan informasi parity dari ketiga harddisk lainnya: A, B, dan C. Ketika terjadi kerusakan fisik pada salah satu harddisk utama (A, B, atau C), maka data tetap dapat dibaca dengan memperhitungkan parity yang ada di harddisk D. Namun, jika harddisk D yang mengalami kerusakan, maka data tetap dapat dibaca dari ketiga harddisk lainnya.
RAID 4
Sama dengan sistem RAID 3, namun menggunakan parity dari tiap block harddisk, bukan bit. Kebutuhan harddisk minimalnya juga sama, 3 (n+1 ; n >1).
RAID 5
RAID 5 pada dasarnya sama dengan RAID 4, namun dengan pariti yang terdistribusi. Yakni, tidak menggunakan harddisk khusus untuk menyimpan paritinya, namun paritinya tersebut disebar ke seluruh harddisk. Kebutuhan harddisk minimalnya juga sama, 3 (n+1 ; n >1).
Hal ini dilakukan untuk mempercepat akses dan menghindaribottleneck yang terjadi karena akses harddisk tidak terfokus kepada kumpulan harddisk yang berisi data saja.
RAID 6
Secara umum adalah peningkatan dari RAID 5, yakni dengan penambahan parity menjadi 2 (p+q). Sehingga jumlah harddisk minimalnya adalah 4 (n+2 ; n > 1). Dengan adanya penambahan pariti sekunder ini, maka kerusakan dua buah harddisk pada saat yang bersamaan masih dapat ditoleransi. Misalnya jika sebuah harddisk mengalami kerusakan, saat proses pertukaran harddisk tersebut terjadi kerusakan lagi di salah satu harddisk yang lain, maka hal ini masih dapat ditoleransi dan tidak mengakibatkan kerusakan data di harddisk bersistem RAID 6.
Sumber:
1. http://kucingbasah.blogdetik.com/2009/11/19/sepintas-lalu-tentang-raid/
2. http://pcgamer.co.id/forum/index.php?topic=326.0

4.3 Security data pada server


Server merupakan sebuah perangkat/mesin dengan sistem komputer untuk memberikan fasilitas layanan tertentu di dalam jaringan komputer. Aspek keamanan menjadi faktor yang penting untuk diperhatikan pada sebuah server dikarenakan berbagai serangan dari luar sering diluncurkan dengan memanfaatkan vulnerability yang ada pada server. Serangan yang timbul dapat mengakibatkan hal yang fatal terhadap bisnis suatu organisasi. Oleh karena itu, perlu dilakukan proses “hardening” untuk menambah tingkat keamanan pada server. Istilah “hardening” secara umum berarti melakukan proses pengerasan suatu lapisan yang lembut sehingga lapisan tersebut menjadi lebih kuat dan lebih tahan terhadap kerusakan. Prinsip itu juga yang digunakan untuk menerapkan hardening server yang berpengaruh terhadap keamanan server. Sebelum melanjutkan pembahasan mengenai hardening konfigurasi pada aplikasi server, akan dibahas terlebih dahulu pengertian server, jenis-jenis server, dan bagaimana melakukan hardening.
Pengertian Server
Secara garis besar, server dibagi menjadi 3 macam yaitu:
1. application server
application server (server aplikasi) yang juga disebut appserver merupakan server yang mempunyai sebuah program untuk menangani berbagai operasi aplikasi antara user dan database (misalnya aplikasi bisnis dari organisasi). Berikut adalah ilustrasi operasi application server.

2. Data Server
Data server atau sering disebut database server merupakan server yang menyediakan layanan database dan melakukan beberapa task seperti analisa data, penyimpanan data, pengarsipan data, manipulasi, dan beberapa fungsi lainnya yang menggunakan arsitektur client/server.
3. proxy server
Proxy server dapat dikatakan sebagai server penghubung antara aplikasi pada klien dan aplikasi pada server yang ada diluar (atau server yang ingin diakses oleh client).
Mengapa server application?
Menurut Curtis Coleman, MSIA, CISSP, CISM direktur Global IT Governance dari perusahaan Seagate Technology [2] mengatakan bahwa kerawanan yang paling berbahaya pada perusahaan besar yang memiliki jaringan luas adalah pada aplikasinya. Sistem keamanaan telah  banyak terfokus pada antivirus dan keamanan jaringan, tapi bagian yang amat merisaukan adalah  transaksi bisnis yang memiliki data yang sangat berharga (valuable). Sistem keamanan pada Aplikasi merupakan tren masa depan yang dapat dikatakan sebagai era baru setelah era anti Virus dan era keamanan jaringan.
Penggunaan firewall dan SSL bukan menjadi jaminan bahwa pengamanan data dan aplikasi dapat terjaga dengan baik. Menurut [2], berdasarkan hasil pengecekan dengan menggunakan AppScan didapatkan lebih dari 1000 aplikasi yang telah memiliki firewall dan solusi enkripsi memiliki tingkat kerawanan rata-rata 98%. Oleh karena itu mengapa keamanan aplikasi merupakan obyek yang sangat penting, diantaranya:
1. frekuensi kejadian; sebanyak dua dari 4 website pada perusahaan bisnis rawan untuk dibobol.
2. Tingkat penembusan; sebanyak 75% para hacker dapat menembus sampai ke level aplikasi
3. Tidak terdeteksi; Perangkat untuk QA testing tidak didesain dengan baik untuk mendeteksi lubang keamanan pada suatu aplikasi.
4. Kerugian yang berakibat fatal; Keamanan pada aplikasi tidak dapat dijaga dengan baik rentan terhadap serangan dan eksploitasi. Ketika telah terjadi eksploitasi, maka kegiatan bisnis dari suatu perusahaan akan terganggu yang akan mengakibatkan customer value dan kepercayaan customer menjadi semakin menurun. Hal ini akan sangat berdampak terhadap performa perusahaan itu sendiri.
Kerentanan pada Aplikasi
Menurut Eugene Lebanidze [3] ada 10 besar kerawanan pada aplikasi, yaitu:
1. Unvalidated Input
   Unvalidated input adalah jenis kerawanan yang cukup sering terjadi sehingga akan menimbulkan masalah/kerusakan yang sangat serius. Semua aplikasi berbasis web harus dipastikan dapat menangani permasalahan unvalidated input sehingga menghindari adanya unauthorized user. Jika aplikasi tidak dapat memvalidasi dengan baik, maka ketika penyerang mempunyai kesempatan untuk masuk, komponen aplikasi bagian belakang seperti database dapat diserang dengan mudah. Beberapa poin pada kerawanan pertama:
HTTP request dari browse ke web apps
Bentuk masukan dalam aplikasi Web adalah URL, Querystring, From Fields, HIdden Fields, Cookies, Headers. Palikasi web menggunakan informasi ini untuk generate halaman web.
Attacker dapat mengubah semua jenis request
2. Broken Access Control
   Access Control yang baik dapat mencegah adanya unauthorized user mengakses informasi maupun data perusahaan. Akan tetapi ketika Access Control ini diasalahgunakan atau tidak berjalan dengan baik maka penyerang/unautorized user dapat mengakses informasi sehingga mengganggu CIA (Confidentiality, Integrity, Availability) dari suatu data maupun informasi itu sendiri. Kunci untuk menangani kerawanan ini melalui kebijaksanaan untuk access control dan dapat dilakukan dengan menggunakan two-way authentication.
3. Broken Authentication dan Session Management
4. Cross Site Scripting
5. Buffer Overflow
6. Injection Flaws
7. Improper Error Handling
8. Insecure Storage
9. Denial of Service
10. Insecure Configuration Management
Beberapa Teknik Hardening Server
Pentingnya menjaga keamanan jaringan maupun server harus dipahami oleh semua elemen di perusahaan sehingga timbulnya “awareness” terhadap permasalahan keamanan dan apa saja yang menimbulkan kerentanan terhadap sistem keamanan tersebut. Berikut adalah beberapa teknik untuk melakukan server hardening:
– Gunakan data encryption untuk komunikasi
– Hindari penggunaan protokol yang tidak aman yang mengirim informasi atau password dalam bentuk plain text (misalnya UDP)
– Hindari penggunaan software yang tidak diperlukan pada server
– Upgrade OS yang digunakan terutama security patches.
– Akun user sebaiknya memiliki password yang cukup kuat dan lakukan penggantian password secara berkala dan tidak menggunakan kembali password yang pernah digunakan.
– Kunci akun ketika terjadi event dimana terlalu banyak terjadi failure login.
– SSH hardening :
– ubah port dari default menjadi non-standard
– Disable root login secara langsung.  Mengubah lebel menjadi root hanya jika dibutuhkan.
– Layanan yang tidak dibutuhkan sebaiknya dinonaktifkan.
– Hardening sysctl.conf
– Server hardening dengan melakukan instalasi Root Kit Hunter dan ChrootKit hunter.
– Minimalisasi membuka port jaringan menjadi hanya yang dibutuhkan saja
– Instal Logwatch dan review logwatch email setiap hari. Hal ini untuk menginvestigasi jika terjadi aktivitas yang berbahaya pada server
– Gunakan firewall, IPS, dan IDS untuk menambah keamanan pada server
– Instal Linux Socket Monitor untuk mendeteksi ketika adanya socket baru yang dibuat pada sistem. Pembuatan socket baru dapat mengungkapkan aktivitas hacker pada sistem.
– Batasi akses pengguna sehingga hanya dapat mengakses yang dibutuhkan saja.
– Monitor log server
Software untuk melakukan hardening.
1. Basille Linux
Program hardening Bastille mengunci OS, secara aktif melakukan konfigurasi sistem untuk meningkatkan keamanan dan mengurangi  kerentanannya.
Bastille mensupport Red Hat (Fedora Core, Enterprise, and Numbered/Classic), SUSE, Debian, Gentoo, dan Mandrake dengan HPUX.
User/administrator diperbolehkan untuk memilih cara malakukan hardening pada OS.  Pada setting default hardeningnya, Bastille akan menanyakan apakah user memiliki pertanyaan, menjelaskan topic akan pertanyaan tersebut, dan membuat kebijakan berdasarkan jawaban user. Kebijakan tersebut akan diterapkan ke sistem. Dalam mode assessmentnya, Bastille membuat laporan yang dapat digunakan user untuk mempelajari lebih lanjut mengenai setting keamanan yang digunakan dan juga memberikan informasi ke user mengenai setting mana yang perlu diperketat.
2. JASS untuk Solaris systems
SolarisTM Security Toolkit, yang dikenal juga dengan JumpStartTMArchitecture and Security Scripts (JASS) toolkit, menyediakan mekanisme yang fleksibel dan ekstensibel untuk meminimasi, melakukan hardening, dan mengamankan sistem Solaris Operating Environment systems. Goal utama pengembangan toolkit ini adalah untuk menyederhanakan dan meng-otomatis-kan proses pengamanan Solaris system.
Toolkit ini dikembangkan oleh anggota Enterprise Engineering and Professional Services teams, yang berdasarkan best practices keamanan yang telah diuji, dan pengalaman pengguna yang dikumpulkan selama bertahun-tahun.
3. Syhunt Apache/PHP Hardener
Syhunt Apache/PHP Hardener digunakan untuk melakukan evaluasi ancaman keamanan dan identifikasi countermeasure yang sesuai pada tahap konfigurasi web server, sehingga menyediakan proteksi ekstra terhadap web hacking dan merupakan level tertinggi keamanan aplikasi. Berikut ini merupakan fitur utama Syhunt.
Memeriksa konfigurasi keamanan web server dengan melakukan hampir 50 pemeriksaan keamanan
Menyediakan analisis heuristic file konfigurasi web server untuk mendeteksi error pada konfigurasi keamanan
Men-support file konfigurasi Apache dan PHP
Memproduksi laporan HTML yang simple dan mudah dimengerti
Melakukan update secara otomatis.


Referensi:
[1]  System Hardening Services [Online]. Available : http://www.secure-bytes.com/hardening+services.php
[2]  Coleman Curtis. Case Study: An Evolution of Putting Security into SDLC. Available: http://www.owasp.org/docroot/owasp/misc/COLEMAN-Putting_Security_IntoSDLS-OWASP_v2.ppt
[3]  Lebanidze Eugene.  Securing Enterprise Web Application at the Source. Available: http://www.owasp.org/docroot/owasp/misc/Securing_Enterprise_Web_Applications_at_the_Source.pdf
[4]  Akhmad Agus, et al. Sistem Keamanan pada Pengembangan Sistem Informasi. Available: http://directory.umm.ac.id/SI_UKM/125M-07-final1.0.pdf