
Şirketinizdeki bilgisayarları daha güvenli hale getirmek için neler yapıyorsunuz? Örneğin tüm disk şifreleme için şirket genelinde FileVault‘u kullanıyor musunuz? Ya da kullanıcıların kendi kendilerine Recovery ortamına girişlerini engelleyebilmek için Recovery Lock konfigürasyonunu yaptınız mı? Tüm bilgisayarlarda IT yönetiminin kontrolünde bulunan birer Management Admin hesabı var mı? Peki o hesabın parolası LAPS ile yenileniyor mu?
Bu örnekler ve bunlar gibi macOS’u katılaştırma (Hardening) özelliklerini alt alta yazmaya başladığımızda karşımıza uzun bir liste çıkar. Airdrop‘u kapatmaktan tutun da Terminal üzerinde Secure Keyboard Entry kullanmaya kadar… İsterseniz siz kurumunuz özelinde bu tür bir liste hazırlayabilir ve kullandığınız MDM aracılığı ile yönettiğiniz cihazları hizaya getirebilirsiniz.
Amerika’yı yeniden keşfetmek ile uğraşmak yerine bu konuda evrensel kabul görmüş standartları takip edebilirsiniz. NIST, CIS, DISA, CNSSI gibi kurumların her biri farklı işletim sistemleri ve platformlar için güvenlik standartlarını yayınlarlar. Siz de bu yapılardan şirketinizin güvenlik politikalarına uygun olan birinin standartlarını seçip onu baz alabilirsiniz.
Bu tür güvenlik standartlarına uyumluluğu sağlama çalışması, temel olarak şirketlerde iki farklı birim tarafından yürütülür. Bilgi Güvenliği ve Uç Nokta Yönetim birimleri. Eğer bu yazıyı okuyan siz, örneğin Mosyle veya Kandji ile cihaz yönetimi yapıyorsanız hangi güvenlik standardının baz alınacağını seçme işi sizin işiniz değildir. Hangi güvenlik postürünün uygulanacağını belirleme işi Bilgi Güvenliği biriminin yapacağı bir iş, onun nasıl uygulanacağına kafa yoracak ekip ise Uç Nokta Yönetim biriminin yapacağı bir iştir.
macOS Security Compliance Project bu işin neresinde?
macOS Security Compliance Project, Mac’leri yukarıda ismini saydığım güvenlik standartlarına uygun bir şekilde yönetmek isteyen sistem yöneticileri için, ortak bir çalışma ile hazırlanmış, çeşitli araçların ve yönergelerin bulunduğu bir açık kaynak projedir. Bu kapsamda yönettiğiniz Mac’lerin NIST veya CIS gibi güvenlik standartlarına uygunluk durumunun raporunu görüntüleyebilir ve raporda belirtilen eksikleri kapatmak için, kullandığınız MDM sunucu üzerinden konfigürasyon profillerini dağıtabilirsiniz.
macOS Security Compliance Project ile ilgili katkı sağlayan kuruluşlar ve desteklenen baseline detaylarını öğrenmek için bu adresi inceleyebilirsiniz. Projenin GitHub sayfası üzerinden de bu yazı yazılırken geçerli olan en güncel versiyon olan Sequoia Guidance Revision 2.0‘ı görüp indirebilirsiniz. İncelemek için indirebilirsiniz elbette ama aşağıda adım adım indirip, rapor oluşturmayı anlatacağım. Yani şimdilik GitHub‘dan indirmenize gerek yok. Ama bilmelisiniz ki bu çalışma da statik değil. Düzenli olarak güncelleniyor. Dolayısıyla bookmark’larınıza ekleyip arada bir kontrol etmenizde fayda var.
Bir Mac’in seçilen bir güvenlik postürüne uyumluluğunu sağlarken geçeceğiniz kabaca iki adım bulunur. Audit, yani denetleme ve Remediation yani iyileştirme. macOS Security Compliance Project ile şunları yapabilirsiniz.
• Bir Mac üzerinden seçtiğiniz güvenlik standardını baz alarak bir Audit raporu oluşturabilirsiniz.
• Bu rapor sonrasında Remediation için MDM sunucunuz üzerinden cihazlarınıza dağıtabileceğiniz konfigürasyon profilleri oluşturabilirsiniz.
• Oluşturulacak raporda bazı maddeleri yapılacak Audit testinden hariç tutabilir, onların ayrıca raporlanmasını sağlayabilirsiniz.
Adım Adım
1. Önce Python’u Yükleyelim
İşe kurumunuzda bulunan bir Mac ile başlayabilirsiniz. Bu Mac üzerinde Python yüklü olmalı. İsterseniz manuel olarak Python.org üzerinden indirebilirsiniz. İsterseniz de xCode Command Line Tools‘un bir bileşeni olarak yükletebilirsiniz. Bunun için basitçe Terminal’i açıp şunu yazabilirsiniz.
python3 --version
Aslında bu komut, sisteminizde yüklü bulunan Python versiyonunu öğrenmek için kullanılır. Ama eğer Python yüklü değilse sizi Command Line Tools‘u yüklemeye yönlendirecektir. Command Line Tools‘un yüklenmesi bittikten sonra yukarıdaki komutu yeniden çalıştırdığınızda yüklü olan Python versiyonu görüntülenir. Başlangıçta yükleme süresi 36 saat gibi bir süre ile başlıyor ama korkmayın, 1 saatten az bir sürede indirecektir.

