• Tidak ada hasil yang ditemukan

Keamanan Aplikasi dan Cara Pengamanannya

N/A
N/A
Achmad Khaerudin

Academic year: 2024

Membagikan " Keamanan Aplikasi dan Cara Pengamanannya"

Copied!
28
0
0

Teks penuh

(1)

Keamanan Aplikasi dan Pengembangan Sistem

Oleh : Achmad Khaerudin

Nim : 0203132008

(2)

“Kerawanan yang paling berbahaya pada perusahaan besar yang memiliki jaringan luas adalah pada aplikasinya.”

Curtis Coleman, MSIA, CISSP, CISM

Direktur Global IT Governance,

Seagate Technology Company

(3)

TOP 10 RISK

(4)

KASUS SERANGAN

1. XNUXER aka SCHIZOPRENIC

Pada tanggal 15 April 2004 silam, seorang peretas kawakan dengan inisial Xnuxer atau juga kadang dikenal dengan nama Schizoprenic berhasil temukan lubang di situs TNP-KPU. Dia melakukan uji coba terhadap sistem keamanan di situs Tnp.Kpu.go.id dengan menggunakan XSS (cross site scripting) dari IP 202.158.10.117. Setelah berhasil temukan kelemahan di situs tersebut, pada tanggal 16 April 2004, Xnuxer berhasil menembus sisi pengaman website itu dengan menggunakan SQL Injection.

2. Iqra Syafaat

Sekitar tanggal 09 Juli 2006 lalu, secara tiba-tiba tampilan website resmi

Golkar.or.id berubah. Di halaman depan situs itu, tampak gambar gorila putih yang tersenyum. Di bagian bawahnya terdapat foto artis Hollywood dengan pose yang seronok serta tulisan "Bersatu untuk malu.”

(5)

KASUS SERANGAN

3. Wildan Yani S Hari

Pada tanggal 09 dan 10 Januari 2013 lalu, seorang lulusan SMK Teknik Bangunan dan bekerja di sebuah warnet berhasil melumpuhkan situs presiden Susilo Bambang Yudhoyono, Presidensby.info.

4. Peretasan Bitcoin

Peretasan Bitcoin ini terjadi pada situs penjualan obat Silk Road 2.0 pada Februari lalu. Administrator situs tersebut mengumumkan bahwa sekitar 4.400 Bitcoins senilai 2,6 juta dollar AS habis “ditambang” peretas.

Namun itu bukan satu-satunya peristiwa peretasan Bitcoin. Bulan berikutnya, muncul sebuah kabar tentang upaya peretasan Bitcoin menggunakan Pony botnet. Pelakunya berhasil membajak sekitar 85 dompet virtual dan menambang uang digital senilai 220 ribu dollar AS.

(6)

KASUS SERANGAN

5. Peretasan Sony Pictures Entertainment

pada 24 November 2014. Kelompok peretas yang mengaku sebagai Guardian of Peace (GoP) pun menyebarkan lebih dari 40GB data rahasia perusahaan tersebut. Di antara data yang bocor itu termasuk data medis karyawan, gaji, tinjauan kinerja, bayaran untuk para selebriti, nomor jaminan sosial, serta salinan beberapa film yang belum dirilis.

(7)

6. Penyebaran Data oleh Wikileaks

Minggu 28 November data kabel rahasia Seketaris Depatment dan kedutaan-kedutaan USA telah bocor ke media international, yang mana Gedung Putih telah menyatakan perbuatan tersebut sebagai “ceroboh.”

Pernyataan Julian Assange (kelahiran Australia) pendiri WikiLeaks.org, yang dikeluarkan pada hari Minggu mengatakan, ”Kabel-kabel menunjukkan USA memata-matai negara-negara temannya dan PBB; … menyatakan kontradiksi antara penampilan USA dimuka umum dengan apa yang dikatakan dibalik pintu –pintu tertutup.”

KASUS

SERANGAN

(8)

