Wednesday, July 03, 2013

RedHack'in Diyanet İşleri Başkanlığı hacki ve SQL Injection

SQL injection
Plaka okuyan sisteme SQL ifadesi enjekte edilerek yapılan bir SQL injection

Dün akşam RedHack, Diyanet İşleri Başkanlığı kurum sistemlerinde bir "hack" gerçekleştirdi. Ancak bu tam anlamıyla hack değildi.
Bunun tam anlamıyla hack olmadığını söylememin nedeni oldukça uzun zamandır pek çok kişice bilinen (belki 20 yıldan fazla ama en az 20 yıl) bir yöntemin kullanılmış olması, SQL Injection. Bu hackte SQL Injection'un en basit hali, bir lamerin bile kullanabileceği yöntem kullanıldı. Bu cümledeki ifade elbette ki RedHack'in lamer topluluğu olduğunu söylediğim anlamına gelmiyor, Diyanet İşleri Başkanlığı'nın ilgili sistemlerini kodlayan "yazılımcı"nın lamerlerin bile saldırısına açık güvensiz bir sistem kodladığı anlamına geliyor.



SQL Injection nedir?


SQL Injection, bir sistemdeki SQL querye, SQL querye parametre gönderen form vb. aracılığı ile SQL querye istenen amacı sağlayacak bir SQL ifadesi "enjekte" edilerek SQL queryin manipüle edilmesidir ve ciddi bir güvenlik açığıdır.

Örnek olarak, bir sisteme kullanıcı girişi yapan bir SQL query kabaca şöyledir,

"SELECT * FROM users WHERE username='username' AND password='password'";


Şimdi burada username ve password yerine ' OR '1'='1 gönderirsek SQL querymiz şu şekli alıyor,

"SELECT * FROM users WHERE username='' OR '1'='1' AND password='' OR '1'='1'";


Username boş veya 1 eşittir 1 ve password boş veya 1 eşittir 1.

Bu ifade 1=1 olsa da olur anlamına geldiğinden, 1=1 olduğundan sisteme giriş yapılabiliyor.

RedHack'in Diyanet İşleri Başkanlığı hackinde de tam olarak kullanılan buydu. Türkiye'de bilgi güvenliği ne yazık ki TÜBİTAK'tan öteye gidebilmiş değil ve yıl olmuş 2013, hâlâ şifresini 123456 yapan var azizim!

No comments:

Post a Comment