Giriş: Neden Serverless APIs Yeni Bir Güvenlik Zihinset talep ediyor

Serverless mimarlık, geliştiricilerin API'leri nasıl inşa ettiğini ve dağıtmadığını değiştirdi.Süresel altyapı yönetimi ile takımlar artık geçerli değil; saldırı yüzeyi, üçüncü taraf hizmetleri, Azure işlevleri ve Google Cloud Functions gibi sağlayıcıların ölçeklendirme, yarılama ve yüksek zaman ayırarak, hassas bir veri ortaya çıkarabilir veya göz ardı edebilir.

Bu makale sunucusuz API'lerle karşı karşıya olan en yaygın tehditleri araştırıyor ve onları hafifletmek için harekete geçmek için harekete geçilebilir, üretim hazır en iyi uygulamaları sunar. Mevcut uç noktaları ya da yenileri inşa etmek, bu stratejiler verilerinizi korumanıza yardımcı olacaktır, kullanılabilirlik sağlar ve endüstri standartlarına uygun kalır.

Sunucusuz API'lere Commons'ı Anlamak

Serverless API'ler, geleneksel API'ler olarak aynı geniş saldırı kategorilerine karşı savunmasızdır - prosedürsüz, yanlış kimlik doğrulama, veri maruziyeti - ancak uygulama detayları işlevlerin gerçek doğası nedeniyle farklı, olay odaklı tetikleyiciler ve yönetilen hizmetlere olan güven. Aşağıda sunucusuz ortamlarda nasıl ortaya çıktığını açıklıyoruz.

Enjeksiyon Saldırıları: Sadece SQL'den Daha Fazla

Enjeksiyon saldırıları herhangi bir API için en iyi risk olarak kalır. sunucusuz fonksiyonlarda, tehlike güçlendirilir çünkü işlevleri genellikle birden fazla kaynaktan giriş kabul eder: HTTP istekleri, veritabanı akışları, kuyruk mesajları, nesne depolama olayları ve daha fazlası.Eğer bir işlev bu girişi doğrulamaz veya kötüleştirebilirse, bir saldırgan kod veya komutlar enjekte edebilir. Örneğin, bir kullanıcı kimlik kabul eder ve parametresiz olarak herhangi bir veritabanında doğrudan yararlanamaz.

Başka bir ortaya çıkan vektörü:0)event enjeksiyonu[Dönetici: 1). Saldırıcılar herhangi bir insan fark etmeden önce birden çok hizmette bulunabilir (örneğin sahte S3 olay veya manipüle edilmiş bir kuyruk mesajı).

Una Yetkili Erişim ve Kırık Kimlik

Serverless API'ler genellikle API anahtarlarına güveniyor, OAuth 2.0 jetler veya özel kimlik doğrulama mantığına sahip.Sakly Uygulanmış kimlik doğrulama, saldırganların meşru kullanıcıları taklit etmesini veya yüksek ayrıcalıkları kazanmasını sağlar. Ortak bir tuzak yalnızca bir üst düzeye veya sorgu parametreye anahtarın, iç sağlık kontrollerini işlemek için geçerli veya geçerli olduğunu doğrulamadan güvenmek için yeni bir işleve güveniyor. ek olarak, özel bir ağ üzerinden kontrol etmek için açık bir şekilde kapatılabilir.

Serverless ortamlar da izini zorlaştırabilir çünkü “kullanıcı” ve “işlev” arasındaki sınır bulanıkdır.Bir fonksiyonu uzlaşmaya davet eden bir saldırgan, IAM rolleri çok izin verilirse aynı hesapta diğer işlevleri de yapabilir.

Data Leakage ve Exposure

Hassas veriler, sunucusuz API'ler aracılığıyla birkaç şekilde sızdırılabilir. İlk olarak, genellikle giriş parametrelerini ve cevaplarını silmeye yardımcı olabilir - bu loglar genellikle çevre değişkenleri veya geçici depolama ile merkezi bir giriş servisine gönderilir (örneğin, ikinci, hata mesajları istemciye geri dönebilir) Bu değerler, organik veri tabanı şemalarını ortaya koyar veya üçüncü sürümlerde veya bulut kaynakları tanımlayıcıları paylaşamaz.

Başka bir ince vektör: 03:0) Kanal veri sızıntısı yanıt zamanlaması yoluyla . Bir saldırgan, bir kullanıcı adının bir veritabanında var olup olmadığını, bir brute-force enumeration saldırısına izin verebilir.

Hizmet (DoS) ve Kaynak Eğlenme

