Amazon Inspector'a Giriş

aws-inspector
security
compliance

(Seçkin Baytekin) #1

Amazon Inspector’a Giriş

Merhabalar, bu yazımda sizlere Amazon’un tarama/değerlendirme servisi olan Amazon Inspector’dan bahsedeceğim. Önce Amazon Inspector’un hangi ihtiyaçları karşıladığından, ne işe yaradığından, kapsamının ne olduğundan bahsedeceğim, ardından hazırladığım OpenVPN sunucusuna Amazon Inspector ile bir değerlendirme demosu yapacağız. Yazımı oldukça sade tutmaya çalıştım, elimden geldiğince Türkçeleştirerek yazmayı ve konuyla ilgili hemen her noktaya değinmeyi hedefledim ve en önemlisi demoyu Türkçe bilen herkesin deneyip uygulayabileceği şekilde tasarlamaya çalıştım umarım amacıma ulaşabilmişimdir :slight_smile: olumlu/olumsuz yorumlarınızı önemsiyorum, keyifli okumalar.

AWS, PCI-DSS (Payment Card Standards), ISO (International Organization for Standardization)(9001, 27001, 27017, 27018), FFIEC (Financial Institutions Regulation), NIST (National Institute of Standards and Technology), FIPS (US Goverment Security Standards) ve benzeri bir çok farklı regülasyona tabi organizasyon AWS kullanmaktadır. AWS güvenlik standartlarını karşılamak için paylaşımlı sorumluluk modeli (Shared Responsibility Model) tanımlamıştır ve bu model bir çok farklı regülasyon için güvenli bulunmuştur ve bu anlamda beklenen standartları karşılamaktadır.


Ekran Görüntüsü: (“Shared Responsibility Model”)

AWS organizasyonların, kendi kendilerini güvenlik anlamında daha rahat denetleyebilmeleri ve kullandıkları EC makinelerinin, kendi uygulamalarının durumlarını güvenlik anlamında daha iyi analiz edebilmeleri amacıyla Amazon Inspector’u çıkartmıştır. 7 Ekim 2015 duyurulan Amazon Inspector; merkezi olarak çalışan bir zafiyet tarama aracı, otomatize güvenlik değerlendirme servisi ve de bir çeşit içerden tarama yapan bir bot servisi olarak çalışır. Kullandığınız EC2 makinelerinizde, uygulamalarınızda bulunabilecek potansiyel güvenlik problemlerinin, yanlış yapılandırmaların ve zafiyetlerin tanımlamaları yapar, bu problemlere yönelik çözüm önerilerini de içeren ayrıntılı bir rapor hazırlar.

Amazon Inspector ile taramak istediğiniz EC2 kaynaklarını/kaynak koleksiyonlarını, değerlendirme hedefleri (“Assessment targets”) seçeneği ile tanımlayabilirsiniz. Tanımlamanız bittikten sonra oluşturduğunuz şablon “Assesment templates” menüsüne düşecektir, buradan biraz önce “Assessment targets” menüsünden oluşturduğunuz taslağınız için “run” diyerek taramayı başlatabilirsiniz. Yazının devamında bunun nasıl yapıldığını görsellerle birlikte anlatacağım şimdilik ön bilgi olması açısından belirtmek istedim. :slight_smile:

Amazon Inspector ile “Assessment run” diyerek başlattığınız tarama/değerlendirme süresince belirlediğiniz kaynaklarda (EC2/Stacks) yani makinelerde ağ trafiği, dosya sistemi ve çalışan süreçlerin (process) aktiviteleri izlenir ve yapılandırma (configuration) verileriyle birlikte toplanır (bu işlem belirlediğiniz çeşitli kural paketlerinin özelliklerine göre farklılaşır), bunun yanında bu veriler diğer Amazon web servisleriyle yapılan iletişimin ayrıntılarını, kullanılan güvenli kanalların kullanımını, çalışan süreçler (process) arasındaki ağ trafiğini ve bu süreçlerin ayrıntılarını da içerir. Toplanan bu veriler ilişkilendirilir, analiz edilir ve değerlendirme şablonu hazırlarken seçtiğiniz kural paketlerine göre karşılaştırılması yapılır, bu değerlendirme sonucunda sisteminizdeki güvenlik zafiyetlerine ait bulguları ve bunların önem dereceleriyle birlikte bir rapor alırsınız.