2. macOS Security Compliance Project’i İndirin
Ardından GitHub üzerindeki projeyi bilgisayarınıza indirmek için şu komutu kullanın.
git clone https://github.com/usnistgov/macos_security.git /var/tmp/mSCP
Bu komut /var/tmp adresine mSCP isminde bir klasör indirecek ve macOS Security Compliance Project için gerekli dosyaları bu adrese kopyalayacak. Ardından bu klasör içinde işlem yapmak için şu komutu kullanın.
cd /var/tmp/mSCP
mSCP klasörüne ulaştıktan sonra isterseniz Finder‘dan Go > Go To Folder komutunu kullanarak, istenseniz de aşağıdaki şekilde bu klasör içeriğine ulaşın.
open .
Klasör içeriğinde “baselines”, “build”, “scripts” gibi klasörler göreceksiniz. Şimdilik bu pencere açık kalsın.
3. Ek Python Bileşenlerini Yükleyin
Bu noktadan sonra bazı ek Python bileşenlerinin yüklenmesi gerekecektir. Bir fiziksel Mac üzerinde yükleme yapıyorsanız farklı, sanal makine üzerine yükleme yapıyorsanız farklı kodlar çalıştırmanız gerekir.
Örneğin bir MacBook Pro üzerinde bu yüklemeyi deniyorsanız lütfen şunu yazın.
pip3 install -r requirements.txt --user
Eğer bir sanal makine (UTM veya Virtual Buddy gibi) üzerine yüklemeyi deniyorsanız lütfen sırası ile şu komutları yazın.
python3 -m venv .venv
source .venv/bin/activate
pip3 install -r requirements.txt
4. Baseline Kılavuzunu Oluşturun
Az önce açtığınız mSCP klasörünün içinde “baselines” isimli bir klasör vardır. Bu klasör içinde farklı güvenlik standartlarını .yaml uzantıları ile görebilirsiniz. İsterseniz içlerinden herhangi birinin kapsamını TextEdit ile görüntüleyebilirsiniz. Ki zaten projenin GitHub sayfasında da tek tek açık şekilde bulunuyorlar. Burada bu güvenlik standartlarının kapsamlarını incelemek yerine kurumunuzun takip edeceği standardı Bilgi Güvenliği ekibinizden öğrenip ona göre hareket etmek daha doğru olacaktır.
Baselines klasörü içinde bulunan ve Bilgi Güvenliği biriminden size bildirilen güvenlik standardını baz alarak bir baseline kılavuzu oluşturmak için aşağıdaki kodu kullanabilirsiniz. Koda dikkat ederseniz standart olarak CIS Level 1 kullanılmış durumda. Siz eğer isterseniz bunu Baselines klasöründeki .yaml dosyalarının isimlendirmelerini baz alarak değiştirerek uygulayabilirsiniz.
./scripts/generate_guidance.py baselines/cis_lvl1.yaml
5. Baseline Kılavuzunuzu İnceleyin
Kodun işi bittikten sonra mSCP klasörünüzde bulunan ismi “build” olan klasöre gidip baktığınızda içinde cis_lvl1 olan bir klasör bulunduğunu görebilirsiniz. Bu klasör sizin seçtiğiniz standart için genel bir yol haritasını içerir. Sizin için oluşturulan CIS Level 1 baseline kılavuzunu PDF, HTML ve AsciiDoc formatlarında bulabilirsiniz.

