Keselamatan Tanpa Pelayan dan Fungsi
Kenal pasti permukaan serangan unik fungsi tanpa pelayan (peranan IAM yang terlebih keistimewaan, suntikan peristiwa dan risiko kebergantungan), kemudian gunakan kawalan keistimewaan minimum dan pengesahan input.
Keselamatan Tanpa Pelayan dan Fungsi ialah pelajaran Cloud & IT Cert Prep percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Cloud & IT Cert Prep, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Cloud & IT Cert Prep merangkumi sejumlah 4 pelajaran.
Apakah Pengkomputeran Tanpa Pelayan?
Pengkomputeran tanpa pelayan (Functions as a Service, FaaS) membolehkan pembangun melancarkan fungsi individu yang dipanggil oleh peristiwa — permintaan HTTP, mesej baris gilir, pencetus pangkalan data atau pemasa berjadual — tanpa mengurus pelayan asas. Platform utama termasuk AWS Lambda, Google Cloud Functions dan Azure Functions. Pembekal awan mengurus penampalan, penskalaan dan infrastruktur. Walaupun hal ini mengurangkan beban operasi, ia mengubah model tanggungjawab keselamatan: pembekal menjamin keselamatan masa jalan, tetapi pembangun bertanggungjawab sepenuhnya terhadap kod fungsi, keizinan dan konfigurasi.
Permukaan Serangan Tanpa Pelayan yang Unik
Fungsi tanpa pelayan mempunyai permukaan serangan yang berbeza berbanding aplikasi tradisional: fungsi biasanya berjangka pendek (beberapa saat hingga beberapa minit), menyebabkan EDR tradisional dan pemantauan rangkaian kurang berkesan; fungsi tersebut dipacu peristiwa, iaitu banyak sumber input yang berbeza (peristiwa S3, API Gateway, SNS) boleh mencetuskan pelaksanaan; fungsi sering berjalan dengan keizinan IAM yang boleh mencapai Resource awan lain; dan fungsi menggunakan kebergantungan pihak ketiga (pakej npm, pip) yang mungkin mengandungi kod berniat jahat. Permukaan serangan ditentukan oleh input peristiwa, keizinan IAM dan rantaian kepercayaan kebergantungan.
Peranan IAM dengan Keistimewaan Berlebihan: Ancaman Utama
Kelemahan keselamatan tanpa pelayan yang paling lazim ialah peranan IAM dengan keistimewaan berlebihan. Apabila pembangun memerlukan sesuatu fungsi untuk mencapai satu baldi S3, mereka mungkin tergoda untuk menetapkan s3:* (capaian S3 penuh) bagi mengelakkan ralat keizinan. Fungsi yang terjejas atau mempunyai kelemahan dengan peranan ini kemudiannya boleh membaca, menulis atau memadam mana-mana baldi dalam akaun tersebut. Pertahanan yang berkesan ialah peranan IAM dengan keistimewaan minimum: setiap fungsi hendaklah mempunyai peranan khusus yang hanya memberikan keizinan minimum yang diperlukan untuk tugas khusus fungsi tersebut. Alat seperti AWS IAM Access Analyzer dan Cloudsplaining mengenal pasti peranan Lambda dengan keistimewaan berlebihan secara automatik.
# IAM policy: least privilege for specific Lambda function
{
'Version': '2012-10-17',
'Statement': [{
'Effect': 'Allow',
'Action': ['s3:GetObject'],
'Resource': 'arn:aws:s3:::my-specific-bucket/uploads/*'
}]
}Serangan Suntikan Peristiwa
Suntikan peristiwa berlaku apabila data yang dikawal penyerang dalam muatan peristiwa diproses secara tidak selamat oleh kod fungsi. Oleh sebab fungsi tanpa pelayan boleh dicetuskan oleh banyak sumber peristiwa — pengepala HTTP, parameter pertanyaan, rekod perubahan pangkalan data, isi mesej baris gilir dan kandungan e-mel — mana-mana sumber ini boleh membawa muatan berniat jahat. Jenis suntikan yang lazim termasuk: suntikan SQL jika fungsi membuat pertanyaan kepada pangkalan data menggunakan data peristiwa, suntikan NoSQL (operator MongoDB dalam muatan JSON), suntikan perintah jika data peristiwa digunakan dalam perintah OS, dan SSRF (Pemalsuan Permintaan Sisi Pelayan) jika URL daripada data peristiwa diambil. Pengesahan input dan pertanyaan berparameter ialah pertahanan yang penting.
# Vulnerable: event data used directly in shell command
# const filename = event.filename;
# exec('convert ' + filename + ' output.jpg');
# Safe: validate and sanitize input
# const filename = path.basename(event.filename);
# if (!/^[a-z0-9_-]+\.(jpg|png)$/i.test(filename)) throw new Error('Invalid');
# execFile('convert', [filename, 'output.jpg']);Risiko Kebergantungan: Pakej Pihak Ketiga
Fungsi tanpa pelayan kerap bergantung pada berpuluh-puluh pakej pihak ketiga. Kebergantungan ini memperkenalkan risiko rantaian bekalan: pakej berniat jahat atau yang telah terjejas boleh melaksanakan kod sewenang-wenangnya dalam persekitaran pelaksanaan fungsi, mencapai pemboleh ubah persekitaran (yang sering mengandungi rahsia), membuat sambungan rangkaian keluar dan menggunakan peranan IAM fungsi untuk mencapai Resource awan. Serangan berprofil tinggi seperti kompromi pakej npm event-stream (2018) dan banyak pakej typosquatting menunjukkan risiko ini. Pertahanan termasuk pemetaan tetap kebergantungan, pengimbasan SCA dalam CI/CD dan jejak kebergantungan yang minimum.
Rahsia dalam Sistem Tanpa Pelayan: Pemboleh Ubah Persekitaran
Fungsi tanpa pelayan sering menerima rahsia melalui pemboleh ubah persekitaran yang dikonfigurasikan dalam konsol awan. Pemboleh ubah persekitaran ini boleh dilihat oleh sesiapa yang mempunyai capaian IAM kepada konfigurasi Lambda dan boleh dicapai oleh mana-mana kod yang berjalan dalam fungsi tersebut. Amalan terbaik: elakkan menyimpan rahsia secara langsung sebagai pemboleh ubah persekitaran teks biasa; sebaliknya, simpan ARN atau nama rahsia dan dapatkan semula rahsia pada masa jalan daripada AWS Secrets Manager atau Parameter Store; dayakan penyulitan KMS untuk pemboleh ubah persekitaran Lambda semasa tidak digunakan; dan jangan sekali-kali merekodkan pemboleh ubah persekitaran (banyak pengelog nyahpepijat membuang semua pemboleh ubah persekitaran apabila berlaku ralat).
# Retrieve secret at runtime instead of hardcoding
# Using AWS SDK in Lambda
# const secretsClient = new SecretsManagerClient({});
# const response = await secretsClient.send(
# new GetSecretValueCommand({ SecretId: 'prod/myapp/db-password' })
# );
# const dbPassword = response.SecretString;Had Masa Tamat dan Keserentakan Fungsi
Penafian perkhidmatan terhadap fungsi tanpa pelayan boleh berlaku dalam bentuk pembanjiran pemanggilan — penyerang yang boleh mencetuskan sesuatu fungsi berulang kali mungkin menghabiskan had keserentakan akaun (lalai Lambda ialah 1,000 pelaksanaan serentak bagi setiap rantau), menyebabkan fungsi lain dalam akaun itu tidak dapat dilaksanakan. Fungsi yang memproses input dikawal pengguna hendaklah melaksanakan pengehadan kadar pada peringkat API Gateway, mengesahkan had saiz muatan dan menetapkan nilai masa tamat yang sesuai untuk menghalang pelaksanaan yang berterusan tanpa kawalan. Fungsi juga boleh disasarkan oleh serangan pengembangan gaya Billion Laughs dalam penghuraian XML/YAML jika saiz input tidak dihadkan.
# AWS Lambda: set reserved concurrency to prevent account-wide DoS
aws lambda put-function-concurrency \
--function-name my-api-handler \
--reserved-concurrent-executions 100Integrasi VPC dan Pengasingan Rangkaian
Secara lalai, fungsi AWS Lambda berjalan dalam VPC terurus AWS dengan capaian Internet, tetapi tanpa capaian kepada Resource dalam VPC persendirian anda (pangkalan data RDS, ElastiCache dan API persendirian). Untuk mencapai Resource persendirian, Lambda mesti dikonfigurasikan supaya berjalan dalam VPC anda dengan subnet dan kumpulan keselamatan tertentu. Walau bagaimanapun, fungsi Lambda yang dilampirkan pada VPC tidak mempunyai capaian Internet secara lalai — fungsi tersebut memerlukan Gerbang NAT untuk Internet keluar. Kumpulan keselamatan yang dilampirkan pada fungsi Lambda hendaklah mematuhi peraturan keistimewaan minimum: benarkan hanya port dan destinasi khusus yang diperlukan. Elakkan penggunaan peraturan keluar 0.0.0.0/0 pada kumpulan keselamatan fungsi produksi.
Pemantauan Fungsi Tanpa Pelayan
Pemantauan keselamatan tanpa pelayan memerlukan pendekatan yang berbeza daripada pemantauan hos tradisional. Oleh sebab fungsi bersifat sementara, ejen berasaskan hos tidak praktikal. Pemantauan yang berkesan menggunakan: AWS CloudTrail untuk merekodkan semua panggilan API Lambda (pemanggilan, perubahan konfigurasi dan andaian peranan); CloudWatch Logs Insights untuk membuat pertanyaan terhadap log pelaksanaan fungsi bagi mencari corak luar biasa; Amazon GuardDuty untuk pengesanan ancaman termasuk aktiviti rangkaian Lambda yang luar biasa; serta alat keselamatan asli tanpa pelayan komersial seperti Protego (kini sebahagian daripada Check Point) atau pemantauan tanpa pelayan Datadog yang melengkapkan fungsi melalui lapisan bagi memberikan keterlihatan masa jalan.
# Query CloudWatch Logs for Lambda errors and anomalies
aws logs start-query \
--log-group-name '/aws/lambda/my-function' \
--start-time $(date -d '-1 hour' +%s) \
--end-time $(date +%s) \
--query-string 'fields @timestamp, @message | filter @message like /ERROR|WARN|credential/'Pengujian Keselamatan Tanpa Pelayan
Pengujian keselamatan tanpa pelayan memerlukan alat khusus: PureSec CLI (kini Check Point) dan Prowler mengimbas konfigurasi awan untuk mencari salah konfigurasi tanpa pelayan; alat DAST boleh menguji fungsi yang dicetuskan melalui HTTP untuk mencari kelemahan suntikan; analisis statik kod fungsi menggunakan alat seperti Bandit (Python) atau pemalam keselamatan ESLint dapat mengesan corak pengekodan yang tidak selamat; dan pengujian manual hendaklah menyenaraikan semua sumber peristiwa yang boleh mencetuskan setiap fungsi serta menguji setiap sumber dengan muatan yang cacat dan berniat jahat. OWASP Serverless Top 10 menyediakan senarai semak kelemahan menyeluruh yang khusus untuk seni bina tanpa pelayan.
# Prowler: check Lambda security posture
prowler aws --service lambda
# Checks: public URL, over-privileged roles, unencrypted env vars,
# outdated runtime, missing VPC config, excessive timeoutTanggungjawab Dikongsi dalam Sistem Tanpa Pelayan
Pengkomputeran tanpa pelayan mengembangkan model tanggungjawab dikongsi lebih jauh ke arah pembekal. Pembekal awan bertanggungjawab terhadap: persekitaran masa jalan fungsi, tampalan OS, keselamatan infrastruktur asas dan kemudahan fizikal. Pelanggan kekal bertanggungjawab terhadap: keselamatan kod fungsi, reka bentuk keizinan IAM, pengurusan rahsia, pengesahan input, pengurusan kebergantungan, konfigurasi pengelogan dan dasar rangkaian. Pengurangan tanggungjawab infrastruktur tidak bermakna pengurangan tanggungjawab keselamatan — sebaliknya, ia hanya mengubah tumpuan pelaburan keselamatan, terutamanya kepada keselamatan peringkat aplikasi dan IAM.
Semakan Pantas
Uji pemahaman anda tentang konsep CompTIA Security+ (SY0-701) daripada pelajaran ini.
Rumusan Pelajaran
Dalam pelajaran ini, anda telah mempelajari bahawa: peranan IAM dengan keistimewaan berlebihan ialah risiko utama tanpa pelayan — setiap fungsi memerlukan peranan khusus dengan keistimewaan minimum; serangan suntikan peristiwa mengeksploitasi mana-mana sumber peristiwa yang menyampaikan data dikawal penyerang kepada fungsi yang tidak mempunyai pengesahan input; dan risiko rantaian bekalan kebergantungan daripada pakej pihak ketiga boleh menjejaskan pelaksanaan fungsi dengan capaian kepada kelayakan IAM dan rahsia. Seterusnya, kita akan meneroka pengimbasan keselamatan Infrastruktur sebagai Kod untuk mengesan salah konfigurasi sebelum pelancaran.
Pelajari Cloud & IT Cert Prep dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 150
- Pelajaran
- 600
Soalan Lazim
Adakah pelajaran “Keselamatan Tanpa Pelayan dan Fungsi” percuma?
Ya — teks penuh “Keselamatan Tanpa Pelayan dan Fungsi” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Cloud & IT Cert Prep, tingkat taraf kepada CoddyKit PRO. Kursus Cloud & IT Cert Prep merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Keselamatan Tanpa Pelayan dan Fungsi”?
Kenal pasti permukaan serangan unik fungsi tanpa pelayan (peranan IAM yang terlebih keistimewaan, suntikan peristiwa dan risiko kebergantungan), kemudian gunakan kawalan keistimewaan minimum dan peng… Anda berlatih Cloud & IT Cert Prep menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Cloud & IT Cert Prep?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Cloud & IT Cert Prep di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.
Berapa lamakah pelajaran “Keselamatan Tanpa Pelayan dan Fungsi” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Cloud & IT Cert Prep ini?
Ya. Setiap pelajaran Cloud & IT Cert Prep menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Keselamatan Bekas: Pengukuhan Imej dan Perlindungan Waktu Jalan
- Keselamatan Kubernetes: RBAC, Dasar Rangkaian dan Keselamatan Pod
- Keselamatan Tanpa Pelayan dan Fungsi
- Pengimbasan Keselamatan Infrastruktur sebagai Kod