API Di Mata Pengembang
Keragaman API sering digunakan dalam skenario aplikasi yang berbeda dan pengembang dari peran yang berbeda memiliki pemahaman yang berbeda tentang API.
1. Pengembangan Backend
Framework: Sebuah rencana atau strategi yang terstruktur dengan baik yang mendefinisikan bagaimana operasi dan proses bekerja.
Spesifikasi: Dokumen berbasis kesombongan yang menjelaskan fungsionalitas seperti REST atau OpenAPI. Misalnya, semacam skema GraphQL yang terkait dengan hal-hal Geo PC.
Data dan logika bisnis: Pengembang backend lebih suka memisahkan data dan logika antara klien (mis. aplikasi seluler atau browser). Ini akan menguntungkan kode atau data mereka sendiri, misalnya, aplikasi satu halaman dan aplikasi seluler dapat menggunakan data dan API yang sama untuk menangani berbagai integrasi khusus.
Seluler terpadu, web dan backend terintegrasi untuk meningkatkan dan menyederhanakan proses sinkronisasi.
2. DevOps
Memenuhi spesifikasi produksi: Misalnya, jika titik akhir sering menampilkan kesalahan 502, Anda harus mempertimbangkan untuk menggunakan API untuk memperbaikinya.
Skalabilitas: Jika titik akhir perlu diskalakan untuk menyelesaikan 504 kesalahan, Anda perlu mengetahui layanan mikro, proses terbaik, dan arah untuk menyelesaikan masalah (mis. REST API untuk GraphQL).
Diagram Alir Cara Kerja Dan Keamanan API
Keamanan:
Protokol baru: Bagaimana cara menangani firewall, pemindai, dan alat lama lainnya yang berhenti meningkatkan versi?
Timur-barat (Timur-barat, yaitu, antara berbagai aplikasi back-end dan database, berbeda dari apa yang sering kita sebut selatan-utara) keamanan: kurangnya pemantauan komunikasi yang baik dalam jaringan. Persyaratan kepatuhan untuk keamanan baru, jaringan, atau komponen TI lainnya.
Pentingnya Keamanan API
Seperti disebutkan sebelumnya, API dan keamanan API berjalan beriringan. API dengan keamanan yang buruk seringkali mudah diekspos dan diserang oleh peretas. Karena API terutama digunakan untuk bertukar informasi, menghubungkan layanan, dan mengirimkan data, begitu pelanggaran data terjadi, itu akan membawa kerugian yang signifikan bagi perusahaan.
Berbagai Metode Otentikasi Keamanan API
Sebelum memberikan akses kepada pengguna, perlu untuk memverifikasi identitas asli dari mereka yang melihat atau mengedit sumber daya API untuk mencegah API digunakan secara tidak tepat.
1. Otentikasi Berbasis Host
Proses ini memastikan bahwa hanya pengguna yang diautentikasi yang dapat mengakses sumber daya yang digunakan di server dengan mengautentikasi host atau server. Kita tidak memerlukan kunci apa pun, atau sebaliknya untuk memulai proses.
Namun, server harus memiliki kemampuan untuk mengontrol peristiwa seperti DNS spoofing, routing spoofing, dan IP spoofing dengan memvalidasi kunci login secara real time.
Otentikasi berbasis host sangat mirip dengan RSA dalam proses dan implementasi. Secara default, kita tidak perlu menyetel parameter apa pun. Otentikasi pengguna berbasis host dapat dilakukan oleh administrator dengan membuat kunci pribadi untuk host lokal, atau mengekstrak kunci publik untuk host lokal.
2. Otentikasi Dasar Keamanan API
Ini adalah salah satu skema otentikasi API yang paling mudah. Karena klien mengirimkan permintaan HTTP dengan header yang dibuat sebelumnya, metode ini menggunakan protokol dan proses HTTP untuk meminta dan memvalidasi kredensial seperti nama pengguna dan kata sandi. Pemeriksaan seperti itu sering dilakukan di lingkungan yang digerakkan oleh browser.
Karena didukung oleh sebagian besar browser dan server, detail kredensial yang digunakan untuk jenis autentikasi ini dapat dibagikan melalui jaringan dalam bentuk teks yang jelas, atau cukup dikodekan dalam base64.
Tidak hanya dapat berjalan di berbagai server proxy, tetapi juga dapat memberikan akses ke sumber daya yang tidak dihosting di server IIS. Karena kurangnya perlindungan enkripsi, rentan terhadap serangan seperti replay.
3. Keamanan API OAuth
Sebagai teknologi autentikasi API terbuka yang dapat disesuaikan, OAuth dapat mewujudkan interaksi antara aplikasi, server, dan API penyimpanan dengan memverifikasi identitas pengguna dan menetapkan standar otorisasi.
Ketika seseorang masuk ke sistem, itu mengotentikasi pengguna dengan meminta token. Untuk melakukan ini, individu atau pembuat permintaan harus meneruskan permintaan untuk mengakses sumber daya ke server otentikasi. Server kemudian akan menerima atau menolak permintaan berdasarkan hasil verifikasi.
OAuth lebih aman daripada proses lain, jadi ini adalah pilihan pertama bagi banyak pengguna. Tiga elemen kunci OAuth termasuk penyedia OAuth (seperti Google dan Facebook), klien OAuth (merujuk ke situs web/halaman yang membawa informasi), dan pemilik (merujuk pada pengguna yang membuat permintaan akses).
4. Keamanan API OAuth 2.0
Versi terbaru dari OAuth, OAuth 2.0 adalah protokol manajemen akses API yang banyak digunakan. Fungsinya termasuk meluncurkan aplikasi klien dengan menggunakan layanan HTTP. Sehingga membatasi akses ke klien API. Baik GitHub dan Facebook menggunakan protokol dalam kode otentikasi mereka untuk layanan HTTP penting, menghilangkan kebutuhan akan kredensial pengguna.
Tiga elemen kunci OAuth 2.0 adalah: pengguna yang memiliki data, aplikasi, dan API itu sendiri. Selama otentikasi, metode ini dapat dengan mudah menyelesaikan data pengguna menggunakan sumber daya yang berbeda. Ini dapat digunakan ke aplikasi dan perangkat berbasis web, seluler dan desktop untuk tujuan otentikasi.
5. Keamanan Otentikasi API SAML
Security Assertion Markup Language (SAML) adalah proses API standar untuk otentikasi menggunakan teknologi single sign-on. Ini memvalidasi terhadap rincian yang diberikan oleh pengguna. Pengguna hanya diberikan akses ke berbagai aplikasi atau sumber daya hingga otentikasi selesai. Saat ini, SAML 2.0 adalah versi yang umum digunakan. Sama seperti ID, ini membantu dalam penilaian identitas pengguna.
Apa Yang Dimaksud Dengan Keamanan API?
Keamanan API tidak hanya berfokus pada perlindungan API yang secara langsung atau tidak langsung terpapar ke pengguna, tetapi juga melibatkan prinsip-prinsip keamanan jaringan seperti pelambatan, pembatasan kecepatan, analisis keamanan berbasis identitas, dan konsep kontrol keamanan utama berikut:
1. Protokol Keamanan API
API dapat digunakan dalam berbagai bentuk dan gaya sesuai dengan kebutuhan yang berbeda. Dan penggunaan yang berbeda juga menentukan keamanan implementasi API.
2. SOAP
Simple Object Access Protocol (SOAP) adalah protokol pesan dan komunikasi berbasis XML. Protokol ini memperluas HTTP dan menyediakan transfer data untuk layanan Web. Dengan menggunakan protokol ini, kita dapat dengan mudah bertukar file yang berisi semuanya, atau memanggil prosedur dari jarak jauh. Tidak seperti kerangka kerja lain seperti CORB, DCOM, dan Java RMI, seluruh pesan SOAP ditulis dalam XML, sehingga tidak bergantung pada bahasa.
3. REST API
Sebagai arsitektur standar Web berdasarkan protokol HTTP, REST dapat menggunakan empat kata kerja untuk setiap permintaan HTTP yang tertunda: GET, POST, PUT, dan DELETE.
Untuk pengembang, arsitektur RESTful adalah salah satu alat termudah untuk memahami fungsionalitas dan perilaku API. Ini tidak hanya membuat arsitektur API mudah dipelihara dan diperluas, tetapi juga memfasilitasi pengembang internal dan eksternal untuk mengakses API.
4. gRPC
Sebagai kerangka kerja berperforma tinggi sumber terbuka, gRPC meningkatkan protokol Panggilan Prosedur Jarak Jauh (RPC) lama. Ini menggunakan HTTP/2, protokol transfer bingkai biner, yang menyederhanakan komunikasi dan pengiriman pesan antara klien dan layanan backend.
GRPC yang sepenuhnya ringan, lebih dari 8x lebih cepat dari JSON. Itu dapat memanggil buffer melalui protokol teknologi open source dan menggunakan format serialisasi platform-independen untuk pesan terstruktur. Dalam penggunaan API, pengembang dapat menggunakan gRPC untuk mengetahui prosedur mana yang harus dipanggil dan dievaluasi untuk nilai parameter.
5. Webhook
Webhook dapat mengirim pesan yang dibuat secara otomatis dari satu aplikasi ke aplikasi lainnya. Dengan kata lain, dapat membangun, mengirim, dan mengambil komunikasi yang diperbarui antara dua aplikasi secara real-time.
Karena webhook dapat berisi informasi penting dan mengirimkannya ke server pihak ketiga, kami dapat menerapkan praktik keamanan terkait API dengan menerapkan autentikasi HTTP dasar, atau autentikasi TLS, di webhook.
6. WebSocket
WebSocket adalah protokol komunikasi dua arah yang dapat menyediakan saluran komunikasi dua arah yang matang antara klien dan server, sehingga menutupi keterbatasan protokol HTTP.
Klien aplikasi dapat menggunakan WebSockets untuk membuat permintaan koneksi HTTP dan mengirimkannya ke server. Setelah koneksi komunikasi awal dibuat, baik klien dan server dapat menggunakan koneksi TCP/IP saat ini untuk mengirimkan data dan informasi sesuai dengan protokol bingkai pesan dasar.
7. XML-RPC
XML-RPC dapat mewujudkan komunikasi timbal balik antara WordPress dan sistem lain melalui proses komunikasi standar. Ini menggunakan HTTP sebagai sarana transportasi dan XML sebagai proses pengkodean. Kode kerjanya disimpan dalam file xmlrpc.php yang terletak di direktori root situs web. Sebagai opsi default di WordPress versi 3.5, XML-RPC memungkinkan aplikasi seluler berinteraksi secara mulus dengan proses instalasi WordPress berbasis web.
Namun, karena xmlrpc.php dapat membagikan detail otentikasi untuk setiap permintaan akses, ini meningkatkan kemungkinan serangan brute force dan DDoS. Dalam hal ini, ketika kami mengadopsi XML-RPC API, kami perlu meningkatkan praktik keamanan yang relevan.
8. JSON-RPC
Sebagai permulaan, JSON-RPC adalah protokol RPC ultra-ringan yang dapat digunakan untuk mengembangkan API berdasarkan blockchain Ethereum. Ini menggunakan JSON (RFC4627) sebagai format data dasar, dan memiliki kemampuan untuk menafsirkan dan memproses beberapa struktur dan aturan data. Protokol dapat digunakan berulang kali melalui soket yang sama.
9. MQTT
MQTT adalah protokol pesan yang disetujui OASIS, yang telah banyak digunakan di bidang perangkat IoT dan pengembangan alat untuk mewujudkan pertukaran informasi tipe HTTP. Menjadi sangat ringan, memungkinkan pengembang untuk menskalakan ke jutaan perangkat sekaligus. Dalam hal keamanan API, MQTT tidak hanya membantu enkripsi pesan, tetapi juga dengan mudah menerapkan TLS dan otentikasi.
10. AMQP
Sebagai protokol terbuka, Protokol Antrian Pesan Lanjutan (AMQP) menentukan perilaku penyedia pesan dan dapat diterapkan ke lapisan aplikasi untuk membuat sistem yang dapat dioperasikan. Karena diimplementasikan dalam biner, protokol tidak hanya mendukung berbagai komunikasi middleware berorientasi pesan, tetapi juga memastikan pengiriman pesan yang lengkap dan tepat.
11. XMPP
Sebagai satu set lengkap teknologi sumber gratis, XMPP dapat digunakan untuk mengembangkan kolaborasi multi-pihak, pesan instan, obrolan multi-partai, panggilan video, dan middleware ringan. Empat komponen utamanya meliputi: PHP, MySQL, Apache dan Perl.
12. CoAP
Sebagai standar IETF yang didefinisikan oleh RFC 7252, CoAP dapat dianggap sebagai protokol keamanan API standar untuk membatasi aplikasi pada perangkat IoT. Karena CoAP dapat mendukung komunikasi melalui LPWAN, ini adalah pilihan terbaik untuk melindungi node mikrokontroler sederhana. CoAP bekerja pada lapisan TCP/IP dan menggunakan UDP sebagai protokol transport dasar.
Keamanan API Dalam Penerapan Cloud Lokal Dan Hibrid
Kemajuan di bidang teknologi seperti layanan cloud, platform integrasi, dan gateway API telah memungkinkan penyedia API untuk mengamankan API dalam berbagai cara. Bisa dibilang, jenis tumpukan teknologi yang dipilih untuk membangun API memiliki dampak langsung pada pengamanan API.
Misalnya, organisasi besar mungkin menggunakan beberapa aplikasi dengan API yang dikembangkan sendiri. Dan dalam proses penggabungan berbagai aplikasi dapat menyebabkan munculnya berbagai silo API. Silo ini sering menjadi tempat risiko keamanan.
Dalam ekosistem yang heterogen, infrastruktur keamanan API spesifik di seluruh API silo dapat dikonfigurasi sebagai sidecars, proxy sideband, yang disematkan di antara cloud dan penerapan di tempat. Menjadi sangat portabel, konfigurasi aman seperti itu memungkinkan teknologi masa depan apa pun untuk mentransfer atau mengekstrak API dengan mudah.
1. Lapisan Keamanan API
Lapisan keamanan API harus berupa struktur berlapis-lapis. Setiap level melakukan tugasnya sendiri untuk memberikan perlindungan keamanan maksimum.
2. API Discovery
Lapisan pertama keamanan API adalah API discovery. Lagipula, jika Anda tidak tahu target dan ancamannya, bagaimana Anda bisa melindunginya. Seperti disebutkan sebelumnya, silo API adalah masalah nomor satu yang mencegah personel keamanan menemukan API. Secara langsung akan menghambat pengelolaan hak akses API karena kurangnya visibilitas API.
Shadow API adalah penghalang terbesar kedua untuk visibilitas API. Ketika API dikembangkan sebagai bagian dari aplikasi, seringkali hanya anggota tim pengembangan yang mengetahuinya dengan baik, sementara personel keamanan tidak mengetahui detail tentang bagaimana ” Shadow API ” tersebut diimplementasikan.
Rintangan ketiga adalah versi API. Selama siklus hidup aplikasi perangkat lunak, API-nya biasanya membutuhkan iterasi yang konstan. Namun, versi baru dari API sering kali tidak segera dan secara komprehensif menggantikan versi yang lebih lama. Karena versi aplikasi di sisi klien berbeda, versi lama API harus terus berjalan untuk jangka waktu tertentu sesuai dengan persyaratan kompatibilitas mundur. Dan kemudian, mereka secara bertahap akan meninggalkan bidang visi tim pengembangan, atau bahkan dilupakan. Semua ini terjadi dengan tenang.
Oleh karena itu, API discovery benar-benar merupakan perlombaan antara penyedia API dan serangan. Jika penyedia dapat menemukan jenis API ini sebelum penyerang, mereka dapat mengekstrak metadata lalu lintas API dari gateway API, penyeimbang beban, dan lalu lintas jaringan langsung inline, dan melalui mesin khusus, menghasilkan laporan daftar API yang efisien untuk dibandingkan dengan katalog API yang tersedia di lapisan manajemen API.