Telaffuzu “bag” olan bu sözcüğün kelime anlamı “böcek”tir. Ancak dijital dünyada bunun anlamı “hata”dır, sistem açığı da denebilir. “Debugging” terimi ise hatadan sıyrılmak anlamına gelir. Peki bu terim yazılım dünyasında niçin yer etmiş olabilir? 

Bug Metaforunun Tarihçesi

Geçtiğimiz yüzyılın ortalarında Amerika’da bir askerin bilgisayarında birden bir arıza meydana gelir. Adı Mark II olan bu bilgisayar; askerler tarafından kullanılan ve oldukça büyük olan bir bilgisayardır. Bir oda büyüklüğündeki bu bilgisayar üzerinde uzun araştırmalar yapan uzmanlar, nihayet sorunu tespit ederler. Bilgisayarın arasına böcek sıkışmıştır ve bu durum devrelerin yanmasına sebep olmuştur. Böcek bulunduğu yerden alınır ve devreler tamir edilir. Sonra bu devasa bilgisayar yeniden çalışmaya başlar.

Bilgisayardan sorumlu asker, not defterine böceği yapıştırır ve altına hataya dair notunu düşer. İşbu trajikomik durum, sonraki yıllarda dünyanın kabul ettiği bir terim olmuştur. O tarihten bugüne gelinceye kadar artık bilgisayarlardaki hatalara veya hasarlara bug denmiştir. Bu hataların çözüme ulaşması da “debug” biçiminde ifade edilir. Söz konusu defter, bugün Amerika’da bir tarih müzesinde orijinal biçimiyle sergilenmektedir.

Günümüzde Bug

Bug metaforu, bugün yazılım dünyasında daha modern boyut kazanmıştır. Bug için daha çok sistem açığı tanımı kullanılır. Yazılım süreçlerinde kodlama hataları fazlasıyla rutindir. Çok sayıda koddan oluşan sistemlerin bu tip hatalar barındırması ise son derece normaldir. Bug’ları yok etmenin en etkili yollarından biri güncellemelerdir. Exe dosyaları yeni güncellemeyle beraber değişir. Değişiklik sayesinde hatalı kod da ortadan kalkar. Bu basit yöntemle bug kaybolur. Buglar genel itibariyle donanım ve yazılım odaklı olmak üzere iki grupta ele alınır.

Donanım Kaynaklı Oluşan Bug Nedir?

Bugün donanımdan kaynaklanan bug sayısı görece daha düşüktür. Bilgisayar tasarımcıları bu süreç boyunca bilgisayar yapılarını başarılı bir biçimde tahlil etmiştir. Donanıma sebebiyet veren durumlar detaylı şekilde saptanmıştır. Bu vesileyle donanımdan kaynaklanan hatalar neredeyse yok hükmündedir. Bu, uzun süren çalışmalarla olumsuz deneyimlerin sonucunda bu düzeye gelmiştir.

Yazılım Kaynaklı Oluşan Bug Nedir?

Bugün bugların büyük bir kısmı yazılım kaynaklıdır. Yazılımcıların kişisel dikkatsizlikleri bunda önemli bir rol oynamaktadır. Neyse ki yazılım kaynaklı bugların çözümü düşünüldüğü kadar zor değildir. Bir yazılımın içinde bug tespit edildiğinde yapılması gereken ilk eylem, üreticiye kısa bir süre içinde ulaşmak olmalıdır. Yazılımcılar küçük bir incelemeden sonra hatayı tespit edeceklerdir. Muhtemelen bu süreçte de çözüm için bir yama yayınlayacaktır. Bu yama yüklendiği zaman başka bir değişiklik yapılmasına gerek kalmadan çözüme kavuşulur.
Hemen hemen tüm yazılımlarda veya kodlama süreçlerinde bug yer alır. Bu sistem açıklarının küçük veya büyük, bir şekilde çözüme açık olması sevindirici bir noktadır.

