her yönüyle linux sistem ve network güvenliği

253
Her Yönüyle Linux Sistem ve Network Güvenliği 1 Lynis İle Sistem Güvenlik ve Bütünlük Kontrollerinin Yapılması Open source ve ticari versiyonları bulunan lynis sistem bütünlük ve güvenlik kontrollerinin yapılmasında pratik faydalar sağlamakla birlikte farklı sistemlere entegre edilebilmektedir. Bu yazımızda sıfırdan kurulmuş bir Centos 7 işletim sistemi üzerinde kurulumu gerçekleştirip basit olarak test edilecektir. Test aşamasına geçmeden önce temel linux bilgisi ve komutlarına hakim olmanız gerekmektedir. Bir network yada sunucu sistemlerinin bulunduğu bir ortamda yada gerçekleştirilmekte olan penetrasyon testleri sırasında birden fazla güvenlik kontrolü yapmak uzun süreler alabilmektedir. Böyle durumlarda test süresini kısaltmak ve birden fazla kontrolü gerçekleştirmek amacıyla lynis ve benzeri araçları kullanmakta yarar vardır. Genel kullanım olarak üç temel kullanım seçeneği bulunmata ve bu işlemler için süreçleri hızlandırmaktadır. ** Security Auditing ** Vulnarability Scanning ** System Hardening Kurulum İçin Gereksinimler: Centos 7 veya türevi bir linux dağıtımı, Wmware Sanallaştırma Uygulaması, Ssh Bağlantı için(Putty) Sunucu yapılandırması için (1 Nat Wm0 bacağı ve 1 Brigde Modda Wm2 bacağı) Not: Dağıtım için fresh bir minamal sürüm kullanıldığı için öncelikle gerekli güncellemeleri yaptıktan sonra nano, development tools, wget gerekebilmektedir. Sisteminizde eksikse aşağıdaki komutla mutlaka bu kurulumu gerçekleştiriniz. # yum groupinstall "Development Tools" Eksik kurulum ve güncellemeler gerçekleştikten sonra lynis kurulumuna geçebiliriz. Öncelikle wget ile o anki yada hangi sürümü güncelse biz bu yazıda 1.5.8 sürümünü kullanıyoruz, indirilir. 1 Her Yönüyle LinuxSistem ve Network Güvenliği Ahmet HAN Free Ebook

Upload: ahmet-han

Post on 07-Jan-2017

948 views

Category:

Education


15 download

TRANSCRIPT

Page 1: Her yönüyle linux sistem ve network güvenliği

Her Yönüyle Linux Sistem ve Network Güvenliği 1

Lynis İle Sistem Güvenlik ve Bütünlük Kontrollerinin Yapılması Open source ve ticari versiyonları bulunan lynis sistem bütünlük ve güvenlik kontrollerinin yapılmasında pratik faydalar sağlamakla birlikte farklı sistemlere entegre edilebilmektedir. Bu yazımızda sıfırdan kurulmuş bir Centos 7 işletim sistemi üzerinde kurulumu gerçekleştirip basit olarak test edilecektir. Test aşamasına geçmeden önce temel linux bilgisi ve komutlarına hakim olmanız gerekmektedir. Bir network yada sunucu sistemlerinin bulunduğu bir ortamda yada gerçekleştirilmekte olan penetrasyon testleri sırasında birden fazla güvenlik kontrolü yapmak uzun süreler alabilmektedir. Böyle durumlarda test süresini kısaltmak ve birden fazla kontrolü gerçekleştirmek amacıyla lynis ve benzeri araçları kullanmakta yarar vardır. Genel kullanım olarak üç temel kullanım seçeneği bulunmata ve bu işlemler için süreçleri hızlandırmaktadır. ** Security Auditing ** Vulnarability Scanning ** System Hardening Kurulum İçin Gereksinimler: Centos 7 veya türevi bir linux dağıtımı, Wmware Sanallaştırma Uygulaması, Ssh Bağlantı için(Putty) Sunucu yapılandırması için (1 Nat Wm0 bacağı ve 1 Brigde Modda Wm2 bacağı) Not: Dağıtım için fresh bir minamal sürüm kullanıldığı için öncelikle gerekli güncellemeleri yaptıktan sonra nano, development tools, wget gerekebilmektedir. Sisteminizde eksikse aşağıdaki komutla mutlaka bu kurulumu gerçekleştiriniz.

# yum groupinstall "Development Tools"

Eksik kurulum ve güncellemeler gerçekleştikten sonra lynis kurulumuna geçebiliriz. Öncelikle wget ile o anki yada hangi sürümü güncelse biz bu yazıda 1.5.8 sürümünü kullanıyoruz, indirilir.

1 Her Yönüyle Linux­Sistem ve Network Güvenliği ­ Ahmet HAN Free E­book

Page 2: Her yönüyle linux sistem ve network güvenliği

# wget http://cisofy.com/files/lynis­1.5.8.tar.gz

Daha sonra tar komutu ile dosyalar çıkartılır.

# tar xvf lynis­1.5.8.tar.gz

Daha sonra ilgili dizine geçilir.

# cd lynis­1.5.8.tar.gz

Denetimi başlatmak için aşağıdaki komut verilir ve audit başlatılır. 2

# ./lynis ­­auditor BGA ­c

Bu komutttan sonra test işlemi başlayacaktır. Test bitene kadar aşağıdaki test işlemlerini tablodan görebilirsiniz.

[ Lynis 1.5.8 ] ################################################################################ Lynis comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under the terms of the GNU General Public License. See the LICENSE file for details about using this software. Copyright 2007­2014 ­ Michael Boelen, http://cisofy.com Enterprise support and plugins available via CISOfy ­ http://cisofy.com ################################################################################ [+] Initializing program ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ ­ Detecting OS... [ DONE ] ­ Clearing log file (/var/log/lynis.log)... [ DONE ]

2 Her Yönüyle Linux­Sistem ve Network Güvenliği ­ Ahmet HAN Free E­book

Page 3: Her yönüyle linux sistem ve network güvenliği

­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ Program version: 1.5.8 Operating system: Linux Operating system name: CentOS Operating system version: CentOS Linux release 7.0.1406 (Core) Kernel version: 3.10.0­123.el7.x86_64 Hardware platform: x86_64 Hostname: localhost Auditor: BGA Profile: ./default.prf Log file: /var/log/lynis.log Report file: /var/log/lynis­report.dat Report version: 1.0 Plugin directory: ./plugins ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ [ Press [ENTER] to continue, or [CTRL]+C to stop ] ­ Checking profile file (./default.prf)... ­ Program update status... [ SKIPPED ] [+] System Tools ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ ­ Scanning available tools... ­ Checking system binaries... ­ Checking /bin... [ FOUND ] ­ Checking /sbin... [ FOUND ] ­ Checking /usr/bin... [ FOUND ] ­ Checking /usr/sbin... [ FOUND ] ­ Checking /usr/local/bin... [ FOUND ] ­ Checking /usr/local/sbin... [ FOUND ] ­ Checking /usr/local/libexec... [ FOUND ] ­ Checking /usr/libexec... [ FOUND ] ­ Checking /usr/sfw/bin... [ NOT FOUND ] ­ Checking /usr/sfw/sbin... [ NOT FOUND ] ­ Checking /usr/sfw/libexec... [ NOT FOUND ] ­ Checking /opt/sfw/bin... [ NOT FOUND ] ­ Checking /opt/sfw/sbin... [ NOT FOUND ] ­ Checking /opt/sfw/libexec... [ NOT FOUND ] ­ Checking /usr/xpg4/bin... [ NOT FOUND ] ­ Checking /usr/css/bin... [ NOT FOUND ] ­ Checking /usr/ucb... [ NOT FOUND ] ­ Checking /usr/X11R6/bin... [ NOT FOUND ] [ Press [ENTER] to continue, or [CTRL]+C to stop ] [+] Plugins (phase 1) ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­

Page 4: Her yönüyle linux sistem ve network güvenliği

­ Plugins enabled [ NONE ] [+] Boot and services ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ ­ Checking boot loaders ­ Checking presence GRUB... [ NOT FOUND ] ­ Checking presence LILO... [ NOT FOUND ] ­ Checking boot loader SILO [ NOT FOUND ] ­ Checking boot loader YABOOT [ NOT FOUND ] ­ Check running services (systemctl)... [ DONE ] Result: found 20 running services ­ Check enabled services at boot (systemctl)... [ DONE ] Result: found 22 enabled services ­ Check startup files (permissions)... [ OK ] [ Press [ENTER] to continue, or [CTRL]+C to stop ] [+] Kernel ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ ­ Checking default runlevel... [ runlevel 3 ] ­ Checking CPU support (NX/PAE) CPU support: PAE and/or NoeXecute supported [ FOUND ] ­ Checking kernel version and release [ DONE ] ­ Checking kernel type [ DONE ] ­ Checking loaded kernel modules [ DONE ] Found 78 active modules ­ Checking Linux kernel configuration file [ FOUND ] ­ Checking default I/O kernel scheduler [ FOUND ] ­ Checking core dumps configuration... [ DISABLED ] ­ Checking setuid core dumps configuration... [ DEFAULT ] [ Press [ENTER] to continue, or [CTRL]+C to stop ] [+] Memory and processes ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ ­ Checking /proc/meminfo... [ FOUND ] ­ Searching for dead/zombie processes... [ OK ] ­ Searching for IO waiting processes... [ OK ] [ Press [ENTER] to continue, or [CTRL]+C to stop ] [+] Users, Groups and Authentication ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ ­ Search administrator accounts... [ OK ] ­ Checking for non­unique UIDs... [ OK ] ­ Checking consistency of group files (grpck)... [ OK ] ­ Checking non unique group ID's... [ OK ]

Page 5: Her yönüyle linux sistem ve network güvenliği

­ Checking non unique group names... [ OK ] ­ Checking password file consistency... [ OK ] ­ Query system users (non daemons)... [ DONE ] ­ Checking NIS+ authentication support [ NOT ENABLED ] ­ Checking NIS authentication support [ NOT ENABLED ] ­ Checking sudoers file [ FOUND ] ­ Check sudoers file permissions [ OK ] ­ Checking PAM password strength tools [ OK ] ­ Checking PAM configuration file (pam.conf) [ NOT FOUND ] ­ Checking PAM configuration files (pam.d) [ FOUND ] ­ Checking PAM modules [ FOUND ] ­ Checking user password aging [ DISABLED ] ­ Checking Linux single user mode authentication [ WARNING ] ­ Determining default umask ­ Checking umask (/etc/profile) [ SUGGESTION ] ­ Checking umask (/etc/login.defs) [ OK ] ­ Checking umask (/etc/init.d/functions) [ SUGGESTION ] ­ Checking LDAP authentication support [ NOT ENABLED ] [ Press [ENTER] to continue, or [CTRL]+C to stop ] [+] Shells ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ ­ Checking shells from /etc/shells... Result: found 6 shells (valid shells: 6). ­ Session timeout settings/tools [ NONE ] [ Press [ENTER] to continue, or [CTRL]+C to stop ] [+] File systems ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ ­ Checking mount points ­ Checking /home mount point... [ SUGGESTION ] ­ Checking /tmp mount point... [ SUGGESTION ] ­ Checking LVM volume groups... [ FOUND ] ­ Checking LVM volumes... [ FOUND ] ­ Checking for old files in /tmp... [ OK ] ­ Checking /tmp sticky bit... [ OK ] ­ ACL support root file system... [ DISABLED ] ­ Checking Locate database... [ NOT FOUND ] [ Press [ENTER] to continue, or [CTRL]+C to stop ] [+] Storage ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ ­ Checking usb­storage driver (modprobe config)... [ NOT DISABLED ] ­ Checking firewire ohci driver (modprobe config)... [ NOT DISABLED ]

Page 6: Her yönüyle linux sistem ve network güvenliği

[ Press [ENTER] to continue, or [CTRL]+C to stop ] [+] NFS ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ ­ Check running NFS daemon... [ NOT FOUND ] [ Press [ENTER] to continue, or [CTRL]+C to stop ] [+] Software: name services ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ ­ Checking default DNS search domain... [ NONE ] ­ Checking search domains... [ FOUND ] ­ Checking /etc/resolv.conf options... [ NONE ] ­ Searching DNS domain name... [ UNKNOWN ] ­ Checking nscd status... [ NOT FOUND ] ­ Checking BIND status... [ NOT FOUND ] ­ Checking PowerDNS status... [ NOT FOUND ] ­ Checking ypbind status... [ NOT FOUND ] ­ Checking /etc/hosts ­ Checking /etc/hosts (duplicates) [ OK ] ­ Checking /etc/hosts (hostname) [ OK ] ­ Checking /etc/hosts (localhost) [ SUGGESTION ] [ Press [ENTER] to continue, or [CTRL]+C to stop ] [+] Ports and packages ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ ­ Searching package managers... ­ Searching RPM package manager... [ FOUND ] ­ Querying RPM package manager...

Test işlemleri esnasında aşağıdaki kontrolleri yapmakla birlikte cd /var/log dizini altında lynis.log dosyasından gerekli rapora ulaşabilirsiniz. Ayrıca bu dizinde birde lynis­report.dat rapor dosyası oluşturmaktadır. ** System Tools Kontrolü ** Plugin Kontrolü ** Boot and Service ** Kernel ** Memory and Process ** Users, Group and Authentication ** Shells

Page 7: Her yönüyle linux sistem ve network güvenliği

** File Systems 3

** Storage ** NFS ** Name Services : [Software] ** Port and Package ** Networking ** Printers and Spools ** E­mail and messaging: (Software test) ** Firewall ** Webserver audit ** Ssh Support ** Snmp Support ** Database ** LDAP Services ** Php, Squid Desteği ** Log ve Dosya Denetimi ** İnsecure Servisleri ** Banners and identification Sistem bütünlük kontrolünün sağlanması için yukarıdaki servisleri test etmekte ve durumu hakkında bilgi sağlamaktadır. Daha detaylı bilgi almak için aşağıdaki komutu verdikten sonra çıktısı adım adım incelenmelidir.

# ./lynis ­­auditor BGA ­c

Kontrol başladıktan sonra örnek ekran alıntıları:

3 Her Yönüyle Linux­Sistem ve Network Güvenliği ­ Ahmet HAN Free E­book

Page 8: Her yönüyle linux sistem ve network güvenliği

Şekil 1­

Şekil 2­

Not :Daha fazla bilgi ve kullanım amacıyla yazının sonunda bulunan referanslar kısmından bilgi edinebilirsiniz.

Page 9: Her yönüyle linux sistem ve network güvenliği

Bilgi Güvenliği Açısından Trafik Analizi ve Önemi 4

Tcp ve ip yapısında haberleşme gerçekleşirken belirli standartlar ve protokoller arayıcılığı ile gerçekleşmektedir. Bu yüzden port kavramı, üç yollu el sıkışma, veri haberleşmesi kavramları, OSI referans modeli ve en azından wireshark ile yada benzeri diğer araçlar ile trafik analizi çok çok önemlidir. Çünkü zararlı bir yazılım bilgisayarınıza bulaştığı zaman farklı yöntemler ile internete çıkmaya çalışacak, diğer indirmesi gereken farklı komuta kontrol yazılımları varsa indirmeye çalışacak, yada bilgisayarınızda bulunan verileri dışarıya sızdırmaya çalışacak, dolayısı ile belirli amacı olacağı için bir şekilde dış Dünya(internet) ile bağlantı kurmaya çalışacaktır. Vikipedia’ki tanıma göre tcp protokolünün yazılış amacı veri haberleşmesi gerçekleştirilirken kayıpsız veri iletişimin sağlanması amacıyla yazıldığını belirtir. Detaylı bilgiye ulaşmak için lütfen buradaki linki okuduktan sonra devam edeniz. Okuduktan sonra tcp yapısında A bilgisayarından B bilgisayarına şöyle bir durum gerçekleşir.

A bilgisayarı B bilgisayarına TCP SYNchronize mesajı yollar B bilgisayarı A bilgisayarının isteğini aldığına dair bir TCP SYN+ACKnowledgement

mesajı yollar A bilgisayarı B bilgisayarına TCP ACK mesajı yollar B bilgisayarı bir ACK “TCP connection is ESTABLISHED” mesajı alır.

4 Her Yönüyle Linux­Sistem ve Network Güvenliği ­ Ahmet HAN Free E­book

Page 10: Her yönüyle linux sistem ve network güvenliği

Üç yollu el sıkışma adı verilen bu yöntem ile tcp bağlantısı sağlanmış olur. Veri değişimi ise bundan sonra standartlara göre devam eder. Burada tcp işaretçileri(tcp flag) olarak bilinen bayrak değerleri (6 bit) bilinmesi çok önemlidir. Esasen sadece bunlar değil zararlı trafiğin analizi açısından farklı bir önem arz etmektedir. Bunu şu şekilde açıklamaya çalışacağım. Öncelikle yukarıda bahsedilen konular hakkında temel olarak bilgi sahibi olmama rağmen bir trafiği daha önce detaylı analiz etme imkanım olmamıştı. Ama öğrenmem gerektiğini de biliyordum. Çünkü elbet bir gün lazım olacaktı. Bende hemen işe koyuldum. İnternetten bulduğum farklı pcap dosyalarının analizi nasıl yapıldığını öğrenmek için. Bir CTF yarışmasında kullanılan örnek bir trafiği indirdim. Sizde buradan indirebilirsiniz. Üç yollu el sıkışmada kullanılan ve wireshark ile trafik analizi yapacağınız için tcp flag keylerini en azından ihtiyaç olduğunda bilmekte fayda var. Hexadecimal değerleri şekildeki gibi.

0x00 NULL 0x01 FIN 0x02 SYN 0x03 FIN­SYN 0x08 PSH 0x09 FIN­PSH 0x0A SYN­PSH 0x0B FIN­SYN­PSH 0x10 ACK 0x11 FIN­ACK 0x12 SYN­ACK 0x13 FIN­SYN­ACK 0x18 PSH­ACK 0x19 FIN­PSH­ACK 0x1A SYN­PSH­ACK 0x1B FIN­SYN­PSH­ACK 0x40 ECE 0x41 FIN­ECE 0x42 SYN­ECE 0x43 FIN­SYN­ECE 0x48 PSH­ECE 0x49 FIN­PSH­ECE 0x4A SYN­PSH­ECE 0x4B FIN­SYN­PSH­ECE 0x50 ACK­ECE 0x51 FIN­ACK­ECE 0x52 SYN­ACK­ECE 0x53 FIN­SYN­ACK­ECE 0x58 PSH­ACK­ECE 0x59 FIN­PSH­ACK­ECE 0x5A SYN­PSH­ACK­ECE

Page 11: Her yönüyle linux sistem ve network güvenliği

0x5B FIN­SYN­PSH­ACK­ECE 0x80 CWR 0x81 FIN­CWR 0x82 SYN­CWR 0x83 FIN­SYN­CWR 0x88 PSH­CWR 0x89 FIN­PSH­CWR 0x8A SYN­PSH­CWR 0x8B FIN­SYN­PSH­CWR 0x90 ACK­CWR 0x91 FIN­ACK­CWR 0x92 SYN­ACK­CWR 0x93 FIN­SYN­ACK­CWR 0x98 PSH­ACK­CWR 0x99 FIN­PSH­ACK­CWR 0x9A SYN­PSH­ACK­CWR 0x9B FIN­SYN­PSH­ACK­CWR 0xC0 ECE­CWR 0xC1 FIN­ECE­CWR 0xC2 SYN­ECE­CWR 0xC3 FIN­SYN­ECE­CWR 0xC8 PSH­ECE­CWR 0xC9 FIN­PSH­ECE­CWR 0xCA SYN­PSH­ECE­CWR 0xCB FIN­SYN­PSH­ECE­CWR 0xD0 ACK­ECE­CWR 0xD1 FIN­ACK­ECE­CWR 0xD2 SYN­ACK­ECE­CWR 0xD3 FIN­SYN­ACK­ECE­CWR 0xD8 PSH­ACK­ECE­CWR 0xD9 FIN­PSH­ACK­ECE­CWR 0xDA SYN­PSH­ACK­ECE­CWR 0xDB FIN­SYN­PSH­ACK­ECE­CWR

Bu ctf oyununda bulunması istenen şey bir bilgisayar diğer bilgisayara port taraması yapıyordu. Ve açık olan portların bulunması isteniyordu. Burada yapılması gereken çözüm portlar açık olduğun zaman dinlenmiş bir trafik analizi ile anlaşılıyor. Yukarıdaki dosyayı analiz için wireshark ile açtığınız zaman karşınıza 130.000++ üretilmiş paket çıkıyor. İşte bu noktada vurgulamak ve belirtmek istediğim önemli olan kısım veri haberleşmesini iyi bilip bu tarz durumlarda nasıl bir çözüm geliştirilebilir ona bakmak. Wireshark bu kadar paketi gösterirken aynı zamanda filtreleme yaparak istediğiniz paketleri getirmenize olanak sağlıyor. Örneğin bu dosyada udp paketlerini öğrenmek isterseniz filter kısmına udp yazıp paketlerin gelmesini beklemek.

Page 12: Her yönüyle linux sistem ve network güvenliği

Port taramasında syn­ack cevabı portların açık olduğunu göstermektedir. Wireshark ile bir filter yazılarak 130.000 paket içersinde syn­ack cevabı dönen portları tespit edebilirsiniz. syn­ack flag değeri 0x12 yukarıdan bakabilirsiniz. Ona göre şu şekilde bir yazım bize tüm syn­ack cevaplarını getirecektir.

Bu şekilde çözüme ulaşılmış olur. Dediğim gibi buradaki yazılanları öğrenmek amacıyla araştırdım ve uygulamaya çalıştım. Sizde kendiniz bu şekilde benzer örneklerden başlangıç seviyesinde iseniz başlamakta fayda var. Çünkü bilgi güvenliğinin hemen hemen her alanında trafik analizi çok önemli bir durum teşkil ediyor. Bu aşamadan sonra hemen aklıma şöyle bir senaryo geldi. Hemen bilgisayarıma bir vpn sunucu kurup belirli bir süre Wireshark ile trafiği analiz edip neler gerçekleştiğine bakmak. Kurmadan da trafik olurdu ama denemek istedim. Evde LAN ağına sahip olduğumuz için gelen misafirler olsun, evdeki telefon, bilgisayar olsun ve de birde vpn kurulumu ile birlikte 20 dk analiz için yeterli trafiğin oluşmasına imkan tanıdı. Daha sonra kaydı durdurup analiz için yola koyuldum ve hemen get gerçekleştirilen methodları listelettim. Çünkü bu method ile bir zararlı resim dosyası, başka zararlı bir dosya indirilmesi denenebilirdi.

Page 13: Her yönüyle linux sistem ve network güvenliği

Neyseki buraki çoğu get methodunda çağırılan istekler bannerlar, vpnden dolayı açılan zararlı reklamlar arayıcılığı ile oluşmuş olduğunu küçük bir araştırma ile öğrenmiş oldum. Ve daha sonra bu çağrılara ok yanıtı ile dönen cevap olup olmadığına baktım. Sonuç şekildeki gibiydi.

Daha önce Virus totalin analiz özelliği biliyordum, ama pcap dosyaları için olduğunu bilmiyordum. Hemen dosyaları upload etmeyi denedim. Örnek dosyaya ve analiz sonuçlarına detaylı buradan ulaşabilirsiniz. Gördüğüm sonuca inanamadım. Çünkü Virus Total snort ve suricata ile birlikte bir çok olduğu alertlarını veriyordu.

Page 14: Her yönüyle linux sistem ve network güvenliği

Gece analiz edip yazıyı yazarken 12 saat sonra gönderdiğim için yeniden analizde de sonuç değişmedi. Daha sonra dosya detaylarına baktığım zaman vpn’den dolayı bir çok gerçekleşen get isteklerinde farklı url’lere yönlendirerek çekmeye çalıştığı dosyayı buradan görmüş oldum.

Daha sonra vpn kullanımının güvenli olduğunu düşünürdüm. Google’da şunları arattım. Vpn threats, vpn vulnerabilities, is vpn safe, kinds of vpn threats gibi tonlarca analiz, pdf, döküman vb. ortaya çıktı. İşin garip tarafı 20 dk’lık bir local ağ trafiği için virus total üzerinden yapılan taramada çıkan alert’lar şöyleydi.

SourceFire Snort Alarmları

Page 15: Her yönüyle linux sistem ve network güvenliği

Suricata emergency threats

Daha sonra bu trafik dosyasını bir kaç defa rarlayarak bir daha analize gönderdim. Daha önce sanırım Mert Sarıca’ hocam bundan bahsetmişti. Çıkan sonuç burada temiz hiç bir alert yok. Hemen bu alertların çıkmasını araştırdım ve virus total blogunda

VirusTotal += PCAP Analyzer adı altında bir yazı

yayımlamışlar. Burada bu faktörlerden bahsedip örnekler

vermişler. Buradan çıkartılabilecek sonuca gelicek olursak, Vpn Cihazları bazıları ücretsiz ve masum gibi görünebilir ama arka planda kazanç için farklı şeyler döndürebilirler(hotspotshield kullandım .;)) Ne kadar ips/ids, firewall’nuzda olsa farklı encoding ve şifreleme yöntemleri ile bypass edilip kurum içi zararlı çalıştırılıp farklı amaçlar güdebilir. Veri haberleşmesi kavramları, temel network bilgisi önemlidir. SOME’ler için ayrı bir öneme sahip.(Seniorlar için bahsetmiyorum.) Zincirin en zayıf halkası insandır, mantığı bu açıdan hala önemini korumaktadır. En önemlisi bugün burayı(açık) kapattık güvendeyiz mantığı değil, güncel kalmak gerekli tebrirleri almak, güncelleştirmeleri yapmak, tüm her şey tamam dediğinizde ortaya çıkabilecek bir zero­day ile birlikte her şeyin en başına dönmesi ve tekrar uygulanması ile düzenli penetrasyon testleri…