Amazon Inspector Kural Paketleri (“Rules Packages”)
Hazırlayacağınız Amazon Inspector Değerlendirme Taslağının (Amazon Inspector Assessment Template) çalışma süresi, kullanacağınız kural paketlerinin türlerine de bağlı olmakla birlikte birbirinden farklı çalışma süreleriyle birlikte sunulmuştur (15dk, 1sa, 8sa gibi), bu değerlendirme süreci ne kadar uzun olursa Amazon Inspector’un inceleyeceği veri o derece artacak ve bu doğrultuda daha kesin sonuçlar verecektir. Muhtemelen daha çok bulgu çıkaracaktır. Önerilen, varsayılan çalışma süresi 1 saattir. Ayrıntılı bilgiyi https://docs.aws.amazon.com/inspector/latest/userguide/inspector_assessments.html adresinden bulabilirsiniz.
Değerlendirme şablonu hazırlarken seçebileceğiniz birkaç farklı kural paketinden bahsetmiştik bunlarla ilgili ayrıntılar şu şekildedir;

Common Vulnerabilities and Exposures
Bu tarama kuralları grubu; zafiyetleri yamalanmadan kalmış ve/veya zafiyeti istismar edebilecek kodları internette yayınlanmış, herkesçe bilinen zafiyetleri kapsar. Bu gruba giren zafiyetlere karşı yapılacak saldırılar çalışan servisleri veya doğrudan veriler üzerinde, bütünlüğün bozulması, erişilebilirliğin engellenmesi ya da gizliliğin ihlal edilmesi unsurlarından en az birine yol açarlar (daha fazla bilgi için: https://cve.mitre.org/ https://whatis.techtarget.com/definition/Confidentiality-integrity-and-availability-CIA ).
Tarama sonucu çıkan bulgular CVE koduyla raporda yer alırlar, bunlar hakkında ayrıntılı bilgiye https://cve.mitre.org/ adresinden zafiyet kodunu aratarak ulaşabilirsiniz.

Center for Internet Security (CIS) Benchmarks
CIS; İnternet güvenliği merkezinin kısaltmasıdır. Siber güvenlik alanında otorite sayılır. Özel kurumlarla ve devlet kurumlarıyla beraber hem saldırı hem savunma alanında global ölçekli bir çok çalışma yürütmüştür. Multi-State Information Sharing and Analysis Center (MS-ISAC), CIS Security Benchmarks, and CIS Critical Security Controls hizmetleriyle bilinirler.
CIS Benchmarks programı kuruluşların güvenlik değerlendirmelerine, iyileştirmelerine yardımcı olmak için objektif bir bakış açısıyla onları değerlendiren, uygulanabilir endüstri çözümleri sunan bir programdır. Bu anlamda AWS CIS Benchmark Sertifikasına sahip üye bir şirkettir. Kısacası AWS kullanıyorsanız ve aşağıdaki makine tiplerini kullanıyorsanız eğer Inspector ile tarama yaptıktan sonra çıkan bulguları CIS Benchmark size nasıl daha güvenli ve düzgün yapılandırabileceğiniz hakkında ayrıntılı bilgi sağlar.

Security Best Practices
Bu kurallar sistemin güvenli olarak yapılandırılmasını hedefler. Örnek vermek gerekirse sunucuya root olarak ssh protokolüyle bağlanmanın engellenmesi, parolanın minimum uzunluğunun ya da karmaşıklığının belirlenmesi veya bellek taşması zafiyetlerine karşı işletim sistemlerinde bulunan veri yürütme engellemesi özelliğinin aktif edilmesi (DEP: Data Execution Prevention). Ayrıntılı bilgi için: https://docs.aws.amazon.com/inspector/latest/userguide/inspector_security-best-practices.html

Runtime Behavior Analysis
Bu kurallar sistemin ve çalışan uygulamaların davranışlarını, tarama/değerlendirme (Assessment) süresince inceler. Security Best Practices kurallarında olduğu gibi belirli genel kuralların sistemin genelinde tarama sürecinde yaşanıp yaşanmadığını analiz ederler. Sistemde çalışan tüm yazılımların veri yürütme engellemesini (DEP) desteklemesi ya da sistemde güvensiz protokol kullanımı vb. incelediği sorunlarındandır. Ayrıntılı bilgi için: https://docs.aws.amazon.com/inspector/latest/userguide/inspector_runtime-behavior-analysis.html


Ekran Görüntüsü: (“Rules Packages Availability Across Supported Operating Systems”)

Kural paketleriyle ilgili ayrıntılı bilgi için:
https://docs.aws.amazon.com/inspector/latest/userguide/inspector_rule-packages.html adresini ziyaret edebilirsiniz.

Limitasyonlar
Oluşturulabilecek değerlendirme şablonu limiti her AWS hesabı için 500’dür, ayrıca varsayılan olarak AWS hesabı başına toplamda 50.000 tarama/değerlendirme yapabilirsiniz. Bunun yanında Inspector henüz her bölgede hizmet vermemektedir, mesela Londra’da hizmet vermemektedir :slight_smile: bu yazıyı hazırlarken bu konuyla ilgili bir problem yaşadığım için yoğurdu üfleyerek yeme durumu oluştu haliyle. Şuan hizmet verilen bölgeler; Asya Pasifik (Mumbai, Sydney, Seoul, Tokyo), EU (Ireland, Frankfurt), US East(N. Virginia, Ohio), US West (N. California, Oregon)'dur. Bunun yanında Inspector’u her işletim sistemi için de kullanamazsınız, kullanabileceğiniz makinelerin listesi aşağıdadır.
Amazon Linux 2 (2017.12)
Amazon Linux (2018.03, 2017.09, 2017.03, 2016.09, 2016.03, 2015.09, 2015.03, 2014.09, 2014.03, 2013.09, 2013.03, 2012.09, 2012.03)
Ubuntu (18.04 LTS, 16.04 LTS, 14.04 LTS)
Red Hat Enterprise Linux (7.2 - 7.5, 6.2 - 6.9)
CentOS (7.2 - 7.5, 6.2 - 6.9)
Windows Server 2008 R2
Windows Server 2012
Windows Server 2012 R2
Windows Server 2016 Base

Inspector Fiyatlandırması
Amazon Inspector değerlendirmeye girecek EC2 makinelere kurduğunuz Inspector Agent’larının miktarına göre ve seçtiğiniz kural paketlerinin sayısana göre fiyatlandırma yapar, agent başı en pahalı birim fiyatı $0.30’dır. Yani basit bir matematikle 10 sunucunuz olsa ve 4 kural paketini de seçmiş olsanız 40 * 0.30 = $12 ödersiniz. Bunun yanında eğer hiç Amazon Inspector kullanmadıysanız 90 gün boyunca ilk 250 değerlendirme/tarama ücretsizdir. Diğer bir çok AWS servisinde olduğu gibi Amazon Inspector’da da kullanacağınız değerlendirme sayısı arttıkça birim fiyat düşer. Ayrıntılı bilgi için: https://aws.amazon.com/inspector/pricing/ adresini ziyaret edebilirsiniz.

Amazon Inspector Agents
Amazon Inspector’ı kullanabilmek için ilk olarak kullandığınız EC2 makinelerine Inspector Agent’ı yüklemelisiniz. Amazon Inspector Agent EC2 makinenizin ağ, dosya sistemi ve süreç (process) etkinliklerini izler, buna göre davranış ve yapılandırma verilerini toplar ve daha sonra bu veriler Amazon Inspector ile analiz edilir. Amazon Inspector Agent’ın bu işleri gerçekleştirebilmesi için Linux sistemlerde “root”, Windows sistemlerde yapabilmesi için “LocalSystem” yetkilerine ihtiyacı vardır. Amazon Inspector Agent “amznmon64” adında bir kernel modülü kullanır ve bu modül aynı zamanda genel kamu lisanslıdır (“GPLv2”), kaynak kodlarına ve imza dosyasına:
https://s3.amazonaws.com/aws-agent.us-east-1/linux/support/AwsAgentKernelModule.tar.gz
https://s3.amazonaws.com/aws-agent.us-east-1/linux/support/AwsAgentKernelModule.tar.gz.sig
adreslerinden ulaşabilirsiniz.
Amazon Inspector Agent’ını 2 yolla kurabilirsiniz; ssh ile makineye/makinelere bağlanıp terminalden manuel olarak veya AWS arayüzü üzerinden kurulumu gerçekleştirebilirsiniz.
Terminalden Inspector Agent kurulumu için EC2 makinenize/makinelerinize ssh’la bağlanın, sonra
wget https://d1wk0tztpsntt1.cloudfront.net/linux/latest/install
curl -O https://d1wk0tztpsntt1.cloudfront.net/linux/latest/install
komutlarından biriyle yükleyin, ardından
sudo bash install
komutuyla çalıştırın.

Amazon Inspector Agent’ı web arayüzünden makineye kurmak için:

AWS arayüzünden EC2 servisini seçiyoruz ve buradan aşağıdaki görselde seçilmiş olan “Systems Manager Services” altındaki “Run Command”’ı seçiyoruz.


Ekran Görüntüsü: (“EC2”)

Buradaki arayüzden tekrar “Run a command”’ı seçerek ilerliyoruz.


Ekran Görüntüsü: (“EC2 Systems Manager”)

Command document kısmına “AmazonInspector-ManageAWSAgent” yazarak çalıştıracağımız komutla Inspector Agent’ını kuracağımızı belirtiyoruz ve aşağıdan bu seçeneği seçiyoruz ardından “Select Targets by” kısmına makineyi oluştururken girdiğimiz etiket ve değerini (key/value) seçiyoruz. Kurulum sürecini hızlandırmak adına en alttaki “Timeout (seconds)” kısmını 30’a çekebilirsiniz (girilebilecek en az süre miktarı bu olduğu için 30). Ardından “Run” diyerek “Agent”’ı yükleme işini tamamlıyoruz.


Ekran Görüntüsü: (“EC2 Systems Manager, Run a command”)


Ekran Görüntüsü: (“Run a command status”)

Amazon Inspector Agent’ın nasıl kurulacağı, kaldırılacağı, yeniden yükleneceği, yüklü aracının çalışıp çalışmadığı ve Amazon Inspector Agent’lar için proxy desteğinin nasıl yapılandırılacağı konusunda ayrıntılı bilgi için:
https://docs.aws.amazon.com/inspector/latest/userguide/inspector_agents.html
https://docs.aws.amazon.com/inspector/latest/userguide/inspector_installing-uninstalling-agents.html
https://docs.aws.amazon.com/inspector/latest/userguide/inspector_agents-on-linux.html
https://docs.aws.amazon.com/inspector/latest/userguide/inspector_agents-on-win.html
dökümanlarından faydalanabilirsiniz.

Amazon Inspector Çalıştırmak (Demo)
Öncelikle bir AWS hesabınız yoksa bunu oluşturmanız gerekiyor bunu için “https://aws.amazon.com/” adresinden “Create an AWS Account” diyerek hesabınızı açabilirsiniz. AWS’i dökümantasyon anlamında oldukça başarılı buluyorum ve bence günümüz bilgi çöplüğünde bu oldukça nadir bir özellik bunu da belirtmekte fayda görüyorum. Genelde insanlar yeni bir teknolojiyi kullanmaya başlamadan önce hakkında yazılı kaynakların eksikliği, özensizliği ya da yetersizliği sebebiyle oldukça problem yaşayabiliyorlar, herkes gibi ben de yaşıyorum :slight_smile: bu anlamda AWS’in dökümantasyonu kendi farkını ortaya koyuyor. AWS hesabınızı oluşturup bir EC2 makinesi oluşturduysanız bir sonraki paragrafa geçebiliriz.
Kendi AWS hesabımı açar açmaz ilk işim t2.micro tipinde bir Ubuntu 16.04 makine açmak oldu (bunu seçtim çünkü free tier yani ilk 1 yıl aylık 750 saat ücretsiz, siz de bedava seviyorsanız daha fazla free tier servis için: https://aws.amazon.com/free/ adresine göz atabilirsiniz), ardından bu makinenin üzerine openvpn sunucusu kurmaya karar verdim aslında bunu yapan scriptler olmasına karşın bu scriptler çalışmadığında daha fazla iş yükü çıkarıp moralimi daha fazla bozduğu için satır satır kendim yapmaya karar verdim, bu openvpn kurma işine belki daha sonraki yazılarda daha detaylı değinebiliriz.
Amazon Inspector ile tarayacağımız kaynaklar bir ya da birden çok EC2 makinesi olmak zorundadır, bu yüzden önceden kurmuş olduğum openvpn sunucumu taramak için şu adımları izledim;
AWS Console’daservisler (Services) kısmından Amazon Inspector’u seçiyoruz.


Ekran Görüntüsü: (d1“Amazon Inspector”)

Karşımıza çıkan arayüzden “Get started” diyerek başlıyoruz.
2) Değerlendirmeye girecek hedeflerimizi seçmeden önce yapmamız gereken bazı ön gereksinimlerimiz bulunmakta.


Ekran Görüntüsü: (d2“Get Started with Amazon Inspector”)

Bu ön gereksinimlerimiz;
Amazon Inspector’un çalışabilmesi için IAM rol oluşturmak (ileriki aşamalarda da yapabiliriz.)
Değerlendirmeye girecek makinelerimizi etiketlemek (ileriki aşamalarda da yapabiliriz.)
Değerlendirmeye girecek makinemize/makinelerimize Inspector Agent’ı kurmak. Bu aşama zorunludur yani bu gereksinimi tamamlamazsak ileriki aşamalarda sunucu terminaline bağlanıp elle kurmak zorunda kalırız. (tecrübeyle sabittir :))

