Oracle veritabanı yöneticileri için Enterprise Manager vazgeçilmez araçlardan biridir. Bir web arayüzünden bağlanır, veritabanında n'olup bitiyor, tek bir ekranda anlayabilirsiniz.
Zannediyorum Enterprise Manager'a SSL desteği, ilk olarak 11gR1 ile gelmişti. Bilmeyenler için SSL ile ilgili kısa bir açıklama yapalım: SSL, yani Secure Socket Layer, web server ile aranızdaki iletişimi şifrelemeye yarayan bir yöntemdir. Internet Bankacılığı veya alışveriş sitenize girdiğinizde, yaptığınız işlemler (veya girdiğiniz parolalar), SSL sayesinde şifrelenir. Bu şifreleme sayesinde, man-in-the-middle saldırılarından korunuruz.
SSL kullanmak için bir sertifikaya ihtiyacımız vardır. SSL sertifikalarını, dünyaca ünlü kuruluşlar (Thawte, Comodo, GlobalSign, vb...) sağlamaktadır. Buralara para ödeyip, bir sertifika alır ve web sayfanıza yüklerseniz, client-server haberleşmesini şifreli hâle getirebilirsiniz. Elbette alternatif yöntemler de vardır. Kendiniz de bir sertifika oluşturabilirsiniz. Fakat sizin sertifikanızı kimse tanımayacağı için, web tarayıcıları uyarı verir ve bilinmeyen bir sertifika var, devam etmek istediğinizden emin misiniz diye sorar. Peki bunun Enteprise Manager ile ilgili ne?
Bahsettiğim gibi Enterprise Manager'a SSL desteği ilk olarak 11gR1 ile birlikte gelmişti. Kendiliğinden bir sertifika oluşturup, EM bağlantısını bunun üzerinden sağlıyordu.
O vakitler, çalıştığım kurumda, yönettiğim sistemlerle ilgili bana bir güvenlik raporu geldi. Yönettiğim sistemlerin bazılarının üstünde 1158 portundan hizmet veren bir web uygulaması varmış ve kullandığı SSL sertifikası, bilinen sertifikalardan değilmiş. Ayrıca kullandığı 'cipher' yeterince güvenli görülmüyormuş. Bence üzerinde durup, düşünmeye bile gerek yoktu ama güvenlik ekibi benden farklı düşününce, onları kıramadım diyelim :-)
O zamana kadar kimse böyle bir şey yapmamış (daha doğrusu ihtiyaç duymamış) olabilir. En azından araştırma yaparken, böyle hissetmiş ve hiçbir dökümanda doğru düzgün bir yol-yöntem bulamamıştım. En sonunda, birkaç günlük uğraş ardından isteneni yaptım. Artık kuruma ait bir sertifika çok daha yüksek bir şifreleme düzeyiyle 'Enterprise Manager' iletişimini şifrelemekteydi.
Firewall politikalarıyla izole edilmiş ve benden başka kimsenin erişemediği bir uygulama için bu kadar efor harcamaya gerek olduğuna hâlâ inanmıyorum. Tamamen izole bir ortamda, zaten SSL ile şifreleme yapılırken, daha da güçlü bir şifreleme kime ne kazandırdı, söylemek zor.
Yalnız güvenlik ekiplerine de hak veriyorum. Güvenlik taramaları için genellikle standart araçlar kullanılıyor. Fakat bu tarz araçların, 'false positive' yaratma ihtimali de fazla oluyor. Çünkü genel amaçlı yazılmış bir uygulama, ortada bir sorun yokken, ortamı tanımadığından bunu bir sorunmuş gibi yansıtabilir. Bu nedenle mümkün mertebe önce taradığımız sisteme özgü araçları değerlendirmek lâzım.
Bu uzun girişten sonra, Solaris işletim için kullanabileceğiniz iyi bir güvenlik tarama aracından bahsedeceğim. Üstelik kullanımı da son derece pratik. Tek yapmanız gereken, IPS üzerinden Solaris Compliance paketini aşağıdaki gibi yüklemek.
root@solarisvm:~# pkg install compliance Packages to install: 9 Services to change: 2 Create boot environment: No Create backup boot environment: No DOWNLOAD PKGS FILES XFER (MB) SPEED Completed 9/9 1734/1734 9.2/9.2 150k/s PHASE ITEMS Installing new actions 1915/1915 Updating package state database Done Updating package cache 0/0 Updating image state Done Creating fast lookup database Done Updating package cache 1/1
Paketin kurulumunu kontrol ediyoruz:
root@solarisvm:~# pkg info -r compliance Name: security/compliance Summary: Compliance Command and Framework Description: The Oracle Solaris compliance framework supports administering a set of security compliance policies and for assessing a system against compliance benchmarks. The compliance(1m) command can be used to generate an assessment of a system and then create reports in a number of different formats. Category: System/Administration and Configuration State: Installed Publisher: solaris Version: 0.5.11 Build Release: 5.11 Branch: 0.175.3.0.0.30.0 Packaging Date: August 21, 2015 03:47:50 PM Size: 218.11 kB FMRI: pkg://solaris/security/compliance@0.5.11,5.11-0.175.3.0.0.30.0:20150821T154750Z
Uygulayabileceğimiz iki çeşit test bulunuyor. Bunlardan bir tanesi, PCI-DSS standartını baz alırken, diğeri, Oracle Solaris güvenlik politikalarını kullanıyor. Oracle Solaris güvenlik politikasında, Baseline ve Recommended olmak üzere, iki farklı profil mevcut. Bunları listelemek için aşağıdaki komutu kullanıyoruz:
ccebi@solarisvm:~$ compliance list -pv Benchmarks: pci-dss: Solaris_PCI-DSS Payment Card Industry Data Security Standard solaris: Baseline, Recommended Oracle Solaris Security Policy Assessments: No assessments available
Güvenlik testlerini, root kullanıcısıyla çalıştırabileceğiniz gibi, dilediğiniz bir kullanıcıya, bu testleri yapması için yetki de verebilirsiniz.
ccebi@solarisvm:~$ profiles ccebi | grep -i compliance Compliance Reporter root@solarisvm:/export/home/ccebi# usermod -P "+Compliance Assessor" ccebi UX: usermod: ccebi is currently logged in, some changes may not take effect until next login. ccebi@solarisvm:~$ profiles ccebi | grep -i compliance Compliance Assessor Compliance Reporter
Sıra geldi testin yapılmasına... Üç farklı testi aşağıdaki gibi çalıştırabilirsiniz. Bu arada "-a" parametresinden sonra gelen ismi vermek zorunda değilsiniz. Boş bırakırsanız, raporlarınız "report" adıyla bir klasörün altında toplanacak. Fakat bir isim verirseniz, dosyalar, verdiğiniz isme göre bir klasör altında toplanacak.
# PCI-DSS ccebi@solarisvm:~$ pfexec compliance assess -b pci-dss -p Solaris_PCI-DSS -a report_pci_dss_$(date +%Y%m%d_%H%M) ... Permissions on User .netrc Files are correct OSC-91005 pass Permissions on User "." (Hidden) Files are correct OSC-92005 pass # ORACLE SOLARIS BASELINE ccebi@solarisvm:~$ pfexec compliance assess -b solaris -p Baseline -a report_baseline_$(date +%Y%m%d_%H%M) ... Address Space Layout Randomization (ASLR) is enabled OSC-01511 pass Check all default audit properties OSC-02000 fail # ORACLE SOLARIS RECOMMENDED ccebi@solarisvm:~$ pfexec compliance assess -b solaris -p Recommended -a report_recommended_$(date +%Y%m%d_%H%M) ... Remote serial logins are disabled OSC-69010 pass Check all default audit properties OSC-02000 fail
Raporları oluşturduk. Hangi raporun çalıştığını ve hangi lokasyonda bulunduğuna bakalım.
ccebi@solarisvm:~$ pfexec compliance list -vp Benchmarks: pci-dss: Solaris_PCI-DSS Payment Card Industry Data Security Standard solaris: Baseline, Recommended Oracle Solaris Security Policy Assessments: report_baseline_20161224_1628: log report.html results.xccdf.xml report_pci_dss_20161224_1623: log report.html results.xccdf.xml report_recommended_20161224_1643: log report.html results.xccdf.xml
ccebi@solarisvm:~$ pfexec compliance report -a report_pci_dss_20161224_1623 /var/share/compliance/assessments/report_pci_dss_20161224_1623/report.html ccebi@solarisvm:~$ pfexec compliance report -a report_baseline_20161224_1628 /var/share/compliance/assessments/report_baseline_20161224_1628/report.html ccebi@solarisvm:~$ pfexec compliance report -a report_recommended_20161224_1643 /var/share/compliance/assessments/report_recommended_20161224_1643/report.html
Fikir vermesi için rapor çıktılarını da, yükledim. Bunlara aşağıdaki linklerden ulaşabilirsiniz:
Benchmark Title | Profile ID | Link |
---|---|---|
Payment Card Industry Data Security Standard (PCI-DSS) | Solaris_PCI-DSS | report_pci_dss_20161224_1623.html |
Oracle Solaris Security Policy | Baseline | report_baseline_20161224_1628.html |
Oracle Solaris Security Policy | Recommended | report_recommended_20161224_1643.html |
Oluşturduğunuz raporları daha sonra sistemden kaldırabilirsiniz:
ccebi@solarisvm:~$ pfexec compliance delete report_pci_dss_20161224_1623 ccebi@solarisvm:~$ pfexec compliance delete report_baseline_20161224_1628 ccebi@solarisvm:~$ pfexec compliance delete report_recommended_20161224_1643 ccebi@solarisvm:~$ compliance list -pv Benchmarks: pci-dss: Solaris_PCI-DSS Payment Card Industry Data Security Standard solaris: Baseline, Recommended Oracle Solaris Security Policy Assessments: No assessments available
Bu standart raporlar dışında, özelleştirmeler yapmamız da mümkün. Diyelim ki, 'Recommended' testini çalıştırmak istiyorsunuz. Fakat bazı test adımlarını çıkartıp, bazılarını eklemeniz lâzım. Bunun gibi durumlarda, mevcut benchmark'lardan kendinize göre yeni bir kopya oluşturabilir ve yeni kopyayı modifiye edebilirsiniz. Bu yazıda yer vermeyeceğim fakat mutlaka HOL4645: Assessing, Reporting and Customizing the Security Compliance in Oracle Solaris 11 dökümanına bakmanızı tavsiye ederim. Ayrıca daha fazla detay için Oracle Solaris 11.3 Security Compliance Guide dökümanı da çok yararlı olacaktır.
Bunlara ilave olarak, ister veritabanı koşsun, isterse standart bir sunucu olsun, Solaris üzerinde 'orachk' kullanmanızı mutlaka öneriyorum. ORAchk ile veritabanı sağlık taraması isimli yazımda, buna değinmiştim. Kullanımı birebir aynı:
ccebi@solarisvm:/tmp$ ./orachk This computer is for [S]ingle instance database or part of a [C]luster to run RAC database [S|C] [C]:S orachk did not find the inventory location on solarisvm from environment.Does solarisvm have Oracle software installed [y/n][n]?
Koşturduğum sistemde, veritabanı yoktu. Buna rağmen, ORAchk güzel tavsiyelerde bulundu: orachk_solarisvm_122416_150405.html. Bir de veritabanı olsaydı, muhtemelen daha fazla tavsiye alırdım.
Eğer Solaris işletim sistemine sahipseniz, sisteminizin sağlıklı ve güvenli işleyebilmesi için elinizin altında birçok araç var. Böyle yararlı araçlar sayesinde, işletim sistemi, gözden kaçabilecek birçok kontrolü, otomatik gerçekleştirip, tavsiyeler sunabilir.