Last Updated on December 19, 2022 by
Di masa sekarang ini, banyak sekali layanan-layanan yang kita gunakan yang terhubung dan berkomunikasi dengan layanan lainnya. Komunikasi itu memungkinkan setiap aplikasi untuk mendapatkan data-data yang kita perlukan. Dalam setiap komunikasi, biasanya layanan tersebut akan meminta akses application programming interface atau API, dimana jika aksesnya diterima, aplikasi penyedia API akan merespon dengan data-data yang dikemas dalam bentuk tertentu. Karena API biasanya digunakan untuk bertukar informasi sensitif, maka setiap orang yang mengimplementasikannya wajib tahu tentang API Security, yaitu bidang yang membahas bagaimana cara mengamankan API ini dari pihak-pihak yang tidak bertanggung jawab. Bagi Anda yang sering berurusan dengan API, artikel kami kali ini wajib untuk disimak!
Table of Contents
Apa itu API Security?
API adalah antarmuka yang memungkinkan perangkat lunak yang berbeda untuk saling berinteraksi. API akan mengendalikan jenis-jenis request yang dibuat serta format data yang digunakan agar setiap data yang dikirim dapat digunakan oleh aplikasi yang memintanya. API saat ini seakan sudah menjadi salah satu bagian utama di berbagai macam aplikasi, mulai dari aplikasi web, aplikasi mobile hingga software dalam perangkat Internet of Things (IoT). API memungkinkan pengumpulan dan pemrosesan data, serta membuat pengguna dapat memasukkan informasi yang diproses dalam lingkungan tempat API tersebut berada. Tempat API mendapatkan data di suatu layanan disebut API Endpoint.
API sendiri sangat sering digunakan untuk mengakses data-data sensitif di sisi back-end. Bayangkan jika API dirusak sehingga aplikasi-aplikasi yang memerlukannya tidak dapat berfungsi dengan baik. Atau bahkan di situasi yang lebih parah, bayangkan jika API sampai bocor atau diretas sehingga orang-orang sembarangan dapat mengakses data-data bersifat pribadi, tentunya banyak orang yang akan merasa dirugikan atau bahkan terancam akibat bocornya informasi pribadi mereka. Maka dari itu, sangat penting untuk memikirkan API Security saat merancang API sebagai upaya mengamankannya dari serangan peretas dan pihak-pihak lain yang tidak bertanggung jawab.
Apa bedanya API Security dengan keamanan biasanya?
Semua aktivitas di internet memerlukan prosedur keamanan tertentu agar penggunanya dapat memanfaatkan setiap aktivitas tanpa khawatir akan keamanan diri sendiri. Tidak terkecuali API karena sering digunakan untuk hal-hal yang bersifat sensitif. Bidang API Security memperhatikan beberapa aspek khusus yang membedakannya dengan standar keamanan internet biasa. Aspek-aspek itu seperti:
- Beragam protokol yang digunakan: pada web generasi sebelumnya, jaringan hanya memerlukan perlindungan pada port-port tertentu seperti port 80 (HTTP) dan 443 (HTTPS). Namun web-web saat ini biasanya menggunakan banyak API yang juga menggunakan beragam protokol. Hal ini membuat merawat keamanan dari sebuah API saja perlu ketelitian yang ekstra.
- Bentuk yang berubah-ubah: API akan berkembang dan berubah bentuk seiring banyaknya informasi yang dibawa, jadi setiap kali API berubah, keseluruhan pemeriksaan keamanannya perlu diatur agar tetap aman dan dapat berfungsi dengan baik.
- Klien biasanya tidak menggunakanweb browser: tidak seperti pemrosesan website yang hanya dilakukan dari peramban atau browser yang digunakan untuk membukanya, pengaksesan API juga banyak yang dilakukan melalui aplikasi mobile atau komponen perangkat lunak tertentu. Ini menyebabkan pendeteksian aktivitas berbahaya dengan mengandalkan pengecekan browser saja kurang mampu membedakan mana request yang berasal dari pengguna manusia dan mana yang berasal dari robot.
- Pengecekan biasa tidak mampu menjamin keamanan: banyak penyalahgunaan API yang terlihat sepertirequest pada umumnya sehingga lolos dari pengecekan biasa.
Perkembangan API Security
Saat tulisan ini dibuat, Open Web Application Security Project (OWASP) terakhir kali mempublikasikan fokus pembenahan API Security pada tahun 2019 lalu. Fokus pembenahan tersebut terbagi dalam 10 poin sebagai berikut ini:
- API1:2019 Broken Object Level Authorization: membahas tentang API yang membuka endpointyang menangani pengenal objek (object identifiers)
- API2:2019 Broken User Authentication: membahas tentang mekanisme autentikasi pengguna yang tidak diterapkan dengan benar.
- API3:2019 Excessive Data Exposure: membahas tentang API yang mengekspos keseluruhan data sampai data-data yang spesifik.
- API4:2019 Lack of Resources & Rate Limiting: membahas tentang API yang tidak menerapkan pembatasan berapa banyak requestyang dapat diminta client.
- API5:2019 Broken Function Level Authorization: membahas tentang pengendalian akses antara fungsi admin dengan fungsi biasa yang kurang jelas.
- API6:2019 Mass Assignment: membahas tentang data dalam JSON yang di-bindke tempat yang tidak seharusnya.
- API7:2019 Security Misconfiguration: membahas tentang pengaturan keamanan yang kurang baik.
- API8:2019 Injection: membahas tentang data yang dapat sampai ke interpreteryang salah sehingga malah mampu memasukkan kode atau perintah yang berbahaya.
- API9:2019 Improper Assets Management: API harus senantiasa di-updateagar dapat terus bekerja dengan maksimal.
- API10:2019 Insufficient Logging & Monitoring: API harus di-logdan dipantau agar tidak ada penyerang yang masuk dan mengacaukan sistem.
Standar dalam API Security
Dalam merancang keamanan API, Anda dapat memperhatikan beberapa hal berikut ini:
1. Celah-celah
Sebelum memulai, pastinya Anda harus paham tentang aspek mana yang perlu perhatian tambahan untuk pengamanan. Misalnya, Anda dapat mengecek apakah di dalam sistem bisa rawan terjadi SQL injection, apakah API menggunakan aturan yang lebih ketat dalam path dan skema file JavaScript Object Notation (JSON), serta apakah sudah memiliki batas tertentu dalam menangani request.agar tetap terlindung.
2. Token
Token digunakan untuk membuat komunikasi antar kedua pihak menjadi lebih aman. Setiap pihak perlu mengecek apakah token yang mereka miliki cocok sebelum dapat berinteraksi; jika cocok maka dapat dilanjutkan, namun jika tidak, komunikasi tidak berlanjut.
Open authorization (OAuth) adalah framework yang dapat membantu seputar implementasi token. OAuth memiliki OpenID Connect, yaitu lapisan autentikasi yang memungkinkan klien untuk mengecek identitas user yang mengakses suatu informasi. Akses diberikan hanya jika user memiliki token yang sudah dipercaya.
3. API Gateway
API Gateway diterapkan di antara klien serta layanan di bagian back-end. API Gateway akan membantu mengecek autentikasi dari setiap klien yang meminta akses informasi.
4. Enkripsi
Enkripsi membuat data dan komunikasi lebih aman dengan mengubahnya menjadi bentuk yang lebih sulit dibaca. Untuk menerjemahkan bentuk ini nantinya perlu kunci decryption yang benar dan dapat dipercaya.
5. Pembatasan akses
Agar tidak terkena serangan DDoS, yaitu serangan yang membuat sistem lumpuh dengan meminta banyak sekali akses, maka perlu diperlakukan pembatasan pada sistem. Pembatasan dapat diterapkan dari kecepatan transfer data untuk setiap user (throttling) dan juga bisa dari seberapa sering dan seberapa banyak data yang dapat ditransfer..
6. Zero-trust approach
Model keamanan zero-trust tidak mempercayai semua traffic baik itu di dalam atau di luar jaringan. Alhasil, semua yang akan masuk harus diautentikasi untuk dicek apakah ia memang benar layak untuk masuk dalam jaringan. Hal ini diterapkan bahkan untuk pengguna yang sebelumnya sudah pernah masuk dalam jaringan tersebut.
Penutup
Itu dia pembahasan kami tentang API Security. Keamanan data memang menjadi isu yang sangat hangat saat ini, namun keamanan alat untuk mengaksesnya juga tidak boleh luput dari perhatian. Jadi, sudahkah Anda memperhatikan keamanan API yang Anda gunakan? Jika artikel kali ini bermanfaat untuk Anda, terus ikuti APPKEY.id agar tidak ketinggalan pembahasan kami selanjutnya seputar pengembangan aplikasi dan website!
Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.