Page 16: Her yönüyle linux sistem ve network güvenliği

Tüm bunları yaptıysanız güvende miyiz sorusunun cevabını hem güvendesiniz hem değilsiniz. Bu sorunun cevabı schödingerin kedisi deneyindeki sorunun cevabı ne zaman bulundu o zaman cevap bulacağını düşünüyorum.

Dos Ddos Saldırıları ve Arasındaki Farklar 5

Geçtiğimiz yıl yapılan saldırıların genel olarak yüzdesine bakıldığında dos ve ddos saldırıları hala önemini korumakla birlikte zaman zaman yapılan hedef odaklı bu saldırılarda sistemler çalışamaz hale getirilmektedir. Sadece 2014 yılının ocak ve nisan ayları arasında gerçekleştirilen saldırılara bakıldığı zaman bu oran %10++ civarında olduğu görülmektedir. Yine 2015 yılının ocak ayında yapılan araştırmalarda bu saldırıların %33’ünü Ddos saldırıları oluşturmaktadır. Sosyal medya ve haber sitelerinde bu saldırıların hacking olduğu büyük bir yanlışlıkla duyurulmaktadır. Dos ve ddos saldırıları bir hacking yöntemi olmamakla birlikte amaç sistemleri çalışamaz, yorarak işlem görmesine engel olma amaçlı yapılan saldırılardır. Küresel siber güvenlik raporlarından anlaşılacağı üzere bu yılın ilk ayında başta haber, endüstri, hükemet, askeri kurumlar hedef alınmakla birlikte çeşitli kurumlar hedef alınmıştır. Dos Saldırıları: Bu saldırı türünde bir saldırgan ve victim(kurban) adı verilen bir makina bulunmakta olup kurban makineye saldırgan tarafından büyük miktarda veri aktarılmaktadır. Ddos Saldırıları: İnternet üzerinden çok sayıda istemci bilgisayar kullanılarak yapılan saldırı çeşitlerinden birisidir. Genel olarak kurban bilgisayara virüs, trojan bulaştırılarak çok sayıda istemci makinanın(zombi hale gelmiş); bir sunucuya eş zamanlı ve mümkün olduğunca çok fazla sayıda istek göndererek, sunucunun kapasitesinin aşılması hedeflenmektedir.

6

5 Her Yönüyle Linux­Sistem ve Network Güvenliği ­ Ahmet HAN Free E­book 6 http://tr.wikipedia.org/wiki/Denial­of­service_attack

Page 17: Her yönüyle linux sistem ve network güvenliği

Ping of Death Saldırısı: Ping programı genel olarak bir makinaya 32 baytlık bir icmp paketi gönderir ve bu paketin geri gelmesini bekler. Bu saldırı türünde bir hosta maxsimum boyutttan fazla (65535 bayt) ping paketi kullanılarak yapılan bir dos saldırı türüdür. Farklı işletim sistemleri gelen fazla paket sayısını anlayamaz hale gelir. bu saldırı türü ilk işletim sistemlerinde yagın olmakla birlikte bazıları patch’lenmiştir.

Teardrop Saldırıları: Gözyaşı saldırıları olarakda bilinmektedir. Tcp/İp, Osi referans modelinde veri iletilirken parçacıklar halinde yani fragmente edilerek gönderilmektedir. Paketler ise verelere ayrıştırılacağı zaman paketlerde bulunan ofset değerleri kullanılır. Gözyaşı saldırılarında paketi gönderen saldırgan paketler üst üste gelecek şekilde ofsetler ekler. bu paketleri alan bilgisayarlar ayır edemez hale gelir.

Page 18: Her yönüyle linux sistem ve network güvenliği

Syn Flood Saldırıları: Tcp referans modelinde üç yollu el sıkışma( Three Way Handshake) gerçekleştirilirken yapılan bir saldırı türüdür. Syn paketleri bir sunucu ile istemci arasında haberleşmenin başlaması için gönderilen ilk paketlerdir. İstemcinin gönderdiği syn paketlerine sunucu ack paketi gönderir. Bundan sonra ise istemci syn/ack yanıtı gönderek haberleşmenin gerçekleşmesi sağlanır. Tüm bu işlemlerin gerçekleşmesi için hafızada belirli bir yer ayrılması gerekir. İşte syn flood saldırısında amaç çok fazla syn paketi gönderilmesi sağlanarak hafızanın dolması amaçlanır.

Page 19: Her yönüyle linux sistem ve network güvenliği

Smurf Saldırısı: Bu saldırı türünde saldırgan hedef bilgisayardan ping isteğinde bulunmayı amaçlar. Burada saldırgan ping paketini hedef bilgisayarın ipsinden gelecek şekilde ayarlar. Ağda bulunan diğer cihazlar her istek attığında bu makineye gönderileceğinden bu bilgisayar ağdan düşer ve bütün isteklere yanıt veremez hale gelir. Saldırgan kullandığı ip adresi aslında spoof edilmiş ip adresidir.

Page 20: Her yönüyle linux sistem ve network güvenliği

Fraggle Saldırısı: Smurf saldırısı türlerinden birisi olup tek farkı udp echo paketlerinin içersinde icmp echo paketkerini içermesi prensibine göre yapılır.

Amplification Saldırıları: Son zamanlarda genel olarak dns ve ntp servisi kullanılarak gerçekleştirilen saldırı türlerindendir. Ddos saldırılarında amaç çok fazla ve farklı sistem üzerinde belirlenen hedeflere belirli sayıda paket gönderimi amaçlanarak yapılır. Amplification tipi saldırılarında ise trafik kapasitesi yüksek aracı sistemler kullanarak saldırgan sahip olduğu bandwidth miktarından çok daha fazlasını hedef sisteme yönlendirir. 7

Dns amplification saldırılarında öncelikle saldırgan küçük dns sorguları gönderir. Daha sonra birden fazla alan adına sahip bir dns kaydı için parametreyi any olarak ayarlar. Ve tüm kayıt listesini ister. Gönderilen paketler 60 byte civarındayken dönen cevaplar 3­5 kb ları bulabilir. Bu şekilde 50­60 kat daha fazla trafik üretilmiş olur. Ek olarak saldırgan küçük istekleri Recursive Dns sunucuya yönlendirirse kurbana büyük miktarda trafik yönlendirmiş olucaktır.

7 http://blog.bga.com.tr/2014/03/ntp­servisi­kullanarak­gerceklestirilen.html

Page 21: Her yönüyle linux sistem ve network güvenliği

Ddos saldırılarını önlemek için farklı yöntemler bulunmasına rağmen kesin çözüm bulunmamaktadır. Dinamik bant genişliği yönetimi, saldırı tespit sistemleri, yük dengeleme(load balancing), güvenlik duvarları ve İSS ler artık bu saldırılar ile belirli bir yere kadar başa çıkmaktadır.

Nagios ile Sistem ve Network Monitoring 8

Nagios open source bir yazılım olup sistem, network ve altyapınızı monitor etmenize imkan tanımaktadır. Bu bölümde Centos 7 yada Redhat 7 üzerinde kurulum anlatılıp bazı faktörlerinden bahsedilecektir. Sizde test amaçlı minimal bir centos sunucu hazırlayıp öncelikle gerekli programları yüklemeniz gerekmektedir. Nagios sunucularınızı, switchlerinizi, uygulamalarınızı ve servislerinizi monitor etmenize imkan tanır.

8 Her Yönüyle Linux­Sistem ve Network Güvenliği ­ Ahmet HAN Free E­book

Page 22: Her yönüyle linux sistem ve network güvenliği

Nagios Kullanım Faktörleri: ** Monitoring ** Alerting ** Response ** Raporlama(Reporting) ** Maintanence(Bütünlük) ** Planlama(Planning) Kurulum Gereksinimleri: ** LAMP Server

# yum install gd gd­devel gcc glibc glibc­common wget

Gereksinimleri tanımladıktan sonra diğer aşamalara geçebiliriz. Kullanıcı ve Grup Oluşturma: Kullanıcı

# useradd ­m nagios passwd [şifre]

Grup

# groupadd nagcmd usermod ­a ­G nagcmd nagios usermod ­a ­G nagcmd apache

Kullanıcı ve grup oluşturma işlemleri tamamlandıktan sonra nagios ve pluginlerini indirebiliriz.

# wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios­4.0.8.tar.gz

Page 23: Her yönüyle linux sistem ve network güvenliği

# wget http://nagios­plugins.org/download/nagios­plugins­2.0.3.tar.gz

İndirme işlemleri tamamlandıktan sonra artık kurulum kısmına geçebiliriz.

# tar xzf nagios­4.0.8.tar.gz

# cd nagios­4.0.8

# ./configure ­­with­command­group=nagcmd

# make all

# make install

# make install ­init

# make install ­ config

# make install ­commandmode

Temel kurulum işlemlerinden sonra web arayüz kurulumuna geçebiliriz.

Page 24: Her yönüyle linux sistem ve network güvenliği

# make install­webconf

Daha sonra web arayüzden giriş için bir kullancı ve parolası oluşturulım.

# htpasswd ­c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Bu işlemlerden sonra httpd (Apache) servisini yeniden başlatalım.

# systemctl restart httpd

Artık nagios pluginlerini kurmaya başlayabiliriz.

# tar xzf nagios­plugins­2.0.3.tar.gz

# cd nagios­plugins­2.0.3

Kurulum için devam edelim.

# ./configure ­­with­nagios­user=nagios ­­with­nagios­group=nagios

# make

Page 25: Her yönüyle linux sistem ve network güvenliği

# make install

Nagios için temel konfigürasyon atarlarına geçebiliriz. Nagios konfügürasyon dosyaları /usr/local/nagios/etc dizininde bulunmaktadır. Alert’ları alabilmemiz için mail adresimizi yerleştirmemiz gerekmektedir. Dolayısı ile aşağıdaki gibi vi yada nano metin editörü ile dosyamızı açalım.

# nano /usr/local/nagios/etc/objects/contacts.cfg

Şekildeki gördügünüz mail adresinin olduğu yere isteğiniz mail adresini yazabilirsiniz.

Mail adresinden sonra hangi ip aralıklarında çalışacağımız şekildeki gibi düzenlenmelidir.

Page 26: Her yönüyle linux sistem ve network güvenliği

# vi /etc/httpd/conf.d/nagios.conf

[...] ## Şekilde görülen yerlere sharp(#) işareti yerleştirilir. ## # Order allow,deny # Allow from all ## Şekilde görüldüğü gibi yorumsatırları kaldırılmalıdır. ## Order deny,allow Deny from all Allow from 127.0.0.1 192.168.1.n/24 [...]

Daha sonra apache servisi yeniden başlatılır. systemctl restart httpd

Bu aşamadan sonra herhangi hata olup olmadığını kontrol etmelisiniz.

Page 27: Her yönüyle linux sistem ve network güvenliği

# /usr/local/nagios/bin/nagios ­v /usr/local/nagios/etc/nagios.cfg

Hata yoksa şekildeki gibi bir çıktı alıcaksınız.

Artık servisi başlatabiliriz.

# systemctl start nagios chkconfig ­­add nagios chkconfig nagios on

Doğru çalışıyorsa aşağıdaki gibi çıktı olucaktır.

Page 28: Her yönüyle linux sistem ve network güvenliği

Selinux kurallarıda şekildeki gibi düzenlenir.

# nano /etc/config/selinux

