Seçim sonuçlarında hile nasıl önlenir        

CHP’li Seyhan’dan referandumda EVET'lerin oranı yüzde 53'e ayarlanacağı uyarısı

CHP Adana Milletvekili Tacidar Seyhan; 12 Eylül 2010 seçiminde sisteme müdahale edilerek, yazılımın yüzde 52, yüzde 53 dolaylarında ‘Evet’ çıkmasına programlanacağı, oy kullanmayanların bir kısmının oy kullanmış gibi gösterilerek ‘Evet’ hanesine kaydırılacağı yönündeki endişesini dile getirdi.


Seyhan’ın, Başbakan Recep Tayyip Erdoğan’ı, 12 Eylül’de yapılacak referandumun seçim güvenliği ve seçim sonuçlarının şaibeli olacağı konusunda uyardı. CHP’li Tacidar Seyhan, Başbakan’ın yanıtlaması istemiyle verdiği soru önergesiyle seçim sisteminin güvenliği hakkındaki iddiaları TBMM gündemine taşıdı.

Vatandaşı 2007 genel ve 2009 yerel seçimlerinde rahatsız eden bu iddiaların meclise taşınması çok önemli bir ilk adımdır. Tacidar Seyhan, konuyu bugüne kadar en detaylı irdeleyen milletvekilidir. Ancak, önümüzdeki seçimlerin güvenilirliğini sağlayacak bir çözüm önerisi hala eksik.

Tacidar Seyhan ilk olarak Türkiye’de kullanılmakta olan seçim sisteminin daha önceden ABD ve Yunanistan'da kullanıldığına ve sonuçlar açısından güvenilir bulunmayarak kullanılmasından vazgeçildiğine değiniyor.

O halde, ABD ve Yunanistan’ın güvenilir bulmadığı bir yazılım (Sun Election Systems-SECSIS), hangi amaçla ve hangi hakla Türkiye'ye dayatılmaktadır? YSK neden güvenilir olmayan bir yazılımda ısrar ediyor?

Seyhan'ın birinci endişesi, yazılıma dışarıdan müdahale olasılığı. Pek çok insan tıpkı Tacidar Seyhan gibi dışardan manipülasyon olasılığına saplanarak bir başka ihtimali gözden kaçırıyor. İçeriden birisinin müdahale olasılığı!..

Bir yazılım, ekranda gördüğünüz pencereden ibaret tek parça bir .exe dosyası değildir. Arabanız nasıl çeşitli parçaların bir araya getirilmesiyle oluşmuşsa, kullandığınız programda bir araya getirilmiş yüzlerce parçadan oluşur. Böyledir, çünkü bu tasarım programlar arasında ortak kullanılan parçaların sadece bir kez yazılıp defalarca kullanılmasına olanak verdiği gibi, bağımsız parçaların test edilmesini de kolaylaştıran bir mimari tercihtir. Hatalı bir parçayı değiştirmekte kolaydır. Tüm sistemi yeniden yüklemeden sadece hatalı parçayı değiştirmeniz yeterlidir. Sisteminizi güncelleştirirken yüklediğiniz .DLL dosyaları bu parçalara örnektir.

Bu durumda şöyle bir senaryo olasıdır: Sisteme erişim hakkı olan kötü niyetli birisi, sisteme bakım yapmak bahanesiyle erişerek seçim sonuçlarını hesaplayan program parçasını hileli bir yazılımla değiştirebilir. Programın herhangi bir güncellemeden nasıl haberi olmuyorsa, hileli parçadanda haberi olmayacaktır. Program, güncellendiğini zannettiği hileli parçaya bağlanarak işini sürdürür. Gerekli fonksiyonlara erişir, ama hileli parçanın döndüreceği değerler, olması gerekenden farklı çıkacaktır. Tabii, seçim sonuçları da... Sonuçlar ilan edildikten sonra, kötü niyetli kişi, hilesiz dosyayı yerine koyar ve hiçbir iz bırakmaz.

Seyhan'ın dışarıdan müdahaleyi önlemek için önerdiği kripto sistemine benzer bir sistem seçim günü yapılabilecek bu tip müdahaleleri engellemek içinde uyarlanabilir. Örneğin; programın seçim günü çalıştırılırken yükleyeceği parçaların, sadece hilesiz olduğu sağlanmış ve kripto sistemine tanıtılmış parçalar olduğundan emin olması sağlanabilir.

