0Pricing
Cloud & IT Cert Prep · Ders

Sunucusuz Sistem ve İşlev Güvenliği

Sunucusuz işlevlerin kendine özgü saldırı yüzeyini (aşırı yetkili IAM rolleri, olay enjeksiyonu, bağımlılık riskleri) belirleyin ve en az ayrıcalık ile girdi doğrulama denetimlerini uygulayın.

Sunucusuz Sistem ve İşlev Güvenliği, CoddyKit'te ücretsiz bir Cloud & IT Cert Prep dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Cloud & IT Cert Prep öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.

Sunucusuz Bilişim Nedir?

Sunucusuz bilişim (Hizmet Olarak İşlevler, FaaS), geliştiricilerin temel sunucuları yönetmeden olaylar (HTTP istekleri, kuyruk iletileri, veritabanı tetikleyicileri veya zamanlanmış sayaçlar) tarafından çağrılan tek tek işlevleri dağıtmasına olanak tanır. Önde gelen platformlar arasında AWS Lambda, Google Cloud Functions ve Azure Functions bulunur. Bulut sağlayıcısı yamaları, ölçeklendirmeyi ve altyapıyı yönetir. Bu, operasyonel yükü azaltırken güvenlik sorumluluğu modelini değiştirir: sağlayıcı çalışma zamanını güvenceye alır, ancak geliştirici işlev kodundan, izinlerden ve yapılandırmadan tamamen sorumludur.

Sunucusuz Ortamın Benzersiz Saldırı Yüzeyi

Sunucusuz işlevler, geleneksel uygulamalara kıyasla farklı bir saldırı yüzeyi sunar: işlevler genellikle kısa ömürlüdür (saniyeler ile dakikalar arası); bu nedenle geleneksel EDR ve ağ izleme daha az etkilidir. İşlevler olay güdümlüdür; yani çok farklı giriş kaynakları (S3 olayları, API Gateway, SNS) çalıştırılmalarını tetikleyebilir. Ayrıca diğer bulut Resource'larına erişebilen IAM izinleriyle çalışırlar ve kötü amaçlı kod içerebilen üçüncü taraf bağımlılıklarını (npm, pip paketleri) sıkça kullanırlar. Saldırı yüzeyi; olay girdileri, IAM izinleri ve bağımlılık güven zincirleri tarafından belirlenir.

Aşırı Yetkili IAM Rolleri: En Büyük Tehdit

En yaygın sunucusuz güvenlik açığı aşırı yetkili IAM rolleridir. Geliştiricilerin bir işlevin tek bir S3 kovasına erişmesini sağlaması gerektiğinde, izin hatalarını önlemek için s3:* (tam S3 erişimi) atamak cazip gelebilir. Bu role sahip, güvenliği ihlal edilmiş veya savunmasız bir işlev, hesapta bulunan tüm kovaları okuyabilir, yazabilir ya da silebilir. Savunma, katı en az ayrıcalıklı IAM rolleridir: her işlev, yalnızca o işlevin belirli görevleri için gereken asgari izinleri veren özel bir role sahip olmalıdır. AWS IAM Access Analyzer ve Cloudsplaining gibi araçlar aşırı yetkili Lambda rollerini otomatik olarak belirler.

# 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/*'
  }]
}

Olay Enjeksiyonu Saldırıları

Olay enjeksiyonu, bir olay yükündeki saldırgan denetimindeki verilerin işlev kodu tarafından güvenli olmayan biçimde işlenmesiyle gerçekleşir. Sunucusuz işlevler birçok olay kaynağı tarafından tetiklenebildiğinden (HTTP üst bilgileri, sorgu parametreleri, veritabanı değişiklik kayıtları, kuyruk ileti gövdeleri ve e-posta içeriği), bunların herhangi biri kötü amaçlı yük taşıyabilir. Yaygın enjeksiyon türleri şunlardır: işlev olay verilerini kullanarak bir veritabanını sorguluyorsa SQL enjeksiyonu, NoSQL enjeksiyonu (JSON yüklerinde MongoDB işleçleri), olay verileri OS komutlarında kullanılıyorsa komut enjeksiyonu ve olay verilerindeki URL'ler alınıyorsa SSRF (Sunucu Taraflı İstek Sahteciliği). Girdi doğrulama ve parametreli sorgular temel savunmalardır.

# 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']);

Bağımlılık Riski: Üçüncü Taraf Paketleri

Sunucusuz işlevler sıklıkla düzinelerce üçüncü taraf paketine bağımlıdır. Bu bağımlılıklar tedarik zinciri riski oluşturur: kötü amaçlı veya güvenliği ihlal edilmiş bir paket, işlevin yürütme ortamında rastgele kod çalıştırabilir, çoğu zaman gizli bilgiler içeren ortam değişkenlerine erişebilir, dış ağa bağlantılar kurabilir ve bulut Resource'larına erişmek için işlevin IAM rolünü kullanabilir. event-stream npm paketi güvenlik ihlali (2018) ve çok sayıda typosquatting paketi gibi yüksek profilli saldırılar bu riski gösterir. Savunmalar arasında bağımlılıkları sabitleme, CI/CD'de SCA taraması ve bağımlılık ayak izini asgari düzeyde tutma bulunur.

Sunucusuz Ortamda Gizli Bilgiler: Ortam Değişkenleri

Sunucusuz işlevler çoğu zaman gizli bilgileri bulut konsolunda yapılandırılan ortam değişkenleri aracılığıyla alır. Bu ortam değişkenleri, Lambda yapılandırmasına IAM erişimi olan herkes tarafından görülebilir ve işlev içinde çalışan herhangi bir kod tarafından okunabilir. En iyi uygulamalar şunlardır: gizli bilgileri doğrudan düz metin ortam değişkenleri olarak depolamaktan kaçının; bunun yerine ARN'leri veya gizli bilgi adlarını depolayın ve çalışma zamanı sırasında gizli bilgileri AWS Secrets Manager veya Parameter Store'dan alın; Lambda ortam değişkenleri için beklemede KMS şifrelemesini etkinleştirin ve ortam değişkenlerini asla günlük kaydına yazmayın (birçok hata ayıklama günlükleyicisi hata durumunda tüm ortam değişkenlerini döker).

# 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;

İşlev Zaman Aşımı ve Eşzamanlılık Sınırları