Penggunaan firewall tidak cukup mengamankan data dan aplikasi karena port tertentu (80 dan 443) bisa terlewati dari firewall. Walaupun sudah mengimplementasikan Firewall dan SSL, kerawanan masih tetap terbuka lebar terutama terhadap aplikasi dan data.

(9)

Menurut Eugene Lebanidze ada 10 besar kerawanan pada aplikasi yakni:

1. Unvalidated Input

Akibatnya seorang user dapat memodifikasi apa yang dikirim ke server melalui HTTP requests dari browser ke web apps, masukan dalam aplikasi Web adalah URL, Querystring, Form Fields, Hidden Fields, Cookies, Headers.

2. Kontrol Akses yang rusak

Pencegahannya adalah membuat kebijaksanaan untuk akses kontrol serta mengimplementasikan akses kontrol secara terpusat.

3. Autentikasi dan Session Management yang rusak

Pencegahannya menjaga identitas tetap rahasia setiap saat dan selalui gunakan session id acak yang disediakan oleh admin

(10)

4. Cross Site Scripting Flaws

Web browser dapat menjalankan kode yang dikirim dari web site server seperti Javascript atau flash sehingga memungkinkan untuk di attack seperti dengan mengirimkan isinya ke pemakai lain.

5. Buffer Overflows

Aplikasi Web membaca semua jenis masukan dari para pemakai dan biasanya bahasa pemrograman C, C++, fortran dan assembly memiliki kerawanan untuk buffer overflows.

6. Injection Flaws

Secara umum penggunaan parameter atau perintah dalam bentuk SQL jangan dilakukan dalam parameter konstan sehingga dapat diketahui oleh attackers.

(11)

7. Improper Error Handling

Penanganan masalah harus dilakukan dengan benar sehingga tidak menimbulkan efek lainnya yang membahayakan seperti Out of memory, too many users, timeout, db failure, authentication failure, access control failure, bad input.

8. Insecure Storage

Penggunaan kriptografi untuk menyimpan informasi yang sensitif dan menggunakan algoritma yang mudah digunakan dan terintegrasi dengan baik.

(12)

9. Denial of Service

Banyak web site diijinkan untuk melakukan administrasi secara remote sehingga membantu sekali dalam pekerjaan tapi disisi lain menjadikan kerawanan, pisahkan admin account untuk aplikasi dan aplikasi utama, dan batasi scope.

10. Insecure Configuration Management

Semua web dan aplikasi server memiliki pilihan konfigurasi keamanan yang relavan, seperti default accounts & password dan hal lain yang terkait. Oleh karena itu perlu menjaga supaya patches benar-benar update.

(13)

Perencanaan (Planning)

Analisa (Analyze)

Perancangan (Design)

Implementasi (Implementation)

SDLC

(14)

1. Economy of mechanism: Lakukanlah desain sederhana dan sekecil mungkin

2. Fail-safe defaults: Hak akses diberikan sesuai dengan permisi daripada tanpa ada pengecualian

3. Complete mediation: Setiap akses dan obyek harus dicek otoritasnya 4. Open design: Desain sebaiknya tidak dirahasiakan

5. Separation of privilege: Bila memungkinkan, mekanisme proteksi memerlukan paling tidak 2 kunci untuk membukanya, hal ini akan lebih aman daripada hanya mempunyai satu kunci

6. Least privilege: Setiap program dan setiap pemakai dari sistem sebaiknya mengoperasikan dengan menggunakan minimal hak akses yang dibutuhkan untuk menyelesaikan pekerjaannya

7. Least common mechanism: Meminimalkan jumlah mekanisme umum untuk para pemakai

8. Psychological acceptability: Hal ini penting bahwa human interface didesain untuk kemudahan penggunaan sehingga para pemakai secara rutin dan otomatis dapat mengaplikasikan mekanisme keamanan secara benar.

PLANNING

(15)

Bagaimana mengidentifikasi dan mengevaluasi ancaman

Menggunakan threat modeling untuk secara sistematis mengidentifikasi ancaman jauh lebih baik dari pada menerapkan keamanan secara sembrono.

