Pazartesi, Ağustos 27, 2007

Seçim Süreci


25 Ağustos Cumartesi Günü Cumhuriyet gazetesinde Ali Sirmen'in köşe yazısı dikkatimi çekti. Seçim elektronik olarak toplanan seçim sonuçları hakkındaki şüpheler ile ilgili endişe uyandıran bir yazı. Bu yazıdan bir alıntı:

Bir noktayı belirteyim: Bazı bölgelerde kimi sandık sonuçları ile bunların bilgisayara geçirilmeleri arasında farklılıklar olduğu belgelenmişse bile bunlar iddialardır, henüz ortada kesin kanıtlar mevcut değildir. Ama YSK'nin, sonuçların açıklanması konusundaki talepler karşısında başlangıçta çekingen davranmış olması hoş bir görüntü yaratmamıştır.

YSK'nin hemen bütün başvurulara yanıt vermesi; iddiaları, ikna edici biçimde belgeleriyle yanıtlaması; kuşkuları ortadan kaldıracak teknik incelemelerin yapılmasını sağlaması; kısacası seçim sonuçlarını gerekiyorsa, bir kez daha, bu defa elle sayımla, gözden geçirmesi şarttır.

Aynı sayfada "Seçimde şaibe tartışması" başlığı altında YSK Başkanı Muammer Aydın'ın seçim sistemi ile ilgili soruları cevaplandırdığı bir paragraf da bulunmakta:

Muammer Aydın, oyların elektronik ortamda sayılmasının sabote ihtimalini güçlendirdiği görüşünü ise şöyle değerlendirdi: "Bu iddiaları ortaya atanlar bizim sistemimizin nasıl çalıştığını bilmiyor. Sandıklar açılıyor, sandık kurulu tutanak tutuyor. İlçeye gönderiliyor, ilçe bunu bilgisayara giriyor. Girdikten sonra hemen bilgisayardan kontrol çıktısı alıyor. Bilgisayar verileriyle, tutanaklar karşılaştırılıyor. Tutanaklar, ilçeden ile geldiğinde bir birleştirme tutanağı düzenleniyor. Bunlar ana merkeze gönderiliyor. Ana merkezde değişmesi de söz konusu olamaz. Burada da tutanaklarla bilgisayar verileri karşılaştırılıp, sonuçlar öyle ilan ediliyor."

Bu tanımdan oyların sandıklarda sayıldıktan sonra tutanakların sandıktan ilçeye, ilçeden ile, ilden de merkeze fiziksel olarak ulaştırıldığı. Sonuçların merkeze gelen kağıt üzerindeki kayıtların merkezde bilgisayar kayıtları ile karşılaştırıldıktan sonra açıklandığı anlaşılıyor.

Yukarıda tarif edilen akışı göz önüne alarak seçim sisteminde sandık sonuçlarının alınmasından YSK sonuçların açıklanmasına kadar geçen süreç üzerinde bir fikir cimnastiği yapmak istedim.

  • Sandıklar açılıyor, sandık kurulu tutanak tutuyor.

Buradaki işlemler bilgisayarsız gerçekleşiyor, bu noktada oluşabilecek değişiklikler konumuz dışında. Bu noktada belirsiz olan noktalar oy pusulalarının akibeti (mühürlenmiş bir torbada merkeze gönderildiklerini varsayıyorum) ve tutanağın bütünlüğünün korunması için alınan önlemler (imzalar, mühür, kilitli kutu, zırhlı araç, silahlı korumalar ...).

  • Tutanak İlçeye gönderiliyor, ilçe bunu bilgisayara giriyor.

Bilişim Güvenliği terimleri kullanıyorum, ancak ilçelerde veriler bilgisayara kaydedilmeden önce sandık tutanağının bütünlüğünün kontrol edilmesi gerekiyor. Bunun sağlıklı yapılması sandık sonuçlarının sağlıklı olarak sisteme iletilmesi için büyük önem taşıyor.

Burası, görebildiğim kadarıyla sandık sonuçlarına yapılacak fiziksel bir değişiklik için uygun bir nokta. Öncelikle bir yoğunluk problemi var. Eğer hesaplarım doğruysa, her ilçeye bağlı ortalama 155 sandık var. Yani her ilçe merkezi en az 7 (Bozcaada, Çanakkale) en çok 701 (Kartal-1, Istanbul) sandık tutanağı ile uğraşmak durumunda. Özellikle çok sayıda sandık sonucunun aynı anda ulaştığı ilçelerde tutanakların imza mühür ve bütünlüğünün yeterince kontrol edilmeme olasılığı göze çarpıyor.

