Stajım sırasında yaptığım mobil uygulama testlerinde sık karşılaştığım Janus güvenlik açığından sizlere bahsetmek istiyorum. 2017 yılında keşfedilen JANUS güvenlik açığı, saldırganların uygulamalardaki kodları, imzalarını etkilemeden değiştirmelerine olanak sağlıyor.
Bu sorunun kökü APK dosyalarına ve DEX dosyalarına fazladan bayt ekleme olasılığından kaynaklanıyor. Yani bu açık sayesinde saldırganlar bir mobil uygulamanın içine backdoor yerleştirip yine aynı imzayla çalıştırabiliyor. Güvenli olduğunu düşünerek indirdiğiniz uygulama sizin için değil size karşı çalışıyor.
Android 5.0 (Lollipop) ve üzerindeki (Android 5.0–8.0 versiyonlarına sahip tüm cihazlar) APK imzalama mekanizmasını (v1 imzalama şeması) hedef alır. Sistem dosyayı analiz ederken sadece APK yapısına, uygulamayı yüklerken ise sadece DEX yapısına bakar. Bu durum iki yapının farklı içeriğe sahip olmasına rağmen sistemin çakışmayı fark edememesine sebep olur.
APK dosyaları aslında birer zip dosyasıdır. Android uygulamaları çalıştırılırken bu zip içindeki
classes.dex dosyasına ihtiyaç duyar. Janus, APK’nın sonuna ekstra bir DEX dosyası eklenerek
çalışır. Sistem bu eklemeyi imza hatası olarak görmez. Orijinal uygulama çalışıyor gibi görünür fakat
aslında saldırganın zararlısı devrededir.
Android cihazları mevcut yazılım sürümüne güncellemek en temel çözümdür.
Uygulama geliştiricilerinin APK'larını v2 veya v3 imzalama şemalarıyla güncellemesi gerekir.
"Janus" ismi Roma mitolojisindeki iki yüzlü tanrıdan gelir. Bir yüzü güvenli görünürken diğer yüzü zararlıdır.