Hatali şifre girişi yaparak kullanıcı hesabının kilitlenmesine sebep olan kullanıcıların tespiti

29 May by Ahmet Duruöz

Hatali şifre girişi yaparak kullanıcı hesabının kilitlenmesine sebep olan kullanıcıların tespiti

Kullanıcı profilindeki  “Failed login attempts” değeri unlimited değilse , bu değer kadar hatalı şifre girişi yapıldığında kullanıcı hesabı kilitlenecektir. Bu durumda hangi sunucu yada kullanıcılardan hatalı şifre gönderildiğinin tespit edilmesi gereklidir. Sonrasında gerekli değişikliği yaparak hatalı şifre gönderilmesinin önüne geçebiliriz.

Bu durum bir atak olarak da karşımıza çıkabilir. Kullanıcı hesabı açıldıktan çok kısa bir süre sonra tekrar kilitleniyorsa muhtemelen birileri brute force atağı gerçekleştiriyordur.

Öncelikle kullanıcının hesabının ne zaman kilitlendiğini tespit ediyoruz.

SQL> col profile for a30
SQL> col username for a30
SQL> col account_status for a20
SQL> SELECT username, account_status,lock_date, PROFILE FROM dba_users WHERE username='ADURUOZ';

USERNAME		       ACCOUNT_STATUS	    LOCK_DATE	       PROFILE
------------------------------ -------------------- ------------------ ------------------------------
ADURUOZ		               LOCKED(TIMED)	    29-MAY-17	       DEFAULT

Sonrasında aşağıdaki sorgu ile hangi tarihlerde kimlerin hatalı şifre gönderdiğini tespit ediyoruz.

SELECT
  TO_CHAR(TIMESTAMP,'MM/DD HH24:MI') TIMESTAMP,
  SUBSTR(OS_USERNAME,1,20) OS_USERNAME,
  SUBSTR(USERNAME,1,20) USERNAME,
  SUBSTR(TERMINAL,1,20) TERMINAL,
  ACTION_NAME,
  RETURNCODE,
   OS_USERNAME,
   USERNAME,
   USERHOST  
FROM
  SYS.DBA_AUDIT_SESSION
WHERE
  RETURNCODE=1017
  AND USERNAME LIKE 'ADURUOZ%'
  AND TIMESTAMP BETWEEN SYSDATE-1 AND SYSDATE
ORDER BY
  TIMESTAMP DESC;

Sorgudaki RETURNCODE değerinin 1017 olması , hatalı şifre gönderen kullanıcıları belirtir. Bazı önemli değerler aşağıdaki gibidir. Sorgu sonucunda  kimlerin hangi host üzeirnden ne zaman hatalı şifre gönderdiğini görebiliriz.

RETURNCODE=0 – Başarılı giriş yapıldığını gösterir
RETURNCODE=1017 – Hatalı şifre gönderildiğini gösterir
RETURNCODE=28000 – Giriş yapılmaya çalışılan kullanıcının kilitli olduğunu gösterir. 
RETURNCODE=28001 – Giriş yapılmaya çalışılan kullanıcının şifresinin expired olduğunu gösterir. 

Diğer returncode değerlerinin ne anlama geldiğiniz aşağıdaki şekilde görebilirsiniz.

[oracle@oradb~]$ oerr ora 28002
28002, 00000, "the password will expire within %s days"
// *Cause:   The user's account is about to about to expire and the password
//           needs to be changed
// *Action:  change the password or contact the DBA

 

Hatalı şifreden dolayı hesap kilitlendi ise ilgili hesabı aşağıdaki gibi tekrardan açabiliriz.

SQL> alter user ADURUOZ account unlock;

User altered.

 

Loading

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir