CategoriesInternetProgramming

Capture API Endpoint yang jalan di Aplikasi Smart Phone menggunakan Postman

API Endpoint hampir pasti digunakan di Aplikasi Android maupun IOS, tentunya misal pembaca adalah program akan penasaran apakah API yang dibuat kita aman dan apakah mungkin ter ekspose. Jawabannya iya sangat mungkin untuk di capture. Kali ini kita akan membahas tuntas salah satu cara untuk Capture atau sniffing API yang jalan di Aplikasi Smart Phone menggunakan Postman. Cara ini bisa dilakukan untuk Optimasi API yang kita Buat untuk menghindari data leaks. Di akhir akan saya jelaskan bagaimana cara untuk menghindari data leaks.

Berikut pengetahuan Dasar sebelum kita Bermain main lebih dalam:

1.  API Endpoint.

API(Application Programming Interface) merupakan sekumpulan (method, fungsi atau URL endpoint) yang digunakan untuk mengembangkan aplikasi lebih dari satu platform yang berbeda. Lalu apa kegunaan API ini? dengan menggunakan API maka kita dapat mengunakan sumber daya dari aplikasi lain tanpa perlu mengetahui bagaimana aplikasi itu dibuat. 

2. Postman.

POSTMAN adalah sebuah aplikasi (berupa plugin) untuk browser chrome, fungsinya adalah sebagai REST Client atau istilahnya adalah aplikasi yang digunakan untuk melakukan uji coba REST API yang telah kita buat. silakan download di link berikut: https://www.postman.com/downloads/

3. Proxy.

Proxy server (peladen proxy) adalah sebuah komputer server atau program komputer yang dapat bertindak sebagai komputer lainnya untuk melakukan request terhadap content dari Internet atau intranet. disini yang akan kita gunaan sebagai proxy server adalah PC.

 

Ayo kita Praktikan untuk lebih mudahnya:

Keterangan :  Pastikan menyiapkan PC dan Smart Phone.  PC dan Smart Phone harus dalam satu Jaringan. PC sebagai alat Capture sedangkan Smart Phone yang di Capture.

  1. Setting Postman klik tombol Capture Request and Cookies.
    Menu untuk Capture Request and Cookies
    Setting seperti Gambar berikut:
    Setting Capture requests an cookies Postman
  2.  Cek terlebih dahulu IP Address PC kita berapa, IP ini yang akan digunakan sebagai Hostname di proxy Smart Phone saya yaitu : 192.168.53.234
    IP Address PC
  3.   Setting Proxy di Smart Phone dengan menggunakan Hostname / IP PC kita dan masukan Port yang sudah kita setting di Postman(saya menggunakan Smart Phone Vivo Y31).
    Setting Proxy di Smart Phone
  4. Setting selesai. Sekarang waktunya Capture API, saya ingin Capture API dari Aplikasi KAI Access, buka aplikasi KAI access.
    Aplikasi KAI Access
  5.            Setelah dibuka dan melakukan beberapa proses di Aplikasi KAI Access, maka semua request akan ter Capture di Postman lengkap dengan URL, Header, Request dan response.

    Hasil Capture API saya taruh di History.
    Salah satu API Endpoint yang saya dapat dari Capturing.

Kesimpulan:

Ini adalah salah satu cara yang saya  gunakan untuk mencari celah / bug dari suatu aplikasi karena kebanyakan aplikasi API tidak ter bundle atau tidak double encrypt dan tidak ada ssl security sehingga sangat mudah data leaks atau rusak, tentu environment dasar dari sisi backend diperlukan untuk memperkuat suatu system. Salah satu cara preventif dasar adalah pastikan URL End Point API menggunakan ssl security dan pastikan data public dan private dibedakan dengan auth.

Semoga Bermanfaat

Wasallamualaikum.

CategoriesInternet

SnapPass – Mengirimkan Password Secara Aman Di Internet

Saat ini, hampir mustahil kita sanggup mengingat-ingat seluruh password yang kita gunakan karena sangat banyaknya aplikasi yang kita gunakan. Menggunakan satu password untuk semua aplikasi tentunya sangat tidak aman, karena bila data password tersebut tercuri dan tersebar di dark web seperti yang dialami oleh aplikasi Zoom, maka kita harus mengganti semua password kita di aplikasi lainnya bila tidak ingin akun kita diambil alih orang lain.

Password Manager

Sebagai solusinya saat ini telah banyak tersedia aplikasi password manager yang dapat digunakan untuk menyimpan password anda secara aman. Enkripsi yang digunakan dalam aplikasi password manager menjamin data yang kita simpan di dalamnya aman dan tidak dapat dibaca orang lain tanpa master password. Kita cukup mengingat satu master password yang sangat kuat untuk mengamankan seluruh password yang ada dalam aplikasi password manager.

Ada banyak aplikasi password manager, mulai dari versi open source hingga cloud based. Contoh aplikasi password manager versi open source adalah:

Kedua aplikasi tersebut menyimpan data dalam format dan ekstensi yang sama (.kdbx) sehingga compatible antara satu dengan yang lain. Adapun contoh aplikasi password manager versi cloud based adalah:

Tapi saya pribadi memilih menggunakan KeePass karena file yang berisi password tersebut disimpan di hard disk komputer saya sendiri, tidak “dititipkan” di server aplikasi password manager seperti LassPass atau Dashlane.

