Risiko keamanan API teratas dan cara menguranginya
Diterbitkan: 2022-09-07Didukung oleh peningkatan besar-besaran dalam layanan mikro dan dorongan konstan untuk menyebarkan aplikasi dengan cepat, API telah menjadi nama pilihan bagi setiap pengusaha.
Namun, dengan setiap fitur kecil yang ditautkan dengan perangkat lunak atau produk lain untuk pengalaman pengguna yang lancar, API semakin menjadi pusat peretasan keamanan. Sedemikian rupa sehingga laporan Cara Membangun Strategi Keamanan API yang Efektif oleh Gartner memprediksi bahwa pada tahun 2022, risiko keamanan API akan menjadi salah satu serangan paling sering yang menyebabkan pelanggaran data.
Tapi apa yang membuat strategi keamanan API harus dimiliki oleh pengusaha modern? Mengapa teknologi mendapat perhatian khusus? Akan menemukan jawaban untuk ini dan cara mengurangi risiko keamanan API di artikel ini.
Mengapa Anda harus peduli tentang cara meningkatkan keamanan API?
API membantu bisnis menjadi benar-benar digital. Apa pun aplikasi Anda, Application Programming Interface (API) menghubungkannya dengan perangkat lunak atau fungsionalitas lain – menghemat waktu dalam membangunnya dari awal.
Sekarang alasan mengapa API diberikan fokus khusus adalah karena tingkat dampak yang mereka bawa dalam kesuksesan bisnis.
Manfaat bisnis dari API
Menghemat biaya : Karena API memungkinkan bisnis menggunakan fungsi dan data perusahaan lain, API ini menghilangkan kebutuhan untuk membuat fitur tersebut secara internal. Sebuah acara yang membantu menghemat biaya pengembangan perangkat lunak untuk sebagian besar.
Layanan pelanggan yang lebih baik : Dengan menautkan beberapa perangkat lunak, API menawarkan bisnis pandangan menyeluruh tentang pelanggan mereka dan apa yang mereka cari. Informasi ini membantu perusahaan berinteraksi dengan konsumen mereka dengan lebih baik dan membuat keputusan yang tepat.
Meningkatkan kolaborasi tingkat industri : API memungkinkan bisnis terhubung dengan perusahaan lain di seluruh industri, yang dapat membantu membuat layanan dan platform online menjadi tangguh. Hal ini, pada gilirannya, meningkatkan kemitraan, menciptakan peluang bisnis baru, dan meningkatkan efisiensi operasi bisnis.
Mengumpulkan data untuk intelijen bisnis : Bisnis dapat menggunakan API untuk mengumpulkan preferensi dan perilaku pelanggan mereka. Informasi ini kemudian dianalisis untuk pemahaman mendalam tentang tren pasar saat ini dan kebutuhan pelanggan.
Menciptakan model pendapatan baru : API memberi bisnis beberapa platform untuk mempromosikan dan menjual layanan mereka, produk digital. Melalui model tersebut, bisnis dapat melakukan apa saja mulai dari menjual data ke perusahaan lain hingga membangun perangkat lunak baru berdasarkan API yang ada.
Manfaat API dalam bisnis sangat beragam. Tapi begitu juga risiko keamanan API. Ada dua alasan utama mengapa peretas suka menguji desain keamanan API perusahaan.
Mengapa peretas menyukai API
- Cara mudah untuk mendapatkan akses ke data perusahaan – API memberi peretas akses langsung ke data yang disimpan, termasuk informasi sensitif, melalui beberapa program perangkat lunak.
- Mode mudah untuk melewati tindakan keamanan – Sejumlah perusahaan menggunakan firewall untuk menyelamatkan sistem mereka dari peretas. Namun, strategi keamanan API yang kurang dipikirkan dapat memudahkan para peretas untuk memasuki perangkat lunak melalui backgate ini.
Jadi, inilah kelebihan dan kekurangan API yang mendapat perhatian khusus dari tim QA aplikasi web.
Sekarang, saya yakin Anda pasti bertanya-tanya mengapa daftar praktik terbaik keamanan API berbeda dari keamanan tradisional. Mari kita jawab itu selanjutnya sebelum kita melihat risiko keamanan API teratas dan cara menguranginya.
Elemen kunci dari desain keamanan API yang membedakannya dari keamanan tradisional
Ada perbedaan besar dalam keamanan aplikasi web tradisional dan praktik terbaik keamanan API web – perbedaan yang muncul karena strukturnya.
Kastil tanpa parit dan banyak bukaan – Sebelumnya, jaringan tradisional hanya perlu dilindungi di port umum seperti 443 (HTTPS) dan 80 (HTTP). Saat ini, aplikasi web hadir dengan beberapa titik akhir API yang menggunakan protokol berbeda, jadi ketika API memperluas set fiturnya, pengelolaan keamanannya menjadi sulit.
Sering mengubah format permintaan masuk – API terus berkembang di bawah lingkungan DevOps, sebagian besar WAF tidak dapat mengakomodasi tingkat elastisitas ini. Jadi, setiap kali API berubah, langkah-langkah keamanan tradisional harus dikonfigurasi ulang dan disetel secara manual – metode yang diisi kesalahan yang menghabiskan waktu sumber daya.
Klien tidak boleh menggunakan browser web – Sebagian besar API layanan mikro digunakan pada aplikasi seluler atau komponen perangkat lunak. Karena klien tidak menggunakan browser, alat keamanan web tidak dapat menggunakan fungsi verifikasi browser dan mendeteksi bot berbahaya.
Perbedaan dalam struktur API ini membukanya terhadap beberapa risiko keamanan API, menganggapnya penting bagi pengembang aplikasi web dan tim QA untuk menemukan solusi dan meningkatkan keamanan API secara real time.
Risiko keamanan API teratas dan cara menguranginya
Sebelum kita membahas risikonya, izinkan saya memberi tahu Anda bahwa daftar periksa keamanan API tidak pasti. Anda pikir Anda telah memecahkan semua celah dan yang baru akan muncul. Solusinya terletak pada langkah peretas dan melihat kembali bagaimana aplikasi Anda menggunakan API dan celah yang diabaikan.
Meskipun ini merupakan solusi jangka panjang dan berkelanjutan, titik awal yang baik adalah melihat risiko keamanan API yang paling umum.
1. Penomoran halaman tidak aman
Sebagian besar API menawarkan akses ke sumber daya yang merupakan daftar entitas seperti pengguna atau widget. Untuk klien yang menggunakan perangkat lunak pada browser, API biasanya akan memfilter dan membuat paginasi daftar ini untuk membatasi jumlah item yang dikembalikan ke klien.
Namun, jika entitas dilengkapi dengan PII atau informasi lain, peretas akan dapat mengikis titik akhir dan mendapatkan daftar semua entitas dalam database. Ini bisa sangat berbahaya jika entitas mengekspos informasi sensitif secara tidak sengaja. Ini juga akan menyebabkan peretas dapat melihat statistik penggunaan aplikasi web Anda dan mendapatkan akses ke daftar email.
Solusi: Untuk mengamankan dari serangan pagination, seseorang harus dapat melacak jumlah item dari satu sumber daya yang dapat diakses dalam periode waktu tertentu oleh pengguna atau kunci API alih-alih pada tingkat permintaan. Dengan mengukur akses sumber daya API pada tingkat pengguna individu, Anda akan dapat memblokir kunci API atau pengguna setelah mereka memenuhi ambang batas seperti "menyentuh 10.000 item dalam satu jam".
2. Pembuatan kunci API tidak aman
Sebagian besar API umumnya diamankan melalui JWT (JSON Web Token) atau kunci API. Ini memungkinkan Anda untuk melindungi API Anda karena alat keamanan dapat mengidentifikasi perilaku abnormal dan kemudian memblokir akses ke kunci API. Namun, peretas masih dapat mengakali pendekatan ini dengan mendapatkan dan memanfaatkan kumpulan besar kunci API dari pengguna, persis seperti bagaimana peretas web menggunakan alamat IP untuk menghalangi perlindungan DDoS.
Solusi: Cara jitu untuk mengamankan serangan ini adalah dengan membutuhkan manusia untuk mendaftar ke layanan dan kemudian membuat kunci API. Di sisi lain, lalu lintas bot dapat disimpan dengan elemen seperti Otentikasi 2 Faktor dan Captcha.
3. Paparan kunci yang tidak disengaja
Cara kunci API digunakan membukanya untuk kasus peretasan dan kebocoran.
- API direkayasa untuk diperoleh selama periode tidak terbatas, yang meningkatkan kemungkinan peretas mendapatkan kunci API yang belum kedaluwarsa.
- Pengguna API dilengkapi dengan akses langsung ke kredensial aplikasi web seperti saat men-debug-nya melalui CURL atau Postman. Setelah ini, hanya perlu kebetulan bagi pengembang untuk menyalin/menempelkan perintah CURL dengan kunci API di forum publik seperti Stack Overflow atau GitHub Issues.
- Kunci API biasanya adalah token pembawa yang tidak memerlukan informasi pengenal apa pun. API tidak dapat memanfaatkan elemen seperti autentikasi 2 faktor atau token penggunaan satu kali.
Solusi : Cara mengamankan key exposure adalah dengan menggunakan dua token sebagai pengganti satu. Di sini, token penyegaran disimpan sebagai variabel lingkungan dan dapat digunakan untuk menghasilkan token akses yang berumur pendek. Tidak seperti token penyegaran ini, pengembang dapat menggunakan token berumur pendek yang dapat mengakses sumber daya, tetapi hanya untuk jangka waktu terbatas.
4. Serangan DDoS
Meskipun benar bahwa API membuka model bisnis baru di mana pelanggan dapat mengakses platform API secara terprogram, hal ini membuat perlindungan DDoS menjadi menantang. Sebagian besar perlindungan DDoS dirancang untuk menyerap dan menolak permintaan dari aktor jahat selama serangan DDoS. Ini menjadi lebih sulit dalam hal produk API karena setiap lalu lintas berakhir seperti lalu lintas bot.
Solusi : Praktik terbaik keamanan API dalam konteks ini hanya ada di dalam API. Setiap akses ke aplikasi web memerlukan kunci API, jadi ketika Anda menemukan permintaan yang tidak memiliki kunci API, Anda dapat menolaknya secara otomatis.
5. Keamanan server salah
Dalam hal menjaga kebersihan server yang baik, API tidak jauh berbeda dari server web. Data dapat dengan mudah bocor karena sertifikat SSL yang salah konfigurasi atau melalui lalu lintas non-HTTPS.
Dalam kasus aplikasi web modern, meskipun ada sedikit alasan untuk menerima permintaan non-HTTPS, pelanggan mungkin secara tidak sengaja mengeluarkan permintaan non-HTTP dari aplikasi web atau CURL mereka, sehingga memperlihatkan kunci API.
Solusi: Praktik terbaik untuk keamanan API menyatakan bahwa Anda harus menguji implementasi SSL melalui alat uji SSL. Selain itu, Anda harus memblokir non-HTTP melalui penyeimbang beban.
6. Pencatatan yang tidak memadai
Sebagian besar studi pelanggaran global menemukan bahwa periode waktu untuk mengidentifikasi contoh pelanggaran data adalah lebih dari 200 hari. Jika tidak ada praktik terbaik keamanan API yang ditentukan untuk pencatatan API, peretas dapat menggunakan kerentanan untuk membuat lebih banyak kerentanan.
Solusi: Anda harus memastikan bahwa mekanisme pencatatan API yang Anda gunakan tidak hanya melacak permintaan API tetapi juga menautkannya kembali ke pengguna untuk analisis perilaku dan menyimpannya setidaknya selama satu tahun. Mekanisme ini, pada gilirannya, harus diamankan untuk memastikan bahwa data tidak terhapus.
7. Tidak menangani otorisasi
Sementara sebagian besar pengembang API menambahkan metode Otentikasi global seperti OAuth atau kunci API untuk memverifikasi siapa pengguna, sulit untuk membuat dan menjaga Otorisasi berbeda dari Otentikasi.
Karena otorisasi khusus untuk logika aplikasi, ini adalah area yang dilewatkan oleh pengembang saat menguji aplikasi web. Sekarang, kecuali pengidentifikasi objek memiliki entropi yang cukup, peretas dapat dengan mudah menguji id yang berbeda melalui iterasi dan memasuki sistem.
Solusi: Pastikan pengguna yang telah Anda autentikasi diberi otorisasi untuk mengakses sumber daya yang diperlukan untuk menghasilkan respons API. Ini mungkin termasuk memeriksanya terhadap daftar kontrol akses (ACL) yang terkait dengan objek dalam gambar.
Berikut adalah tujuh risiko keamanan API paling umum dan solusinya yang ditemukan oleh pengembang dan pengusaha aplikasi web. Tetapi seperti yang kami sebutkan sebelumnya, daftar ini jika tidak pasti, lebih banyak celah dapat muncul seiring bertambahnya usia aplikasi web Anda dan fitur API berkembang.
Di Appinventiv, saat kami membangun API, kami membuat daftar periksa kasar untuk pengujian keamanan API sebelum proses pengembangan dimulai. Selain itu, kami menggunakan alat manajemen API terbaik yang memastikan perangkat lunak Anda dibuat untuk ketahanan dan keamanan jangka panjang.
Dan inilah daftar periksa keamanan API yang kami ikuti.
Daftar periksa Appinventiv tentang praktik terbaik keamanan API
Yang membedakan kami sebagai perusahaan pengembangan aplikasi web adalah fakta bahwa kami mengikuti pendekatan pengembangan yang mengutamakan keamanan. Artinya, kami berada di atas keamanan aplikasi Anda setiap kali kami membangun atau memasukkan API di dalamnya. Tim spesialis QA kami memastikan bahwa aplikasi web Anda tidak memiliki celah dan anti-retas. Cara mereka memastikannya adalah dengan membuat daftar periksa praktik terbaik keamanan API yang lengkap.
1. Temukan kerentanan
Cara utama untuk meningkatkan keamanan API adalah dengan mengidentifikasi area yang tidak aman dari siklus hidup API. Yang diperlukan adalah melacaknya dengan memperlakukan API sebagai artefak perangkat lunak yang memiliki tahap pengembangannya sendiri seperti pemeliharaan dan kedaluwarsa fitur.
2. Gunakan OAuth
Salah satu celah terbesar dalam risiko keamanan API adalah mengakses kontrol otorisasi dan otentikasi. Metode pengendalian yang kuat yang terletak pada OAuth. Di Appinventiv, kami menggunakan kerangka kerja otorisasi berbasis token untuk memungkinkan informasi mana yang dapat diakses oleh layanan pihak ketiga tanpa menunjukkan kredensial pengguna.
3. Gunakan token
Menggunakan token, secara umum, adalah salah satu praktik terbaik keamanan API terbaik. Pengembang dapat menggunakan token yang dialokasikan untuk identitas sebagai cara yang efektif untuk membangun akses terkontrol ke identitas tepercaya.
4. Enkripsi data
Cara jitu untuk meningkatkan keamanan API terletak pada enkripsi data menggunakan Transport Layer Security (TLS). Saat kami mengerjakan API, kami mengikuti praktik di mana pengembang kami juga memerlukan tanda tangan untuk memastikan modifikasi dan dekripsi data hanya melalui pengguna yang berwenang.
5. Gunakan pembatasan dan pembatasan laju
Dengan popularitas API yang terus meningkat , kemungkinan peretasan seperti serangan DDoS juga meningkat. Untuk mencegah serangan DDoS dan lonjakan API seperti masalah yang memengaruhi keamanan dan kinerja, pengembang kami menetapkan batas kecepatan tentang cara dan frekuensi panggilan API. Fungsi pembatasan kecepatan ini juga membatasi koneksi, menyeimbangkan akses data dengan ketersediaan data.
6. Gunakan gerbang API
Menggunakan gateway API adalah apa yang kami anggap sebagai salah satu praktik terbaik keamanan API utama. Ini bertindak sebagai titik penegakan lalu lintas API. Kami membangun gateway yang memungkinkan bisnis mengautentikasi lalu lintas, mengontrol, dan memantau bagaimana API digunakan.
7. Gunakan jala layanan
Selain gateway API, kami menggunakan mesh layanan untuk menambahkan lapisan manajemen di aplikasi web, karena mesh layanan mengarahkan permintaan dari satu layanan ke layanan lainnya. Ini juga mengoptimalkan bagaimana fungsi bekerja bersama, sambil memastikan kontrol akses yang tepat, otentikasi, dan langkah-langkah keamanan dimasukkan.
8. Formula tanpa kepercayaan
Dalam model keamanan tradisional, rumus yang digunakan adalah sederhana. Apa yang "di dalam" harus dipercaya dan apa yang "di luar" tidak boleh. Namun, jaringan telah menjadi kompleks sekarang, karena itu memiliki model zero-trust (ZTM) menjadi penting, terutama karena perangkat lunak digunakan oleh pengguna jarak jauh. Melalui ZTM, fokus keamanan berpindah dari lokasi ke sumber daya dan pengguna.
9. Validasi parameter
Memvalidasi parameter adalah salah satu praktik terbaik kami untuk keamanan API. Ini membantu memastikan bahwa data yang masuk tidak menyebabkan kerusakan apa pun. Di bawah kerangka kerja, data divalidasi terhadap skema ketat yang melaporkan sistem input yang diizinkan.
10. Bangun model ancaman
Yang terakhir dalam daftar cara kami untuk mengurangi risiko keamanan API adalah pemodelan ancaman. Ini adalah pendekatan yang kami gunakan untuk menemukan dan mengevaluasi risiko. Kami menggunakannya sebagai pendekatan pencegahan untuk menilai, mengurangi, dan mencegah kerentanan aplikasi dengan cara yang terkendali.
Di balik praktik terbaik keamanan gateway API ini, kami dapat membangun sistem yang kuat dan aman yang dapat dikerjakan pengguna dengan penuh keyakinan. Hasil? Kami hadir dengan rekam jejak pembuatan aplikasi tanpa peretasan dan pelanggaran keamanan.
Catatan perpisahan
Karena bisnis terus mengubah sistem monolitik mereka menjadi layanan mikro, API akan terus rentan terhadap kerentanan. Hal ini membuat praktik terbaik keamanan native dan cloud API berikut menjadi wajib.
Daftar yang kami sebutkan di atas, meskipun merupakan tempat yang baik untuk memulai, memerlukan peningkatan terus-menerus. Tetap di atas mereka dapat menjadi tantangan bagi pengusaha dan tim pengembangan internal mereka yang telah menangani banyak tenggat waktu. Di sinilah bermitra dengan perusahaan yang memiliki rekam jejak dalam memberikan 100% aplikasi anti-retas muncul. Perusahaan seperti Appinventiv.
Tidak peduli seberapa rumit perangkat lunak Anda, kami dapat membuatnya aman dan kuat dengan layanan jaminan kualitas kami yang ekstensif. Hubungi kami hari ini untuk memulai masa depan produk Anda yang aman.