4.7 · Seviye 0 · Dijital Dünyanın Temelleri · Atölye
Geliştirici araçlarıyla bir sayfayı okumak
tarayıcının ağ sekmesinde istekleri, çerezleri ve sertifikayı görmek
Siber Güvenlik Akademisi — M04, İnternet ve Web · 1.842 kelime · 3 saha durumu · ≈ 8 dk okuma · 12 dk dinleme
Saha durumlarındaki kişiler ve kurumlar kurgusaldır; kaynaklar gerçektir. Bu akademi savunma odaklıdır: saldırılar mekanizma düzeyinde anlatılır, adım adım saldırı tarifi verilmez. Uygulamalar yalnız kendi cihazında, kendi hesabında ya da yalıtılmış bir laboratuvarda yapılır; başkasının sistemine izinsiz erişim suçtur. Dersler hukuki danışmanlığın yerini tutmaz.
Açılış
İzmir'deki evde bir akşam Barış, Ece'ye telefonunu uzattı. Oynadığı bir oyunun sohbet grubunda biri, oyun içi parayı bedavaya çoğaltmanın bir yolunu paylaşmıştı: oyunun web sitesine giriş yap, klavyede birkaç tuşa birlikte basarak açılan pencereyi aç, "Konsol" yazan sekmeye bu kodu yapıştır, Enter'a bas. Barış denemişti. Ama tarayıcı kodu yapıştırmasına izin vermemiş, yerine bir uyarı göstermişti: yalnız anladığın ve kendin incelediğin kodu yapıştır, devam etmek istiyorsan "allow pasting" yaz.
Barış yazmamış, önce Ece'ye sormuştu. Ece kodun ilk satırlarına baktı ve gördüğü şey onu güldürmedi: kod, Barış'ın oyun hesabının oturum bilgisini alıp başka bir adrese gönderiyordu. Bedava para yoktu; Barış'ın hesabı, Barış'ın kendi eliyle başkasına verilecekti.
Ece pencereyi kapatmadı. Bunun yerine Barış'a o pencerenin aslında ne olduğunu göstermeye karar verdi: tarayıcının içindeki ve her web sitesinin konuşmasını görünür kılan bir alet çantası. Bu atölye o alet çantasını, kendi bilgisayarında, Modül 4'te öğrendiğin her şeyi kendi gözünle görmek için kullanmayı öğretiyor ve onu kötüye kullanmak isteyenlerin kurduğu tuzağı tanıtıyor.
Tek fikir
Tarayıcıların geliştirici araçları, bir sayfanın gönderdiği istekleri, aldığı yanıtları, çerezlerini ve sertifikasını görünür kılar. Bu araçlar okumak için mükemmeldir; ama konsoluna başkasının verdiği bir kodu yapıştırmak, kendi hesabının anahtarını o kişiye vermektir.
Nasıl çalışır
Modül 4 boyunca HTTP isteklerini ve yanıtlarını, durum kodlarını ve başlıkları, tarayıcının sayfayı nasıl kurduğunu, aynı köken politikasını, çerezleri, şifreli bağlantıyı ve bulutu konuştuk. Bunların hepsi her sayfa açılışında tarayıcının içinde olur, ama kullanıcı yalnız sonucu, yani çizilmiş sayfayı görür. Geliştirici araçları perdeyi kaldırır.
Araçlar sekmeler hâlinde düzenlenmiştir ve bu atölyede dördünü kullanacağız. Ağ sekmesi, sayfanın açılırken gönderdiği bütün istekleri tek tek listeler: hangi adrese, hangi yöntemle, hangi durum koduyla ve ne kadar sürede. Bir isteğe tıklandığında istek ve yanıt başlıkları görünür; HTTP dersinde curl ile gördüğün başlıkların aynısı.
Depolama sekmesi, Chrome'da "Uygulama", Firefox'ta "Depolama" adını taşır ve sitenin tarayıcıya bıraktığı çerezleri ve diğer verileri gösterir. Çerez ve oturum dersinde konuştuğumuz Secure, HttpOnly ve SameSite nitelikleri burada her çerezin yanında bir sütun olarak görünür. Güvenlik bilgisi ise bazı tarayıcılarda ayrı bir sekmede, bazılarında adres çubuğundaki simgeden açılan pencerede durur ve bağlantının şifreleme bilgisini ve sertifikayı gösterir.
Dördüncü sekme konsoldur ve özel bir dikkat ister. Konsol, sayfanın kökeninde çalışan bir komut satırıdır: oraya yazılan her kod, tarayıcı dersinde gördüğümüz gibi, sitenin kendi kodu gibi, aynı yetkiyle çalışır. Sitenin çerezlerine, oturumuna ve sayfadaki her şeye erişebilir.
Bu tuzak o kadar yaygın oldu ki tarayıcı üreticileri doğrudan önlem aldı.
Barış'ın gördüğü uyarı buydu. Uyarı bir engel değil, bir duraklamadır: "allow pasting" yazan herkes devam edebilir. Tuzağı kuranlar bu yüzden talimatlarına çoğu zaman o iki kelimeyi yazmayı da ekler.
Sahada
Savunma
Geliştirici araçlarının savunmaya katkısı iki yönlüdür: görmeyi sağlarlar ve kötüye kullanılabildikleri için dikkat isterler.
Görme tarafında, bu araçlar bir kullanıcının bir siteyle kurduğu konuşmayı kendi gözüyle denetlemesini sağlar. Bir sayfanın hangi üçüncü taraflara istek gönderdiğini, çerezlerinin nasıl korunduğunu ve bağlantının hangi sertifikayla kurulduğunu görmek, gizlilik ve güvenlik kararlarını tahminden kanıta taşır. Kurumlarda bu, Selin'in ve teknisyenin yaptığı gibi, kendi sitelerini ve kullandıkları hizmetleri değerlendirmenin en ucuz yoludur. Şüpheli sayfaları incelemek ise Gülay Hanım'ın yaptığı gibi yalnız bu iş için ayrılmış, ana ağdan ayrı bir ortamda yapılır.
Dikkat tarafında tek ve kesin bir kural vardır: konsola, ne yaptığını tam olarak anlamadığın bir kodu yapıştırma. Bu kural, kodu kim verirse versin geçerlidir: bir arkadaş, bir sohbet grubu, bir "destek görevlisi", bir video. Konsola yapıştırılan kod sitenin kendi kodu gibi çalışır ve oturumunla her şeyi yapabilir. "Bedava para", "gizli özellik", "hesabını doğrula" ya da "hatayı düzelt" diye sunulan konsol talimatları, kendi kendine betik çalıştırma tuzağının klasik kılıklarıdır. Tarayıcının uyarısını görürsen, o uyarı tam olarak bu durum için konmuştur.
Ailen ve çevren için de bir savunma var: bu tuzağı bilmeyen birine, Ece'nin Barış'a yaptığı gibi, bir kez göstermek. Konsol, çoğu insanın hiç açmadığı bir penceredir; birinin sana onu açtırmaya çalışması, kendi başına bir uyarı işaretidir.
Siteyi yapanlar için ise savunma, çerezleri HttpOnly olarak işaretlemektir: konsola yapıştırılan kod bile HttpOnly çerezi doğrudan okuyamaz. Bu, tuzağın etkisini sınırlar ama ortadan kaldırmaz; çünkü konsoldaki kod oturumu kullanarak istekler de gönderebilir.
Uygulama
Atölyenin asıl işi bu bölümde. Kendi bilgisayarında, sık kullandığın bir sitede geliştirici araçlarını açacak ve Modül 4'ün her dersini bir kez kendi gözünle göreceksin. Yalnız okuyacaksın; konsola hiçbir şey yazmayacaksın.
Gördüklerini aşağıdaki gibi bir tabloya geçir:
| Ne baktım | Ne gördüm | Hangi derse bağlanıyor |
|---|---|---|
| Ağ sekmesi, istek sayısı | Sayfa açılırken gönderilen toplam istek | HTTP isteği ve yanıtı |
| Farklı alan adları | Sitenin kendi alan adı dışındaki adresler | Tarayıcı ne yapar? |
| Ana belge başlıkları | Durum kodu ve güvenlik başlıkları | HTTPS ve kilit simgesi |
| Çerezler | Secure ve HttpOnly işaretli çerez sayısı | Çerez ve oturum |
Defter: Tehditler bölümünde incelediğin sitenin adı ve tablonun dört satırı; acil durum sayfasına tek cümlelik bir kural: konsola, kimden gelirse gelsin, anlamadığım kodu yapıştırmam. Bu kuralı ev halkıyla ya da ailenle bir kez paylaştığın tarih.
Hata köşesi
Yaygın yanlış"Geliştirici araçları hackerların aracıdır, açarsam bir şeyleri bozarım."
Geliştirici araçları her modern tarayıcıda yerleşik gelir ve yazılımcıların günlük aracıdır. Okumak hiçbir şeyi bozmaz; sayfayı yenilediğinde her şey eski hâline döner. Bu araçlar, bir sitenin seninle nasıl konuştuğunu görmenin en dürüst yoludur.
Yaygın yanlış"Konsola yapıştırdığım kod yalnız benim ekranımda çalışır, kimseye zarar vermez."
Konsoldaki kod, sitenin kendi kodu gibi ve senin oturumunla çalışır. Hesabının verilerini okuyabilir, senin adına istek gönderebilir ve oturum bilgini başka bir adrese taşıyabilir. Zarar, tam olarak sana ve hesabına verilir.
Yaygın yanlış"Tarayıcı uyarı verdiyse ve ben 'allow pasting' yazdıysam, kod güvenlidir."
Uyarı kodu incelemez; yalnız durup düşünmeni ister. O iki kelimeyi yazmak, uyarıyı geçmenin yoludur, kodun güvenli olduğunun kanıtı değil. Tuzağı kuranlar talimatlarına bu kelimeleri yazmayı da ekler.
Etik ve sınırlar
Geliştirici araçları, bir sayfanın senin tarayıcında gösterdiği her şeyi okumanı sağlar ve bunu kendi bilgisayarında, olağan kullanım sırasında yapmak tamamen meşrudur. Aynı araçlarla bir sitenin isteklerini değiştirmek, başkasının hesabına ait verilere ulaşmaya çalışmak ya da sitenin kurallarını aşmaya çalışmak ise okumaktan müdahaleye geçmektir; sitenin sahibi sana bunun için yetki vermediyse bu çizgiyi geçmenin hukuktaki karşılığı, modülün ilk dersinde andığımız bilişim suçlarıdır. Araçlarla bir zayıflık gördüğünde yapacağın iş, gördüğünü olduğu gibi not edip sahibine iletmektir. Ve en önemlisi: kimseye konsola kod yapıştırmasını söylemezsin. Bir arkadaşına "şunu yapıştır, işe yarıyor" demek, iyi niyetle bile olsa, onun hesabını bilmediğin bir koda teslim etmesini istemektir.
Kapanış
- Geliştirici araçları, tarayıcının bir sayfayla yaptığı konuşmayı görünür kılar: Ağ sekmesi istekleri ve başlıkları, depolama sekmesi çerezleri, güvenlik bilgisi sertifikayı gösterir ve bunlarla Modül 4'ün her kavramı kendi gözünle görülebilir.
- Konsol, sayfanın kökeninde ve senin oturumunla çalışan bir komut satırıdır; oraya yapıştırılan her kod sitenin kendi kodu gibi iş görür.
- Kendi kendine betik çalıştırma tuzağına karşı tek kural, anlamadığın kodu kim verirse versin konsola yapıştırmamaktır; tarayıcının uyarısı bir duraklamadır, kodun güvenli olduğunun kanıtı değildir.
Üç soru
- Barış'a sohbet grubunda verilen kod neden "bedava para" değil, bir hesap ele geçirme aracıydı?
- Selin geliştirici araçlarının hangi sekmesiyle, ödeme sayfasının hangi üçüncü taraflara istek gönderdiğini nasıl buldu?
- Tarayıcının "allow pasting" yazılmasını isteyen uyarısı neden tek başına yeterli bir koruma değildir?
Yanıtlar
- Konsola yapıştırılan kod, oyun sitesinin kendi kodu gibi ve Barış'ın oturumuyla çalışırdı. Kod oturum bilgisini alıp başka bir adrese gönderecek biçimde yazılmıştı; Barış onu çalıştırsaydı, hesabının anahtarını kendi eliyle kodu yazan kişiye vermiş olacaktı. Bedava para vaadi, kullanıcıyı kodu kendi eliyle çalıştırmaya ikna etmek için kurulmuş bir yemdi.
- Ödeme sayfasını açıp Ağ sekmesini izledi, sayfayı yeniledi ve istekleri alan adına göre sıraladı. Şirketin kendi alan adı dışındaki adresler, sayfaya yüklenen üçüncü taraf betikleri ve onların yüklediği başka betiklerdi. Liste bir sohbet balonunun kendi içinde iki başka şirketin betiğini yüklediğini gösterdi.
- Uyarı kodu incelemez, yalnız kullanıcıyı durdurup düşünmeye davet eder. "allow pasting" yazan herkes devam edebilir ve tuzağı kuranlar talimatlarına bu kelimeleri yazmayı da ekler. Gerçek koruma, anlaşılmayan kodu kim verirse versin konsola yapıştırmamak kuralıdır.
Sonraki derse köprü
Modül 4 burada bitiyor. Web'in nasıl konuştuğunu, tarayıcının ne yaptığını ve bu konuşmayı kendi gözünle nasıl okuyacağını biliyorsun. Bu atölyede araçları tıklayarak kullandın; ama güvenlik işinin büyük kısmı tıklanan pencerelerde değil, metin tabanlı bir arayüzde yürür. Modül 5 komut satırına giriyor ve ilk ders, neden komut satırı sorusunu soruyor: kabuk kavramını ve güvenlik çalışanlarının neden bu siyah pencereye bu kadar çok zaman ayırdığını.
Anlamadığın bir yer mi var?
Mentor yalnız bu dersin metnine dayanarak cevap verir. Metinde geçmeyen bir şey sorarsan uydurmaz, geçmediğini söyler.