Endişesini dile getirdiğin özel saldırı:
Genellikle bir saldırgan, saf bir kullanıcıyı sadece indirerek ve tıklatarak çalıştırılabilir bir çalıştırmaya zorlar.
En azından, dosyanın bir web tarayıcısında indirildiği ortak durumda, bu durum zaten tarayıcının Yürütme-İzinli Bit Gerekli İlkesi'ne uyması nedeniyle Ubuntu'da önlenmelidir . Bu politikanın en doğrudan ilgili kısımları:
- Bir web tarayıcısından, posta istemcisinden vb. İndirilen dosyalar hiçbir zaman çalıştırılabilir olarak kaydedilmemelidir.
Yani, bir kullanıcıya bir web tarayıcısından bir program indirmesi söylenirse, bunu yapar ve dosyayı çift tıklatarak çalıştırmayı denerse, çalışmaz. Bu, indirilen dosya bir kabuk betiği veya bir .desktop dosyası olsa bile geçerlidir. ( Ana dizininizdeki .desktop dosyalarının , gerçekte program olmasalar bile, yürütülebilir olarak işaretlenmeleri gerektiğini hiç merak ettiyseniz , bu yüzden.)
Kullanıcıların bu davranışı yapılandırma değişiklikleri yoluyla değiştirmesi mümkündür. Çoğu olmaz ve muhtemelen bunu yapmamalı olanlar olsa da, gerçekten endişelenmen gereken şey bu değil. En büyük endişe, kötü niyetli bir kişinin (veya botun) kullanıcıya belirli bir dosyayı indirmesi talimatını verdiği endişe duyduğum daha karmaşık bir saldırı. çalıştırılabilirlerini kendileri işaretleyebileceği (dosya tarayıcıları aracılığıyla veya ile chmod
) ve ve sonra koş.
Ne yazık ki, bir kullanıcının yürütme bitini bir dosyaya ayarlama veya bazı beyaz listedekilerden başka dosyaları yürütme yeteneğini kısıtlamak sorunu belirgin şekilde azaltmaz. Bazı saldırılar zaten işe yarayacak ve önemsizce değiştirilemeyecek hale getirildi. Temel sorun, bir dosyayı çalıştırma etkisinin , dosyanın çalıştırılabilir izinleri olmasa bile elde edilebileceğidir .
Bu en iyi örnek ile gösterilmiştir. evil
Geçerli dizinde, yürütülebilir izinler ( chmod +x evil
) ve run ( ./evil
) verilirse kötü şeyler yapabileceğini varsayalım . Ne tür bir program olduğuna bağlı olarak, aynı etki aşağıdakilerden biriyle sağlanabilir:
Bunların hiçbiri değil, hatta sonuncusu, dosya çalıştırılabilir izinlere sahip olduğunu veya kullanıcı olması bile gerektirir mümkün dosyayı çalıştırılabilir izinleri vermek.
Ancak kötü niyetli talimatların o kadar da karmaşık olması gerekmiyor. NVM'yi kurmak veya güncellemek için resmi olarak önerilen yollardan biri olan bu kötü amaçlı olmayan komutu düşünün :
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
Kötü niyetli olmama nedeni, NVM'nin kötü amaçlı yazılım olmamasıdır; ancak URL, çalıştırıldığında kötülük yapan birinin komut dosyasının yerine olsaydı, bu komut komut dosyasını indirir ve çalıştırırdı. Hiçbir noktada, herhangi bir dosyaya çalıştırılabilir izinler verilmesi gerekmez. Kötü niyetli bir dosyada bulunan kodu, bunun gibi tek bir komutla indirmek ve çalıştırmak, saldırganların kullanıcıları aldatmasını sağlayan oldukça yaygın bir işlem olduğuna inanıyorum.
Hangi tercümanların kullanıcıların çalıştırması için uygun olduğunu kısıtlamayı denemeyi düşünebilirsiniz. Ancak bunu yapmanın, muhtemelen kullanıcıların yapmasını istediğiniz sıradan görevleri önemli ölçüde etkilemeyecek bir yolu yoktur. Ayarlıyorsanız son derece sadece birkaç programlarını çalışır bir kiosk gibi izin verilmeyen bir kullanıcı bir bilgisayarda yapmak düşünürdüm neredeyse her şeyin üzerinde kısıtlı bir ortam, o zaman bu anlamlı düzeyde koruma sağlayabilir. Ama bu senin kullanım durumun gibi gelmiyor.
Yani sorunuza yaklaşık cevap "Hayır" dır. Tam cevap, muhtemelen kullanıcıların bir beyaz listeye verdiğiniz dosyalar dışında herhangi bir dosyayı çalıştırmalarını engelleyebilmeniz olabilir . Ancak bu, çoğu programın veya komut dosyasının çalıştırılmasının tam etkisini elde etmek için gerekli olmayan katı, teknik "yürütme" anlamındadır. Önlemek için bu , vermen gereken deneyebilirsiniz çok küçük, bu yüzden son derece kısıtlı olabilir olanların dışında tüm tercümanlar yazmıyorsa beyaz listesi. Fakat bunu başarsanız bile, kullanıcılar çok şey yapamazlardı ve çok küçük yaparsanız kendilerine zarar veremezlerdi, muhtemelen hiçbir şey yapamazlardı. (Bkz. Thomas Ward'ın yorumu .)
Eğer kullanıcılarınız kendilerine zarar verebilirse, kendilerini incitmek için kandırılabilirler.
Belirli programların kullanılmasını ya da zararlı olma ihtimali olan şekillerde davranmalarını kısıtlayabilirsiniz ve fidye yazılımının takip etme eğiliminde olduğu belirli kalıplara bakıyorsanız, bazı genel durumları önleyebilirsiniz. (Bkz. AppArmor .) Bu bir değer sağlayabilir. Ancak, umduğunuz kapsamlı çözüme yakın bir şey vermeyecektir.
Hangi önlemleri alırsanız (varsa), en iyisi, kullanıcıları eğitmektir. Bu, anlamadıkları komutları çalıştırmamalarını ve indirilmekte olan dosyaları neden kullanmanın neden güvenli olduğunu açıklayamadıkları durumlarda kullanmamalarını söylemeyi içerir. Ancak, yedekleme yapmak gibi şeyleri de içerir, böylece bir şeyler ters giderse (kötü amaçlı yazılım nedeniyle veya başka türlü), yapılan zarar mümkün olduğu kadar az olacaktır.