Ayrıca kontrol edilen bir tutanağın bilgisayara girilme aşamasında değiştirilmesi, daha zor gözükse de, sistemi bilen birisi tarafından, önceden hazırlanmış bir veya birden fazla sahte tutanağı değiştirme olasılığı düşünülebilir.

  • Girdikten sonra hemen bilgisayardan kontrol çıktısı alıyor. Bilgisayar verileriyle, tutanaklar karşılaştırılıyor.
Eğer tutanak girişten önce değiştirilmiş ise bu aşamada bir anormallik farkedilmeyecektir.

Operasyonun tanımına göre operatör tarafından yapılan bir maddi hata da kontrol çıktılarından tespit edilebilir. Bu aşamada kötü niyetli bir operatörün yapabileceği değişikliklere karşı alınan önlemler anlatılmamış. En azından verileri giren ve çıktıları kontrol edenlerin farklı kişiler/ekipler olması ve sistemdeki girdi ve sonradan yapılan düzeltmelerin operasyonel kayıtlarının tutulması ve incelenmesi faydalı olacaktır.

İşin içinde bilgisayarlar girdiğinde olasılıklar da bir anda artıyor. Her şeyden önce verilerin bilgisayara girildiği noktadan sonraki teknik detaylar oldukça az. Bilgisayarlar sorgulamadan kendilerine ne söylenirse onu yaparlar. Eğer program bilgisayara "operatörün girdiğini yazıcıdan aynen çıkart, merkeze ise değiştirerek gönder" derse bilgisayarın bu isteği sorgulama şansı yoktur. Böyle bir programın bilgisayara nasıl, kimler tarafından, ne zaman yüklenebileceği, bu tür değişikliklerin kontrol edilip edilmediği, tespit edilip edilemeyeceği, alınan önlemler sistemin tasarımı ve uygulanması sırasında ele alınmış olmalıdır. Tasarım ve uygulama detaylarının incelemeye açık olması da güven sağlanması açısından büyük önem taşımaktadır.

  • Tutanaklar, ilçeden ile geldiğinde bir birleştirme tutanağı düzenleniyor. Bunlar ana merkeze gönderiliyor.
Tutanakların ilçeden ile oradan da merkeze nasıl iletildiği belirtilmemiş. Benim düşüncem, bir yandan kara/hava/deniz yolu ile tutanaklar yavaş yavaş hedefe ilerlerken, bir yandan da ilçelerde bilgisayara giren sonuçlar televizyonları renklendirmekteydi. SEÇSİS yazılımı hakkındaki kısa bilgiler de bu düşünceyi doğrular nitelikte: "... SEÇSİS Projesi dağıtık mimari yapıdan, ilçelerin web tabanlı çevrim-içi (on-line) çalışmasına imkan veren yapıya revize edilmiş ..." Sonuç olarak, seçim sonrası yayınlanan sonuçlar, ilçelerdeki bilgisayarlardan doğrudan merkeze aktarılan verilerden oluşturulmakta.

Bu ek bilgilerin işiğinda uygulamayı biraz daha değerlendirelim:

Web tabanlı bir uygulamadan söz ediyoruz. İlçe merkezlerinden bağlanılan. Varsa UYAP (Yargı Ağı) ağ altyapısını kullanıyor, yoksa ADSL veya benzer yöntemlerle internet üzerinden bağlanıyor. Bir VPN (sanal özel ağ) kullandığı için aslında merkez uygulamaya erişimin internetten izole olarak gerçekleştiği düşünülebilir.

Herşeyden önce, böyle bir merkezi yapıda, tüm ilçelerin ve VPN erişimine sahip herkesin merkez sunuculara erişimi olası gözüküyor. Böyle bir yapı eğer gerekli önlemler alınmamışsa, bir noktadan erişim elde eden bir saldırganın tüm sisteme (merkez, diğer ilçeler, veritabanı) erişim elde etme riskini ortaya çıkartır. Tüm işlemlerin el ile yapıldığı bir durumda tek bir ilçe ile sınırlı kalabilecek bir olay, bilgisayar ağı ve erişimi ile kolaylıkla tüm seçimi etkileyebilecek şekilde büyüyebilir.

Burada olası saldırı noktaları:

İlçedeki bilgisayar üzerine yerleştirilecek bir kötü niyetli yazılım (truva atı vb.)

İlçedeki bilgisayar ağına boş bir ağ ucundan bağlanacak bir saldırgan bilgisayar aracılığı ile veya VPN erişim bilgilerini (örneğin bir ilce bilgisayarlarından) ele geçirerek doğrudan merkez'deki sistemlere erişilmesi.

