1.449 Oracle Yaması Bile Yetmedi: Saldırganlar Veritabanının Meşru Özelliklerini Kullandı
Oracle’ın temmuz ayında yayınladığı 1.449 güvenlik yaması, kapsamı açısından dikkat çekerken Huntress tarafından incelenen bir saldırıda söz konusu güncellemelerin tamamı uygulanmış olsaydı bile kimlik bilgisi hırsızlığı engellenemeyecekti. Saldırganlar, internete açık bir web uygulamasındaki SQL enjeksiyon açığını kullanarak Oracle veritabanına ulaştıktan sonra veritabanının Java çalıştırma yeteneklerinden yararlandı. Olay, kurumsal sistemlerde yalnızca güvenlik açıklarını kapatmanın yeterli olmadığını, kullanılmayan ayrıcalıkların da üretim ortamlarında sınırlandırılması gerektiğini gösterdi.
Saldırganlar Oracle Veritabanına Java Kodunu Doğrudan Yükledi
Huntress tarafından temmuz ayında incelenen olay, internete açık bir web uygulamasında bulunan SQL enjeksiyon açığının kötüye kullanılmasıyla başladı. Saldırgan, ilk erişimin ardından Oracle veritabanına Java kaynak kodu yerleştirmek için “khunt” adı verilen bir saldırı sonrası aracından yararlandı. Huntress, Java kodunun veritabanı içinde doğrudan derlenip çalıştırılabilmesini saldırının en sıra dışı unsurlarından biri olarak değerlendirdi.
Oracle Database, Java Virtual Machine (JVM) bileşenini desteklediği için kullanıcılar Java kaynak kodlarını veritabanında nesne olarak saklayabiliyor. Saldırganlar da CREATE JAVA SOURCE komutlarını Tomcat üzerinden veritabanına göndererek Java kodunu veritabanının kendi çalışma ortamında derletti. Böylece saldırı zinciri, geleneksel bir dosya yükleme veya ayrı bir sunucuya zararlı yazılım yerleştirme yönteminden farklı bir teknikle ilerledi.
Huntress, Oracle içinde Java kodu çalıştırmaya dayanan yaklaşımın tamamen yeni olmadığını ancak gerçek saldırılarda kullanımının nadir şekilde belgelendiğini belirtti. Güvenlik araştırmalarında daha önce “oraexec” adıyla ilişkilendirilen teknikler, veritabanının yalnızca veri depolayan bir katman olmadığını ve yanlış yapılandırıldığında saldırı yüzeyini genişletebildiğini ortaya koyuyor.
Oracle’ın yayınladığı güvenlik yamaları temel olarak bilinen yazılım kusurlarını gidermeye yönelirken Huntress tarafından incelenen olay, çalışan bir özelliğin yetkisiz şekilde kullanılmasına dayanıyordu. Spinnaker Support siber güvenlik sorumlusu Craig Savage, sistem tamamen güncel olsaydı bile saldırının gerçekleşebileceğini çünkü olayın Oracle yazılımındaki yamalanmamış bir güvenlik açığından kaynaklanmadığını belirtti.
Oracle veritabanında Java çalıştırma yeteneğinin üretim sistemlerinde gereksiz yere açık bırakılması, saldırganın mevcut işlevlerden yararlanmasına alan sağladı. Bir veritabanı yöneticisinin Java kaynak kodu derleme yetkisini yalnızca ihtiyaç duyulan geliştirme veya bakım dönemlerinde etkinleştirmesi, saldırı zincirinin sonraki aşamasını ciddi biçimde sınırlandırabilecek bir güvenlik önlemidir.
SQL enjeksiyonu da saldırının ilk aşamasında kritik rol oynadı. Web uygulamalarının kullanıcı girdilerini güvenli biçimde işleyememesi, saldırganların veritabanına beklenmeyen SQL komutları göndermesine yol açabiliyor. Parametreli sorgular, uygun giriş doğrulaması, düşük ayrıcalıklı veritabanı hesapları ile uygulama katmanındaki erişim kontrolleri SQL enjeksiyonuna karşı temel savunma mekanizmaları arasında bulunuyor.
Savage’ın değerlendirmesine göre siber suç grupları yalnızca ürünlerdeki güvenlik açıklarını araştırmakla yetinmiyor. Saldırganlar, kurumsal yazılımlarda normal koşullarda meşru kabul edilen işlevlerin yanlış yapılandırıldığında nasıl kötüye kullanılabileceğini de incelemeye başlıyor.
Veritabanı içindeki Java çalışma ortamı bu yaklaşımın somut örneklerinden birini oluşturuyor. Bir kurum güvenlik güncellemelerini eksiksiz uygulasa bile web sunucusunun gereksiz biçimde yüksek ayrıcalıklara sahip olması veya üretim veritabanında kod derleme yeteneğinin açık bırakılması saldırı riskini koruyabiliyor.
Bu yaklaşım güvenlik ekiplerinin yama yönetimini bırakması gerektiği anlamına gelmiyor. Güvenlik yamaları bilinen açıkların kapatılması için temel savunma katmanını oluştururken erişim yetkilerinin azaltılması, gereksiz servislerin kapatılması, uygulama ile veritabanı arasındaki ayrıcalıkların sınırlandırılması ve üretim ortamlarının sıkılaştırılması farklı bir güvenlik katmanı sağlıyor.
Kurumsal Oracle ortamlarında Java özelliklerinin yalnızca gerçekten ihtiyaç duyulan kullanım senaryolarında etkinleştirilmesi saldırı yüzeyini azaltan temel kontrollerden biri olarak öne çıkıyor. Veritabanı yöneticileri ayrıca uygulama sunucularının doğrudan veritabanında kod oluşturmasına izin veren yetkileri gözden geçirerek web katmanından veritabanına uzanan saldırı zincirlerini sınırlandırabilir.
Üretim sistemlerinde en az ayrıcalık ilkesi, uygulamaların yalnızca görevleri için gereken veritabanı izinlerine sahip olmasını gerektiriyor. DBA hesaplarının uygulamalardan ayrılması, Java kaynak kodu oluşturma veya derleme yetkilerinin sınırlandırılması, veritabanı etkinliklerinin izlenmesi ile olağandışı CREATE JAVA SOURCE komutlarının tespit edilmesi savunma katmanını güçlendirebilir.
Huntress tarafından ortaya çıkarılan olay, yama sayısının tek başına bir sistemin güvenlik seviyesini göstermediğini ortaya koyuyor. Kurumların Oracle gibi kritik altyapılarda güvenlik güncellemelerini uygularken aynı anda yapılandırma denetimleri, ayrıcalık yönetimi, uygulama güvenliği ve veritabanı etkinlik izleme süreçlerini birlikte yürütmesi gerekiyor.








