1 puan yazan GN⁺ 2024-07-21 | 1 yorum | WhatsApp'ta paylaş

1 yorum

 
GN⁺ 2024-07-21
Hacker News yorumları
  • Bu kadar kritik yolda yer alan bir sistemin düzgün bir CI pipeline’ından geçmiş olmaması gerekirdi.
    Otomatik testler konusunda aşırı katı sayılmam ama bu önemdeki sistemlerde durum yönetiminin olağanüstü iyi olması gerekir.
    Desteklediğini iddia ettiği tüm ortamlar için entegrasyon testleri olmadan production’a dağıtım yapılmamalı; bu ölçekte ve önemde bir şirketin, desteklenen imajların tamamını doğrulayan bir staging ya da geliştirme test sunucusunun bile olmaması akıl alır gibi değil.

    • Daha fazla bilgi yokken çok fazla varsayım var. Örneğin gerçekte dosya düzgün olabilir ve hata noktası doğrulanmış çıktıyı CDN’e yükleyen kod olabilir.
      O durumda, dağıtım öncesinde pek çok kontrolden geçildikten sonra sorun ortaya çıkabilir. Windows’a gönderilen şeyin hiç test edilmediği sonucuna aceleyle varmak istemem.
    • Böyle bir ortamın olmadığını kim söyledi? Tüm bu testlerden geçmediğini kim söyledi? Şu anda çok fazla varsayım var.
    • Birkaç yıl önce kernel’de çalışan bir dilden sorumlu ekiple mülakat yaptığımda, CI’ın 20 bin ila 40 bin makine/OS kombinasyonu ve yapılandırması çalıştırdığını söylediklerini hatırlıyorum.
      Bunların arasında kesinlikle temel Windows da vardır diye düşünüyorum.
    • Kabul kriteri “hatalı veri imzası varsa makinenin boot etmesini engelle” idiyse, bu bozuk bir dağıtım ya da ağ anlamına gelebileceğinden, sonradan bakınca boot etmemek doğru davranış olabilir.
      Geçerli imzaya sahip bir dosya indirilene kadar makinenin tamamen boot etmemesi gerektiği şeklinde tasarlanmış olması da mümkün.
    • Tamamen null karakterlerle dolu bir dosyanın otomatik build pipeline’ının çıktısı olduğunu düşünmek zor.
      Bir şeyler build edilip CI testlerini geçtikten sonra, dağıtıma hazırlamak için dosyayı kopyalayan arka uçtaki bir aşamada sistemin bozulmuş olma ihtimaline bahse girerdim. Ama şu anda bunların hepsi yalnızca tahmin.
  • Bununla bağlantılı olarak, tarihin en büyük iki teknoloji felaketinin (CrowdStrike ve birkaç yıl önceki SolarWinds hack’i) ikisinin de kontrolden çıkan güvenlik yazılımından çıkmış olması tesadüf gibi gelmiyor.
    Güvenlik yazılımı şirketi kurmak isteyen hacker eğilimli insanların, süreç odaklı kültürün sıkıcı taraflarını uygulamaya en az ilgi duyan kişiler olma ihtimalinin yüksek olduğunu düşünüyorum. SolarWinds’te şirket içi güvenlik kültürünün berbat olduğu ortaya çıkmıştı; bu olayda da temel neden açıklandığında, hızlı ve gevşek bir dağıtım süreci çıkma ihtimali yüksek görünüyor.

    • Katılmıyorum. Güvenlik şirketleri “batamayacak kadar büyük” sendromundan muzdarip ve müşteriler kutucukları işaretlemek istediği için para kolayca içeri akıyor.
      Güvenlik satın alınan bir ürün değil, bir kültürdür; ilk günden itibaren aktif çaba ve zorlu çalışmalarla yerleştirilmesi gerekir. Piyasada size güvenlik sağlayan bir ürün yok; yalnızca sorun çıktığında suçu atabileceğiniz ürünler var.
    • CrowdStrike aslında California, Irvine’de kurulmuş ve merkezi orada olan bir şirketti.
      İlk dönem mühendislik organizasyonunun çoğu uzaktan/evden çalışıyordu ya da Irvine’deydi; şirket büyüdükçe Sunnyvale ofisi eklendi, daha sonra resmi merkez Austin, TX’e taşındı.
      Son birkaç yılda yurt dışı mühendislik operasyonlarını da genişlettiler; buna offshoring de dahil olmuş olabilir.
    • Ayrı bir hipotez ama birbiriyle uyumlu. Güvenlik yazılımları genel olarak geniş ve güçlü erişim yetkileri gerektirir.
      Bu yüzden bir hata ya da ihlal olduğunda etkisinin çok daha büyük olması kolaylaşır.
    • Sektörün sicili epey tuhaf. Aklıma hemen gelenler CrowdStrike, SolarWinds, Kaspersky, https://en.wikipedia.org/wiki/John_McAfee var.
      Unuttuğum daha fazlası da vardır. Yasal kenevir sektörünü zorlayan kendi kendini seçme problemine benzer bir yapı olabilir.
    • Güvenlik yazılımı kernel düzeyinde erişim gerektirir. Bir şey bozulduğunda boot döngülerine ve çökmelere yol açar.
      Diğer yazılımların çoğu bu kadar düşük seviyeli erişime ihtiyaç duymaz; çöktüğünde tüm sistemi beraberinde götürmez ve hızlı otomatik yükseltmeler de yapılabilir.
  • Bu felaketin olumlu bir yanını ille de arayacaksak, kuruluşların kernel düzeyinde erişimi yeniden düşünmesine yol açabileceğine dair çok küçük bir umut var.
    Herhangi bir oyun şirketinin kernel düzeyinde anti-cheat yazılımı kullanacak kadar yetkin olduğu varsayılamaz.

    • Microsoft çok sert biçimde denetlemedikçe oyun yazılımlarının etkileneceğini sanmıyorum.
      Yine de Microsoft çatısı altında oyun şirketleri de olduğu için oyunlara yönelik hook’ları vermeye devam etmesi yüksek ihtimal. Kurumsal organizasyonlar Riot’un anti-cheat uygulamalarına gözünü bile kırpmaz; çünkü iş makinelerine LoL kurmazlar.
    • Mücadele edilmesi gereken taraf, “rastgele bir kernel düzeyi driver mı? Sorun değil!” diyen hile alıcıları.
    • Bence anti-cheat büyük ölçüde sunucu taraflı davranış temelli olmalı.
    • macOS’te en azından kernel erişiminin mümkün olmadığını biliyorum; bu da bir nebze iyi.
  • Bu, bir QA sorumlusunun boş dosya ve en küçük geçerli dosyadan sonra ikinci ya da üçüncü sırada deneyeceği türden bir test dosyası gibi görünüyor. Burada ortaya çıkan her yönden beceriksizliğin seviyesi şok edici.
    Teknik olmayan yöneticileri sunumlarla etkilemenin öne çıktığı rekabetçi bir pazarda, teknik olarak yetkin bir şirketin beceriksiz bir şirkete karşı üstünlüğünün olmaması da şaşırtıcı değil.
    Yakın zamanda Craig Wright kararını https://www.judiciary.uk/judgments/copa-v-wright/ okudum; Satoshi Nakamoto olduğunu yalan yere iddia eden bu kişinin, dünya çapında uzman olduğunu söylediği alanlarda bile temel teknik yeterliliği yoktu. Tanık kürsüsünde ‘unsigned’ın ne anlama geldiğini bile bilmiyordu; 90’lardan beri büyük şirketlerde güvenlik işi yaparken jargon, kurgulanmış demolar ve sahte belgelerle insanları kandırmış gibi görünüyordu.
    CrowdStrike’ın kurucusu ve CEO’su George Kurtz, 14 yıl önce McAfee neredeyse aynı şeyi yaptığında CTO’ydu: https://old.reddit.com/r/sysadmin/comments/1e78l0g/can_crowd... https://en.wikipedia.org/wiki/George_Kurtz
    CrowdStrike’ın kendisi de 3 ay önce Debian stable’da aynı soruna yol açmıştı: https://old.reddit.com/r/debian/comments/1c8db7l/linuximage6...
    PCI uyumluluğu kurallarının CrowdStrike’ı ve antivirüsleri bugün BT altyapısının neredeyse her yerine sokmuş olması korkunç.

    • Uyumluluğun, devasa bir tek hata noktası olarak en büyük zafiyeti yaratmış olması da ironik.
      Ama devlet regülasyonları zaten böyledir.
    • Bu olayın en kötü yanı, devlet aktörlerinin artık büyük ölçekli altyapı saldırısı için net bir şablon edinmiş olması.
    • Bağlantıdaki insanların buna “Microsoft kesintisi” denmesine kızıp “CrowdStrike’ın hatası” demesi ilginç.
      Ama bu aynı zamanda Microsoft’un da başarısızlığı. Daha geniş açıdan bakınca, sektörün bir başka başarısızlığı.
      70 yıldır üzerinde çalıştığımız güvenli ve güvenilir sistemleri kurmamızı sağlayacak sektör reformlarının gerçekleşmesi için bunun kaç kez daha tekrarlanması gerekiyor? 1988’in yeniden yaşanması gibi geliyor.
    • Craig Wright’ın dijital sertifikaları tek bir bilgisayarın ya da kümenin vermesi yerine blockchain üzerine koyalım diye önermiş olması epey ironik.
      Tek bir yerde olunca hedef hâline gelir, oysa peer-to-peer ağlar saldırılara karşı çok daha dayanıklıdır.
      Bu sorun, tüm bilgisayarların kök sertifikasının CrowdStrike ile değiştirilmesiyle ilgili olsaydı, blockchain’e kaydedilmiş sertifikalar çözüm olabilir miydi? Kriptografi uzmanı değilim ama kulağa makul geliyor.
      Ayrıca Craig Wright’ın blockchain açıklamasını dinleyince Bitcoin whitepaper’ı bana oldukça anlaşılır gelmeye başladı. En iyi coder olmayabilir ama bir matematikçinin güvenlikte işe yaramadığını söyleyemeyiz, değil mi?
    • Komplo teorisi gibi konuşmak istemem ama şimdilik Hanlon’un usturası ile kötü niyeti elemek için erken gibi.
      Hataların çoğu bu kadar akıl almaz küresel ölçekte olmaz. Şimdiye kadarki en büyük hata, yani gerçekleşmeyen Y2K gibi görünüyor.
  • Bu yazı yanlış ve ana sayfadan indirmenin başka bir yolu olmadığı için flagledim.
    Bozulmuş bir bilgisayarda tamamen 0’lardan oluşan bir dosya bulunması, o dosyanın baştan tamamen 0 olarak dağıtıldığı anlamına gelmez.
    https://x.com/craiu/status/1814339965347610863
    https://x.com/cyb3rops/status/1814329155833516492

    • CrowdStrike, ağ soketi üzerinden aktarılmakta olan bir dosya kötü amaçlı yazılım imzasıyla eşleşirse o dosyayı 0 ile değiştiren bir davranış sergiliyor.
      Bu dosyalar kötü amaçlı yazılım imza dosyalarının kendisiyse, eşleşme çıkması şaşırtıcı değil.
    • CrowdStrike sonunda bunu doğrudan doğruladı: https://www.crowdstrike.com/blog/tech-analysis-channel-file-...
  • Bu bug hakkında CrowdStrike’ta çalışan birini tanıyan bir arkadaşımdan duyduklarımla örtüşüyor.
    Bug yıllardır kernel driver içinde gizli kalmıştı ve hatalı veri gelince tetiklendi. Bu veri, konfigürasyon güncellemesinin sonradan işleme aşamasında eklendi; testten sonraydı ama istemcilerin çekeceği güncelleme sunucularına kopyalanmadan önceydi.
    CrowdStrike’ın test düzeni konfigürasyon verisinin kendisi için iyiymiş gibi görünüyor, ancak prodüksiyona çıkmadan önce yakalayamamış. Çünkü yanlış şeyi test ediyorlardı.
    Bir postmortem yayımlarlar ise bu sorunu kabul etmelerini ve başka bir küresel etkili süreç başarısızlığını önlemek için ne yapacaklarını açıklamalarını umuyorum.

    • Sonunda bir ölçüde mantıklı gelen bir açıklama.
      Yetkin bir sistem yöneticisi, şimdiye kadar Greenland’dan New Zealand’a kadar herkeste otomatik güncelleme özelliğini kapatıyor, firewall ile engelliyor ve bu ürünü sunucu varlıklarından olabildiğince hızlı çıkarmak için plan yapıyor olmalı.
      Rakip ürünlerin pazarlama bütçeleri bu çeyrekte artacak gibi.
    • CrowdStrike’ın sadece “kabul etmekten” çok daha fazlasını yaşaması gerekiyor.
      Sözleşmelerde “sorumluluk sınırlaması” olsa bile ciddi soruşturmalar, cezalar ve hukuki hesap sorma olmasını umuyorum.
      Bu olayın verdiği zararın boyutunu hesaplamak bile zor; şirketlerin ve sıradan insanların boşa harcadığı zaman da eklenince daha da büyük. Örneğin uçağa binmeye çalışan insanlar da buna dahil.
      Böyle bir ihmalkârlığın mutlaka bir bedeli olmalı.
  • Mastodon’da Kevin Beaumont’un aldığı dosyanın müşteriden müşteriye farklı olduğuna dair bir iddia var
    https://cyberplace.social/@GossiTheDog/112812454405913406
    Biraz aşağı kaydırınca görülebilir

    • Windows’un tüm kernel modülleri için imza istediğini sanıyordum
      Bu basit bir test sızıntısı değil de birden fazla bozuk kopyaysa, imza doğrulamasını nasıl geçip kernel tarafından yüklenebildiği merak konusu
  • Bu, dosyanın özgün içeriği değil, zararı durdurmaya yönelik manuel müdahalenin sonucu da olabilir
    Birisi hatalı dosyanın üzerine aynı boyutta, tamamı 0 olan bir dosya yazarsa güncellemenin zararsız hale geleceğini ummuş olabilir
    Ya da “kritik bir güvenlik açığı nedeniyle QA’nın bypass edildiği” varsayımını izlersek, gerçek yama dağıtımını durdurmak; asıl verilere erişimi azaltıp güvenlik açığının tersine mühendisliğini yavaşlatma girişimi de olabilir

  • 4chan teknoloji panosunda yayımlanan açıklamaya göre sorun iki aşamalıydı
    CSAgent.sys adlı imzalı kernel sürücüsü CrowdStrike virüs tanım dosyasını ayrıştırıyor, malformed bir tanım dosyasının hatalı bellek erişimine yol açtığı durumları ise düzgün işlemiyordu
    Normal tanım dosyalarıyla aylarca sorunsuz çalışan bir saatli bomba kernel sürücüsü vardı ve bir noktada tanım dosyalarını sunan web sunucusu ya da CDN boş dosya, rastgele baytlar veya başka yazılım dosyaları gibi hatalı içerikler sunmaya başladı
    Açıklamaya göre güncelleme istemcisi bunu C:\Windows\System32\drivers altına indiriyor, CSAgent.sys de yeniden okuyup ayrıştırırken PAGE_FAULT_IN_NONPAGED_AREA ile mavi ekran ve yeniden başlatma döngüsüne giriyordu
    CSAgent.sys_18511.sys ile CSAgent.sys_18513.sys arasındaki farka bakıldığında, boyut kontrolünün ve tampon boyutunun değiştirildiği; böylece gelecekte hatalı tanım dosyalarının çökmeye yol açmamasının hedeflendiğine dair izler görüldüğü söyleniyor

    • Tanım dosyalarını sunan sunucudaki bir virüs koruma özelliği disk okumasını engelleyip, hata vermek yerine çıktı verisini 0 olarak sağlamış gibi geliyor
      Gerçekten sebep bir antivirüs paketi ise epey komik olurdu
    • Böyle bir şey birden fazla kez olduysa, kötü yazılmış kernel sürücüsünü hedef alan bir hacker saldırısı olabilir
      Özellikle şu anki seçim dönemi ve Trump’ın sevdiği bir şirket olması bağlamında bu bir güç gösterisi de olabilir
  • Daha önce güvenlik yazılımının bir dosyanın tamamını 0’a çevirip yazılım derlemesini bozduğu olmuştu
    Bu sefer de öyle olduğunu söylemiyorum ama yine de şaşırtıcı olmaz
    Temelde Windows’ta linker dosyayı açamıyordu; çünkü başka bir süreç tarama yaptığı için dosyayı kilitlemişti. Ama hata vermek yerine linklenecek nesne kodunu 0’a çevirmişti
    İnsanlar sebebi bulamamış, ancak debugger’ı açınca nesne kodunun büyük parçalarının 0 ile değiştirildiğini görmüştü

    • Visual Studio’nun az önce derlediği dosyaya yazamaması sorununu çok fazla kez yaşadım
      Antivirüs, yeni oluşturulan ikili dosyayı tam mt.exe’nin yazması gerektiği anda yakaladığı için, yeniden deneme ekleyen bir mt.exe wrapper bile hazırladım. CI build’leri de bu yüzden rastgele başarısız olurdu