Teorik Bilgisayar Bilimi güvenlikle nasıl ilişkilidir?


11

Güvenli olmayan bir yazılım düşündüğümde "çok yararlı" olduğunu ve bir saldırgan tarafından kötüye kullanılabileceğini düşünüyorum. Yani bir anlamda yazılımı korumak, yazılımı daha az kullanışlı hale getirme sürecidir. Teorik Bilgisayar Bilimlerinde gerçek dünyayla çalışmıyorsunuz. Saf teori ile çalışırken herhangi bir güvenlik kaygısı var mı? Veya madalyonun diğer tarafında, Teorik Bilgisayar Bilimi insanların saldırıya uğrayan gerçek dünyasını etkiler mi? Öyleyse, hangi güvenlik konuları Teorik olarak kabul edilir?


9
Sunulan CS Teorisinin perspektifi sübjektiftir ve çok tartışmalıdır ve aynı zamanda soruyu ortaya koymak gerekmez. Soru, özellikle kendisinin (sosyal mühendislik tekniklerine kadar uzanan) geniş bir konu olan ve "güvenli olmanın" ne içerdiğine yaklaşmayan hacklemeye odaklanıyor gibi görünüyor. Bu nedenlerden dolayı aşağı düştüm. Ancak, soru iyi bir yerden geliyor ve bazı ilginç yönleri var gibi hissediyorum, bu yüzden aşağıda cevap verdim.
Ross Snider

Yanıtlar:


20

"Güvensizliğin" "çok yararlı" yazılıma bağlı olduğu sezgileriniz bir anlamda doğrudur. Sezginizi resmileştiren “farklı mahremiyet” hakkında geniş ve büyüyen bir teorik literatür vardır. Örneğin, buraya bakın: arastirma.microsoft.com/tr-tr/projects/databaseprivacy/dwork.pdf

Burada, bir algoritmanın girdisinin bir "veritabanı" olduğunu düşünüyoruz ve herhangi bir kişinin veritabanındaki verileri hakkında çok fazla bilgi ortaya çıkarması durumunda algoritma "güvensiz". Algoritmanın çıkışı herhangi bir girdiye çok fazla bağlı değilse, bir algoritma -diferansiyel olarak özeldir: özellikle, giriş veritabanındaki tek bir girdinin değiştirilmesi, algoritmanın herhangi bir çıktısının olasılığını en fazla bir faktörü.e ϵϵeϵ

Tabii ki, bir algoritmayı özel yapmak daha az kullanışlı hale getirir: farklı olarak özel bir algoritma, girişlerin bir fonksiyonu bile olmayan çıktılar üretir! Ancak, gizlilik ve yardımcı program arasındaki ödünleşmeyi deneyip dikkatlice dengeleyebileceğiniz ve yine de önemsiz derecede yararlı olan çok özel algoritmalar elde edebileceğiniz ortaya çıkıyor.0


14

Birkaç yolla:


Dürüst olmak gerekirse, bir güvenlik açığı bulduğunuza, tek bir kod parçası yamaladığınıza veya hatta gerçek bir dünya güvenlik açığının iç işleyişini gördüğünüze inanmıyorum.
Rook

