Açık portlara sahip olmak neden bu kadar kötü?


36

İşte beni her zaman şaşırtan bir şey. Bilgisayarınızda açık bağlantı noktaları olması neden kötü? Bilgisayarınızda bir virüs bulunmadığını veya aslında bir şey yapabilecek bir bağlantı noktasını dinleyen başka bir program olmadığını varsayalım. Bazı kötü niyetli kişiler bir bağlantı noktasına paket göndermeye başlarsa, ancak verileri almak için bir şey yok ve onunla bir şeyler yapmak neden önemli? Bir bilgisayar yalnızca aldığı herhangi bir bilgiyi keyfi bir şekilde yürütmez. Bir bilgisayarı paketlerle doldurmanın çökmesine neden olabileceğini biliyorum, çünkü yalnızca veri miktarını kaldıramıyor, ancak yalnızca bilgisayardaki dosyaları değiştiren güvenlik sorunlarını düşünüyorum.

Güncelleştirme

Şimdiye kadar cevaplar için teşekkürler. Şimdi anlıyorum ki, bir limanın açık olması aslında o limanda dinlenebilecek bir program olduğu anlamına geliyor. Ancak, yararlanılamayan bir yazılım yazmak neden bu kadar zor? Bilgisayara herhangi bir gerçek zarar vermek için, bir programın bir veya daha fazla dosyanın yüklenmesine izin vermesi gerekmez ve ardından bu dosyalardan birinin yürütülmesi gerekir. Yanlışlıkla izin vermek inanılmaz derecede zor olacak gibi görünüyor.

Yanıtlar:


36

Bir şey bağlantıyı dinlemiyorsa, bağlantı noktası açık değildir.

Tüm bağlantı noktalarının her yere açık olmasının kötü olmasının nedeni, bu bağlantı noktalarını dinleyen hizmetleri açıklardan yararlanmaya açmasıdır. Bu nedenle, hizmetlerin maruz kaldığı yüzey alanını azaltmak için belirli bağlantı noktalarına bağlanmasına izin verilenleri sınırlandırmak için güvenlik duvarları vardır.


DÜZENLE

İnsanların neden sömürülmeyen bir yazılım yazamadığı hakkındaki sorunuzu yanıtlamak için:

Bu basit programlar için oldukça kolaydır, ancak bir soket gerektiren birçok program karmaşıktır. Bu nedenle, çoğu geliştirici tarafından bile yazılmayan pek çok bileşene sahiptir (kütüphaneler dahil). Güvenlik duvarları gibi kullanabileceğiniz sertleştirme yöntemleri olduğunda ağınızı güvende tutmak için diğer insanlara güvenemezsiniz.

Rasgele / uzaktan kod yürütme, belirttiğiniz gibi büyük bir risktir. Ne yazık ki arabellek taşması ve buna izin veren diğer güvenlik açıkları yaygındır. Herhangi bir Microsoft güvenlik güncellemesine bakın ve bahse girerim uzaktan kod çalıştırma ya da ayrıcalık yükselmesi ya da MS yüzlerce geliştiriciden ve milyarlarca dolardan oluşan büyük bir şirkettir.


4
Eklemek: Örneğin, bir hizmetin kod veya içine sızmak için kullanılabilecek bir hata olduğunu biliyorsanız ve gerçekten de bu hizmetin çalıştığını görüyorsanız, bu açık bir davetiyedir;)
Felix

9

Yazdığınız güncelleme ile ilgili olarak:

Şimdiye kadar cevaplar için teşekkürler. Şimdi anlıyorum ki, bir limanın açık olması aslında o limanda dinlenebilecek bir program olduğu anlamına geliyor. Ancak, yararlanılamayan bir yazılım yazmak neden bu kadar zor? Bilgisayara herhangi bir gerçek zarar vermek için, bir programın bir veya daha fazla dosyanın yüklenmesine izin vermesi gerekmez ve ardından bu dosyalardan birinin yürütülmesi gerekir. Yanlışlıkla izin vermek inanılmaz derecede zor olacak gibi görünüyor.

Kullanılamayan bir yazılım yazmak çok zor!

Güvenli Yazılım Oluşturma kitabını okudum ve konuştuğu şeylerden biri yığın taşmalarını kullanmaktı. Orada çok korkutucu iki gerçek vardı:

  • Bir programın istiflenebilir bir yığın taşması hatası olması çok kolaydır, özellikle program C dilinde yazıldığında, C programlama dilinde, birçok işlev varsayılan olarak güvenli değildir ve programcının savunmasız işlevlerden kaçınmayı bilmesi gerekir. , ya da güvende olmak için özel önlemler almak zorunda.
  • Bir bilgisayar korsanının kullanması gereken istismar çok kısa - çok kısa. Makine kodunun 100 sayfasından daha azına (tahmininde) bayt çevrilen bir kurulum dili sayfasının yarısından azdı. Bu kullanım kodu, bilgisayar korsanının (komut istemi) makinenize erişmesine izin vermek için yeterlidir. Büyük bir dosya yükleme ve çalıştırma gerektirmez - yasal verilerin ortasına eklenebilecek küçük bir kod parçası.