Daha önce bahsettiğimiz Amazon Inspector Agent ile ilgili kısımda bu kurulumun nasıl gerçekleştiğini inceleyebilirsiniz. Kurulum sırasında herhangi bir problem çıkmadıysa şimdi kaldığımız d2“Get Started with Amazon Inspector” ekranından “Next” diyip devam edebiliriz.

  1. Değerlendirmeye girecek hedef makinemizi burada seçiyoruz. Bir önceki adımda yaptığımız gibi değerlendirmeye girecek makinemizi, ona ait etiketi ile seçiyoruz ve adlandırıyoruz. Ardından “Next” diyerek devam ediyoruz.


Ekran Görüntüsü: (d2“Define an assessment target”)

  1. Geldik en önemli kısımlardan birine burada değerlendirme şablonumuzu (“Assessment Template”) oluşturuyoruz. Yani makinemizi/makinelerimizi tarayacağımız kural paketlerini “Rules packages” seçiyoruz. Ben demo olması açısından değerlendirmeyi en geniş kapsamda tuttum. (Bunun şimdilik bu servisi ücretsiz kullanabilmemle de alakası var tabi:)


Ekran Görüntüsü: (d3“Define an assessment template”)

Değerlendirme süresi “Duration” olarak varsayılan, önerilen değer olan 1 saati yeterli gördüm ancak verebileceğiniz en uzun süre en geniş kapsamda veri toplayıp analiz edecektir bunu da unutmamakta fayda var, “Next” diyip devam ediyoruz.

  1. Değerlendirme şablonu (“Assessment targets”) oluşturmanın son adımı olan gözden geçirme (“Review”) kısmına geldik. Burada girdiğimiz değerleri, kural paketlerimizi kontrol edip oluştur (“Create”) diyoruz ve şablonumuz hazırlanmış oluyor. Buraya kadar olan en angarya işlerden biri Inspector Agent’ını kurma kısmıydı bunun da önemli olduğunu alttaki mavi uyarı yazısıyla bize belirtiyor zaten Inspector arayüzü haricinde tek yapmak zorunda olduğumuz şey de buydu.


