KEAMANAN KOMPUTER S1SI AMIKOM YOGYAKARTA Pertemuan 3 Aplikasi dan Jaringan Serangan Serangan pada aplikasi • Serangan yang menargetkan aplikasi – – – – Kategori serangan terus berkembang Serangan pada aplikasi web Serangan di sisi klien Serangan Buffer overflow • Zero day attacks – Mengeksploitasi kerentanan yang belum diketahui – Korban tidak memiliki waktu untuk mempersiapkan diri atau mempertahankan diri Serangan Pada Aplikasi Web • Saat ini aplikasi berbasis web merupakan elemen penting dari sebuah organisasi • Pendekatan untuk mengamankan aplikasi berbasis Web – Memperkuat pertahanan server Web – Melindungi jaringan Infrastruktur Aplikasi berbasis Web Serangan Pada Aplikasi Web • Serangan pada aplikasi Web yang umum dilakukan – – – – Cross-site scripting SQL injection XML injection Command injection / directory traversal Keamanan Aplikasi Berbasis Web Cross-Site Scripting (XSS) • Menyuntikkan script ke dalam server aplikasi Web – Serangan diarahkan langsung ke klien XSS • Ketika korban mengunjungi situs Web yang telah terinjeksi: – Instruksi berbahaya akan dikirim ke browser korban • Browser tidak bisa membedakan antara kode yang valid dan script yang berbahaya • Persyaratan situs Web yang menjadi target serangan – Menerima “user input” tanpa validasi – Menggunakan tanggapan “input” tanpa dilakukan encoding pada “input” tersebut • Beberapa serangan XSS dirancang untuk mencuri informasi: – Disimpan oleh browser Bookmark yang menerima “user-input” tanpa validasi dan respon tak-di-encode Input yang digunakan sebagai respon SQL Injection • Mengarahkan serangan ke server SQL dengan menyuntikkan perintah • SQL (Structured Query Language) – Digunakan untuk memanipulasi data yang disimpan dalam database relasional • Contoh: lupa kata sandi – Penyerang masuk dengan alamat e-mail yang secara format salah – Respon yang diberikan memungkinkan penyerang mengetahui apakah input divalidasi SQL Injection • Contoh: lupa kata sandi (Lanjutan) – Penyerang memasukkan “field” email pada pernyataan SQL – Pernyataan diproses oleh database – Contoh pernyataan: Fieldlist SELECT FROM tabel WHERE field = 'whatever' atau 'a' = 'a' – Hasil: Semua alamat email pengguna akan ditampilkan Statement SQL injection XML Injection • Markup language – Metode untuk menambahkan “annotations” (penjelasan) ke teks • HTML – Menggunakan tag yang diberi tanda kurung – Memerintahkan browser untuk menampilkan teks dalam format tertentu • XML – Membawa data yang digunakan untuk menunjukkan bagaimana data tersebut ditampilkan – Tidak ada standarisasi untuk sekumpulan tag • Pengguna mendefinisikan tag mereka sendiri XML Injection • Serangan XML – Mirip dengan serangan injeksi SQL – Penyerang mencari situs Web yang tidak menyaring data pengguna – Menyuntikkan tag XML dan data ke dalam database • Xpath injection – Jenis khusus dari serangan XML injection – Upaya untuk mengeksploitasi jalur bahasa kueri XML Command Injection / Directory Traversal • Pengguna web server biasanya dibatasi ke direktori root • Pengguna mungkin dapat mengakses subdirektori: – Tapi tidak parallel atau di tingkat direktori yang lebih tinggi • File sensitif dilindungi dari akses pengguna yang tidak sah – Cmd.exe dapat digunakan untuk memasukkan perintah berbasis teks – Passwd (di Linux) berisi informasi akun pengguna Command Injection / Directory Traversal • Serangan Direktory Traversal – Mengambil keuntungan dari kerentanan perangkat lunak – Penyerang bergerak dari root direktory ke restricted direktory • Serangan Command injection – Penyerang memasukkan perintah untuk dieksekusi di server Client-Side Attacks • Serangan pada aplikasi web adalah serangan pada sisi server (server-side) • Serangan Client-Side menargetkan pada kerentanan dalam aplikasi client – Berinteraksi dengan server yang telah dikompromi – Client memulai koneksi dengan server, dimana serangan dapat terjadi Client-Side Attacks • Drive-by download – Komputer klien yang digunakan, melihat halaman Web – Penyerang menyuntikkan konten ke server Web yang rentan • Mendapatkan akses ke sistem operasi server – Penyerang merangkai frame zero pixel untuk menghindari deteksi visual – Menanamkan dokumen HTML di dalam dokumen utama – Browser klien download script berbahaya – Memerintahkan komputer untuk men-download malware Client-Side Attacks • Manipulasi Header – HTTP header berisi field yang menjadi mencirikan data yang ditransmisikan – Header dapat berasal dari browser Web • Browser biasanya tidak menyertakan header ini • Program pendek penyerang memungkinkan melakukan modifikasi • Contoh manipulasi Header – Referer – Accept-language Client-Side Attacks • Field referal menunjuk ke situs yang menghasilkan halaman Web – Penyerang dapat memodifikasi field ini untuk menyembunyikan fakta bahwa ia berasal dari situs lain – Host halaman Web yang dimodifikasi berasal dari komputer penyerang • Accept-language – Beberapa aplikasi Web meloloskan isi field ini langsung ke database – Penyerang bisa menyuntikkan perintah SQL dengan memodifikasi header ini Client-Side Attacks • Cookies dan Attachment – Cookies menyimpan informasi pengguna tertentu pada komputer lokal pengguna • Situs web menggunakan cookies untuk mengidentifikasi pengunjung yang datang kembali • Contoh informasi yang disimpan dalam cookie – Travel web site menyimpan jadwal rencana perjalanan pengguna – Informasi personal diberikan ketika mengunjungi situs • Hanya situs Web yang membuat cookie dapat membacanya Client-Side Attacks • First-party cookie – Cookie yang dibuat oleh pengguna situs Web saat mengunjungi situs • Third-party cookie – Site advertisers menempatkan cookie untuk merekam preferensi pengguna • • Session cookie – Disimpan di RAM dan berakhir ketika browser ditutup Persistent cookie – Direkam pada hard drive komputer – Tidak berakhir saat browser ditutup • • Cookie aman – Hanya digunakan bila browser mengunjungi server melalui koneksi yang aman – Selalu dienkripsi Flash Cookie – Menggunakan lebih banyak ruang memori dari pada cookie tradisional – Tidak dapat dihapus melalui pengaturan konfigurasi browser Client-Side Attacks • Cookies menimbulkan risiko keamanan dan privasi – Dapat dicuri dan digunakan untuk menyamar sebagai pengguna – Digunakan untuk mengkaitkan iklan – Dapat dimanfaatkan oleh penyerang Client-Side Attacks • Session hijacking – Penyerang mencoba untuk menyamar sebagai pengguna dengan mencuri atau menebak session token • Malicious add-ons – Ekstensi browser menyediakan konten Web multimedia atau interaktif – Active X add-ons memiliki beberapa masalah keamanan Session hijacking Client-Side Attacks • Buffer overflow attack – Proses mencoba untuk menyimpan data ke dalam RAM melampaui fixed-length storage buffer – Data meluap ke lokasi memori yang berdekatan – Dapat menyebabkan komputer menghentikan fungsi tertentu – Penyerang dapat mengubah "return address" • Diarahkan ke alamat memori yang berisi kode malware Serangan Social Engineering • Peniruan – Penyerang berpura-pura menjadi orang lain • • • • Teknisi help desk Teknisi perbaikan Pihak ketiga yang dipercaya Individu yang memiliki otoritas Buffer overflow attack Network Attacks • Denial of service (DoS) – Upaya untuk mencegah sistem melakukan fungsi yang normal – Ping flood attack • Utilitas Ping yang digunakan untuk mengirim sejumlah besar pesan echo request • Menguasai layanan server Web – Smurf attack • Ping request dengan alamat asal yang diubah • Muncul seolah-olah komputer target meminta tanggapan dari semua komputer di jaringan Network Attacks • Denial of service (DoS) (lanjutan). – SYN flood attack • Mengambil keuntungan dari prosedur untuk membangun koneksi • Distributed denial of service (DDoS) – Penyerang menggunakan banyak komputer zombie di botnet untuk membanjiri perangkat dengan requests – Hampir tidak mungkin untuk mengidentifikasi dan memblokir sumber serangan SYN flood attack Interception • Man-in-the-middle – – – – Megintersepsi komunikasi yang sah Menempa respon fiktif ke pengirim Passive attack mencatat data yang ditransmisikan Serangan aktif mengubah isi transmisi sebelum dikirim ke penerima • Replay attacks – Mirip dengan pasif man-in-the-middle attack Interception • Replay attacks (Lanjutan.) – Penyerang membuat salinan transmisi • Menggunakan copy-an tersebut di lain waktu – Contoh: menangkap logon sah • replay attacks yang lebih canggih – Penyerang menangkap pesan jaringan ke server – Kemudian mengirimkan pesan asli tersebut ke server – Mendapatkan hubungan yang sah antara penyerang dan server Poisoning • ARP poisoning – Penyerang memodifikasi alamat MAC dalam cache ARP untuk menunjuk ke komputer yang berbeda Attacks from ARP poisoning Poisoning • DNS poisoning – Domain Name System adalah sistem dasar untuk resolusi nama ke alamat IP – DNS poisoning mengganti alamat DNS untuk mengarahkan komputer ke perangkat lain • Dua tempat DNS poisoning – Local host table – External DNS server DNS poisoning Attacks on Access Rights • Privilege escalation – Mengeksploitasi kerentanan perangkat lunak untuk mendapatkan akses ke data – Pengguna dengan hak akses lebih rendah, fungsi aksesnya dibatasi terhadap pengguna dengan hak akses tinggi – Pengguna dengan tingkatan sama dibedakan hak aksesnya. Attacks on Access Rights • Transitive access – Serangan yang melibatkan pihak ketiga untuk mendapatkan hak akses – Kredibilitas harus digunakan ketika mengakses layanan. • Pengguna yang berbeda memiliki hak akses yang berbeda Tabel 2-5 Dumpster diving item dan kegunaannya Keamanan + Panduan untuk Jaringan Dasar keamanan, Edisi Keempat *