CyberFlow Logo CyberFlow BLOG
Oracle Pentest

Oracle Veri Sözlüğü ve Sistem Tablolarının Derinlemesine Analizi

✍️ Ahmet BİRKAN 📂 Oracle Pentest

Oracle veri sözlüğü ve sistem tablolarını analiz ederek sızma testlerinde elde edilecek kritik verileri öğrenin.

Oracle Veri Sözlüğü ve Sistem Tablolarının Derinlemesine Analizi

Bu blog yazısında, Oracle veri sözlüğü ve sistem tablolarının analizi ile sızma testlerinde kritik verilerin nasıl elde edileceğini ele alıyoruz. Güvenlik sıkılaştırma süreçlerine dair ipuçları sunuyoruz.

Giriş ve Konumlandırma

Giriş

Siber güvenlik alanında, verinin korunması ve sistemin güvenliği kritik öneme sahiptir. Bu bağlamda, özellikle veritabanlarının güvenliği, veri tabanı yöneticileri ve sızma testi uzmanları için vazgeçilmez bir priorite olarak karşımıza çıkmaktadır. Oracle veri tabanı, karmaşık yapısı ve geniş özellik seti ile dikkat çeken sistemlerin başında gelir. Ancak, bu karmaşıklık aynı zamanda bazı zafiyetlerin de ortaya çıkmasına yol açabilir. Bu noktada, Oracle veri sözlüğü ve sistem tablolarının derinlemesine analizi, potansiyel güvenlik açıklarını keşfetmek ve sistemin güvenliğini sağlamak adına büyük bir öneme sahiptir.

Oracle Veri Sözlüğü Nedir?

Oracle veri sözlüğü, veritabanı yapısını tanımlayan, yönetim işlemleri için gerekli olan bilgiler sunan, depolanan verilerin meta verilerini içeren bir bileşendir. Bu sözlük, kullanıcılara, tabloların, görünümlerin, kullanıcıların ve yetkilerin yönetilmesi açısından kritik bilgiler sağlar. Örneğin, bir veritabanının nasıl yapılandırıldığını anlayabilmek için, bu veri sözlüğünün hiyerarşisini kavramak esastır. Veri sözlüğü, genellikle üç ana ön ek ile organize edilir: USER_, ALL_ ve DBA_. Her bir ön ek, kullanıcının erişim seviyesine göre değişkenlik gösterir ve bu erişim seviyeleri, sızma testleri için kritik veriler sunabilir.

Neden Önemli?

Veri sözlüğü ve sistem tablolarının analizi, güvenlik açısından çok sayıda yarar sağlar:

  1. Hassas Bilgilerin Korunması: Veritabanları, genellikle gizli ve hassas bilgiler barındırır. Veri şifreleme politikaları, cüzdan durumu gibi kritik veriler, belirli sistem görünümlerinde saklanır. Bu tür bilgilerin analizi, yetkisiz erişimlerin önlenmesi açısından hayati öneme sahiptir.

  2. Yetki ve Rol Analizi: Sızma testlerinde kritik olan, hangi kullanıcıların hangi yetkilere sahip olduğunu anlamaktır. Örneğin, DBA_SYS_PRIVS görünümünü kullanarak, "SUPERUSER" yetkisine sahip kullanıcıları tespit etmek mümkündür.

  3. Dinamik Performans Bilgileri: V$ ile başlayan görünümler, gerçek zamanlı bilgi sunarak oturum ve trafik bilgilerini analiz etmemizi sağlar. Bu tür bilgiler, sızma testleri esnasında anlık riskleri değerlendirmemize yardımcı olur.

Siber Güvenlik Bağlamında Önemi

Veritabanı saldırılarında, çoğu zaman saldırganların hedefi, veri sözlüğündeki kritik bilgilerdir. Saldırganlar, korumasız nesne ve yetkiler aracılığıyla sisteme erişim sağlamaya çalışır. Dolayısıyla, veri sözlüğü analizinin yapılması, potansiyel bir saldırı girişimini önlemede etkili bir savunma mekanizması oluşturur.

Teknik İçeriğe Hazırlık

