Oracle Enable/Disable Unified Audit

Merhaba arkadaşlar, bu yazıda oracle veritabanlarında unified auditing özelliğini açmayı göstereceğim. Unified özelliğinin açılması sunucu üzerinde bulunan tüm veritabanlarının kapalı olması gerekmektedir.

Veritabanı üzerinde unified auditin açık olup olmadığı kontrol aşağıdaki gibi yapılabilir.

SQL> SELECT VALUE FROM V$OPTION WHERE PARAMETER = 'Unified Auditing';
VALUE
-------
NO

Unified audit özelliği aşağıdaki şekilde açılır.

$ cd $ORACLE_HOME/rdbms/lib
$ make -f ins_rdbms.mk uniaud_on ioracle

İşlem sonrasında unified audit özelliği açılmış olacaktır.

SQL> SELECT VALUE FROM V$OPTION WHERE PARAMETER = 'Unified Auditing';
VALUE
-------
YES

Veritabanı üzerinde bulunan logları aşağıdaki şekilde purge edebilirsiniz.

BEGIN
DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL(
audit_trail_type =>  DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED,
use_last_arch_timestamp =>  FALSE);
END;
/ 

OS üzerinde bulunan auditleri aşağıdaki şekilde purge edebilirsiniz

EXEC DBMS_AUDIT_MGMT.DROP_PURGE_JOB('CLEANUP_OS_DB_AUDIT_RECORDS');
BEGIN
DBMS_AUDIT_MGMT.DEINIT_CLEANUP(
AUDIT_TRAIL_TYPE   => DBMS_AUDIT_MGMT.AUDIT_TRAIL_ALL);
END;
/

Son olarak açık olan unified audit aşağıdaki gibi kapatılabilir.

$ cd $ORACLE_HOME/rdbms/lib
$ make -f ins_rdbms.mk uniaud_off ioracle 
SQL> SELECT VALUE FROM V$OPTION WHERE PARAMETER = 'Unified Auditing';

VALUE
-------
NO

Veri Bilimi ile Saldırı Tespiti

Bu yazımda sunuculara brute force attack ve sql injection gibi yöntemler ile sızmaya çalışan kullanıcıları tespit etmek için kullandığım yöntemi sizinle paylaşacağım.

Bu yöntem sayesinde sunucu güvenliğini arttırıp aylık olarak bana atanmış bandwidth’ten tasaruf edebiliyorum. En önemlisi ise sunucunun sürekli ataklara cevap vermesini engelleyip gerçek isteklere cevap verme süresini arttırıyorum.

Öncelikle bu saldırıları anlamak için Python ile sunucunun log dosyalarını okuyup veritabanına kaydeden bir script hazırladım. Bu script sayesinde logları istediğim şekilde parse edip anlamlı hale getirebiliyorum.

Veritabanına kaydettiğim logları Metabase uygulamasını kullanarak görselleştiriyorum.

Aşağıdaki görselde sunucuya gelen isteklerin sayısını görebilirsiniz. Bu görsel 15 günlük trafiği göstermektedir.

tüm trafik

Bu görselde tüm trafik gösterilmektedir. Görüldüğü üzere gece 12-01 arasında anormal bir artış görünmektedir. Tabi bu trafiğik normal olabilir. Anormal istekler trafiğin yüksek olduğu saatlerde olacak diye bir şey söz konusu değil. Günün o saatinde trafiği arttıracak reklam verilmiş olabilir. Anormal istekleri çektiğimizde bunu anlayacağız.

Anormal istekleri görüntülediğimizde aşağıdaki gibi bir grafik çıkmaktadır. Bu grafik sunucuya yapılan isteği ve bu isteğin sunucu tarafında bir karşılığı olmadığını göstermektedir.

anormal trafik

Gördüğünüz gibi 20:11 sularında toplamda anormal 700 istek gönderilmiş. Bu iki grafiği birleştirdiğimizde farklı zamanlarda atak yapıldığı sonucuna varabiliriz. (Her renk farklı günü göstermektedir) Atak yapılan zamanları aşağıdaki gibi işaretleye biliriz.

anormal sayılabilecek değerler

Bu da demek oluyor ki saldırı zamanı her gün bir önceki güne göre 1 er saat ileriye atılıyor.

Anormal isteklerli kullanıcı bazında görselleştirdiğimiz zaman aşağıdaki gibi bir grafik çıkmaktadır.

kullanıcı bazında anormal trafik

Gördüğünüz gibi ortalama 4 günde bir farklı iplerden ve 1 er saat öteleyerek sunucuya anormal istekler yapılıyor. Bir ip’yi ele aldığımızda yapılan istekler aşağıdaki gibidir. Bu konudaki çıkarımlarımız tutarlı olmuş oldu 🙂

anormal istekler

Ataklardan korunmak için kullandığım yöntemleri başka bir blog yazımda ele alacağım.

Bu tür analizleri firmalarda yapmaktayım. Eğer sizin de bu tür analizlere ihtiyacınız varsa (kesinlikle vardır 🙂 ) benimle iletişime geçebilirsiniz.