BISA AI - AI For Everyone
Otomatisasi Scan Data Bocor (Bash + Tele API)

Muhammad Farsya Hasibuan

Sosial Media


2 orang menyukai ini
Suka

Summary

Deskripsi Project

Project ini merupakan MVP dari Project RLXDataCheck. Program ini dibuat untuk melakukan pengecekan data secara otomatis melalui program shell script linux yaitu bash, dan OS yang saya gunakan adalah Kali Linux untuk skalabilitas yang lebih mudah dikembangkan, ringan dan keamanan yang cukup baik, saat ini source data user yang saya gunakan adalah data gmail dari pengguna bot RLXDataCheck.

Ada dua menu interaktif yaitu pada administrator untuk manajemen program dan menu untuk pengguna, nanti mereka diminta untuk memasukkan nama lengkap | username gmail | nomor hp. disini saya menyimpan data user dengan file name Users.txt yang dimana menyimpan nama lengkap, gmail, nomor telephone dan Chat ID Telegram. 

Tujuan Project ini adalah sebagai tahap awal pengembangan program yang bisa digunakan user, untuk monitoring data bocor. Di era banyaknya data breach terutama di Indonesia, saya rasa penting bagi kita sebagai user juga harus naik level untuk lebih cerdas dalam menjaga data pribadi. Terutama mengganti password setiap 3/6 bulan sekali, lalu monitoring apakah gmail user ada pada file data breach terbaru yang sudah publicly posted. Sehingga kemungkinan peretasan data user lebih kecil dibanding tidak aware sama sekali.

Description

Latar Belakang

Project ini merupakan bentuk pertanyaan saya terkait apa solusi yang bisa diberikan kepada society, terutama dalam aspek keamanan data, Menurut Website DataBoks Indonesia menduduki Peringkat ke 8th pada the most data-breached country in the world. Hal ini mendorong saya untuk membuat project minimum viable product yang nanti akan saya kembangkan terutama pada UI/UX dan Logika Sistemnya. Serta, mengingat Indonesia merupakan negara ke 4 dengan penduduk terbanyak dan User Tiktok nomor 1 Di dunia serta Indonesia di peringkat pertama sebagai Gmail Market Share di angka 82,6%. Belum semua masyarakat Indonesia yang sejujurnya memiliki kemampuan untuk filterisasi informasi sebagai pengguna media sosial. 

Saya rasa dengan data statistik publik yang ada, Kita sebagai rakyat Indonesia merupakan salah satu sasaran yang mudah di exploitasi. Maka dari itu, pentingnya menjaga keamanan data dari yang paling simple, yaitu akun gmail. Saya rasa masih banyak orang yang password gmail nya adalah gabungan acak dari nama atau tanggal lahir. Hal tersebut memperbesar potensi data kita di retas ataupun masuk kedalam lists gmail dengan password yang mudah diretas. Lantas apa pengaruhnya? Saya rasa dengan metode OSINT ataupun sumber tools yang ada, hal tersebut bisa di mitigasi dengan alert yang bisa memberikan kita update secara real time terkait report apakah gmail kita sudah ada dalam suatu file atau bahkan sudah masuk ke database di OSINT Tools, dan apabila iya, penting bagi kita untuk check keamanan gmail maupun mengganti password secara berkala, namun apabila user memiliki kemampuan untuk mengecek validitas dan sumber databreach tersebut, itu lebih baik lagi.

Hal yang paling dasar adalah ketika kita tidak concern pada keamanan data pribadi, terutama gmail karena gmail merupakan salah satu sumber yang bisa saja take over seluruh akun social media yang terikat dengan gmail apabila tidak ada 2FA dengan nomor hp, dan bisa saja google drive kita berisi mutasi rekening ataupun data-data sensitif lainnya. Dengan program RLXDataCheck yang saya buat, ini bisa menjadi salah satu alternative untuk monitoring keamanan data kita apakah bocor, dan sangat mudah untuk di gunakan seluruh lapisan masyarakat, karena cukup mengisi nama lengkap atau bisa juga hanya mengisi username gmail user. Serta program ini di integrasikan dengan Telegram bot agar memudahkan notifikasi yang langsung direct ke smartphone users.

 

Overview Bash Script

 

Overview Output

 

Penjelasan Program

1. Shebang & Direktori Kerja

  • #!/bin/bash
    Menandakan interpreter yang dipakai yakni Bash.
  • cd "$(dirname "$0")"
    Memastikan script selalu dijalankan dari direktori tempat file berada, jadi semua path relatif (misal users.txt) akan konsisten walau dieksekusi via cron.#!/bin/bash

