Sitemap

Epsilon

4 min readOct 9, 2025

--

Langit di atas Jakarta sudah lama menjadi hitam pekat, namun lampu monitor di ruang server milik e-commerce raksasa JayaBeli masih menyala terang.
Suara kipas pendingin berpadu dengan dengung listrik yang monoton irama malam yang hanya dimengerti oleh para penjaga logika.

Aruna, Lead Developer berusia 28 tahun, menyandarkan punggung ke kursi kerjanya. Di depannya, layar penuh kode backend yang bersih dan terstruktur hasil kerja keras enam bulan terakhir.

“API pembayaran sudah diuji seribu kali, Aruna. Nggak ada celah. aku jamin,”
ujar Deva, junior developer, sambil menyesap kopi dingin yang sudah kehilangan rasa.

Aruna tersenyum tipis.

“Dev, nggak ada yang namanya nggak ada celah. Yang ada cuma celah yang belum ditemukan.”

Ia menggeser layar ke dasbor keamanan. Semua indikator hijau: WAF aktif, rate limit stabil, input validation solid.
JayaBeli tampak seperti benteng digital yang nyaris sempurna.

Jam menunjukkan 02.00 dini hari.
Aruna berdiri, mematikan lampu meja, dan berkata pelan,

“Sudah cukup untuk malam ini.”

Ia yakin sistem akan tenang sampai pagi.

Masih malam, 02.30.
Sementara Aruna baru menyalakan mesin mobilnya untuk pulang, di sebuah apartemen di pinggiran kota, seseorang baru saja memulai “hari kerja”-nya.

Namanya Senja.

Rambutnya dikuncir asal, hoodie abu tergantung di kursi.
Di depan laptop dengan wallpaper hitam polos, jari-jarinya menari di atas keyboard cepat, tapi tenang.
Ia seorang pentester, dan malam ini ia memilih peran yang sedikit lebih gelap: attacker.

Targetnya: JayaBeli.

“Bukan untuk merusak,” gumamnya pelan,
“tapi untuk membuktikan… bahwa setiap logika manusia selalu punya titik balik.”

Ia membuka tool FingerWeb, yang ia modifikasi dan mengupdate database yang lebih lengkap.

[ CMS/Framework ] : Laravel (10.4)
[ JS Frameworks ] : Vue.js (3.2)
[ Infrastructure ] : Cloudflare

“Laravel 10… solid,” ujarnya pelan,
“tapi bukan framework yang kubidik.”

Fokusnya bukan pada API pembayaran, melainkan logika bisnis keranjang belanja dan validasi harga.
Ia tahu developer seperti Aruna pasti menaruh prioritas tinggi di sisi transaksi, bukan di fitur ringan seperti keranjang.

Senja mulai mengirimkan serangkaian request ke endpoint /cart.

Request pertama -> normal.
Request kedua, harga negatif -> ditolak server.
Request ketiga, ganti mata uang -> masih ditolak.

Ia menyandarkan tubuh, menutup mata sejenak, membayangkan bagaimana Aruna menulis kodenya.

“Integer untuk ID produk… float untuk harga…”
Ia tersenyum samar. “Tapi validasi harga… cuma di sisi klien, kan?”

Ia membuka tab front-end, mem-bypass validasi Vue.js, lalu mengirim request dengan format scientific notation (1e-30).
Harga Rp 5.000.000 kini jadi nyaris nol, secara teknis.

Terminal di hadapannya menampilkan:

[+] Added to cart: MacBook Pro 16"
[+] Price: 0.000000000000000000001

Ia menghela napas puas. Jam menunjukkan 04.10 pagi.

“Waktu yang tepat untuk diam,” ujarnya pelan sambil menutup laptop.

Get Achmad Isma'il’s stories in your inbox

Join Medium for free to get updates from this writer.

Di jendela sebelah, pantulan dirinya tampak samar bayangan di antara gelap dan terang.

07.00 pagi.
Aruna baru duduk di meja kerja ketika layar dasbor keamanan berkedip merah.
Notifikasi masuk bertubi-tubi.

[ALERT] Anomaly detected.
[LOG] Transaction deviation: 98% below average price.

Kopi yang baru ia sruput terasa pahit. Ia langsung membuka log transaksi.

37 keranjang belanja dalam rentang dua jam.
Semua pembelian produk high-value.
Nilai harga hampir nol.

“Sial…” desis Aruna. “Floating Point Precision Error.”

Celah klasik backend gagal memvalidasi input numeric dalam format scientific notation yang valid secara sintaksis tapi ekstrem secara numerik.
Senja tidak menjebol WAF. Tidak menyentuh database.
Ia hanya bermain di batas logika kesalahan matematis yang tak terdeteksi firewall.

“Dia tahu persis di mana harus melihat,” gumam Aruna. “Dia bukan peretas sembarangan.”

13.00 siang.
Tim JayaBeli bekerja tanpa henti. Dalam dua jam, hotfix selesai diterapkan: konversi input harga kini menggunakan strict decimal validation.

Saat Aruna menutup laptopnya, satu email masuk dengan subjek:

“Selamat Pagi, Developer.”

Isi pesannya singkat dan tajam:

Dear JayaBeli Team,

Bug: Floating Point Attack di API /cart
Tingkat Kerentanan: Tinggi

Saran: Gunakan fungsi Decimal atau round() yang ketat di sisi server
untuk setiap input harga, terlepas dari sumbernya.

Salam hormat,
— Bayangan di Balik Dinding Digital

P.S.: Sistem Anda sangat bagus.
Saya butuh enam jam hanya untuk menemukan titik buta ini. Pertahankan.

Deva menatap layar di belakang Aruna.

“Aruna, siapa itu?”

Aruna menutup email itu sambil tersenyum kecil.

“Kompetitor terbaik kita, Dev. Dia baru saja ngajarin sesuatu… bahwa bikin dinding kuat itu nggak cukup. Kita juga harus tahu cara musuh berpikir supaya tahu di mana dia akan meletakkan tangga.”

Ia menatap jendela kaca kantor. Jakarta sore itu dipenuhi pantulan jingga seperti simbol logika yang sedang beristirahat.

20.00 malam.
Cahaya monitor kembali menyala di ruang berbeda.
Senja duduk di depan laptopnya, membuka jendela chat terenkripsi.
Satu pesan masuk dari ID anonim:

[GNT_03] - Laporan diterima. Seranganmu bersih seperti biasa, GNT_05.
Target berikutnya: Bandung.

Senja tersenyum.
Ia mengetik balasan singkat, lalu menatap refleksi wajahnya di layar.

“Bahkan epsilon kecil pun bisa mengguncang sistem besar.”

Ia menutup laptop. Di antara cahaya monitor yang padam, hanya bayangan dirinya yang tersisa.
Bayangan dari GhostNetTeam.

— -Continued

Baca Juga:

← Cerita Sebelumnya : “Puzzle Node”

--

--

Achmad Isma'il
Achmad Isma'il

Written by Achmad Isma'il

Backend Developer | Penetration Testing | Web Security Tester