Geleneksel DDoS saldırıları, ağ bant genişliği veya sunucu kapasitesinin aşırı derecede düşük olmasını hedefliyor. sunucusuz, saldırganın bulut faturasını çalıştırırken, birçok sunucusuz platformda ücretsiz olarak hizmet limitleri (örneğin, 1.000 eş zamanlı infaz) .......Eğer bir API'yi geçerli ancak hesaplamak pahalı taleplerle genişleterek, daha sonra tüm taleplerin kötüye gitmesine veya düşmesine gerek kalmadan bir servis ağının tamamını sınır dışı etmek için daha iyi bir şekilde sınır dışı etmek zorunda kalıyorlar.

DoS ayrıca düşük bağımlıları hedefleyebilir. Bir işlev üçüncü taraf API (örneğin, ödeme ağ geçidi) uygun zaman veya devre kesicileri olmadan, yavaş dış bir hizmet, işlevin yerine getirilmesine ve zaman geçirme bütçesinin tükenmesine neden olabilir.

İzinler ve Over-Privileged IAM Rols

Belki de en tehlikeli sunucusuz tehdit, bir işlevin içine verilen aşırı izinsiz bir IAM rolüdür. Geliştiriciler genellikle geniş bir politika (örneğin, 03., 03.03.2012) veya [[Dördüşütme: 4)) bir işleve sahip olmak, daha sonra üretimde kesintiye uğramak için bir çalışma alanı oluşturabilecek bir cihazdır.

IAM'ın ötesinde, yanlış yapılandırmalar API ağ geçidinde, VPC ayarlarında ve giriş hizmetlerinde meydana gelebilir. Örneğin, mağaza açma işlemleri için kullanılan bir S3 kova, veya API Gateway aşaması çok lax'ta KORS ayarları olabilir, çapraz-origin veri hırsızlığına izin verebilir.

Securing Serverless APIs için en iyi uygulamalar

Yukarıdaki tehditleri ortadan kaldırmak, gelişim, dağıtım ve koşu zamanı gerektiren bir tabakalı savunma gerektirir. Aşağıda koruyucu teknik tarafından organize edilen en etkili uygulamaları detaylandırırız.

1. Robust Authentication ve Authorization

Kimlik veya API'ler ile ilgili olarak, endüstri standart protokolleri kullanmak, endüstri standardı protokolleri kullanmak gibi.(D)OAuth 2.0) OpenID Connect veya }Amazon Cognito)) / [[Dörtücük kimlikleri kullanmak, güvenli bir OAuth0[Dönemli iletişim mantığınızı kesinlikle gerekli olmadıkça kendi kimlik doğrulama mantığınızı yuvarlamak.

Yazarlar her seviyede en az ayrıcalık prensibini takip etmelidir:

  • UseFLT:0)role tabanlı erişim kontrolü (RBAC)), belirli API uç noktalarına veya işlev izinlerine ilişkin kullanıcı rollerini haritalamak için.
  • ImplementFLT:0)tribute tabanlı erişim kontrolü (ABAC)), kaynak etiketleri veya kullanıcı özelliklerine dayanan iyileştirilmiş kararlar için.
  • Bulut seviyesinde, her işlevin IAM rolünü tam olarak ihtiyaç duyduğu eylemler ve kaynaklarla sınırlandırır. Örneğin, bir işlev sadece bir DynamoDB masasından okumalıysa, rolü ARN'ye izin vermeli - daha fazla şey yapmamalıdır.

API Gateway Lambda yazarizers[Dönetici yazarları) kullanarak geçerliliği ve politika nesillerini merkezileştirmeyi ve kontrol etmeyi kolaylaştırır.

2. Tüm girişleri Geçerli ve Sanitize et, Her yerde

Her girişin kaynağının ne olursa olsun, kaynağının ne olursa olsun, HTTP sorgu parametreleri, istek organları, başlık, yol parametreleri ve diğer hizmetlerden gelen olaylar (SNS, SQS, S3, vs.) Kullanıcı girişi doğrudan SQL sorgularına, Node.js) içerir.

Örneğin, olay odaklı fonksiyonlar için, gelen olayların yapısını onaylayın. Örneğin, fonksiyon süreçleri S3 olay bildirimleriniz varsa, olayın beklenen alanları içerdiğini kontrol edin ve kova adı izin verilen bir modelle eşleştirebilir. Bir saldırgan işlevi tetikleyen bir HTTP uç noktası aracılığıyla bir sahte S3 olayı gönderebilir.