Seyhan'ın ikinci önerisi, kaynak kodlarının açık olması ve işletim sistemi olarak yine açık kaynak kodlu Linux kullanılması. Bu ifade, CHP'nin konuya çok iyi hazırlandığını gösteriyor.

Linux doğumundan beri, çok kullanıcılı, çok işlemcili, aynı anda birçok görevi paralel yürütebilen bir işletim sistemidir. Internette doğup, internette büyümüştür. Ve ağ ortamında gereken güvenliğe doğuştan sahiptir. Kodu herkese açıktır. Dileyen kodu inceleyebilir ve sisteminizdeki kodun, bu açık kodla aynılığı "checksum" adı verilen bir sağlama toplamıyla denetlenebilir. Bu toplam kodun denetlenmesi açısından büyük zaman tasarrufu sağlar. 3 milyondan fazla satıra sahip bir kodu kolay kolay inceleyemezsiniz, ama güvenilirliğinden emin olduğunuz bir kaynaktan indirdiğiniz kodun, sağlama toplamını denetleyebilirsiniz. Linux'un yeryüzünde 300'e yakın dağıtımı mevcut. Hepsi şeffaf, hepsi denetime açık. Bunlardan biriside Tübitak'ın Pardus isimli dağıtımı. Açık koddan anlaşılması gereken hile yapılmasını kolaylaştıran değil, aksine hile yapılmasını engelleyen bir şeffaflıktır. Kodu incelemeye kapalı olanın, kodu şaibelidir.

Linux'un güvenilirliğini kanıtlayan en önemli istatistik ise, profesyonellerin tercih oranlarıdır. Bundan 10 yıl önce web sunucularının sadece yüzde 4'ü Linux üzerindeyken, bugün bu oran yüzde 90'ın üzerindedir.

Yani, internette gezinirken size hizmet veren her 10 sunucudan 9'u Linux. Linux sadece Windows'u değil, kendi atası Unix'i dahi sunucu pazarından silip süpürmüştür. Çünkü bedavadır. Bu bağlamda devletin bütçesinede çok olumlu katkısı vardır. Linux hakimiyeti süper bilgisayar dünyasında da açık ara öndedir. Zira Linux doğuştan çok kullanıcılı, çok işlemcili ortamda çalışması için tasarlanmıştır.

Google'ın Android işletim sistemi, Apple'ın X-OS'i bu firmaların kendi ihtiyaçları için uyarladığı Linux türevleridir. iPad'in rakipleri JooJoo ve We-Pad'in işletim sistemi seçimleri Linux'tur.

Tacidar Seyhan'ın sadece sunucuların değil, sandıklardan sunuculara erişimi sağlayan terminallerinde Linux üzerinde çalışması gerektiğine parmak basması dikkate şayandır. Virüsler gibi zararlı yazılımların çoğu en çok kullanılan istemcileri, yani Windows terminallerini hedefler. Windows üzerinde çalışmak üzere derlendikleri için, Linux üzerinde çalışmazlar. Tabii seçimler Linux terminalleriyle yapılacaksa, saldırganda Linux'u hedefleyecektir. Ancak Linux üzerine zararlı birşey kurabilmek için yönetici kipini ele geçirmesi gereklidir. Windows'ta varsayılan olarak seçili yönetici kipi, Linux'un varsayılan kipi değildir. Netice itibariyle Linux terminalleri çok daha emniyetlidir ve terminal emniyeti şu açıdan önemlidir. Terminali kırabilen bir bilgisayar korsanı, oradan elde ettiği bilgilerle sunucuya saldırabilecek güce erişebilir.

Tacidar Seyhan'ın son önerisi; sisteme yapılacak girişlerin, hata ve manipülasyona karşı denetlenebilirliğidir. Bu öneri son açık kapıyı da kapatmış oluyor. Her parti, sandığın başındaki temsilcisinin elindeki verilerle sisteme girilmiş sandık verisini kıyaslayabilmeli. Şayet sistemdeki veride bir değişiklik olursa da bundan otomatik olarak haberdar edilmelidir.

Bu da, ancak şu şekilde sağlanabilir: Sandık başındaki parti görevlileri, son oy da sayılıp tutanağa bağlanana kadar sandık başından ayrılmaz. Her parti, her sandık için düzenlenen tutanağın bir örneğini, anında kendi partisine ve YSK’ya faksla iletir. Açıklanan kesin seçim sonuçlarıyla, partilerin ellerindeki listeler arasında karşılaştırma yapılır.

