Bu hafta Twitter, tarihinin en büyük hack olayını yaşadı. Dünyanın etkili kişilerine ait hesapların birçoğu hackerların eline geçti. Ele geçirdikleri hesapları düşününce bana göre çok insaflı bir hackti. Hackerlar bu açığı neyse ki sadece kendilerine biraz para kazanmak için kullandı. Hackerlar, bu etkili kişilerin hesapları üzerinden, bitcoin isteği dışında çok daha farklı mesajlar atıp tüm dünyayı birbirine katabilirlerdi. Ayrıca işin boyutunun çok büyük olması sebebi ile olay hemen anlaşıldı. Ama sadece birkaç hesapta sahte mesajlar yayınlansaydı, hesap sahibinin Twitter teknik desteğine ulaşıncaya kadar o hesaplar uzun zaman türlü belalara yol açabilirdi. Ne mi olabilirdi?
Örneğin bir milyarderin hesabından borsa manipülasyonu için mesajlar yayınlayıp şirketleri batırabilir veya büyük bir vurgun yapabilirlerdi. Sahte bir satın alma veya iflas duyurusunun bir şirketin hisselerini nasıl çalkalayacağını düşünün. Ya da hesap sahibinin uygunsuz fotomontaj resimlerinin bu hesaplardan paylaşıldığını ve ortaya çıkacak rezaleti düşünün. Devlet başkanlarının birçoğu en önemli mesajlarını Twitter’dan vermeye bu kadar hevesli iken hesabı ele geçiren kişi veya kişilerin başka bir devlete savaş ilan etmediğine dua etmek gerek.
Peki Twitter nasıl böylesine büyük çaplı şekilde hacklenebildi? Aslında cevap basit. Düşünürseniz bana hak vereceksiniz, tüm hack olaylarında yazılımlar değil insanlar hacklenir. İnsanların yaptıkları ihmaller ve hatalar yüzünden yazılımlara sızılır veya zarar verilir. Bu tür büyük çaplı ve önemli sızmaların arkasında da çoğunlukla insan ihmali vardır. Koruma yazılımları, güvenlik duvarları daha da sofistike olmaya başlasa da onları yazan ve kullananlar hala insan olduğu sürece bu olaylar bitmez. Hatta daha büyük olayları duymaya hazır olun. Çünkü yazılım üretme ve kullanmadaki alışkanlıklar değişmedikçe daha büyük hack olayları da kesinlikle kaçınılmaz olacak.
Detaylara gelirsek, hack olaylarının da temel olarak iki nedeni var. Birinci neden, tüm dünyada yazılım test mühendisliğine gerekli önemin verilmemesidir. Yazılım test mühendisliği nedir? Her tür yazılım sahaya sürülmeden önce güvenlik, işlevsellik ve kullanım deneyimi testlerinden geçirilmesi gerekir. Bu çalışmaları aşı geliştirme çalışmaları gibi düşünebilirsiniz. Aşama aşama ilerlemeli ve yazılım daha gerçek hayatta kullanılmadan önce yapılmalıdır.
Yazılımcılar temel işleve odaklanmaya meyillidir. Deneyimime göre yüzde 90 çalışan bir şey yazılımcı için yüzde 100 çalışıyordur. Zaten iş yoğunluğu ve taleplerin baskısı nedeni ile her aşamayı test edecek vakitte yoktur. Üstelik yazılımı yapanlar ile testi yapanlar da genellikle aynı kişilerdir. Bu da hataların ortaya konmasının önündeki en büyük engeldir. Genel mantık ise kullanıcıların geri bildirimlerine göre yazılım sorunlarını gidermektir. Bilişim dünyasında bir nevi “kervanı yolda düzeltmek” düşüncesi yaygındır. Genellikle de kullanıcılardan geri bildirimler gelse dahi yazılımcılar bunların çoğunu artık düzeltemeyecek durumda olduklarından veya önemsiz bulduğundan birçok yazılım yıllar boyu insanları kullanırken deli etmeye devam eder. Ancak bu detaylar sadece kullanıcıyı deli eden bir hata değillerdir. Aynı zamanda daha büyük bir açığın öncüsüdür.
İkinci temel hack nedeni ise yazılım üretenlerin ve sofistike yazılımları kullanan yetkili personelin zamanla da artan, kendilerine olan aşırı özgüvenidir. Bilişim işi ile geçen süre arttıkça süper ego daha çok devreye girer. Zamanla alınan sorumluluklar da büyür. Ve sorumluluk ne kadar büyük olursa kontrol edilecek noktaların sayısı daha da arttığından yazılan yazılıma “birim özen” de o derece azalır. Hatta kişisel özen dahi azalır. Misal, binlerce satır kod yazabilen kişilerin kendi kişisel bilgisayarına hacklenme tehlikesini bilmelerine rağmen kaçak virüs programı kurduğunu defalarca gördüm.
İlave olarak bilişim işi ile uğraşan herkes (ben dahil) günde binlerce mail aldıklarından dolayı da mail üzerinden şifre kaptırma gibi basit tuzaklara da sıradan insanlardan dahi daha rahat düşebilmektedirler. Twitter’ın bu son olayında da yetkili bir veya birkaç personelin şifrelerinin bu şekilde mail üzerinden yapılan bir “pishing çalışması” ile çalınmış olabileceği konusunda fikir birliği oluşmaya başladı.
Bu tür durumların önüne geçilebilmesi için yapılacaklar her ne kadar uygulaması imkansız kabul edilse de belli. Birincisi, yazılımları her açıdan ve her kullanıcı seviyesinde denetleyecek işleri sadece bu olan test uzmanlarına gerekli önem verilmeli. Sürekli büyüyen bir yazılım dünyası içinde, test mühendisliği, yazılım firmalarının sürekli kaynak kıstıkları bir alan olmamalı.
İkinci olarak ta yazılımcılar, bilişim dünyası içinde ne kadar başarılı olurlarsa olsunlar, mükemmel oldukları algısına inanmaya meyillerini yok edecek (ironi olarak görmeyin) “psikolojik desteğe” tabi tutulmalı.
Üçüncü olarak ta yazılımları kullanan kişilerin, kişisel veri güvenliğine ne kadar ve nasıl önem verdikleri sürekli denetimler ile denetlenmeli.
Tekrar vurgulamak istiyorum. Yazılım hacklenmiyor, ihmal ve yanlışlar yapan insan hackleniyor!