Açık Kaynak Güvenlik Araçları

Siberle kalın, güvende kalın!

Kali Linux ve Araçlar

Hazırlayan: Çağrı Ceyhan Siber güvenlikte doğru aracı doğru zamanda kullanmak oldukça önemlidir. Kali Linux bu konuda adeta bir laboratuvar gibi çalışmaktadır. Yüzlerce saldırı, analiz ve savunma aracını tek bir sistemde birleştirmektedir. Bu yazımda Kali Linux’un sunduğu temel araç setlerini ele almaya çalışacağım. 1. Keşif (Reconnaissance) : Sızma testinin ilk aşaması bilgi toplamadır. Hedef sistem hakkında ne kadar çok veri elde edersen, sonraki adımlar o kadar sağlam olur. Bu aşamada ne kadar fazla -faydalı- veri toplanabilirse, saldırı yüzeyi o kadar genişleyecektir. 2. Tarama ve Zafiyet Analizi : Keşiften sonra hedef sistemi biraz daha irdelemek gerekmektedir. Servisler, kullanıcılar, işletim sistemleri hakkında detaylı bilgi toplamak bu aşamanın işidir. 3. Saldırı (Exploitation) : Elde edilen bilgilerle sisteme sızma denenir. Bu aşama risklidir, etik sınırları bilmeden asla yapılmamalıdır. 4. Raporlama ve Çıktı Analizi: Sızma testinin sonunda asıl önemli olan saldırı değil, rapordur. Doğru araçlar, sistemlerin zayıf noktalarını ortaya koyar; ama gerçek değer, bulguları anlamlandırıp kuruluş için eyleme dönüştürebilmektir. Kali’deki bu araçların kimin ve nasıl kullandığına bağlı olarak etkisi oldukça değişken olacaktır. Etik, sorumluluk ve tekrarlanabilir metodoloji olmadan teknik başarı yalnızca risk üretir. Neden Kali Linux sızma testlerinde tercih edilir? Aslında bu sorunun özünde “hazır laboratuvar” sağlama vaadi yatar. İçinde yüzlerce güvenlik aracı kurulu halde gelir, paket yönetimi ve bağımlılık çözümü bir güvenlik araştırmacısının zamanını araç kurmakla değil test yapmakla harcamasını sağlar. Ayrıca Offensive Security tarafından desteklenen ve güvenilirliği yüksek bir dağıtım olması, araçların uyumluluğu ve güncellenme açısından büyük avantaj sunar. Windows ile aynı sızma testi akışını yapmaya çalışsaydık, işi yapan araçların çoğu çalışır fakat tekrarlanabilirliği ve akıcılığı kısmında problemler yaşanabilirdi. Öncelikle araç kurulumları ve bağımlılıklar Windows’ta daha sık kafa karıştırmaktadır. Linux’ta tek bir paket yöneticisiyle çözülen şeyler, Windows’ta farklı kurulumlar, PATH ayarları veya ek araçlar gerektirebilir. KAYNAKÇA

Read More

Linux’ta Paket Yöneticileri 