Edited : setelah saya re iterasi ulang seharusnya saya ketik adalah cd “$(dirname ”$0")" bukan cd “$(dirname ”0")" tapi tidak masalah karena di inisialisasi saya sudah menambahkan direktori yang saya gunakan dan pada settingan cron

 

2. Header & Inisialisasi File & Folder


Header : Yaitu penamaan RLXDataCheck Final version, menu interactive osint monitor, by farsya di kali linux sumber utama shell scripting + telegram bot
USERS_FILE : menunjuk file yang berisi daftar user (format Nama|email|hp|chat_id).
LOG_DIR : adalah folder tempat menyimpan hasil scan per-email.
mkdir -p  : memastikan folder logs ada (buat jika belum).

 

3. Konfigurasi Telegram & User‑Agent

  • TELEGRAM_BOT_TOKEN digunakan untuk mengotentikasi request pesan ke API Telegram.
  • USER_AGENT dipakai oleh curl supaya request HTTP terlihat seperti dari browser—mengurangi kemungkinan diblokir.

 

4. Fungsi send_to_user()

Parameter:

  • chat_id (ID Telegram tuju­an)
  • message (teks yang akan dikirim)
  • curl POST ke endpoint Bot API, menyertakan markdown untuk format pesan.
  • Output > /dev/null supaya tidak muncul di terminal.

 

5. Fungsi check_email_breach()
 

  • Tujuan: deteksi apakah email pernah bocor.
  • curl ... unifiedsearch/$email: memanggil endpoint publik HIBP.
  • Cek "$result" == "BreachDate" : hanya dianggap breach jika respons mengandung tanggal kebocoran.
  • grep -c '"Name"' menghitung jumlah sumber breach.
  • Output dicatat ke file log ($logref), dan fungsi mengembalikan status 0 (safe) atau 1 (breach).

 

6. Fungsi get_last_breach_count()
 

  • Input: path file log (mis. logs/farsyahasibuan_gmail_com.log).
  • grep -c "BREACHED" menghitung baris yang mengandung kata “BREACHED”.
  • 2>/dev/null menekan pesan error jika file belum ada.
  • Validasi: hanya mengeluarkan count kalau angka, atau 0 jika bukan.

 

7. Fungsi run_check() & Menyiapkan File Log & Temporary
 

  • while IFS='|' read -r: Membaca setiap baris users.txt, memecah menjadi empat variabel (fullname, email, phone, chatid) berdasarkan 
  • delimiter |.
  • [[ -z "$email" || -z "$chatid" ]] && continue: Me-skip baris jika email atau chatid kosong.
  • log_file: nama file log per-email, karakter @ dan . diganti _.
  • tmp_log: file sementara di /tmp untuk merekam hasil scan saat ini.
  • echo … > "$tmp_log" menuliskan header waktu (WIB) dan email yang diperiksa.

 

8. Panggil Pengecekan & Hitung Perubahan

  • check_email_breach: mencatat BREACHED atau SAFE ke tmp_log.
  • new_breaches: hitung breach di scan kali ini.
  • prev_breaches: hitung breach dari log sebelumnya. 
  • cp "$tmp_log" "$log_file": ganti log lama dengan hasil terbaru.

 

9. Susun & Kirim Pesan Telegram

  • msg=: membangun string pesan dalam format Markdown, termasuk 5 baris terakhir log (tail -n5)
  • send_to_user "$chatid" "$msg" mengirimkan alert ke masing‑masing chat_id
  • done < "$USERS_FILE": penutup loop, mengambil input dari file users.txt

 

10. Fungsi add_crontab_if_missing()
 

  • CMD_PATH=$(realpath "$0") Mendapatkan path absolut script, sehingga cron akan memanggil lokasi file yang benar.
  • CRON_JOB="*/1 * * * * bash $CMD_PATH --auto" Definisi jadwal cron: setiap menit (*/1), eksekusi script dengan argumen --auto.
  • Cek keberadaan di crontab
  • crontab -l 2>/dev/null menampilkan cron existing.
  • grep -F "$CMD_PATH" mencari apakah job sudah pernah ditambahkan.
  • Jika belum ada ($? -ne 0) Kombinasikan daftar cron lama + CRON_JOB.
  • | crontab - menulis ulang daftar baru ke sistem cron user.
  • Lalu untuk Menampilkan pesan konfirmasi

 

11. Menu Interaktif + Eksekusi

show_menu() Menampilkan daftar pilihan:

  1. Jalankan scan sekarang
  2. Tampilkan semua log
  3. Tampilkan log per email
  4. Keluar

Fungsi : read opt membaca input user & case mengeksekusi fungsi/command sesuai pilihan.

Logika if di akhir “Eksekusi”

  • Mode auto (via cron): jika argumen pertama --auto, langsung run_check tanpa menampilkan menu.
  • Mode interaktif: tambahkan script ke cron (sekali saja), lalu panggil show_menu untuk interaksi manual.

Lantas dengan (Shebang & setup, fungsi inti, crontab, dan menu interaktif), RLXDataCheck menjadi tool Bash yang:

  • Otomatis: cron job terpasang sendiri, jalan setiap menit
  • Interaktif: CLI menu untuk scan manual & cek log
  • Real-time: notifikasi Telegram dikirim setiap scan selesai

 

Dokumentasi Proses Pengerjaan

 

Daftar Isi Folder 

menandakan script, log cron, folder log per-user, dan file daftar pengguna sudah ada

Cek Log Per‐User 

artinya scan manual berhasil, dan file log per‐user terbentuk dengan timestamp WIB

Debug Cron Output 

Ini menandakan bahwa saat cron menjalankan --auto, script tidak berada di direktori yang containing users.txt—sehingga cd tidak dieksekusi dengan benar, dan users.txt gagal ditemukan.

Verifikasi users.txt 

File memang ada, hanya script via cron belum “masuk” ke folder yang sama sebelum membaca.

Crontab Entry 

Cron sudah terdaftar untuk jalan setiap menit, tapi tanpa cd ke direktori script, sehingga error terus terjadi saat mencari users.txt. Namun di akhir, sudah tidak lagi error karena program sudah bisa berjalan dengan menempatkan cron di path direktori yang sesuai

 

Cara Menggunakan Menu Manajemen Admin di rlxdatacheck.sh:

 

Menu 1. Jalankan Scan Sekarang


Pilih 1 lalu tekan Enter.
Script langsung menjalankan run_check() untuk semua user di users.txt.
Muncul output di layar tentang email yang dicek (timestamp + status), dan otomatis mengirimkan ringkasan log ke Telegram.


Output : Menu 1. Jalankan Scan Sekarang (Manual Scan)


Notes : Apabila alert yang diberikan bot merupakan “Email SAFE” maka belum ada data publik terkait kebocoran data yang mengikat akun user, akan tetapi apabila ada data yang bocor, maka akan memberikan output Email BREACHED ($count) *hingga beberapa kali 

Menu 2. Lihat Log Semua User


Pilih 2 lalu tekan Enter.
Perintah cat logs/*.log akan menampilkan isi semua file log user dalam sekali tampil—cukup scroll untuk lihat hasil tiap akun.

Menu 3. Lihat Log Berdasarkan Email


Pilih 3 lalu tekan Enter.
Kamu akan diminta masukkan alamat email (misalnya farsyahasibuan@gmail.com).
Script akan mencari file logs/farsyahasibuan_gmail_com.log dan menampilkannya, atau mengingatkan “Log tidak ditemukan” kalau email tersebut belum pernah dicek.

Menu 4. Keluar


Pilih 4 lalu tekan Enter untuk mengakhiri program dan kembali ke shell.

 

Kesimpulan Penutup & Harapan

Melalui project RLXDataCheck, Project ini berhasil membuktikan bahwa keamanan data pribadi bisa diawasi secara otomatis hanya dengan pemanfaatan script sederhana berbasis Shell. Dengan sistem pemantauan yang berjalan setiap menit dan pemberitahuan langsung ke Telegram, pengguna dapat segera mengetahui apabila ada indikasi kebocoran informasi pribadi hanya dengan statement “Email SAFE” & “Email UNSAFE”. Pemanfaatan fitur crontab menjadikan tools ini berjalan secara rutin tanpa perlu dijalankan manual (walaupun bisa juga secara manual), Program ini cocok diterapkan dalam berbagai kondisi, baik untuk menjaga keamanan data individu maupun tim kecil atau bahkan organisasi.

Kedepannya, besar harapan saya untuk menjadikan ini sebagai project yang berdampak positive bagi society, dan tugas baru untuk memperluas sistem ini dengan integrasi berbagai sumber OSINT lain yang tetap legal dan aman. Kami ingin tool ini mudah diakses oleh siapa saja yang ingin menjaga data pribadinya. Semoga RLXDataCheck bisa menjadi langkah kecil yang bermanfaat besar dalam membangun kesadaran akan pentingnya perlindungan informasi di kondisi exponential growth in technology seperti saat ini."

 

Informasi Course Terkait
  Kategori: Algoritma dan Pemrograman
  Course: Cloud Computing