Oracle Password Verify Function

Database’ in güvenliği için kritik olan kısımlardan biride database’ e erişim sağlayan userların şifreleridir. Bu şifrelerin kolay tahmin edilemeyen bir kombinasyondan oluşuyor olması istenilen bir durumdur. Oracle software sunucunuza install ettiğiniz anda ORACLE_HOME altında rdbms/admin dizini altındaki utlpwdmg.sql dosyasında oracle’ ın sizin kullanabilmeniz için hazırladığı bir password verify functionını bulabilirsiniz. Bu functiondaki kurallarda aslına bakarsanız hiç editlemeye bile gerek olmadan kullanabilirsiniz, ihtiyacınızı fazlasıyla karşılayacağından emin olabilirsiniz.

Nettede baktığınız da bu konuda bir sürü yazı ve çeşitli şekillerde düzenlemiş password verify functionları bulabilirsiniz. Bir password verify functionıda ben eklemek istedim. Aşağıdaki function ile şifre oluşturulurken hangi kriterlerin dikkate alındığını function içerisindeki commetli alanlardan görebilirsiniz ;
Continue reading

Failed Logonları Nasıl Tespit Edebiliriz …

Daha önce yine bu konuyla bağlantı olduğunu düşündüğüm 2 tane yazı yazmıştım.

http://www.kamilturkyilmaz.com/2011/01/21/bilinen-adiyla-logon-trigger/
http://www.kamilturkyilmaz.com/2011/01/22/sisteme-connect-olan-%E2%80%93-olmayan-kullanicilari-tespit-etme/

Bugün sisteme girmeyi deneyip, bir şekilde giremeyen hata alan sessionları nasıl tespit edebiliriz ondan bahsetmek istiyorum. Öncelikle hata alan sessionlar ile ilgili 2 farklı durum karşımıza çıkabilir. Birincisi sisteme girmeyi deneyen user ora-01017 (invalid username/password) hatası alabilir, ikinci olarak ora-01031 (insufficient privilige) hatası alabilir. Bu tarz durumlarda hangi userın bu hatayı aldığını tespit etmek içinde aşağıdaki trigger’ ı kullanabilirsiniz ;
Continue reading

Transparent Data Encryption Opsiyonun Kullanımı (11gR2)

Transparent Database Encrytion (TDE) oracle’ ın 10gR2 versiyonu ile tanışmış olduğumuz bir opsiyondur. Temelde database içerisinde store edilen verilenen kolon, tablo veya tablespace bazında şifrelenmek suretiyle verinin istenmeyen kişiler tarafından veriye erişimin önlenerek veri güvenliğinin sağlanmasını amaçlamaktadır.

Öncelikle Oracle’ ın Wallet kullanımı ile ilgili birkaç önerisinden bahsetmek istiyourum. TDE’ i production ortamına implente edecekler için bu önerileri dikkate alarak ilerlemelerinde ciddi fayda olacaktır diye düşünüyorum. Birincisi Wallet nerde saklanacak veya saklanmalı, öncelikle kesinlikle ORACLE_BASE veya ORACLE_HOME altında olmamalıdır, çünkü zaman zaman bu path’ lerin backupı alındığında Walletında backupı alınacağından bu risk oluşturacaktır. Bunun yerine root userı ile farklı bir directory altında bir dizin create edilerek oracle userına yetki verilmesi güvenlik açısından daha faydalı olacaktır. Örneğin;
Continue reading

Oracle Initial Parametreleri

Oracle da database’ ini startup ile açmaya kalktığımız da instance ilk iş olarak parametre dosyasını okumaya çalışacaktır. Dolayısıyla temel initial parametrelerinden bahsederken bizim için çok kritik file’ lerimizden biri olan spfileSID.ora dosyasından da kısaca bahsedeceğiz.

Parametre dosyaları Linux’ da;  $ORACLE_HOME/dbs,  Windos’da $ORACLE_HOME/database  altında bulunur. Database create edilmesiyle birlikte spfileSID.ora dosyamızda oluşur.  Bunun yanısıra parametre değişikliğini database içirisinden Alter system veya Alter database ile yapmak istemediğimiz veya yapamadığımız durumlarda ise kullandığımız birde pfileSID.ora dosyamız olacaktır. Bu dosya db create operasyonu sonrasında oluşmaz, bunu create etmek için sql satırında; Continue reading

Sisteme Connect Olan Kullanıcıları Tespit Etme

 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;
Continue reading