Sunucusuz işlevlere yönelik hizmet reddi, çağrıların aşırı yüklenmesi biçiminde gerçekleşebilir: bir işlevi tekrar tekrar tetikleyebilen saldırgan, hesabın eşzamanlılık sınırını tüketebilir (Lambda'nın varsayılanı bölge başına 1.000 eşzamanlı yürütmedir); bu da hesaptaki diğer işlevlerin çalışmasını engeller. Kullanıcı denetimindeki girdileri işleyen işlevler, API Gateway düzeyinde hız sınırlama uygulamalı, yük boyutu sınırlarını doğrulamalı ve kontrolsüz yürütmeleri önlemek için uygun zaman aşımı değerleri belirlemelidir. Girdi boyutla sınırlandırılmamışsa XML/YAML ayrıştırmada işlevler Billion Laughs tarzı genişleme saldırılarının da hedefi olabilir.

# AWS Lambda: set reserved concurrency to prevent account-wide DoS
aws lambda put-function-concurrency \
  --function-name my-api-handler \
  --reserved-concurrent-executions 100

VPC Entegrasyonu ve Ağ Yalıtımı

Varsayılan olarak AWS Lambda işlevleri, internet erişimi olan ancak özel VPC'nizdeki Resource'lara (RDS veritabanları, ElastiCache, özel API'ler) erişimi olmayan, AWS tarafından yönetilen bir VPC'de çalışır. Özel Resource'lara erişmek için Lambda'nın belirli alt ağlar ve güvenlik gruplarıyla VPC'nizin içinde çalışacak şekilde yapılandırılması gerekir. Ancak VPC'ye bağlı Lambda işlevlerinin varsayılan olarak internet erişimi yoktur; dış internete çıkış için bir NAT Gateway gerekir. Lambda işlevlerine bağlı güvenlik grupları en az ayrıcalık kurallarını izlemeli ve yalnızca gereken belirli bağlantı noktalarına ve hedeflere izin vermelidir. Üretim işlevlerinin güvenlik gruplarında dışa yönelik 0.0.0.0/0 kurallarını kullanmaktan kaçının.

Sunucusuz İşlevleri İzleme

Sunucusuz güvenliği izlemek, geleneksel ana bilgisayar izlemeye kıyasla farklı yaklaşımlar gerektirir. İşlevler geçici olduğundan ana bilgisayar tabanlı aracılar pratik değildir. Etkili izleme şunları kullanır: tüm Lambda API çağrılarını (çağrılar, yapılandırma değişiklikleri, rol varsayımları) kaydetmek için AWS CloudTrail; anormal örüntüler açısından işlev yürütme günlüklerini sorgulamak için CloudWatch Logs Insights; olağan dışı Lambda ağ etkinliği de dahil olmak üzere tehdit tespiti için Amazon GuardDuty; ve çalışma zamanı görünürlüğü sağlamak üzere katmanlar aracılığıyla işlevlere araç ekleyen, Protego (artık Check Point'in parçası) veya Datadog'un sunucusuz izleme çözümü gibi ticari, sunucusuz yerel güvenlik araçları.

# 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/'

Sunucusuz Güvenlik Testi

Sunucusuz güvenliği test etmek için özel araçlar gerekir: PureSec CLI (artık Check Point) ve Prowler, bulut yapılandırmalarını sunucusuz yanlış yapılandırmalar açısından tarar; DAST araçları, HTTP ile tetiklenen işlevleri enjeksiyon güvenlik açıkları açısından test edebilir; Bandit (Python) veya ESLint güvenlik eklentileri gibi araçlarla işlev kodunun statik analizi, güvensiz kodlama örüntülerini yakalar. El ile yapılan testlerde de her işlevi tetikleyebilecek tüm olay kaynakları listelenmeli ve her biri hatalı biçimlendirilmiş ve kötü amaçlı yüklerle test edilmelidir. OWASP Serverless Top 10, sunucusuz mimarilere özgü kapsamlı bir güvenlik açığı kontrol listesi sunar.

# Prowler: check Lambda security posture
prowler aws --service lambda
# Checks: public URL, over-privileged roles, unencrypted env vars,
# outdated runtime, missing VPC config, excessive timeout

Sunucusuz Ortamda Paylaşılan Sorumluluk

Sunucusuz bilişim, paylaşılan sorumluluk modelini sağlayıcıya doğru daha da genişletir. Bulut sağlayıcısı şunlardan sorumludur: işlev çalışma zamanı ortamı, OS yamaları, temel altyapı güvenliği ve fiziksel tesisler. Müşteri ise şunlardan sorumlu olmaya devam eder: işlev kodu güvenliği, IAM izin tasarımı, gizli bilgi yönetimi, girdi doğrulama, bağımlılık yönetimi, günlük kaydı yapılandırması ve ağ ilkeleri. Azalan altyapı sorumluluğu, azalan güvenlik sorumluluğu anlamına gelmez; yalnızca güvenlik yatırımının odaklanması gereken yeri değiştirir ve odağı öncelikle uygulama düzeyi ve IAM güvenliğine kaydırır.

Hızlı Check

Bu dersteki CompTIA Security+ (SY0-701) kavramlarını anlayıp anlamadığınızı sınayın.

Ders Özeti

Bu derste şunları öğrendiniz: aşırı yetkili IAM rolleri temel sunucusuz riskidir; her işlevin en az ayrıcalıklı, özel bir role ihtiyacı vardır. Olay enjeksiyonu saldırıları, girdi doğrulaması olmayan işlevlere saldırgan denetimindeki verileri ileten tüm olay kaynaklarından yararlanır. Üçüncü taraf paketlerden kaynaklanan bağımlılık tedarik zinciri riski, IAM kimlik bilgilerine ve gizli bilgilere erişerek işlev yürütmesinin güvenliğini ihlal edebilir. Sırada dağıtımdan önce yanlış yapılandırmaları yakalamak için Kod Olarak Altyapı güvenlik taramasını inceleyeceğiz.

Sıkça Sorulan Sorular

“Sunucusuz Sistem ve İşlev Güvenliği” dersi ücretsiz mi?

Evet — “Sunucusuz Sistem ve İşlev Güvenliği” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Cloud & IT Cert Prep kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.

“Sunucusuz Sistem ve İşlev Güvenliği” dersinde ne öğreneceğim?

Sunucusuz işlevlerin kendine özgü saldırı yüzeyini (aşırı yetkili IAM rolleri, olay enjeksiyonu, bağımlılık riskleri) belirleyin ve en az ayrıcalık ile girdi doğrulama denetimlerini uygulayın. Cloud & IT Cert Prep ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Cloud & IT Cert Prep öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Cloud & IT Cert Prep, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Sunucusuz Sistem ve İşlev Güvenliği” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Cloud & IT Cert Prep dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Cloud & IT Cert Prep dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Kapsayıcı Güvenliği: İmajları Sağlamlaştırma ve Çalışma Zamanı Koruması
  2. Kubernetes Güvenliği: RBAC, Ağ Politikaları ve Pod Güvenliği
  3. Sunucusuz Sistem ve İşlev Güvenliği
  4. Kod Olarak Altyapı Güvenlik Taraması
← Cloud & IT Cert Prep Sayfasına Dön