Kötü niyetli bir teknisyen, operatör veya servis elemanı. Yukarıdaki tarif edilen saldırıları gerçekleştirebilir veya gerçekleştirmek için gerekli bilgileri toplayabilir, erişim bilgilerine ulaşabilir. Binlerce ilçeden sadece bir tanesinde bu tarz bir erişim elde edilmesi yapıya bağlı olarak merkez sistemler aracılığı ile tüm sonuçlara müdahale edilmesine yol açabilir.

  • Ana merkezde değişmesi de söz konusu olamaz.
Aslında, belki de değişim yapmaya en elverişli nokta burası. Yazılımın ve kullanılan sistemlerin kullanıma alınmadan önce bağımsız ekipler tarafından güvenlik testlerinden geçirilip geçirilmediği; Sunucuların yönetimi ve yazılım güncellemeleri ile ilgili politikalar ve bunların ne düzeyde uygulandığı;. Kimlerin hangi düzeylerde ağ, sistem, veritabanı ve uygulama yönetim haklarına sahip oldukları gibi pek çok cevapsız soru bulunmakta. Ayrıca SEÇSİS uygulamasının Mernis ve UYAP dahil başka e-devlet uygulamaları ile bağlantısı olduğu ve VPN ile erişim elde edildiği biliniyor. Bu dış noktalardan gelebilecek erişimlere karşı alınan önlemler de belli değil. Bu kadar belirsizlik ve olası saldırı noktası varken "Ana merkezde değişmesi de söz konusu olamaz." açıklaması, örneğin, bizim yaptığımız otoyollarda kaza olamaz demek kadar inandırıcılıktan uzak.

  • Burada da tutanaklarla bilgisayar verileri karşılaştırılıp, sonuçlar öyle ilan ediliyor.
Kesin sonuçlar 30 Temmuz'da ilan edildi. İlçelerden bilgisayarla gelen ve anında açıklanan sonuçların ardından bu sonuçların tutanaklarla karşılaştırılması sürecinin nasıl geliştiğini, tutarsızlıklar oluşup oluşmadığını, oluştuysa bunların nasıl giderildiği, seçim boyunca oluşan sunucu, uygulama ve güvenlik kayıtlarının incelenip incelenmediği de üzerinde durulması gereken noktalar.

Bu yazıyı yazarken aslında seçim süreci konusunda ne kadar az şey bildiğimi farkettim. Demokrasinin sağlıklı yürümesi için bu sürecin bir kapalı kutu olmaktan çıkartılması gerekli.

Pazar, Ağustos 26, 2007

Sandık Sonuçları

Seçim sonuçları ile ilgili son haftalarda artan şüpheler üzerine
Yüksek Seçim Kurulu 22 Temmuz Genel Seçimi Sandık Sonuçlarını geçtiğimiz hafta açıkladı. Sonuçların açıklanması, demokratik bir seçim sürecinin gerektirdiği saydamlığı sağlamak açısından önemli bir adım, ancak şüpheleri gidermek için bu sonuçların sandık başındaki sonuçlarla karşılaştırılması ve daha derin analizi gerekli.

Yayınlanan sonuçların formatı doğrusu beni hayal kırıklığına uğrattı. Sandıklardan gelen sonuçların ilçeler bazında birleştirme tutanakları. Toplam 1725 adet .PDF dosyası. Ekrandan okumak veya bastırmak için uygun, ancak elektronik ortama aktarmak veya analiz etmek için hiç de elverişli değil. Eğer elinizde belirli birkaç sandığın veya ilçenin sonuçları varsa ve sadece bunları kontrol etmek isterseniz gerekli dokümanları indirip elle karşılaştırabilirsiniz. Ancak çeşitli analizler yapmak hatta sadece oy toplamlarını bir de ben hesaplayım demek verilerin mevcut hali ile mümkün değil.

PDF dosyalarının, hepsini indirdim. toplam dosya boyutu 300 MB. Toplam 12921 sayfa, her doküman ortalama 7.5 sayfa ediyor. Dosyaları indirirken birkaç hata olduğunu da farkettim:

Üç adet dokümanın isimleri hatalı yazılmıştı:
  • Diyarbakir/hani-B1pdf
  • Diyarbakir/hani-B2pdf
  • Izmir/kink-P.pdf

Bunları düzeltince dosyalara erişmek mümkün oldu (ancak yukarıdaki toplamlara dahil değiller). Birtakım dosyalara ise erişmek mümkün olmadı:
  • Erzurum/horasan-B.pdf
  • Erzurum/horasan-P.pdf
  • Giresun/canakci-B.pdf
  • Giresun/canakci-P.pdf
  • Konya/altinekin-B.pdf
  • Konya/altinekin-P.pdf
  • Manisa/koprubasi-B.pdf
  • Manisa/koprubasi-P.pdf