Bu blog yazısı, yazının devamında detaylı bir şekilde incelenecek olan Oracle veri sözlüğü ve sistem tablolarının analizine ışık tutacaktır. Analiz, veri sözlüğü hiyerarşisi, görünüm ön ekleri, hassas görünümler, kullanıcı yetki analizi ve daha fazlasını kapsayacaktır. Burada, tamamlayıcı örnekler ve sorgular ile okuyucunun karşılaşabileceği potansiyel riskler ve bunların nasıl minimize edileceği konusunda bilgi edinmesi hedeflenmektedir.

Bu bağlamda, okuyucular, veri tabanlarının ve sistem tablolarının nasıl işlediğini ve bu bilgilerin sızma testleri için nasıl kullanılabileceğini anlamada önemli bir zemin kazanacaklardır. Bu teknik detaylar ve uygulamalar ile okuyucular, hem sızma testleri gerçekleştirebilir hem de mevcut sistemlerini daha güvenli hale getirebilirler.

Teknik Analiz ve Uygulama

Veri Sözlüğü Hiyerarşisini Anlama

Oracle veri sözlüğü, veritabanı yönetim sistemi üzerinde mevcut olan tüm nesnelerle ilgili detaylı bilgi sunmak amacıyla yapılandırılmış bir dizi görünümden oluşur. Bu görünüm hiyerarşisi genellikle üç ana ön ek üzerinden sınıflandırılır: USER_, ALL_ ve DBA_. Her biri, kullanıcının veri tabanındaki görünüm mesafesini belirler.

Örneğin, USER_ ön eki sadece oturum açan kullanıcının sahip olduğu nesneleri gösterirken, ALL_ kullanıcıya ait olan ve erişim iznine sahip olduğu nesneleri sunar. DBA_ ön eki ise veri tabanındaki tüm nesneleri listeleyerek, genel bir yönetim görünümüne olanak sağlar. Bu bilgi, sızma testleri esnasında yetki seviyelerini belirlemek için kritik öneme sahiptir.

SELECT * FROM dba_objects WHERE object_type = 'TABLE'; 

Belirli bir nesne üzerinde herhangi bir yetki talep ederken, bu hiyerarşiyi göz önünde bulundurmak, hedefinizin seviyesini anlamak açısından son derece faydalıdır.

Görünüm Ön Ekleri ve Kapsamlar

Görünümler, veri tabanındaki tablolardan belirli veri setlerini almak ve belirli izinler doğrultusunda sunmak için kullanılır. Aşağıda bu kapsamdaki görünüm ön ekleri ve tanımları yer almaktadır:

  • USER_: Kullanıcının yalnızca kendi nesneleri
  • ALL_: Kullanıcının erişim yetkisine sahip olduğu tüm nesneler
  • DBA_: Veri tabanındaki tüm nesneler

Bu ön eklerin doğru bir şekilde kullanılması, sorgulama sırasında veri erişim kontrolünü sağlamak açısından önemlidir. Kullanıcı yetkilerini ve hangi görünümlerin sorgulanabileceğini belirlemek için bir sistem sorgusu gerçekleştirmek faydalı olacaktır.

Hassas Görünümleri Keşfetme

Veri tabanının belirli görünümleri, hassas bilgilerin saklandığı yerlerdir. Örneğin, veri tabanı şifreleme durumları veya cüzdan (wallet) gibi kritik bilgiler, belirli sistem görünümlerinden alınabilir. Aşağıdaki sorguyla, Oracle veri tabanındaki şifreleme durumunu kontrol edebilirsiniz:

SELECT * FROM v$encryption_wallet;

Bu sorgu, dizin içinde gerçekleşen şifreleme işlemlerinin durumunu ve yapılandırmasını görmek için kullanılabilir.

Kullanıcı Yetki ve Rol Analizi

Kullanıcıların hangi yetkilere sahip olduğunu ve bu yetkilerin ne şekilde atandığını belirlemek, her sızma testi için kritik bir adımdır. Özellikle DBA_SYS_PRIVS görünümü, kullanıcıların sahip olduğu sistem yetkilerini analiz etmek için kullanılır. Örneğin, sınırsız tablo alanı yetkisine sahip kullanıcıları listelemek için aşağıdaki sorgu kullanılabilir:

SELECT grantee FROM dba_sys_privs WHERE privilege = 'UNLIMITED TABLESPACE';