Ekran Görüntüsü: (d4“Review”)

  1. Artık şablonumuz oluştu ve bundan sonraki çalışmalarımızda da sıkça göreceğimiz asıl AmazonInspector arayüzüne geldik. Burada oluşturduğumuz “demo” adlı şablonumuzu seçip “Run” diyerek değerlendirmemizi başlatmış oluyoruz.


Ekran Görüntüsü: (d5“Assessment Templates”)

“Assessment runs” seçeneğine giderek değerlendirmemizin ne aşamada olduğunu görebiliriz ya da bitip bitmediğini kontrol edebiliriz.


Ekran Görüntüsü: (d6“Assessment Runs”)

Inspector’un o anki durumunu, “Dashboard”’dan takip edebiliriz.


Ekran Görüntüsü: (d2“Dashboard”)
Değerlendirme sürecinin tamamlandığını sonra ön paneldeki (Dasboard) değerlendirme durumu kısmındaki yeşil olan, tamamlanan değerlendirmeler kısmından (Assessment status, Assessment runs completed) görebilirsiniz. Burada gözümüze ilk çarpanlar, “Notable findings” altındaki “Important findings” kısmında bulunan 28 bulgu ve toplamda bulunan 52 bulgu oluyor.


Ekran Görüntüsü: (d7“Dashboard”)

  1. Çalışan değerlendirmeler (Assessment runs) kısmından Amazon Inspectorun hazırladığı raporu birkaç farklı seçenekle görüntüleyebilirsiniz.


