Tüm Makaleler

Oracle DB Yetkili/Yetkisiz Erişimlerin Tespit Edilmesi

Ocak 10, 2012

Database’ deki kullanıcı sayısı fazla olan şirketler de bir süre sonra şöyle bir problem ortaya çıkıyor. İşe başlayan personele bir database accountu açılıyor. Sonra zaman içerisinde kimi personel ayrılıyor, kimisi yeni işe başlıyor derken ipin ucu bir noktada kaçabiliyor dolayısıyla işten ayrılmış olan personelin accountu sistemde açık olarak kalabiliyor. Buda aslında sisteminiz için bir güvenlik açığı oluşturuyor.

Peki bunu nasıl giderebiliriz? Birebir çözümü olmasa da (en azından ben öyle düşünüyorum) şöyle bir tespitte bulunabiliriz. Database’ e connect olan kullanıcıları sisteme giriş yaptığı anda tespit edip, bizim istemiş olduğumuz bazı bilgileri bir tabloya yazdırıp sonrasında sistemdeki tüm kullanıcılar ile karşılaştırıp baktığımız zaman aralığında sisteme hiç giriş yapmamış olan kullanıcıları bulabiliriz. Tabi bu kullanıcıları hemen drop etmek çok akıllıca olmayabilir, burada şu yapılabilir bu kullanıcıların  accountları locklanıp en azından araştırmak için zaman kazanılabilir. Şimdi bunun için neler yapmamız gerektiğine bakalım;

 

Önce v$sessionın tüm kolonlarını içeren bir tablo create edip, trigger da bunu kullanacğım. Aslında bu iş için v$session tablosundaki tüm kolonlara ihtiyacımız yok, siz isterseniz insert ve create table scriptini özelliştirip nesnelerinizi kolon bazında tanımlayıp create edebilirsiniz.

 

-- tablomuzu create edelim ;

 

create table kamil.logon_user as select * from v$session where 0=1

 

-- triggerımızı create edelim ;

 

create or replace trigger

   kamil.logon_user_control

AFTER LOGON ON DATABASE

BEGIN

insert into kamil.logon_user select * from  v$session ;

END;

/

 

Şimdi tablomuzu kontrol edelim, yeni gelen sessionlara ait tüm bilgileri bizim tablomuzada insert ediyor olması gerekiyor.

 

select count(*)  from kamil.logon_user ;

  COUNT(*)

----------

      1078

1 row selected

 

 Evet tablo doluyor, problem yok.

 

Şimdi yaptığımız işlemleri geri alalım. Temizlik zamanı;

drop trigger    kamil.logon_user_control ;

Trigger dropped

 

drop table kamil.logon_user ;

Table dropped

 

Umarım işinize yarar zaman zaman bu tarz bilgileri kimi uygulama sahipleri isteyebiliyor. Aslında dba’ ler olarak kimi noktalarda bizim de işimize yarıyor.  

 

Kamil Türkyılmaz

Facebook Twitter DZone It! Digg It! StumbleUpon Technorati Del.icio.us NewsVine Reddit Blinklist Add diigo bookmark

Post a comment

  1. Formatting options