Penjelasan Mengenai Serangan Logika Bisnis

Penyerang tidak selalu merusak kode Anda untuk mencuri uang.

Banyak pengembang menghabiskan waktu berbulan-bulan untuk mengamankan API dan enkripsi. Mereka fokus untuk menghentikan SQL injection atau XSS. Kemudian, seorang penyerang mencuri dana tanpa merusak satu pun kontrol keamanan.

Ini adalah serangan logika bisnis.

Aplikasi bekerja persis seperti yang dirancang. Penyerang hanya menggunakan aturan Anda sendiri untuk melawan Anda.

Bayangkan sebuah brankas bank. Sebagian besar pengujian keamanan memeriksa apakah pintunya kuat. Pengujian logika bisnis mengajukan pertanyaan yang berbeda. Bagaimana jika seseorang meyakinkan penjaga untuk membukakan pintu bagi mereka?

Brankasnya berfungsi. Prosesnya gagal.

Berikut adalah tiga cara penyerang menyalahgunakan logika perbankan:

  1. Melewati Masa Tunggu Bank sering kali mewajibkan masa tunggu 24 jam setelah menambahkan penerima baru. Hal ini untuk mencegah pencurian cepat. Seorang penyerang mungkin menemukan endpoint API yang melewati pemeriksaan ini. Mereka melewati pembatasan UI dan memindahkan uang secara instan.

  2. Menembus Batas Transaksi Sebuah bank mungkin menetapkan batas harian sebesar 50.000. Jika kode hanya memeriksa setiap transaksi secara individual, penyerang dapat mengirimkan lima transfer masing-masing sebesar 49.000. Setiap transaksi terlihat valid. Total jumlahnya melebihi batas, tetapi sistem tidak menyadarinya.

  3. Penyalahgunaan Hadiah Banyak aplikasi memberikan cashback untuk pembayaran tagihan. Seorang penyerang mungkin membayar tagihan lalu segera membatalkannya. Jika sistem tidak mencabut hadiah tersebut, penyerang dapat membuat siklus untuk mengumpulkan cashback tanpa henti.

Mengapa pemindai otomatis melewatkan hal ini?

Pemindai mencari celah teknis seperti malware atau injeksi. Sebuah pemindai melihat transfer yang berhasil dan mengembalikan status 200 OK. Ia menganggap semuanya baik-baik saja.

Seorang penguji manusia bertanya: Haruskah transfer ini terjadi sama sekali?

Untuk menemukan celah ini, berhentilah bertanya apakah sebuah fitur dapat diretas. Mulailah bertanya apakah sebuah fitur dapat disalahgunakan.

Periksa area berikut:

  • Bisakah pengguna melewati langkah verifikasi?
  • Bisakah pengguna mengubah kepemilikan sebuah ID?
  • Bisakah masa tunggu dilewati melalui API?
  • Apakah batasan diterapkan pada jumlah total atau hanya per klik?
  • Bisakah hadiah dipicu berkali-kali?

Tim keamanan elit tidak hanya membuat use case. Mereka membuat abuse case.

Alih-alih menguji "Pengguna mentransfer uang," ujilah "Penyerang mencoba 500 transfer kecil untuk melewati batas."

Pertanyaan kedua menemukan risiko yang sebenarnya.

Sumber: https://dev.to/arashad_dodhiya_0e4bdba5a/business-logic-attacks-explained-using-a-banking-app-27hj