CyberFlow Logo CyberFlow BLOG
Oracle Pentest

Yetki Yükseltme: Siber Güvenlikte Tehditlerinizi Belirleyin

✍️ Ahmet BİRKAN 📂 Oracle Pentest

Siber güvenlik alanında yetki yükseltme saldırılarını öğrenin. Eğitimimizle kritik sistem zafiyetlerini keşfedin ve karşı önlemler geliştirin.

Yetki Yükseltme: Siber Güvenlikte Tehditlerinizi Belirleyin

Yetki yükseltme, siber güvenlikte önemli bir tehdit oluşturur. Bu blog yazısında, yetki yükseltme saldırılarını anlamak, analiz etmek ve etkin bir şekilde önlemek için gerekli adımları öğreneceksiniz. Kendi sistemlerinizi güvence altına almak için karşılaşt...

Giriş ve Konumlandırma

Yetki Yükseltme: Siber Güvenlikte Tehditlerinizi Belirleyin

Siber güvenlik dünyasında, yetki yükseltme, kötü niyetli aktörlerin bir sistemde sahip olduğu düşük seviyeli yetkilerden faydalanarak daha yüksek yetkiler kazanmasını ifade eder. Bu tür bir saldırı, bir sistemin güvenliğini ciddi şekilde tehdit eder; çünkü kötü niyetli kişiler, bu yüksek yetkilerle sistemde daha geniş bir kontrol elde edebilir ve veri hırsızlığı, sistem manipülasyonu veya hizmet kesintisi gibi tehditler oluşturabilir. Yetki yükseltme saldırıları genellikle bir siber saldırının en kritik aşamalarından biri olarak değerlendirilir.

Kötü niyetli kullanıcılar veya saldırganlar, sistemin izinlerini ihlal etmek için çeşitli yöntemler kullanarak bu tür yetkileri elde edebilirler. Örneğin, sistem içerisindeki bazı zafiyetler ve rol yapılandırmaları, kötü niyetli birinin, öncelikli olarak öğrendiği düşük yetkilere sahip bir kullanıcı olarak başlayarak, daha yüksek yetkilere sahip bir kullanıcıya sızmasını mümkün kılar. Bu, saldırganların sistemde geniş çaplı bir kontrole sahip olmasına olanak tanır ve genellikle, siber güvenlik uzmanları tarafından zayıf noktaların taranmasının gerekliliğini doğurur.

Neden Önemlidir?

Yetki yükseltme saldırıları, çoğu siber saldırının temelini oluşturur ve bu yüzden siber güvenlikte kritik bir alan olarak kabul edilir. Özellikle büyük kurumsal yapılar, hassas verileri ve işlemleri korumak için yüksek seviyede güvenlik önlemlerine ihtiyaç duyarlar. Bir saldırganın yalnızca bir çalışan hesabını ele geçirerek, sistemdeki kritik verilere ve uygulamalara erişim sağlaması, büyük bir güvenlik açığına yol açabilir. Dolayısıyla, bu tür saldırılara karşı savunma mekanizmalarının geliştirilmesi, şirketlerin siber güvenlik stratejilerinin merkezinde yer almalıdır. Bu noktada siber güvenlik profesyonelleri, yetki yükseltme zafiyetlerine karşı etkili stratejiler geliştirerek sistemlerini korumak için sürekli olarak görev üzerindedir.

Siber Güvenlik ve Pentest Bağlamı

Siber güvenlik, birçok bileşeni bir araya getirerek karmaşık bir disiplin oluşturur. Yetki yükseltme saldırıları bu karmaşıklığın bir parçasıdır ve genellikle pen-test (penetrasyon testi) süreçlerinin önemli bir bölümünü oluşturur. Pen-test, güvenlik açıklarını belirlemek ve bu açıklara yönelik etkili çözümler geliştirmek amacıyla yapılan simüle edilmiş saldırılardır.

Pen-test süreçlerinde, bir sistemin mevcut rolleri ve yetkilileri üzerinde inceleme yapılarak, potansiyel yetki yükseltme senaryoları oluşturulur. Örneğin, test sırasında kullanıcıların sahip olduğu rolleri analiz etmek ve bu rollerdeki zayıflıkları keşfetmek gibi yöntemler, sistemin güvenliği açısından kritik önem taşır. Ayrıca bu yönelim, sistem yöneticilerine de mevcut zafiyetlerini azaltma ve gerekli önlemleri alma konusunda bilgi sunar.

Okuyucuyu Teknik İçeriğe Hazırlama