Ek olarak, yansıtıcı enjeksiyonu önlemek için çıktıyı sanitize edin. API'niz kullanıcı tarafından desteklenen verileri döndürürse, bağlam için uygun şekilde kaçır (HTML, JSON, XML) yer alan senaryolama (XSS) veya diğer enjeksiyon saldırıları hedef aşağılayıcı tüketiciler için.

3.Komşu Hızlandırma, Throttling ve Bütçe Uyarıları

Hesaplamak için hem DoS saldırılarını hem de hesap kötüye kullanmayı önlemek önemlidir. API Gateway veya üçüncü taraf API ağ geçidi istemci başına talepleri sınırlamak için ( API anahtar veya IP) bir kaydırıcı pencereden.Bu, doğrudan olarak adlandırılan sunucusuz işlevleri için (örneğin, AWS Lambda Function URL ile), dikkate alın.

Örneğin, Lambda invokasyonları bir saat içinde belirli bir sayıyı aştığında veya maliyetlerde beklenmedik bir artış meydana gelir. Örneğin bulut sağlayıcınızda . Örneğin, Lambda invokasyonlarda bir uyarı oluşturmak, bir saat içinde belirli bir sayıyı veya maliyet artışının sık sık sık sık bir saldırı işaretidir.

4. Transit ve Restaksiyonda Şifre Verileri

Her zaman HTTPS'yi tüm API uç noktaları için uygulayın. TLS 1.2 veya daha yüksek kullanın ve sertifikaların geçerli ve düzgün bir şekilde yapılandırılmasını sağlayın. işlevleri ve veritabanı arasında iç iletişim için (örneğin, Lambda to RDS), TLS kullanarak geçişte şifreleme sağlar veya nakliye katmanında bir VPC kullanın.

Geri kalanı, sunucusuz uygulamanız için geçen tüm verileri şifreleyin. Bulut tabanlı şifreleme anahtarlarını kullanın (AWS KMS, Azure Key Vault, GCP Cloud KMS) S3 kova için, DynamoDB tabloları ve diğer depolama hizmetleri için.In sensitive data like user passwords or PII, implement application- levelcrypt before writing to storage so that even cloud administrators can read the correcttext.ENFLT:0)AWS Well-Architected for Serverless).

5. Sırları Yönetimi ve Çevre Değişkenleri Kullanımı

Hiçbir zaman zor kod anahtarları, veritabanı şifreleri veya diğer sırları işlev kodu veya yapılandırma dosyalarında kullanın. yerine, iş zamanında (özellikle geç saatlerde) gizli sırları kullanın veya güvenli bir kaynaktan gelen çevre değişkenlerini enjekte edin.

Bulut konsolunda veya CI/CD loglarında görünür olan sırları saklamadan kaçının.Eğer çevre değişkenlerini kullanmalısınız, şifrelemeyi onlara etkinleştirin (örneğin, AWS Lambda, alışılmamış bir şekilde şifre ortamı değişkenlerini kullanmıyor) Daha iyi, en az öncelikli izinlerle yöneticiden sırları alın.

6. İzleme, Log ve Uyarı Proaktif olarak

Ortalanmış oturum ve izleme, anomalileri erken tespit etmek için kritiktir. API Gateway (execution logs with request/response data) ve CloudWatch Logs veya eşdeğer aracılığıyla her işlev için yapılandırılabilir oturum açma. ancak, hassas verilere giriş yapmamaya dikkat edin - parolalar, belirteçler ve filtrelenme bilgileri gibi alanlardan çıkarma veya filtrelenme.

Şüpheli desenler için uyarıları ayarlayın:

  • 4xx veya 5xx hataları
  • Tek bir IP'den gelen davetlerde normal artış
  • İşlev normalde ulaşmaması gereken kaynaklara erişim
  • Yüksek yürütme süresi veya tekrarlanan zamanouts

