Mark Russinovich — Microsoft’un Azure CTO’su — 40 yıl önceki bir hatanın izini, günümüzün en gelişmiş yapay zeka modellerinden biriyle buldu. İlginç olan, hatanın 1986 yılında yazılmış bir 6502 makine dili kodunda saklı olmasıydı.
Yapay Zeka, Eski Kodlardaki Gizli Hataları Nasıl Buluyor?
Russinovich, 16 yaşında Apple II için yazdığı Enhancer Utility adlı programın ikili (binary) dosyasını hiçbir açıklama, değişken adı veya dokümantasyon olmaksızın yapay zekaya verdi. Model, bu tamamen okunamaz kodun içindeki mantığı yeniden inşa etti ve 40 yıldır fark edilmeyen bir hatayı ortaya çıkardı:
- Program,
GOTOkomutuyla hedef satır bulunamadığında sessizce bir sonraki satıra geçiyor veya programın sonuna ulaşabiliyordu. - Hâlbuki beklenen davranış, bir hata mesajı üretmekti.
Dört basit komutla düzeltilebilen bu hata, yapay zekanın okunamaz kodları bile analiz edebildiğini kanıtladı. Russinovich’in LinkedIn paylaşımında belirttiği gibi:
"Artık yapay zeka destekli otomatik güvenlik taramaları çağına giriyoruz. Hem savunmacılar hem de saldırganlar bu teknolojiden faydalanacak."
İnsan Kodlarının Ötesinde: Makine Dilini Doğrudan Anlamak
İnsan mühendisler, 6502 assembly dilini referans kitapçığıyla birlikte saatlerce inceleyerek anlayabilirler. Nitekim Russinovich de 1980’lerde Vic-20 ve Commodore 64 için bu kodu yazmıştı. Ancak hiç kimse, 40 yıllık bir utility’nin güvenlik denetimini yapmak için bu zahmete girmezdi.
Kod, çalışıyor, dağıtılmış ve unutulmuştu — tıpkı arkeolojik bir kalıntı gibi. Bu programın ne yaptığını bilen tek kişi, artık dünyanın en kıdemli teknoloji liderlerinden biri olan Russinovich’in kendisiydi — ve o bile carry flag hatasını fark etmemişti.
Oysa yapay zeka, bu kodu tarayıcı yenileme süresi kadar kısa bir zamanda analiz etti.
Yazılımın Geleceği: İnsan Okunurluğu Zorunlu mu?
İnsanlar için tasarlanan programlama dilleri, yazılım geliştirmenin altın standardı olarak kabul edilir. Peki ya yapay zeka, hem kodu yazabiliyor hem de okunamaz ikili dosyalardan mantığı çıkarabiliyorsa?
- Yazma tarafı: Yapay zeka, artık insanlara hitap eden kodlar üretmek zorunda değil. Geliştiriciler, doğal dille ifade edilen gereksinimleri doğrudan makine diline dönüştürebilir.
- Okuma tarafı: Yapay zeka, kaynak kodu olmayan, obfuscated veya eski sistemleri de anlayabilir.
Bu durum, insan okunabilirliğinin zorunlu olmadığı bir geleceğe işaret ediyor. Programlama dilleri, aslında insan-makine ara katmanı olarak inşa edildi. Ancak yapay zeka, bu katmanın gerekliliğini sorguluyor.
Güvenlikte Devrim:
Yapay zeka özeti
Mark Russinovich’un 1986’da yazdığı Apple II kodu, 40 yıl boyunca kimsenin fark etmediği bir hatayı barındırıyordu. Yapay zeka, bu binari kodu dekompile ederek hatayı anında tespit etti. Peki bu keşif, yazılım güvenliğinin geleceğini nasıl değiştirecek?