Tacidar Seyhan’ın önerileri kapsamlı, ancak yetersiz. Zira kodu ne kadar denetlerseniz denetleyin, yazılım sabit bir ürün değildir. Sürekli güncellenir, sürekli hatalardan arındırılacaktır, sürekli yeni ihtiyaçlara cevap verebilmek için değiştirilecektir. Dolayısıyla kodun üretimini ve güncellenmesini denetlemenin yanısıra, yapılan her değişikliğin herkesin haberi olacağı şekilde yapılması ve bazı denetimlerin otomatikleştirilmesi gereklidir. Örneğin; kodun yazımı ve değiştirilmesi esnasında her terminalde iki programcının bulunmasını şart koşan XP(Extreme Programming) yöntemi taviz verilmeden uygulanabilir. Programcılardan birisi kodu yazarken, diğeri denetleyecektir. Yazılım üretimi açısından denetçinin görevi, kodu yazanın gözünden kaçan hataları yakalamaktır, ama böyle bir projede kodun içerisine yerleştirilebilecek mantık bombalarının engellenmesine de hizmet edecektir. Denetlenmiş ve sisteme teslim edilen her değişiklik sağlama toplamıyla (chekcsum) birlikte kaydedileceği için daha sonraki denetimler büyük oranda otomatikleştirilecektir.

Her partinin sistemdeki verilere, salt okuma hakkıyla erişimine imkan verilerek, sistemin doğru ve adil çalıştığı denetlenebilir kılınmalıdır. Aynı veri üzerinde çalışan iki farklı sistem aynı hesaplamaları yaptıkları zaman aynı sonucu vermelidir. Örneğin A ve B partileri sonuçları sağlamak için özel kontrol yazılımları geliştirmiş olabilirler. Geliştirdikleri yazılımlarının her ikisi birden birbirleriyle uyumlu, ancak seçim sisteminden farklı bir sonuç veriyorsa, seçim sisteminin yazılımında bir hata mevcut demektir.

Özetle güvenilir bir seçim sistemi oluşturabilmek için ihtiyacımız olan her parçayı üretmek mümkün değildir, ister istemez bazı bileşenler mevcut çözümlerin kullanımını gerektirecektir. Ancak bu bileşenlerin seçimi açık kaynak kodlu olmalıdır. Bu tip bileşenler işletim sistemi, veritabanı ve iletişim ağında çalışacak cihazlardır. Bu yazılımlar da açık kaynak kodlu, şeffaf olmalıdırlar.

Seçim sistemi yazılımının oluşturulması için dışarıya bağımlı olduğumuz düşünülmesin. Türkiye’deki üniversitelerde, her türlü sorunu çözebilecek mühendisler mevcuttur.

Sonuçta, yapılması gereken abartılacak bir iş de değildir. Eş zamanlı güncellenebilen ve erişilebilen bir veritabanı uygulamasıdır.kodun incelemeye açık olması gerekir. Satıcı firmayla ancak bu şartla anlaşma yapılmalıdır. Seçim sistemi, her partinin kendi geliştireceği kontrol yazılımlarına veri sağlayabilmelidir.

Ve şayet bu seçim sonuçları şimdiden şaibeliyse, 12 Eylül 2010 referandumunun neticeleri ne kadar uzun sürerse sürsün mutlaka eski usul sandık sayımıyla sağlanmalıdır. Taa ki her partinin ve seçmenin yüreğine sinecek bir seçim sistemine kavuşana dek. Ama illa dışarıdan alınacak yazılım kullanılacaksa, o vakit bu kodun incelemeye açık olması gerekir. Satıcı firmayla ancak bu şartlarda anlaşma yapılmalıdır.

Seçim sistemi, her partinin kendi geliştireceği kontrol yazılımlarına veri tabanı sağlayabilmelidir.

Şayet 12 Eylül referandum sonuçları şimdiden şaibeliyse, her partinin ve seçmenin yüreğine sinecek bir seçim sistemine kavuşana dek, seçim sonuçları, ne kadar uzun sürerse sürsün, eski usul sandık sayımıyla alınmaya çalışılmalıdır.

Bağımsız Gündem - 02.09.2010
http://bagimsizgundem.com/

Son Yazılar