3 puan yazan GN⁺ 2024-04-15 | 1 yorum | WhatsApp'ta paylaş
  • Resmî bir on-call rotasyonu olmayan dönemde, sabah 3'te kedinin uyuyan kişiyi uyandırması sayesinde AWS CloudWatch uyarısı ve web sitesindeki kesinti hemen fark edildi
  • Yük dengeleyicideki unhealthy targets uyarısından sonra site açılmıyordu ve birçok ülkeyle ilişkili çok sayıda IP'den yoğun istek geliyordu
  • Ürün yalnızca ABD'deki kullanıcılara sunulduğu için uluslararası trafik anormaldi ve eldeki belirtiler bunun bir DDoS saldırısı olduğunu gösteriyordu
  • Sunucuda IP'leri tek tek engellemek verimsiz olabilirdi, ancak önceden ayarlanmış AWS WAF ülke engelleme kuralı sayesinde yaklaşık 1 saat boyunca yüz binlerce istek engellendi
  • Saldırının başladığı sıralarda müşteri destek gelen kutusuna, Apache açığını kullanarak siteyi durdurduklarını ve Bitcoin ile 5.000 dolar isteyen bir tehdit e-postası gelmişti; şirket yanıt vermedi

Sabah 3'te ortaya çıkan kesinti

  • O sırada startup'ta resmî bir on-call rotasyonu yoktu ve ekip acil durum bildirimlerini birlikte takip eden bir düzenle çalışıyordu
  • Sabah 3 civarında kedi saçlarını yalayarak kişiyi uyandırdı; telefona bakınca birkaç dakika önce AWS CloudWatch uyarısının geldiği görüldü
  • Uyarının nedeni yük dengeleyicideki unhealthy targets idi ve web sitesi gerçekten de yüklenmiyordu
  • İzleme panosunda, birçok ülkeyle ilişkili çok sayıda IP adresinden gelen yoğun istekler görülüyordu
  • Ürün yalnızca ABD'deki kullanıcılara sunulduğu için uluslararası trafik normalden farklıydı ve eldeki belirtilere göre bunun bir DDoS saldırısı olduğu düşünüldü

AWS WAF ile engellenen istek seli

  • İlk akla gelen önlem, sunucu seviyesinde IP adreslerini engellemekti; ancak saldırgan daha fazla kaynak IP kullanabiliyorsa bu zahmetli olabilir ve etkisi de sınırlı kalabilirdi
  • Önceden yapılandırılmış AWS Web Application Firewall kullanılarak, anlık kesinti müdahalesi için diğer ülkelerden gelen istekleri engelleyen bir kural eklendi
  • Kural uygulandıktan sonra yaklaşık 1 saat boyunca yüz binlerce istek engellendi ve web sitesi yeniden çalışmaya başladı
  • İstek seli de durunca o anki kesinti giderildi

Saldırıdan hemen sonra gelen tehdit e-postası

  • O sabah, saldırının başladığı sıralarda müşteri destek gelen kutusuna ulaşan e-posta incelendi
    • Gönderen, web sitesinde bir güvenlik açığı bulup Apache'ı çökerttiğini iddia ediyordu, ancak şirket Apache kullanmıyordu
    • Web sitesinin tüm trafiğini durdurduğunu ve bunu birkaç ay boyunca sürdürebileceğini söyleyerek, Bitcoin ile 5.000 dolar gönderilirse bir “solution file” vereceğini talep ediyordu
    • Şirket yanıt vermedi
  • Telefon gece Rahatsız Etmeyin modundaydı; bu yüzden AWS bildirimlerinin titreşim ya da sesi kediyi önce uyandırmış açıklaması doğru değildi
  • Anlatıcı, kedinin sabaha kadar bekleyemeyecek bir şeyi somehow fark ettiğini düşünüyor ve bunun PagerDuty alarmından çok daha az rahatsız edici bir uyanma şekli olduğunu söylüyor