6. Audit Script’ini Oluşturun
Yukarıda kullandığınız kodu sonuna sadece -s takısını ekleyerek yeniden çalıştırdığınızda mSCP/build/cis_lvl1 klasörünün içinde CIS Level 1 uyumluluğunu denetleyebilmeniz için gerekli .sh uzantılı bir script de eklenir. Script‘i oluşturmak için gerekli olan kodu şu.
./scripts/generate_guidance.py baselines/cis_lvl1.yaml -s
7. Audit Script’inizi Çalıştırın
Bu kodu çalıştırdığınızda /var/tmp/mSCP/build/cis_lvl1 klasöründe ismi cis_lvl1_compliance.sh olan bir script dosyası oluşturulduğunu göreceksiniz. Şu noktayı tekrar hatırlatmak istiyorum, ben verdiğim örnekleri CIS Level 1 üzerinden verdiğim için burada gördüğünüz bütün kodlar da ona göre oluşturuluyor. Siz örneğin NIST High güvenlik standardını seçmiş olsaydınız oluşturulacak script’in ismi 800-53r5_high_compliance.sh gibi bir şey olacaktı.
Oluşturulmuş script’i çalıştırmak için önce script’in bulunduğu klasöre kadar cd komutu ile gitmelisiniz.
cd /var/tmp/mSCP/build/cis_lvl1
Daha sonra da şu komut ile script’i çalıştırabilirsiniz.
sudo ./cis_lvl1_compliance.sh
Tabi kod sudo ile başladığı için sizden Admin parolanızı isteyecektir. Admin parolanızı girin.
8. macOS Security Compliance Tool’a hoş geldiniz

Karşınızda bu ekranı gördüğünüze yeni bir Audit raporu oluşturmak için 2 rakamını yazıp Enter’a basın. Araç çalışmaya başlayacaktır. İşi bittiğinde durur ve yeniden Enter’a basmanızı gerektirir. İkinci kere Enter’a bastığınızda tekrar yukarıdaki ekrana gelirsiniz.
Oluşturulmuş olan raporu görüntülemek için bu sefer de 1 rakamını yazıp Enter’a basın. Size bilgisayarınızın uygulanan testler sonucunda kaç maddede geçip, kaç maddede sınıfta kaldığını söyleyecektir. Aşağıdaki ekran görüntüsünden de görebileceğiniz gibi benim uyguladığım test bilgisayarı, 26 maddeden geçer not aldı ve 70 maddeden sınıfta kaldı. Bu da benim test bilgisayarımın %27 oranında uyumluluk gösterdiği anlamına geliyor.