Bu blog yazısının devamında, yetki yükseltme saldırılarının daha derinlemesine analizi gerçekleştirilecektir. Siber güvenlik uzmanları ve pentesterlar, bu konuyu yeterince anlamak için teknik bilgi ve araçları kullanmalıdır. Bu bilgiler, yetki yükseltmesinde sık kullanılan açıkları, güvenlik önlemlerini ve en iyi uygulamaları kapsayarak okuyucunun bilgi seviyesini artırmayı hedefleyecektir.

Özellikle aşağıdaki adımların geçerliliği üzerinde durulacaktır:

  • Mevcut rolleri kontrol etme
  • Tehlikeli sistem yetkilerinin tanımlanması
  • "PUBLIC" rolü zafiyetleri
  • Proxy kullanıcı analizi
  • SQL Injection teknikleri ile yetki yükseltme
  • Sudo benzeri yetkilerin etkileri
  • Tablo yetkileri üzerinden yapılan sızmalar
  • Paket zafiyetleri ve explotasyonları
  • Rol hiyerarşisi analizi
  • Şifre değiştirme ve ele geçirme senaryoları
  • Defansif önlemlerin uygulanabilirliği
  • İzleme ve alarm sistemleri

Bunların yanı sıra, bu konuların detaylandığı teknik örnekler, kod blokları ve ek bilgiler aracılığıyla okuyucuya daha zengin bir deneyim sunulacaktır.

Bu bağlamda, okuyucuların yetki yükseltme saldırılarının temel unsurlarını anlaması, siber güvenlik alanında ilerleme kaydetmelerine yardımcı olacaktır. Yazının devamında bu kavramların her birine derinlemesine bakacak ve siber güvenlik stratejilerinizi nasıl geliştirebileceğinizi göstereceğiz.

Teknik Analiz ve Uygulama

Mevcut Rolleri Kontrol Etme

Yetki yükseltme sürecinin ilk adımı, mevcut oturumun sahip olduğu rolleri ve yetkileri değerlendirmektir. Oracle veritabanında, kullanıcılar genellikle birbirini etkileyen bir dizi rol ve yetkiye sahiptir. Bu nedenle, mevcut oturumun rolleri hakkında bir sorgu oluşturmak, hangi saldırı vektörlerinin açık olduğunu anlamak için kritik öneme sahiptir.

SELECT * FROM session_roles;

Bu sorgu, oturum sahibi olan kullanıcının hangi rollere sahip olduğunu gösterecektir. Bu bilgiyi toplamak, hangi yetkilere erişiminiz olduğunu ve olası zayıflıkları belirlemenize yardımcı olur.

Tehlikeli Sistem Yetkileri

Bazı sistem yetkileri, sıradan bir kullanıcı olsanız bile veri tabanını ele geçirmenize olanak tanır. Bu yetkiler, genellikle veri tabanının yönetim işlemlerine erişim sağlayan "altın biletler" olarak tanımlanabilir.

Örneğin, GRANT ANY PRIVILEGE yetkisi, kullanıcıların istedikleri herhangi bir yetkiyi kendilerine veya başkalarına vermesine olanak tanır.

PUBLIC Rolü Zafiyeti

Oracle'da "PUBLIC" rolüne atanan sistem yetkileri, istisnasız tüm kullanıcılar tarafından kullanılabilir. Bu durum, yetki yükseltme saldırılarının en yaygın yollarından biridir.

İlgili komutla, "PUBLIC" rolüne atanmış sistem yetkilerini görüntülemek için aşağıdaki sorguyu kullanabilirsiniz:

SELECT * FROM role_sys_privs WHERE role = 'PUBLIC';

Bu sorgunun döndürdüğü sonuçlar, kullanıcıların hangi genel yetkilere sahip olduğunu gösterir ve ilgili yetkilerin, olası saldırılarda nasıl kullanılabileceğine dair fikir verir.

Proxy Kullanıcı Analizi

Bazı kullanıcılar, başka bir kullanıcı adına oturum açma yetkisine sahip olabilir. Bu durum, yüksek yetkili kullanıcıların yetkilerini devralmak için kullanılabilir. Bu tür bir yetkilendirme, bir proxy kullanıcısını analiz etmek için önemlidir. Aşağıdaki sorgu, mevcut proxy kullanıcılarını listeleyecektir:

SELECT * FROM proxy_users;

Bu veriler, hedeflenen yüksek yetkili kullanıcı üzerinde yapılacak olası bir saldırı için kullanılabilir.

