Pengamanan Data
v Pengertian Kriptografi
·
Menutur Menezes, Oorschot and Vanstone, (1997)., Kriptografi adalah ilmu
yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek
keamanan informasi seperti kerahasiaan data, keabsahan data, integritas data,
serta autentikasi data. Ketika suatu pesan dikirim dari suatu tempat ke tempat
lain, isi pesan tersebut mungkin dapat disadap oleh pihak lain yang tidak
berhak. Agar pesan tidak terbaca, maka pesan tersebut dapat diubah menjadi
suatu kode yang tidak dapat dimengerti oleh pihak lain
·
Menurut Bruce Scheiner dalam bukunya “Applied Cryptography”, kriptografi
adalah ilmu pengetahuan dan seni menjaga message-message agar
tetap aman (secure).
v Penjelasan Penetration Testing
Merupakan metode yang
digunakan untuk mengevaluasi keamanan sistem atau jaringan komputer dengan
melakukan sebuah simulasi penyerangan. Pada metodologi OWASP Web Application
Security Testing difokuskan hanya pada keamanan aplikasi web, dimana prosesnya
melibatkan analisis secara aktif terhadap aplikasi web, untuk menemukan
kelemahan, kecacatan teknis, dan kelemahan. Masalah-masalah keamanan yang telah
ditemukan akan diberikan kepada pemilik sistem, yang disertakan dengan laporan
yang berisi informasi tentang perkiraan dampak yang timbul dan juga
solusi-solusi teknik untuk masalah-masalah tersebut.
Selain itu
penetration testing juga merupakan teknik yang telah umum digunakan untuk
menguji keamanan suatu jaringan. Penetration testing dikenal juga sebagai black
box testing atau ethical hacking. Penetration testing merupakan seni dari
pengujian sistem aplikasi web yang sedang berjalan, tanpa mengetahui apa yang
dikerjakan di dalam (inner workings) aplikasi web itu sendiri. Seorang penguji
berperan sebagai penyerang (attacker) dan berusaha untuk menemukan dan
mengeksploitasi bagian dari aplikasi web yang memiliki sifat mudah diserang
(vulnerabilities).
Selama ini
penetration testing telah terbukti efektif dalam membantu menangani masalah keamanan
pada jaringan. Teknik penetration testing tidak hanya ditujukan pada aplikasi,
tetapi juga dapat diterapkan pada jaringan, dan sistem operasi, dimana tujuan
utama-nya adalah mencari dan kemudian berusaha untuk mengeksploitasi
vulnerabilities yang telah diketahui atau terdeteksi pada evaluasi sebelumnya
yang terdapat dalam teknologi tertentu.
Selain itu terdapat
kelebihan dan kekurangan yang dimiliki oleh pengujian aplikasi web dengan
menggunakan teknik penetration testing, adalah sebagai berikut:
A.
Kelebihan
·
Dapat dilakukan secara
cepat, cukup sedikit waktu yang dibutuhkan (oleh karena itu relatif murah).
·
Relatif dibutuhkan
keterampilan yang lebih rendah bila dibandingkan dengan teknik pengujian yang
dilakukan dengan cara pemeriksaan source code (code reviews).
·
Pengujian dilakukan pada
kode yang sebenarnya sedang digunakan (exposed).
B.
Kekurangan
·
Terlalu terlambat dilakukan
dalam SDLC
·
Hanya menguji dampak depan
saja
v Penetration Testing Work Flow
Untuk melakukan
penetrasi testing aplikasi web, OWASP menggunakan suatu metode (workflow) yang
digunakan untuk mengatasi kemungkinan situasi yang terjadi pada saat proses
penetrasi testing berlangsung, workflow diagram yang digunakan untuk membantu
melakukan penetrasi testing pada suatu aplikasi web, yang terdiri dari beberapa
tahap, diantaranya:
1.
Penetrasi testing dimulai
dengan mengumpulkan informasi yang mungkin mengenai infrastruktur dan aplikasi
yang terlibat. Tahap ini sangat penting, karena jika tidak paham mengenai dasar
teknologi yang terlibat, maka kemungkinan gagal akan terjadi selama tahap
pengujian berlangsung.
2.
Proses pengujian harus
mengikuti semua tahap yang berbeda
3.
Penguji harus berusaha
untuk mengeksploitasi semua kelemahan yang ditemukan. Bahkan jika eksploitasi
gagal dilakukan, penguji akan memperoleh pemahaman lebih mengenai resiko
kelemahan yang ditemukan.
4.
Semua informasi yang
diperoleh dengan cara memeriksa kelemahan aplikasi web (seperti, kesalahan
pemrograman atau pencurian informasi internal) harus digunakan kembali untuk
mengukur semua pemahaman tentang aplikasi dan bagaimana aplikasi tersebut
bekerja.
5.
Jika selama proses
pengujian berlangsung, kelemahan berhasil ditemukan pada aplikasi web, seperti
penyingkapan informasi yang kritis bagi bisnis, maka perusahaan yang
berhubungan harus segera dihubungi untuk memberitahu tentang situasi dan resiko
yang terlibat.
v Metode Penetration Testing
Metode penetration
testing aplikasi web pada metodologi OWASP dilakukan berdasarkan pada dua
pendekatan yaitu black box testing dan gray box testing. Pengujian Black box
berarti penguji tidak memiliki banyak informasi mengenai struktur, komponen dan
bagian internal aplikasi web yang akan diuji. Sedangkan pengujian white box
berarti penguji memiliki sebagian informasi tentang bagian internal aplikasi,
seperti penyedia perangkat lunak (platform vendor), sessionID dan algoritma
yang digunakan. Gambar 11 merupakan gambar yang dihasilkan dari pemodelan
metodologi OWASP yang menunjukkan model yang terdapat pada metodologi OWASP
untuk melakukan penetrasi testing pada suatu aplikasi web, yang terdiri dari:
a.
Tester: Seseorang yang
melakukan aktifitas pengujian
b.
Tools and metodologi: Inti
dari panduan yang diberikan oleh OWASP
c.
Application: Aplikasi web
yang akan diuji.
1.
Tahap Pengujian
Penetrasi Aplikasi Web
OWASP membagi uji
penetrasi aplikasi web ke dalam tiga tahap yaitu, sebelum pengujian (pre-attack
phase), saat pengujian (attack phase) dan setelah pengujian (post-attack
phase).
2.
Pre-Attack Phase
Pre-Attack Phase
merupakan tahap yang dilakukan sebelum penyerangan atau disebut juga dengan
pengujian yang dilakukan dengan cara pasif, dimana penguji berusaha untuk
mengumpulkan informasi yang berhubungan dengan aplikasi dan memahami mekanisme
aplikasi web yang akan diuji.
v Attack Phase
Attack phase adalah
tahap inti dari pengujian aplikasi web yang dilakukan secara aktif, dimana
tahap ini bermanfaat untuk menemukan kelemahan yang terdapat pada aplikasi web,
yang dilakukan dengan cara melakukan simulasi penyerangan pada aplikasi web.
Berikut merupakan keterangan-keterangan yang dibutuhkan selama proses
pengujian:
a.
Kategori
Merupakan kategori
pengujian yang telah didefinisikan oleh OWASP, yang dikenal dengan istilah
OWASP Top 10, yang merupakan sepuluh besar kelemahan yang sering terjadi pada
aplikasi web.
b.
Nomor Referensi
Digunakan untuk lebih
memudahkan proses identifikasi, yang diklasifikasikan berdasarkan pada kategori
pengujian.
c.
Nama Kebutuhan
Nama kebutuhan
(requirement) yang diperlukan untuk dilakukan pengujian. Setiap kebutuhan
diidentifikasi berdasarkan nomor referensi.
d.
Kelemahan Aplikasi
Web (Vulnerability)
Deskripsi kelemahan
aplikasi web yang telah didefinisikan sebelumnya oleh OWASP, dengan mengetahui
kelemahan dapat membantu menentukan bagian mana dari aplikasi web yang perlu
dilakukan perbaikan.
v Post-Attack Phase
Pada tahap ini
dilakukan penilaian terhadap dampak resiko yang ditimbulkan setelah kelemahan
ditemukan pada aplikasi web. Gambar merupakan gambar yang dihasilkan dari
pemodelan metodologi OWASP yang menunjukkan tahap-tahap yang dilakukan selama
proses penetrasi testing. Tahap yang dilakukan setelah tahap pengujian selesai
dilakukan, diantaranya adalah sebagai berikut:
A.
Penilaian
Resiko
Penilaian resiko
merupakan tahap yang dilakukan setelah proses pengujian aplikasi web berhasil
dilakukan. Metode yang digunakan untuk memperkirakan resiko bisnis adalah
dengan menggunakan metodologi OWASP, dimana dengan metode tersebut dapat
diputuskan apa saja yang harus dilakukan terhadap resiko-resiko tersebut.
Dengan mengetahui resiko yang akan terjadi maka banyak manfaat yang akan
diperoleh diantaranya, menghemat waktu dan mengurangi terjadinya resiko yang
lebih serius. Perkiraan resiko pada metodologi OWASP dimulai dengan model:
Likelihood merupakan
kemungkinan penyebab yang digunakan untuk memprediksi akibat yang terjadi pada
suatu aplikasi web. Sedangkan impact adalah dampak atau konsekuensi yang
ditimbulkan akibat serangan yang ditujukan terhadap aplikasi web. Menurut OWASP
terdapat beberapa tahap untuk menentukan dan mengkombinasikan besarnya resiko
yang ditimbulkan akibat eksploitasi kelemahan yang terdapat pada suatu aplikasi
web, tahap-tahap tersebut diantaranya:
1)
Tahap 1: Identifying a Risk
Tahap pertama untuk mengetahui resiko yang terjadi pada sistem keamanan
adalah dengan mendapatkan informasi yang berhubungan dengan Threat agent yang
terlibat, serangan yang digunakan, kelemahan yang diperoleh dan dampak yang
terjadi apabila kelemahan tersebut berhasil di eksploitasi.
2)
Tahap 2: Factors for
Estimating Likelihood
Setelah tahap pertama
dilakukan dan telah digambarkan seberapa serius hal tersebut, maka tahap
selanjutnya adalah melakukan perkiraan likelihood. Proses identifikasi yang
dilakukan adalah dengan memperkirakan likelihood apakah berada pada tingkat
rendah, sedang, atau cukup tinggi.
Di bawah ini
merupakan faktor-faktor yang digunakan untuk memperkirakan seluruh likelihood
diantaranya Threat agent factors dan vulnerability factor.
a.
Threat Agent Factors
Tahap pertama adalah
threat agent, tujuannya adalah memperkirakan kemungkinan yang akan terjadi
apabila proses penyerangan berhasil dilakukan oleh para attacker.
·
Skill Level
Bagaimana kemampuan
teknis yang dimiliki oleh attacker.
·
Motive
Apakah motif attacker
mencari dan memanfaatkan kelemahan yang ada.
·
Opportunity
Berapa banyak keuntungan
yang dapat diperoleh oleh para attacker setelah mengeksploitasi kelemahan yang
ada.
·
Size
Seberapa besar
kelompok attacker tersebut.
b.
Vulnerability Factors
Tahap berikutnya
adalah faktor kelemahan. Tujuannya adalah memperkirakan kemungkinan-kemungkinan
yang terjadi pada bagian kelemahan yang telah ditemukan dan dimanfaatkan.
·
Ease of discovery
Seberapa mudah
attacker menemukan kelemahan yang ada.
·
Ease of exploit
Seberapa mudah para
attacker mengeksploitasi kelemahan tersebut.
·
Awareness
Seberapa baik pengetahuan
yang diketahui tentang kelemahan yang dimiliki oleh attacker.
·
Intrusion detection
Bagaimana cara
eksploitasi dapat di deteksi.
Gambar menunjukkan
faktor-faktor yang digunakan untuk memperkirakan likelihood, dan disertakan
pula nilai pada setiap faktor-nya, dimana nilai-nilai tersebut akan digunakan
sebagai perhitungan besarnya resiko yang terjadi sebenarnya.
3)
Tahap 3: Factors for
Estimating Business Impact
Terdapat dua macam
dampak yang ditimbulkan apabila proses penyerangan berhasil dilakukan. Dampak
pertama adalah dampak teknis yang terjadi pada sisi aplikasi, dan berakibat
pada data yang digunakan dan fungsi-fungsi yang tersedia pada aplikasi web.
Dampak kedua adalah dampak bisnis yang terjadi pada sisi bisnis dan operasional
perusahaan. Faktor untuk memperkirakan dampak yang terjadi diantaranya
technical impact factor dan business impact factor.
a.
Technical Impact
Factors
Dampak teknis terdiri
dari confidentiality, integrity, availability, dan accountability. Tujuannya
adalah untuk memperkirakan besarnya dampak yang terjadi pada sistem apabila
kelemahan yang ditemukan berhasil di eksploitasi.
·
Loss of
confidentiality Seberapa banyak data yang dapat diperlihatkan dan seberapa
sensitif data tersebut.
·
Loss of integrity Seberapa
banyak data yang dapat di korupsi dan bagaimana tingkat kerusakan-nya.
·
Loss of
availability Seberapa besar layanan yang hilang dan seberapa vital hal
tersebut terjadi.
·
Loss of accountability Apakah
aksi yang dilakukan oleh seorang attacker dapat ditelusuri.
Gambar Faktor-faktor
untuk Memperkirakan Likelihood
b.
Business Impact
Factors
Di bawah ini
merupakan faktor-faktor umum yang mungkin terjadi pada sektor bisnis apabila
kelemahan yang ditemukan di eksploitasi:
·
Financial damage Berapa
banyak kerugian finansial yang ditimbulkan dari hasil eksploitasi
·
Reputation
damage Apakah eksploitasi yang dilakukan akan merusak reputasi bisnis.
·
Non compliance Seberapa
banyak ditemukan pelanggaran yang terjadi
·
Privacy violation Berapa
banyak identitas pribadi yang dapat diungkap.
Gambar menunjukkan
faktor-faktor yang digunakan untuk memperkirakan dampak yang terjadi, dan
disertakan pula nilai pada setiap faktor-nya.
4)
Tahap 4: Determining
Severity of the Risk
Pada tahap ini faktor
likelihood dan impact dikombinasikan untuk menghitung seberapa besar resiko
yang akan ditimbulkan. Hal yang dilakukan pada tahap ini adalah menentukan
apakah likelihood mempunyai tingkat LOW, MEDIUM, atau HIGH, dimana ketiga
kategori tersebut berada pada skala nilai 0-9.
Tahap pertama untuk
mengetahui tingkatan likelihood adalah dengan cara menghitung jumlah nilai dari
setiap faktor dibagi jumlah banyaknya faktor. Di bawah ini merupakan contoh
bagaimana menentukan kategori likelihood apakah berada pada tingkat LOW,
MEDIUM, atau HIGH.
A.
Menentukan Besarnya
Resiko
Setelah hasil
perkiraan likelihood dan impact didapatkan, kemudian dilakukan kombinasi antara
keduanya untuk menentukan hasil akhir, yaitu seberapa besar tingkat resiko yang
sebenarnya diperoleh. Untuk menentukan hasil akhir dapat digunakan nilai yang
terdapat pada dampak teknis maupun dampak bisnis.
5)
Tahap 5: Deciding What to
Fix
Setelah mendapatkan
klasifikasi resiko dari aplikasi yang diuji, maka harus diputuskan bagian apa
saja yang akan diperbaiki, pada umumnya organisasi atau perusahaan harus
memperbaiki bagian yang dianggap vital dan menimbulkan kerugian yang cukup
besar saja
v Pengujian Autentikasi
Pengujian autentikasi
dapat dilakukan dari yang mudah (default password) sampai yang membutuhkan
waktu untuk mendapatkan hasil (brute force). Beberapa aplikasi web sering
diserang dengan menggunakan teknik Bypassing Authentication Schema, misalnya
SQL Injection.
Pada umumnya, pengujian
ini dilakukan dengan mengolah hasil temuan dari proses pengumpulan informasi.
Bisa juga dilakukan dengan melakukan Googling. Bahkan bila menggunakan kata
kunci (keyword) yang spesifik seringkali ditemukan nama pengguna atau kata
kunci dalam format .doc, .xls, .pdf, dan ada pula password database yang
ditemukan dalam plain text.
a)
Nomor Referensi
OWASP-AT-001 s/d
OWASP-AT-010
b)
Kebutuhan (Prioritas)
Kategori ini berhubungan
dengan kebutuhan untuk memastikan bahwa informasi betul-betul asli, orang yang
mengakses atau memberikan informasi adalah betul-betul orang yang dimaksud,
atau server yang dihubungi adalah betul-betul server yang asli. Gambar
merupakan gambar yang dihasilkan dari pemodelan pengujian fungsi Autentikasi
menurut OWASP.
v Pengujian Otorisasi
Otorisasi adalah
konsep yang memungkinkan akses pada sumber daya hanya pada seseorang yang telah
diijinkan sebelumnya. Pengujian Otorisasi berarti mengerti bagaimana proses
otorisasi bekerja, dan menggunakan informasi tersebut untuk mengalahkan
mekanisme otorisasi. Otorisasi adalah suatu proses yang dilakukan setelah
proses autentikasi berhasil dilakukan, sehingga penguji akan memeriksa bagian
ini setelah mendapatkan kepercayaan yang valid, yang berhubungan dengan peran
dan hak yang telah ditetapkan. Selama proses pengukuran, harus diperiksa apakah
mungkin terjadi penerobosan skema otorisasi, mencari jalur kelemahan, atau
mencari cara untuk meningkatkan hak yang dilakukan oleh penguji itu sendiri.
Kebutuhan ini
digunakan untuk memastikan bahwa akses pada sumber daya (resources) atau
pengaturan akses kepada informasi hanya digunakan oleh pengguna yang telah
diijinkan sebelumnya. Gambar merupakan gambar yang dihasilkan dari pemodelan
pengujian fungsi Otorisasi menurut OWASP.
v Pengujian Manajemen Sesi
Manajemen sesi atau
identik dengan Session ID digunakan untuk mengingat pengguna, menghilangkan
kebutuhan pengguna untuk melakukan login ulang, dan memungkinkan server untuk
menelusuri pola browsing pengguna. Session ID diperlukan untuk melakukan
hal-hal tersebut. Dan dengan adanya session ID ini dapat dilakukan Session
Hijacking terhadap pengguna yang sedang melakukan akses ke dalam server. Web
aplikasi menggunakan Session ID untuk menyimpan parameter-parameter yang
relevan terhadap pengguna. Session ID akan terus ada pada server selama
pengguna masih aktif atau terhubung dengan server. Session akan otomatis
dihapus jika pengguna logout atau melampaui batas waktu koneksi.
a)
Nomor Referensi
OWASP-SM-001 s/d
OWASP-SM-005
b)
Kebutuhan (Prioritas)
Kategori ini dibutuhkan
untuk mengatasi semua masalah yang berhubungan dengan manajemen sesi yang
digunakan pengguna mulai dari autentikasi sampai dengan pengguna meninggalkan
aplikasi web. Gambar merupakan gambar yang dihasilkan dari pemodelan pengujian
fungsi Manajemen Sesi menurut OWASP.
v Sistem Kriptografi
Suatu sistem kriptografi terdiri dari sebuah
algoritma, seluruh kemungkinan plainteks, cipherteks dan kunci-kuncinya. Sistem kriptografi merupakan suatu fasilitas
untuk mengkonversikan plainteks menjadi cipherteks, dan sebaliknya.
v Metode Enkripsi Untuk Pemrograman Web.
Enkripsi adalah proses
mengamankan suatu informasi dengan membuat informasi tersebut tidak dapat
dibaca tanpa bantuan pengetahuan khusus. Keuntungan dari enkripsi adalah kode asli
kita tidak dapat dibaca oleh orang lain. Berikut ada beberapa macam metode enkripsi
yang dapat anda digunakan pada pemrograman website seperti PHP, ASP dan yang
lainnya.
1. Metode Enkripsi MD2
Message-Digest algortihm 2
(MD2) adalah fungsi hash cryptographic yang dikembangkan oleh Ronald Rivest
pada tahun 1989.
Algoritma dioptimalkan
untuk komputer 8-bit. MD2 yang ditetapkan dalam RFC1319. Meskipun algoritma
lainnya telah diusulkan sejak dulu, seperti MD4, MD5 dan SHA, bahkan sampai
dengan 2004 [update] MD2 tetap digunakan dalam infrastruktur kunci publik
sebagai bagian dari sertifikat yang dihasilkan dengan MD2 dan RSA.
2. Metode Enkripsi MD4
Message-Digest algortihm 4(seri ke-4) yang
dirancang oleh Profesor Ronald Rivest dari MIT pada tahun 1990.Panjangnya
adalah 128 bit. MD4 juga digunakan untuk menghitung NT-hash ringkasan password
pada Microsoft Windows NT, XP dan Vista.
3. Metode Enkripsi MD5
MD5 adalah salah satu dari serangkaian algortima
message digest yang didesain oleh Profesor Ronald Rivest dari MIT (Rivest,
1994). Saat kerja analitik menunjukkan bahwa pendahulu MD5 yaitu MD4 mulai
tidak aman, MD5 kemudian didesain pada tahun 1991 sebagai pengganti dari MD4
(kelemahan MD4 ditemukan oleh Hans Dobbertin). Dalam kriptografi, MD5
(Message-Digest algortihm 5) ialah fungsi hash kriptografik yang digunakan
secara luas dengan hash value 128-bit. Pada standart Internet (RFC 1321), MD5
telah dimanfaatkan secara bermacam-macam pada aplikasi keamanan, dan MD5 juga
umum digunakan untuk melakukan pengujian integritas sebuah file.
4. Metode Enkripsi SHA
SHA adalah serangkaian fungsi cryptographic hash
yang dirancang oleh National Security Agency (NSA) dan diterbitkan oleh NIST
sebagai US Federal Information Processing Standard. SHA adalah Secure Hash
Algoritma. Jenis-jenis SHA yaitu SHA-0, SHA-1, dan SHA-2. Untuk SHA-2
menggunakan algoritma yang identik dengan ringkasan ukuran variabel yang
terkenal sebagai SHA-224, SHA-256, SHA-384, dan SHA-512.
5. Metode Enkripsi RC4
RC4 merupakan salah satu jenis stream cipher, yaitu
memproses unit atau input data pada satu saat. Unit atau data pada umumnya sebuah
byte atau bahkan kadang kadang bit (byte dalam hal RC4). Dengan cara ini
enkripsi atau dekripsi dapat dilaksanakan pada panjang yang variabel. RC4
adalah penyandian stream cipher yang dibuat oleh Ron Riverst pada tahun 1987
untuk pengamanan RSA.
Algoritmanya didasarkan pada permutasi acak.
Algoritmanya didasarkan pada permutasi acak.
6. Metode Enkripsi Base64
Base64 adalah sistem untuk mewakili data mentah
byte sebagai karakter ASCII. Base64 menyediakan 6-bit encoding 8-bit ASCII
karakter. Base64 merupakan format yang dicetak menggunakan karakter, memungkinkan
binari data yang akan dikirim dalam bentuk dan email, dan akan disimpan di
database atau file.
Komentar
Posting Komentar