14 Ağustos 2017 Pazartesi

E-Devlet Sisteminde Yandex Skandalı

Çocuğun üniversite kaydı için www.turkiye.gov.tr adresine girdiğimde kaynak kodunda yandex.ru sitesinden çalıştırılan bir javascript kodu olduğunu gördüm.

Yandex Metrica tıpkı Google Analytics gibi çalışan bir sistem. Siteye gelen ziyaretçilerin bilgilerini toplayıp, topladığı bilgilerin çok önemsiz bir kısmını ülke/bölge lokasyonu, ip, tarayıcı bilgisi vs. gün, ay, yıl olarak raporluyor. Ancak bu sistemlerin topladığı bilgi bundan çok daha fazladır. Bir sitenin kaynak koduna böyle bir kod konulduğunda siteye gelen ziyaretçinin doldurduğu bütün form bilgileri, ve bütün çerezleri okuyabilir. Böylece sisteme giriş için kullanılan kullanıcı adı ve şifre de dahil pek çok bilgiyi ele geçirebilir.

Türkiye’nin tüm e-devlet uygulamalarının bel kemiğini oluşturan www.turkiye.gov.tr adresinde hem de (.ru) uzantılı yandex kodunun ne işi vardır?

Zaten bütün web sunucularının kendi ayrıntılı istatiksel raporlamaları vardır. Örneğin önceleri yönettiğim Linux tabanlı kendi sunucularımda açık kaynak Apache web sunucusunu kullanıyordum ve onunla birlikte yine açık kaynak kodlu Webalizer ve Awestats gibi raporlama programlarını yüklüyordum. Tüm sunucularda benzer programlar mevcuttur. Google Analytics veya Metrica’nın verdiği ziyaret raporlarından daha ayrıntılı raporlar veriyorlar.

Şimdi Metrica’ya yada Analytics’e neden ihtiyaç duyuluyor? Yandex’teki e-devlet kullanıcı istatistiklerini Cumhurbaşkanına, Başbakana, ilgili bakanlıklara ve ilgili birimlere yine Yandex sitesi üzerinden mi gösteriyorsunuz? Demek ki, birileri devlet sırrı ve mahremiyeti ile blog sitesinin gizliliği ve mahremiyeti arasındaki farkı kavrayamamış!!!

Ben bu konuyu sosyal medyada paylaşmaya başlayınca bazı webmaster arkadaşlarım orada basit bir sayaç olduğunu ve abartılmaması gerektiğini savundular. Mübarek insan, e-devlet sistemi senin kendi köyünün ziyaretçi defteri değil ki sayaç koyasın!!! Kendi sitelerinin Admin (Yönetim) kısmına yandex google sayacı ve arama motorları indexlemesi koymayan bu arkadaşlar devlet yönetiminin programına sayaç konulmasını savunabiliyor. Bilgisizlik ve sorumsuzluk, başka bir şey değil.

Siteye dahil edilen bir javascript kodun ne kadar zararlı olabileceğini herhalde bazıları farkedememiş.

Bu kod eklendiği zaman sitedeki tüm javascript etkinliklerini yapabilir. Sitede girilen tüm formları, formların içindeki tüm inputları ve bu inputlarda taşınan tüm değerleri alıp yine kendi sunucusu ile iletişim kurarak saklayabilir. Yani sisteme girmek için kimlik numarası ve edevlet şifresini yazıp enterladığın o form varya, o formdaki user ve password bilgilerini aynen yandex.ru adresine aktarabilir. Aynı şekilde sitenin tarayıcıya kaydettiği ve tekrar oradan okuduğu yine kullanıcı, password ve diğer bilgileri içeren çerezleri (cookie) okuyabilir, değiştirebilir ve kendi sunucusuna (yandex.ru) aktarabilir. Dahası, javascriptler sadece cookie ve form okumakla sınırlı değildir. Harici bir site ile makine dilinde de etkileşim sağlayabilir. XML ve JSON kullanarak da başka bir sunucudan bilgi alabilir ve başka bir sunucuya bilgi aktarabilir.

