@datafex;
Sabahtan beridir herkesin soruları ile ilgilenmeye çalışıyorum. Herkese cevap verip bu konu hakkında ayrı ayrı bilgilendirmeler yapıyorum. Bu sebeple tahmin edersiniz ki çok yoruldum ve bazı uçuk kaçık şeyleri görmezden geliyorum.
Olayı kendi açınızdan gerçekten çok güzel özetlemişsiniz. Tarafsız bir yorum olmuş ve derin analizler sonucu bu yorumu yaptığınız çok belli oluyor.
Yazılan şeylerde o kadar çelişkiler var, o kadar uçuk kaçık teoriler var ki kimsenin kalbini kırmamak için, hiç bir şey demiyorum sabahtan beridir. Olay artık pembe diziye döndü.
Bende kendime yazılımcı diyorum, o yüzden size şöyle açıklayayım;
- Framework biliyorsunuzdur, bu framework'lerın içinde bazı yazılımcılar kendi iskeletlerini oluşturuyor. Framework bazlı bir açık çıktığında ise sorunu, framework yerine o framework'ün üstüne giydirilen yazılıma atmak gerçekten art niyetli bir davranış ki ben bunun açıklamasını yapıyorum.
- Veri tabanı sorgusu ile ssh üzerinden bağlanıp rm -rf komutları vs çalıştırmak gerçekten her kişinin yapacağı bir şey değil. Dünya'da bir ilktir ve belki bana özel çıkmıştır bu açık.
Bu konuları daha fazla da uzatmayacağım. Çünkü ben ne desem ama şöyle yapmıştılar, ama böyle olmuştu deneceği için ve günah keçisi olarak ben seçildiğim için kendimi yormama gerek yok.
Bir yazılımcı olarak şunu bilmiyorsunuz ki, herhangi bir yazılımda bir açığın ayyuka çıkması için o açığın kullanılması gerekiyor. 1000 tane yazılım elemanı olan şirketler bile sistemlerinde açık olduğunu, açık kullanıldıktan sonra anlıyor. Ki siz diyorsunuz ki bana açığı olmadan önce bulmalısınız, para veriyorlarsa vs vs. Gerçekten bu yazdıklarınız ile daha önce bir yazılım yaptığınızdan şüpheliyim.
Ben, açık kaynak kodlu bir yazılımı alıp üstüne bazı özellikler ekledim. Firmalar ise bu özellikler için bana ücret ödedi. Yani beni alakadar eden eklediğim bu özellikler. Komple Framework'ü, Açık kaynak olan yazılımı nerede ne sorun var ise hepsini bana bağlamak gerçekten çok Ahlaklı bir davranış.
Benim burada yaptığım bir hata var ise o da firmalara "frameworkünüzü güncel tutun" diye uyarıda bulunmamam. Bunun haricinde benim sorumluluğumda olan bir şey yok.
Daha da gerçekten cevap vermeyeceğim. Bu konuda muhatap alınabilecek tek türk ben olduğum için böyle bir linç girişiminde bulunuluyor bunun farkındayım. Aksini iddia ediyorsanız da problem değil.
Sorun yaşayan firmalara tekrardan geçmiş olsun. Umarım herkes artık elini vicdanına koyabilir diyerek, herhangi bir tartışmaya katılmıyorum.
Herkese iyi geceler.
Autovm Güvenlik Açığı
60
●14.058
- 19-04-2022, 11:00:44Etkilenen arkadaşlara çok geçmiş olsun. Vcenter zaten sabır taşını bile çatlatır malesef. Her ay ayrı bir güvenlik açığı
- 19-04-2022, 12:26:28Merhabalar, mazur görün lütfen. Anlamlandıramadığım bir konuyu sormak istiyorum. ESXi'lere teker teker local IP ile SSH bağlantısı sağlanıp komut yürütüldüğünü belirtmişsiniz. Dışarıdan bir müdahale ile local IP üzerinden nasıl bağlantı yapılabileceğini ya da vCenter/ESXi web arayüzlerinin, SSH vb. servis girişlerinin sadece belirli statik IP adreslerine açık olduğu bir yapıda dışarıdan bağlantının nasıl yapıldığına dair bilginizi paylaşabilir misiniz?datafex adlı üyeden alıntı: mesajı görüntüle
İlk başta AutoVM açığı sebebiyle AutoVM'in kurulu olduğu sunucuda root olunabildiği bilgisi paylaşıldı, böyle bir durumda dediğiniz durum söz konusu olabilir çünkü AutoVM'in IP adresi SSH izinli olmak zorunda. Sonrasında @onatweb; AutoVM framework'ünde bulunan açığın sunucuda root olmak gibi bir zafiyete sebebiyet vermeyeceğini kanıtlarıyla birlikte paylaştı. Bu durumda varsayalım ki veriler okunsun, hash'ler kırılsın; yine de vCenter/ESXi kurulu sunuculara ulaşım sağlayamamaları gerekir diye düşünüyorum.
Mağduriyet yaşayan tüm firmalara çok geçmiş olsun, kısa sürede bu zorlu süreci atlatmanız dileğiyle. - 19-04-2022, 13:45:16Sorun yaşayan sektör arkadaşlarımıza tekrardan geçmiş olsun demekten başka birşey gelmiyor elimizden şuan için üzücü bir durum umarım kısa sürede autovm veya vcenter hangisi ise çözümlenir ve daha fazla kişinin dili yanmaz aynı konu üzerinden.
- 19-04-2022, 16:16:57Konuya son bir açıklık getirmek istiyorum. Bu saate kadar sürekli sakinliğimi korudum, herkese saygı çerçevesinde cevap vermeye çalıştım. Sakinliğimin getirdiği cevaplar neticesinde ise sanki bu açık benden kaynaklanıyormuş gibi algılanmış ve buna inanıp adeta bir vatan savunması yapanları gördükçe, dün "daha tartışmayacağım" dediğim halde tekrardan bir açıklama yapma gereğinde gördüm kendimi.
Konuya girmeden önce dediğim gibi mağdur olan firmalar ile iletişimdeyim. Elimden ne geliyorsa bu firmalar için yapmaya dünden razı olduğumu zaten herkes biliyor. Sorumlusu ben olmadığım halde, sorumluluk almaya razıyım. Tekrardan aşağıda yazacaklarımı üstüne alınmak isteyenler alınsın.
Herkesin ön yargılarını bir kenara koyarak bu yazdıklarımı gerçekten tek taraflı olmadan, sağ duyulu bir şekilde okumasını tavsiye ediyorum. Bu bugün benim başıma geldi yarın sizin başınıza da gelebilir. Haksız ve sebebi sen olmadığın halde linçlenmek gerçekten kötü bir şey bunu belirteyim öncelikle.
Öncelikle şu konuya açıklık getirmek istiyorum. Ve anlaşılır bir dilden anlatmak istiyorum. İnternette framework ile alakalı 2-3 tane web sitesinde bir içerik yayınlanmış. Bu konu hakkında hiç bir detaylı döküman yok. "Bakın şöyle bir şey var, güncellerseniz iyi olur" şeklinde paylaşımlar var. Detaylı bir döküman bulamadığım içinde kendim biraz kodların içine girdim. Yii'nin paylaşmış olduğu update ile diğer versiyonu karşılaştırarak bir çıkarımda bulundum. Bu çıkarımı da yanılma payım var diyerek ölümüne savunmuşluğum yok. Ama kesin olarak baktığım tek şey ; bu bir database açığı. İnternette php'nin serialize, unserialize fonksiyonlarını araştırırsanız eğer mantığı anlarsınız. Framework kendi içerisinde database içerisine sorgu sokarken bu fonksiyonları kullanıyor. Bu fonksiyonları kullanım biçimlerinde ise bir yanlışlık varmış bunu update ile düzeltmişler.
En kötü senaryoyu düşünerek yazıyorum. Framework kendi içerisinde database sorgusu yaparken unserialize fonksiyonunu kullanıyor. Bazı yanlış kullanımlar, sorgunun önüne geçebilmeye büyük ihtimalle olanak sağlıyor. Yani örnek veriyorum sorgunun amacı "Veri tabanından sadece 1 id sini sil" ise açık kullanılarak bu sorgu "Veri tabanından tüm verileri" sil olarak değiştirilerek bir nevi database'den veri kaybına yol açıyor.
Yani burada 0'dan bir sorgu oluşturulması mümkün değil. Sadece var olan bir sorgunun devamını bazı operatörler ile getirerek o alana etki ediyorsunuz. Bu açık size veri tabanı ile alakalı komple bir erişim sunmuyor.
Bu database sorgularınının devamına açık ile ek sorgu eklediler diyelim. Burada etkilenen tek veri database içerisindeki önemsiz bir veri olacaktır. Tutup da ESXI'den herhangi bir düzenleme yapmaz. Böyle bir şey yapıldığını savunan bir insan varsa da şuna da inanmalı kendisi;
Bir not defteri açıp, içine herhangi bir ip adresi yazdıktan sonra, yazdığı ip adresini backspace ile silip, sildiği bu ip adresinin ESXI'den de silinmesini beklemek. Bu ne kadar saçmaysa veri tabanından bir veri silmesi, veya düzenlemesi yapıldıktan sonra ESXI tarafına işlemesi de o kadar mantıksız.
Bu açık ile ssh root girişi yapılabilir gibi birisi kuyuya taş atmış, tüm herkeste inanıyor. Anlayabilmiş değilim. İnsanların bu kadar kolay manipüle edildiğini görünce gerçekten şok yaşadım. Böyle bir şeyin olması imkansız. Konuyu açan kişinin WP konuşmasındaki yazısını okuyarak ve çok küçük bir araştırma yaparak bunun ne kadar saçma bir argüman olduğunu anlayabilirsiniz.
Database sorgusu ile ssh root girişi yapılabilmesinin imkanı yoktur.
Hadi diyelim ki olmayacak bir senaryoyu canlandıralım ve database sorgusu ile ssh girişi yaptığını düşünelim.
Burada gene suçlu ben değilim ki ? Ben açık kaynak kodlu bir yazılımda düzenleme yaptım. Bu yazılım framework olarak yii2 kullanıyor. Açık framework tarafında ?
Firmaların çokça şikayet ettiği ve eklenmesi iyi olur dediği şeyleri analiz ederek bu açık kaynak kodlu yazılımın içine ekledim. Bu eklediğim özellikleri ise pazarladım.
Yani bazı insanların yaptığı olaya çok basite indirgeyerek bir örnek vereyim;
"Bir bina var ve bu binanın dış cephe boyasına ihtiyacı var. Ben buradaki dış cephe boyasını yapan bir bireyim. İnsanların yaptığı ise bina çöktü, suçlu boyacıdır demek."
Önceden yazdığımı tekrarlıyorum, muhatap alınabilecek tek türk kişi benim. Ve linçlemeyi seven bir toplum da olduğumuz için sonuç buraya kadar geldi.
Aynı hassasiyeti, Altında binlerce çalışanı olan ve binlerce firmayı mağdur eden vmware'ye de göstermenizi isterim açıkçası.
Daha yazmak istediğim çok şey var. Çirkinleşen insanlar gibi, çirkinleşmek istemiyorum kısacası, o yüzden diğer yazmak istediğim şeyleri yazmak istemiyorum.
Artık komplo teorilerini ve içi boş kartezyen düşünceleri bırakın lütfen.
Selametle. - 19-04-2022, 18:59:34Konuyu inceledim, olaylarla herhangi bir bağlantım yok sadece incelemelerim üzerine gidişatı anlayabilmek için yorumda bulunmak istiyorum çünkü araştırdığımda VM silinme olayının esası kim bunu çözemedim. BatchQueryResult.php" dosyası üzerinde "__wakeup" ve "__sleep" fonksiyonları ile açığı kapattıklarını söylüyorlar.onatweb adlı üyeden alıntı: mesajı görüntüle
https://github.com/yiisoft/yii2 üzerinden 2.0.37 ve daha eski sürümleri kontrol edebilirsiniz.
**sanırım** Açığı incelediğimde "framework/helpers/BaseVarDump.php" dosyasınıda kontrol edecek olursanız "VarDumper" sınıfı üzerinde zaafiyet olduğu anlaşılıyor, $output içerisinde serialize üzerinden veriler eklendiği için ve bu output "dumpasString" fonksiyonu üzerinde "<?php" olarak belirtilmiş olup ve output içerisinde serialize içerisinden alınan veriler eklenmiş, sorun tamamen framework üzerinde gözüküyor:
public static function dumpAsString($var, $depth = 10, $highlight = false) { self::$_output = ''; self::$_objects = []; self::$_depth = $depth; self::dumpInternal($var, 0); if ($highlight) { $result = highlight_string("<?php\n" . self::$_output, true); self::$_output = preg_replace('/<\\?php<br \\/>/', '', $result, 1); } return self::$_output; }Yukarıda gösterdiğim kod üzerinde çalıştırılıyor highlight kapalı kaldığında herhangi bir preg_replace işlemi olmadığı için direkt php kod output'u return ediliyor ve "dumpAsString" fonksiyonuna serialize olarak gelen bu veriler kullanıcı tarafından unserialize edilirse tamamen php kod çalıştırma zaafiyeti söz konusu olabilir.
Eğer ki belirttiğim gibi php çalıştırıyorsa zaten open source bir kaynak olduğu için fonksiyonlar kullanılarak sorgu gönderilebilir sorgu gönderilen sınıflarıda inceledim gayet işleme müsait duruyor, eğer sorgu çalıştırılabiliyor ise sorgu içerisinden dosya oluşturulabilir, oturum oluşturulabilir, kullanıcı parolası değiştirilebilir vs. vs...
VM silinme olayında ise dediğim gibi php çalıştırılıyor ise dosya oluşturma(python vs.), işleme geçirme herhangi bir durum her türlü ele alınabilir. - 19-04-2022, 19:20:14Ben direkt saldırganların zafiyeti nasıl sömüre bildiklerine dair explotiler gönderdim ama onatweb hala bu işlem yapılanmaz diyorv4r1able adlı üyeden alıntı: mesajı görüntüle
@onatweb;
onatweb adlı üyeden alıntı: mesajı görüntüle
ortada olan açık bir Remote Command Execution Vulnerability (RCE) kendinin attığı linktede görebilirsin:

bu ne demek hemen açıklayayım yada direkt google açıklasın;

Her türlü komut çalıştırılabilir çalıştırılamaz diye bir şey yok ve gerekli açıklama için alıntı yaptığım yazıyı okuyabilirsin. Sabırlı davrandığını söylüyorsun ancak mesajları gözden geçir sabırlı ve sana anlayışlı bir şekilde yaklaşmaya çalışan ve ticaretinin zarar görmemesi için sorularla yaklaşan benim. Ama gördüğüm güvenlik tarafında bilgin 0 yok. Boyacı örneği vermiştin madem boya yapıyorsun o zaman boyanı sat direkt evi boyalı olarak satma sen evi boyalı olarka satarsan ve evde problem varsa muhattap sensindir yok öyle yağma. Ben zamanımı ayırdım sana direkt exploit dosyalarını gönderdim hala saçma açıklamalarla geliyorsun? Sadece bi ton insan şimdi adama yazıyordur anlayışlı oluyum dedim hatta konuşmadan sonra anladığınızı düşünerek kendimi report edip konudaki bazı yorumların silinmesini bile rica ettim(silinmedi) sırf sizin ticaretinize problem olmasın diye ama siz açık sizin verdiğiniz hizmetten kaynaklandığı halde böyle saçma bir açıklama yapıyorsanız kusura bakmayın ama suçlusunuz. Autovm sanal makinaları yöneten bir panel ve bu panelde yetkili olan kişi alt sitelere istediğini yapabilir ve açık ise sizin sağladığınız autovm hizmetinde. her şey ortada ve net. Size dün gece yazdıklarımı oturup araştırsanız bu gün bu konuşmayı yapmak zorunda kalmayacaktık.
+ olarak "Artık komplo teorilerini ve içi boş kartezyen düşünceleri bırakın lütfen." komplo teorisi değil konuşmalarım tamamen ortada olan şeyler. (wmvare ve center tarafında ilgili firmaların direkt network tarafında hizmetini sağlayan @SponneR; yorum attı konuya local dışına erişimleri kapalı olarak. dışarı açık olan tek şey autovm ve sistemlerin hepsi güncell hala ne anlatıyorsunuz bizdekide sabır. Sevdiğim dostlarımın canı yandı siz burda olan açığa yok bu böyle kullanılamaz komplo falan diyorsunuz ünlü triplerine girmeyi bırakın) - 19-04-2022, 19:57:04@T13R;
Fikrinizi destekleyen birisi olduğunda sürekli olarak vites arttırıyorsunuz. Ben sizin iyi niyetli olduğunuzu düşünmüyorum.
Ben kendi araştırmamı yaptığımı söyledim. Bunu ölümüne savunmuyorum, yanılıyor da olabildiğimi söyledim.
Herhangi bir döküman bulamadım çünkü. Sizde paylaşmadınız. Siz sadece iddianızı destekleyen birisi konuya teşrif ettiğinde vitesi arttıyorsunuz. Altı boş, içi boş şeyler sunuyorsunuz. @v4r1able; kendisi belirtmiş, şuradan kaynaklanarak böyle bir açıktan yararlanılmış olabilir diye. Elle tutulur bir done olduğunda, yazdığım şeyi ölümüne savunacak değilim.
Bahsi geçen fonksiyonlar database kütüphenesinde BatchQueryResult tarafından kullanılıyor. Buradan ise database sorgularının önüne geçebiliyorsun. Benim yorumladığım şekil; bu fonksiyonlar database tarafından kullanılıyor, ve database'de sorguların önüne geçilebiliyor idi. Bu yorumladığım şeye göre de imkansız olduğunu söyledim. Yanılıyor olabilirim diye de belirttim.
Her ne olursa olsun, bu açık ile ne yapılabiliyorsa yapılsın. Suçu bana atmak etik değil. Ahlak dışı. Açık framework tarafında var. Ama suçlanan ben oluyorum. Gidip yii yapımcıları ile tartışın. Bana niye musallat oluyorsunuz ? Bunu anlatmaya çalışıyorum.
En basite indirgeyerek söyledim zaten daha ne yapabilirim ki ? Verdiğim boyacı örneğine böyle saçma sapan karşıt bir örnek vermek çok irite edici.
Tekrar söylüyorum. Sizin yaptığınız, hayattan herhangi bir örnek olabilir şuna benziyor. Başka bir örnek vereceğim.
Whmcs modülü yapıyorsun. Whmcs'de açık çıkıyor. Suçlanan whmcs modülcüsü oluyor. Niye ? Çünkü modülü yapan kişi Türk. Muhatap alınabilecek birisi.
Tekrar belirtiyorum ; Ben, açık kaynak kodlu bir yazılıma eklemeler yaptım. Satışını yaptığım ise bu yazılım üzerine yapılan eklemeler.
Bunun haricinde, alınabilecek tüm güvenlik önemleri firmanın kendisine aittir. Bu güvenlik önlemlerini firmalara sağlamak benim boynumun borcu değil. Olmadığı halde bile kendimi savunmak zorunda bırakıyorsunuz. Anlayışsızlık diz boyu.
Eğer memnun olacaksanız her şeyin sorumlusu benim. Daha da dediğim gibi yazacak değilim. Herkes yazıp çizebilir bu konu hakkında. Benim için konu kapanmıştır. Gidip yii yapımcıları ile tartışın geri kalanını.
Selametle.