Bu noktada küçük bir noktadan bahsetmek istiyorum. Bu yazının konusu olan güvenlik standartlarını takip etmeniz, onları baz almanız gerçekten önemli. Ama bununla birlikte her durumda %100 geçer bir not almayabileceğinizi de bilerek hareket etmek gerekiyor. Bağımsız IT Audit hizmeti veren Accenture, Deloitte gibi danışmanlık firmaları da bir kurumun genel olarak IT altyapısını COBIT kapsamında değerlendirirken %100’lük bir uyum seviyesi beklentisi ile hareket etmeyebiliyorlar. Sadece yüzdelik skora odaklanmadan konu başlıklarını Must Have (Mutlaka olması gereken) ve Nice to Have (Olursa iyi olur) gibi ayrıştırmak, hangi başlıkların zorunlu olarak uygulanması gerektiğinin bilincinde olmak önemli.
9. Remediation için Konfigürasyon Profillerini Oluşturun
Audit skorunu iyileştirmek ve yönettiğimiz cihazları kullandığımız MDM ile hizaya getirmek için tek tek MDM konfigürasyon profilleri oluşturmamız gerekiyor. Bunu kullandığınız MDM’in içinden yapmak çok zamanınızı alabilir. macOS Security Compliance Tool bu konuda da bize yardımcı oluyor.
Eğer hala Terminal ekranında yukarıdaki ekran görüntüsündeki skor detaylarını görüyorsanız çıkış yapmak için 4 yazıp Enter’a basın.
Önce mSCP klasörüne ulaşmak için şunu yazın.
cd /var/tmp/mSCP
Ardından seçtiğiniz güvenlik standardını baz alacak şekilde konfigürasyon profillerinizi otomatik olarak oluşturmak için şu kodu yazın.
./scripts/generate_guidance.py baselines/cis_lvl1.yaml -sp
Komut işini tamamladıktan sonra mSCP/build klasörü içinde yer alan cis_lvl1 klasörünün içine baktığınızda ismi mobileconfigs olan yeni bir klasör oluşturulmuş olduğunu görürsünüz. Bu klasör içinde CIS Level 1 ile uyumlu tüm konfigürasyon profillerini .plist ve imzalanmamış .mobileconfig formatlarında bulabilirsiniz.

Bunları kullandığınız MDM sunucuya yükleyerek yönettiğiniz cihazlara dağıtmaya başlayabilirsiniz. Eğer kullanıcılarınızı şu ana kadar katı kurallar ile yönetmediyseniz sizi uyarmış olayım. Jira ya da ServiceNow üzerinden açılacak çağrı ticket’ı fırtınasına hazırlıklı olun.
10. Son Adım, İstisnalar Listesi
8. adımda paylaştığım ekran görüntüsünde benim test bilgisayarımın 26 maddeden geçtiğini, 70 maddeden kaldığını yazmıştım. Geçme (Pass) ve Kalma (Fail) dışında bir de Exempt yani hariç tutulma listesi var. Benim yukarıda yaptığım testte hariç tutulan herhangi bir konu olmadığı için onun karşısında sıfır yazdığını görüyoruz.
Eğer bazı konu başlıklarını testten hariç tutmak istiyorsanız bunu bir .plist dosyasını düzenleyerek yapabilirsiniz. Build klasörünüzün içinde ismi preferences olan bir klasör daha bulunur ve onun da içinde ismi org.cis_lvl1.audit.plist olan bir dosya vardır. Bu dosyayı TextEdit ile açıp düzenleyebilirsiniz.
Örneğin, CIS Level 1 güvenlik standardı Gatekeeper‘ın ayarlanmış olmasını şart koşar. Eğer siz Gatekeeper ayarlarında bir düzenleme yapmazsanız Audit raporunda Failed kısmında yer alacaktır. Ama bununla birlikte org.cis_lvl1.audit.plist dosyasında aşağıdaki satırı bulup false yazan satırı true haline getirirseniz Gatekeeper‘ı istisna listesine almış olursunuz. Artık Failed kısmında değil Exempt kısmında listelenecektir.
<key>os_gatekeeper_enable</key>
<dict>
<key>exempt</key>
<false/>
</dict>
Durumum yoktu okuyamadım (TL;DR)
Hemen bir genel özet geçeyim.
• Kurumsal ortamlarda bilgisayarları güvenli hale getirmek için bazı standartlar bulunur.
• Bilgisayarınızın mevcut kullanımdaki haliyle bu standartlardan birine uyum uymadığını kontrol etmek için Apple’ın çeşitli paydaşlar ile birlikte hazırladığı macOS Security Compliance Project isminde bir açık kaynak projesi kullanılır.
• mSCP kapsamında verilen araçlar ile istediğiniz güvenlik standartlarının detaylarını birer kılavuz olarak edinebilirsiniz
• Yine mSCP kapsamında bilgisayarınızın ne durumda olduğunun bir raporunu alabilirsiniz.
• Bir MDM sunucu kullanıyorsanız yönettiğiniz bilgisayarların da güvenlik standartlarına uyabilmeleri için gerekli konfigürasyonları mSCP kapsamında oluşturabilir ve MDM ile dağıtabilirsiniz.
Yorum bırakın