Yani o kod orada edevletin tüm veritabanını çekemez. Ama edevlete giriş yapan kullanıcının site ile etkileşiminden doğan tum bilgileri çalabilir. Alma işinin tümünü tabi ki kod yapmaz ama o kod giriş bilgilerini alır ve o giriş bilgilerine sahip olan kişiler botlar ile işin geri kalanını halleder.

Ben web sitelerinin yanısıra eticaret sistemleri ve otomasyon tasarlamış birisiyim. Arama motorlarında E-Devletin giriş sayfaları dışında indexlenmesi zaten doğru değildir. Vatandaşın tapu kayıtlarının olduğu sayfaları mı indexleyeceksiniz? Neyi indexliyorsun? Ama şifre ile giriş yapıldıktan sonraki vatandaşın tapu kayıtlarının olduğu sayfada da Yandex'in Metrica kodu hala aktif!!!

Yada (örneğin) adalet bakanlığı bölümündeki "devam eden davalar" dosyalarına da erişebiliyor Yandex'in Metrica kodu...

Ruslar bu kod ile e-devlet sistemine giriş yapan bütün vatandaşların edevlet platformu içinde yer alan tüm bilgilerini çalabilirler. Sadece şifresini değil, tapu kayıtlarından devam eden davalarına kadar!!!

Dikkat edin e-devlet bir site değil, bir sistemdir. Orası Hürriyet gazetesi değil. Bir haber sitesi yada bir alışveriş sitesi de değil. Devletin vatandaş ile bağlantı kurduğu ve gizlilik taşıması gereken KOMPLİKE BİR SİSTEMDİR. Bir site değil, bir program ve uygulamadır. Kurumlar arasında bilgi akışının sağlandığı bir platformdur. Oraya basitçe bir yandex sayacı koyamazsın. F16daki yazılımı değiştirdik, artık amerikan yazılımını değil %100 Türk yazılımı kullanıyoruz diye böbürlenen bizler, kalkmış F16 yazılımından bile daha önemli olan e-devlet sistemine (.ru) uzantılı bir sayaç programı dahil ediyoruz. Bu mudur yani?

E-devlet vatandaşın, eğitim durumunu, sağlık durumunu, vergi durumunu, sgk sicillerini, tapu ve araç kayıtlarını ve daha onlarca uygulamayı içeren komplike bir sistemdir.


Eğer bu kod dışardan yetkisiz bir şekilde konulmuşsa (ki bu ihtimal daha güçlü görünüyor), e-devlet sistemi hacklenmiş demektir. Yok eğer içerideki mühendisler koymuşsa, son derece bilinçsiz bir şekilde bir güvenlik açığı oluşturmuşlardır. Bunun sorumluluları bulunmalı!!!

Analytics yada Metrica gibi sistemlerin kullanılmasının tercih edilmesinin amacı, reklamverenlere doğru bir bilgi sunmaktır. Eğer bir haber siteniz varsa reklam almak için sitenizin ziyaretçi sayısı konusunda reklamverenleri ikna etmeniz gerekiyordur. Sizin kendi sitenizdeki sunucunuzdaki webalizer sonuçlarına güvenmeyebilir. Çünkü oradaki raporlarla oynama ihtimaliniz olabilir. Bu durumda Analytics üçüncü bir taraf olarak reklamverenlere ziyaretçilerin sayısı konusunda daha güvenilir bilgiler sağlar. E-Devlet sitesi reklam alan bir site midir?

Giriş için SMS Aktivasyonu Uygulansın

Çok mühim bir konu da girişteki kolaylıktır. Mevcut haliyle şifreyi ele geçirmesi durumunda sadece yetkisiz kişiler değil, aynı zamanda yazılım robotları (bot deniyor) da sisteme giriş yapabilir. Robotlar sistemi sömürür ve tıkanmasına da sebep olurlar. Çünkü bir vatandaşın sitede gezinirken açabileceği sayfalardan çok daha fazlasını açarlar.