Bu, potansiyel bir saldırının başlangıç noktası olabileceği için önemlidir.

Dinamik Performans Görünümleri (V$)

Oracle veri tabanında dinamik performans görünümleri, gerçek zamanlı olarak sistem durumu ve kullanıcı oturumları hakkında bilgi sağlamaktadır. Bu görünümler bellekte tutulduğundan, diskin ötesinde hızlı sorgulama imkanı sunar. Örnek olarak, bağlı kullanıcı bilgilerini almak için V$SESSION görünümünü kullanabiliriz:

SELECT * FROM v$session;

Gerçek zamanlı bilgiler, özellikle yönetim giderlerini azaltmak ve sistemin mevcut sağlık durumunu izlemek için kullanılır.

Obje Bağımlılık Analizi

Bir görünümün hangi tablolardan destekte bulunduğu hakkında bilgi sahibi olmak, hassas verilerin asıl kaynağına ulaşmak açısından faydalı olacaktır. ALL_DEPENDENCIES görünümü, nesne bağımlılıklarını listelemek için kullanılır:

SELECT * FROM all_dependencies WHERE referenced_type = 'TABLE';

Bu sorgu, ilgili nesnelerin birbirleriyle olan ilişkisini aydınlatarak, güvenlik açıklarını belirleme konusunda yol gösterici olabilir.

Kritik Sistem Tabloları (Açık İsimler)

Oracle veri tabanında kritik sistem tabloları, veri tabanı yöneticisine önemli bilgiler sunar. Örneğin, OBJ$, sistemdeki tüm nesnelerin temel listesini tutmaktadır. Aşağıda yer alan sorgu, genel bir nesne listesi çıkarırken kullanılabilir:

SELECT * FROM obj$;

Bu tür tabloların analizi, güvenlik durumunu güçlendirmek ve potansiyel riskleri azaltmak için uygun bir temel oluşturur.

Denetim (Audit) İzleri

Saldırıların algılanmasında kritik bir rol oynayan denetim izleri, kullanıcı aktivitelerini izlemek için yüksek önem taşır. DBA_AUDIT_TRAIL görünümü, standart denetim kayıtlarının saklandığı yerdir. Aşağıdaki sorgu ile bu verilere erişim sağlanabilir:

SELECT * FROM dba_audit_trail;

Bu veriler, yapılan denetimleri değerlendirerek, hangi eylemlerin gerçekleştirildiğini anlamak açısından değerlidir.

Gizli Parametrelerin Analizi

Oracle veri tabanında bazı parametreler, güvenlik ayarlarını değiştiren kritik bilgiler barındırır ve genellikle istenmeyen şekillerde göz ardı edilir. X$ tablosunu kullanarak gizli parametreleri listelemek için aşağıdaki sorgu kullanılabilir:

SELECT ksppinm FROM x$ksppi WHERE ksppinm LIKE '/_%' ESCAPE '/';

Bu tür parametrelerin analizi, veri tabanı güvenliğini artırma adına önemli bir adımdır.

Sonuç

Oracle veri sözlüğü ve sistem tabloları, sızma testleri sırasında kritik bilgiler sunar. Bu bilgilerin doğru bir şekilde yorumlanması ve analize tabi tutulması, veri güvenliğini artırmak ve sisteme yönelik potansiyel tehditleri minimize etmek için önemlidir. Her bir adım, sızma testinin kapsamını zenginleştirmekte ve güvenlik sıkılaştırma (hardening) aşamasında enerji tasarrufuna olanak tanımaktadır.

Risk, Yorumlama ve Savunma

Risk Analizi ve Yorumlama

Oracle veri sözlüğü ve sistem tabloları, veri tabanı yönetim sistemleri üzerinde kritik bilgilerin depolandığı alanlardır. Bu tablolar üzerinde gerçekleştireceğiniz analiz süreçleri, sızma testi kapsamında elde edeceğiniz bulguların güvenlik anlamını yorumlayabilmek açısından büyük önem taşımaktadır. Aşağıda, bu süreçlerde dikkate almanız gereken temel riskler ve bunların yorumlamalarına dair kapsamlı bilgiler sunulmaktadır.

Yanlış Yapılandırmalar ve Zafiyetler