SQL Injection ile Yetki Yükseltme

Eğer yüksek yetkili bir kullanıcı tarafından sahiplenilen bir prosedürde SQL Injection açığı varsa, bu durum yetki yükseltmenin en hızlı yoludur. Örneğin, eğer bir prosedürde aşağıdaki gibi basit bir hata varsa, kötü niyetli bir kullanıcı veritabanına zararlı bir SQL komutu enjekte edebilir:

CREATE OR REPLACE PROCEDURE example_procedure AS
BEGIN
    EXECUTE IMMEDIATE 'SELECT * FROM users WHERE username = '' || input_username || ''';
END;

Yukarıdaki prosedürde, input_username değeri kullanıcıdan alındığında, kötü niyetli bir kullanıcı bunu manipüle ederek yetki yükseltme gerçekleştirebilir.

Sudo Benzeri Yetkiler

Oracle'da, ANY anahtar kelimesini içeren yetkiler (CREATE ANY TABLE, CREATE ANY PROCEDURE vb.), Linux'taki sudo yetkisine benzer bir güç sağlar. Bu yetkilerle, kullanıcılar çeşitli nesne ve yapıları oluşturabilir ya da değiştirebilirler.

Örnek bir sorguyla, hangi tablolara erişiminiz olduğunu kontrol edebilirsiniz:

SELECT table_name, privilege FROM user_tab_privs;

Bu sorgu, hangi tablo üzerinde hangi yetkiye sahip olduğunuzu gösterecektir.

Tablo Yetkileri Üzerinden Sızma

Kritik sistem tablolarına (örneğin, USER$, LINK$) 'UPDATE' veya 'INSERT' yetkiniz varsa, şifreleri değiştirme veya yeni admin kullanıcılar ekleme olanağına sahip olursunuz. Burada, erişim yetkilerinizi dikkatlice analiz etmek, olası bir sızma girişimini belirlemek için önemlidir.

Paket Zafiyetleri

DBMS_JAVA veya DBMS_SCHEDULER gibi paketlerdeki mantık hataları, işletim sistemi seviyesinde komut çalıştırmaya yol açabilir. İlgili komutların kötüye kullanımı için bir örnek:

BEGIN
    DBMS_SCHEDULER.CREATE_JOB (
        job_name => 'malicious_job',
        job_type => 'PLSQL_BLOCK',
        job_action => 'BEGIN /* zararlı kod */ END;',
        enabled => TRUE
    );
END;

Kötü niyetli bir kullanıcı, bu tür paketleri kullanarak sistem üzerinde yüksek yetkili 'Job'lar oluşturabilir ve RCE (Remote Code Execution) yapabilir.

Rol Hiyerarşisi Analizi

Oracle'da bir rol, başka bir rolü içerebilir (nested roles). Bu hiyerarşiyi takip ederek, dolaylı yoldan DBA yetkisine ulaşıp ulaşmadığınızı görebilirsiniz. Rol hiyerarşisini incelemek için aşağıdaki sorguyu kullanabilirsiniz:

SELECT * FROM role_role_privs;

Bu, hangi rollerin diğer roller üzerinde nasıl bir etki yarattığını gösterir.

Şifre Değiştirme ile Ele Geçirme

Eğer ALTER USER yetkiniz varsa, herhangi bir kullanıcının şifresini değiştirmek mümkündür. Aşağıdaki komut, SYSTEM kullanıcısının şifresini değiştirmek için kullanılabilir:

ALTER USER SYSTEM IDENTIFIED BY Hacked123;

Bu tür bir yetki, en kritik yetki yükseltme yöntemlerinden biridir ve dikkatle izlenmesi gerekir.

Defansif Önlemler ve İzleme

Yetki yükseltmeyi durdurmak için "En Az Yetki" prensibi uygulanmalıdır. Kullanıcılara yalnızca işlerini yapmaları için gerekli minimum yetkilerin verilmesi, güvenliği artırır. Ayrıca, kritik yetki değişiklikleri (örneğin, GRANT DBA gibi) gerçek zamanlı olarak izlenmeli ve alarm üretilmelidir.

Sistemlerde yapılacak denetim türleri, yetki değişikliklerini izlemek için kritik öneme sahiptir. Bunun için audit komutları kullanılabilir:

AUDIT ALTER USER;

Bu komut, bilgi sistemlerinde yapılan yetki değişikliklerinin kaydedilmesini sağlar ve olası tehditlerin zamanında tespit edilmesine yardımcı olur.