Bagaimana membuat desain yang aman

Sebaiknya menggunakan prinsip-prinsip desain yang sudah dicoba dan teruji dan fokus pada area kritis dimana butuh pendekatan yang benar dan sering terjadi kesalahan, harus pula memberi perhatian yang serius pada isu-isu deployment termasuk topologi, infrastruktur jaringam, kebijakan keamanan, dan prosedur.

Bagaimana memeriksa arsitektur dan desain

Desain aplikasi harus diperiksa dalam hubungannya dengan lingkungan deployment dan kebijakan kemanan yang terkait.

ANALYZE

(16)

Bagaimana menulis kode yang aman

Kurangi profil serangan dengan mengikuti prinsip-prinsip desain object oriented, lalu gunakan keamanan akses kode untuk membatasi kode mana bisa memanggil kode lainnya.

Bagaimana menangani eksepsi yang aman

Jangan pernah mengungkapkan informasi tentang sistem internal atau aplikasi seperti stack traces, SQL statement fragments, dan sebagainya.

Pastikan informasi jenis ini tidak sampai pada end user atau keluar dari batas yang terpercaya.

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.

DESIGN

(17)

Bagaimana mengamankan alat kerja pengembang

Bagaimana menulis least privileged code

Kita dapat membatasi kode apa yang bisa dijalankan berdasarkan account.

Bagaimana membatasi 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. Jika tidak dapat menggunakan stored procedures, sebaiknya menggunakan SQL statement dengan parameter. 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.

DESIGN

(18)

Bagaimana mengatur rahasia

Jangan lupa enkripsi informasi rahasia dengan Data Protection Application Programming Interface (DPAPI) untuk menghindari isu manajemen key.

Bagaimana memanggil unmanaged code secara aman

Gunakan permintaan izin tertentu untuk menjaga akses ke unmanaged resources sebelum menyatakan izin unmanaged code.

Bagaimana melakukan validasi input yang aman

Bagaimana 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.

DESIGN

(19)

IMPLEMENTATION

(20)

Bagaimana mengimplementasikan patch

Jika menggunaka produk microsoft, dapat menggunakan Microsoft Baseline Security Analyzer (MBSA). Jangan lupa melakukan backup server sebelum memasang patch, uji coba terlebih dahulu sebelum install ke server produksi.

Bagaimana mengamankan database server

Gunakan metodologi umum untuk evaluasi account, protokol, service, share, file dan direktori, serta registry. Evaluasi juga pendekatan otorisasi yang digunakan dalam login, user, dan role.

MAINTENANCE

(21)

Bagaimana mengamankan application server

Evaluasilah account, protokol, service, share, file dan direktori, serta registry. Gunakan Internet Protocol Security (IPSec) atau SSL untuk mengamankan saluran komunikasi antara webserver dan application server, antara application server dan database server. Periksa keamanan dari Enterprise Services applications, Web services, dan remoting applications.

Bagaimana mengamankan Web Service

Gunakan Web Services Enhancement 1.0 untuk Microsoft NET (WSE) untuk menerapkan solusi keamanan yang sesuai dengan standar WS- Security. Lewatkan token otentikasi di Simple Object Access Protocol (SOAP) header. Gunakan enkripsi XML untuk memastikan bahwa data sensitif tetap private. Gunakan tanda tangan digital untuk integritas pesan.

MAINTENANCE

(22)

MAINTENANCE

Bagaimana mengamankan

Enterprise Service

Konfigurasi aplikasi server untuk dijalankan menggunakan account least privileged. Aktifkan COM + berdasarkan aturan pengamanannya.

Untuk mengamankan lalu lintas remote service, gunakan saluran terenkripsi IPSec atau menggunakan panggilan prosedur jauh terenkripsi (RPC) . Batasi port Distributed COM (DCOM) yang dialokasikan secara dinamis atau menggunakan pemetaan static untuk membatasi jangkauan port tertentu.

(23)