Eğer bir bilgisayar korsanı (a) (b) ağ üzerinde sömürülebilir ve (c) ara belleğinde yedek bir kaç 100 baytlık yığın yığın taşması bulunan bir program bulabilirse, bilgisayarınız kesilir. Neyse ki yığın taşması hatalarıyla ilgili bilgi şu anda oldukça yaygın bir bilgidir, ancak hala ortaya çıkıyorlar. 5 yıl önce ve daha uzun süre bu çok daha sık görülen bir problemdi.

Asıl sorunuza geri dönersek, bir programda sömürülebilir bir hatayla herhangi bir kaza yapmamak için açık portlardan kaçınmalısınız. Şimdi ikinci bir nedeniniz var: bir bilgisayar korsanının kullanacağı uzak kabuk başka bir açık port. Özel olarak izin verdiğiniz dışında her şeyi engelleyen bir güvenlik duvarınız varsa, o uzak kabuğunu da engellersiniz (bir bilgisayar korsanı bilgisayarınıza diğer kötü şeyleri yapsa da, şikayet etmeyin!)


2
IIRC, Donald Knuth (?), Yazdığı daha küçük programlardan birinin hatasız olduğunu kanıtlayarak matematiksel olarak yeni bitirdi ve bu, insan yıllarını aldı
RCIX

7
  • Açık port: Birisi sorduğunda, bilgisayar bu portu dinleyen bir servis olduğunu söyler. Bu, bu bağlantı noktasına gelen herhangi bir şeyin o bilgisayarda çalışan bir program (hizmet) tarafından işleneceği anlamına gelir.
  • Kapalı bağlantı noktası: Herhangi biri sorduğunda, bilgisayar bu bağlantı noktasını dinleyen hiçbir hizmet olmadığını yanıtlar. Akser, adrese cevap veren bir bilgisayar olduğunu bilecektir.
  • Gizli liman: Birisi sorduğunda cevap alamaz. Asıl nokta, adreste bir bilgisayar olup olmadığını gizlemektir. Ancak, joschi yorumlarda belirtildiği gibi, çok etkili olmayabilir .

Açık bir bağlantı noktanız varsa, gelenleri işleyen programın kullanabileceği herhangi bir istismar olmadığından emin olabilirsiniz. Ancak, istismarlar her zaman bulunur ve ağları gezen, hedefleri arayan çok sayıda liman taraması olduğunu bilmek iyidir.

Kapalı limanlar hala aksere yanıt veriyor, bu nedenle olası saldırgan diğer limanları kontrol etmeye devam edeceğini biliyor. Sonra tekrar, işte internetin çalışması için bu böyle. Gizli limanlar potansiyel saldırgana herhangi bir bilgi vermemeye çalışsa da teorik olarak şartnameyi bozarlar.

Güvenlik açısından bakıldığında, herhangi bir açık bağlantı noktası, yabancı verileri işlemek için kod kullanıldığından büyük bir boşluktur. Bir güvenlik duvarının (veya bir NAT yönlendiricisinin) yaptığı, sistemde açık bağlantı noktaları olsa da, bilgisayarınıza gelen hiçbir trafiğin gelmemesini sağlamaktır. Bu şekilde tüm limanları etkin bir şekilde kapatırlar.


1
Bir "gizli liman" tanımınız arzulu bir düşüncedir. Aslında bir saldırgan, herhangi bir cevap alamazsa bilgisayarın olduğunu bilir. Belirli bir IP adresinde bilgisayar olmasaydı, önceki yönlendirici bunun hakkında bir mesaj gönderirdi.
Olmaz

@joschi: İnternette gördüğüm bir kavram, bu yüzden onu tanımlamanın iyi olduğunu düşünüyorum. Yine de iyi bir noktaya değindin. Yorumunuzu yansıtacak şekilde cevabı değiştirdim. En azından hedef IP’yi NAT yönlendiricisinin arkasındaki gibi gösteriyor, sanırım. Asla kendim konseptin hayranı olamadım: Açık limanlarınız varsa, güvenli bir servis çalıştırdıklarından emin olmalısınız. Açık portunuz yoksa, net varlığınızı söylemekte sorun yoktur. Gizli bana güvenlik yutturmaca gibi kokuyor.
Ilari Kajaste

joschi: Bütün yönlendiriciler bunu yapmaz. Birçok yönlendirici, sistemin olmadığı IP adreslerine kör şekilde iletir. bağlantı, zaman aşımına uğrar, çünkü müşteri üç yönlü bir el sıkışma yapmaktan sıkılır.
benc