Belirli bir tehdit algılaması veya açık kaynak alternatifi kullanarak, [DÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜSÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜ

7. Güvenli Fonksiyonlara Bağır ve Tedarik Zincirine Bağır

Serverless fonksiyonlar genellikle üçüncü taraf paketlere (npm, PyPI, NuGet) güvenebilirler. Düzenli olarak ağlarınızı kullanarak araçlarınızı arayabilirsiniz.)Snyk), [[Dönetici-Check) veya bulut sağlayıcınızın kırılganlığı tarayıcılarını kullanarak ve vahşi kart kartpostal kartlarını kullanarak kaçının.

Uygulamanın içeriğine göre, aşağıdaki gibi, aşağıdaki tabloda yer alan bir dizi işlemden dolayı, aşağıdaki tabloda yer alan bir işlemden dolayı, aşağıdaki gibi, aşağıdaki tabloda belirtilen bir şekilde, aşağıdaki gibi, aşağıdaki gibi, aşağıdaki tabloda belirtilen bir şekilde, aşağıdaki gibi bir işlemden haberdardır.

8. Etkinlik-Driven Mimarlıkları için Derinlikte Savunma

Serverless APIs genellikle asynchronous olaylara güveniyor: SQS kuyrukları tarafından tetiklenen fonksiyonlar, SNS konuları, DynamoDB Streams veya EventBridge. Her olay kaynağı potansiyel saldırı vektörlerini tanıtıyor. Örneğin:

  • [FONT:0]SQS: Bir işlev bir kuyruktan tüketilirse, bir saldırgan kötü niyetli mesajları enjekte edebilir.Daha sonra analiz için ölü kuyrukları kullanabilir ve kötü mesajları izole etmek için kullanabilir.
  • [[DynamoDB Akışları[[DFLT:1): Yalnızca yetkili uygulamaların yayına yazabileceğini sağlamak; aksi takdirde, bir saldırgan sahte değişim olayları ekleyebilir.
  • [FONT:0] EventBridge[[DÜT:1]: Hangi hesap ve hizmetlerin etkinlik otobüslerinize olayları yayınlayabildiği. istenmeyen olaylardan filtrelemek için olay kalıpları kullanın.

Her olay odaklı yol için, giriş geçerliliğini uygulayın ve HTTP uç noktaları için istediğiniz gibi aynı kimlik doğrulama ve yetki kontrollerini uygulayın.

9. Harden Function Execution ve Saldırı Yüzeyini Azalt

Serverless fonksiyonlar mümkün olduğunca yalın olmalıdır. Kullanılmamış izinler, gereksiz paketler devre dışı bırakmak ve uzun ömürlü kimlikleri gömmekten kaçınmalıdır. ephemeral depolama ([Dönetici 9) dikkatle: her bir davetten sonra açık geçici dosyaları ve hiçbir zaman orada sırları saklamaz.

Özel kaynaklara erişmek zorundaysa VPC'nin fonksiyonlarını dağıtmayı düşünün, ancak VPC-internal fonksiyonlarının NAT Gateway'i yapılandıramadığınız sürece halka açık uç noktaları kaybetmesi gerektiğinin farkında olun. Alternatif olarak, [[ENFLT:0)VPC uç noktaları[DKD][/FONT][/FONT][/TR][/TR][/FONT) S3 veya DynamoDB gibi hizmetlere erişmek için erişim sağlar.

10. Düzenli Güvenlik Denetimleri ve Eleştirme Testi

Güvenlik bir zaman konfigürasyonu değildir. IAM politikalarının periyodik incelemeleri, API Gateway konfigürasyonları ve işlev logları.Use tools like a-time configuration.(FLT:1), [[Dönetici) veya )Prowler[FLT: 5) Bulut çevrenizi yanlış yapılandırmak için denetlemek için bulut ortamınızı kontrol etmek için bulut ortamınızı kullanın.Özel API'ler için, doğrulama işlemlerine odaklanır.

CI/CD boru hattınızda otomatik uyumluluk kontrolleri. Örneğin, [[GÖRÜSÜSÜSÜSÜSÜSÜSÜSÜSÜSÜŞÜNÜŞÜK/ÜŞÜK/TRİYESİDÜSÜSÜSÜSÜSÜSÜSÜSÜSÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜN

Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç

Securing serverless APIs tek bir araç veya ayar uygulamak meselesi değildir - burada belirtilen sürekli, savunma- derinlemesine bir yaklaşım gerektirir - olaylar yoluyla, aşırı sağlanmış IAM rolleri, finansal DoS ve veri sızıntınızı her katmanda saldırmak için tasarlayabilirsiniz. Buradaki en iyi uygulamaları - güçlü kimlik doğrulama, giriş doğrulama, giriş doğrulama, değerlendirme, hız sınırlama, şifreleme, sır yönetimi, izleme ve tedarik zinciri hijyen - üretim seviyesi güvenlik için sağlam bir temel oluşturur.

Sunucusuz güvenlik sorumluluğunu unutmayın: Bulut sağlayıcı altyapıyı güvenceye alır, ancak kodunızı, verilerinizi ve izninizi garanti etmelisiniz.Normal olarak mimarisinizi sunucusuzluğa karşı çerçevelerinize gözden geçirebilirsiniz:0.AWS Well-Architected Security Pillar veya hıza sahip değildir).