Geçtiğimiz ay, İstanbul’da bir AVM’nin otoparkından çıkarken, ödeme noktasındaki park makinesinin üzerinde duran ek bir etiketi fark ettim. Genellikle mobil uygulamadan ödeme yaptığım için bu tür makinelere pek dikkat etmem, ama o gün uygulamada bir sorun vardı. Etiketin üzerindeki QR kodu tarattığımda, bankanın mobil uygulamasına benzer, ama ufak tefek farkları olan bir ödeme sayfası açıldı. İlk bakışta normal gibi duruyordu, ancak dikkatli inceleyince alan adının resmi banka adresinden farklı olduğunu anladım. Bu, “quishing” olarak bilinen bir QR kod dolandırıcılığı girişimiydi ve fiziksel dünyada ne kadar dikkatli olmamız gerektiğini bir kez daha gösterdi.
QR kod dolandırıcılığı, yani quishing, kullanıcıların mobil cihazlarıyla taradıkları QR kodları aracılığıyla kötü niyetli web sitelerine, sahte uygulamalara veya kimlik avı sayfalarına yönlendirilmesidir. Bu saldırılar, genellikle banka bilgileri, kredi kartı numaraları veya kişisel verileri çalmak amacıyla tasarlanır. Park makinesi gibi günlük hayatımızda sıkça kullandığımız ve güvenilir kabul ettiğimiz yerlere yerleştirilen sahte etiketler, bu tür dolandırıcılıkların en sinsi ve etkili yollarından biridir, çünkü kullanıcılar genellikle fiziksel bir makineye duydukları güveni, o makine üzerindeki bir etikete de aktarma eğilimindedir.
Quishing Nedir ve Neden Bu Kadar Tehlikelidir?
Quishing, “QR code” ve “phishing” kelimelerinin birleşimiyle ortaya çıkan, QR kodları kullanarak yapılan kimlik avı saldırılarını tanımlayan bir terimdir. Bu saldırılar, basılı materyaller, e-postalar, web siteleri veya fiziksel nesneler üzerine yerleştirilmiş sahte QR kodları aracılığıyla gerçekleştirilir. Kullanıcılar, bu kodları telefonlarıyla taradıklarında farkında olmadan kötü amaçlı bir URL’ye yönlendirilirler. Bu URL, meşru bir site gibi görünerek kişisel bilgileri, banka hesap detaylarını veya şifreleri çalmayı hedefler.
Bu tür dolandırıcılıkların tehlikesi, QR kodların kullanım kolaylığı ve her yerde yaygınlaşmasından kaynaklanıyor. Bir e-postadaki linke tıklarken belki iki kere düşünürüz, ama bir restoranda menüye erişmek veya bir park makinesinde ödeme yapmak için QR kodu taramak artık o kadar içgüdüselleşti ki, çoğu zaman nereye yönlendirildiğimizi kontrol etmiyoruz bile. Ayrıca, mobil cihazlarda URL’lerin tam adresini görmek veya sertifika bilgilerini kontrol etmek, masaüstü tarayıcılara göre genellikle daha zordur. Bu durum, kötü niyetli kişilerin sahte siteleri daha inandırıcı hale getirmesini kolaylaştırır. Geçen yıl globalde quishing saldırılarının %51 artış gösterdiğini okumuştum, bu da meselenin ne kadar ciddi bir boyut aldığını ortaya koyuyor.
Park Makinesi Senaryosu: Sahte Etiket Nasıl Çalışır?
Park makinesi üzerindeki sahte QR kod senaryosu, quishing’in en pratik ve etkili uygulamalarından biridir. Bu yöntemde, dolandırıcılar öncelikle hedeflenen park makinesini veya ödeme noktasını belirler. Ardından, üzerinde kötü amaçlı bir URL’ye yönlendiren bir QR kodu bulunan, orijinal ödeme etiketine benzer tasarlanmış sahte bir çıkartma hazırlarlar. Bu çıkartma, genellikle makinenin mevcut QR kodu veya ödeme talimatlarının üzerine yapıştırılır. Bazen de, makinenin boş bir yüzeyine “Mobil Ödeme İçin Tarayın” gibi bir başlıkla eklenir.
Bu senaryonun işleyişi oldukça basittir. Siz aracınızı park ettikten sonra ödeme yapmak için makineye gelirsiniz. Normalde kullandığınız bir mobil uygulama yoksa veya makinedeki fiziki ödeme yöntemlerini kullanmak istemiyorsanız, QR kod seçeneğine yönelirsiniz. Makine üzerinde gördüğünüz etiketi tararsınız ve telefonunuzda açılan web sayfası, size park ücretini ödemek için kredi kartı bilgilerinizi girmenizi ister. Eğer dikkatli olmazsanız, girdiğiniz tüm bilgiler doğrudan dolandırıcıların eline geçer ve kartınızdan izinsiz çekimler yapılabilir. Bir müşteri projesinde, benzer bir zafiyetin lojistik merkezindeki giriş-çıkış otomasyon sisteminde kullanılabileceği üzerine bir risk analizi yapmıştık; fiziksel erişim kontrolünün ne kadar kritik olduğunu bir kez daha görmüştüm.
graph TD;
A["Kullanıcı Park Makinesine Gelir"] --> B["Makine Üzerindeki QR Kod Etiketini Görür"];
B --> C{Etiket Orijinal mi?};
C -- Hayır (Sahte) --> D["Kullanıcı Sahte QR Kodu Tarar"];
C -- Evet (Orijinal) --> E["Kullanıcı Güvenli Ödeme Sayfasına Yönlendirilir"];
D --> F["Sahte Ödeme Sayfası Açılır (Phishing Sitesi)"];
F --> G{"Kullanıcı Bilgilerini Girer mi?"};
G -- Evet --> H["Bilgiler Dolandırıcılara İletilir"];
G -- Hayır --> I["Kullanıcı Fark Eder ve İşlemi İptal Eder"];
H --> J["Maddi Zarar / Kimlik Hırsızlığı"];
I --> K["Güvenli Ödeme Yöntemi Aranır"];
Güvenilir QR Kodları Nasıl Ayırt Edilir?
Güvenilir QR kodlarını sahtelerinden ayırt etmek, özellikle fiziksel dünyada her zaman kolay değildir. Ancak, edindiğim tecrübeler ve güvenlik pratikleri ışığında birkaç kritik kontrol noktası belirledim. Öncelikle, bir QR kodu taramadan önce her zaman kodun yerleştirildiği yüzeyi ve etiketin kendisini dikkatlice inceleyin. Eğer etiketin üzerinde yıpranma, buruşukluk, çift katman veya yapıştırma izleri varsa, bu bir sahte etiket işareti olabilir. Orijinal QR kodları genellikle makinenin veya ürünün bir parçası olarak basılıdır, üzerine sonradan yapıştırılmazlar.
İkinci olarak, QR kodu taradıktan sonra telefonunuzda açılan web sayfasının URL’sini mutlaka kontrol edin. Bankaların, ödeme sistemlerinin veya resmi kurumların web siteleri her zaman bilinen ve güvenilir bir alan adına sahiptir (örneğin, bankaadi.com.tr, odemeplatformu.com). URL’de yazım hataları, ek karakterler (örn. bankaadi-guvenli.com veya bankaadi.net) veya tanınmayan bir alan adı uzantısı (örn. .xyz, .top) varsa, bu kesinlikle bir dolandırıcılık işaretidir. Benim kendi yan ürünlerimden birinin finansal hesaplayıcılarının backend’ini tasarlarken, alan adı denetimi ve SSL sertifikası geçerliliğini sürekli kontrol eden bir mekanizma kurmuştum; bu kontroller basit ama çok etkilidir.
Üçüncü olarak, asla kişisel veya finansal bilgilerinizi isteyen bir web sitesine körü körüne güvenmeyin. Eğer bir park ödeme sitesi size beklenmedik şekilde çok fazla bilgi soruyorsa veya garip bir arayüze sahipse, tereddüt edin. Çoğu meşru ödeme sistemi, sadece gerekli olan minimum bilgiyi ister. Örneğin, banka uygulamaları genellikle sizi kendi güvenli ortamlarına yönlendirir ve şifrenizi veya kart bilgilerinizi doğrudan bir web sayfasında girmenizi istemezler. Şüphe duyduğunuzda, ödemeyi başka bir yöntemle yapmayı veya ilgili kurumun resmi mobil uygulamasını kullanmayı tercih edin.
Quishing Saldırılarına Karşı Bireysel Korunma Yöntemleri
Quishing saldırılarından korunmak için alabileceğimiz bazı pratik önlemler var. İlk ve en önemlisi, her zaman tetikte olmak ve şüpheci yaklaşmaktır. Günlük hayatımızda karşılaştığımız her QR kodunu, özellikle ödeme veya kişisel bilgi gerektiren durumlarda, bir potansiyel risk olarak değerlendirmeliyiz. Benim kendi siteme yaptığım anonim Türkiye veri platformunda bile, kullanıcıların giriş bilgilerini korumak için çok katmanlı güvenlik doğrulama adımları ekledim; çünkü en küçük bir zafiyet bile büyük sorunlara yol açabilir.
İkinci olarak, QR kod tarayıcı uygulamanızı akıllıca seçin. Bazı üçüncü taraf tarayıcı uygulamaları, URL’yi açmadan önce size önizleme gösterebilir veya kötü amaçlı sitelere karşı uyarı verebilir. Telefonunuzun yerleşik kamera uygulamasını kullanıyorsanız, tarama sonrası açılan URL’yi dikkatlice kontrol etmeyi alışkanlık haline getirin. Hatta mümkünse, doğrudan ilgili kurumun kendi mobil uygulamasını kullanarak ödeme yapmayı tercih edin. Örneğin, bir park yeri için mobil uygulama mevcutsa, QR kod yerine doğrudan uygulamayı açıp plakayı girerek ödeme yapmak çok daha güvenlidir.
Üçüncü olarak, kimlik avı (phishing) konusunda genel farkındalığınızı artırın. Quishing, phishing’in sadece bir varyantıdır. E-posta, SMS veya diğer platformlar üzerinden gelen linklerin veya mesajların doğruluğunu sorguladığımız gibi, fiziksel dünyadaki QR kodlarını da aynı titizlikle değerlendirmeliyiz. Şifrelerinizi periyodik olarak değiştirmek ve iki faktörlü kimlik doğrulama (2FA) kullanmak, çalınan bilgilerin kötüye kullanılmasını büyük ölçüde engeller. Bir keresinde bir projede, 2FA’nın devreye alınmasıyla yetkisiz erişim denemelerinin %90’dan fazla azaldığını gözlemlemiştim, bu sayı gerçekten çarpıcıydı.
Dijital Kimlik Avının Evrimi: Quishing ve Ötesi
Dijital kimlik avı, yani phishing, sürekli evrilen bir tehdit. Geleneksel e-posta tabanlı saldırılardan, SMS (smishing), sesli aramalar (vishing) ve şimdi de QR kodları (quishing) gibi farklı kanallara yayıldı. Bu evrimin temel nedeni, dolandırıcıların her zaman insanların en az bekledikleri veya en güvendiği kanalları hedeflemesidir. Fiziksel dünyadaki nesnelere duyduğumuz “dokunsal” güven, quishing’i özellikle etkili kılan bir faktör. Bir makinenin üzerindeki etiketin sahte olabileceği fikri, çoğumuzun aklına kolay kolay gelmez.
Benim yıllardır sistem güvenliği ve network tarafında edindiğim tecrübeler, bu tür saldırıların sadece teknik zafiyetlerden değil, aynı zamanda insan faktöründen de beslendiğini gösteriyor. Sosyal mühendislik, dijital güvenlik zincirinin en zayıf halkası olmaya devam ediyor. Bu nedenle, sadece teknolojik önlemler almak yeterli değil; aynı zamanda kendimizi ve çevremizdekileri bu tür tehditler konusunda bilinçlendirmemiz gerekiyor. Kendi Android spam uygulamamı geliştirirken, gelen SMS’lerin içeriğini analiz ederek potansiyel smishing saldırılarını tespit etmeye yönelik algoritmalar üzerinde çalışmıştım. Bu tür kişisel projeler bile, tehdit aktörlerinin ne kadar yaratıcı olabileceğini anlamamızı sağlıyor.
Quishing, sadece park makineleriyle sınırlı değil. Kafelerde sahte Wi-Fi QR kodları, otobüs duraklarında sahte kampanya QR kodları veya hatta halka açık yerlerdeki ilan panolarına yapıştırılmış sahte bağış QR kodları gibi varyasyonlarını da gördüm. Her biri, farklı bir bağlamda aynı temel prensibi kullanıyor: güveni kötüye kullanarak kullanıcıyı kötü amaçlı bir hedefe yönlendirmek. Bu durum, gelecekte daha da karmaşık ve çok kanallı saldırıların ortaya çıkabileceğine işaret ediyor.
Kurumsal Düzeyde ve Kamu Alanlarında Alınabilecek Önlemler
Sadece bireysel farkındalık yeterli değil; kurumların ve belediyelerin de bu tür quishing saldırılarına karşı önlem alması gerekiyor. Benim bir üretim firmasının ERP’sini geliştirirken gördüğüm en önemli şeylerden biri, güvenlik konusunun uçtan uca düşünülmesi gerektiğiydi. Bir ödeme makinesinin güvenliği, sadece yazılım veya network tarafında değil, fiziksel erişim kontrolünde de başlar.
Öncelikle, kamuya açık alanlarda kullanılan QR kodlu ödeme sistemleri veya bilgilendirme panolarının fiziksel güvenliği artırılmalıdır. Park makinelerinin veya diğer otomatların QR kod etiketleri, kolayca çıkarılıp değiştirilemeyecek şekilde tasarlanmalı veya korunmalıdır. Örneğin, QR kodlarının doğrudan makinenin kasasına lazerle işlenmesi veya şeffaf, dayanıklı bir kapakla korunması düşünülebilir. Hatta, üzerinde güvenlik hologramı veya özel bir kimlik numarası olan, kopyalanması zor etiketler kullanılabilir.
İkinci olarak, kurumlar, kullandıkları QR kodların güvenliğini düzenli olarak denetlemelidir. Bu, QR kodlarının yönlendirdiği URL’lerin periyodik olarak kontrol edilmesi, hatta sahte etiket yerleştirme riskine karşı fiziksel denetimler yapılması anlamına gelir. Bir bankanın iç platformu için yaptığımız sızma testlerinde, fiziksel güvenlik zafiyetlerinin çoğu zaman göz ardı edildiğini görmüştük. Örneğin, bir denetim ekibi, park makinelerindeki etiketleri belirli aralıklarla kontrol edip, herhangi bir anormallik durumunda hızla müdahale edebilir.
Üçüncü olarak, kullanıcıları eğitmek ve bilinçlendirmek kritik. Belediyeler veya ödeme sistemleri sağlayıcıları, “QR kodlarını tararken dikkatli olun” veya “Resmi uygulamamızı kullanın” gibi uyarı mesajlarını hem dijital kanallarda hem de fiziksel ödeme noktalarında belirgin bir şekilde yayınlamalıdır. Bu tür bir bilinçlendirme kampanyası, kullanıcıların şüphecilik seviyesini artıracak ve dolandırıcıların işini zorlaştıracaktır. Daha önce büyük bir TR e-ticaret sitesinde, güvenlik uyarılarının kullanıcı etkileşimini %15 artırdığını ölçmüştüm.
# Örnek: Bir QR kod URL'sinin temel kontrol mekanizması (pseudocode)
def check_qr_url(url_string):
known_safe_domains = ["bankaadi.com.tr", "odemeplatformu.com", "belediye.gov.tr"]
if not url_string.startswith("https://"):
print("UYARI: URL HTTPS ile başlamıyor. Güvenli değil.")
return False
from urllib.parse import urlparse
parsed_url = urlparse(url_string)
domain = parsed_url.netloc
if domain not in known_safe_domains:
print(f"UYARI: Alan adı '{domain}' bilinen güvenli alan adları arasında değil.")
return False
# Ek olarak, sahte subdomain veya path kontrolü yapılabilir
if "guvenli" in domain or "-" in domain: # basit bir heuristic
print(f"UYARI: Alan adı şüpheli karakterler içeriyor: {domain}")
return False
print(f"BİLGİ: URL '{url_string}' güvenli görünüyor.")
return True
# Örnek kullanım
print(check_qr_url("http://sahte-odeme.xyz/park"))
print(check_qr_url("https://bankaadi.com.tr/park-ode"))
print(check_qr_url("https://bankaadi-guvenli.com/odeme"))
Yukarıdaki basit Python pseudocode’u, bir QR kodundan gelen URL’yi kontrol etmek için kullanılabilecek temel adımları gösteriyor. Bu tür kontroller, kullanıcıların mobil cihazlarında veya arka planda çalışan güvenlik servislerinde entegre edilebilir.
Dijital Güvenlikte Uçtan Uca Yaklaşımın Önemi
Quishing saldırıları, bana dijital güvenlikte “uçtan uca” yaklaşımın ne kadar kritik olduğunu bir kez daha hatırlattı. Benim kariyerimde, network mimarisinden yazılım geliştirmeye, sistem yönetiminden operasyonlara kadar birçok alanda çalışmış biri olarak, güvenlik zafiyetlerinin tek bir noktada ortaya çıkmadığını, aksine bir zincirin farklı halkalarında gizlenebildiğini biliyorum. Bir sistemin sadece yazılım tarafını korumak, fiziksel veya sosyal mühendislik zafiyetlerini göz ardı etmek, kapıyı açık bırakmak gibidir.
Bu bağlamda, Zero Trust mimarisi prensipleri, quishing gibi saldırılara karşı da uygulanabilir. Her zaman doğrula, en az ayrıcalık ve sürekli izleme, sadece network veya sunucu güvenliği için değil, günlük hayatımızdaki dijital etkileşimler için de geçerlidir. Bir QR kodu taradığımızda, “Bu kod gerçekten beklediğim yerden mi geliyor?”, “Bu web sitesi gerçekten olması gerektiği gibi mi görünüyor?” gibi soruları sormak, Zero Trust mentalitesinin bir parçasıdır.
Sonuç olarak, quishing, modern dünyanın getirdiği kolaylıklarla birlikte gelen yeni bir güvenlik tehdidi türüdür. Bu tehdide karşı korunmak için hem bireysel dikkatimizi artırmamız hem de kurumların ve teknoloji sağlayıcılarının daha sağlam güvenlik önlemleri alması gerekiyor. Benim bu park makinesi deneyimim, küçük bir ayrıntının bile büyük bir risk taşıyabileceğini ve dijital dünyanın sadece ekranlardan ibaret olmadığını bir kez daha gösterdi. Güvenliğiniz için her zaman şüpheci kalın ve her zaman doğrulayın.