Sonuçta elimde sayfalarca seçim sonucu ile kalıp da turşusunu kuramazdım. PDF dosyaları analiz ederek sonuçları düz metin halinde çıkartacak bir program yazmaya giriştim. İki günümü aldı, ancak yarı zamanlı çalışmanın da avantajları var. Bununla ilgili detayları bir sonraki yazıma bırakıp PDF dosyaları ile ilgili birkaç gözlemimden baksetmek istiyorum:

Dosyaların bir tanesinde Türkçe karakter problemi var. Birkaç dosyada ise rakamlar nokta (.) yerine virgül (,) ile ayrılmış.

Yaratılma tarihleri: PDF içindeki zaman bilgisine bakıldığında dosyalar 8 Ağustos ile 22 Ağustos tarihleri arasında yaratılmış. 14 Ağustos'ta YSK sandık sonuçlarını yayınladığını duyurmuş. 20 Ağustos ve sonrasında yaratılmış beş tane dosya var. Muhtemelen eksikleri tamamlamak veya çeşitli Türkçe karakter veya formatlama problemlerini düzeltmek için

Bu gözlemler sonuçların yayınlanmasın biraz aceleye getirilmiş olduğunu düşündürüyor.

Perşembe, Ağustos 16, 2007

Anti DNS Sabitleme ve Yeniden Bağlama

Anti DNS Sabitleme (Anti DNS pinning) saldırıları hakkında okuyalı uzun zaman olmuştu. Geçen gün beğendiğim güvenlik araştırmacılarından birinin sayfasında DNS yeniden bağlama (DNS rebinding) saldırıları hakkında bir yorum okudum.
Tanımı anti DNS sabitleme saldırısına benziyor, ancak çözüm önerisi ADSL modemlerin DNS ayarlarını değiştirmeye yönelik bir saldırıyı tarifliyordu.

Basit bir arama, bana üç şey gösterdi:
  1. DNS yeniden bağlama aslında anti DNS sabitleme nin daha yeni, daha kullanışlı bir ismi.
  2. Stanford Üniversitesindeki araştırmacılar DNS yeniden bağlama saldırısı konusunda güzel bir çalışma yapmışlar
  3. Bu tip saldırılar henüz fazla duyulmamış veya pek çok kişi üzerinde fazla düşünmemiş. Bazen biz güvenlikçiler yeni bir saldırı veya teknik duyunca, detaylarına fazla dikkat etmeden bir hüküm verebiliyoruz.
Bu nedenle bu yeni saldırı tipinden biraz bahsetmeye karar verdim. DNS sabitleme saldırısı, Web tarayıcılarının aynı kaynak (same origin) politikalarını atlatarak bir kullanıcının web tarayıcısı ile başka sayfaların içeriğine erişmeyi sağlayan bir saldırı.

Normal bir web kullanım senaryosunu düşünelim. Bir web sayfası içerisinde başka sayfalardaki içeriğe link verebilirsiniz. Bu linki bir imaj veya çerçeve (frame, iframe) olarak verdiğinizde, sayfanıza bağlanan web tarayıcıları otomatik olarak diğer sitelere de bağlanarak tüm içeriği kullanıcının önüne sunarlar.

Ancak, sizin sitenize koyacağınız aktif içerik (javascript vb.) aynı kaynak politikası nedeniyle diğer sitelerden getirilen bu içeriğe ulaşamaz. Bunun nedeni, sizin sitenize bağlanmak için kullanılan alan adı ile diğer içeriğin bağlı bulunduğu sitenin farklı alan adlarına sahip olmasıdır.

Ancak, başka sitelerin içeriğine erişmek, özellikle bu siteler özel ağ (intranet, VPN) veya IP kısıtlamalı servisler olduğunda, bır saldırgan için çok çekici olabilir. Bu kapsamda uzun süredir bilinen CSRF (cross site request forgery, çapraz site istek oluşturma) saldırıları körlemesine istekler gönderebilmekte, hatta ADSL modemleri yeniden programlayabilmekte, ancak hassas içeriği saldırgana eriştiremediği için yüksek riskli kabul edilmemekteydi.