Tiap jenis aplikasi password manager tersebut memiliki kelebihan dan kekurangan masing-masing, silahkan dipilih sesuai dengan kebutuhan Anda.

Bagaimana Cara Mengirimkan Password Yang Aman?

Nah sekarang masuk ke pertanyaan utama kita, ketika kita bekerja dalam satu tim, bagaimana cara yang aman untuk mengirimkan password ke rekan satu tim kita?

Melalui e-mail? Tidak aman karena pengiriman e-mail belum tentu aman (dikirimkan tanpa enkripsi) dan data email tersimpan di sever tanpa enkripsi sehingga bisa dibaca oleh pengelola e-mail server atau NSA (kalau Anda orang penting).

Melalui aplikasi chatting? Meragukan karena pengiriman via aplikasi chatting belum tentu aman dan data chatting tersimpan di sever yang mungkin saja tanpa enkripsi.

Bisa saja kita mengirimkan file .kdbx melalui e-mail atau aplikasi chatting, tapi bagaimana mengirimkan master passwordnya?

Mungkin kita bisa aja melakukan enkripsi e-mail, namun bagaimana kalau e-mail rekan kita tersebut tidak mendukung enkripsi e-mail?

Alternatif lain adalah mengirimkan via aplikasi chatting yang menurut klaim developer-nya telah mendukung end-to-end encryption, WhatsApp misalnya. Tapi bagaimana kalau rekan kita tidak memiliki WhatsApp? Atau kita salah kirim password ke WhatsApp group yang salah (seperti kebodohan yang saya lakukan dahulu)?

Kita perlu sebuah cara pengiriman yang bisa diakses semua jenis device, mulai dari desktop atau mobile, serta praktis digunakan. Sepertinya solusi yang paling sederhana adalah melalui protokol HTTPS. Tapi bagaimana implementasinya?

SnapPass

Gambar 1. Tampilan SnapPass

Setelah membaca beberapa referensi, banyak yang merekomendasikan penggunaan SnappPass. SnappPass adalah aplikasi open source dikembangkan oleh developer Pinterest. Prinsip kerja dari SnappPass sangat sederhana:

  1. Simpan pesan atau password di server dalam keadaan terenkripsi.
  2. Generate sebuah key untuk membuka enkripsi data tersebut dalam bentuk sebuah URL.
  3. Bila URL tersebut diakses, maka pesan rahasia tersebut akan ditampilkan dan dihapus dari server.

Yang perlu kita lakukan hanyalah membagikan URL tersebut ke rekan 1 tim kita via e-mail atau aplikasi chatting.

Nah sekarang akan saya jawab satu persatu pertanyaan yang terlintas di pikiran Anda.

Bagaimana kalau URL tersebut dicuri?

Ya pencuri tersebut dapat membaca pesan rahasia anda, misalnya seperti Gambar 2 ini.

Gambar 2. Pesan rahasia yang telah terbaca

Tapi tunggu dulu, itu artinya rekan satu tim Anda tidak akan menerima pesan tersebut. Ketika dia membuka URL yang anda berikan, tampilan seperti Gambar 3 inilah yang dia dapatkan

Gambar 3. Pesan error ketika membuka URL yang sebelumnya telah dibuka

Ketika rekan satu tim anda akan melaporkan ke Anda bahwa dia tidak bisa membaca pesan rahasia, maka itu artinya pesan anda telah bocor sehingga yang perlu anda lakukan adalah mengganti pesan rahasia (password) yang and bagikan sebelumnya.

Bagaimana dengan keamanan pengiriman data?

Gunakan protokol HTTPS dan pastikan konfigurasi protokol HTTPS anda aman, sehingga pesan Anda kirimkan akan terenkripsi saat pengiriman data. Gunakan https://www.ssllabs.com/ssltest/analyze.html untuk menguji konfigurasi HTTPS yang Anda gunakan.

Gambar 4. Contoh hasil pengujian HTTPS yang bagus oleh SSLLabs

Bagaimana dengan keamanan data yang disimpan di server?

Dalam dokumentasi SnapPass dijelaskan bahwa

Passwords are encrypted using Fernet symmetric encryption, from the cryptography library. A random unique key is generated for each password, and is never stored; it is rather sent as part of the password link. This means that even if someone has access to the Redis store, the passwords are still safe.”

sehingga data yang (sementara) disimpan di dalam server akan aman.

Bagaimana cara instalasi SnapPass?

Instalasi SnapPass tidaklah rumit, cukup cloning repository SnapPass dari github

$ git clone https://github.com/pinterest/snappass

masuk ke dalam directory snappass

$ cd snappass

lalu jalankan snappass menggunakan Docker

$ docker-compose up -d

maka anda sudah bisa membukanya melalui web browser dan port 5000

http://localhost:5000

Namun Anda tetap memerlukan bantuan System Administrator untuk melakukan pemasangan SnapPass, karena SnapPass memerlukan Docker dan HTTPS agar berjalan dengan benar dan aman.

Selamat mencoba.

Artikel ini ditulis saat wabah Covid-19 sedang melanda dunia yang memaksa sebagian besar dari kita untuk bekerja di rumah. Semoga wabah ini dapat segera berakhir dan kehidupan menjadi lebih baik. Aamiiin…

1 Ramadhan 1441