8
OllyDbg kullanarak Microsoft'un Salı yaması önce (ikinci) imleç güvenlik açığını (kaynak kodu olmadan) düzeltmek için gdi dll yamalı. Yine OllyDbg'yi kullanarak bir kapalı kaynak emülatörünü yattım ve bir Pokemon yarışması için hileli bir kanıt haline getirdim. Bir web kamerası projesinde 0 gün buldum ve çok sayıda savaş oyununda (ASLR ve PaX'in etkin olduğu Blacksun dahil) oldukça yüksek puan aldım. Yaptığım bazı hain şeylerden bahsetmeyeceğim .... Shrug; Sahip olsaydım ya da etmesem neden önemli olurdu? Lütfen alev almayın.
Ross Snider

13
@Kalp: Ross listesinin gerçek yazılım güvenliği uygulamasıyla çok az bağlantısı olduğunu düşünüyorsanız, bunu söyleyin. Belki bazı örnekler vermek yararlı olabilir, ya da TCS güvenlik araştırmalarının gerçek güvenlik uygulamasından ne kadar uzakta olduğunu (kendi kendime okumak çok ilginç olacağını düşünüyorum) kendi detaylarınıza bir cevap eklemek olabilir. Ama Ross'u küçümsemeye gerek yok.
Joshua Grochow


10

Ağ saldırı tespitinden gelen akış algoritmalarının araştırılması için birçok gerçek dünya motivasyonu var. Aşağıdaki makalede ağ trafiğinizdeki anormallikleri tespit etmek için ampirik entropi için akış algoritmaları kullanılmaktadır.

Yu Gu, Andrew McCallum ve Don Towsley. Maksimum entropi tahmini kullanarak ağ trafiğindeki anormallikleri tespit etmek. IMC '05'te: 5. ACM SIGCOMM İnternet ölçümü konferansının bildirileri, sayfa 1–6, 2005


8

Diğer cevapların aksine, bu daha çok TCS'nin güvenlik içinde kullanıldığı yerlerin aksine "bir şeyin 'kanıtlanabilir şekilde güvenli olduğunu söylerken endişelenmemiz gereken şeyler" çizgisinde. Böylece, teori ile çalışırken güvenlik konusundaki ilk soruyu ele alır.

Bilgisayar korsanlarının söylediği gibi, teorik sonuçlar genellikle gerçek dünya güvenliğine teğettir. Bu tür bir argüman, Alfred Menezes ve Neal Koblitz tarafından ' Başka Bir Bak ' makaleleri dizisinde daha teorik, bilimsel ve kesin hale getirildi (uyarı: site benim için biraz çatışmacı görünüyor, ancak sanırım varsayımları sorgulamak temel fikri çok önemli). Seminal gazetelerde bile kriptografide standart varsayımlardaki zayıflıklara dikkat çekiyorlar.

Bazı örnekler (sitelerinden birkaç noktayı alıntılamak / yorumlamak):

  1. Güvenlik teoremi koşulludur - bazı matematiksel problemlerin sürdürülemezliğini varsayar.

  2. Sık sık karmaşık ve anlaşılmaz bir sorun için sürdürülemezlik varsayımı yapılır: bazı durumlarda sorun, güvenliği "kanıtlanmış" olan protokol için kriptanaliz problemine eşdeğerdir.

  3. Bazen bir prova büyük bir sızdırmazlık boşluğuna sahiptir, ancak kanıtın sıkı olduğu gibi parametre boyutları hala önerilir. Bu gibi durumlarda, kanıt genellikle başarılı bir saldırının çalışma süresinde işe yaramaz bir alt sınır verir. Ayrıca, asimptotik bir sonuç, uygulamada kullanılan aralıktaki parametreler için herhangi bir güvenlik güvencesi sağlamayabilir.

  4. Güvenlik teoremi belirli bir güvenlik modeli kullanır. Bazı saldırıların - özellikle yan kanal saldırılarının - modellenmesi çok zordur ve önerilen modellerin üzücü bir şekilde yetersiz kalması.


6

Teorem kanıtlayıcıları bir ölçüde yazılım, donanım ve protokollerin doğruluğunu kanıtlamak için kullanılmıştır. Bkz. Örneğin, burada veya burada .

Programlar (istenmeyen bir sızıntıya neden olan) aracılığıyla istenmeyen yollardan akan veri problemi teorik olarak (girişimsel olmayan) kavramı kullanılarak modellenmiştir; buraya işaretçiler getirin .


3

Karar verilebilirlik, dil araştırmasının programlanmasında temel bir husustur. Yani, yalnızca belirli özellikleri karşılayan kodu kabul eden programlama dilleri oluşturmak için çok çaba harcanmaktadır. Tipik statik diller, yalnızca belirli yöntemler yoksa bir programı reddetmek gibi zayıf garantiler sağlar, ancak dilin, örneğin muteksleri yanlış kullanan veya bellek bölgelerinin ötesini okumaya çalışan programları da atabileceğini düşünün. Karar verilebilirlik sorunlarının hızlı bir şekilde ortaya çıktığı açıktır (en basit senaryo: derleyicinizin yalnızca sonlandırma programlarını kabul etmesi gerektiğini belirtin) ve kesinlikle verimlilik endişeleri vardır (ML tipi denetleyicinin iki kat üstel durumu vardır).

Her durumda, PL araştırma topluluğu güvenlikle çok ilgileniyor (tarayıcınızın keyfi yabancı kod çalıştırmasına güveniyor musunuz ?!) ve soruları birçok klasik CS teorisi sorusuna yol açıyor.


Herhangi bir uygun üst düzey dil (okuma: C [++] dışında) programcı bellek erişimi üzerinde kontrol vermez, bu yüzden bu sorunu çözülmüş düşünecektim.
Raphael

@Raphael: C ve C ++ 'da hala büyük miktarda yazılım yazıldığı düşünüldüğünde, bu sorunun basitçe çözülebileceği düşünülemez. Ayrıca, örneğin Javascript üzerinde kod enjeksiyon saldırılarını ele alma teknikleri hala emekleme aşamasındadır. Yapılacak çok şey var.
Dave Clarke

1
Bazı ortamların mevcut çözümleri (bazen iyi nedenlerle) görmezden gelmesi sorunu (burada: yasak bellek adreslerine erişme) daha az çözülmez. Kontrol edilmesi zor olan bazı şeyler uygun değişmezler tarafından kolayca atlatılabilir. Örneğin, programlayıcınızdan (cf Isabelle / HOL) resmi bir fesih kanıtı talep edebilirsiniz.
Raphael
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.