Bu adımlar, yetki yükseltme saldırılarına karşı daha sağlam bir savunma geliştirmeye yardımcı olmaktadır. Her aşamada dikkatli analiz ve izleme, siber güvenliğinizi artırmak için gereklidir.

Risk, Yorumlama ve Savunma

Siber güvenlik, olası tehditlerin analiz edilmesi ve bu tehditlere karşı etkili savunma stratejilerinin geliştirilmesi gereken karmaşık bir alan olup, yetki yükseltme saldırıları bu bağlamda pek çok risk barındırmaktadır. Bu bölümde, yetki yükseltme (privilege escalation) saldırılarının risklerinin yorumlanması ve bu tehditlere karşı alınabilecek savunma önlemleri üzerinde duracağız.

Mevcut Rolleri Kontrol Etme

Yetki yükseltme saldırılarını anlamak için ilk adım, mevcut oturumun sahip olduğu rollerin ve yetkilerin belirlenmesidir. Bu işlemi aşağıdaki SQL sorgusu ile gerçekleştirebiliriz:

SELECT * FROM session_roles;

Bu sorgu, kullanıcıya atanmış olan tüm rolleri listeleyecek ve potansiyel olarak zarar verebilecek her bir yetkiyi ortaya çıkaracaktır. Bu sayede, hangi kapıların açık olduğunu ve saldırganların hangi yollarla sisteme ulaşabileceğini belirleyebiliriz.

Tehlikeli Sistem Yetkileri

Bazı sistem yetkileri, doğrudan veri tabanı üzerindeki yetki ihlalleri ile sonuçlanabilir. Örneğin, Oracle veritabanında 'PUBLIC' rolüne atanan her yetki, istisnasız tüm kullanıcılar tarafından kullanılabilir. Böylece, saldırganlar bu yaygın zafiyeti kullanarak sistem üzerinde kontrol elde edebilirler. Bu bağlamda, "altın bilet" olarak tanımlanan yetkiler, veritabanının ele geçirilmesinde kritik rol oynar.

Zafiyetleri ve Etkilerini Anlamak

Risklerin daha derinlemesine bir değerlendirmesi için, sistemdeki yanlış yapılandırmalar ve potansiyel zafiyetlere odaklanmak gereklidir. Örneğin, bir SQL Injection açığı, yüksek yetkili bir kullanıcı tarafından sahip olunan bir prosedürde mevcutsa, bu güvenlik zafiyeti saldırganların anında sistem ele geçirme imkânı tanır. Bu tür bir zafiyet, aşağıdaki gibi bir komutla tespit edilebilir:

SELECT * FROM user_tab_privs WHERE table_name = 'target_table';

Eğer kritik sistem tablolarına erişim hakkınız varsa, şifre değiştirme veya yeni kullanıcı ekleme yetkisi gibi avantajlar elde edilebilir. Bu da bir sonraki aşamada daha fazla yetkiye ulaşmak için fırsatlar yaratır.

Profesyonel Önlemler ve Hardening Önerileri

Yetki yükseltmeleri ile mücadele ederken dikkat edilmesi gereken en kritik noktalardan biri, "En Az Yetki" prensibinin uygulanmasıdır. Bu prensip, kullanıcılara sadece işlerini yürütmeleri için gerekli minimum yetkilerin verilmesini amaçlar. Böylece, bir saldırganın sistem üzerindeki kontrolünü en aza indirmek mümkün olur.

Aynı zamanda, sistemdeki kritik yetki değişikliklerini izlemek ve alarm üretmek de üst düzey bir savunma mekanizmasıdır. Örneğin, aşağıdaki sorgu ile yetki değişikliklerini izleyen bir denetim türü oluşturulabilir:

AUDIT GRANT OPTION FOR ALL ON database_name;

Bu durum, potansiyel ihlalleri hızlı bir şekilde tespit etme olanağı sunarak, olası saldırıların önceden engellenmesine yardımcı olur.

Sonuç

Yetki yükseltme saldırıları, siber güvenlik tehditleri arasında önemli bir yere sahiptir. Risklerin doğru bir şekilde yorumlanması, mevcut zafiyetlerin anlaşılması ve etkili savunma stratejileri geliştirilmesi, kuruluşların güvenliğini artırmak için gereklidir. Eğitimli ve sistematik bir yaklaşım ile, bu tür tehditlerin zayıflatılması ve proaktif bir güvenlik duruşu sağlanması mümkün olacaktır.