[... SELINUX=permissive [...]

Kurulum başarı ile tanımlanmıştır. Artık web arayüze bağlanabiliriz. Taracınızı açarak aşağıdaki gibi bağlanmaya çalışın. Firefox kullanmanız fayda var. Zira google bazen güvenlik amaçlı web arayüzden bağlanılmaya çalışırken çeşitli problemler çıkartabiliyor.

Page 29: Her yönüyle linux sistem ve network güvenliği

Bu aşamadan sonra nagios kullanıma hazır. Şekilde home sayfasını görmektesiniz.

Buradan event log bilgilerine bakalım. Ve görelim.

Page 30: Her yönüyle linux sistem ve network güvenliği

Buradan raporlar kısmına giderek geçmiş günlerin özetine ve loglarına bakalım.

Son olarakta servisler ile ilgili bilgi alalım. Sizde farklı entegrasyonları ve sisteminiz ile ilgili farklı bilgileri almak isterseniz diğer farklı kısımlara bakabilirsiniz.

Page 31: Her yönüyle linux sistem ve network güvenliği

Zabbix İle Network Monitoring 9

Zabbix bir network monitoring uygulaması olmakla birlikte sisteminizdeki switch, sunucu gibi cihazlarınızı monitor etmenize yarayan bir uygulamadır. Farklı uygulamalar için template oluşturabilmekle birlikte, örneğin ossec ile beraber entegre edebilirsiniz. Default olarak 10050 portunu kullanmakta olup farklı şekilllerde agentless yapıdada kurabilirsiniz. Yazıda temel kurulum ve yapılandırma işlemlerine değinilecektir. Test && Kurulum işlemleri Centos 7 Minimal Server üzerinde gerçekleştirilecektir. ** Gereksinimler Centos 7(Monitoring Amaçlı) : Bir Nat ve Bridge Ayağı Centos 7(Agent Amaçlı) : Bir Nat Ve Bridge Ayağı Wmware Workstation 10++ Sürümü Putty Yazılımı LAMP Kurulumu Epel yada kurulum için gerekli repolar libssh2 fping

9 Her Yönüyle Linux­Sistem ve Network Güvenliği ­ Ahmet HAN Free E­book

Page 32: Her yönüyle linux sistem ve network güvenliği

libcurl libiksemel net­smtp openIPMI İlk olarak Monitoring amaçlı zabbix kurulumu analatıcaktır. Daha sonra agent kurulumu anlatıcaktır. Kuruluma geçmeden önce Centos 7 defaultta eksik gelen modülleri indirdikten sonra işlemlere geçmenizde fayda var!

# yum install wget nano “development tools”++

# yum update

LAMP Kurulumu: İlk olarak Apache servisini kuruyoruz.

# yum install httpd

# systemctl start httpd

Servis başlatıldıktan sonra şekildeki gibi bir çıktı alıcaksınız. Firewall portları şekildeki gibi açılmaldır.

# firewall­cmd ­­zone=dmz ­­add­port=80/tcp ­­permanent #firewall­cmd ­­reload

Ama öncelikle tarayıcınıza şekile belirtildiği gibi sunucu ip adresinizi girmeli ve firewallcmd kurallarını göre portları açmalısınız.

# http://Centos_7_Sunucu_İpadresi

Page 33: Her yönüyle linux sistem ve network güvenliği

Boot edilene kadar açık bırakalım.

# systemctl enable httpd.service

Bundan sonra mysql(mariadb) kurulumuna geçebiliriz.

#sudo yum install mariadb­server mariadb

# sudo systemctl start mariadb

Buradan itibaren güvenli kuruluma geçelim.

# sudo mysql_secure_installation

Bir kaç farklı soru sorucaktır. Root şifresini girdikten sonra diğer Y şeçeneği ile devam edelim.

# Enter current password for root (enter for none): OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorization.

Page 34: Her yönüyle linux sistem ve network güvenliği

New password: Şifreniz Re­enter new password: Şifreniz Password updated successfully! Reloading privilege tables.. ... Success!

# sudo systemctl enable mariadb.service

Mariadb kurulumu tamam. Php modülllerini kuruluma geçebiliriz.

# sudo yum install php php­mysql

httpd servisini bu aşamadan sonra yeniden başlatmamız gerekecektir.

# systemctl restart httpd.service

# yum install php­fpm

Not: Sisteminizde o anki eksik tüm php modülleri mutlaka kurulu olmalıdır.

# php­bcmath.x86_64 : A module for PHP applications for using the bcmath library php­cli.x86_64 : Command­line interface for PHP php­common.x86_64 : Common files for PHP php­dba.x86_64 : A database abstraction layer module for PHP applications php­devel.x86_64 : Files needed for building PHP extensions php­embedded.x86_64 : PHP library for embedding in applications php­enchant.x86_64 : Enchant spelling extension for PHP applications

Modüllerinizin hepsi tamamsa php çalışması ile ilgili test yapalım.

Page 35: Her yönüyle linux sistem ve network güvenliği

# nano /var/www/html/info.php/

Daha bu dosyanın içersine aşağıdaki yazıp kaydedelim.

# <?php phpinfo(); ?>

Tarayıcımıza gidip yazalım.

# http://Centos7_Sunucu_ip_adresi/info.php

Eğer herhangi bir şey gelmez ise firewall portlarını kontrol edelim.

#sudo firewall­cmd ­­permanent ­­zone=public ­­add­service=http #sudo firewall­cmd ­­permanent ­­zone=public ­­add­service=https #sudo firewall­cmd ­­reload

Lamp kurulumu tamam artık Zabbix kurulumuna geçebiliriz.

Page 36: Her yönüyle linux sistem ve network güvenliği

# yum update

Repoları ekleyelim ve diğer gereksinimleri kuralım.

# rpm ­­import http://repo.zabbix.com/RPM­GPG­KEY­ZABBIX

rpm ­Uv http://repo.zabbix.com/zabbix/2.4/rhel/7/x86_64/zabbix­release­2.4­1.el7.noarch.rpm

# yum install mysql­server zabbix­server­mysql zabbix­web­mysql zabbix­agent

zabbix­java­gateway

Bu aşamadan sonra tablodaki dizine gidelim. Ve yorum satırırı şekildeki gibi olmasınısını sağlayarak timezonu düzenleyelim.

# /etc/httpd/conf.d/zabbix

Page 37: Her yönüyle linux sistem ve network güvenliği

Daha sonra httpd servisini yeniden başlatalım. Ve veritabanı oluşturalım.

# # mysql ­u root ­p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.5.35 MySQL Community Server (GPL) by Remi

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database zabbix;

Query OK, 1 row affected (0.05 sec)

mysql> GRANT ALL ON zabbix.* TO zabbix@localhost IDENTIFIED BY

'zabbix­password';

Query OK, 0 rows affected (0.02 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.01 sec)

Page 38: Her yönüyle linux sistem ve network güvenliği

mysql> exit

Bye

Bu aşamdan sonra ise zabbix templatelerini import edelim.

# mysql ­u zabbix ­p zabbix < /usr/share/doc/zabbix­server­mysql­2.0.6/create/schema.sql

# mysql ­u zabbix ­p zabbix < /usr/share/doc/zabbix­server­mysql­2.0.6/create/images.sql

# mysql ­u zabbix ­p zabbix < /usr/share/doc/zabbix­server­mysql­2.0.6/create/data.sql

Bu aşamadan sonra servisler başlatılır ve kuruluma geçilebilir.

# systemctl start zabbix­server

Tarayıcıya şu şekilde girilerek yükleme işlemine başlanılır.

Page 39: Her yönüyle linux sistem ve network güvenliği

Daha sonra ikinci aşamda şekildeki gibi tüm eksikleri kendisi kontrol etmekte. Eksik bir servis var ise başlamamaktadır. Adım adım giderek takip ediniz.

Page 40: Her yönüyle linux sistem ve network güvenliği

Veritabanı bağlantılarını şekildeki gibi düzenlemeniz gerekmektedir.

Ardından test connection ile bağlatıyı kontrol ediniz.

Page 41: Her yönüyle linux sistem ve network güvenliği

Son yapılandırmayıda şekildeki gibi yapalım.

Kurulumun son hali şekildeki gibi yapılandırılmaları göstermektedir.

Page 42: Her yönüyle linux sistem ve network güvenliği

Finishten sonra login sayfasına geçebiliriz.

Page 43: Her yönüyle linux sistem ve network güvenliği

Kurulum tamamlanmıştır.

Bu aşamdan sonra agent kurulumuna geçelim.

# rpm ­­import http://repo.zabbixzone.com/centos/RPM­GPG­KEY­zabbixzone

rpm ­Uv http://repo.zabbixzone.com/centos/zabbixzone­release­0.0­1.noarch.rpm

yum install zabbix­agent ­y

chkconfig zabbix­agent on

mv /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.default

sed 's/Server=127.0.0.1/Server=Centos7_Server_İp/' /etc/zabbix/zabbix_agentd.default

> /etc/zabbix/zabbix_agentd.conf

service zabbix­agent start

Şekildeki gibi agent yapılandırmasından sonra artık zabbix’iniz hazır.

Page 44: Her yönüyle linux sistem ve network güvenliği

İcinga ile Network Monitoring Edilmesi ve Konfügürasyonu 10

İcinga open source olarak kullanılan sistem ve network monitoring uygulamasıdır. Nagiosttan forklanmış bir uygulamadır. Nagios benzeri bir uygulama olup bazı pozitif yönleri ile nagiostan farklılık göstermektedir. Bu yazımızda Centos 7 minimal bir dağıtım üzerinde icinga kurulum ve konfügürasyonunu anlatıyor olacağız. Sizde nagios, zabbix, icinga gibi open source alternatifleri test edip zamanla en uygun bulduğunuz çözümü kullanabilirsiniz. Ticari ürünler bazen kurumlar için çok gerekir olsalarda önemli olan open source ürünleri kullanıp kurumunuzun IT giderlerini düşürebilirsiniz. Bu noktada open source araçların önemi büyüktür. Özellikle network security, network security monitoring, high availability gibi konularda. Sistem için en temel nano,wget, development tools’ kurulu olmasında dışarıdan ssh ile ulaşım sağlıyorsanız openssh server kurulu olmasında ve web arayüze ulaşım için firewall portlarını açmakta yarar var. Ön gereksinimler:

# yum install httpd gcc glibc glibc­common gd gd­devel # yum install libjpeg libjpeg­devel libpng libpng­devel # yum install net­snmp net­snmp­devel net­snmp­utils

Ön gereksinimler kurulduktan sonra kullanıcı ve grup oluşturma işlemlerine geçilir.

# useradd icinga

Bu aşamadan sonra web arayüze bağlanabilmek için aşağıdaki düzenlemeler yapılmalıdır.

# groupadd icinga­cmd # usermod ­a ­G icinga­cmd icinga # usermod ­a ­G icinga­cmd apache

Kurulum İçin gerekli paketleri indirmeden önce gerekli dizini oluşturalım.

# mkdir ~/icinga # cd icinga/

10 Her Yönüyle Linux­Sistem ve Network Güvenliği ­ Ahmet HAN Free E­book

Page 45: Her yönüyle linux sistem ve network güvenliği

İcinga ve nagios pluginlerini indirelim.

# wget https://github.com/Icinga/icinga­core/releases/download/v1.11.5/icinga­1.11.5.tar.gz # wget http://www.nagios­plugins.org/download/nagios­plugins­2.0.3.tar.gz

Daha sonra gerekli dosyaları şekilde belirtildiği gibi dizine çıkartalım.

# tar zxvf icinga­1.11.5.tar.gz # tar zxvf nagios­plugins­2.0.3.tar.gz

Bu aşamadan itibaren artık kuruluma geçebiliriz.

# cd icinga­1.11.5 # ./configure ­­with­command­group=icinga­cmd ­­disable­idoutils

Kurulum tamamlanana kadar biraz beklemelisiniz ve aşağıdakine benzer bir çıktı almalısınız.

*** Configuration summary for icinga­core 1.11.5 06­20­2014 ***: General Options: ­­­­­­­­­­­­­­­­­­­­­­­­­ Icinga executable: icinga Icinga user/group: icinga,icinga Command user/group: icinga,icinga­cmd Apache user/group: apache,apache Embedded Perl: no Event Broker: yes Enable compressed logs: yes Enable Performance Data: no Build IDOUtils: no Install $prefix: /usr/local/icinga Lock file: $prefix/var/icinga.lock Temp file: /tmp/icinga.tmp Chk file: $prefix/var/icinga.chk HTTP auth file: $prefix/etc/htpasswd.users Lib directory: $exec_prefix/lib Bin directory: $exec_prefix/bin Plugin directory: $exec_prefix/libexec Eventhandler directory: $exec_prefix/libexec/eventhandlers Log directory: $prefix/var Check result directory: $prefix/var/spool/checkresults

Page 46: Her yönüyle linux sistem ve network güvenliği

Temp directory: /tmp State directory: $prefix/var Ext Cmd file directory: $prefix/var/rw Init directory: /etc/rc.d/init.d Apache conf.d directory: /etc/httpd/conf.d Apache config file: /etc/httpd/conf.d/icinga.conf Mail program: /bin/mail Host OS: linux­gnu Environment Prefix: ICINGA_ Web Interface Options: ­­­­­­­­­­­­­­­­­­­­­­­­ HTML URL: http://localhost/icinga/ CGI URL: http://localhost/icinga/cgi­bin/ Main URL: http://localhost/icinga/cgi­bin/tac.cgi Review the options above for accuracy. If they look okay, type 'make all' to compile the main program and CGIs. !!! Please take care about the upgrade documentation !!!

Kurulum tamamlanması için aşağıdaki komutları giriniz.

# make all # make fullinstall # make install­config

Bu aşamadan sonra aşağıdaki dizine gidip şekildeki gibi mail adresinizi girmeniz gerekmektedir.

# # vim /usr/local/icinga/etc/objects/contacts.cfg

Page 47: Her yönüyle linux sistem ve network güvenliği

Web bileşenlerini yüklemeye geçebilirsiniz.

# make cgis # make install­cgis # make install­html # make install­webconf

Artık kurulum tamamlandı. Web arayüzden erişim sağlamak için kullanıcınıza bir parola oluşturmalısınız.

# htpasswd ­c /usr/local/icinga/etc/htpasswd.users icingaadmin New password: Re­type new password: Adding password for user icingaadmin

Şimdi ise icinga servisini başlatalım.

# systemctl start httpd.service

Page 48: Her yönüyle linux sistem ve network güvenliği

Servis herhangi bir error vermeden başladıysa problem yoktur. Pluginlerin kurulumunu ise aşağıdaki komutları çalıştırarak devam edebilirsiniz.

# cd ~/icinga/nagios­plugins­2.0.3 # ./configure ­­prefix=/usr/local/icinga ­­with­cgiurl=/icinga/cgi­bin ­­with­nagios­user=icinga ­­with­nagios­group=icinga # make # make install

Sistem boot edilirken servisin aktif olmasını isterseniz şekildeki komutu girmenizde yarar var.

# /usr/local/icinga/bin/icinga ­v /usr/local/icinga/etc/icinga.cfg

Çıktı şekildeki gibi ise kusursuz bir kurulum gerçekleşmiştir.

# chkconfig ­­add icinga # chkconfig ­­level 35 icinga on

Page 49: Her yönüyle linux sistem ve network güvenliği

# systemctl start icinga.service

Kurulum tamamlandı. Tarayıcınıza gelip icingayı başlatabilirsiniz.

# http://Sunucunu_İp/icinga

Bu işlemden sonra kullanıcı adımız ve daha önceden belirdeğimiz şifre ile login olalım. İlk başlamış ekranımız şekildeki gibidir.

Yan taraftaki sekmelerden örnek olması amacıyla servis detayları sekmesine gidelim ve çıktıları inceleyelim.

Page 50: Her yönüyle linux sistem ve network güvenliği

Buradan reporting kısmına gidelim ve olay loglarını (event logs) görelim.

Geniş çaplı bilgi almak isterseniz raporlama imkanıda sunmaktadır. Test amaçlı diğer özelliklerine göz atmanızda fayda var.

Page 51: Her yönüyle linux sistem ve network güvenliği

Packetfence Open Source NAC Yapılandırması 11

Packetfence open source nac(network access control) uygulamasıdır. Küçük ve geniş networkler için farklı kullanılmasının yanı sıra captive portallar, cihazların izole edilmesinde, wired and wireless yönetimindede kullanılmaktadır. İds, İps sistemler ile entegre edilbilmekte ve aynı zamanda DLAP gibi farklı servisler ile kullanabilirsiniz. Ticari amaçlı destek hizmetleride sunmaktadır. Şekildeki resim desteklediği bileşenleri göstermekte olup official sitesinden alınmıştır. Desteklediği bileşenler şekildeki gibidir. 12

Mimari olarak ise şekildeki gibi işlemekte olup örnek ve yazı bütünlüğü, okuyucu açısından bu resim official siteden alınmıştır.

11 Her Yönüyle Linux­Sistem ve Network Güvenliği ­ Ahmet HAN Free E­book 12 http://www.packetfence.org/fileadmin/images/pf/components.png

Page 52: Her yönüyle linux sistem ve network güvenliği

13

Kullanım alanları: Bankalar, Kolejler, Üniversiteler, Mühendislik Şirketleri, Oteller, Medical Center ve Hastahaneler, Telekominikasyon Şirketleri, Manufacturing Şirketleri… Gereksinimler: Ubuntu 12.04 Server Wmware Nat ve Bridge Bacağı Putty Openssh server

13 http://www.packetfence.org/fileadmin/images/pf/network.png

Page 53: Her yönüyle linux sistem ve network güvenliği

Kurulum: Kuruluma geçmeden öncelikle Ubuntu işletim sistemi ön gereksinimlerinin kurulması gerekmektedir.

# sudo apt­get install build­essential apache2 apache2.2­common apache2­utils openssl openssl­blacklist openssl­blacklist­extra php­log snort mysql­server libapache2­mod­proxy­html libapache2­mod­php5 php­pear php5­mysql php5­gd

Daha sonra packetfence çalışabilmesi için gerekli olan bazı Perl modüllerini kurmanız tavsiye edilir.

# sudo apt­get install perl­suid libapache­htpasswd­perl libbit­vector­perl libcgi­session­serialize­yaml­perl libconfig­inifiles­perl libtimedate­perl libapache­dbi­perl libdbd­mysql­perl libfile­tail­perl libnetwork­ipv4addr­perl libiptables­parse­perl libiptables­chainmgr­perl liblist­moreutils­perl liblocale­gettext­perl liblog­log4perl­perl liblwp­useragent­determined­perl libnet­mac­vendor­perl libnet­mac­perl libnet­netmask­perl libnet­pcap­perl libnet­snmp­perl libsnmp­perl libnet­telnet­cisco­perl libparse­recdescent­perl libregexp­common­email­address­perl libregexp­common­time­perl libperl­critic­perl libreadonly­xs­perl libhtml­template­perl libterm­readkey­perl libtest­perl­critic­perl libtest­pod­perl libtest­pod­coverage­perl apache2­mpm­threadpool libthread­pool­simple­perl libuniversal­require­perl libuniversal­exports­perl libnet­rawip­perl libwww­perl

Gereksinimler ve modüllerin kurulmasından sonra packetfence kuruluma hazır hale getirilir. Bunun için packetfence şekildeki gibi repolar eklenmesi sağlanır.

# $ sudo nano /etc/apt/sources.list.d/packetfence.list

Bu dosyaya şekildeki satır eklenilir.

# deb http://inverse.ca/downloads/PacketFence/ubuntu precise precise

Daha sonra şekildeki komut ile birlikte GPG key eklenilmesini sağlanılır.

# $ sudo apt­key adv ­­keyserver keys.gnupg.net ­­recv­key 0x810273C4

Page 54: Her yönüyle linux sistem ve network güvenliği

Bu noktadan itibaren ise gerekli güncellemeyi sağlanarak kuruluma geçilir.

$ sudo apt­get update $ sudo apt­get install packetfence

Bu biraz zaman alabilir biraz beklemeniz gerekmektedir. Kurulum tamanlandıktan sonra konfigürasyon işlemlerine geçebiliriz. Bunun için web tarayıcınıza gidip ip adresi ve default olarak tanımlanmış 1443 portunu yazarak packetfence’se ulaşmaya çalışın.

# https://Sunucu_İp_adresi:1443/configürator

Artık yapılandırma işlemlerine geçilebilir. Web arayüz ile bağlantıda sıkıntı yaşamak istemiyorsanız 80,443,1443 gibi portları firewall kuralları ile açmanızda fayda var. Şekildeki gibi İnline enforcement sekmesini seçerek işe koyulalım.

Daha sonra eth0 arayüzü için şekildeki resimdeki gibi temel gereksinimleri ayarlayarak devam edelim.

Page 55: Her yönüyle linux sistem ve network güvenliği

Gerekli yapılandırmaları sizde kendi networkünüze göre oluşturmanızda ve yapılandırmanızda fayda var. Bu aşamdan sonra sonra bir sonraki aşamada arayüzleri şekildeki gibi örnek olması açısından yapılandıralım.

Page 56: Her yönüyle linux sistem ve network güvenliği

Veritabanı konfigürasyonu ve packetfence kullanıcı hesabı oluşturalım.

Domain, hostname ve diğer bilgileri şekildeki gibi girelim.

Page 57: Her yönüyle linux sistem ve network güvenliği

Son olarak yönetici hesabı ve şifresini şekildeki gibi girelim.

Packetfence çalışmaya hazır. Start seçeneği ile şekildeki tüm servisleri başlatalım.

Page 58: Her yönüyle linux sistem ve network güvenliği

Farklı ağ şekillerine göre farklı yapılandırma şekilleri bulunmakta olup sizde kendi ağınızın durumuna göre çok kısa bir sürede packetfence’ i yapılandırabilirsiniz.

Ngix 101 14

Ngix nginx [engine x], Igor Sysoev tarafından yazılan bir HTTP, reverse proxy ve mail proxy 15

sunucusudur. 5 yıldır, özellikle Rus sitelerinde yoğun bir şekilde kullanılmaktadır. Örneğin;

Rambler (RamblerMedia.com). Netcraft'a göre, nginx, Nisan 2010 itibari ile %4.70 oranında

kullanılmaktadır. Bazı başarı hikayeleri (İngilizce):FastMail.FM, Wordpress.com.

Kaynak kodu, 2­clause BSD­like license lisansı altındadır.

Bu makalemizde ngix kulllanım alanlarına değinmekle birlikte en basit anlamda Centos 6.2 bir

server üzerine kurulumunu test edeceğiz. Zira kullanım imkanı olarak apache’ye göre daha

hızlıdır. Eğer siteniz 512 kullanıcıdan daha fazla ziyaretçi çekiyorsa bu farkı çok rahat

performans olarak görebilirsiniz. Farklı yapılandırmalar ile ilgili official sitesine bakıp load

balancing, güvenlik ile ilgili tavsiyeleri, ölçeklenebilirliği, sistem kaynak analizi gibi farklı

14 Her Yönüyle Linux­Sistem ve Network Güvenliği ­ Ahmet HAN Free E­book 15 http://nginx.org/tr/#basic_http_features

Page 59: Her yönüyle linux sistem ve network güvenliği

işlevlerini test edebilirsiniz. Yüksek trafiğe sahip bir çok site, Dünyanın önde gelen, Ngix

kullanmaktadır.

Temel Http Özellikleri:

** SSL ve TLS SNI desteği

** Statik ve index dosyalarının sunumu, otomatik indeksleme; açık dosya açıklayıcı önbellek

** Önbellek ile hızlandırılmış reverse proxying; basit yük dengeleme ve hata toleransı;

** Uzak FastCgi sunucularının önbelleklenmesi ile hızlandırılmış destek; basit yük dengeleme

ve hata toleransı;

** Modüler yapı. Gzip, byte aralıkları, yığın cevaplar (chunked responses), XSLT, SSI, imaj

boyutlandırma gibi filtreler. FastCGI veya proksilenmiş sunucular ile tek bir sayfada çoklu SSI

içermelerinin paralel işlenmesi.

Sağladığı Diğer Http Özellikleri:

** Ad ve İp tabanlı Sunucular

** Keep­Alive ve Pipelined Bağlantı Desteği

** Esnek Yapılandırma

** İstemci işlemlerinde kopma olmadan yeniden yapılandırma ve online güncelleme

** Erişim kayıt log formaları,tamponlamış kayıt yazımı ve hızlı kayıt devri

** 3xx­5xx hata kod yönlendirmeleri

** rewrite modülü

** İstemcinin ip adresine dayalı erişim kontrolü ve Http kimlik denetleme

** put, delete, copy, move komutları

** FLV streaming

** Hız sınırlama

** Gömülü Perl

** Bir adresten gelen eş zamanlı bağlantı ve talepleri sınırlama

Page 60: Her yönüyle linux sistem ve network güvenliği

Mail proxy sunucu özellikleri:

** Harici bir HTTP kimlik denetleme sunucusunu kullanarak, kullanıcıyı IMAP/POP3 backend’ine

yönlendirme;

** Harici bir HTTP kimlik denetleme sunucusunu kullanarak, kullanıcıyı SMTP backend’ine

yönlendirme ve kullanıcı kimlik denetlemesi;

** Kimlik denetleme methodları:

POP3: USER/PASS, APOP, AUTH LOGIN/PLAIN/CRAM­MD5;

IMAP: LOGIN, AUTH LOGIN/PLAIN/CRAM­MD5;

SMTP: AUTH LOGIN/PLAIN/CRAM­MD5;

** SSL desteği;

** STARTTLS ve STLS desteği.

Yapı ve Ölçeklenebilirlik:

* Bir ana işlem (main process) ve çok sayıda işçi işlemleri (workers). İşçiler, imtiyazsız kullanıcı

olarak yürütülürler;

* Uyarı methodları: kqueue (FreeBSD 4.1+), epoll (Linux 2.6+), rt signals (Linux 2.2.19+),

/dev/poll (Solaris 7 11/99+), event ports (Solaris 10), select ve poll;

** Çeşitli kqueue özellikleri desteği: EV_CLEAR, EV_DISABLE (event’i geçici olarak

etkisizleştirir), NOTE_LOWAT, EV_EOF, olanaklı data sayısı, hata kodları;

** Sendfile (FreeBSD 3.1+, Linux 2.2+, Mac OS X 10.5), sendfile64 (Linux 2.4.21+), ve sendfilev

(Solaris 8 7/01+) desteği;

** File AIO (FreeBSD 4.3+, Linux 2.6.22+);

** Accept­filters (FreeBSD 4.1+) ve TCP_DEFER_ACCEPT (Linux 2.4+) desteği;

** 10,000 inaktif HTTP keep­alive bağlantısı yaklaşık 2.5M hafıza kullanır;

** Data kopyalama operasyonları minimum düzeydedir.

Test Edilen Platformlar ve İşletim Sistemleri:

Page 61: Her yönüyle linux sistem ve network güvenliği

FreeBSD 3 — 8 / i386; FreeBSD 5 — 8 / amd64;

Linux 2.2 — 2.6 / i386; Linux 2.6 / amd64;

Solaris 9 / i386, sun4u; Solaris 10 / i386, amd64, sun4v;

MacOS X / ppc, i386;

Windows XP, Windows Server 2003.

Not: Dökümanının buraya kadarki olan kısmıda konu ve bütünlük açısından official siteden faydalanılmıştır. Dipnottan orjinal notlara ulaşabilirsiniz.

16

Kurulum:

# nano /etc/yum.repos.d/ngix.repo

Daha sonra açılan dosyaya şekildeki tablodaki bilgiler eklenir.

# [nginx]

name=nginx repo

baseurl=http://nginx.org/packages/centos/$releasever/$basearch/

gpgcheck=0

enabled=1

Artık yum ile kurulum işlemlerine geçilebilir.

# yum install ngix ­y

16 http://nginx.org/tr/#basic_http_features

Page 62: Her yönüyle linux sistem ve network güvenliği

Kurulum tamamlandıktan sonra aşağıdaki dizindeki dosya açılır.

# nano /ngix/conf.d/default.conf

Şekildeki gibi düzenleme yapılır.

# location /

#root /usr/share/nginx/html;

root /var/www/html/nginxweb;

index index.html index.htm;

Daha sonra bir index dosyası oluşturulur.

# nano /var/www/html/nginxweb/index.html

Şekildeki bilgiler oluşturulan bu dosyaya eklenir.

# <html>

<body>

<div style="width: 100%; font­size: 40px; font­weight: bold; text­align: center;">

Test Page for nginx web server

</div>

</body>

</html>

Artık ngix servisi kurulumu tamamlandı. Şekildeki komutla başlatalım ve oluşan performansı

zamanla gözlemeleyelim.

Page 63: Her yönüyle linux sistem ve network güvenliği

# service ngix start

Ubuntu 12.04 LTS Üzerine Suricata Kurulumu 17

Suricata open source bir proje olup, snort’un kullandındığı kural setlerini desteklemesi

sayesinde geniş bir kullanım alanı bulmuştur. (Open Information Security Foundation ) OISF

adlı bir vakıf tarafından geliştirilmektedir. Snort’a benzer olarak; imza ve kural tabanlı

çalışmaktadır. Birden fazla cihaz ile (Multithread olarak çalışabilmektedir.)

Suricata İşleyiş şekli ve ekosistemi aşağıdaki resimde anlatılmıştır.

Bu yazımızda screenshootlar ile birlikte Suricatanın Ubuntu 12.04 LTS üzerine adım adım kurulumunu anlatacağız.

17 Her Yönüyle Linux­Sistem ve Network Güvenliği ­ Ahmet HAN Free E­book

Page 64: Her yönüyle linux sistem ve network güvenliği

Kuruluma başlamadan önce Ubuntu 12.04 TLS dağıtımızı ilk sefer kurduysanız sudo apt­get update ve sudo apt get upgrade komutları ile gerekli güncellemeleri, sistem gereksinimlerini yükledikten sonra kuruluma geçebilirsiniz. Suricata farklı dağıtımlarda eksik kütüphaneler ya da paketler olması nedeniyle kurulumdan sonra test aşamasında hata verebilmektedir. Bu yüzden kurulum esnasında tüm komutları eksiksiz girmeniz gerekmektedir. Gerekli ön bilgiden sonra artık kuruluma geçebiliriz. Aşağıdaki komutlar verilerek öncelikle gerekli python ve suricata repoları yüklenmesi gerekmektedir.

Daha sonra aşağıdaki komutla suricata’ yüklenmesi gerekmektedir.

Debugging paketlerininde yüklenmesi için aşağıdaki komut verilmelidir.

Yükleme tamamlandıktan sonra aşağıdaki komutlar ile yeniden update ve upgrade işlemi yapılır.

Bu işlemler gerçekleştirildikten sonra basit yükleme ve konfigürasyon işlemlerine geçilir. Logların tutulması için aşağıdaki komut ile log dizini oluşturulmalıdır.

Bu dizin oluşturulduktan sonra /etc dizini altına suricata dizini oluşturulmalıdır.

Page 65: Her yönüyle linux sistem ve network güvenliği

Bu işlem tamamlandıktan sonra aşağıdaki şekilde konfigürasyon dosyalarının düzenlenmesi gerekmektedir.

Eğer sisteminizde aşağıdaki belirtilen kütüphaneler yoksa yükleme yapmadan önce bu kütüphaneleri de yüklemeniz gerekmektedir.

Htp otamatik olarak sisteme yüklenmektedir. Fakat herhangi bir soruna karşı manuel olarak yüklemek isterseniz aşağıdaki komutları kullanmalısınız.

Suricata default olarak IDS olarak gelmektedir. IDS ve IPS modda kullanmak isterseniz aşağıdaki komutu çalıştırmanız gerekmektedir.

Temel kütüphane ve basit konfigürasyon işlemleri tamamlandıktan sonra otomatik yükleme işlemine

geçebilirsiniz.

Page 66: Her yönüyle linux sistem ve network güvenliği

Basit yükleme işlemi burada tamamlanacaktır.

Daha sonra Suricata motorunu (engine) kurulum için önce aşağıdaki komutla indirmeniz

gerekmektedir.

Diğer IPS yeteneklerini kullanabilmek için aşağıdaki komutları da girmeniz gerekmektedir.

Bu işlemleri yaptıktan sonra kuralların aşağıdaki şekillerdeki gibi düzenlenmesi gerekmektedir.

Page 67: Her yönüyle linux sistem ve network güvenliği

threshold dosyasının ilgili dizinde oluşturulması gerekmektedir.

Bu işlemlerden sonra suricata.yaml dosyası kontrol edilerek aşağıdaki ayarların default’ ta resimde görüldüğü şekilde düzenlenmesi gerekmektedir. nano ya da vi editörü ile dosya içine

girdikten sonra yapılandırma ayarlarının şekildeki gibi olması gerekmektedir.

Kurulum tamamlanmıştır. Artık test aşamasına geçebiliriz. eth0 arayüzünden ağa bağlı olduğumuz ve kurulumun wmware üzerinde sanal makinada tek arayüze sahip makinada

gerçekleştirilmiştir.

Page 68: Her yönüyle linux sistem ve network güvenliği

Yukarıdaki komut ile suricata’nın çalışıp çalışmadığını test edebilirsiniz. Bazı hatalar vermektedir. Bu hatalar dağıtımdan dağıtıma farkılık göstermekte olup, suricata’nın official

sitesinde common error adı altında resimdeki gibi toplanmıştır. Buradan yaşadığınız sorunları suricata.yaml dosyasını kontrol ederek düzeltebilirsiniz.

Daha sonra test sonucunu snorby olmadan tutulan logları görmek isterseniz var/log/suricata dizinine geçmeniz gerekmektedir.

Page 69: Her yönüyle linux sistem ve network güvenliği

cat http.log komutu ile log dosyasını açtığımız zaman aşağıdaki gibi tutulan ip adresi değerlerini, yapılan atak türünün çalıştığını görebiliriz.

Ya da test amaçlı aşağıdaki komutu çalıştırabiliriz.

Page 70: Her yönüyle linux sistem ve network güvenliği

GPL attack response gibi bir log oluşacaktır. Resimde görebilirsiniz.

Page 71: Her yönüyle linux sistem ve network güvenliği

Diğer unifiedalert dosyaları içersinde hızlılık ve performans açısından değerlendirilmesi içinfarklı ascii formatında değerler bulunmaktadır. Bu değerleri normal alert olarak görebilimek için snort

ya da suricata’ ya snorby kurulumunu gerçekleştirmeniz gerekmektedir.

Snorby kurulumuna başka bir yazımızda değineceğiz. unified alert dosyasını açarsak şekildeki gibi görünmektedir.

İps/ İds sistemleri temelde layer2 mirroring yapan saldırı tespit ve önleme sistemleri olarak geçmektedir. Bilinen açıkları ve bunlar için oluşturulmuş kurallar dahilinde çalışırlar. Ortaya çıkan yeni bir açığa karşı savunmazsızdırlar. Taki o açıkla ilgili kural listesi güncellene kadar.

Kurulum tamamlandıktan sonra dosya, işleyiş sistemini bilmek konfigürayon açısından önemlidir. Ağınıza bu tür saldırı tespit sistemlerini yapılandırırken tam anlamıyla

yerleştireceğiniz ips/ids sistemini bilmek, gerekirse dns tunneling, ssh attacklarına ve diğer bilinen yeni açığa çıkan heardbleed attackları gibi farklı türden ataklara özel kurallar yazmanız

Page 72: Her yönüyle linux sistem ve network güvenliği

gerekebilir. Belki o anda tanımlı emerging threats kuralları çok olsada manuelde kurallar yazmanız gerekecektir.

Genel olarak kural yazımı yukarıdaki ve aşağıdaki resimdeki gibidir.

Son zamanda ortaya çıkan kurumsal firmaları, bankacılık, finans sektörü gibi daha bir çok sektörü etkileyen zeus, cryptolocker, hesporbot gibi özelleşmiş hedef odaklı saldırılara karşıda

kendimiz local kurallar ekliyebiliriz.

Farklı kuralları görmek için /etc/suricata/rules dizinine geçerek bu kuralları görebilirsiniz.

Sadece belirli başlı kurallar ile kalmayıp toplamda yaklaşık 20.000’e yakın kural içermekle birlikte, birden fazla bilgisayarın bulunduğu ve yüksek trafik boyutlarında da esneklik sağlayarak

ağınız bir kale gibi korumanıza olanak sağlamaktadır.

Page 73: Her yönüyle linux sistem ve network güvenliği

Snorby arayüz tespit edilen attackların kural bilgilerini görebilirsiniz.

Saldırı Tespit Sistemlerinin Konumlandırılması 18

Her şeyden önce internette bazı iş ilanlarına baktığım zaman ilgili uzmanlık alanında saçma sapan bir çok şey görür olduk bu sıralar. Anlatmaya gerek yok açıp ilanlara baksanız mezun mu arıyorlar yoksa mezun olunca 5­10 yıllık tecrübeli her şeyi bilmenizi isteyen bir amele gibi kullancak birisini mi arıyorlar belli değil. Ama neyse ki bu işin içinden gelen firmalarımızda yok değil. Çok sade ama etkili ilanlarda var, ama neyse bu konu uzar gider şimdi esas olarak bu yazının önemine geçmek istiyorum. Hazır kariyer mevzusundan yazıya başlamışken belirtmek istediğim başka bir noktada ileride bir network güvenlik uzmanı olmak isteyen birisi olarak güvenlik konuları ile uğraşıp, network topolojisini ya da network mimarisini bilmem gerektiğini düşünerekten bu yazı dizisini hazırlamaya karar verdim. Öğrendiğim her yeni şeyi farklı tiplerde güvenlik ile ilgili cihazları, yazılımları, sunucu, hub, swicht router gibi farklı donanım ve yazılımların konumlandırılması(deployment) bu tarz resimler hazırlayarak anlatmaya çalışacağım. Belki bu sayede hem kendi bilgilerimin şekillenmesi, hem de network tarafında yeni çalışmaya başlayacak arkadaşlara faydalı olması için bir şeyler yapabilmiş olabilirim diye ümit ediyorum. Öncelikli olarak ağ güvenliği ile ilgili bilmem gereken en önemli şeyin saldırı tespit sistemlerinin konumlandırılması, network’ün sağlıklı bir biçimde çaışabilmesi için gerekliliğini düşünerekten buradan başlamak istedim.

18 Her Yönüyle Linux­Sistem ve Network Güvenliği ­ Ahmet HAN Free E­book

Page 74: Her yönüyle linux sistem ve network güvenliği

Çizdiğim şekiller aslında basit ama 20 kullancılı küçük bir şirketten 100.000 çalışanın olduğu bir şirkete kadar hepsi bu noktada farklı ağ topolojileri farklı çözümler, proxy sunucuları, ips, idscihazları, hub..++ gibi farklı şekilde bir çok mimari kullanmaktadırlar. Bunun için iyi bir ağ güvenliği uzmanının hurafelerle değil reel ve dışarıdan veya içeriden gelebilecek tehditlere karşı hazırlıklı olması gerektiğinden saldırı tespit sistemlerinin konumlandırılması önem arz etmektedir. Şekilde ise basit olarak bir network’e snort yada suricata (ips/ids) sistemlerinin konumlandırılması ile ilgili topolojiyi görebilirsiniz. Sistemde basit olarak iç ağda bulunan bilgisayarlar bulunmakta olup, bir güvenlik duvarı ve birde router bulunmaktadır. Snort ile gelen ve giden loglar tutulmaktadır. Burada ise span mirror portu üzerinden monitor edilmektedir. (Bakınız Şekil 1:)

Şekil 1

Page 75: Her yönüyle linux sistem ve network güvenliği

Yukarıdaki temel ve genel örnekleri verdikten sonra biraz da karmaşık örnekler hazırlamaya çalışalım. Kurumumuzda sunucularımız olabilir. Vpn, Ddos koruyucu cihazlar olabilir. Web server’ımız, şirket bilgileriniz tuttuğumuz bir veritabanımız olabilir. Bazen sadece ips/ids cihazlarını sadece bir yere konumlandırmak yerine birden fazla yere konumlandırıyor olabiliriz. Şekildeki örnekleri inceleyelim. Detaylı olarak her şeyi düşünmemiz gerekmektedir. Fakat bunu kurumsal ağımıza göre gerçekleştirilecek haberleşmeye göre ve sistemlerin çeşitliliğine göre kurumdaki yetkili uzmanın bilmesi gerekmektedir.

Page 76: Her yönüyle linux sistem ve network güvenliği

Aşağıdaki ise internetten hemen önce konumlandırılmış NIDS(Network Intrusion Detection System)’lerini görebiliriz. Erken saldırısı tespiti amaçlı deployment(yerleştirme) yapılmıştır.

Page 77: Her yönüyle linux sistem ve network güvenliği

Şimdi ise promisc modda snort’un nasıl yerleştirilebileceği iel ilgli örnek bir senaryo hazırlayalım. Bazı terimleri internetten araştırmanız gerekmektedir. Yazılar hazırlanırken ilgili konu üzerinde durulmak istenmiştir.

Page 78: Her yönüyle linux sistem ve network güvenliği

Şimdi ise birazda farklı bir yapı düşünerek işe koyulalım. Bu seferde işyerinizde biraz daha kapsamlı bir SOC(Security Operation Center) kurmak istediğinizi düşünelim. Ve honeypotlarda kullanalım. Snort’u ise bu sefer inline modda konumlandıralım.

Page 79: Her yönüyle linux sistem ve network güvenliği

İptables Kurallarının Kullanılması

İptables netfilter tafafından geliştirilen ve bir çok destekleyicisi olan bir güvenlik duvarı yazılımıdır. Linux çekirdeği ile haberleşerek ağ üzerinde paket süzme kurallarının belirlenmesine olanak sağlamaktadır. Linux sistemlerde default olarak atanmış, servislerin geçtiği portlarda engelleme yapılabilmesine, port yönlendirme gibi pratik işlevlere sahiptir. Eğer kurulu olarak gelmiyorsa belirli dağıtım içersinde bunu kullandığımız işletim sisteminin türüne göre kurulumunu gerçekleştirmemiz gerekmektedir.

# yum install iptables

Kurulum gerçekleştikten sonra aşağıdaki komutu vererek kayıtlı gelen kuralları temizleyebilirsiniz. Bu önemlidir. Çünkü sunucunuzun güvenliğini sağlamak istediğiniz ssh portuna uzaktan erişim verilmiş olabilir. Kullandığınız bir port default olarak çalıştığında sizi tehlikeye sokuyor olabilir.

Page 80: Her yönüyle linux sistem ve network güvenliği

# iptables ­F yada iptables ­­flush

iptables kuralları default olarak trafiği accept olarak kabul etmişlerdir. Fakat farklı komutlar kullanarak gelen ve giden trafik hakkında farklı parametleri kullanabiliriz. ** Drop paketlerin geçisine izin verilmemesi durumu. ** Accept paketlerin geçisine izin verilmesi durumu. ** Reject paketlerin erişimi geri çevrilir, acılı bu red ile ilgili bilgilendirilir. ** Return Zincirin son kısmına gönderilir. ** Queue paketlerin kullanıcı alanlarına gönderilmesi sağlanır.

Not: input,output,forward, post ve prerouting kuralları büyük harflerle yazılır.

/* Ön ayarlı kuralların yüklenmesi */ iptables ­P INPUT DROP iptables ­P FORWARD DROP iptables ­P OUTPUT DROP

Eğer gelen ve giden trafik için bir kural tanımlamanız gerekirse iki tane kural tanımlaması yapılması gerekmektedir. Eğer iç ağdaki kullanıcılarınıza güveniniz varsa üçüncü kuralı tanımlamamıza gerek yoktur. Not: Bazı sunucu birimlerine grafik arayüzden erişerek de bu kuralları denetleyebiliriz.(Redhat) ** Belirli bir ip adresinin bloklanmasını şu şekilde sağlayabiliriz.

# iptables ­A INPUT ­s “n.n.n.n” ­j DROP /* n.n.n.n ­> blocklanmasını istediğimiz ip*/

Bu kullanışlı komut İncident Response olaylarında, ya da herhangi başka bir acil durumda çok faydalı olabilmektedir. Örneğin belirli bir ip adresinden gelen isteklerin sonlandırılmasında. Bir başka kullanım yöntimide birden fazla farklı arayüze sahip olabiliriz. Bu arayüzlerden gelen herhangi bir süpheli ip adresi tespit ettiğimizde log dosyalarından o arayüz ile ilgili şekildeki komutu vererek yine ip blocklamasını gerçekleştirebiliriz.

# iptables ­A INPUT ­i eth0 ­s “n.n.n.n”­j DROP

Page 81: Her yönüyle linux sistem ve network güvenliği

# iptables ­A INPUT ­p tcp ­i eth0 ­s “n.n.n.n” ­j DROP

iptables ­L

Şekildeki komutu kullanarak yazmış olduğumuz komutları görebiliriz.

** ssh port 22 üzerinden güvenli haberleşme sağlayan ve sunucularımıza erişmemize olanak tanıyan veri iletimi için kriptografik ağ protokolüdür. Geçtiğimiz dönemlerde gerçekleştirilen saldırıların çoğu bu port üzerine yapılan brute force saldırıları şeklinde olmuş olup hala en çok yapılan saldırı türleridir. Bu nedenle çok önemlidir. Örneğin sunucumuz o an ssh ile iletişine izin vermek istiyorsak şekildeki gibi bir komut girebiliriz.

#iptables ­A INPUT ­i eth0 ­p tcp ­s 192.168.x.x ­­dport 22 ­m state ­­state NEW,ESTABLIDHED ­j ACCEPT #iptables ­A OUTPUT­i eth0 ­p tcp ­s 192.168.x.x ­­dport 22 ­m state ­­state NEW,ESTABLIDHED ­j ACCEPT

Belirli bir networkten gelen ssh trafiğine izin vermek amacıyla aşağıdaki kuralı da kulllanabiliriz.

# iptables ­A INPUT ­i eth0 ­p tcp ­s 192.168.x.x/24 ­­dport 22 ­m state ­­state NEW,ESTABLISHED ­j ACCEPT

# iptables ­A OUTPUT ­i eth0 ­p tcp ­s 192.168.x.x/24 ­­dport 22 ­m state ­­state NEW,ESTABLISHED ­j ACCEPT

Page 82: Her yönüyle linux sistem ve network güvenliği

Benzer şekilde http ve https bağlantılarına da izin verebiliriz.

# iptables ­A INPUT ­i eth0 ­p tcp ­s 192.168.1.x ­­dport 80 ­m state ­­state NEW,ESTABLISHED ­j ACCEPT

# iptables ­A OUTPUT ­i eth0 ­p tcp ­s 192.168.1.x ­­dport 80 ­m state ­­state ESTABLISHED ­j ACCEPT

Linux Sistemler İçin Kullanışlı 10 Open Source Güvenlik Duvarı 19

Bu kısımda open source firewalllar üzerine olacaktır. Bugün piyasada satılan güvenlik cihazlarını örneklendirecek olursak palo alto, sonicwall, fortinet, checkpoint, fireeye gibi bir çok ürün bulunmaktadır. Bunlar genel olarak hardware şeklinde olabileceği gibi software şeklinde de olabilmektedir. Günümüz iş ilanlarına baktığımız zaman bu cihazların yönetimi, kurum politikalarına uygun bir şekilde çalıştırılması gibi bir çok farklı taleple karşılaşmaktayız. Yukarıda ismini verdiğimiz ve ticari olanlar minimum 55.000 $ seviyesinden başlayıp ürünün işlevlerine göre farklı fiyatlarda olabilmektedir. Bir öğrencinin bu tarz cihazlara ulaşması biraz zor olabilir. Ama open source ürünler üzerinde kendini birazcık geliştirirse ilerleyen zamanlarda çalışacağı pozisyona göre ve yönetecek olacağı güvenlik cihazına göre, üzerine kurum içi ve dışı network yapılandırmalarında farklı görevler düşücek olabilir. Her cihazın farklı özellikleri bulunmakla beraber bu o anki şartlarda o cihaz ile uğraşılmasına bağlıdır denebilir. Bu yüzden öğrencilerin aşağıdaki adı geçen Dünya çapında kullanılan open source ürünler ile haşır neşir olması ilerdeki çalışma hayatlarında faydalı olucaktır. Kitabın ilerleyen kısımlarında vakit olursa bu ürünlerin kurulum, konfigürasyon, web filtering gibi konular üzerine de değinilecektir. ** İptables ** IPcop Firewall ** Pfsense ** Shorewall ** UFW ­ Uncomlicated Firewall ** Vuurmuur ** IPfire ** SmoothWall && SmoothWall Express ** Endian ** ConfigServer Security Firewall

19 Her Yönüyle Linux­Sistem ve Network Güvenliği ­ Ahmet HAN Free E­book

Page 83: Her yönüyle linux sistem ve network güvenliği

Docker İle Sanal İmagelerinizi Yönetin 20

Günümüz bilgi çağında son yıllarda yaşanılan gelişmeler ile birlikte bir network’ün yönetilmesi, geliştirilen yazılımların test edilmesi, bt süreç modellemelerinin işlemesi, sistem altyapı çözümlerinin yapılandırılaması gibi kavramları daha çok duyar olduk. 2020 yılına kadar yapılan öngörülerde cihaz sayısının hızla artıcak olması; bu cihazların haberleşmesi, konumlandırılması BT sistem mühendislerine ekstra yükler getirmektedir. Bu noktada sanallaştırmaya alternatif çözümler sayesinde gerek test süreçleri, gerek networkte yapılacak optimizasyonlar daha kısa sürede fazla maliyet gerektirmeden yapılabilmektedir. Docker’da bu çözümlerden birisidir. Docker ile birlikte türkçesi LXC(Linux Containers) ve sanal imageleri yönetmek, data center bulut hizmeti ile verilen işletmelerin yönetilmesi, sunucu optimizasyonları daha kolay olabilmektedir.Önceden deniz taşımacılığında kullanılan sıkıntılardan sonra daha korunaklı bir yapı sunan şimdiki konteynırların taşınması ile daha korunaklı bir yapı sunuluyor. Bu yapı içersinde yapılan işlemler durdurulmadan servis edilebiliyor. İşte tam bu noktada docker’ın kullandığı temel felsefe buradan geliyor. Sanal imagelerinizi processler devam ederken bile çalıştırılabilmesine olanak sağlıyor. Olurduğumuz bir docker konteynır her zaman diğer çalıştırılabilecek sistemlere hazır olarak bekliyor. Sitesinde ise What is Docker açıklamasında kısaca şöyle özetliyor: “ Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications. Consisting of Docker Engine, a portable, lightweight runtime and packaging tool, and Docker Hub, a cloud service for sharing applications and automating workflows, Docker enables apps to be quickly assembled from components and eliminates the friction between development, QA, and production environments. As a result, IT can ship faster and run the same app, unchanged, on laptops, data center VMs, and any cloud. “ Daha detaylı bilgi almak için sitesini ziyaret edebilirisiniz. Türkçe yapacağınız araştırmalar ile temel bilgi almak mümkün olabilir. Kurulum Kurulum için debian, redhat, rhel, ubuntu, centos, windows, mac os x, oracle linux ve bir çok farklı ortamda dökümantasyon sağlıyor. Sizde optimize etmek istediğiniz dağıtımınıza göre bunu şekillendirebilirsiniz. Biz test amaçlı Ubuntu 14.04 LTS dağıtımın en güncel halini kullanıyoruz.

20 Her Yönüyle Linux­Sistem ve Network Güvenliği ­ Ahmet HAN Free E­book

Page 84: Her yönüyle linux sistem ve network güvenliği

# sudo apt­get update # sudo apt­get install docker.io # sudo ln ­sf /usr/bin/docker.io /user/local/bin/docker # sudo sed ­i ‘$acomplete ­F _docker docker’ /etc/bash_compeletion.d/docker.io # source /etc/bash_compeletion.d/docker.io

İlk olarak kontrol etmemiz gereken apt komutumuzun https bağlantı destekleyip desteklememesi.

# /usr/lib/apt/methods/https

Sisteminizde bulunuyorsa destekliyordur. Bir sonraki adıma geçebilirsiniz. Desteklemiyorsa aşağıdaki komutla yükleyebilirsiniz.

# apt­get update && apt­get install apt­transport­https

Daha sonra ise lokal domain anahtarlarımıza repository ekleyebiliriz.

# sudo apt­key adv ­­keyserver hkp://keyserver.ubuntu.com:80 ­­recv­keys

36A1D7869245C8950F966E92D8576A8BA88D21E9

Bundan sonraki aşamada ise lxc­docker paketinizi yükleyemeniz gerekmektedir.

$ sudo sh ­c "echo deb https://get.docker.com/ubuntu docker main\

> /etc/apt/sources.list.d/docker.list"

$ sudo apt­get update

$ sudo apt­get install lxc­docker

Page 85: Her yönüyle linux sistem ve network güvenliği

Bu işlemler tamamlandıktan sonra doğrulama amaçlı çalışıp çalışmadığı ile ilgili komutla şekildeki gibi kontrol edebilirsiniz.

# sudo docker run ­i ­t ubuntu /bin/bash

Bundan sonra gerçekletirilen indirme sonrası istediğimiz şekilde çalışabiliriz. Bu kısımdan sonra herhangi bir problem ile karşılaşmadıysanız docker online tutorial platformu üzerinde ve kendi dağıtımımızdaki örnekler ile devam edeceğiz. Bir docker motoru iki part içermektedir. 21

Server ve client olarak. Bir server tüm konteynırlarımızın yönetilmesi, client ise uzaktan konrol sağlaması..

# docker version

İlk olarak docker version komutu ile içerdiği özellikleri görelim.

İşlem yapmayan başlamak için öncelikli olarak imageleri arayabiliriz. Aşağıdaki komut ile sisteminizde kullanıma hazır konteynırları görebilirsiniz. Aslında bu komut docker hub’un bir image aramamızada yarar.

# docker search <string> ­> [aranacak image]

21 https://www.docker.com/tryit/#0

Page 86: Her yönüyle linux sistem ve network güvenliği

Konteynır imagelerini basit komutlarla indirebilirsiniz. Ubuntu için bizde deneyelim.

# docker pull ubuntu

Sistemimizde daha önceden kurduğumuz için böyle bir çıktı verdi.

Ama normalde farklı bir sistemde denenmiş ekran alıntısı aşağıdaki şekilde benzer olucaktı.

Konteynırları bir kutu içersinden çalışan processler olarak nitelendirebiliriz. Kendi içersinde dosya sistemi, shell, kütüphanleri vardır. Ama default olarak çalışmaz konteynırlar. Dolayısı ile bazı komutları kullanarak kendimizin çalıştırması gerekmektedir. Örneğin basit bir hello world yazdırmak isteyelim.

# docker run learn/tutorial echo “ahmethan”

Çıktısı şekildeki gibi olucaktır.

Page 87: Her yönüyle linux sistem ve network güvenliği

Bir başka örnekle devam edelim. Konteynırımıza başka bir program yükleyelim. Komutumuz aşağıdaki gibi olmalıdır. Konteynıra yeni şeyler yükleme bu şekilde olmaktadır.

# docker run learn/tutorial apt­get install ­y ping

# Reading package lists... Building dependency tree... The following NEW packages will be installed: iputils­ping 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 56.1 kB of archives. After this operation, 143 kB of additional disk space will be used. Get:1 http://archive.ubuntu.com/ubuntu/ precise/main iputils­ping amd64 3:20101006­1ubuntu1 [56.1 kB] debconf: delaying package configuration, since apt­utils is not installed Fetched 56.1 kB in 1s (50.3 kB/s) Selecting previously unselected package iputils­ping. (Reading database ... 7545 files and directories currently installed.) Unpacking iputils­ping (from .../iputils­ping_3%3a20101006­1ubuntu1_amd64.deb) ... Setting up iputils­ping (3:20101006­1ubuntu1) ...

Çıktı tablolardaki gib olucaktır. Bu örnek üzerinden devam edelim. Bu komutla değişiklikler yapıldıktan sonra kaydedilmesini isteyebilirsiniz. Bunun için bir id değeri atanması gerekmektedir. O zaman nasıl yapılacağını görelim.

# docker ps ­l

Page 88: Her yönüyle linux sistem ve network güvenliği

Birinde yazdırdığımız basit bir echo örneği, diğerinde de apt komutunun çalıştırılması örneğini görebilirsiniz. Bu yaptığımız değişiklikleri kaydetmemiz için bir id değeri atayabiliriz. Kaydı yaptıktan sonra docker yeni bir id değeri döndürmektedir. Yukarıdaki ping komutu için id değeri 698 ile örneğimizi yapalım. Çünkü o şekilde başlıyor. O şekilde kayıt yaparsak bize yeni bir id değeri oluşturacaktır. Diğer türlü ise hata verecektir.

# docker commit 698 learn/ping

Çıktı ise aşağıdaki gibi olucaktır.

# effb66b31edb

Artık bundan sonra yeni image ile çalışabiliriz. Şekildeki komutu bizde deneyelim.

# docker run learn/ping ping www.google.com

Aşağıdaki gibi bir çıktı alıyorsanız herhangi bir problem yoktur.

PING www.google.com (74.125.239.129) 56(84) bytes of data. 64 bytes from nuq05s02­in­f20.1e100.net (74.125.239.148): icmp_req=1 ttl=55 time=2.23 ms 64 bytes from nuq05s02­in­f20.1e100.net (74.125.239.148): icmp_req=2 ttl=55 time=2.30 ms 64 bytes from nuq05s02­in­f20.1e100.net (74.125.239.148): icmp_req=3 ttl=55 time=2.27 ms 64 bytes from nuq05s02­in­f20.1e100.net (74.125.239.148): icmp_req=4 ttl=55 time=2.30 ms 64 bytes from nuq05s02­in­f20.1e100.net (74.125.239.148): icmp_req=5 ttl=55 time=2.25 ms 64 bytes from nuq05s02­in­f20.1e100.net (74.125.239.148): icmp_req=6 ttl=55 time=2.29 ms 64 bytes from nuq05s02­in­f20.1e100.net (74.125.239.148): icmp_req=7 ttl=55 time=2.23 ms 64 bytes from nuq05s02­in­f20.1e100.net (74.125.239.148): icmp_req=8 ttl=55 time=2.30 ms 64 bytes from nuq05s02­in­f20.1e100.net (74.125.239.148): icmp_req=9 ttl=55 time=2.35 ms ­> This would normally just keep going. However, this emulator does not support Ctrl­C, so we quit here.

Page 89: Her yönüyle linux sistem ve network güvenliği

Konteynırlarımızın ne durumda olduğunu kontrolünü yapmak istersek şu şekilde yapabiliriz. Çalışan konteynırlar listenecektir.

# docker ps ­a

Yukarıda şekide herhangi birisi ile ilgili detaylı bilgi almak istiyorsak bu komutu kullanalım. Tüm conteynır idsini yazmaya gerek yok ilk dört karakter yazılabilir.

# docker inspect 35.. Bu komutla bilgiler json formatında listelenecektir. Daha detaylı bilgi için kendi deneyeceğiniz ve aşağıdaki çıktıya bakınız.

Page 90: Her yönüyle linux sistem ve network güvenliği

[2013/07/30 01:52:26 GET /v1.3/containers/efef/json "ID": "efefdc74a1d5900d7d7a74740e5261c09f5f42b6dae58ded6a1fde1cde7f4ac5", "Created": "2013­07­30T00:54:12.417119736Z", "Path": "ping", "Args": [ "www.google.com" ], "Config": "Hostname": "efefdc74a1d5", "User": "", "Memory": 0, "MemorySwap": 0, "CpuShares": 0, "AttachStdin": false, "AttachStdout": true, "AttachStderr": true, "PortSpecs": null, "Tty": false, "OpenStdin": false, "StdinOnce": false, "Env": null, "Cmd": [ "ping", "www.google.com" ], "Dns": null, "Image": "learn/ping", "Volumes": null, "VolumesFrom": "", "Entrypoint": null , "State": "Running": true, "Pid": 22249, "ExitCode": 0, "StartedAt": "2013­07­30T00:54:12.424817715Z", "Ghost": false ,

Çıktının devamı şekildeki gibidir.

Page 91: Her yönüyle linux sistem ve network güvenliği

"Image": "a1dbb48ce764c6651f5af98b46ed052a5f751233d731b645a6c57f91a4cb7158", "NetworkSettings": "IPAddress": "172.16.42.6", "IPPrefixLen": 24, "Gateway": "172.16.42.1", "Bridge": "docker0", "PortMapping": "Tcp": , "Udp": , "SysInitPath": "/usr/bin/docker", "ResolvConfPath": "/etc/resolv.conf", "Volumes": , "VolumesRW":

Tüm bu işlemler tamamlandıktan sonra artık image’miz hazır hale geldiğini kontrol ettikten sonra artık yayımlamaya hazırız. Fakat baştan beri kullanmakta olduğumuz öğrenme amaçlı learn/tutorial’in bulunduğunu doğrulayalım.

# docker push learn/ping

İşlemlerin tamamlandığını şekildeki çıktı ile görebilirsiniz.

The push refers to a repository [learn/ping] (len: 1) Processing checksums Sending image list Pushing repository learn/ping (1 tags) Pushing 8dbd9e392a964056420e5d58ca5cc376ef18e2de93b5cc90e868a1bbc8318c1c Image 8dbd9e392a964056420e5d58ca5cc376ef18e2de93b5cc90e868a1bbc8318c1c already pushed, skipping Pushingc tags for rev [8dbd9e392a964056420e5d58ca5cc376ef18e2de93b5cc90e868a1bbc8318c1c] on https://registry­1.docker.io/v1/reposito ries/learn/ping/tags/latest Pushing a1dbb48ce764c6651f5af98b46ed052a5f751233d731b645a6c57f91a4cb7158

Page 92: Her yönüyle linux sistem ve network güvenliği

Pushing 11.5 MB/11.5 MB (100%) Pushing tags for rev [a1dbb48ce764c6651f5af98b46ed052a5f751233d731b645a6c57f91a4cb7158] on https://registry­1.docker.io/v1/reposito ries/learn/ping/tags/latest Docker’ın yapabilecekleri sadece bununla sınırlı değil daha fazlasını yapabilirsiniz. Farklı örnekleri deneyebilirsiniz. Sanallaştırma çözümlerinde kullanacağız alternatif bir yaklaşım.

# docker run ­t ­i ubuntu /bin/bash Yukarıdaki komutla bir docker’ın içersine girip bash shell’ini kullanıyoruz. Buradan çıkmak için ise ctrl+p, ctrl+q seçeneklerini kullanarak çıkabiliriz. Bu komutlar ile yapılan işlemlerin durdurulması da mümkün olmaktadır. Attach işlemi ile herhangi bir konteynırımızı aşağıdaki komutla attach işlemi yapabiliriz. Bu komut on bize lazım olan konteynırımızdaki özelliklerden yararlanmak için kullanılabilmesini sağlayacaktır.

# docker attach 9c09a5dölciabga7

Kitabın bu kısmına kadar olan yerde docker ile ilgili yapılabilecek en temel kısımları hallettik. Daha sonrası için sizde farklı çözümleri kurumunuzda uygulayacağınız şekilde test ediniz. Docker komutu ile farklı kullanabileceğiniz seçenekleri görüntülüyebilirsiniz.

# docker

Page 93: Her yönüyle linux sistem ve network güvenliği

attach Attach to a running container build Build a container from a Dockerfile commit Create a new image from a container's changes diff Inspect changes on a container's filesystem export Stream the contents of a container as a tar archive history Show the history of an image images List images import Create a new filesystem image from the contents of a tarball info Display system­wide information insert Insert a file in an image inspect Return low­level information on a container kill Kill a running container login Register or Login to the Docker registry server logs Fetch the logs of a container port Lookup the public­facing port which is NAT­ed to PRIVATE_PORT ps List containers pull Pull an image or a repository from the Docker registry server push Push an image or a repository to the Docker registry server restart Restart a running container rm Remove a container rmi Remove an image run Run a command in a new container search Search for an image in the Docker index start Start a stopped container stop Stop a running container tag Tag an image into a repository version Show the Docker version information wait Block until a container stops, then print its exit code

Farklı yapabileceğimiz tüm opsiyonları listelemektedir. Docker imagesleri listelemek için şu komut yeterli olmakta ve listelemektedir.

# docker images

Page 94: Her yönüyle linux sistem ve network güvenliği

Ayrıca işlemleri yapacağımız zaman image’mize farklı bir ip adres atanması gerçekleşmektedir. Bu sayede ağ tarafındada çalışan uygularmalarda çıkcak problemlerin önüne geçilmiş olunur.

Tcpdump ile Network Paket Analizi Komutları 22

Bu yazımızda Ubuntu işletim sistemi üzerinde konsolda network paket analizi işlemlerinin yapılmasını anlatacağız. Tcpdump çoğu unix sistemde çalışan, network paket analizini yapmamızı sağlayan bir komut satırı aracıdır. Windows,mac gibi farklı işletim sistemleri için geliştirilmiş versiyonlarıda bulunmaktadır. eth0 ağ arayüzünün trafiğinin, örnek tcpdump komutları çalıştırılarak anlatıcaktır. Kaydedilmiş dosyalarda tcpdump ile görülebilir. Kaydedilen pcap dosyalarının wireshark ile okunmasını sağlayabilir. Belirli bir arayüzden trafiğin

22 Her Yönüyle Linux­Sistem ve Network Güvenliği ­ Ahmet HAN Free E­book

Page 95: Her yönüyle linux sistem ve network güvenliği

yakalanması için [tcpdump ­i eth0,++] komutunu kullanabiliriz. eth0 arayüzünden dinlenen trafiğin standart çıktısı şekildeki gibidir.

#tcpdump ­i eth0

Herhangi bir bağlantı kurulunca, trafik hareketi olunca şekildeki gibi tüm trafiği görebiliriz. Belirli sayıda trafiğin yakalanmasını istiyorsak şekildeki gibi bir komut girebiliriz. [ tcpdump ­c paketsayısı ­i eth0 ]

# tcpdump ­c 2,3,4,n ­i eth0

Page 96: Her yönüyle linux sistem ve network güvenliği

Eğer paketleri ASCII formatında görmek istersek [tcpdump ­A ­i eth0] komutunu vererek şekildeki gibi görebiliriz.

# tcpdump ­A ­i eth0

Bazı kullancılar hem ascıı formatında hemde hex formatında paketlerin analiz edilmesini isteyebilmektedirler. [tcp ­XX ­i eth0 ] komutu ile bu formattta çıktı alabiliriz.

# tcpdump ­XX ­i eth0

Page 97: Her yönüyle linux sistem ve network güvenliği

Dinlenen trafik ileride analiz edilecek bir trafik olabilir. [tcpdump ­w kayıt.pcap ­i eth0 ] bir tafik kayıt edilebilmektedir. Fakat dosyaların uzantısının .pcap formatında olması gerektiğini unutmayınız.

# tcpdump ­w kayıt.pcap ­i eth0

Şimdide kayıtlı olan .pcap dosyalarını şekildeki komut ile okuyalım. [tcpdump ­tttt ­r kayıt.pcap]

# tcpdump ­tttt ­r kayıt.pcap

Page 98: Her yönüyle linux sistem ve network güvenliği

Yukarıda gösterdiğimiz örneklerde paketleri Dns adresleri ile birlikte gösteriyordu. Şimdi ise ip

adreslerini içeren bir komut çalışıtıralım.

# tcpdump ­n ­i eth0

Uygun timestamp ile paketlerin okunmasının sağlanması için [ tcpdump ­n ­tttt ­i eth0] komutunu kullanabiliriz.

# tcpdump ­n ­tttt ­i eth0

Page 99: Her yönüyle linux sistem ve network güvenliği

Greater komutu kullanarak belirli bir boyut ile ilgili daha fazla yakalanan paketleri kaydetmek istersek [tcpdump ­w test.pcap greater 1024] komutunu kullanabiliriz. Sonra tekrardan bunu yine yukarıdaki örnekte vermiş olduğumuz şekilde kayıtlı dosyayı tekrardan okuyabiliriz.

# tcpdump ­w test.pcap greater 1024

Sadece belirli bir protokol üzerindeki trafiği yakalamak istiyorsanız şekildeki komutu kullanabilirsiniz. [tcpdump ­i eth0 arp ]

# tcpdump ­i eth0 arp

Page 100: Her yönüyle linux sistem ve network güvenliği

Belirli bir boyuttan daha az şekilde trafiği kaydetmek istiyorsak [ tcpdump ­w deneme.pcap less 1024]

# tcpdump ­w deneme.pcap less 1024

Paketleri düzenli bir porttan almak istiyorsanız, [ tcpdump ­i eth0 port 22 ] komutunu kullanabilirsiniz.

# tcpdump ­i eth0 port 22

Bütün paketleri bu komut ile yakalayailirsiniz.

# tcpdump ­i eth0 not arp and not rarp

Page 101: Her yönüyle linux sistem ve network güvenliği

İki ayrı makina arasında bir tcp protokolü ile haberleşme yapıyorsanız; şekildeki komut ile paketleri yakalayabilirsiniz. Şekildeki ip adresi örnek amaçlı verilmiş olup sizde istediğiniz ip adresini verebilirsiniz.

# tcpdump ­w host1.pcap ­i eth0 dst 192.168.1.x and port 22

Bu aynı komut ile dst ip adresindeki paketlerin yakalanmasıda sağlanmış olmaktadır. tcpdump ile ilgili örnek komutların çalıştırılmasını bu yazımızda anlattık. Başka bir yazımızda detaylı olarak paket analizini analatacağız. Farklı örnek komutları sizde kendiniz herhangi bir dağıtımınızda test ediniz. [man tcpdump] komutu ile bu araç ile ilgili terminalden daha fazla bilgiye ulaşmanız mümkün.

# man tcpdump

Page 102: Her yönüyle linux sistem ve network güvenliği

Linux Performans Monitoring Araçları 23

Kurumsal bir ağ olduğumuzu düşünelim. Belirli sayıda bilgisayarımız, bir dmz bölgemiz, linux sunucularımız, firewall cihazımızın, ips/ids gibi çok katmanlı güvenlik önlemleri aldığımızı düşünelim. Kurum içi haberleşmenin sağlıklı gerçekleşmesi, loglamada sıkıntı yaşanmaması, dışarıya veri sızdırılmaması bir çok etken… İyi yapılandırılmamış cihazlar, sağlıklı haberleşmenin gerçekleşmediği ağda verilimlik açısından sürekli problem yaşanacaktır. Bu yazımız linux performans monitoring araçlarının komut satırında kullanımı ile ilgili olacaktır. Kullanılan linux dağıtımı Centos 6.5 olup putty programı üzerinden ssh servisi ile linux server’a bağlanılıp komut satırında kullanılan performans moitoring araçlarından bahsedilip basit örnekler ve ekran çıktıları ile döküman desteklenecektir. Öncelikle Centos 6.5 Oracle Virtual Box üzerinde, minimal iso pratiklik açısından kurulu olması gerekmektedir. ssh servisi ile putty üzeirnden 22’ inci porttan bağlantı için server ip adresinin bilinmesi gerekmektedir. ifconfig komutu ile server ip adresimizi bilmeniz gerekmektedir.

23 Her Yönüyle Linux­Sistem ve Network Güvenliği ­ Ahmet HAN Free E­book

Page 103: Her yönüyle linux sistem ve network güvenliği

Daha sonra putty programına server’ınızın ip adresi ile bağlanmanız gerekmektedir.

Open seçeneğinden sonra ekran şekildeki gibi görünecektir. Buradan kullanıcı adınız ve şifreniz ile girişten sonra kullanıma hazır.

Page 104: Her yönüyle linux sistem ve network güvenliği

Artık komutlarımızı kullanmaya başlayabiliriz ilk olarak top komutunu kullanacağız. Top komutu tüm çalışan sıralı aktif dizin ve işlemleri görmemize yarayan bir komuttur. Linux ve unix sistem yöneticileri tarafından sıklıkla kullanılmaktadır. Cpu kullanımı, bellek kullanımı, takas bellek, ön bellek boyutu, tampon boyutu, süreç pid ve daha fazlasını görebilirsiniz. Yüksek bellek çalışan işlemlerde bellek ve Cpu kullanımını göstermektedir.

# top

Bu komutu verdikten sonra ekran çıktısı aşağıdaki gibi olacaktır.

Page 105: Her yönüyle linux sistem ve network güvenliği

Diğer sık kullanılan bir komutumuz lsof komutu. Tüm açık dosya ve işlemlerin listesini görüntülemek için çok sık kullanılan linux/unix komutudur. Disk dosyaları, network soketlerini, pipes, araçları ve süreçleri görüntüleyebilirsiniz. Bu komutun en önemli özelliği diskte unmouted olan dosya hatalarını, kullanılan dosyaları ve açılıyor olanları gösterir.

Tcpdump en çok kullanılan network paket analiz aracı ya da sniffer olarak linux/unix sysadminleri, bilgi güvenliği uzmanları tarafından sıklıkla kullanılmaktadır. Herhangi network arayüz trafiğini dinleyebilirsiniz. Çoğu linux dağıtımında sıklıkla kullanılmakla birlikte yum install tcpdump komutunu kullanarak Centos server’ınıza yükleyebilirsiniz.

Page 106: Her yönüyle linux sistem ve network güvenliği

Netstat komutu komut satırında kullanılan gelen ve giden ağ paketleri istatistiklerini kullanır. Netstat ( Ağ İstatistikleri) ağa gelen ve giden paketlerin yanı sıra; yönlendirme tablolarını inceleyen ve izleme yapan bir komut satırı aracıdır. Netstat tüm Unix benzeri işletim sistemlerinde ve aynı zamanda Windows işletim sistemi üzerinde de mevcuttur. Ağ sorun giderme ve performans ölçümü açısından çok yararlıdır. Haberleşmede kullanılan portların dinlenmesinde ;en temel ağ ayıklama araçlarından birisidir. Linux ağ yöneticilerinin yanı sıra sistem yöneticileri için de çok yararlıdır.

Page 107: Her yönüyle linux sistem ve network güvenliği

htop sıklıkla kullanılan real time monitoring yapılmasına imkan veren araçtır. Son kullanıcıya yönelik, kullanıcı dostu bir araç olup; farklı arayüz ve süreçleri yönetmemizi sağlayan 3.parti bir yazılımdır. yum install htop komutu ile yükleyebilirsiniz.

Page 108: Her yönüyle linux sistem ve network güvenliği

iotop komutu htopve top komutuna benzemekle birlikte, gerçek zamanlı disk input ve output ve süreçleri görüntülememizi sağlayan önemli bir araçtır. 3. parti bir yazılım olup yine yum install iotop komutu ile yükleyip putty consolda çalıştırmanız gerekmektedir.

# iotop

iostat komutu input ve output depolama sistemini gösteren bir komut satırı aracıdır. Araçları, yerel diskteki verileri, uzak diskteki verileri ve NFS dosyalarını gösterir.

iptraf open source, consol tabanlı, gerçek zamanlı ip lan monitoring aracı olarak kulalnılmaktadır. ip trafik monitoring işlemi yaparak çeşitli ağlardan, tcp flag bilgilerini; icmp detaylarını, tcp/ip trafik hatalarını kırılamalarını(breakdown), tcp bağlantılarını hesaplamaktadır.

Page 109: Her yönüyle linux sistem ve network güvenliği

Genel olarak bilgi toplamakla birlikte; tcp,udp, ip, icmp, non­ip, checksum hatalarını interface hatalarını ve birçok şeyi göstermektedir. Detaylı bilgiye buradan ulaşabilirsiniz.

collectl güçlü ve zengin komutlara sahip olan; linux sistem kaynakları hakkında bilgi toplayan, cpu kullanımı, memory kullanımı, network, process, nfs, tcp, soketler hakkında bilgi toplayan bir araçtır.

Page 110: Her yönüyle linux sistem ve network güvenliği

suricata, snort, nagios, nmon, monitorix vb. gibi özelleşmiş open source farklı araçlar bulunmaktadır. Bu yazımızda yukarıda bahsedilen araçların basit kullanımı 101 eğitimi nitelinde detaya inilmeden anlatılmıştır. Araçları sizde farklı komutlar ile test ediniz. Komut satırı kullanışlık olarak esneklik sağlamakla birlikte kullandıkları yer önem arzetmektedir.

SSH Brute Force Saldırıları 24

Ssh iki cihaz arasında güvenlik kanalıyla veri değişimine imkan sağlayan, izin veren bir network protokolüdür. Birincil olarak linux ve unix gibi protokollerin kabuk hesaplarına ulaşabilmek için kullanılmıştır. Telnet gibi güvensiz protokollerin yerini almak amacıyla dizayn edilmiştir.

24 Her Yönüyle Linux­Sistem ve Network Güvenliği ­ Ahmet HAN Free E­book

Page 111: Her yönüyle linux sistem ve network güvenliği

Telnet protokolü şifresiz bir biçimde veri alışverisinde paralolarınız görülebilecek şekilde tasarlanmıştır. Ssh protokolü ile veriler şifrelenerek gönderildiği için daha güvenli veri aktarımına olanak tanımaktadır. Ssh sunucusu default olarak tcp port 22 üzeriden haberleşme sağlamkatadır. Ssh client ­ ssh server arasında gerçekleşen haberleşme sonucu bağlantı kurulmaktadır. Bir çok işletim sistemi tarafından desteklenmektedir. ssh bir çok uygulama ile beraber kullanılan bir protokoldür. Bazı uygulamalar sadece ssh serer ve ssh client programlarına ihtiyaç duyarak çalışırlar. Bu noktada sssh bağlantılarının önemi büyüktür.

Page 112: Her yönüyle linux sistem ve network güvenliği

** Port yönlendirme için kullanılabilir. ** Uzak kullanıcı ile kabuğa bağlanılabilmektedir. ** Lokal bilgisayardan uzak bilgisayara dosya gönderilebilmektedir. ** Ftp ile dosya gönderimine alternatif bir güvenlik önlemi sağlanmış olur. ** Openssh ile şifrelenmiş vpn bağlantılarının oluşmasına imkan tanır. ** Uzaktan sunucu kontrolünün sağlanmasına imkan tanımaktadır.

Page 113: Her yönüyle linux sistem ve network güvenliği

ssh protokolünü linux sunucuların yönetimide kullandığımızı daha önce belirtmiştik. Hackerlar yada sızma testi uzmanları hedef sisteme erişim sağladıklarında root kullanıcı bile olabilirler. Eğer gerekli önlemler alınmamışsa. Hedef sistem keşif çalışmalarında ya da bilgi toplam aşamasında ssh prtokolünün sistemede keşfedildiği sırada bu protokole yönelik ssh brute force (kaba kuvvet) saldırıları deneyebilir. Deneme yanılma saldırıları olarakta adlandırılmaktadırlar.

Temel olarak saldırı işleyiş modeli aşağıdaki şekildeki gibidir.

Page 114: Her yönüyle linux sistem ve network güvenliği

Zayıf şifrelere sahip olduğunuzda rastgele şifreler denenerek brute force saldırıları gerçekleştirilebilmektedir. İnternette wordlist diye adlandırılan kelime listeleri ile otomatize araçlar ile brute force saldırıları denenebilmektedir. Genel olarak brute force saldırıları olsun, ya da ssh brute force saldırıları olsun bu saldrı tipleri ile ilgili bir çok araç bulunmaktadır. Hydra, Medusa, Ncrack, Metasploit, HttpBrute gibi daha bir çok farklı saldırı yapmamıza imkan tanıyan araç bulunmaktadır. Şimdi örnek bir senaryo ile ssh brute force saldırısını gerçekleştirelim ve bunu tespit edelim. Lab ortamı için üç farklı dağıtım gerekmektedir. ** Ubuntu Desktop(Saldırı yapılacak sürüm önemli değil) ** Kali linux Atak amaçlı kullanılacak ** Security onion saldırı tespit amaçlı [Snort,Suricata,Bro,Argus,Elsa,Snorby] Saldırı işleyiş biçimine gelicek olursak; Öncelikle vmware sanal makinalarda bulunan dağıtımlarımız aktif edilir. Daha sonra ubuntu desktop makinamızın ifconfig komutu ile ip adresini öğreniriz. [ 192.168.221.133 ip adresimiz ]

Page 115: Her yönüyle linux sistem ve network güvenliği

Daha sonra kali linux üzerinde bulunan hydra aracı üzerinden şekildeki komut çalıştırılacak şekilde verilir. Artık kelime listesinde bulunan şifreler denenmektedir.

Bu komutal bulamadı. Fakat common.txt dosyası diye bir wordlist olupturup içine yazdığımız şifreler ile deniyoruz. En sonuna ise gerçek şifremiz 1 değerini yerleştiriyoruz.

Page 116: Her yönüyle linux sistem ve network güvenliği

Atak gerçekleştirme işlemi başladı. Biraz zaman alıcaktır. Yazdığımız kelime listesine göre ama şekilden görebilirsiniz. İşlem başarı ile tamamlandı.

Şifrenin 1 olduğunu ve tespit edildiğini gördük. Security onionda aktif olarak çalışan snort ise bu durumu tespit etmiştir. snorby arayüzdende yapılan bu atakla ilgili düşen logları görmek mümkündür. Saldırının yapıldığı kaynak ve hedef ip adresi tespit edilmiştir.

Linux Sunucularda Bandwitch Monitoring Araçları 25

25 Her Yönüyle Linux­Sistem ve Network Güvenliği ­ Ahmet HAN Free E­book

Page 117: Her yönüyle linux sistem ve network güvenliği

Bu dökümanda network kullanımında komut satırı araçlarının terminalde kullanılması ve bu araçlarda hakkında bilgi edinilmesi amaçlanmıştır. Dağıtım olarak Linux Centos 6.5 minimal iso tercih edilmiş; Oracle Virtual Box uygulaması ile sanal makina image’ ikullanılmıştır. Putty programı ile terminale bağlanılmış komutlar ssh protokolü üzerinden çalıştırılmıştır. Sanal makinamızda çalışan dağtımızın ip adresini öğrenip ssh protokolü ile putty ile bağlanacağız. Önce ifconfig ile ip adresimizi görelim.

Daha sonra ip adresimizi putty programını çalıştırıp şekildeki gibi linux dağıtımımıza bağlantı kurabiliriz.

Her Yönüyle Linux­Sistem ve Network Güvenliği ­ Ahmet HAN Free E­book

Page 118: Her yönüyle linux sistem ve network güvenliği

Bağlantı yapıldıktan sonra şekildeki gibi bizden login olmamızı isteyecektir. Başlangıçta root kullanıcı ve belirlediğimiz komutla login olmamız faydalı olacaktır. root kullanıcı linux sistemlerde en yetkin kullanıcı olduğu için komutları kullanmamız izinler açısından herhangi bir sıkıntı oluşturmayacaktır.

Page 119: Her yönüyle linux sistem ve network güvenliği

Dağıtmımızın internete çıkıp çıkmamağını öğrenmek için ping google.com sorgu atıyoruz ve ekranda göründüğü gibi icmp echo cevapları dönüyor yani makinamız internete çıkıyor.

Linux komut satırı araçları ve diğer network security monotoring araçları çoğu gelen ve giden ağ trafiğinin dinlenmesi, hackerların veya attackerların dışarıdan yaptıkları saldırıların anlaşılması, tcp/ip paket analizi açısından önemlidir. Linux makinalarda bazı kullanışlı komutlar bandwicth kullanımımızı detaylı olarak anlamaya yarar. Farklı mekanizmalara sahip olan komut satırı araçları özel bir ağ trafik raporu çıkarmamıza imkan tanırlar. pcap kütüphanesini kullanarak bütün trafiği bile yakalayabilmektedirler. Ve bu trafik boyutunu hesaplayabilmektedirler. Komutların ve komut satırı araçlarının kullanım alanlarına göre aşağıdaki gibi sıralanmıştır. Herbiri yapılacağı test ortamına göre farklılık gösterebilmektedir. ** Tüm bandwidht­ nload,bmon,slurm,bwm­ng,cbm,speedometer,netload ** Tüm bandwidht (output ile birlikte) ­vnstat,ifstat,dstat,collectl ** Bandwidht her process için ­ nethogs ** Bandwidht her soket bağlantısı için iftop,iptraf,tcptrack,pkstat,netwacht,trafshow ** nload nload basit bir komut satırı aracı olup gelen ve giden ağ trafiğinin denetlenmesi adına önemlidir. Ek olarak paketleri göstermek için bir grafik çizerek daha iyi anlamıza imkan tanımaktadır.

Page 120: Her yönüyle linux sistem ve network güvenliği

Kullanımı basittir. Farklı opsiyonları desteklememektedir. bandwicht kullanımı ile ilgili özel processlerin monitoring edilmesi için bu aracı kullanabilirsiniz.

Ayrıca Centos Epel repolarından yüklendiğini unutmayınız. ** iftop Nload tan farklı olarak iftop komutu örnek bir veri şeması ile soket bağlantılarının gösterimine de imkan tanır. Network adaptörü dinlenerek, pcap kütüphanesi ile trafiğin yakalanmasına imkan tanır. Toplam bandwicht kullanımı hesaplar. Bandwicht kullanılmasını hesaplamasına rağmen process isimlerini ve süreçlerini göstermemektedir. pcap kütüphanesi sayesinde trafiğin filtrelenmesi, bandwicht kullanılmı şeçili hostlara göre yapılmasına imkan tanımaktadır.

Page 121: Her yönüyle linux sistem ve network güvenliği

iftop komutununun yüklenmesi için yine epel reoplarının dağıtımınızda olması gerekmektedir. Sanal makina ve ana bilgisayarımız olduğun için sadece ikisinin ip adreslerini görebiliyoruz. Başka sanal makina imageniz varsa internet çıktığını buradanda görebilirsiniz. Vmware sanal makinamızda kurulu olan Ubuntu’yu çalıştırdığımızdaki örnek ekran alıntısı.

** iptraf iptraf interaktif ve renkli ip Lan monitoring aracı. Bağlantıları göebilmemize olanak tanımaktadır. Hosttaki bağlantılar bunlar. Bunun yanı sıra data flow oluşturmaktadır. konsoldan iptraf komutunu veriyoruz.

Page 122: Her yönüyle linux sistem ve network güvenliği

Devam etmek için herhangi bir tuşa basıyoruz. Ve karşımıza monitoring yapmak istediğimiz araçlar gelmektedir. İstediğiniz seçeneği seçebilirsiniz. Biz örnek olması açısından ip traffic monitor seçeneğini seçiyoruz. Siz de kurduğunuz zaman diğer seçenekleri test ediniz.

Page 123: Her yönüyle linux sistem ve network güvenliği

Farklı arayüzleri komut satırından görebilirdik. Ama bir tane eth0 arayüzümüz var. All interfaces seçeneği ile devam ederek gidiyoruz.

Artık tüm arayüzlerin monitoring işlemi başlamıştır. Şekildeki gibi ekran çıktısını sizde denediğiniz zaman almalısınız.

Page 124: Her yönüyle linux sistem ve network güvenliği

** nethogs nethogs aracı küçük bir “net top” aracı olarak; önemli processleri, en öenmli top komutu çıktılarını kısaltarak listelemektedir. Centos Desktop ya da farklı bir desktop kullanıyorsanız aşağıdaki gibi bir çıktı alabilirsiniz. Sunucu tarafında pek kullanışlı değildir. Centos 6.5 teki örnek ekran alıntımız.

** Bmon Bmon(Bandwicht monitor) olarak adlandırılan bu araç nload benzeri bir araçtır. Bütün arayüzlerdeki network trafiğini ve oturum bildilerini “packet level “ detaylarını görmemize yarar. ** vnstat vnstat network trafik monitor aracı olmakla birlikte diğer araçlardan biraz farklıdır. Background serviste çalışan ve data transfer,, boyutunu gösteren komut satırı aracıdır. yum install vnstat komutu ile öncelikle Centos 6.5 indirmeniz gerekmektedir. Daha sonra service vnstat status komut ile çalışıp çalışmadığını öğrenmeniz gerekmektedir.

Page 125: Her yönüyle linux sistem ve network güvenliği

Daha sonra çalıştığını öğrendikten sonra vnstat ­l ­i eth0 komutu ile dinlenecek ağ trafiği komutu girilmelidir.

Belirli bir süre ağ trafiği dinlendikten sonra aşağıdaki gibi ekran çıktısını görebiliriz.

Trafik istatistikleri şekildeki gibidir. max, ort, min ve bytes bilgileri ** Bwm­ng

Page 126: Her yönüyle linux sistem ve network güvenliği

Bwm­ng (Bandwidth Monitor Next Generation) yeni nesil monitoring aracı olup gerçek zamanlı monitoring yapılmasına imkan tanımaktadır. Verilerin transferini, bütün netwrok arayüzlerini denetleyebilme gibi yeteneklere sahip bir araçtır.

** Trafshow trafshow komutu netwacth ve pkstat araçlarına benzer; aktif bağlantıları görmemizi sağlar. Bağlantıların protokolleri, veri transfer hızlarını,gösterir. Sadece tcp bağlantılarının monitoring yapılmasını sağlar. Ayrıca dış bağlantıları pcap kütüphanesini kullanarak filtreler. Öncelikle komut satırından trafshow ­i eth0 tcp komutu ile dinleme yapalım.

# sudo trafshow ­i eth0 tcp

Daha sonra aktif bağlantıları aşağıdaki gibi görebiliriz.

Page 127: Her yönüyle linux sistem ve network güvenliği

** dstat dstat python ile yazılmış çok yönlü bir araç olmakla birlikte, farklı sistemlerin monitor istatistiklerini görmemizi sağlamaktadır. Bu örnek network bant genişliğini bildirmek için dstat nasıl kullanılacağını göstermektedir.

** collectl collectl aracı dstat benzer bir şekilde bir araç olmakla birlikte, çeşitli sistem kaynaklarıdan istatistikleri toplamaktadır. Örneği cpu, memory, network gibi. Aşağıda basit bir network/bandwicht kullanım istatistiği bulunmaktadır.

Page 128: Her yönüyle linux sistem ve network güvenliği

Linux sistemlerde ister bandwicht olsun, ister network security monitoring araçları olsun ya da basit komut satırı araçları olsun kullanıldığı yer önemlidir. Forensic, Monitoring, Malware analizi, saldırı tespit ve önleme sistemleri gibi güvenlik sınır bileşenlerinin önemli olduğu noktalarda önem arz etmektedir. Bu yazımız Linux Komut Satırı 101 niteliğinde olup araçları farklı komutlar ile test edebilirsiniz. Basit ama kullanışlı olmakla birlikte kullanmanız önemlidir. Enterprise tarafında farklı güvenlik çözümleri için özelleşmiş monitoring araçlarıda bulunmaktadır.

Centos 6.5 Minimal İso Sürümü Oracle Virtual Box ‘a Kurulması 26

Centos Redhat firmasının dağıtımı olan Red Hat Enterprise Linux(Rhel) kaynak kodları üzerine kurulu ve bu dağıtım ile uyumlu bir linux dağıtımıdır. Bağımsız bir topluluk olan The Community ENTerprise Operating System tarafından geliştirilmiştir. Bu yazımızda Centos 6.5 minimal iso sürümünün oracle virtual box üzerine kurulumunu anlatacağız. Yabancı ve yerli kaynaklarda benzer kurulum ve yapılandırılmasını bulabilirsiniz. Öncelikle Oracle Virtual Box Vm Yönetici çalıştırılır ve daha sonra şekildeki gibi yeni şeçeneğine tıklandıktan sonra sanalda oluşturulacak makina ayarları yapılandırılır.

26 Her Yönüyle Linux­Sistem ve Network Güvenliği ­ Ahmet HAN Free E­book

Page 129: Her yönüyle linux sistem ve network güvenliği

Adı, dağıtım türü, sürümü şekildeki gibi şeçildikten sonra bir sonraki aşamaya geçelim. Bellek boyutu girmemizi istemektedir. Fiziksel makinanızın özellliklerine göre siz de istediğiniz boyutu girebilirsiniz.

Page 130: Her yönüyle linux sistem ve network güvenliği

Daha sonra sabit disk oluşturulma aşamasına geçiyoruz. Şimdi sanal disk oluştur seçeneği ile devam edelim.

Page 131: Her yönüyle linux sistem ve network güvenliği

Sabit disk dosyası türü, virtual disk kalıbı seçeneği ve ileri seçeneği ile devam edilir.

Page 132: Her yönüyle linux sistem ve network güvenliği

Sabit disk boyutunu istediğiniz gibi seçebilirsiniz. Değişken olarak ayrılan şeçeneği ile devam edelim.

Page 133: Her yönüyle linux sistem ve network güvenliği

Dosya yeri ve boyutunu istediğiniz şekilde seçerek devam edebilirsiniz.

Page 134: Her yönüyle linux sistem ve network güvenliği

Bu aşamadan sonra yöneticiye tekrar dönelim. Ve başlat programına dönelim.

Page 135: Her yönüyle linux sistem ve network güvenliği

Daha sonra iso dosyamızın bulunduğu dizinden kuruluma devam edelim.

Page 136: Her yönüyle linux sistem ve network güvenliği

Bizim bilgisayarımızda şekildeki gibi görünmektedir.

Page 137: Her yönüyle linux sistem ve network güvenliği

Yine şekildeki gibi düzenleyerek devam edelim.

Page 138: Her yönüyle linux sistem ve network güvenliği

Artık sanal makina yapılandırma işlemleri tamamlandıktan sonra Centos 6.5 kurulumuna geçebiliriz. Şekildeki gibi ekran karşımıza çıkacaktır. En üstteki seçenek ile devam edelim.

Kurulum devam etmektedir…

Page 139: Her yönüyle linux sistem ve network güvenliği

Kurulum medyası içerik doğrulama ekranı. skip diyerek kuruluma devam ediyoruz.

Page 140: Her yönüyle linux sistem ve network güvenliği

Daha sonra next seçeneği ile devam edelim.

Page 141: Her yönüyle linux sistem ve network güvenliği

Ardından yapılandırmak istediğiniz dil seçeneği ekrana gelmektedir. Birisini seçerek devam edebilirsiniz.

Page 142: Her yönüyle linux sistem ve network güvenliği

Şimdi de klayve dilini sormaktadır. Türkçe olarak şeçip kuruluma devam edelim.

Page 143: Her yönüyle linux sistem ve network güvenliği

Depolama alanı olarak nasıl bir kurulum istediğimizi sormaktadır.İlk seçeneği seçerek kurulumumuza devam edelim.

Ardından yine yes discard any data seçeneğini seçerek devam edelim.

Page 144: Her yönüyle linux sistem ve network güvenliği

Bilgisayarınıza herhangi bir hostname’i vererek devam edebilirsiniz bu noktadan itibaren.

Page 145: Her yönüyle linux sistem ve network güvenliği

Locasyon bilgisini sormaktadır. İstanbul olarak şeçip devam edelim.

Page 146: Her yönüyle linux sistem ve network güvenliği

Daha sonra root kullanıcının password oluşturma işlemini gerçekleştirerek yine devam edelim.

Page 147: Her yönüyle linux sistem ve network güvenliği

Şifrenizi basit bir şifre koyarsanız şekildeki gibi bir hata alabilirsiniz. Güçlü şifreler oluşturmaya çalışın.

use all space seçeneğini seçerek kuruluma devam edelim.

Page 148: Her yönüyle linux sistem ve network güvenliği

write changes to disk seçeneği ile devam edelim.

Page 149: Her yönüyle linux sistem ve network güvenliği

Kurulum işleminin sonuna gelmiş bulunmaktayız bu noktadan sonra kurulumun tamamlanmasını beklemeliyiz.

Page 150: Her yönüyle linux sistem ve network güvenliği

Kurulum başarıyla tamamlanmıştır. Yeniden başlatma işlemini tamamladıktan sonra dağıtmınız artık kullanıma hazır hale gelmiştir.

Page 151: Her yönüyle linux sistem ve network güvenliği

GDB İle Tersine Mühendisliğe Giriş 27

Bu yazımız linux sistemlerde tersine mühendisliğe giriş niteliğinde olup; temel olarak basit bir C programı ile debugging yöntemleri üzerine olacaktır. Ön bilgi olarak temel C programlama dili syntax’ı, linux komut satırı ve gcc, gdb araçları ile ilgili araştırma yapmanız gerekmektedir. Koyu renkli linklemelere tıklayarak konu ile ilgili referans gösterilen kaynaklara ulaşabilirsiniz.

27 Her Yönüyle Linux­Sistem ve Network Güvenliği ­ Ahmet HAN Free E­book

Page 152: Her yönüyle linux sistem ve network güvenliği

Bilgisayarda bir uygulama veya donanım için hataları tespit etmek, kodları incelemek ve binary düzeyde gerçekleştirdiği sistem çağrılarını izlemek güvenli yazılım geliştirme açısından önemlidir. Reverse enginneering’e giriş için öncelikle PE(Portable Executable) yada ELF gibi dosya formatları bilinmelidir. Örnek verecek olursak Windows’ta bir uygulamayı(exe) çalıştırdığımız zaman; bir süreç(process) oluşturulur ve bu süreçlere bir sanal hafıza (virtual memory) tahsis edilir. Sürecin hafıza blokları kullanılarak uygulama çalışır. Process hafızası üç ana bileşenden oluşur. Bunlar Code Segment, Data Segment ve Stack segment katmanlarıdır. Code segment(.txt) insanların yazdığı kodların bulunduğu kısım; Data segment(.data) global ve statik değişkenleri içeren,sanal adres alanının bir bölümü, Stack segment geçici değerlerin bulunduğu hafıza kısmıdır.

Temel dosya işleyiş yapısı bilgisini verdikten sonra önce [ctrl + alt + T] komutunu kullanarak

linux terminalimizi açalım. Daha sonra ise root(linux sistemlerde en yetkili kullanıcı) değilsek;

[sudo su ­root] komutunu kullanarak root kullacı olalım. Daha sonra nano editörünü basit bir C

uygulaması oluşturalım. Bunun için [nano ornek.c] komutunu kullanabilirsiniz. Açılan nano

editörü ekranında resimdeki gibi bir küçük C uygulaması hazırlayalım. Ardından ctrl+r(dosyayı

oku) ve ctrl+o(dosyaya yaz) komutlarını kullandıktan sonra ctrl+x(cıkıs) komutu ile nano

editöründen cıkalım.

Page 153: Her yönüyle linux sistem ve network güvenliği

Yazdığımız basit C programının nano editöründen kaynak görüntüsü aşağıdaki gibidir. Basit bir

isaretçi tipinde çağrı yapılan bir fonksiyon ve main fonksiyonundan oluşmaktadır.

Page 154: Her yönüyle linux sistem ve network güvenliği

Şimdi yazdıklarımızı [gcc ­o yeni yeni.c] komutu ile derleyelim. Herhangi bir hata yoksa ve

derleme işlemi başarılı ise yukarıdaki yeşil renkli executable(çalıştırılabilir) dosyayı görebilirsiniz.

[file yeni] komutu ile yeni çalıştırılabilir dosyası ile ilgili bilgilere bakabilirsiniz.

.

Daha sonra dosyamızı [./yeni] komutunu vererek çalıştıralım. Programın cıktısı resimdeki gibi

olucaktır. Uygulamamızın calıstığını ekran cıktısı ile görebilirsiniz. Şimdi ise [gdb yeni] komutunu

vererek çalıştıralım. Daha sonra (gdb) run olacak olacak şekilde yeniden deneyelim ve

çalıştığını görebilirsiniz.

Page 155: Her yönüyle linux sistem ve network güvenliği

Assembly kodlarını görmek için gdb içersine iken [layout asm] komutunu verelim. Daha sonra

[printf "%s\n", 0x80484f8] komutunu verelim ve Merhaba Dünya yazısındaki M yi görebilirsiniz.

Tersine mühendislik ile ilgili bir çok hex editör, komut satırı aracı ve değişik tool bulunmaktadır.

Burada önemli olan gerekli toolları reversing yaparken gerektiği zamanda kullanmaktır. [readelf

­h yeni] komutunu verdiğiniz zaman elf dosya formatı objelerine ulaşabilirsiniz.

Page 156: Her yönüyle linux sistem ve network güvenliği

Debugging, Reverse enginneering’ te çok kullanılan bir araçta hexdump aracıdır. Örnekte

belirttiğimiz dosyamıza [hexdump ­C ­n 100 yeni ] komutunu vererek dosya ile ilgili hexadecimal

olarakta görüntüleyebilirsiniz.

Tersine mühendislik kavramı stuxnet kavramından sonra daha da önem kazandı. İran’da

bulunan Siemens Scada sistemlerinin belirli modülülünün belirli bir ürününde ortaya çıkan

stuxnet vakasında, APT(Advanced Persistent Threat), hedef odaklı gelişmiş ileri düzey bir

Page 157: Her yönüyle linux sistem ve network güvenliği

tehdit olduğu için sadece bilgisayar bilimlerinde değil; elektronik, mekatronik, makina bir çok

sistemin farklı şekillerde istismarının düşünüldüğü söylenmektedir. Tersine mühedislik kavramı

sadece scada sistemler, bilgisayar, yazılım tarafında düşünülmemelidir.

Page 158: Her yönüyle linux sistem ve network güvenliği

Security Onion 101 Eğitim Dökümanı 28

Bu dökümanda özelleşmiş bir linux dağıtımı olan security onion’dan bahsedilecektir. Troubleshooting olayları ile içersinde bulunan gerçek zamanlı network security monitoring araçları ile birlikte çıktıları yorumlanacak; oracle vm virtualbox ve wmware üzerinde kurulumları ile pratik örnekleri anlatılacaktır. Bu işlemlere başlamadan önce temel linux komutlarını bilmenizde fayda var. Security onion, smoothsec, selks gibi network security monitoring yapılmasına imkan tanıyan farklı araçlar bulunmaktadır. Bu dağıtımların özellemiş olma sebepleri içersinde bulunan araçların kurulum ve manuel olarak yapılandırılam zorluklarından kaynaklanmaktadır. Bu nedenler bu zorlukların üstesinden gelmek amacıyla open source proje olarak başlamışlar daha sonra commercial destekde sağlayarak Dünya’daki büyük IT şirketleri tarafından destekde bulmuşlarıdır. Hızla geniş kitleler tarafından kullanılmaya başlanmışlardır. Security onionda bulunan bazı önemli araçlar. ** snort ** suricata ** squil ** squert ** xplico ** argus ** snorby ** elsa ** tcpdump ** wireshark ** netsniff­ng ** Prads Geçtiğimiz yıllarda gerçekleştirlen hedef odaklı saldırılar, zararlı yazılımlar, advenced persistent threat( gelişmiş ileri düzey tehditler), stuxnet, duqu, zeus, hesperpot ve diğer kurumsal firmalara ve devlet kurumlarına yönelik saldırılar farklı bir boyuta ulaştı. Ülkemiz Ağustos ayında yapılan bir açıklamaya göre Avrupa da olmak üzere bu bankacılık zararlılarının en çok hedef aldığı ülke oldu. Resimde en son Ağustos 2014 verilerine bakabilirsiniz.( Kaynak: Atlas Arbor Network)

28 Her Yönüyle Linux­Sistem ve Network Güvenliği ­ Ahmet HAN Free E­book

Page 159: Her yönüyle linux sistem ve network güvenliği

Yukarıdaki ve aşağıdaki resimde tehlike kaynakları arasında kaçıncı olduğumuz ve hangi tür tehlikeler yayıldığını görebilirsiniz.

Page 160: Her yönüyle linux sistem ve network güvenliği

Farklı saldırıların gerçekleşmesi ve her gün bir yenisinin daha ortaya çıkması gibi etkenlerden dolayı özelleşmiş network security monitoring araçları ve incident response kavramı bir kez daha önemini korumaktadır. ** Malware C&C’s ** Phishing domains ** Mule Siteler ** Piracy ** Anti­government siteler ** Cinsel İçeriğe sahip siteler Çeşitli zararlı yazılım dağıtan sitelerdendir. Öte yandan botnetlerin dağıtıldığı sunuculara ev sahipliği yapan top 20 ülke arasında ülkemizde bulunmaktadır. Standart bir ağ yapısını düşünecek olursak şekildeki gibidir.

Page 161: Her yönüyle linux sistem ve network güvenliği

Bu noktada ips/ids sistemlerin yerleştirileciği konum çok önemlidir. Örnek olarak şekildeki resimde verildiği gibi ips/ids yada bunları barındırıan dağtımların konumlandırılması adına önemlidir.

Page 162: Her yönüyle linux sistem ve network güvenliği

Monitoring yapılacak ağın türüne göre farklılık gösterebilmektedir. Temel olarak ids/ips ve son zamanlarda gerçekleştirilen attaklarla ilgili daha fazla bilgi edinmek için referanslar kısmındaki linkleri ziyaret edebilirsiniz. Doug Burks tarafından 2008 yılında open source bir proje olarak başlandı. Bize ne gibi esneklikler sağlamaktadır. Security Onion Nedir? ** Ücretsiz olarak dağıtılan bir Linux Dağıtımı ** Saldırı Tespit Sistemi ** Network Security Monitoring Sistemi

Page 163: Her yönüyle linux sistem ve network güvenliği

** Log Yönetim Sistemi Ücretsiz bir linux dağıtımı olan security onion log yönetimi, network security moniyoring ve saldırı tespit gibi farklı seçenekler sunmaktadır. Yukarıda anlattığımız farklı network yapılarında ve incident response ekipleri tarafından sistem yöneticileri de dahil kullanmaktadır. Log Yönetimi ve Faydaları ** Kullanıcı aktivitelerinin İzlenmesi ** IT Troubleshooting ve Network Operasyonlarının başarı le sonuçlanması ** İhtiyaçların Sürekli olarak belirlenmesi ** Forensic analizi ** Zararlı Network olaylarının erken tespiti ** İncident Response Kolaylı ** Cobıt, ISO, ITIL, pratiklerinin yapılması ** Uygulama Performansların Testi ** Bölümlere Gerçekleşen Olayların Raporlarının Yapılması İncident response açısından, zararlı network aktivitelerinin izlenmesi açısından log yönetimi büyük önem taşımaktadır. Farklı modlarda kullanılabilmektedir. Fakat biz dökümanın ilerleyen bölümlerinde standalone temel olarak step by step mantığıyla kurulumunu anlatacağız. ** Server mod, ** Sensor mod, ** Standalone mod Farklı türlerde veri tiplerini anlayabilmemize olanak sağlamaktadır. Security Onion farklı türlerde veri tiplerini anlamamıza olanak tanımaktadır. ** Alert Data NIDS alarmları Snort ve Suricata’dan HIDS alarmları Ossec’ten ** Asset data’ları Bro ve Prads’tan ** Session(Oturum) dataları Argus, Bro, Prads’tan

Page 164: Her yönüyle linux sistem ve network güvenliği

** Full Content data netsniff­ng ** Transaction data( http/ftp/dns/ssl/diğer Bro’dan gelen loglar) Farklı modlarda yerleştirilecebileceğinden bahsetmiştik. ** Sensor Modda Bro, Elsa Logları(Log Node), Snort/Suricata, Full Paket Yakalama ** Server Modda Elsa Web Node Ağ trafiğinin dinlenmesi ve paket trafiği analizi açısından önemi büyüktür. Temel bilgileri verdikten sonra artık oracle virtual box üzerinde kurulumuna geçebiliriz. Kuruluma geçmeden önce virtual network adaptör konusunu gerek virtual boxta gerekse wmare üzerinde araştırmanız sizin açınızdan faydalı olacaktır. Çünkü monitoring yapılacak arayüzün seçilmesi, yönetim amaçlı arayüzün seçilmesi önemlidir. Gereksinimler, ** 3 Gb Ram ** Vmware ya da Oracle Virtual Box ** 32 bit / 64 bit Security Onion Iso Dosyası ** Network Arayüz kartları (NIC) ** Depolama için Yeterli Bellek alanı(Full Paket Capture Verileri) Kurulumda biz Oracle Virtual Box kullanacağız. Bilgisayarınıza kurulu olması gerekmektedir. Daha sonra adım adım aşağıdaki adımları takip etmelisiniz.

Page 165: Her yönüyle linux sistem ve network güvenliği

Öncelikle Oracle Vm VirtualBox Manager başlatılır.

Daha sonra new butonuna basılarak devam edilir. Şekildeki bir ekran görüntüsü gelmektedir. Burada dağtımı ismi kısmını isteğiniz ismi verebilirsiniz, türü linux ve versiyon bilgisi olarak

Page 166: Her yönüyle linux sistem ve network güvenliği

Ubuntu 64 Bit ya da Debian 64 Bit kullanarak devam edebilirsiniz. Daha sonra next butonuna basarak ilerleyelim.

Ardından kullanacağımız sanal makina için ram boyunu şeçmeye. Biz 4 Gb fiziksel makinamızın durumuna göre verdik. Sizler de fiziksel kullandığınız makinanın durumuna göre bunu ayarlayabilirsiniz. Ram boyunu ayarladıktan sonra next seçeneği ile devam ediyoruz.

Page 167: Her yönüyle linux sistem ve network güvenliği

Burada ise create a virtual hardrive seçeneğini seçerek devam ediyoruz. Ardından create butonuna basıp devam ediyoruz.

Page 168: Her yönüyle linux sistem ve network güvenliği

Hard drive sürücü türünü Virtual Box Disk İmage olarak seçtikten sonra next seçeneği ile devam ediyoruz.

Hafıza tipini dinamik olarak seçtikten sonra next ile devam edelim.

Page 169: Her yönüyle linux sistem ve network güvenliği

Dosya lokasyonu ve boyutu seçildeki gib seçerseniz işinize yarayacaktır.

Sanal makinamız için temel ayarlar tamam. Start ile devam edelim.

Page 170: Her yönüyle linux sistem ve network güvenliği

Burada dağıtımınızın bulunduğu dizindeki iso dosyasına ulaşmanız gerekmektedir. Ve şekilde görüldüğü gibi olması gereklidir.

Kurulumu başlatmadan önce network adaptörlerinide ayarlayalım.

Page 171: Her yönüyle linux sistem ve network güvenliği
Page 172: Her yönüyle linux sistem ve network güvenliği

Network Adaptörlerini ayarladıktan sonra artık start edip kuruluma geçebiliriz.

En üst kısımda bulunan seçenek ile devam etmeniz gerekmektedir. live boot the live system seçeneği seçilir. Seçmesenizde otomatik olarak kendisi seçmektedir.

Page 173: Her yönüyle linux sistem ve network güvenliği

İlk boot işlemi tamamlandıktan sonra aşağıdaki gibi açılış ekranı gelmektedir. Burada masa üstünde bulunan yükleme seçeneğine tıklanarak yükleme işlemine geçilir.

Page 174: Her yönüyle linux sistem ve network güvenliği

Bu aşamadan sonra dil seçiminizi isteyecektir. Kulllanmak istediğiniz dil seçimini yaparak devam edebilirsiniz.

Page 175: Her yönüyle linux sistem ve network güvenliği

Güncelleştirmelerin ve üçüncü parti yazılımların yüklenmesi seçenekleri işaretlerenerek devam edilir.

Erase disk and İnstall Security onion seçeneği ile devam edilir.

Page 176: Her yönüyle linux sistem ve network güvenliği

Seçilecek sürücü sanal makina üzerinde test yaptığımız için farketmeyecektir. İnstall now seçeneği ile devam edilir.

Ardından lokasyon bilgisi seçilerek devam edilir.

Klayve seçeneklerini klavyenizin türüne göre istediğiniz şekilde seçebilirsiniz.

Page 177: Her yönüyle linux sistem ve network güvenliği

Ardından kullanıcı bilgilerinizi şekildeki gibi girmeniz gerekmektedir.

Page 178: Her yönüyle linux sistem ve network güvenliği

Continue seçeneği ile devam edilmesi gerekmektedir. Gerekli paketler indirilip yüklenmektedir.

Bu paketler yüklendikten sonra yeniden başlatmanız gerekmektedir.

Yeniden başlatma işlemi tamamlandıktan sonra şekildeki gibi bir güncelleme bildirimi gelmektedir. Şimdilik bunu atlayabilirsiniz.

Page 179: Her yönüyle linux sistem ve network güvenliği

Bundan sonra terminal açılarak sudo ­i komutu yada sudo su root komutu ile root kullancı olarak apt­get update dağıtımı ile güncelleme işlemi yapılır.

Biraz beklemeniz gerekmektedir. Güncelleme şekildeki gibi devam etmektedir.

Page 180: Her yönüyle linux sistem ve network güvenliği

sudo rule­update komutu ile snort ve suricata için kural setleri güncellenmiş olur.

Page 181: Her yönüyle linux sistem ve network güvenliği

Bu işlemleri tamamladıktan sonra artık security onion’u standalone modda yapılandırmaya geçebiliriz.

Page 182: Her yönüyle linux sistem ve network güvenliği

Bu işleme geçmeden önce tekrar terminalden diğer bir güncelleme işleminide yapalım.

Bu işlemide tamamlandıktan sonra setup seçeneği ile tekrar yapılandırmaya devam edelim. İlk başta belirlediğimiz şifre ile devam edelim.

Page 183: Her yönüyle linux sistem ve network güvenliği

Yes continue seçeneği ile devam edilir.

Network arayüzü konfigürayon ayarlarına geçebiliriz. Yes configure /etc/network/interfaces seçeneği ile devam edilir.

Page 184: Her yönüyle linux sistem ve network güvenliği

Burada yönetim amaçlı seçtiğiniz arayüzü sormaktadır. Biz eth1 seçeneği ile devam etmemiz gerekmektedir.

Bu şeçimi yaptıktan sonra eth1 adresinin static yada dinamik seçmek istediğiniz seçeneği sormaktadır. Biz dinamik olarak seçiyoruz. Fakat statik olarak seçersiniz ip,gateway, subnetmask dns server gibi ayarlarını yapılandırmamız gerekmektedir.

Page 185: Her yönüyle linux sistem ve network güvenliği

Ardından yes configure monitor interfaces seçeneği ile devam edelim.

Şimdi ise sniffing yapılacak arayüzü sormaktadır.

Yaptığımız konfigürasyonları bizden istemektedir. Bu noktadan sonra doğrulayarak devam edelim. yes make changes seçeneği şeçilir.

Page 186: Her yönüyle linux sistem ve network güvenliği

Bu ayarların tamamlanması için tekrardan başlatmanız gerekmektedir.

Restart işleminden sonra tekrar setup seçeneği ile kuruluma geçilir. Bu sefer network konfigürasyon kısmını bitirdikten sonra bu aşamayı geçebilirsiniz.

Burada şunu belirtmekte fayda var. Gelişmiş yükleme seçeneği daha fazla seçenek sunduğu için gelişmiş bir şekilde kuruluma devam ediyoruz.

Page 187: Her yönüyle linux sistem ve network güvenliği

Seçenekler istenirken hangi modda kuruluma devam etmek istediğiniz sormaktadır. standalone modda devam etmelisiniz.

squil için sizden kullanıcı adınızı girminizi istemektedir.

Page 188: Her yönüyle linux sistem ve network güvenliği

Kullanıcı adınızı girdikten sonra snorby giriş paneli için bizden e­mail adresimizi istemektedir.

Şimdi ise monitoring araçlarına login olurken kullanmamız gereken şifreyi istemektedir.

Ardından sizden şifreyi doğrulamanızı istemektedir.

Page 189: Her yönüyle linux sistem ve network güvenliği

Squil veritabanının kaç gün veri tutması gerektiğini sormaktadır. Default olarak 30 gün olarak gelmektedir.

Kaç günde bir veritabanını kontrol edilmesi gerektiğini sormaktadır. Default olarak 7 gün olarak gelmektedir. Siz istediğiniz günü belirleyebilirsiniz.

Page 190: Her yönüyle linux sistem ve network güvenliği

Bu aşamada snort ya da suricata hangi ids motorunu kullanmak istediğimizi sormaktadır.

Kullanmak istediğimiz imzaları sormaktadır. Bir ücretsiz kural setleri olan en üsttekini seçiyoruz.

Pfring mininum slot ile ilgili değer girmemizi istemektedir.

Page 191: Her yönüyle linux sistem ve network güvenliği

Monitoring yapılması gereken network adaptörünü sormaktadır.

IDS Motorlarını görünür olarak yapmak için yes seçeneği ile devam edilir.

Page 192: Her yönüyle linux sistem ve network güvenliği

Bro İds aktif olması için yine yes seçeneği ile devam edilir.

File extraction seçeneği yes ile devam edilerek aktif edilir.

yes http agent seçeneği seçilerek devam edilir.

Page 193: Her yönüyle linux sistem ve network güvenliği

Argus şeçilen arayüzdeki log session bilgilerini ve arayüzü dinlemektedir. Argus agent’ada izin verilerek devam edilir.

Prads’ ta seçilen arayüzü dinleyerek squil için session bilgilerini sağlamaktadır. İzin verilerek devam edilir.

Full packet capture monitoring yapılan tüm trafiği diske yazmaktadır. Bunada izin verilerek devam edilir.

Page 194: Her yönüyle linux sistem ve network güvenliği

Aşağıdaki resimde pcap dosyalarına ne kadar yer ayırmak istediğinizi sormaktadır. Default olarak 150 MB olarak belirtilmektedir. Ama siz yine istediğiniz boyutu vererek devam edebilirsiniz.

Page 195: Her yönüyle linux sistem ve network güvenliği

nmap aracını sniffing için kullanmak isteyip istemediğinizi sormaktadır. yes, enable seçeneği ile devam edelim.

pcap dosyaları için bir buffer alan istemektedir. Default olarak 64 Mb olarak gelmekle birlikte istediğiniz boyutu fiziksel makinanızın durumuna göre kendiniz belirleyebilirsiniz.

Loglar için yüzdelik olarak ne kadar disk alanı kullanmak istediğinizi sormaktadır. Default olarak 90 olarak gelmektedir.

Page 196: Her yönüyle linux sistem ve network güvenliği

Sensor kullamında yardımcı olması için salt seçeneğinin kullanılır olması gerekmektedir. yes enable salt seçeneği ile devam edelim.

splunk’ın ücretsiz versiyonu olan elsa dağıtım içersinde bulunan ips/ids motorlarının yakaladığı logların web arayüzde görüntülenmesini sağlamaktadır.

Page 197: Her yönüyle linux sistem ve network güvenliği

Elsada üretilen logların depolanması için bellek alanı ayırmanız gerekmektedir. Daha sonradanda istediğiniz şekilde bellek alanını şekilde belirtilen dizinden sonradanda değiştirebilirsiniz.

Bu işlemleri tamamladıktan sonra değişikliklerin katdedilmesini sormektadır. Şimdiye kadar ki aşamalarda herhangi bir hata yapmadıysanız yes seçeneği ile devam ediniz.

Page 198: Her yönüyle linux sistem ve network güvenliği

Artık yükleme devam etmekte değişiklikler kaydedilmektedir.

Buradan sonra kurulum bilgileri yapılandırılan uygulama dizinleri ile ilgili bilgiler vermektedir. Bunları bilmenizde fayda bulunmaktadır. İleride fiziksel ağınıza göre burada konfigürasyon ve düzenleme yapabilirsiniz. Bu noktada referanslar kısmında belirtilen google tartışma gruplarında ileride yaşayacağınız herhangi bir problemle ilgili bir çok soru bulunmaktadır. Buradan sizde yaşayacağınız herhangi bir problemle ilgili sıkıntılara bakabilir sorularınız sorabilir cevap alabilirsiniz.

Page 199: Her yönüyle linux sistem ve network güvenliği
Page 200: Her yönüyle linux sistem ve network güvenliği

İşlemler burada tamamlanmaktadır. Aşağıdaki gibi kural güncellmesi yapılır.

Page 201: Her yönüyle linux sistem ve network güvenliği

sudo ­i komutu ile root kullanıcı olunur ve ardından ise ifconfig komutu ile network ayarlarının tamamlanıp tamamlanmadığına bakılır.

Page 202: Her yönüyle linux sistem ve network güvenliği

Temel kurulum ayarları tamamlanmıştır. Standalone modda dağıtımımız kullanıma hazırdır. Şekildeki gibi network security monitoring araçlarımızın çalısıp çalışmağını görebilirsiniz. Örnek komut : service nsm status komutu çalıştırılmalıdır.

Şekildeki gibi eth0 arayüzünde promissicious modda çalışan yapılandırdığımız araçları görebilirsiniz. Buraya kadar olan kısımda standalone modda temel ayarlar ve konfigürasyonlar yapılandırılmıştır. Bundan sonraki dökümanın ilerleyen kısımında server ve sensor modda kurulum ve yapılandırma işlemleri anlatılacaktır. Ona geçmeden önce standalone modda içersinde bulunan araçlar ekran alıntıları, düşen loglar, temel erişim kontrolleri anlatılatılcaktır. Dağıtım ile ilgili güncellemeleri referanslar kısmında gösterilen kaynaklardan takip edebilirsiniz. Kurulum bitiminde bazı uygulamaların bulunduğu dizinlerle ilgili bilgi alabilirsiniz. İleride ips/ids testleri için kendi kurallarımızı yazarken lazım olacaktır. Bu dizinlerin bilinmesi bu açıdan önemlidir.

Page 203: Her yönüyle linux sistem ve network güvenliği

Artık dağıtımımızın test işlemlerine başlayabiliriz. İlk olarak cd /opt/samples dizinine gidiyoruz. Burada bulunan örnek zararlı dosyaların pcap formatında zararlı trafik kayıtlı haldedir. Resimdeki gibi dosyaları görebilirsiniz.

Page 204: Her yönüyle linux sistem ve network güvenliği

Eğer farklı bir zararlının davranışını incelemek isterseniz resimdeki gibi yada internette malicious pcap files yazarak bulduğunuz dosyaları çalıştırıp deneyebilirsiniz. Örnek resime bakabilirsiniz.

Şimdide test amaçlı tcprepaly ile şekildeki eth0 arayüzüne bu resimden bir önceki resimde gördüğümüz zararlı dosyaları çalıştıralım ve araçlarımıza düşün logları yorumlayalım.

Page 205: Her yönüyle linux sistem ve network güvenliği

Bu komuttan sonra bazı uyarılar vermektedir. Bazı paketler gönderilememekte yada çalışmamaktadır. Problem değil çalışan zararlı trafiği içersinde bulunan loglama araçları ile görelim.

Page 206: Her yönüyle linux sistem ve network güvenliği

Öncelikle masaüstünde google chrome amblemi üzerinde snorby yazan ikona tıklamanız gerekmektedir. Daha sonra konfigürasyon sırasında belirttiğiniz kullanıcı e­maili ve şifreniz ile login olmanız gerekmektedir. Bu işlemler gerçekleştirilirken tcpreplay bir taraftanda zararlı trafiği arka planda çalıştırmaktadır. Resimdeki gibi yüksek, orta ve düşük uyarıları aldığımızı görebiliriz.

Ardından events sekmesine tıkladığımız zaman zararlı trafiği görebiliriz. Yüksek tehlikeye sahip olan uyarılar kırmızı, orta seviye riske sahip olanlar turuncu, düşük seviyeye sahip olanlar yeşil renkte gösterilmiştir.

Page 207: Her yönüyle linux sistem ve network güvenliği

Ardından event signature signature kısmında kullanılan kuralıda görebiliriz. Tespit edilen alert burada belirtilmektedir. Şekilde dinlenen sensorleri de görebilirsiniz.

Algılanan tehditle ilgili bilgilere şekildeki gibi ulaşabilir, detaylara ulaşabilirsiniz.

Page 208: Her yönüyle linux sistem ve network güvenliği

Burada ip header bilgilerine, kaynak ip, hedef ip, imza bilgilerine, payload kısmına, kaynak port hedef port bilgilerine… ulaşılabilmektedir. Aşağıdaki resimde renkli belirttiğimiz kısımda son gerçekleşen olayları görünütülüyebilirsiniz.

Page 209: Her yönüyle linux sistem ve network güvenliği

Biraz önceki resimde belirtilen pencere detection kural bilgilerine de ulaşabilirsiniz.

Page 210: Her yönüyle linux sistem ve network güvenliği

Eğer olayları farklı formatlarda raporlamak veya çıktılarını almak istiyorsanız şekildeki sekmeden isteğiniz seçeneği seçebilirsiniz.

Paket yakalama ilgili seçenekleride istediğiniz gibi yönetebilirsiniz.

Page 211: Her yönüyle linux sistem ve network güvenliği

Tekrardan hatırlatalım. Çalışan servisleri görebilmemize olanak sağlar.

Snorby ile ilgili temel bilgileri verdikten sonra squil kullanımına geçelim. Öncelikle masaüstünde bulunan squil ikonunun üzerine tıklıyoruz. Ardından sekildeki gibi bir pencere açılıyor karşımıza.

Burada kullanıcı adımızı ve şifremizi girerek ok tuşuna basıyoruz. Aşağıdaki şekildeki gibi eth0 ve ossec acent seçildikten sonra start squil seçeneği ile devam edilir.

Page 212: Her yönüyle linux sistem ve network güvenliği

Daha sonra şekildeki gibi squil ekranı açılmıştır. Burada escalated events ve real time events olmak üzere iki sekmeyi görebilirsiniz.

Page 213: Her yönüyle linux sistem ve network güvenliği

Sensor, alert id, zamanı, kaynak ip, hedef port, hedef ip, kaynak port, event mesajı gibi farklı bilgilere şekildeki gibi kategorilendirlmiş olaylara ulaşabilirsiniz.

Yine detaylı raporları farklı formatlarda kullanabilirsiniz.

Page 214: Her yönüyle linux sistem ve network güvenliği

Squil ile ilgili temel bilinmesi gereken özellikleri verdikten sonra ardından squert’e geçebiliriz. Yine masaüstünde bulunan squert google ikonununa tıklıyoruz. Ardından karşımıza şekildeki gibi bir pencere gelmektedir. Bilgilerimizi girerek devam edelim.

Girdikten sonra karşımıza şekildeki gibi squert ekran gelmektedir. yine burada diğer loglama araçları gibi kapsamlı bilgilere ulaşabilirsiniz.

Page 215: Her yönüyle linux sistem ve network güvenliği

İlgili alertın imzasına bakarak şekildeki gibi ilgili uyarının imzasına ulaşabilrsiniz.

Bir başka imzada burada.

Hemen yan tarafta bulunan pencerede diğer istatistiklere ulaşmak mümkün. Resme dikkatli bakabilirsiniz.

Page 216: Her yönüyle linux sistem ve network güvenliği

Daha sonra summary sekmesine tıkladığınız zaman şekildeki gibi bir pencere açılmaktadır.

Daha sonra networkte bulunan agentsları şekidlen görebilirsiniz.

tcpreplay ile çalıştırdığımız zararlılardaki top ip adresi bilgilerini görerek saldırıların geldiği lokasyon bilgilerine ulaşabilirsiniz.

Page 217: Her yönüyle linux sistem ve network güvenliği

Burada ise top kaynak port ve top hedef port bilgilerine ulaşılabilmektedir.

Daha detaylı bilgiler için diğer sekmeleride ziyaret edebilirsiniz. Masaüstünde elsa sekmesine tıkladığımız zaman şekildeki gibi login ekranı gelmektedir. Bilgilerimizi girerek devam edelim.

Page 218: Her yönüyle linux sistem ve network güvenliği

Ekranda gönderdiğimiz paketler ile ilgili detaylı bilgilere ulaşabiliriz.

Önemli bağlantılar, ip adresleri, dns, files, ftp bilgileri vb. gibi queryleri gerçekleştirebiliriz. Aşağıdaki resimde snort’un yakaladığı mesajları görebilirsiniz. Türleri de belirtilmektedir.

Page 219: Her yönüyle linux sistem ve network güvenliği

Bir diğer sorguda snort’un yakaladığı top ip adreslerini yine buradan görmek mümkündür.

Page 220: Her yönüyle linux sistem ve network güvenliği

Buradanda top hedef ip histesine yine ulaşabilmek mümkündür.

Şimdide başka bir örnek senaryo deneyelim. Bunu kendiniz deneyiniz. Öncelikle malicious pcap file traffic yazıp googleden analizini yapmak istediğiniz zafiyet ya da istismar olayı ile ilgili pcap dosyasının indiriyorsunuz.

Page 221: Her yönüyle linux sistem ve network güvenliği

Daha sonra indirdiğimiz dosyayı sıkıştırılmış dosya formatında herhangi bir dizine çıkartıyoruz. Burada mkdir /opt/samples/apt/ dizinine çıkartmayı tercih ediyoyorum. Daha sonra tcpreplay ­i eth0 /opt/samples/apt/*.pcap komutu ile çalıştırıyoruz.

Artık istediğiniz araçtan düşen loglara bakabilir yukarıdaki anlatılan diğer araçlar sayesinde yapılan atttackla ilgili kapsamlı bilgi sahibi olabilirsiniz. Şekilde çalıştırılan zeus botneti ile ilgili imzayı görebilmek mümkün.

Page 222: Her yönüyle linux sistem ve network güvenliği

Yine imza ile ilgili kapsamlı bilgileri görebilirsiniz. Buraya kadar ki olan kısımda standalone modda kurulum temem konfigürasyonlarını anlatmıştık. Şimdide sensor modda kurulum için makinamızı yapılandıralım. Burada sensor modda kurulum için ayarlar belli bir yere kada aynı olduğu için ekran alıntılıarı olmadan anlacatacağız. 1. Öncelikle virtual box ayarları olsun diğer ayarlar olsun boot işlemine ve ilk boot işlemini başlanana kadar standalone modda ayarladığımız gibi yapılandırılır. Burada dikkat edilmesi gereken nokta virtual network adaptör ayarlarının fiziksel network’ünüze göre yapılandırılması gerektiğidir. 2. Gerekli boşluk ayrılır, bağlantılar, güncelleştirmeler kontrol edilir, üçüncü parti yazılımlar yükleme seçenekleri standalone moddaki gibi ayarlanır. 3. erase the disk to install SO → seçeneğine kadar devam edilir. 4. Daha sonra kulllanıcı adı, bilgisayar ismi ve şifre gibi diğer işlemler gerçekleştirilir. 5. apt­get update; apt­get upgrade; apt­get dist­upgrade; komut işlemleri gerçekleştirilir. Ardından reboot işlemini gerçekleştirip server olarak yapılandırma işlmelerine geçebiliriz. Ardından settings kısmından seçeneklerden network connections kısmına tıklanır.

Page 223: Her yönüyle linux sistem ve network güvenliği

Açılan bağlantıda wired connection1 kısmından edit sekmesine tıklanır.

Page 224: Her yönüyle linux sistem ve network güvenliği

İpv4 settings kısmından manuel seçeneğine geçilir.

Manuel olarak seçim yapıldıktan sonra ip adresi, netmask’esi, gateway ve dns server bilgileri ile birlikte aranılacak domaın kaydı girilmelidir. Daha sonra save seçeneği ile kaydedilerek ayarlar yapılandırılmış olur. Şekildeki ip adresi ve yapılan bilgiler örnek lab ortamı amacıyal hazırlanmıştır. Sizde oluşturmak istediğiniz ağaın yapısına göre kendi ip adres ve diğer bilgileriniz olucak şekilde giriniz. Bu işlemleri bitirdikten sonra bütün çalışan uygulamaları kapatı tekrardan reboot işlemini gerçekleştirmeniz gerekmektedir.

Page 225: Her yönüyle linux sistem ve network güvenliği

Bu işlemden sonra konfigürasyon için diğer ayarlara geçebiliriz. 1.Masaüstündeki setup ikonuna tekrardan basılır. Ve ilk başta kurulumda kullandığımız kullanıcı adı ve şifre ile devam edilir. 2. Tekrardan network konfigürasyonu yapmak isteyip istemediğimizi sormaktadır. Hayır seçeneği ile devam edilir. 3. Bunlardan sonra advanced setup seçeneği seçilerek devam edilir.

Page 226: Her yönüyle linux sistem ve network güvenliği

4. Şekideki gibi server modda kurulum şeçilerek devam edilir. Daha sonra squil kullanıcı adı, snorby için isim standalone moddaki gibi e­mail adresi seçimi, snort yada suricata şeçimi benzer şekilde yapılarak tüm seçenekler dökümanın önceki sayfalarında anlattığımız şekilde yapılandırılır ve tamamlanır. Bu kısımda sadece Security Onion bir server olarak yapılandırıldığı için network security monitoring araçları çalışmayacaktır. Snorby konsoldan girip test edebilirsiniz. Sensor modda kurulum yapana kadar hiçbir veri göremeyebilirsiniz. Server modda kurulumu tamamladıktan sonra artık sensor modda kurulum için Security Onion’u yapılandırmaya başlayabiliriz. Yine hızlıca kurulum için standalone modda kuruluma benzemektedir. Standalone modda iyi hakim olmanızda fayda var. 1. Öncelikle virtual box ayarları olsun diğer ayarlar olsun boot işlemine ve ilk boot işlemini başlanana kadar standalone modda ayarladığımız gibi yapılandırılır. Burada dikkat edilmesi gereken nokta virtual network adaptör ayarlarının fiziksel network’ünüze göre yapılandırılması gerektiğidir. 2. Gerekli boşluk ayrılır, bağlantılar, güncelleştirmeler kontrol edilir, üçüncü parti yazılımlar yükleme seçenekleri standalone moddaki gibi ayarlanır. 3. erase the disk to install SO → seçeneğine kadar devam edilir. 4. Daha sonra kulllanıcı adı, bilgisayar ismi ve şifre gibi diğer işlemler gerçekleştirilir. 5. apt­get update; apt­get upgrade; apt­get dist­upgrade; komut işlemleri gerçekleştirilir. Ardından reboot işlemini gerçekleştirip server olarak yapılandırma işlmelerine geçebiliriz. 6. Yukarıdaki gibi uzun uzun komut çalıştırmak yerine soup komutu ile tüm bu işlemleri tek seferde tamamlayabiliriz. Bu işlemleri tamamladıktan sonra Security Oninon sensor modda kurulumu tamamlanmıştır. Geniş networkler için burada statik ip adresi kullanarak yapılandırılması gerekmektedir. Reboot ettikten sonra diğer yapılandırma aşamasına geçilerek devam edilir. Masaüstünde setup ikonuna basılarak login olunur. Yes continue seçeneği ile devam edilir. Bu aşamadan sonra yönetim amaçlı eth0 adresi seçilir. Statik ip adresi konfigürasyonu yapıldıktan sonra sniffing amaçlı ise eth1 adresi seçilir.

Page 227: Her yönüyle linux sistem ve network güvenliği

Değişiklikler kaydedilerek reboot işlemi yapılır. Sistem reboot işlemi yapılırken sensor modda konfigürasyon işlemleri devam etmektedir. Reboot işlemi tamamlandıktan sonra tekrar masaüstünde bulunan setup ikonuna tıklanarak diğer aşamalara geçilir. Başlangıçta network konfigürasyonlarını tamamladığımız için normal işlemler ile devam edilerek bir sonraki aşamaya geçilir.

Şekildeki gibi sensor modda seçim yapıldıktan sonra bir sonraki aşamaya geçilir. Bir sonraki aşamda bağlantı kurulacak ip adresini istemektedir. Şekildeki adres örenk bir ip adresi olup siz kendi makinanızın durumuna göre şekillendiriniz. Burada ip adresi olarak diğer sanal makinamda çalışan ubuntu server’ın ip adresini vereceğiz.

Page 228: Her yönüyle linux sistem ve network güvenliği

Bundan sonra ise squil server’a bağlanacak ssh kullancı ismi istemektedir.

Bu işlemide gerçekleştirdikten sonra monitoring yapılacak arayüzü sormaktadır. Bu noktadan itibaren sorulan sorulan standalone modda, server moddaki gibi olmakla birlikte bu işlemler aynı şekilde fiziksel makinanın durumuna göre yapılandırılarak sensor modda olması sağlanır. Şimdiye kadar olan kısımda temel yapılandırma işlemlerini anlatmıştık. Bundan sonra ise bir lab ortamı ile ssh brute force saldırısı, ddos saldırısını gerçekleştireceğiz. Öncelikle fiziksel lab ortamı için gerekli donanım aşağıdaki gibi olmalıdır. *** Ubuntu Server yada Desktop (512 Mb Ram yeterli yada 1 gb) *** Kali Linux herhangi güncel sürümü ( 2 GB ve üzeri Ram) *** Standalone modda yapılandırılmış Security Onion (4 GB ve üzeri Ram yeterli) *** Wmware 10.04 ya da güncel sürümü (Virtual Box ta kullanabilirsiniz.) Öncelikle lab ortamı gereklilikleri (en önemli olan kısım) Ubuntu için Wmnet0 nat olarak yapılandırılır. Daha sonra ifconfig eth0 promisc modu ile sniffing için aktif hale getirilir.

Page 229: Her yönüyle linux sistem ve network güvenliği

#ifconfig eth0 promisc

Aktif olduğu aşağıdaki gibi görebilirsiniz.

Page 230: Her yönüyle linux sistem ve network güvenliği

Ubuntu Yapılandırılmıştır. Şimdide kali linux’u yapılandıralım. VMnet0 da nat olarak yapılandırıldıktan sonra normal modda internete çıkmaktadır.

Şimdi ise security onion dağıtımının yapılandırılması işlemlerine geçelim. Burada standalone moddaki gibi yapılandırılır. eth0 mod sniffing amaçlı yapılandırılırken Wmnet8 management

Page 231: Her yönüyle linux sistem ve network güvenliği

amaçlı internet çıkması sağlanır. Standalone moddaki tüm konfigürasyon işlemlerinin buraya kadar tamamlanmış olması gerekmektedir.

Bu işlemlerden sonra üç fiziksel makinada teste başlamak için çalıştırılır. Test amaçlı üçününde internete çıktığından emin olmak ve modlarını kontrol ederek ping ve ifconfig komutlarını çalıştırarak test etmenizde fayda var. Bu ayarlar yapıldıktan sonra artık kali üzerindeki hydra aracı ile ssh brute force saldırısını şekildeki gibi başlatalım. Saldırını tespit edilip edilmediğini anlamak amacıyla secuirty onion üzerideki snorby’i ye login olmamız gereklidir.

Page 232: Her yönüyle linux sistem ve network güvenliği

Artık attackları yapmaya başlamıştır. Burada dikkat etmeniz gereken nokta ip adresi verirken Ubuntu server’ımızın ip adresini vermiş olmamız önemlidir.

Page 233: Her yönüyle linux sistem ve network güvenliği

Şekildeki gibi snorby üzeride ssh atağı ile ilgili uyarıyı görebilirsiniz. Kaynak ip bilgileri ve hedef ip bilgilerine dikkat ederseniz ubuntu ve kali linux ip adresleridir.

Page 234: Her yönüyle linux sistem ve network güvenliği

Yakalayan imza bilgileride şekildeki gibidir. Dökümanın başında belirttiğimiz gibi bir çok bilgiye ulaşmak mümkün.

Genel görünün itibari ile bu şekilde aşağıdaki diğer loglarda test amaçlı şöyle bir senaryo düşündük. Zararlı yazılımların tespit edildiği Dünya çapında açık kaynak siber istihbarat ağları

Page 235: Her yönüyle linux sistem ve network güvenliği

bulunmaktadır. MalwareDomainlist adlı sitede bunlardan bir tanesidir. Ubuntu Desktop arayüzde bu siteye girip zararlı ip adreslerine ulaşmaya çalıştığımızda bizi etkileyecek diğer zararlı loglar tespit edilmektedir.

Snorby’e farklı zararlılar barından sitelerden gelen atak türleride düşmektedir. Buradan network secuirty monitoring işlemlerinin başarılı bir şekilde devam ettiğini göstermektedir.

Page 236: Her yönüyle linux sistem ve network güvenliği
Page 237: Her yönüyle linux sistem ve network güvenliği

Şimdide ddos saldırınıs gerçekleştirelim. Snort’un yakaladığı logları snorby’de gözden geçirelim. Test için anonymous tarafından yazılan populer ddos aracını kullanıyoruz. Şekilde görüldüğü gibi Ubuntu dağıtmımızın ip adresini giriyoruz. Udp 53 Dns portu olarak ayarlıyoruz. Ardından işlemi başlatarak atak yapmaya başlıyoruz.

Kural bilgilerini snorby’den görmek mümkün.

Page 238: Her yönüyle linux sistem ve network güvenliği

Yaklaşık 5 dakika devam eden atak sonrası kritik seviye olarak ilgili dns kuralı logları şekildeki gibidir.

Page 239: Her yönüyle linux sistem ve network güvenliği

Ddos ve ssh brute force atağının dışında diğer log bilgileri malware domain list sitesinde ziyaret ettiğimiz zararlı sitelerden dolayıdır.

SshGuard İle Brute Force Saldırılarını Önleme 29

Küçük bir program olan sshguard servisleri izleyerek gelebilecek brute force saldırılarına karşı firewall kuralları ile birlikte bu saldırıları önler. Birden fazla servisin monitoring edilerek, farklı servisler ve dağıtımlar için kullanılabilmektedir. Log dosyası mesajlarına bakarak zararlı davranıştı bulunulan ip adresinin engellenmesinde görev almaktadır. Sadece ssh ataklarının önlenmesinde değil, farklı servislere görede yapılandırılabilmektedir. Bu servislerden bazıları: ** sshd ** sendmail ** dovecot ** exim ** cucipop ** vsftpd ** pure­ftpd ** pro­ftpd ** FreeBsd ftpd ** Pop, İmap… ** Cyrus Atak imzaları:

6.6.6.0: Saldırgan(Mallory)

127.0.0.1 Bob’un local adresi

mario Sistemdeki bir kullanıcı

inexu Sistemde olmayan bir kullanıcı

XYZ Alakasız bir string Dipnot: Yukarıki kulllanıcılar için aşağıdaki tabloya bakınız!

29 Her Yönüyle Linux­Sistem ve Network Güvenliği ­ Ahmet HAN Free E­book

Page 240: Her yönüyle linux sistem ve network güvenliği

Servis Tehlike Tehlike Mesajı

sshd default Invalid user inexu from 6.6.6.0

sshd default User mario from 6.6.6.0 not allowed because XYZ

sshd default Failed XYZ for XYZ from 6.6.6.0 port 14423 ssh2

sshd default error: PAM: authentication failure for mario from 6.6.6.0

sshd default

reverse mapping checking getaddrinfo for XYZ [6.6.6.0] XYZ POSSIBLE BREAK­IN ATTEMPT!

sshd default Did not receive identification string from 6.6.6.0

sshd default Bad protocol version identification XYZ from 6.6.6.0

Cucipop default authentication failure XYZ 6.6.6.0

Exim default

XYZ auth_plaintext authenticator failed for XYZ [6.6.6.0]:14432 I=XYZ : 535 Incorrect authentication data (set_id=test)

Sendmail default Relaying denied. IP name lookup failed [6.6.6.0]

dovecot default imap­login: Aborted login (auth failed, 6 attempts): XYZ rip=6.6.6.0, lip=127.0.0.1

UWimap default Login failed user=XYZ auth=XYZ host=XYZ [6.6.6.0]

Cyrus IMAP default badlogin: XYZ [6.6.6.0] XYZ SASL XYZ checkpass failed

FreeBSD ftpd default FTP LOGIN FAILED FROM 6.6.6.0, XYZ

ProFTPd default foo.com (foo.com [6.6.6.0]) XYZ no such user XYZ

Pure­FTPd default ([email protected]) [WARNING] Authentication failed for user XYZ

Page 241: Her yönüyle linux sistem ve network güvenliği

vsftpd default XYZ FAIL LOGIN: Client "6.6.6.0"

30

Kurulum:

# wget http://flexbox.sourceforge.net/centos/5/i386/sshguard­1.5­2.el5.i386.rpm

# rpm ­ivh http://flexbox.sourceforge.net/centos/5/i386/sshguard­1.5­2.el5.i386.rpm

İp tables kurallarını kullanarak, multiport kapsayan bir örnek yapalım!

# iptables ­N sshguard

# iptables ­A INPUT ­j sshguard

# iptables ­A INPUT ­m multiport ­p tcp ­­destination­ports 110,21,22 ­j sshguard

# service iptables save Kurallar kaydedikten sonra yukarıdaki portlar için sshguard çalışmaya hazırdır.

Saldırı Tespit Sistemleri [Suricata] 31

Bilgisayar güvenliği kullanılan saldırı tespit sistemleri, bilgisayar ve ağ faaliyetlerini izleme; sistemlere gerçekleşen sızma faaliyetlerini aramak için bu olayların analiz süreçlerini ifade eder. Saldırı tespit sistemleri genel olarak yerel ağdan veya dışarıdan gelecek tehditlere karşı, yapılan atakları ve tehditleri önlemeye karşı tasarlanmış sistemlerdir. Bu yazımızda temel olarak; yüksek performanslı ağ, IDS, IPS ve ağ güvenliği izleme motoru olan Suricata’nın kurulumu üzerine olacaktır. Bu yazıda Ubuntu işletim sistemi üzerinde kurulum anlatılmıştır. Diğer open source sistemler üzerine kurulumunu referanslar kısmından bulabilirsiniz.

30 http://www.sshguard.net/docs/reference/attack­signatures/ 31 Her Yönüyle Linux­Sistem ve Network Güvenliği ­ Ahmet HAN Free E­book

Page 242: Her yönüyle linux sistem ve network güvenliği

Suricata açık kaynak ve kar amacı gütmeyen bir kurum olan Open Information Security Foundation(OISF), destekleyicileri ile birlikte geliştirilmiştir. Bilinen tehditler, politika ihlalleri ve kötü niyetli davranışlar üzerinde tam bir imza dili uygular. Ağ üzerindeki anomalileri de tespit edecektir. Kurulum: Öncelikle kuruluma başlamadan önce sistemde en yetkin kullanıcı yani root kullanıcı olunması gerekmektedir. Aşadaki komutla en yetkili kullanıcı olabilirsiniz. sudo su ­root Daha sonra kuruluma başlamadan önce sistemin inşa edilebilmesi için aşağıdaki komut çalıştırılmalıdır. sudo apt­get ­y install libpcre3 libpcre3­dbg libpcre3­dev \ build­essential autoconf automake libtool libpcap­dev libnet1­dev \ libyaml­0­2 libyaml­dev zlib1g zlib1g­dev libcap­ng­dev libcap­ng0 \ make libmagic­dev Sisteminizin durumuna göre bu işlemin gerçekleştirilmesi biraz zaman alıcaktır. Debian ve FreeBsd sistemlerde Sudo komutunu kullanamazsınız bu yüzden htp kütüphanesi yüklenirken bazı hatalarla karşılaşabilirsiniz. Aşağıdaki komutları çalıştırarak konfigürasyon ayarlarını tamamlayabilirsiniz. wget http://www.openinfosecfoundation.org/download/libhtp­0.2.3.tar.gz tar ­xzvf libhtp­0.2.3.tar.gz cd libhtp­0.2.3 ./configure make make install Suricata default olarak IPS olarak çalışmaktadır. Eğer Suricata’yı bir IPS ve IDS programı olarak çalıştırmak isterseniz aşağıdaki komutu çalıştırmanız gerekmektedir. sudo apt­get ­y install libnetfilter­queue­dev libnetfilter­queue1 libnfnetlink­dev libnfnetlink0 Yüklemeden önceki konfigurasyon ayarları tamamlandıktan sonra Suricata’yı yükklemek ve diğer ayarlara geçmek amacıyla aşağıdaki komut çalıştırılmalıdır.

Page 243: Her yönüyle linux sistem ve network güvenliği

wget http://www.openinfosecfoundation.org/download/suricata­2.0.2.tar.gz tar ­xvzf suricata­2.0.2.tar.gz cd suricata­2.0.2 Suricata’yı bir IPS yeteneklerini kullanmak isterseniz aşağıdaki komut çalıştırılmalıdır. ./configure --enable-nfqueue --prefix=/usr --sysconfdir=/etc --localstatedir=/var ya da ./configure ­­prefix=/usr ­­sysconfdir=/etc ­­localstatedir=/var Daha sonra yeni komutla devam edilmelidir. ./configure ­­prefix=/usr ­­sysconfdir=/etc ­­localstatedir=/var make sudo make install sudo ldconfig Otomatik Kurulum : Eğer yukarıdaki gibi fazla komutla ve konfigürasyonla uğraşmak istemiyorsanız : Örneğin: ./configure && make && make install­conf make install­conf make install olarak yüklemek istersek, suricata.yaml dosyası için dizinlerin oluşturulması sağlanacaktır. ./configure && make && make install­rules make install­rules Emerging Threats dosyalarının otamatik indirilmesi ve make install için aşağıdaki komut çalıştırılmalıdır. ./configure && make && make install­full Son olarak make install full komutu ile otamatik kurulum tamamlanmış olur.

Page 244: Her yönüyle linux sistem ve network güvenliği

Basit Kurulum: Debian ya da FreeBsd sistemlerde kurulum gerçekleştirlirken bir çok faktörü manual olarak yapılandırmanız gerekmektedir. Öncelikle bir log dizin dosyası oluşturulmalıdır. sudo mkdir /var/log/suricata Daha sonra /etc dizini altında bir Suricata’ya ait bir dizin oluşturulmalıdır. sudo mkdir /etc/suricata Ardından bazı konfigürasyon dosyalarının düzenlenmesi için /etc/suricata dizininde aşağıdaki komutlar girilmelidir. Basit kurulum tamamlanmışıtır. sudo cp classification.config /etc/suricata sudo cp reference.config /etc/suricata sudo cp suricata.yaml /etc/suricata Basit kurulum tamamlanmışıtır.

Mysql Veritabanı İmport/Export İşlemleri 32

Linux && Unix sistemlerde sıklıkla kullanılan network security monitoring araçlarının çoğu sıklıkla mysql veri tabanını kullanmaktadır. Dolayısı ile bu yazımızda mysql veritabanı işlemlerinin linux komut satırında import/export işlemleri basit şekilde anlatılacaktır. Sizde farklı araçlar kullanırken bazı templete oluşturken vb gibi farklı işlemler yaparken pratik olarak kullanmaya özen gösteriniz. Export İşlemleri:

# mysqldump ­u kullanıcı_ismi ­p veritabanı_ismi > filename.sql İmport İşlemleri:

# mysqldump ­u kullanıcı_ismi ­p veritabanı_ismi < filename.sql

32 Her Yönüyle Linux­Sistem ve Network Güvenliği ­ Ahmet HAN Free E­book

Page 245: Her yönüyle linux sistem ve network güvenliği

Linux’taki Yazılım Lisanslarının Değerlendirilmesi 33

Günümüzde yaşanan bilgi teknolojilerindeki güncel gelişmeler ve değişimler bir takım gereksinimleri beraberinde getirmektedir. Yazılımlar bir takım ihtiyaçlar doğrutusunda firmalar tarafından geliştirilmektedir. Bunlardan bazıları ücretli olmakla birlikte bazıları da yazılımların ücretsiz olmalarını savunan community(topluluklar) sayesinde ücretsiz dağıtılmaktadır. Linux dağıtımları ve bazı ücretsiz open source(açık kaynak) yazılımlar bu şekilde dağıtılmaktadır. Açık kaynak kodlu veya ücretsiz dağıtılması bir takım lisanslar ile sağlanmaktadır. Ücretsiz olanlarının bazıları değerlendirme amaçlı trial sürümler olması veya bir süre sonra tam sürüm için premium kullanıma geçmesini isteyebilmektedir. Bazı firmalar ise ticari sürümlerini satmakta, bazıları ise bireysel kullanımlar için ücretsiz dağıtmaktadır. Farklı bir örnek vericek olursak, Security Onion adlı dağıtım içersinde snort, suricata ve daha fazlası gibi araçları bulundurmaktadır. Dışarıdan gelen saldırıların tespit edilmesinde belirli bir yere kadar belirlenmiş saldırıları tespit edebilmekte daha fazlası için premium kuralları satın almanız gerekmektedir. Bu yazımızda linux’taki yazılım lisanslarından bazılarına değinilecektir.

BSD Lisansı:

Yazılım üzerinde hiç bir kısıtlama ve sınırlama olmaksızın istediğiniz gibi kullanabilirsiniz. İstediğiniz gibi geliştirip kodları kapatarak ticari ürünler sunabilirsiniz. Örneğin; Network güvenli konusunda ve diğer sistem tarafında bazı firmalar freebsd tcp/ip kodlarını kullanarak ticari ürünler çıkarmaktadır.

GNU Free Documentation License (FDL):

Özgür yazılım vakfı tarafından tasarlanmıştır. Eğitim amaçlı olarak kullanılabilir. Kopyalanıp çoğaltılabilir. Ama ön tanımlı olarak dökümanların değitirilmemesi gerekir. Birden fazla kopya

33 Her Yönüyle Linux­Sistem ve Network Güvenliği ­ Ahmet HAN Free E­book

Page 246: Her yönüyle linux sistem ve network güvenliği

üretilcekse eğer ilerisi için lisansın ilerleyen zamanlarda değiştirilebilir şekilde olması gerekmektedir.

GNU General Public License (GPL):

Bir çok yerde kullanılan özgür yazılım lisansıdır. Richard Stalmann tarafından yazılmış olup günümüzde kullanılan milyonlarca yazılım bu lisansı kullanmaktadır. Kullanım olarak avantajlıdır. Ücretli olup olmaması kullanıcıların istediğine bağlı kalmıştır. İsterse bir firma geliştirdiği ürün için ücret talep edebilir. Copyleft yazılım türlerinde çok kullanılmaktadır. Bu kavram bir yazılımı geliştirilmiş tüm ürün özellikleri ile birlikte kullanmak anlamına da gelmektedir. Zaten mantıklı olanda budur.

GNU Lesser General Public License (LGPL):

Farklı versiyonları bulunmaktadır. Genellikle kütüphaneler ile kullanılmaktadır. Kapalı kodlara sahip yazılımlarda kullanmak isterseniz o kısımları lgpl ile lisanslamanız gerekmektedir. Gpl’e göre avantajlı olması glp bir yazılımın tümünün gpl kodlanmasını şart koşmaktadır. Bu noktada daha az kapsamlı olabilmektedir. Gerektiği yerlerde kullanılması mantıklı olandır.

MIT/X Consortium License:

Mit üniversitesi tarafından dağtılmakla birlikte ön tanımlı şartlara uymak koşulu ile istediğimiz gibi koplayabilir, geliştirebilir kullanabiliriz.

Mozilla Public License (MPL):

Mozilla foundation tarafından dağıtılan ücretsiz, açık kaynak olarak dağıtılmaktadır. Mozilla ile kullanım yaparak bir yazılım geliştirmek isterseniz kaynak kodu ve lisans sözleşmesine uymanız gerekerek geliştirme yapabilirsiniz. 34

Open Software License: Ücretsiz ve açık kaynak dağıtılmakla birlikte kullanıcıya istediği gibi alıp kullanıp geliştirme değiştirebilme imkanı sunan lisans şeklidir. Dağıtılan farklı lisans türleri bknz. 35

Freeware:

34 https://www.mozilla.org/MPL/license­policy.html 35 http://opensource.org/licenses

Page 247: Her yönüyle linux sistem ve network güvenliği

Kullanıcıların belirli bir süre sonra ücret ödemelerini gerektirmeyen sınırsız kullanım imkanı tanıyan yazılımların kullanmış oldukları dağıtım lisanslarına verilen genel isim. 36

Shareware: Bazı yazılımların tanıtım ve kısıtlı imkanlar dahilinde sunduğu paylaşımlara verilen genel isim olmakla bir çok ticari ürünün sunum şekli denilebilir. Örneğin 20 gün sonra sizden bir ürün anahtarı isteyebilmektedir. Son zamanlarda global olarak belirli yer edinmiş firmalar, parasal güce sahip, bazı open source yazılım dağıtımı yapan firmalar da ticari potansiyel gördükleri zaman bu firmaları satın alabilmektedirler. Örneğin Sourcefire firmasını Cisco’nun satın alması gibi. Daha sonra ticari 37

ürünler bazında sourcefire ürünleri üzerinden satış yapması gibi. Open source bir ürün geliştirmek istiyorsanız kişisel olarak fikrim BSD lisansı olması yönünde. Çünkü open source’da olsa ticari para kazanmanız gerekebilir. Para kazanmalısınız ki ürün desteği verebilesiniz. Tüm bunları yaparken de tekerleği yeniden icat etmeye gerek yok. Oturup yeniden bir dağıtım kodlamak yerine belirli bir dağıtımı alıp geliştirip ticari ürün sunacaksanız eğer kapatıp bu ürünü globalde satmak. Çoğu linux projesi özellikle son zamanlardaki girişimler bu yönde. String Sql İnjection Zafiyeti İstismarı Son yıllarda gerçekleştirilen hedef odaklı saldırılara bakıldığı zaman Apt saldırıları, zararlı yazılımlar ve bu konuda gerçekleştirilen siber casusluk faaliyetleri olsa da her yıl owasp topluluğunun yayımlamış olduğu top 10 atak listesinde Sql İnjection saldırıları ilk sıralarda yerini korumaktadır. Tüm Dünya’da web uygulama güvenliği üzerine çalışmalar yürüten Owasp topluluğu her yıl gerçekleşmiş olan atak vektörlerini aşağıdaki sayfada belirtilen şekildeki gibi ifade etmektedir. Sql injection zafiyetine bakıcak olursak buda durumun ciddiyetini göstermektedir. Sql İnjection Nedir? SQL Injection dünya üzerinde en çok ilgi gören Web Uygulama güvenlik zaafiyetidir. Sitelerdeki SQL veritabanına odaklı bir saldırı çeşididir. SQL veritabanının çalıştıracağı SQL komutlarıyla, SQL Injection zaafiyeti bulunan bir sitedeki veri geçişini kullanarak kendi çıkarlarımız doğrultusunda hedef alınan veriyi çalmak için kullanılabilmektedir. 38

36 http://www.cahilig.net/2011/07/29/100­best­free­and­high­quality­linux­games 37 http://www.cisco.com/web/about/ac49/ac0/ac1/ac259/sourcefire.html 38 http://koraay.com/web­guvenlik­aciklari­sql­injection/

Page 248: Her yönüyle linux sistem ve network güvenliği

Sql İnjection Nasıl Yapılır? Sql injection yapılabilmesi için öncelikle bir yerde ilgili zafiyetin tespit edilmesi gerekir. Bu noktada temel sql komutları bilmek önemlidir. Daha sonra bilinen açık hangi atak vektörüne ait onun iyi anlaşılması gerekir. Buna da karar verildikten sonra istismarın manuel mi yoksa herhangi bir otamatize araç kullanarak mı gerçekleştirilecek soruları önemlidir. Bundan sonra zafiyetin istismarı gerçekleştirilmeye başlanır. Sql İnjection Türleri Sql injection türleri farklı veri tabanı türleri için özelleşebilmiş olabilir. Farklı veritabanlarında farklı sorgular çalıştırılabilir. Bu konuda Sql injectionWiki sayfasından ulaşabilirsiniz.

39

Bu makalemizde Owasp tarafından hacking ve bu zafiyetlerin öğrenilmesi için hazırlanmış Webgoat uygulaması üzerinde String Sql İnjection Zafiyetin İstismarı anlatılacaktır. Öncelikle referanslar kısmında belirtilen Windows üzerine Webgoat kurulum işlemlerini belirtilen adreste

39 http://www.troyhunt.com/2010/05/owasp­top­10­for­net­developers­part­2.html WhiteHatSecurityTopTenAttacksVectors

Page 249: Her yönüyle linux sistem ve network güvenliği

adım adım kurmanız gerekmektedir. Kurulum ve yapılandırma işlemleri tamamlandıktan sonra zafiyetin istismarını artık kendi labımızda gerçekleştirebiliriz. 40

Web Goat Nedir? Webgoat, web siteleri için siber güvenliği konu alan bir web uygulamasıdır. J2EE(Java 2 Enterprise Edition) temelli geliştirilmiş sürümü bulunduğu gibi ASP.NET temelli geliştirilmiş sürümü de bulunmaktadır. Java dili ile hazırlanmış Webgoat sürümü platform bağımsızlığına sahipken ­ yani windows dışında linux, mac osx işletim sistemlerinde de çalışabiliyorken ­ ASP.NET ile hazırlanmış Webgoat sürümü tahmin edebileceği gibi yalnızca Windows platformu üzerinde çalışabilmektedir. 41

Kurulum aşamaları tamamlandıktan sonra kullanılan web tarayıcısına link şu şekilde girilmelidir. http://localhost:8080/WebGoat/attack Daha sonra admin=webgoat password=webgoat olarakta girilmelidir. Bu işlemleri de tamamladıktan sonra webgoat test ortamımız şekildeki gibi hazırdır. String Sql İnjection Zafiyetinin Gerçekleştirilmesi Örneği

40 http://www.includekarabuk.com/kategoriler/webgoatuygulamasi/Windowsa­Webgoat­Kurulumu.php Windows_Üzerine_Web_Goat_Kurulumu 41 http://www.includekarabuk.com/kategoriler/webgoatuygulamasi/Webgoat­Nedir.php Webgoat Nedir?

Page 250: Her yönüyle linux sistem ve network güvenliği

İlk olarak burada bulunan menüde sol tarafta injection flaws seçeneklerine gidilir.

Daha sonra açılan alt menüde String Sql İnjection Zafiyetinin bulunduğu kısım işaretlenir. Açılan pencere şekildeki gibidir. Sql veri tabanı sorgu dilinde select *from tablo_adi veritabanından sorguların çekilmesini sağlamaktadır. Buradaki where ifadesi ise verileri sınırlamakta kullanılmaktadır. Bir nevi filtre görevi görmek içim kullanılmaktadır. Burada ise isim ifadesinin girileceği alanda veritabanı sorgu ifadesi ekrada görülebilmektedir.

Page 251: Her yönüyle linux sistem ve network güvenliği

Normal bir kullanıcı olan Smith adı girildiğinde normal sorgu şekildeki gibi çalışmaktadır.

Ardından string sql injectionu gerçekleştirebilmek için Smith' or 1=1 ­­ sorgusunu çalıştıralım ve sonuçlar şekilde gibidir ve veritabanında bulunan diğer kullanıcı bilgileri de listelenmektedir.

Page 252: Her yönüyle linux sistem ve network güvenliği

String sql injection burada başarı ile gerçeklenmiştir. Diğer kişilerin bilgileride şekildeki gibi gelmiştir. Blind String Sql İnjection, Blind Numeric Sql İnjection, Bypass login panel authentication gibi farklı İnjection Flaw türleri bulunmaktadır. Sonuç: Makalenin başında da belirttiğimiz gibi son zamanlarda gerçekleşen sql injection zafiyeti ile çok sayıda hedef alınmış saldırılar gerçekleştirilmiştir. Bu tür saldırıları önlemenin kesin bir yolu olmamakla birlikte, aşağıda verilen temel parametreleri kullanarak güvenlik önlemleri artırılabilir. Uygulamayı geliştirecek developerların güvenli kod geliştirme sikillleri kazanması, bu konu ile ilgili beyaz sapkalı hacker eğitimi, güvenli kod geliştirme eğitimlerine katılmaları, yazacakları kodu owasp gibi community’lerin oluşturduğu belirli standartların uygulanarak güvenlik önlemleri arttırılabilir.

GET ya da POST ile yollanan verileri doğrulamak

Gönderilen verileri filtrelemek

SQL Parametresi kullanmak (Prepare yapmak)

Kullanıcı yetkilerini kısıtlamak

Stored prosedrüler kullanmak, Güvenliği test etmek, gözden geçirmek, önemli verileri encrypt etmek

Referanslar: http://wiki.centos.org/HowTos/Network/IPTables http://www.koraykey.com/?p=3642 http://www.thegeekstuff.com/2011/06/iptables­rules­examples/ http://tr.wikipedia.org/wiki/SSH https://docs.docker.com/installation/ubuntulinux/ http://securityonion.blogspot.com

Page 253: Her yönüyle linux sistem ve network güvenliği

http://code.google.com/p/security­onion/wiki/Installaon http://code.google.com/p/security­onion/wiki/FAQ http://groups.google.com/group/security­onion http://www.youtube.com/watch?v=975NH3­xrno&list=PLWAHiM_D­qJ6EoN3vdaY_5jXpvvVmjMdE http://www.virtualbox.org/manual/ch06.html#network_bridged. http://ptcoresec.eu/tutorial­how­to­install­and­use­security­onion­pt­1/ http://santoshdudhade.blogspot.com.tr/2013/01/security­onion­1204­network­security.html http://www.deepimpact.io/blog/installingsecurityoniononvirtualbox http://www.amazon.com/Practice­Network­Security­Monitoring­Understanding/dp/1593275099/ref=sr_1_1?ie=UTF8&qid=1408988453&sr=8­1&keywords=practice+of+network+security+monitoring http://www.amazon.com/Applied­Network­Security­Monitoring­Collection/dp/0124172083/ref=sr_1_4?ie=UTF8&qid=1408988453&sr=8­4&keywords=practice+of+network+security+monitoring http://blog.securityonion.net/2011/04/security­onion­20110321­distributed.html http://www.noah.org/wiki/Packet_sniffing#tcptrack http://www.youtube.com/watch?v=6eOg9Frg2Q0&index=3&list=PLWAHiM_D­qJ6EoN3vdaY_5jXpvvVmjMdE https://evilzone.org/tutorials/hydra­ssh­brute­force­attack/ http://www.youtube.com/results?q=vmware+snort+lab+environment+vmware http://hackertarget.com/brute­forcing­passwords­with­ncrack­hydra­and­medusa/