Table of Contents
Komputasi tanpa server telah secara mendasar mengalihkan bagaimana tim pengembangan membangun dan menyebarkan aplikasi, mengabstradasi lapisan infrastruktur sehingga insinyur dapat fokus pada logika bisnis dan kecepatan ke pasar. Namun, pergeseran paradigma ini juga memperkenalkan bagaimana tim pengembangan membangun dan menyebarkan aplikasi, dengan API bertindak sebagai antarmuka utama antara klien dan fungsi awan seperti AWS Lambda, Fungsi Azure, atau Fungsi Awan Google. Mengatur titik akhir ini bukan lagi sebuah afterthought ⁇ ini merupakan persyaratan inti untuk aplikasi kelas produksi. Artikel ini memperluas pada praktik-praktik terbaik yang terbukti untuk melindungi server API tanpa perlindungan, meliputi autentikasi, aman, tingkat komunikasi, pembatasan, validasi, dan dukungan yang Anda butuhkan untuk menerapkan keamanan hari ini.
Memahami Model Keamanan Tanpa Pelayan
Dalam infrastruktur tradisional, keamanan mengandalkan perimeter jaringan: firewall, VPN, dan server yang mengeras. Serverless invert model tersebut. Tidak ada server yang gigih untuk mengeras; sebaliknya, setiap fungsi invokasi adalah ephemeral, dan penyedia awan mengelola lingkungan runtime. Model tanggung jawab bersama berarti Anda mengamankan kode, data, dan identitas Anda, dan identitas ⁇ sementara penyedia mengamankan host yang mendasari. API menjadi perimeter baru. Setiap permintaan harus diperlakukan sebagai berpotensi jahat, dan setiap fungsi harus memvalidasi konteksnya sendiri. Identitas-pertama membutuhkan pendekatan dari autentikasi, bagaimana pemahaman yang lebih dalam, otorisasi, dan integritas dengan arsitektur yang berpotongan.
Ancaman Teras terhadap API Tanpa Pelayan
Sebelum menyelam ke pertahanan, sangat penting untuk mengenali vektor serangan paling umum menargetkan titik akhir tanpa server:
- [[ZOLT:0]]Injeksi serangan ⁇ SQL, NoSQL, perintah OS, atau injeksi LDAP melalui input yang tidak disanitisasi yang dilewatkan ke fungsi.
- [[EHAL:0]]Autentikasi kasar ⁇ Pengenaan atau validasi token yang hilang, manajemen kunci yang buruk, atau token akses yang tidak terskop secara tidak tepat.
- [[GOLLAG:0]] Paparan data ekses ⁇ API mengembalikan muatan objek penuh ketika hanya data parsial yang diperlukan, membocorkan medan sensitif.
- [[Eflat flost:0]]Dinial of service (DoS) ⁇ Serangan Burst yang knalpot fungsi concurrency had atau pemicu costly cold starts.
- [[Efolski:0]]Misconfigurition ⁇ Overly permissive IAM peran, ember publik, atau lumpuhkan logging ekspose infrastruktur Anda.
Setiap ancaman ini dapat dimitigasi dengan desain yang disengaja dan alat yang terintegrasi ke dalam pipa penyebaran Anda.
Praktek Terbaik untuk Melindungi Titik Akhir Saudara
1. Implementasi Pengesahan dan Pengesahan yang Kuat
Setiap permintaan API ke fungsi tak-ber server harus diotentikasi dan disahkan. Gunakan protokol standar-industri seperti OAuth 2.0 dengan OpenID Sambung[ atau isu JSON Token Web (JWT)[. Sahkan token di dalam setiap fungsi (atau melalui API Gateway otorizer) untuk memastikan mereka belum kedaluwarsa atau telah dirusak. Untuk layanan internal, gunakan kunci API yang disimpan dalam lingkungan atau sebuah variabel atau rahasia.
Pergi luari otentikasi dasar dengan role-based access control (RBAC) atau bahkan attribute-based access control (ABAC). Sebagai contoh, sebuah AWS Lambda fungsi memproses dokumen pengguna harus memeriksa klaim JWT untuk memverifikasi peran dan kepemilikan sumber daya penelepon sebelum mengembalikan data. Layanan seperti AWS Cognito, Auth0, dan Firebase Autentifikasi menyediakan lapisan identitas dikelola yang terintegrasi langsung dengan kerangka serverless.
Vichane 2. Memaksa Komunikasi Aman
Semua lalu lintas API harus dienkripsi dalam transit. Gunakan HTTPS (TLS 1.2 atau 1.3) secara eksklusif. Konfigur API Gateway atau sallider muat Anda untuk menolak permintaan HTTP. Untuk keamanan tambahan, laksanakan certificate pinning[ pada aplikasi klien dan pastikan fungsi serverless Anda hanya berkomunikasi dengan layanan hilir melalui TLS. Hindari validasi sertifikat hardcoding atau menonaktifkan dalam pengembangan ⁇ ini adalah sumber umum dari regresi keamanan.
Jika fungsi Anda berkomunikasi satu sama lain (misalnya, melalui bus acara atau antrian), enkripsikan lalu lintas itu juga. kebanyakan penyedia awan mengaktifkan enkripsi secara default untuk pesan antar-layanan, tetapi verifikasi konfigurasi produk Anda mengunci ini.
3, Implementasi Batas Kadar dan Penurunan
Penbatasan kadar API melindungi API Anda dari pengguna yang kasar dan proses yang melarikan diri yang tidak disengaja. Pada tingkat API Gateway, definisikan batas untuk tarif ledakan dan permintaan negara stabil (mis., 100 permintaan per menit per pengguna). Gunakan ember token atau algorithm jendela geser untuk memungkinkan lonjakan lalu lintas sesekali saat masih berdenyut serangan berkelanjutan.
Batasan yang berbeda berdasarkan status autentikasi. Pengguna anonim mungkin mendapatkan 10 permintaan/menit throttle, sementara pengguna terotentikasi menerima batas yang lebih tinggi. Pertimbangkan menggunakan kunci API dengan rencana penggunaan[ dalam AWS API Gateway atau rate limiting rules in Azure API Management. Tambahan, [[implementFLT:4]]concurrency limits on your serverless fungsis sendiri untuk mencegah serangan DoS dari sumber daya tingkat akun yang melelahkan.
Ingat untuk log dan waspada pada peristiwa throttle sehingga Anda dapat membedakan antara spike lalu lintas yang sah dan upaya jahat.
4. Memvalidasi dan Membersihkan Semua Masukan
Tak pernah data kepercayaan yang berasal dari klien atau layanan hulu. Gunakan pustaka validasi skema (misalnya, Joi, Pydantic, atau JSON Schema) pada awal setiap fungsi. Tolak setiap masukan yang tidak sesuai dengan bentuk yang diharapkan. Untuk kueri SQL atau NoSQL, selalu menggunakan pernyataan di parameterisasi atau ORM yang lolos dari masukan secara otomatis. Daftar putih eksplisit diperbolehkan karakter untuk medan string, dan tidak pernah mengevaluasi masukan pengguna sebagai kode (no atau .
Secara tambahan, penegakan validasi tipe isi yang ditegakkan. Jika titik akhir Anda mengharapkan JSON, menolak permintaan dengan atau tipe MIME yang tidak didukung. Untuk berkas upload, tipe MIME validasi, ukuran berkas, dan pemindaian untuk malware menggunakan layanan berdedikasi seperti AWS GuardDuty atau pemindai virus pihak ketiga.
Ukur Keamanan Tambahan
Firewalls Aplikasi Web (WAFs)
Kerahkan WAF di depan Gateway API Anda untuk secara otomatis menyaring pola serangan umum seperti injeksi SQL, scripting cross-site (XSS), dan ancaman reputasi IP. Penyedia layanan Cloud menawarkan WAFs yang dikelola (AWS WAF, Azure WAF, Cloud Armor) yang terintegrasi dengan penyeimbang beban mereka dan layanan CDN. Atur aturan langganan untuk titik akhir spesifik aplikasi Anda, seperti permintaan pemblokiran dengan JWT yang cacat atau parameter pertanyaan yang mencurigakan.
Memantau dan Logging Komprehensif
Visibilitas tidak dapat dinegosiasikan untuk keamanan. Aktifkan log terrinci untuk semua permintaan API dan invokasi fungsi. Gunakan layanan seperti AWS CloudTrail, Azure Monitor, atau Google Cloud Logging untuk menangkap siapa yang mengakses apa, kapan, dan dari mana. Mementralkan log dalam sebuah alat SIEM (misalnya, Splunk, ELK stack, Datadog) dan mengatur peringatan untuk:
- Diulangi ulang 401/403 respon (kekuatan kasar mungkin)
- Spike PRAYING PRAYING PRAYING dalam fungsi eksekusi waktu atau tingkat error
- Akses dari geografi atau jangkauan IP yang tidak biasa
- Fungsi invokasi yang memintas API Gateway (pengoprasian URL langsung)
Log log log log Correlate melintasi lapisan ⁇ gateway, fungsi, dan penyimpanan data ⁇ untuk melacak rantai serangan penuh.
Manajemen Kebergantungan dan Patch
Fungsi servers tidak berlanggan mengandalkan pustaka pihak ketiga. Sebuah dependensi tunggal yang rentan dapat berkompromi dengan seluruh aplikasi Anda. Gunakan software company analyly (SCA) tools (mis., Snyk, Trivy, Dependabot) dalam pipa CI/CD anda untuk memindai kerentanan yang dikenal. Pin ketergantungan ke versi spesifik daripada menggunakan . Pertimbangkan penggunaan AWS Lambda Layers[FLT3]] atau [[FLT4]] Fungsi:AzuAres ekstensi[TFL:5]] Versi umum dan berbagi pustaka di seluruh perpustakaan.
Secara teratur review dan update fungsi runtimes dan gambar dasar (untuk serverless berbasis kontainer). Atur pembaruan dependensi otomatis dengan tes untuk menghindari pemecahan perubahan. Untuk fungsi legasi dengan dependensi yang tidak dipatched, asingkan mereka dan terapkan kontrol pengkopensaan tambahan seperti WAF atau validasi input yang ketat.
Keamanan dan Isolasi Jaringan Keanekaragaman
Sementara fungsi serverless berjalan di lingkungan awan multi-tenant, Anda dapat menambahkan kontrol tingkat jaringan. Tempatkan fungsi yang memproses data sensitif (misalnya, informasi pembayaran, catatan kesehatan) di dalam sebuah VPC tanpa akses internet publik. Lampirkan sebuah API Gateway yang meminta kepada penyeimbang beban pribadi atau pemanfaatan AWS PrivateLink[ atau [[FLT:]]4Azure Private Endpoint[TFL:5]] untuk komunikasi layanan aman.
Use IP whitelisting untuk titik akhir administratif atau alatan internal. Atur kelompok keamanan dan jaringan ACL untuk membatasi lalu lintas inbound hanya untuk port dan IP sumber yang diperlukan. Untuk fungsi yang membutuhkan akses internet (misalnya, memanggil API pihak ketiga), lalu lintas rute melalui NAT Gateway dalam subnet yang dikendalikan.
Penerjemahan Keamanan dalam Jalur pipa CI/CD
Keamanan harus otomatis dan terintegrasi pada awal pengembangan. Perkenalkan sebuah gerbang keamanan dalam pipa CI/CD anda yang memberlakukan hal-hal berikut sebelum penyebaran:
- Uji keamanan aplikasi statik (SAST) pada kode fungsi untuk mendeteksi pola yang tidak aman.
- Pemindaian ketergantungan dengan kegagalan pada kerentanan kritis.
- Infrastruktur-as-kode (IaC) pemindaian (mis., , ) untuk peran IAM yang salah konfigurasi, kurangnya enkripsi, atau paparan publik.
- Unit dan tes integrasi yang mengesahkan autentikasi, otorisasi, dan masukan validasi logika.
Use ephemeral environments (pemberian atau prapacu penyebaran) untuk menjalankan tes keamanan terhadap titik akhir tak-berguna aktual sebelum penggabungan ke produksi. Pertimbangkan menggunakan alat pengujian keamanan API seperti Postman atau OWASSP ZAP untuk mensimulasikan serangan.
Kekecualian Kesimpulan
Komputer tanpa server menawarkan kecepatan dan kemampuan yang luar biasa, tetapi menuntut pola pikir keamanan proaktif. Dengan memperlakukan API sebagai perimeter baru, menerapkan autentikasi dan otorisasi yang kuat, menegakkan enkripsi, throttling lalu lintas berbahaya, dengan sangat memvalidasi masukan, dan pelapisan dalam WAFs, pemantauan, dan kontrol jaringan, Anda dapat melindungi titik akhir Anda terhadap mayoritas serangan modern. Gunakan keamanan sebagai proses berkelanjutan yang tertanam dalam daur hidup pengembangan Anda ⁇ bukan item daftar cek akhir. Pengguna dan bisnis Anda bergantung pada hal itu.