Hazırlayan:  Sedefnaz Durukan Temel Kavramlar  1. Paket Yöneticisi (package manager)  Paket yöneticisi, sistemdeki yazılımların ‘kurulumunu, kaldırılmasını, güncellenmesini ve yönetimini’ sağlayan araçtır.  İşlevleri şu şekilde sıralanabilir: Uygun depolardan paket indirir, bağımlılıkları çözer, paketleri doğru dizinlere yerleştirir, kurulum sonrası yapılandırmaları yapar, güncelleme ve kaldırma işlemlerini yönetir.  2. Paket (package)  Bir “paket”, Linux’ta bir yazılımın (program, araç, kütüphane, sürücü vb.) tüm bileşenlerini içeren sıkıştırılmış bir dosyadır.  İçeriği şunlardan oluşur;  3. Depo(repository)  Depolar, paketlerin uzaktan indirildiği sunuculardır. Bir anlamda Linux’un “uygulama mağazaları”dır.  Özellikleri:  4. Bağımlılık (dependency)  Bir yazılımın çalışması için gerekli olan başka yazılımlar veya kütüphanelerdir. Linux’ta çoğu yazılım, başka bir kütüphaneye bağlı olarak çalışır.  !! Bağımlılık cehennemi (dependency hell):  Bağımlılıkların çakışması veya sürüm uyumsuzluğu nedeniyle sistemin bozulması anlamına gelir.  5. Bağımlılık Çözümleyici (dependency resolver)  Bir paketi kurarken veya kaldırırken, diğer paketlerin etkilenip etkilenmeyeceğini analiz eder.  6. Konfigürasyon Dosyaları (configuration files)  Paket yöneticisinin hangi depoları kullanacağını, nasıl davranacağını belirleyen dosyalardır.  Kullanılan Paket Yöneticileri  İşletim sistemi paket yöneticileri  Yazılım paket yöneticileri  En Çok Bilinen Paket Yöneticileri   “APT”, Debian tabanlı Linux dağıtımlarında kullanılan bir paket yönetim sistemidir. macOS için de “MacPorts”, “Homebrew” bilinen paket yöneticilerdir. JavaScript paketleri için “npm, yarn, bower” en çok bilinen paketlerden birkaçıdır.  Paket Yöneticilerinin Temel Özellikleri  Bir paket yöneticisi öncelikle paket edinme sürecinde paketin doğruluğunu ve bütünlüğünü kontrol etmelidir. Bu süreç checksum kontrolü olarak ifade edilir. Sonrasında, paketin kaynağının kimlik doğrulamasını yapabilmelidir. Bu tür doğrulama süreçlerinde sayısal imzalar kullanılmaktadır. Güncelleme, güncelleme takibi ve güncellemelerin depo üzerinden gerçekleştirilmesi (yine kaynak doğrulama ve paket kontrolü ile birlikte). Paketin ihtiyacı olan uygulamalar ve/veya diğer paketler ile birlikte kurulduğundan emin olmak için bağımlılık yönetimi yapmak. Paketlerin hataya sebebiyet vermeyecek şekilde yapılandırılması / kaldırılması. Kullanılan tüm bağımlılıkları / paketleri çeşitli bilgilerle (metadata) birlikte (name, description, version number, vendor, checksum, dependencies…) kayıt altında tutarlar (örneğin package.json bir local package database’dir) ve yeri geldiğinde indirme-güncelleme-kaldırma işlemlerini tek bir komutla uygularlar. Bir başka alanda tüm bağımlılıklar yerine bu dosyaların kullanılması yeterli olacaktır. Gerisini paket yöneticisi kendisi halletmektedir.  Paket Yöneticilerinin Avantaj Ve Dezavantajları  Genel Avantajlar:  Genel Dezavantajlar  Bilindik ailelere göre avantaj/dezavantaj  APT (Debian, Ubuntu, Kali)  Avantajları:   Dezavatnajları:  DNF/YUM (Red Hat, Fedora, CentOS)  Avantajları:  Dezavantajları:  PACMAN (Arch, Manjaro)  Avantajları:  Dezavantajları:  Zypper (openSUSE)  Avantajları:  Dezavantajları:  Paket Yöneticilerinin Uygun Kullanıcı Tipleri  Paket Yöneticisi  Kullanıldığı Dağıtımlar  Uygun Kullanıcı Tipi  Neden Uygun Olduğu  APT (Advanced Package Tool)  Ubuntu, Debian, Linux Mint, Kali   Yeni başlayan / ️ Orta seviye  Kullanımı kolay, kararlı ve geniş depo desteği var. “apt install” ile her şey çözülür.  DPKG (Debian Package Manager)  Debian tabanlı sistemlerin çekirdeği   Geliştiriciler  Manuel kontrol imkânı sağlar, sistem düzeyinde paket yönetimi için uygundur.  DNF / YUM  Fedora, CentOS, RHEL   Sistem yöneticileri / Orta seviye  Kurumsal ortamlarda kararlıdır, güvenlik yamaları hızlı gelir. “Enterprise” odaklıdır.  RPM (Red Hat Package Manager)  Red Hat tabanlı tüm sistemler   Geliştirici /  Sistem yöneticisi  Manuel kontrol sağlar, kurumsal üretim ortamlarında tercih edilir.  PACMAN  Arch Linux, Manjaro  Deneysel kullanıcı /  Geliştirici  Rolling-release (sürekli güncel) yapı sunar, performans odaklıdır. Hızlı ama dikkat ister.  Zypper  openSUSE  ️ Orta seviye /  Sistem yöneticisi  Güçlü bağımlılık çözümü, kararlılık ve yönetim araçlarıyla kurumsal sistemler için uygundur.  Flatpak  Tüm dağıtımlar  Yeni başlayan / Geliştirici  Her dağıtımda çalışır, güvenli (sandboxed) yapıdadır, yeni yazılım denemek için idealdir.  Snap  Ubuntu ve türevleri  Yeni başlayan /  Geliştirici  Otomatik güncellemeli, bağımsız çalışır, terminal bilgisi az olanlar için kolay.  AppImage  Tüm dağıtımlar   Yeni başlayan /  Deneysel  Kurulum gerektirmez, taşınabilir. Ancak güncelleme manuel yapılır.  Paket Yöneticilerinin Bağlı Olduğu Aile Ve Dağıtımlar  Aile  Dağıtımlar  Paket Yöneticisi  Debian  Ubuntu, Kali, Mint  apt, dpkg  Red Hat  Fedora, CentOS  dnf, rpm  Arch  Manjaro, EndeavourOS  pacman  openSUSE  openSUSE Leap, Tumbleweed  zypper  Evrensel  Her dağıtım  flatpak, snap, AppImage  Bazı Paket Yöneticilerinin Özelliklerinin Tablosu  Özellik  APT  DNF  Pacman  Zypper  Flatpak  Paket uzantısı  .deb  .rpm  .pkg.tar.zst  .rpm  .flatpak  Depo tipi  /etc/apt/sources.list  /etc/yum.repos.d/  /etc/pacman.conf  /etc/zypp/repos.d/  Uygulama tabanlı  Bağımlılık çözümü  Otomatik  Otomatik  Otomatik  Otomatik  İzole  GUI desteği  Synaptic  GNOME Software  Pamac  YaST  GNOME Software  Hız  Orta  Orta  Hızlı  Orta  Değişken  Kaynakça 

Read More