Birçok macOS kullanıcısı, hala bilgisayarlarının korumaya ihtiyaç duymadığına inanıyor. Daha da kötüsü, çalışanları Apple donanımı kullanan şirketlerdeki çoğu sistem yöneticisi de aynı fikirde.
Black Hat ABD 2020 konferansında araştırmacı Patrick Wardle, macOS için hazırladığı kötü amaçlı yazılım analizi ve bir dizi açıktan yararlanarak bir Apple bilgisayarının kontrolünü ele geçirmesiyle izleyicilerin bu yanlış algısını kırmaya çalıştı.
Microsoft, makrolar ve Mac’ler
MacOS işletim sistemi kullanan bilgisayarlara saldırmanın en yaygın yollarından biri, kötü amaçlı makrolara sahip belgeleri kullanmaktır, yani Microsoft Office uygulamalarından faydalanmak. Aslında, Apple’ın kendi üretkenlik uygulamaları olmasına rağmen, birçok kullanıcı Microsoft Office’i kullanmayı tercih ediyor. Kimi bunu alışkanlıktan yapıyor; kimi de iş arkadaşlarının oluşturduğu belgelerle uyumlu çalışabilmek adına.
Elbette, makro içeren belgelerin oluşturduğu potansiyel tehdit uzun bir süredir herkes tarafından biliniyor. Bu nedenle, hem Microsoft hem de Apple, kullanıcıyı koruyacak yöntemlere sahip.
Microsoft, makro içeren bir belgeyi açarken kullanıcıları uyarır. Buna ek olarak, kullanıcı yine de makroyu çalıştırmaya karar verirse, makro kodu, Microsoft’un geliştiricilerine göre kullanıcının dosyalarına erişmesini veya sistemde başka bir hasara neden olmasını engelleyen korumalı bir alanda yürütülür.
Apple tarafında ise, işletim sisteminin en güncel sürümü olan macOS Catalina’da birkaç yeni güvenlik özelliği tanıtıldı. Bu özellikler, dosyanın karantinaya alınmasını ve yürütülebilir dosyaların dış kaynaklardan başlatılmasını engelleyen bir teknoloji olan “yetkili onayını” içeriyor.
Temel olarak bir araya geldiğinde bu teknolojiler, kötü niyetli makrolardan kaynaklı bir zararı önlemek için yeterli olmalıdır. Teoride, her şey oldukça güvenli görünüyor.
Bir dizi açık, makroyu korumalı alandan çıkarır
Ancak pratikte pek çok güvenlik mekanizması oldukça sorunlu bir şekilde uygulanıyor. Bu nedenle, araştırmacılar (veya saldırganlar) bunları atlatmanın potansiyel yollarını bulabilirler. Wardle da bir dizi açığı göstererek sunumunu görselleştirdi.
1. Makroları devre dışı bırakan mekanizmayı aşmak
Örneğin, bir belgede bir makro algıladığında kullanıcıyı uyaran sistemi ele alalım. Çoğu durumda sistem, geliştiricilerin amaçladığı şekilde çalışır. Ancak aynı zamanda, ayarlarda makrolar devre dışı bırakılmış olsa bile, makronun otomatik olarak ve herhangi bir kullanıcı bildirimi olmadan başlatıldığı bir belge oluşturmak da mümkündür.
Bu, Sylk (SLK) dosya formatı kullanılarak yapılabilir. XLM makro dilini kullanan format 1980’lerde geliştirildi ve en son 1986’da güncellendi. Ancak, Microsoft uygulamaları (örneğin, Excel), geriye dönük uyumluluk nedeniyle hala Sylk’i destekliyor. Bu güvenlik açığı yeni değil – 2019’da ayrıntılı olarak açıklandı.
2. Korumalı alandan (sandbox) çıkmak
Bir saldırganın bir makroyu görünmez bir şekilde çalıştırmasının mümkün olduğunu gösterdik. Ancak kod hala MS Office’in yalıtılmış korumalı alanında çalıştırılıyor. Peki bir bilgisayar korsanı bilgisayara nasıl saldırabilir? Görünüşe göre, bir Mac bilgisayarda Microsoft’un korumalı alanından çıkmak çok da zor değil.
Bilgisayarda depolanan dosyalar korumalı alandayken dosyalarda değişiklik yapılamadığı biliniyor. Ancak dosya oluşturmak mümkün. Bu açık, daha önce korumalı alandan çıkmak için kullanılmıştı ve Microsoft, bu güvenlik açığını kapatmak için bir güncelleme yayınlamıştı. Ancak, yamaya ilişkin daha ayrıntılı bir incelemenin gösterdiği gibi, sorun aslında çözülmemişti: Yama, bazı geliştiricilerin güvenli olmadığını düşündüğü yerlerden, örneğin bilgisayarı yeniden başlattıktan sonra otomatik olarak başlatılan komut dosyaları için saklama konumu olan LaunchAgents klasörü gibi, dosya oluşturulmasını engelliyordu,
Peki yamayı hazırlarken Microsoft’un tüm “tehlikeli konumları” hesaba kattığına kim karar verdi? Python dilinde yazılan, bir Office belgesinden başlatılan ve bu nedenle bir korumalı alanda çalıştırılan bir komut dosyasının, “Oturum Açma Öğesi” adlı bir nesne oluşturmak için kullanılması mümkün oldu. Bu isimdeki bir öğe, kullanıcı sistemde oturum açtığında otomatik olarak başlar. Sistem öğeyi başlatır, Microsoft’un güvenlik kısıtlamalarını aşar ve böylece öğe Office’in korumalı alanının dışında çalıştırılır.
3. Apple’ın güvenlik mekanizmalarını aşmak
Artık nasıl bir makroyu gizlice çalıştıracağımızı ve Oturum Açma Öğesi oluşturacağımızı biliyoruz. Tabii, macOS’taki güvenlik mekanizmaları, güvenilmeyen bir korumalı alan içindeki şüpheli bir işlemle sisteme girişe imkan vermiyor — değil mi?
Bir yandan evet: Apple’ın güvenlik mekanizmaları gerçekten bu şekilde oluşturulan bir kodun çalıştırılmasını engelliyor. Diğer yandan, bunun aşıldığı bir yol var: Bir ZIP dosyasına Giriş Öğesi’ni arşivlerseniz, bilgisayarınızda tekrar oturum açtığınızda sistem otomatik olarak dosyayı arşivden çıkarır.
Saldırganın yapması gereken tek şey, dosyayı çıkaracağı doğru konumu seçmektir. Örneğin arşiv dosyası, kullanıcı kütüphanesi ile aynı dizine, LaunchAgent türündeki öğelerin saklandığı dizinin bir üst dizinine yerleştirilebilir (Microsoft’un doğru bir şekilde tehlikeli olarak gördüğü). Arşivin kendisi, Launch Agent komut dosyasını içeren LaunchAgents adlı bir dizini içerebilir.
Dosya arşivden çıkarıldığında, komut dosyası yeniden başlatma sırasında çalıştırılmak üzere LaunchAgents klasörüne yerleştirilir. Güvenilir bir program (Arşivleyici) tarafından oluşturulduğu ve karantinaya alınması için gereken niteliklere sahip olmadığı için, bu dosyalar daha tehlikeli bir şeyi çalıştırmak için kullanılabilir. Güvenlik mekanizmaları bu dosyanın çalıştırılmasını engellemez.
Sonuç olarak, bir saldırgan uzaktan erişim elde etmek için Bash komut kabuğu aracılığıyla bir mekanizmayı başlatabilir (böylece bir ters yönlü kabuk elde edebilir). Bu Bash işlemi, karantinaya alınmak için gereken özelliklerden yoksun olan dosyaları indirmek için kullanılabilir, böylece saldırganın gerçekten kötü amaçlı kodu indirmesine ve herhangi bir kısıtlama olmaksızın bu dosyaları çalıştırmasına izin verir.
Özet olarak:
- Bir saldırgan, ayarlarda makro yürütme devre dışı bırakılmış olsa bile, herhangi bir uyarı görüntülemeden veya kullanıcının onayını istemeden, gizlice kötü amaçlı bir makro başlatabilir. Saldırganın ihtiyacı olan tek şey, kullanıcının bir Office belgesini indirip açmasıdır.
- Daha sonra, saldırgan sanal Microsoft Office alanından çıkabilir, bir Oturum Açma Öğesi nesnesi oluşturarak tekrar oturum açıldığında korumalı alanın dışında otomatik olarak çalıştırılan, Launch Agent klasörü içinde bulunan bir arşiv dosyası oluşturabilir.
- Saldırgan yalnızca birkaç adımda, ZIP arşivinden Launch Agent türü bir nesneyi çıkararak Apple’ın güvenlik mekanizmalarını kolayca aşabilir. Böylece, sistemin güvenlik mekanizmalarından kaçan program, kötü amaçlı kodun “saldırı” kısmını indirip çalıştırabilir.
macOS’te kötü amaçlı makrolara karşı kendinizi nasıl koruyabilirsiniz
Tabii ki araştırmacı bulgularını hem Apple’a hem de Microsoft’a bildirdi ve her iki şirket de, bunların reklamını yapmadan ve hatta güvenlik açıklarına resmi CVE tanımlayıcıları atamadan sessizce gereken yamaları yaptı. Ancak durum, güvenlik mekanizmalarının dikkatli bir şekilde incelenmesi sonucunda bu mekanizmaları aşacak yolları bulmanın gayet mümkün olduğunu gösteriyor.
Geçmişte macOS güvenli olarak görülüyordu, ancak bu, özel güvenlik mekanizmalarına sahip olmaktan çok saldırganların genel olarak bu işletim sistemini görmezden gelmelerinin bir sonucuydu. Bununla birlikte, Apple bilgisayarlar, kurumsal ortamlar da dahil olmak üzere giderek popülerleşti ve bu nedenle macOS işletim sistemini hedefleyen saldırılar, siber suçlular için çok daha ilgi çekici hale geldi.
Bu nedenle, güvende kalmak için yalnızca sisteminizi ve üzerindeki tüm yazılımları güncel tutmanız yetmez, aynı zamanda şüpheli etkinlikleri algılayıp etkisiz hale getirebilecek güvenlik çözümlerini kullanmanız gerekir. Örneğin, ürün grubumuzda macOS işletim sistemi de dahil olmak üzere hem ev kullanıcıları hem de kurumsal müşteriler için güvenlik ürünleri bulunuyor.