Bir saldırı senaryosu düşünelim. Ben www.saldırgan.com sitesinin sahibi olarak bu alan adına istediğim IP adresini verebilirim. yüklenen ilk sayfada bir betik çalıştırıp DNS sunucusunda IP adresini, örneğin 10.0.0.73 olarak değiştirdikten sonra kurbanımın tarayıcısında çalışan betik iç web sunucusuna ait olan bu IP adresinden istediği bilgileri çekip (XMLHttpRequest sağolsun) benim internet siteme post edebilir, hatta HTTPS ile bilgilerin güvenliğini sağlamak bile mümkün olacaktır :)

Web tarayıcıları bu senaryoya karşı DNS pinning (DNS sabitleme) yöntemlerini kullanırlar, Örneğin Internet Explorer öğrendiği bir IP adresini 30 dakika unutmaz, DNS kaydı değişse bile. Ancak bu mekanizmaya karşı geliştirilen saldırılar (anti DNS pinning) birden fazla adres kaydı, ikinci bağlantıyı reddetme gibi tekniklerle bu mekanizmaları bertataf etmeyi başarmaktadır. Bu saldırıların bir özetini, ve Java applet ve Flash kullanılan yeni teknikleri Stanford grubunun makalesinde bulabilirsiniz.

En etkin önlem, DNS önbellek sunucunuzun (cache) dışarıdan gelen cevaplarda iç IP adreslerini engellemesini sağlamak olarak gözüküyor.

Ayrıca, intranet ve kritik servislerde kimlik doğrulaması ve HTTPS kullanmak, Web sunucularına IP adresi ile bağlanıldığında (varsayılan site) hassas içeriğe ulaşılmasını engellemek gibi yöntemler bu saldırıların etkisini azaltacaktır.

Pazartesi, Ağustos 13, 2007

Kaliforniya, elektronik oylama sistemleri ve saydamlık



Seçimler demokrasi sürecinde halkın tercihlerini sunması için vazgeçilmez bir araç. Oyların verilmesi, toplanması, sayılması ve duyurulması aşamalarının hepsinde veya bir kismında bilgisayar sistemlerinin kullanılması ise günümüzde kaçınılmaz bir durum.

Elektronik oylama sistemlerinin tasarımı, kurulumu, yönetimi ve kullanılması ise verilen oyların tamanının doğru bir şekilde değerlendirilmesini etkileyebileceği için büyük önem taşıyor.

Elektronik sistemlerin 'kapalı' doğası ve karmaşıklığı ise oylama süreci hakkında oluşabilecek soru işaretlerinin giderilmesini zorlaştırıyor.

Gectiğimiz aylarda Kaliforniya eyalet yönetimi Amerika'da kullanılan elektronik oylama sistemlerinin güvenlik ve erişilebilirliğini incelemek için bir çalişma gerçekleştirdi. Bu çalışma mevcut yönetimin seçim sırasında bu konuda verdiği sözler nedeniyle gerçekleştirildi.

Kaliforniya Üniversitesi tarafından kaynak kodu, dokümantasyon, erişilebilirlik ve kapalı kutu (red team) olmak üzere dört kategoride gerçekleştirilen incelemelerin raporları ve inceleme sonucunda yönetim tarafından verilen kararları

Bu çalişmanın sonuçları geçtiğimiz haftalarda açıklandı. Bu sonuçları

http://www.sos.ca.gov/elections/elections_vsr.htm

Adresinden incelemek mümkün. Sayfa yeni raporlar ve malzemeler ile sürekli güncelleniyor.

Özellikle red-team ve kaynak kodu inceleme gruplarının raporları ve bulguları metodoloji ve alınan sonuclar çok çarpıcı ve öğretici.

Tüm sistemlerde tespit edilen benzer zafiyetler, elektronik ortamda geçen oylama veya oyları değerlendirme sürecinin alıştığımızdan çok daha farklı tehditlere maruz kalabileceğini gösteriyor. Ayrıca bu sistemlerin incelenmesinin ve tespit edilen zafiyetlerin düzeltilmesinin önemini vurguluyor.

Toplum ve demokrasi açısından kritik bu gibi sistemlerin bilimsel ve tarafsız bir şekilde incelendiği, saydam ve açık bir şekilde tartışılabildiği bu ortamı Oktay Ekşi'nin "Saydamlıktan neden korkuyoruz? başlıklı yazısında (Hürriyet, 11 Ağustos) bahsettiği kendi yaklaşımımızla yan yana koymak istiyorum:

http://hurarsiv.hurriyet.com.tr/goster/haber.aspx?id=7067154&yazarid=1

Saydamlık güvenliğin ve demokrasinin önemli bir parçası, bunu bir alışkanlık haline getirmemiz ve "incelenme korkusundan" kurtulmamız bize çok şey kazandıracak.