- TSA'nın KCM/CASS kimlik doğrulama akışında, havayolu tarafındaki sistem ele geçirilirse, istihdam durumu doğrulamayı geçmiş gibi rastgele kullanıcılar eklenebiliyor; bu da güvenlik kontrolünü atlamaya veya hatta kokpite erişime kadar gidebiliyordu
- FlyCASS, küçük havayolları için CASS web arayüzü sağlıyordu ve Air Transport International giriş sayfasındaki SQL enjeksiyonu ile yönetici girişi yapılabiliyordu
- Yönetici ekranı, yeni çalışan eklerken ek doğrulama olmadan KCM ve CASS yetkisi verebiliyordu; test kullanıcısının her iki sistemde de onaylı durumda olduğu doğrulandı
- Nisan 2024 sonunda ARINC, FAA ve DHS/CISA'ya bildirildikten sonra DHS, FlyCASS'ın KCM/CASS'tan ayrıldığını doğruladı ancak TSA açıklamasının düzeltilmesi talebine yanıt vermedi
- TSA, KCM barkodu verilmeden önce yapılan inceleme nedeniyle kontrol noktasına erişimin mümkün olmadığını söyledi; ancak gerçek prosedürde çalışan kimliğinin manuel girildiği bir yol kaldığı için açığın etkisi daha büyüktü
KCM ve CASS'ın yaptığı doğrulama
- Known Crewmember (KCM), TSA programıdır ve pilotların ile kabin ekiplerinin yurt içi kişisel seyahatlerde bile güvenlik kontrolünü atlamasına izin verir
- Çalışan, özel hattan KCM barkodunu gösterir ya da TSA görevlisine çalışan numarasını ve havayolunu verir
- TSA görevlisinin dizüstü bilgisayarı havayoluna istihdam durumunu sorar; başarılı olursa ilgili çalışan ek tarama olmadan güvenli alana girebilir
- Cockpit Access Security System (CASS), kokpite erişim yetkisini doğrulayan ayrı bir sistemdir
- Uçakların çoğunda kokpit içinde, uçuş ekibinin arkasında bir jumpseat bulunur
- Pilotlar işe gidip gelirken veya yer değiştirirken ücretli koltuk bulmak zor olursa jumpseat'i kullanabilir
- Kapı görevlisi, CASS ile jumpseat kullanıcısının onaylı bir pilot olup olmadığını doğrular ve ekibe CASS doğrulamasının yapıldığını bildirebilir
- Her iki sürecin de özü güncel havayolu istihdam durumunun doğrulanmasıdır
- Kişi havayolu çalışanı değilse arka plan incelemesinden geçmiş sayılmayacağı için güvenlik kontrolünü atlamasına veya kokpite erişmesine izin verilmemelidir
- Onay alan kişinin doğru kişi olduğunu doğrulamak için mürettebat fotoğrafı da döndürülür
ARINC ve havayoluna özel doğrulama sistemleri
- ARINC, Collins Aerospace'in bir iştirakidir ve görünüşe göre TSA adına KCM işletimini yürütmektedir
- ARINC, pilotlar ile kabin ekiplerinin KCM durumunu kontrol ettiği çevrimiçi bir web sitesi ve havayolları arasındaki onay taleplerini yönlendiren API benzeri merkezi bileşenleri işletir
- Her havayolu, KCM ve CASS'a katılmak için kendi doğrulama sistemini çalıştırıyor gibi görünmektedir; bu sistem ARINC'in hub'ı ile etkileşir
- TSA ve havayolları,
CockpitAccessRequest,CrewVerificationRequestgibi istekleri ARINC'e gönderebilir - ARINC, isteği ilgili havayolu sistemine yönlendirir ve yanıtı geri alır
- TSA ve havayolları,
- KCM'de şu anda 77 havayolu yer almaktadır
- Büyük havayolları kendi sistemlerini kurmuş olabilir, ancak küçük havayollarının KCM veya CASS isteklerine nasıl yanıt verdiği araştırmanın konusu oldu
FlyCASS'ta bulunan SQL enjeksiyonu
- Araştırmacılar, doğrulama sistemini gerçekten işleten tedarikçileri ararken FlyCASS adlı siteyi buldu
- FlyCASS, küçük havayollarına CASS için web tabanlı bir arayüz sağlıyordu
- Her havayolunun ayrı bir giriş sayfası vardı ve Air Transport International'a (8C)
/atiüzerinden erişilebiliyordu
- Giriş sayfasında kullanıcı adına tek tırnak eklenince anında MySQL hatası döndü
- Kullanıcı adının giriş SQL sorgusuna doğrudan eklendiği anlaşılıyordu
- sqlmap ile SQL enjeksiyonu sorunu doğrulandı
- Kullanıcı adı
' or '1'='1ve parola') OR MD5('1')=MD5('1birleşimiyle Air Transport International'ın yönetici hesabına giriş yapılabildi
Yönetici yetkisiyle KCM/CASS onaylı kullanıcı ekleme
- FlyCASS, katılımcı havayolları için hem KCM hem CASS işletiyordu
- Air Transport International yönetici yetkisi elde edilince, bu havayoluna bağlı pilot ve kabin ekibi listesi yönetilebildi
- Havayoluna yeni çalışan eklenirken ek kontrol veya kimlik doğrulama yoktu
- Havayolu yöneticisi, istediği herhangi bir kişiyi KCM ve CASS onaylı kullanıcı olarak ekleyebiliyordu
- Test için
Test TestOnlyadlı bir çalışan oluşturulup seçilen test fotoğrafı yüklendikten sonra KCM ve CASS erişim yetkisi verildi- Sonrasında Query işleviyle kontrol edildiğinde test kullanıcısının hem KCM hem CASS'ta onaylı durumda olduğu görüldü
- Temel SQL enjeksiyonu bilgisiyle bile siteye giriş yapıp rastgele kullanıcıları KCM ve CASS'a eklemek mümkündü
- Sonuç olarak güvenlik taraması atlanabilir ve ticari yolcu uçağının kokpitine erişim bile mümkün hale gelebilirdi
- İlk sorun fark edilir edilmez bildirim süreci başlatıldı ve bunun dışında da birkaç ciddi sorun daha bulundu
Bildirim süreci ve TSA'nın tepkisi
- Uygun bildirim iletişim noktasını bulmak bile kolay değildi
- FlyCASS'ın tek bir kişi tarafından işletildiği görülüyordu, bu yüzden en başta doğrudan FlyCASS ile iletişime geçip paniğe yol açmak istenmedi
- 23 Nisan 2024'te sorun Department of Homeland Security'ye bildirildi ve DHS, durumu öğrendiğini ve bunu “çok ciddiye aldığını” doğruladı
- Daha sonra FlyCASS, KCM/CASS'tan devre dışı bırakıldı ve açığın da sonradan giderildiği anlaşıldı
- Sorun düzeldikten sonra güvenli açıklama koordine edilmeye çalışıldı, ancak DHS yanıt vermeyi bıraktı
- TSA basın ofisi, açığın etkisini reddeden bir açıklama yaptı
- TSA, yeni KCM üyelerine barkod verilmeden önce inceleme süreci başladığı için bu açıkla KCM kontrol noktasına erişilemeyeceğini söyledi
- Ancak KCM kontrol noktasını kullanmak için KCM barkodu zorunlu değildir; TSO havayolu çalışan kimliğini manuel olarak girebilir
- Araştırmacılar bunu TSA'ya bildirdikten sonra TSA, çalışan kimliğinin manuel girilmesinden söz eden web sitesi bölümünü kaldırdı ve düzeltme talebine yanıt vermedi
- TSO'nun kullandığı arayüzün hâlâ çalışan kimliğinin manuel girilmesine izin verdiği doğrulandı
Mümkün olan ek saldırılar ve açıklama zaman çizelgesi
- Açık sayesinde mevcut KCM üyeleri değiştirilebildiği için, kayıtlı kullanıcıların fotoğraf ve isimlerini değiştirmek de mümkündü
- Bu yöntem, yeni üye inceleme süreci olsa bile onu atlatma ihtimali taşıyordu
- Kayıtlı olmayan bir KCM barkodu ele geçirilebilirse, KCM web sitesinde bu barkod doğrudan çalışan kimliğine bağlanabilirdi
- Açıklama zaman çizelgesi:
- 2024-04-23: ARINC ve FAA'ya ilk bildirim
- 2024-04-24: CISA üzerinden DHS'ye ek bildirim
- 2024-04-25: DHS CISO çözüm üzerinde çalışıldığını doğruladı
- 2024-05-07: DHS CISO, FlyCASS'ın KCM/CASS'tan ayrıldığını doğruladı
- 2024-05-17: TSA açıklamasıyla ilgili DHS CISO'ya tekrar ulaşıldı ancak yanıt alınmadı
- 2024-06-04: TSA açıklamasıyla ilgili DHS CISO'ya yeniden ulaşıldı ancak yine yanıt alınmadı
1 yorum
Hacker News yorumları
Burada TSA’nin tepkisi çocukça ve utanç verici düzeyde, ama gerçek güvenlikle pek ilgilenmeyen bir kurum olduğunu düşününce şaşırtıcı da değil.
DHS başta ihbarı hızlı ve profesyonelce ele almış gibi görünüyor; ancak sonrasında düzeltme ve kamuya açıklama süreci üzerinde üst düzey yetkiyi sonuna kadar koruyamamış olması ilginç.
Açığa çıkmış anahtarlar gibi büyük sorunların önemsiz görülürken, eski JavaScript kütüphaneleri ya da IPv6 desteği olmaması gibi konuların eskale edildiğini gördüm.
TSA ve yüklenicilerinin olası ifşayı küçümsemeye çalıştığı açık; ama birçok yöneticinin bir zafiyetin ne anlama geldiğini anlamakta zorlanması, geliştiricilerin de kendi sorumluluğunu küçültüp suçu başkalarına atıyor olması çok muhtemel.
Gerçekte amaç, gözetim sistemini pekiştirmek ve güçlü görünen bir dış görüntü yaratmak gibi duruyor.
SQL injection’ı doğrulamakla kalmayıp sahte bir çalışan kaydı da oluşturmuşlar; Homeland Security’nin ilgili kişileri tutuklamaya gelmemiş olması şaşırtıcı.
Sorumlu açıklamayı kötü niyetli hackleme sanıp buna öyle deme olasılığı en yüksek yerin Homeland Security olduğunu düşünürdüm.
Bu, gerçek zafiyetteki beceriksizlikten daha etkileyici.
Eğer kendilerini Known Crewmember’a ekleyip gerçekten havaalanı taramasını atlatmış olsalardı, o zaman hapse girerlerdi.
O zaman daha az dostane başka ülkelerin en iyi yetenekleri bakar ve onların sorumlu biçimde açıklama yapma olasılığı düşüktür.
https://bugcrowd.com/engagements/dhs-vdp
Birkaç yıldır ilişkileri var, dolayısıyla bir ölçüde alışık olduklarını düşünüyorum. TSA’nın kendisi daha az alışık olabilir; ama DHS bakanlık genelinde zafiyet açıklama politikası (VDP) yürütürken ve CISA üzerinden diğer bakanlıklara da VDP işletme konusunda danışmanlık verirken, DOJ’den dava açmasını isteyeceklerini sanmıyorum.
Yine de fazla iyimser düşünüyor olabilirim.
Böylece sorumlu açıklama yüzünden yargılanma riski azaltılabilir.
Daha güvenli yöntem, raporu anonim göndermek ve kamuya açıklama ya da tam açıklama için net bir son tarih koymaktır; tabii bu durumda keşfeden kişi olarak tanınmak zorlaşır.
O kadar ciddi ki, bu yazıldığı sırada kimse parolaların MD5 ile saklanmasının ne kadar kötü olduğundan bile bahsetmiyor.
Bu durumda salt bile kullanılmadığı da ortaya çıkıyor; gerçi MD5’te salt kullanmak da yetersiz olurdu.
Ama yalnızca istek göndererek SQL sorgusunun kendisini istediğin gibi kurcalayabiliyorsan, parolaları ne kadar iyi sakladığının pek anlamı yok.
Salt kullanıp kriptografik olarak güvenli hash kullananların oranı muhtemelen %20’nin altındaydı; MD5 ise gerçekten çok sık çıkıyordu.
Bu mülakattan önce de epey eleme yapıldığını düşünürsek genel taban çizgisi bundan da kötü.
“FlyCASS tek kişi tarafından işletiliyor gibi göründüğü için önce onlarla iletişime geçmedik” açıklamasına inanmak zor.
Site geliştiricisinin hemen düzelteceğini biliyorlardı ve bulgularını daha büyük patlatmak istiyorlarmış gibi geliyor.
Sorumlu kişinin sessizce düzeltip kapatacağı bir şey değil; veritabanındaki herkesin yeniden doğrulanması gerekiyor.
Tek geliştirici hemen düzeltseydi, sorunu üst kademelere taşıyıp sistematik olarak düzelttirmek zor olurdu.
Böyle kapsamlı bir yenilenme gerçekten olur mu bilmiyorum; ama eskale edilmezse olma ihtimali daha da düşer.
Sorunun ciddiyetini inkâr etmeleri şaşırtıcı değil; ama FBI’a haber vermemeleri ya da tutuklamaya kalkmamaları epey şaşırtıcı.
Küçük de olsa bir ilerleme olabilir.
Doğrudan TSA’ya bildirseydi bunun hukuki tehditlere ve blöflere dönüşmesi gayet olasıydı.
Ian’ın yargılanacağına 50 dolar bahse girerim.
Sahte kimlikli sıkılmış bir 17 yaşındaki gencin TikTok’a hâlâ uçağa gizlice biniş videosu koymamış olması şaşırtıcı.
SQL injection ha.
Eski usul bir SQL injection’ın yılda onlarca milyar dolarlık güvenlik tiyatrosunun tamamını etkisiz kılması komik, ama çok da şaşırtıcı değil.
Havayollarının güvenlik açısından bu kadar hassas yazılımları tek kişilik bir şirketten satın alması epey şaşırtıcı
ABD’deki çoğu şirkete SaaS satmak için belli bir aşamaya geldiğinizde, en azından bir SOC2 denetim raporu isterler
SOC2, denetim standardı olarak bakıldığında büyük bir bulgu olmadan geçmesi oldukça kolay sayılır; ancak şirket tek kişi tarafından işletiliyorsa raporda kırmızı bayrak yakması gereken birden fazla kriter var
TSA erişim sistemiyle entegre olan bir yazılım için gereksinimlerin SOC2’den çok daha sıkı olacağını düşünürdüm
Arka uçtaki her şey, ortalama bir küçük işletmeden bile daha fazla koli bandıyla zar zor bir arada tutuluyor
Birkaç eski yolcu uçağı satın alıp kargo uçağına dönüştürürseniz “havayolu” olabilirsiniz
Yeni bir havayolunun ortaya çıkması değerli bir şey mi? Yıllar, hatta on yıllar süren sistemleri henüz kurmadılar diye onları kapatmalı mıyız? Hiçbir yerle hiçbir yer arasında 2 uçakla 1 rota işleten bir şirket, büyük yolcu havayollarına yönelik özel sistemlere büyük paralar ödemek zorunda mı?
Burada gereksinimler ve denetimler cevap değil. Temel tasarım sorunu, TSA’nın “XXX havayolu sizin çalışan olduğunuzu söylüyor” şeklindeki doğrulamayı “ülkedeki herhangi bir havalimanında tüm güvenlik kontrollerini atlayabilirsiniz” gibi çok geniş bir yetkiyle birleştirmesi ve “bu havayolu bu havalimanında gerçekten faaliyet gösteriyor mu?” gibi temel bir kontrolün bile olmaması
Böyle bir şeyin bu kadar kolay olabilmesi de şaşırtıcıydı, ama sondaki TSA yanıtı açıklaması gerçekten ciddi biçimde tedirgin edici
Bunu yapan kişiler muhtemelen Homeland Security ya da FBI tarafından ziyaret edilecek
Ne elde edebileceklerini düşündüler, bilmiyorum
Devletin güvenliği umursadığını sanmıyorum, ama misillemeci olduğu kesin
Burada mümkün olan yöntem şu: Büyük bir havayolundan bilet satın almak, yasaklı eşyaları kabin bagajına koymak ve üçüncü taraf FlyCASS sistemindeki SQL enjeksiyonu ile kendini küçük bir havayolunun Known Crew Member listesine ekleyip TSA kontrolünü atlamak
Ardından yasaklı eşyalarla büyük bir yolcu uçağına binmeye yarayan bir açık mı bu?
Günümüzde çoğu TSA güvenlik kuyruğu biniş kartı bile istemiyor; yani teoride bir bombayla gidip tüm bu güvenlik tiyatrosunu atlayabilirsiniz