1 yorum

 
GN⁺ 2024-04-15
Hacker News yorumları
  • Her zamanki gibi içeriden gelen tehdidi gözden kaçırmak kolay. Dil bilgisi şüpheli bir tehdit e-postası mı? Bitcoin fidye talebi mi? Peki ya saldırının arkasında aslında bir kedinin olabileceğini hiç düşündün mü?

    • Demek telefon evin içinden geliyormuş!
    • Bitcoine “Bite” katmış sayılır
    • Doğru, kediler dil bilgisi kullanamamakla nam salmıştır
  • Kansas'ta pek deprem olmaz ama ilk ve tek hissettiğim depremi hâlâ hatırlıyorum
    Derin uykudayken Siyam kedim patisiyle yüzüme vurarak beni uyandırdı; yatağın ucunda oturup normalden farklı biçimde agresifçe hırlıyordu
    30 saniye bile geçmeden sallanmaya başladı. Nasıl anladı bilmiyorum ama epey şaşırtıcıydı; 2020'de aramızdan ayrıldı, hâlâ özlüyorum

    • Kedilerin ve köpeklerin, insanlar hissetmeden önce depremleri algıladığı bilinir
      Son NYC depreminde de insanlar sarsıntıyı hissetmeden önce köpeklerin uluduğu videolar vardı; bence oldukça yaygın bir durum
    • Üzüldüm. Yine de o kediye dair harika bir anıymış
      Birkaç hafta önce Taipei'de 7,4 büyüklüğündeki depremi yaşadığımda tek düşündüğüm, söz verdiğim gibi köpeğime dönmem gerektiğiydi. Ben çıkmadan önce köpeğim huzursuzdu; benim gideceğimi mi hissetti, yoksa gitmekte olduğum depremi mi algıladı bilmiyorum
    • Nasıl anladığı açıklanabilir
      Kayalarda P dalgaları ve S dalgaları olmak üzere iki tür ses vardır. P dalgası basınç dalgasıdır ve daha hızlıdır; S dalgası ise sağa sola salınır ve biraz daha yavaştır. Kedi, insanların hissettiği depremden biraz önce ulaşan P dalgasının hışırtı sesine uyanmış olma ihtimali yüksek
      İki tür dalga olduğu ve P dalgasının önce ulaştığı https://manoa.hawaii.edu/exploringourfluidearth/physical/oce... adresinden doğrulanabilir
  • Telefon sessizdeydi ama ekran sürekli yanıp sönmüş olabilir. Benimki de o modda böyle davranıyor
    İlk işimde, izleme panosunda bir arıza patlamadan önce bunu önceden fark eden biri vardı. Kendisi de neye baktığını açıklayamıyor ya da anlayamıyordu, başkaları da aynısını yapamıyordu; ama bir şeylerin garip olduğunu söylediğinde genelde kısa süre sonra uyarı gelirdi

    • Bir insana akan veriyi yeterince uzun süre izletirsen desene uyum sağlar. İnsanlar desen bulmak üzere tasarlanmıştır; bunu bilinçli olarak açıklayabilmesi de şart değildir. Sinyal bir noktada sadece “doğru değil” gibi hissedilir
    • Böyle insanlara kanarya denir ve madenin derinlerine konurlar
    • Bazı sinyaller, beynin açık olgularla ilgilenen bölgelerini pas geçiyor gibi
      Bir şantiye şefinin, yer altındaki ya da duvar içindeki boruları olağanüstü iyi bulduğu için işçilerin saygısını kazandığına dair bir yazı okumuştum. Başta bunun psişik bir güç olduğuna inanmaya başlamış ama sonra tipik desenleri ve ara sıra görülen sezgisel olmayan ipuçlarını bilinçsizce öğrendiği sonucuna varmış. Örneğin bir binanın duvarındaki havalandırma kanalını görüp yer altında kanalizasyon borusu olma ihtimalini fark etmek gibi
    • Cyberpunk 2077'yi PS4 çıkışının ilk dönemindeki sürümüyle oynarken ben de benzerini yaşadım
      “Bu oyun birazdan çökecek, kaydetmeliyim” diye oldukça isabetli şekilde anladığım noktaya gelmiştim. Kaydedip 10 saniye sonra yeniden başlatınca gerçekten çöküyordu; hâlâ nasıl anladığımı bilmiyorum
  • 5.000 dolar epey prenslere layık bir miktarmış. 2016'da bizim şirkete de böyle bir talep gelmişti
    DDoS yedik ve görmezden gelmeye karar verdik ama ne olur ne olmaz biraz BTC araştırmıştık. Sonra DDoS savunması uygulamaya 5.000 dolardan çok daha fazlasını harcadık, ama şantajcılara para vermemek buna değer

    • Yaklaşık 20 yıl önce, sistem yöneticileri ekibinde bir şekilde DDoS saldırılarıyla ilgilenen kişi oldum. Yaklaşık 2 hafta boyunca tehdit e-postaları sürdü
      1. 50 bin dolar vermezseniz saldırırız — hiçbir şey olmadı
      2. 25 bin dolar vermezseniz hazırlanın — sunucularda biraz aşırı yük vardı ama ciddi değildi
      3. 10 bin dolar vermezseniz hazırlanın — hizmeti ciddi etkileyen ağır bir saldırı geldi
      4. 5 bin dolar, artık gerçekten sinirlendik — bu kez London'daki Tier2 ISP'yi ve tüm veri merkezini bir gün boyunca devre dışı bıraktılar. London Internet Exchange'de peering yapan diğer operatörler, bizim hizmet sağlayıcımıza giden trafiği blackhole'a almak zorunda kaldı; sonunda bizim IP'lerden biri de bir süre blackhole'da kaldı. Aceleyle DDoS azaltma hizmeti, yeni veri merkezi ve sunucu bulmamız gerekti
        Hiçbir e-postaya yanıt vermedik. Saldırganlar da epey aptaldı; yalnızca bağlantısı iyi bir yerde duran web sunucusuna saldırdılar
        Asıl para kazandıran hizmet Caribbean'daydı ve yalnızca 1,5 Mbps T1 ile 0,5 Mbps uydu yedeği vardı. Orayı çok daha kolay ve uzun süre doyurabilirlerdi; o zaman saatlik gelir kaybı yaklaşık 1 milyon dolar olurdu
    • Şantaj parası ya da fidye ödeme konusundaki sorun, saldırgana tekrar gelip aynı şeyi yapması için teşvik vermesidir
      Bir saldırgana 5 bin dolar vermek, savunma kurmaktan daha ucuz görünebilir; ama savunma kurarsan gelecekte daha az saldırıya uğrama ihtimalin artar. Ve dediğin gibi, suçlulara para vermemenin kendisi de değerlidir
  • “Yanıt vermedim ama geriye dönüp bakınca biraz dalga geçmek eğlenceli olabilirdi” kısmına gelirsek, yanıtsız kalmak tek geçerli yanıttır
    Dalga geçersen daha da göze batıp başka saldırıların hedefi olabilirsin. Bundan ne kazanacaksın ki?

    • Doğru, bunun sadece daha büyük sorun çıkarabileceğini biliyorum
      Yine de hayal etmesi eğlenceliydi; özellikle yazıda bağlantısı verilen şu videoyu izledikten sonra: https://www.youtube.com/watch?v=dWzz3NeDz3E
  • Eskiden aileden biri, bulaşık makinesinden su sızdığını kedi alarmı sayesinde fark etmişti
    Sonuçta kedi ya onu kurtarmaya çalışıyordu ya da öldürmeye; ikisinden biri

    • Neil Gaiman'ın Anansi Boys romanında buna benzer bir anekdot var
      Dışarıda uyuyan biri karga sesiyle uyanıyor; tam o sırada büyük bir kedigiller üyesi, muhtemelen bir kaplan, gizlice yaklaşıyor
      Bir karakter karganın o kişiyi uyarmaya çalıştığını düşünüyor, bir diğeri ise kuşun yemekten kalan artıkları yemek için uyuyan kişiyi kaplana haber verdiğini düşünüyor
    • “Kurtarmaya çalışıyordu ya da öldürmeye” ha; tersine çevrilmiş Schrödinger'in kedisi gibi
  • “Berbat gramer” demek, tam da ChatGPT öncesi döneme yakışır
    Biraz daha ciddi konuşursak, DDoS saldırılarını sonsuza dek engellemenin bir yolu bir gün çıkar mı? Her tehdit kötü ama DDoS en sıradan saldırı türü gibi geliyor. Özel bir beceri ya da bilgi gerekmiyor; bir script çalıştırmak ya da bunu hizmet olarak senin yerine yapacak birine para ödemek yeterli

    • “Tek bir script çalıştırırsın” kadar basit değil
      IP adresleri, IPv6 ise alt ağlar, sıradan kullanıcılar için sınırlı kaynaklardır; bant genişliği de öyle. Çoğu amplifikasyon saldırısı IP spoofing gerektirir, bu da sıradan bağlantılarda çoğu zaman mümkün değildir
      Hacim tabanlı bir saldırıysa daha fazla bant genişliği olan taraf kazanır. Saldırgan burada amplifikasyon kullanabilir. Yük tabanlı ya da uygulama katmanı saldırısıysa, saldırgan IP’lerini güvenlik duvarı seviyesinde engelleyerek çözülebilir. Bu örnekte zaten WAF/Cloudfront olduğu için saf hacim saldırısından çok uygulama katmanı saldırısına yakın
      Engellenecek saldırgan IP’lerini bulmak; maliyeti kaynak IP bazında doğru atfetmek, meşru kullanıcı etkinliğinin sağladığı faydayı da kaynak IP bazında doğru atfetmek ve sonra maliyeti faydasını açık ara aşan IP’leri ya da aralıkları engellemek meselesidir
      Söylemesi kolay, yapması değil. Maliyet; açık bağlantıların belleği tüketmesi, TLS handshake, web sunucusunun ayrıştırması pahalı istekler, pahalı veritabanı sorgularını tetikleyen istekler, giriş/çıkış bant genişliği gibi birçok biçimde ortaya çıkar. Bu yüzden çoğu kişi öne Cloudflare ya da buradaki gibi Cloudfront koyar ve bu örnekte olduğu gibi manuel kurallarla etrafından dolaşır
    • Cloudflare, belli ölçüde merkezileşme maliyetini göze alırsan oldukça iyi engelliyor
      Protokol katmanında DDoS’a dayanıklı hale getirmenin bir yolu olsa harika olurdu ama bunun mümkün olup olmadığından emin değilim
    • Uygulama katmanı DDoS genelde, kendisi pahalı bir iş yapmamış istemciler için pahalı işler yapmamak yoluyla engellenir. Söylemesi kolay olsa da pratikte bazen zor olabilir
      Bir de hacim tabanlı DDoS var. Bunu herkesten daha fazla bant genişliğine sahipsen engelleyebilirsin, ama oldukça zordur ve seni de potansiyel bir saldırgana dönüştürebilir
      Buradaki yenilik, trafik filtrelerini BGP ile yayma biçimidir. Null routing, minimum uygulanabilir ürün sayılır. Bu IP saldırı altında, o tarafa giden trafiği mümkün olduğunca çabuk çöpe atın, gibi. Daha hassas sistemler de gördüm; UDP’yi atmak, parçalanmış paketleri atmak, UDP/TCP’de belirli portların gelen/giden paketlerini atmak gibi
      Bu sistemlerin çoğu, özel rotaların doğrudan peering ötesine yayılmaması için tasarlanmıştır; ancak bazı durumlarda yayılması tercih edilebilir
    • Konu yüzünden ChatGPT’yi CatGPT diye okudum ve artık aklımdan çıkmıyor
    • Ağ çok daha dağıtık ve düşük bant genişlikli olursa belki mümkün olabilir
      Müşterilerimin çoğu Mexico’daysa ve Canada DDoS yapıp benimle Canada arasındaki hattı dolduruyorsa bu büyük bir sorun olmayabilir. Tabii Mexico tarafındaki tüketici router’ları o Canada darboğazına yardım etmeye kalkışmadığı sürece
  • Kedi mama kabını bildirimlere bağladığını sandım
    Her hâlükârda sevimli. Kedinin adı neydi?

    • Bu yazıyı yazarken, iyi eğitilmiş bir köpek varsa izleme servisini belirli bir ses çıkaran cihaza bağlayıp, o sesi duyan köpeğin insanlara haber vermesini sağlayabileceğimi düşündüm
      Adı Bamboo’ydu. Ne yazık ki kanserden kaybettik. Onu sahiplendikten sonra yaptığı ilk şeylerden biri bambu saksımı yemeye çalışmak olduğu için adını öyle koymuştum
    • İlginçtir, Australian telekom şirketi Optus’ın çöktüğünü ilk müşterinin fark etme biçimi de buydu
      Kablosuz kedi mama kabı internete bağımlıydı; mama gelmeyince kedi gidip yöneticisine şikâyet etti
    • Purrvice’ten Danielle’i öneririm
  • Şu kitap aklıma geldi: Dogs that Know When their Owners are Coming Home https://www.sheldrake.org/books-by-rupert-sheldrake/dogs-tha...

  • Token bucket ile DDoS’u engellemek o kadar kolay ki, genelde kedinin beni uyandırması gereken tek zaman Discord’umun baskına uğradığı anlar oluyor

    • İlk kez duydum, o yüzden baktım: https://en.wikipedia.org/wiki/Token_bucket
      Güvenlik duvarında ya da ingress tarafında, uygulama sunucusuna ulaşmadan önce aşırı yük oluşturan paketleri atmaya daha yakın görünüyor
    • Bu yalnızca bazı DDoS türleri için geçerli ;)
      Bağlantı isteği miktarı ya da benzersiz IP adresi sayısı yeterince büyük olan bir saldırı, hizmeti yine de aşırı yükleyebilir
      Token bucket genellikle genel dayanıklılık stratejisinin bir parçasıdır; tüm hizmet engelleme sorunlarını çözen sihirli bir çözüm değildir