Ekran Görüntüsü: (d8“Assesment runs”)

Raporu “Reports” sütunu altındaki “Download report” butonuna tıklayıp indirme seçeneğinizi belirleyip indirebilirsiniz (Varsayılan olarak “Findings report” ve “PDF” seçenekleriyle gelmektedir).

17-
Ekran Görüntüsü: (d9“Assesment report options”)


Ekran Görüntüsü: (d10“Assesment report”)

Rapor 4 kısımdan oluşmaktadır;
Yönetici Özeti (Executive Summary)
Neler test edildi (What is Tested)
Bulgu Özetleri (Findings Summary)
Bulgu Detayları (Findings Details)


Ekran Görüntüsü: (d11“Assesment report2”)

Ekran Görüntüsü: (d12“Assesment report3”)


Ekran Görüntüsü: (d13“Findings”)

Son olarak Bulgular (Findings) kısmından Amazon Inspector tarafından tespit edilmiş zafiyetleri önem derecelerine göre (Severity Filter) sıralayarak görüntüleyebilirsiniz.

Gelecek yazımda EC2 free tier sunucu üzerine nasıl OpenVPN kuracağımızı anlatacağım, soru, görüş ve önerileriniz için lütfen yorum yazmaktan çekinmeyin. Okuduğunuz için teşekkürler.

Seçkin Baytekin