AWS kaynaklarına verilen erişim izinleri, genellikle inceleme süreçlerinde "revoke" (kaldır) kararı alınsa bile fiilen kalmaya devam eder. Bu durum, birçoğumuzun bildiği ancak sistematik olarak ihmal edilen bir güvenlik riskidir. VIGIL, bu boşluğu kapatmak ve erişim incelemelerini hem otomatik hem de güvenilir hale getirmek amacıyla geliştirilen açık kaynaklı bir çözümdür.
Karar verme ve uygulama aynı anda: VIGIL’in temel mantığı
Geleneksel erişim inceleme süreçlerinde, bir kaynak sahibi kullanıcıya ait erişimi "devam etsin" ya da "kaldırsın" şeklinde karar verir. Ancak bu karar genellikle yalnızca bir kayda (örneğin bir Excel dosyasına) işlenir ve gerçek kaynaklardaki izinler dokunulmadan kalır. VIGIL, bu süreci baştan sona değiştiriyor:
- Kaynakları,
owneretiketiyle otomatik olarak keşfediyor ve kimin erişimi olduğunu belirliyor. - Kaynak sahibinden, ilgili erişimi koruma, daraltma ya da tamamen kaldırma seçeneklerinden birini seçmesini istiyor.
- Seçilen kararı anında kaynak üzerinde uyguluyor.
- Tüm işlemleri, gelecekte denetim yapılabilmesi için kanıt olarak kaydediyor.
Bu yaklaşım, karar verme sürecini yalnızca bir belgeye dönüştürmek yerine, doğrudan güvenlik açıklarını kapatmayı hedefliyor.
En hassas kural: Erişim kısıtlamalarında aşırıya kaçmamak
Erişimleri kaldırırken karşılaşılan en büyük tehlike, geniş çaplı bir değişiklik yaparak sistemde beklenmedik kesintilere yol açmaktır. Örneğin, bir kullanıcının bir S3 kovasına erişimini kaldırmak için tüm IAM politikalarını ayırmak, kullanıcının diğer kaynaklardaki yetkilerini de aniden iptal edebilir. VIGIL, bu riski ortadan kaldırmak için hedefe yönelik değişiklikler uygular:
- Erişim, bir S3 kova politikasından geliyorsa, yalnızca o kullanıcıyı ya da belirli eylemleri (örneğin
s3:PutObject) o kovadan kaldırır. - Erişim, kullanıcının kendi IAM politikasından geliyorsa, yalnızca ilgili kaynağa yönelik bir açık Red politikası ekler ve diğer yetkileri etkilemez.
- Eğer bir değişiklik güvenli bir şekilde uygulanamıyorsa (örneğin birden fazla kaynağa yayılmış izinler), doğrudan bir ticket oluşturur ve değişikliği elle uygulamaya bırakır.
Bu sayede, erişim kısıtlamaları sistemde kesintiye neden olmadan, hassas bir şekilde gerçekleştirilir.
Değişikliklerin kalıcı ve güvenilir olması
VIGIL’in mimarisi, değişikliklerin kaybolmamasını ve güvenilir bir şekilde uygulanmasını sağlayacak şekilde tasarlanmıştır. İşlemler şu şekilde ilerler:
- API katmanı, kullanıcının kararını doğrular ve kaydeder, ardından bu değişikliği SQS kuyruğuna gönderir.
- Ayrı bir çalışan (worker), kuyruktan aldığı görevi idempotent (tekrarlanabilir) bir şekilde yerine getirir.
- Herhangi bir başarısızlık durumunda, çalışan değişikliği tekrar denemeye çalışır ve eğer başarısız olursa, görevi ölü mektup kuyruğuna (dead letter queue) aktarır.
- API katmanı, kullanıcıya hızlı bir yanıt verirken, arka planda değişiklik güvenilir bir şekilde uygulanır.
Bu tasarım, hem kullanıcı deneyimini iyileştirir hem de değişikliklerin kalıcı olmasını sağlar.
Denetçilere sunulabilecek kanıtlar: Hash zincirli kayıtlar
Güvenlik denetimlerinde en sık karşılaşılan sorunlardan biri, yapılan değişikliklerin kanıtlanabilir olmamasıdır. VIGIL, bu sorunu hash zincirli kayıtlar sistemiyle çözüyor:
- Her değişiklik ve karar, birbirine hash ile bağlanan kayıtlara yazılır. Bu sayede kayıtların değiştirilmesi ya da silinmesi tespit edilebilir.
- İsteğe bağlı olarak, kayıtlar WORM (Write Once, Read Many) depolama alanına (S3 Object Lock) kopyalanabilir. Bu, kayıtların belirli bir süre boyunca değiştirilemez ya da silinemez olmasını sağlar.
- Sistem, her değişiklikten önceki durumu da kaydettiği için, gerektiğinde değişiklikleri geri alma olanağı sunar.
Denetçiler, sistemde yapılan değişikliklerin ne olduğunu ve bu değişikliklerin gerçekten uygulanıp uygulanmadığını, basit bir şekilde doğrulayabilir.
Geleceğe yönelik esneklik: Bağlayıcı (connector) sistemi
VIGIL’in mimarisi, farklı AWS hizmetlerine kolayca entegre olabilmesini sağlayacak şekilde tasarlanmıştır. Günümüzde desteklenen bağlayıcılar arasında S3 kovaları, IAM kullanıcıları, IAM roller ve EC2 örnekleri bulunur. Yeni bir hizmeti desteklemek içinse yalnızca dört temel yöntemi içeren bir bağlayıcı yazmak yeterlidir:
snapshot: Kaynak durumunu kaydetmek.revoke: Erişimi kaldırmak.modify: Erişimi daraltmak ya da değiştirmek.rollback: Değişikliği geri almak.
Örneğin, RDS, SNS, SQS ya da Secrets Manager gibi hizmetler için yeni bir bağlayıcı yazmak, sistemin çekirdek motorunu değiştirmeyi gerektirmez. Bu sayede, VIGIL’in kapsamı sürekli olarak genişleyebilir.
Sunucu gerektirmeyen mimari ve kolay kurulum
VIGIL, tamamen sunucu gerektirmeyen bir altyapı üzerinde çalışır:
- AWS Lambda: Değişiklikleri uygulamak için kullanılan ana motor.
- SQS ve DLQ: Değişikliklerin güvenilir bir şekilde kuyruğa alınmasını ve işlenmesini sağlar.
- DynamoDB: Karar ve değişiklik kayıtlarını saklar.
- Cognito ve API Gateway: Kullanıcı kimlik doğrulamasını ve REST API erişimini yönetir.
- SES: Bildirimler için kullanılır.
Sistem, AWS SAM şablonu ve hızlı başlangıç rehberi ile birlikte gelir. Ayrıca, özel bir kullanıcı arayüzü oluşturmak isteyen geliştiriciler için de dokümantasyonlu bir REST API sunar.
Pratik kullanım ve katkıya açık yapı
VIGIL, üretim ortamına hazır bir şekilde tasarlanmıştır. Sistemde yer alan özellikler arasında idempotent çalışma, ölü mektup kuyruğu destekli işlemler, en az ayrıcalık ilkesine uygun IAM roller, hash zincirli kanıtlar ve isteğe bağlı WORM depolama bulunur. Ayrıca, sistem bir test paketi ile birlikte gelir.
Projeyi kullanmaya başlamak için:
- GitHub deposunu klonlayın.
- Kaynaklarınızı
owneretiketiyle etiketleyin. - Bir inceleme döngüsü başlatın.
Herhangi bir güvenlik aracında olduğu gibi, VIGIL’i kendi ortamınıza entegre etmeden önce, kendi standartlarınıza göre inceleyin. Geri bildirimlerinizi ve yeni bağlayıcı katkılarınızı bekliyoruz.
Güvenlik ve erişim yönetimi, artık yalnızca bir belgeye imza atmakla sınırlı değil. VIGIL, karar verme sürecini doğrudan güvenlik iyileştirmelerine dönüştüren bir araç olarak öne çıkıyor. Gelecekte, benzer otomatikleştirilmiş çözümlerin daha da yaygınlaşması ve güvenlik açıklarının en aza indirilmesi bekleniyor.
Yapay zeka özeti
AWS erişim incelemeleri genelde etkisiz kalır. VIGIL, karar ve uygulamanın aynı adımda gerçekleşmesini sağlayarak erişim güvenliğini otomatikleştiriyor ve denetçilere kanıt sunuyor.