Vatandaşların e-devlet şifreleri belirli mahfiller tarafından ele geçirildikten sonra, (ki muhakkak geçirilmiştir) bir robot yazılımı ile o vatandaşlara ait e-devlet platformu üzerindeki tüm bilgiler çok ayrıntılı olarak çalınabilir. Sanki o vatandaş siteyi ziyaret ediyor işlem yapıyormuş gibi bir uygulama yapılabilir. (Ki muhakkak yapmışlardır) Bu yüzden e-devlet giriş bölümüne acilen SMS Aktivasyonu uygulanmalıdır. Tıpkı bankalarda olduğu gibi vatandaş şifreyle giriş yaptığı zaman sistemde kayıtlı cep telefonuna SMS ile geçici aktivasyon şifresi gelmelidir. Vatandaşın sistemde kayıtlı cep telefonu yoksa, ilk girişte cep telefonunu tanımlamaya ve aktivasyonunu yapmaya zorlanmalıdır. Hatta yine bankalarda olduğu gibi giriş sırasında rastgele ve daha özel sorular da sorulmalı. Doğum yeri, doğu tarihi, anne kızlık soyadının bazı harfleri vs.

Önemli Sitelerde Bir Başka Güvenlik Sorunu

www.edevlet.gov.tr adresine bakınca da daha hafif olsa da yine güvenlik sorunu oluşturabilecek bir durumla karşı karşıyayız. Bir site başka bir siteden kod çalıştırmasına izin vermemeli. Bunu hiç bir banka yapmaz.

Yan resimdeki www.edevlet gov.tr sitesinde bizim sitenin dışında aspnetcdn.com, devexpress.com, jquery.com, onlinehtmltools.com, ajax.googleapis.com domainlerinden harici olarak kod kullanımına izin verildiği görülmektedir.

Günümüzde web tasarımında ve programlamasında önemli bir hale gelen framework'ler doğrudan kendi sitelerindeki CDN üzerinden kullanılmamalı.

Bu sitelerde çoğu açık kaynak olan bu framework'lerin indirilerek (download) sitenin içine kurulması bu konuda olası bazı güvenlik sorunlarını azaltmış olur.


Yeni Devam Yazısı ...
http://www.marufcetin.com/2017/08/bankalar-google-analytics-kullanyor-mu.html
Paylaş:

29 yorum:

  1. yandex kodları bugün kaldırılmış. zararın neresinden dönülse kardır. gündeme getirdiğiniz için teşekkürler.

    YanıtlaSil
  2. Şimdi kontrol ettim turkiye.gov.tr adresinde yandexin kodu yok.

    YanıtlaSil
  3. facebook.js de var.

    YanıtlaSil
  4. Şu anda anasayfada böyle bir kod görünmüyor.

    YanıtlaSil
  5. evet, yoğun baskılarımız üzerine kaldırıldı. bu yazının yazılması ile o kodun kaldırılması arasında en az iki gün geçti.

    YanıtlaSil
    Yanıtlar
    1. Maruf Bey dikkatiniz ve hassasiyetiniz müthiş. Sizi tebrik ediyorum.

      Sil
  6. Arkadaşım adamlar metrika eklemiş sen neler düşünmüşsün adamlar sanki sisteme shell atmışlar. JS üzerinden şifre ve kullanıcı adı çalma vs demişsin o kısımları okurken şok oldum. Bankalar böyle harici jsler kullanmaz demişsin. Aç hepsine bak %99u google analytics veya benzeri google jslerini kullanıyor. (fbi, nsa vs de bu sitelere dahil)

    YanıtlaSil
    Yanıtlar
    1. Kullanıcı adı ve şifre bilgileri çerezlerde saklanır ve hem analytics hem de metrica nın yaptığı şey, çerezleri toplamak.

      Sil
    2. kaydedilen id pw yi çerezlerden js ile çekemezsiniz :) isteğidiniz tarayıcıda deneyelim isterseniz.

      Sil
    3. güzel kardeşim, js ile veritabanında kayıtlı şifrelerin çekilmesinden bahsetmiyorum. oturum açtığında oturum bilgisi ve şifreye ait bilgiler (bazen şifrenin şifrelenmiş hali) çerezlere kaydedilir. siteye dahil edilen js kodları bunları okuyabilir. sadece bunları değil, login formunda kullanıcı adını ve şifreni sen yazmaya başladığın an okuyabilir.

      js eventleri biliyorsan zaten bu abes tartışmayı yapmaman lazım, tam bilmiyorsan da js event komut ve yöntemlerini bir incele.

      Sil
  7. Tebrikler. ...Maruf Bey Teknolojisi ileri ülkeler niye gelişmiş çünkü işlerini mesleğini en ince ayrıntısı ile düzgün yapıyorlar...Bizimkilerde bir muska yazar e- devlet ten bilgi çalanların elini bağlayarak olayı çözer ler

    YanıtlaSil
  8. Merhaba Maruf Bey, ilginiz ve çabanız için teşekkürler, ancak konuya çok vakıf olmadığınız açıkça anlaşılıyor. Bir js kodu bahsettiğiniz şeyleri yapabilir ancak, Yandex veya Google'ın kullandığı js kodu açık kaynaktır ve ne yaptığı dünyadaki yüzlerce developer tarafından sürekli takip edilir. Ayrıca bahsettiğimiz iki firma da dünya devidir ve açık bir kodla siteleri hacklemeye çalışmak gibi saçma bir yola giremeyeceklerdir. Paranoyak olduğumuzu varsayarsak eğer, o zaman PHP, C#, Mysql, Mssql, ElasticSearch, memcache, python, ruby kullanmayalım devlet sitesi yaparken. Bu teknolojiler site üzerinde daha fazla kontrole sahip. Yazınızda açık kaynağa da güvenmemişsiniz, büyük firmalara da. Peki neyle kodlayacağız bu sistemleri? Sizinkisi biraz PR çabası olmuş, ama gerçekten bu işten anlayan insanlar yemezler bunları. Bu kadar dikkat ediyorsanız, sitenizdeki google api js kodlarını da kaldırın bence. Zira hacklenebilirsiniz :)

    YanıtlaSil
    Yanıtlar
    1. Tüm JS kodları Client-side oldukları için zaten açıktır. Açık olmayan bir JS yoktur.

      Analytics ve Metrica zaten cookie (çerez)leri topladıklarını kabul ediyorlar.

      Ben bunu şahsi blogum için tehdit olarak görmüyorum bu doğru ama devlet platformu için son derece önemli bir tehdit.

      Bunun paronayaklık ile bir alakası yok. Kaynağı (çalıştığı sunucu) Rusya olan bir yazılımı sistemimize dahil etmek ile tüm yazılımı kendi sunucumuza yüklemek arasındaki farkı bilmiyorsanız nasıl programcısınız?

      Sil
    2. Maruf bey, yazdıklarınızın arkasında durmanızı ve ısrarla savunmanızı takdir ediyorum. Ancak arkadaşların da yorumlarında belirttikleri gibi boş paranoyadan ileri gitmiyor iddialarınız. Ayrıca kodu geliştiren firmalar mahalle arasındaki internet-cafe'den bozma "BilgisayarCI" değil ki, 1000 lerce çalışanı olan sürekli AR-GE ve güncelleştirme faaliyetlerinde bulunan firmalar. Yani bu demek oluyor ki birileri zaten bahsettiğiniz scriptlerde herhangi bir açık bulursa ilk olarak firmanın kendisi güncelleme yapacağı için bir sürü zahmete de girmeye ya da paranoyaya bağlamaya gerek kalmıyor. Oturum yönetimi yapan web siteleri zaten bu türlü bilgileri (kullanıcı adı ve özellikle parola) client kısmında çerezlere yazmazlar (en azından profesyonel web siteleri) kaldı ki e-devlet gibi bir sistemden bahsediyorsunuz ki... Yani... Sözün özü kendi sunucunuzda kendinizin yazdığı kodların güvenliğini yalnız kendiniz garantilerken, açık kaynak kodlu sistemlerin daha güvenli olduğunu kabul edin bence. JavaScript teknolojisi itibarıyla İstemci tarafında çalışır ve istemci bilgisayardaki geçici dosyalara vs. erişim izni de yoktur. Böyle bir duruma kalkışan bir kod yazdığınızı varsayalım daha sayfa yüklenirken tarayıcı zaten kullanıcıyı uyarır ve hata mesajı yayınlar. Dolayısıyla JavaScript kelimesindeki Java kısmına çok aldanmamak lazım. :)

      Sil
    3. İsmini bile vermeden boş muhabbeti uzatmışsın. :D

      Metrica veya Analytics açık kaynak sistemler değildir. Biz onun sadece Client tarafındaki JS kısmını görüyoruz. Açık kaynak ile ilgili bir şey söylemedim.

      Çerezleri toplayıp kendi sistemlerine aktardıklarını söylüyorlar. Muhtemelen form içeriklerini de topluyorlar ki bu da direkt kullancı adı ve şifreyi alması demektir.

      Edevletin çerezleri kullandığını tarayıcıdan bakıp görebilirsin.

      Sil
  9. tespitiniz icin tebrikler. Malesef is bilmeyenler gorev basinda olunca boyle seyler oluyor..

    YanıtlaSil
  10. Sistemin kendine ait bir analytics kullanmasi konusuna katiliyorum ancak gerisi paranoyakca abartilmis.

    YanıtlaSil
    Yanıtlar
    1. Güvenlik, hele ki ulusal güvenlik için paranoyaklık kavramı az bile. Senin hiç sunucuların yönettiğin sitelerin hacklendi mi? Paranoyaklık dediğiniz dikkat edilmesi gereken küçük tedbirlerin ihmal edilmesi ölümcül olabilir. Hele ki bu mesele bir Milli Güvenlik meselesi.

      Sil
  11. Yabancı bir devletin sitesinden js yüklenmesi, pekala bir güvenlik ihmalidir. Sadece turkiye.gov.tr'den gelen talepler için bile js'de geçici olarak değişiklik yapabilirler. Yani bunu bugüne kadar yapıp yapmadıklarının bile garantisi yok.

    YanıtlaSil
    Yanıtlar
    1. Aynen dediğiniz gibi... Sadece e-devlet için bile o scriptin arka planı için özel yazılımlar ve robotlar geliştirmişlerdir.

      Sil
  12. Devam yazısı...
    http://www.marufcetin.com/2017/08/bankalar-google-analytics-kullanyor-mu.html

    YanıtlaSil
  13. Mantık çok saçma. Bu mantıkla veritabanında tutulan verileri de veritabanı yazılımı başka yerlere servis ediyor olabilir diye düşünebilirsiniz. E-devlet verilerinin oracle veritabanında tutulduğunu varsayalım. O halde sizin mantığınıza göre, oracle yazılımı verileri çalabilir öyle mi? O halde devletimizin ya kendi veritabanı sistemini yapması lazım ya da edevleti ortadan kaldırması lazım. PR kasmışsınız bence biraz.

    YanıtlaSil
    Yanıtlar
    1. Sayın Adsız. Konuyu kavrayamamışsınız ve yorum yapıyorsunuz. Lütfen Google Analytics'in hizmet sözleşmesini okuyunuz. Google Analytics kendi hizmet sözlemesinde sitenin ziyaretçilerine ait topladığı tüm çerezleri ABD'deki kendi sunucusuna gönderdiğini ve kendi sunucusunda kaydettiğini söylüyor. Biz Analytics hakkında bir iddiada bulunmuyoruz. Onun zaten açıkça belirttiği şeyin devlet sistemi sözkonusu olduğunda kabul edilemez olduğunu söylüyoruz.

      Peki Oracle böyle mi? Oracle'ı kendi sunucumuza kurarız ve tüm giriş çıkış ve kayıtları bizim sunucuda yapar. Eğer Oracle bizim girdiğimiz kayıtları Amerikadaki kendi sunucularına gönderseydi o zaman söylediğiniz doğru olurdu. Ama öyle bir şey sözkonusu değil.

      Oracle yerine veritabanı sistemleri yapılabilir mi? Yapılıyor zaten. Ben kendi veritabanı sistemimi kendim sıfırdan yazdım. 20 milyon kayıtla da test etme imkanım oldu. Kendi projelerimde hazır veritabanı sistemlerini kullanmıyorum. Devlet niye kullansın. Bu hiç de abarttığınız gibi zor bir şey değil. Keza açık kaynak sistemlerden yararlanarak kendi sistemlerimizi oluşturmamız hiç de zor değil.

      Sil
    2. https://metrica.yandex.com/about/info/data-policy/?ncrnd=576

      Yukarıdada açıkça belirtildiği gibi yandex e-devletin tüm sayfalarında eklendiği ve form elementlerine özel "-metrika-nokeys" girilmediği için şifrelerimizde cookie üzerinden yandex'e yollanmış görünüyor. Yazık ki ne yazık.

      Sil
  14. Normalde ben eleştiri yorumlarını da yayınlıyorum. Ancak bu yazı ile ilgili yayınlamadığım bazı yorumlar var. Son derece seviyesiz yorumlar. Bir kısmı cehaletten. Bir kısmı da art niyetten. Allah akıl fikir versin.

    Not: Lütfen yorum yazarken ve bilhassa eleştiri yaparken, yazıyı iki üç kez okuyun. Anlamadan yada yeterince okumadan, yazının içindeki bilgi ve ifadelere aykırı şekilde yorumlar yapmayın.

    YanıtlaSil
  15. Senin GNU/Linux kullanmak yerine Windows kullanmandan hiç bir farkı yok bu durumun.

    YanıtlaSil
  16. Ekran fotoğraflarından anlaşıldığı üzere Windows kullanıyorsun. GNU/Linux gibi özgür yazılım kullanmak yerine Microsoft Windows'u tercih eden birinin böyle bir blog yazısı yazması oldukça ironik...

    YanıtlaSil
    Yanıtlar
    1. Linuxu kullanıyorum. Programlama ve sunucu tarafından Linux kullanıyorum.

      Eski bir grafiker olduğum Photoshop, InDesign vb programlar kullandığım için malesef Windows'tan tam olarak kopamadım. Ama masaüstünde de Linuxa geçmeyi düşünüyorum.

      Diğer taraftan benim şahsım için gizlilik durumum ile e-devletin gizlilik durumunun kıyaslanamayacağını takdir edersiniz.

      Sil
  17. E-devlet çerez kullanıyor mu? Kullanıyor. Form kullanıyor mu? Kullanıyor. Kullanmaması mümkün değil zaten. HTTP protokolu gereği tarayıcı ile iletişim kurabilmesinin başka bir yolu yok.

    Dışardan dahil edilen JS ile hem formlar (login formu, alışveriş formu) hem de çerezler okunabilir, okunan bilgiler başka bir siteye aktarılabilir. JS ile neler neler yapılır, aklınız hayaliniz durur.

    Bu da e-devlet sitesinin çerezleri kullandığının ispatı. Bilmeyenler boş laf etmesin lütfen.

    https://3.bp.blogspot.com/-VTZYpenLVgg/W15WvQiDxJI/AAAAAAAAJMU/XBnaDerlw_wHCPNoilpdbEP5wQHSrg5iwCLcBGAs/s1600/edevlet%252C%2B%25C3%25A7erez.png

    YanıtlaSil

Blog Arşivi

İletişim

Ad

E-posta *

Mesaj *