6

Aslında bildiğim kadarıyla, bir açık liman bir programın onu dinlediği anlamına geliyor. Dolayısıyla, verileri işleyen bir tür hizmet var.


3

Varsayarsak bilgisayarınızdan veya gerçekten bir şeyler yapabileceği yönünde bağlantı noktasına başka bir program dinleme üzerinde bir virüs yok neden bir liman açık olup olmadığını fark eder? Bazı kötü niyetli kişiler bir bağlantı noktasına paket göndermeye başlarsa, ancak verileri almak için bir şey yok ve onunla bir şeyler yapmak neden önemli?

Varsayım tüm etkinliklerin anasıdır :)

Üzgünümden ziyade güvenli ... işte makeuseof.com'da sizin için okumak güzel:

Açıklanan Teknoloji: Açık Yönlendirici Bağlantı Noktaları ve Güvenlik Etkileri


iyi, kısa bir okuma.
DaveParillo

1

Güvenlik ihracı değilim ama biraz araştırma yaptım ... "Açık" bir bağlantı noktası, gelen bir TCP bağlantısını kabul etmek için ayarlanmış bir bağlantı noktasıdır.

Yalnızca 9, 21 ve 80 numaralı bağlantı noktalarını dinleyen uygulamalarınız varsa ve güvenlik duvarınız bu üç bağlantı noktasına erişimi engelliyorsa, teknik olarak hiçbir bağlantı noktanız yoktur. Örneğin, IOW, 25 numaralı bağlantı noktası açık değil, çünkü hiçbir şey dinlemiyor.

Sorunuzu yanıtlamak için: Bilgisayarınızda açık bağlantı noktalarının bulunmasının kötü olmasının nedeni, bu bağlantı noktalarının kolayca keşfedilebilmesi ve bu bağlantı noktalarının keşfedildikten sonra artık dinleme uygulamalarının zayıf noktalarına karşı hassas olmasıdır.


Bir portun ne olduğu ile ilgili tanımınız yanlıştır. Bir bağlantı noktası, hiçbir şekilde TCP ile sınırlı değildir.
MDMarra

1
Sanırım, Google'ın en iyi 6 sonucunun 'net :)' te okuduklarına HER ŞEYİN tanımında "TCP" yazdığını açıkça söylememeliyim. google.com/…
Ayakkabısız

Hayır, TCP / IP diyorlar. Büyük fark. TCP / IP UDP'yi içerir
MDMarra

1
ICMP bir bağlantı noktası kullanmaz, IP protokol grubuna dahil olan bir katman 3 protokolüdür.
MDMarra

1
Söylememin tek nedeni, güvenlik duvarlarına atıfta bulunmanın çok önemli olduğudur (dolaylı olarak budur). TCP durum bilgisidir ve bu nedenle UDP'nin olmadığı yerlerde bağlantılar hatırlanır. Çoğu zaman bu, bağlantı noktalarının, dahili olarak kurulan TCP bağlantılarında olması gerekmeyen durumlarda, dahili olarak başlatılan dönüş UDP trafiğine açık olması gerektiği anlamına gelir.
MDMarra

0

Aynı sebepten dolayı kapılarınızı ve pencerelerinizi evde kapatıp kilitlemeniz gerekir.


3
Kapılarımı ve pencereleri kilitledim çünkü dışarısı soğuk. Bu sorunun yalıtımla ne alakası var?
quix quixote

2
Kapılarınız ve pencereleriniz sadece kapalıyken yalıtılmaz mı? Ekstra cıvata gerçekten daha fazla yalıtım sağlıyor mu?
Dentrasi

İyi bir nokta, ancak herkesin kapılarını ve pencerelerini evde kilitlemediğine dikkat çekmek gerekiyor. Bu , bakış açınıza bağlı olarak "Herkes mülklerini korumak istemiyor" veya "Herkes bir korku kültüründe yaşamayı sevmiyor" olabilir.
Ilari Kajaste

-2

Diyelim ki açık portlar açık pencere ve açık kapı gibi ama pencereleriniz bir soyguncu ya da bir sıçan ve bir örümceğin içeri girebileceğini söyleyelim # lütfen aptal veya asin olup olmadığımı söyle İnternette açık port var sanırım kapalı port da kapalı pencereler var biz bağlanamayız veya göz atamıyoruz sanırım tıpkı HTTP ve SSH veya FTP gibi bağlanamayız bağlayamıyoruz çünkü bir istemci bu sadece TCP bağlantısı

Ben güvenlik uzmanı değilim


Hizmet vermek için açık limanlar gerekir. Zilyondan mümkün örneklerden sadece biri: Gmail açık bir bağlantı noktası kullanıyor (HTTPS kullanan web siteleri için 443). Ancak bir şey göstermeden önce oturum açmanızı ister.
Arjan,
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.