Bagaimana mengamankan Session State

Amankan saluran komunikasi menggunakan SSL atau IPSec. Jika Anda menggunakan SQL Server state store, gunakan Windows otentikasi ketika Anda terhubung ke state store, dan batasi login dalam database. Jika Anda menggunakan ASP.NET state service, gunakan account least privileged untuk menjalankan layanan, dan pertimbangkan mengubah port default.

Bagaimana mengatur konfigurasi aplikasi secara aman

Administrasi secara remote harus dibatasi atau bahkan dihindari. Otentifikasi yang kuat harus ada untuk interface administrasi. Batasi juga akses ke informasi konfigurasi yang tersimpan.

Bagaimana mengamankan dari serangan denial of service

Pastikan konfigurasi TCP/IP stack di server cukup kuat untuk menjaga dari serangan seperti SYN floods. Buat konfigurasi pada server dengan membatasi permintaan yang aman seperti POST dan GET serta hindari permintaan PUT.

MAINTENANCE

(24)

Bagaimana membatasi file I/O

Kita dapat membuat kebijakan code access security untuk memastikan sebuah perintah atau seluruh aplikasi dibatasi pada hak akses terhadap sistem file tertentu. Kebijakan tersebut juga bisa dibuat untuk menentukan bagaimana cara mengakses sistem file tertentu.

Bagaimana melakukan remote administration

Untuk melakukan administrasi secara remote, sebaiknya menggunakan saluran yang terenkripsi dan membatasi komputer mana yang dapat digunakan untuk melakukan adminstrasi ke server secara remote. Batasan yang bisa dibuat misalnya alamat IP, alamat MAC, user account, dsb.

MAINTENANCE

(25)

SIX XIGMA

TOOLS

(26)

DIAGRAM FISHBONE TOOLS

(27)

CAUSE EFFECT TOOLS

(28)

DAFTAR PUSTAKA

 https://rms46.vlsm.org/2/130.pdf

 https://zeinsakti.wordpress.com/2014/04/09/sistem-keamanan-pada- pengembangan-sistem-informasi-untuk-usaha-kecil-dan-menengah- ukm/

 http://directory.umm.ac.id/SI_UKM/125M-07-final1.0.pdf

https://simponi.mdp.ac.id/materi201120121/.../SI216-021017-868- 13.ppt

 http://keamanan-ecommerce.blogspot.co.id/

 http://iainjambi.ac.id/indrawata/2015/11/24/keamanan-sistem- informasi/

Gambar

DIAGRAM FISHBONETOOLS

Referensi

Dokumen terkait

Dari hasil uji coba yang dilakukan dapat ditarik kesimpulan bahwa aplikasi ini dapat membantu administrator dalam melakukan remote pada jaringan komputer melalui

1. Aplikasi yang dibuat pada Tugas Akhir ini telah dapat digunakan untuk mendukung sebuah sistem yang dapat melakukan monitoring dan administrasi suatu server

 Super Computer , adalah komputer yang berukuran sangat besar yang terdiri dari berbagai komputer dan digunakan untuk melakukan kegiatan yang membutuhkan

Akses remote dilakukan dengan menggunakan aplikasi seperti telnet, rsh, rlogin dan ssh dengan cara melakukan autentikasi ke mesin remote (yaitu mesin atau

Pada pengujian ini digunakan perangkat lunak Filezilla yang merupakan sebuah perangkat lunak yang mendukung FTP klien yang dapat digunakan untuk akses atau remote ke

Jika Gammu adalah perangkat lunak komputer berbasis perintah teks (command line), maka Wammu adalah perpanjangan tangan dari Gammu yang digunakan untuk mengelola

Remote Access VPN melakukan proses komunikasi data yang menggunakan protokol SSL, akan melakukan enkripsi terhadap kunci dan enkripsi terhadap proses transfer data

SSH dapat digunakan untuk login secara aman ke remote host atau menyalin data antar host, sementara mencegah man-in-themiddle attacks (pembajakan sesi) dan DNS spoofing