Serbest Yazılar

24 Aralık 2016

Solaris üzerinde güvenlik taramaları

Bu yazıda öğrenecekleriniz:


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.

Çağatay ÇEBİ