Oracle veri tabanı, yanlış yapılandırmalar nedeniyle çeşitli zafiyetler barındırabilir. Örneğin, sistemdeki O7_DICTIONARY_ACCESSIBILITY parametresinin yanlış bir şekilde ayarlanması, uygulama kullanıcılarının kritik verilere erişimi konusunda büyük riskler oluşturabilir. Aşağıda bu parametre üzerinde nasıl bir sorgulama yapabileceğinize dair bir örnek verilmiştir:

SHOW PARAMETER O7_DICTIONARY_ACCESSIBILITY;

Eğer sonuç "TRUE" ise, kullanıcılar sistem veri sözlüğüne erişebiliyorsa, bu durum siber saldırganların hassas verilere ulaşmasını kolaylaştırabilir. Ek olarak, yetkisiz kullanıcıların DBA_SYS_PRIVS üzerinden "SUPERUSER" yetkisine sahip olan kullanıcıları tespit etmesi, daha büyük güvenlik açıklarına neden olabilir.

Elde Edilen Verilerin Yorumlanması

Veri tabanındaki çeşitli görünüm ve sistem tablolarından elde edilen bilgiler, saldırganların hedeflerini belirlemesine olanak tanır. Örneğin, V$SESSION görünümü, aktif oturumları ve bunların kaynağını gösterirken, V$SQL görünümü son çalıştırılan SQL sorgularını sunar. Bu tür bilgiler, bir saldırganın hangi kullanıcıların ve hangi araçların kullanıldığını anlamasına yardımcı olur.

Kritik Sistem Tabloları

Kritik sistem tabloları içerisinde yer alan USER$, kullanıcı bilgilerini içeren en kritik tablodur. Bu tablodaki bilgilerin açığa çıkması, kullanıcı kimliklerinin çalınması veya kötü niyetli kullanıcıların sisteme sızması gibi sonuçlar doğurabilir. Kullanıcı yetkileri hakkında bilgi almak için aşağıdaki gibi bir sorgulama yapılabilir:

SELECT * FROM dba_sys_privs WHERE grantee = 'KULLANICI_ADI';

Sonuç olarak, sistem tabloları ve görünüm analizleri, hassas verilerin nereden geldiği hakkında önemli ipuçları sunmaktadır. Tablolar üzerindeki bağımlılıkları anlamak için ALL_DEPENDENCIES görünümü kullanılabilir, bu da önemli güvenlik bilgilerine erişim sağlayabilir.

Savunma Önlemleri ve Hardening Önerileri

Elde edilen bulgular doğrultusunda, sızma testi sürecinde ortaya çıkan zafiyetler için kapsamlı önlemler almak gerekmektedir. İşte bazı öneriler:

  1. Yetki Yönetimi: Kullanıcıların erişim yetkileri düzenli olarak gözden geçirilmeli ve "PUBLIC" rolüne gereksiz yere genişletilmiş yetkiler verilmemelidir.

  2. Gizli Bilgilerin Korunması: Veri tabanı şifreleme politikaları (TDE) etkinleştirilmeli ve bu konuda gerekli yapılandırmalar sıkı bir şekilde uygulanmalıdır.

  3. Denetim İzleri: DBA_AUDIT_TRAIL görünümünden faydalanarak, denetim izleri düzenli olarak kontrol edilmeli ve potansiyel bir tehdit durumunda erişim detayları analiz edilmelidir.

  4. Gizli Parametreler: X$ tablosunda yer alan gizli parametreler dikkatlice incelenmeli ve uygunsuz bir kullanım durumu tespit edilirse gerekli ayarlamalar yapılmalıdır.

Sonuç

Oracle veri sözlüğü ve sistem tablolarının derinlemesine analizi, veri tabanı yöneticilerine ve güvenlik uzmanlarına çeşitli risk alanlarını gösterir. Yanlış yapılandırmalar ve erişim kontrolü yetersizlikleri, potansiyel tehditlere yol açabilir. Elde edilen bulguların dikkatlice değerlendirilmesi ve uygun önlemlerin alınması, bu tehditlerin bertaraf edilmesine yardımcı olacaktır. Kapsamlı bir güvenlik sıkılaştırma süreci, veri tabanı güvenliğini artırarak organizasyonel riskleri minimize etmek için kritik öneme sahiptir.