Örneğin oyunlarda bazı grafik hatalarıyla karşılaşmak mümkündür. Özellikle herhangi bir oyun ilk yayınlandığında veya demo süreçlerinde bazı hataları mevcut olabilir. Bunlar genelde görsel ve grafiksel içerikli olan sorunlardır. Üreticiler oyun stüdyolarında bir oyun için aylarca emek verebiliyor; fakat ister istemez bazı hatalar oluşabiliyor. Oyun üreticilerinin en büyük mesaisi de bu bugların çözümüne ilişkin gösterdikleri çabadır. Küçük hatalar olsalar bile oyun severler bu çeşit hatalar nedeniyle oyundan uzaklaşabiliyor. Bu da oyun satışlarını büyük oranda geriletebiliyor.
Oyun üreticileri açısından bu anlamda bugların kırmızı çizgi olarak görüldüğünü söyleyebiliriz. Bu hatalar rakip firmalar kadar kullanıcılar gözünde de alay konusudur. Örneğin PES ve FIFA rekabetine genellikle buglar damga vurur. 

Bug Nasıl Bulunur?

Özellikle bir oyunun yayınlandığı dönemde, önce görsel hatalara odaklanılır. Bazı oyuncular buglar ile karşılaşırken bazı oyuncular karşılaşmaz. Bunun teknik sebebi olarak kesin bir bilgi yoktur. Bu sebeple oyunun yayınlandığı ilk dönem, tam anlamıyla keşif dönemidir. Online oyun ortamlarındaki buglar için oyunun üreticileri sorumlu tutulur. Stüdyolar da bu hataları hızlıca toparlamak zorundadır. Stüdyolarda alarma geçilir ve hataların çözümü için kolektif bir çalışma devreye girer. Bu süreçte ekipteki tüm personel yoğun bir mesai harcar. Koordinasyon çoğu zaman bugların daha hızlı biçimde tespit edilmesini. Söz konusu buglara dair bildirimler çoğunlukla oyunculardan gelir. Bu sebeple en çok satış sonrasındaki geri dönüşlerden faydalanılmaktadır diyebiliriz.

Hangi Uygulamalarda Görülebilir?

Buglar; scriptler, web tabanlı uygulamalar ve programlarda görülmektedir. Peki hackerlar bu aşamada ne yaparlar?

  • Hedef siteyi analiz etmek.
  • Hedef site sahibini analiz etmek.
  • Hedef sitenin bulunduğu hostu analiz etmek.
  • Hedef sitenin register edildiği siteyi analiz etmek.

Eğer bir bugcı tarafından sitenin açığı tespit edilmişse hacklenmesi kaçınılmazdır. Sitede oluşan bug sayesinde hacker sadece siteyle yetinmeyip hostta barınan diğer sitelere de saldırır ve bunu yaparken tüm yetkilere sahiptir. Bulunan her hatanın sonucunda ihtiyaç duyulan materyal bir adet shelldir.

Saldırıdan Korunma Yolları Nelerdir?

  • Register e-maili deşifre bir adrestir. Whois bilgileri host firmasına söylenerek gizli tutulabilir. Bu e-mail çalındığında domain de kaybedilir. Bir alan adı satın alındığında deşifre olmayan bir e-mail kullanılmalıdır.
  • Domain satın alınan firmalar çoğunlukla amatör çalışırlar. Domain profesyonel ve güvenilir yerlerden alınmalıdır.
  • Host firmasının keyloggerlara ve virüslere karşı aldığı önlemler sorgulanmalıdır.
  • Siteye yüklenen her şey gözden geçirilmeli ve araştırılmalıdır.
  • Site sürekli güncel tutulmalıdır.
  • Admin şifre ve e-maillerinin güvenliği sağlanmalıdır.
     
  • Yazılım Geliştirme Süreci Nasıldır? Yazılım Geliştirme Süreci Nasıldır?
  • Oltalama Yazılımı Saldırısı (Phishing) Nedir? Oltalama Yazılımı Saldırısı (Phishing) Nedir?