Tại sao nó là xấu khi có cổng mở?


36

Đây là một cái gì đó luôn luôn gây trở ngại cho tôi. Tại sao nó là xấu khi có cổng mở trên máy tính của bạn? Giả sử bạn không có vi-rút trên máy tính hoặc một số chương trình khác nghe một cổng thực sự có thể làm điều gì đó tại sao nó lại quan trọng nếu một cổng được mở? Nếu một số người độc hại bắt đầu gửi các gói đến một cổng, nhưng không có gì ở đó để nhận dữ liệu và làm gì đó với nó tại sao nó lại quan trọng? Một máy tính không tự ý thực hiện bất kỳ dữ liệu nào nó nhận được. Tôi hiểu việc làm ngập máy tính với các gói có thể khiến máy bị sập vì nó không thể xử lý được lượng dữ liệu, nhưng tôi chỉ xem xét các vấn đề bảo mật thực sự thay đổi các tệp trên máy tính.

Cập nhật

Cảm ơn vì những hồi âm cho đến bây giờ. Bây giờ tôi hiểu rằng một cổng đang mở thực sự có nghĩa là có một chương trình có thể được khai thác nghe trên cổng đó. Nhưng tại sao việc viết phần mềm không thể khai thác lại khó đến vậy? Để thực hiện bất kỳ tác hại thực sự nào đối với máy tính, một chương trình sẽ không phải cho phép một hoặc nhiều tệp được tải lên, và sau đó một trong những tệp đó sẽ cần phải được thực thi. Có vẻ như điều đó sẽ vô cùng khó để cho phép vô tình.

Câu trả lời:


36

Một cổng không mở nếu có gì đó không nghe kết nối trên đó.

Lý do nó là hình thức xấu khi tất cả các cổng mở ra ở mọi nơi là vì nó phơi bày những dịch vụ đang lắng nghe trên các cổng đó để khai thác. Đó là lý do tại sao tường lửa tồn tại, để hạn chế những gì được phép kết nối với một số cổng nhất định, để giảm diện tích bề mặt tiếp xúc với các dịch vụ.


CHỈNH SỬA

Để giải quyết câu hỏi của bạn về lý do tại sao mọi người không thể viết phần mềm không thể khai thác:

Điều này khá dễ dàng đối với các chương trình đơn giản, nhưng nhiều chương trình yêu cầu ổ cắm rất phức tạp. Như vậy, chúng có nhiều thành phần, nhiều trong số đó thậm chí không được nhà phát triển viết (bao gồm các thư viện). Bạn không thể dựa vào người khác để giữ an toàn cho mạng của mình khi có các phương pháp cứng bạn có thể tự sử dụng, như tường lửa.

Việc thực thi mã tùy ý / từ xa là một rủi ro rất lớn, như bạn đã chỉ ra. Thật không may, lỗi tràn bộ đệm và các lỗi bảo mật khác cho phép nó phổ biến. Nhìn vào bất kỳ bản cập nhật bảo mật nào của Microsoft và tôi sẽ cá rằng nó vá lỗi thực thi mã từ xa hoặc nâng cao các đặc quyền và MS là một công ty lớn với hàng trăm nhà phát triển và hàng tỷ đô la.


4
Chỉ cần thêm: Ví dụ: nếu bạn biết rằng một dịch vụ có lỗi có thể được sử dụng để xâm nhập mã hoặc bất cứ điều gì và bạn thực sự thấy rằng dịch vụ này đang chạy, thì đây là một lời mời mở;)
Felix

9

Về bản cập nhật bạn đã viết:

Cảm ơn vì những hồi âm cho đến bây giờ. Bây giờ tôi hiểu rằng một cổng đang mở thực sự có nghĩa là có một chương trình có thể được khai thác nghe trên cổng đó. Nhưng tại sao việc viết phần mềm không thể khai thác lại khó đến vậy? Để thực hiện bất kỳ tác hại thực sự nào đối với máy tính, một chương trình sẽ không phải cho phép một hoặc nhiều tệp được tải lên, và sau đó một trong những tệp đó sẽ cần phải được thực thi. Có vẻ như điều đó sẽ vô cùng khó để cho phép vô tình.

Đó là rất khó khăn để phần mềm ghi mà không thể được khai thác!

Tôi đã đọc cuốn sách Xây dựng phần mềm bảo mật và một điều mà nó đã thảo luận là khai thác tràn ngăn xếp. Có hai sự thật rất đáng sợ trong đó:

  • Để một chương trình có lỗi tràn ngăn xếp có thể khai thác là rất dễ thực hiện, đặc biệt là khi chương trình được viết bằng C. Trong ngôn ngữ lập trình C, nhiều chức năng không an toàn theo mặc định và lập trình viên cần biết để tránh các chức năng dễ bị tổn thương hoặc phải thực hiện các hành động đặc biệt để được an toàn.
  • Việc khai thác mà một hacker cần sử dụng là ngắn - rất ngắn. Nó chưa đến nửa trang ngôn ngữ lắp ráp, có nghĩa là 100 byte hoặc hơn (đoán) byte mã máy. Mã khai thác này đủ để cung cấp cho trình điều khiển vỏ (dấu nhắc lệnh) truy cập vào máy của bạn. Không yêu cầu tải lên và thực thi tệp lớn - chỉ cần một đoạn mã nhỏ có thể được chèn vào giữa dữ liệu hợp pháp.

Vì vậy, nếu tin tặc có thể tìm thấy một chương trình (a) có lỗi tràn ngăn xếp (b) có thể khai thác qua mạng và (c) có một vài dự phòng 100 byte trong bộ đệm của nó, thì máy tính của bạn đã bị xóa. May mắn là kiến ​​thức về lỗi tràn stack là kiến ​​thức khá phổ biến hiện nay, nhưng chúng vẫn bật lên. 5 năm trước và lâu hơn đây là một vấn đề thường xuyên hơn nhiều.

Quay trở lại câu hỏi ban đầu của bạn, bạn nên tránh các cổng mở để tránh mọi tai nạn với lỗi có thể khai thác trong chương trình. Bây giờ bạn có một lý do thứ hai: lớp vỏ từ xa mà tin tặc sẽ sử dụng là một cổng mở khác. Nếu bạn có tường lửa chặn mọi thứ ngoại trừ bạn đã cho phép cụ thể, bạn cũng sẽ chặn lớp vỏ từ xa đó (mặc dù hacker vẫn có thể làm những việc khó chịu khác với máy tính của bạn, vì vậy đừng tự mãn!)


2
IIRC, Donald Knuth (?) Vừa hoàn thành về mặt toán học chứng minh rằng một trong những chương trình nhỏ hơn mà anh ta viết là không có lỗi, và phải mất nhiều năm
RCIX

7
  • Cổng mở: Khi có ai hỏi, máy tính trả lời rằng có một dịch vụ lắng nghe trên cổng này. Điều này có nghĩa là mọi thứ đến cổng này sẽ được xử lý bởi một chương trình (dịch vụ) đang chạy trên máy tính đó.
  • Cổng đóng: Khi có ai hỏi, máy tính trả lời rằng không có dịch vụ nào nghe trên cổng đó. Các akser sẽ biết có một máy tính trả lời tại địa chỉ.
  • Cổng tàng hình: Khi bất cứ ai hỏi, họ không nhận được trả lời. Vấn đề là ẩn nếu có một máy tính ở địa chỉ nào cả. Nó có thể không hiệu quả lắm, mặc dù, như joschi đã viết ra trong các bình luận.

Nếu bạn có một cổng mở, bạn an toàn với điều kiện chương trình xử lý các công cụ đến không có khai thác. Nhưng khai thác được tìm thấy mọi lúc, và thật tốt khi biết rằng có rất nhiều quét cổng di chuyển trên mạng, tìm kiếm mục tiêu.

Các cổng đóng vẫn phản hồi với akser, vì vậy kẻ tấn công có thể biết để tiến hành kiểm tra các cổng khác. Sau đó, một lần nữa, đây là cách internet được đặc trưng để làm việc. Mặc dù các cổng tàng hình cố gắng không cung cấp cho kẻ tấn công tiềm năng bất kỳ thông tin nào, nhưng về mặt lý thuyết, chúng phá vỡ đặc điểm kỹ thuật.

Từ quan điểm bảo mật, bất kỳ cổng mở nào cũng là một lỗ hổng lớn, vì mã đang được sử dụng để xử lý dữ liệu nước ngoài. Những gì tường lửa (hoặc bộ định tuyến NAT) làm là đảm bảo không có lưu lượng truy cập đến vào máy tính của bạn, ngay cả khi hệ thống có một số cổng mở. Bằng cách này, họ có hiệu quả đóng tất cả các cổng.


1
Định nghĩa của bạn về một "cổng tàng hình" là mơ tưởng. Trên thực tế, một kẻ tấn công biết rằng có một máy tính nếu anh ta không nhận được bất kỳ câu trả lời nào. Nếu không có máy tính trên địa chỉ IP cụ thể đó, bộ định tuyến có sẵn sẽ gửi một thông báo về điều đó. Với "cổng tàng hình" không xảy ra ...
joschi

@joschi: Chà, đó là một khái niệm mà tôi đã thấy trên internet, vì vậy tôi nghĩ thật tốt khi định nghĩa nó. Bạn làm cho một điểm tốt, mặc dù. Tôi chỉnh sửa câu trả lời để phản ánh bình luận của bạn. Ít nhất, nó làm cho IP mục tiêu trông giống như đằng sau bộ định tuyến NAT, tôi đoán vậy. Bản thân tôi chưa bao giờ là người hâm mộ khái niệm này: Nếu bạn có cổng mở, bạn nên đảm bảo rằng họ đang chạy một dịch vụ an toàn. Và nếu bạn không có cổng mở, sẽ không có vấn đề gì khi nói với mạng rằng bạn tồn tại. Tàng hình có mùi giống như sự cường điệu an ninh đối với tôi.
Ilari Kajaste

joschi: không phải tất cả các bộ định tuyến làm điều đó. nhiều bộ định tuyến chỉ đơn giản chuyển tiếp một cách mù quáng đến các địa chỉ IP nơi không có hệ thống. kết nối cố gắng hết thời gian đơn giản vì khách hàng cảm thấy nhàm chán khi cố gắng thực hiện một cách ba tay.
benc

6

Trên thực tế theo như tôi biết, một cổng mở có nghĩa là một chương trình đang lắng nghe nó. Vì vậy, có một số loại dịch vụ xử lý dữ liệu.


3

Giả sử bạn không có vi-rút trên máy tính hoặc một số chương trình khác nghe một cổng thực sự có thể làm điều gì đó tại sao nó lại quan trọng nếu một cổng được mở? Nếu một số người độc hại bắt đầu gửi các gói đến một cổng, nhưng không có gì ở đó để nhận dữ liệu và làm gì đó với nó tại sao nó lại quan trọng?

Giả định là mẹ của tất cả các eff-up :)

khá an toàn hơn xin lỗi ... đây là một bài đọc hay cho bạn tại makeuseof.com:

Công nghệ giải thích: Cổng bộ định tuyến mở và ý nghĩa bảo mật của chúng


một tốt, đọc ngắn.
DaveParillo

1

Tôi không xuất khẩu bảo mật, nhưng tôi đã thực hiện một nghiên cứu nhỏ ... Cổng "mở" là cổng được thiết lập để chấp nhận kết nối TCP đến.

Nếu bạn chỉ có các ứng dụng chỉ nghe trên các cổng 9, 21 và 80 và tường lửa của bạn chặn truy cập vào ba cổng đó, về mặt kỹ thuật bạn không có cổng nào mở. IOW, ví dụ, cổng 25, không mở vì không có gì nghe trên đó.

Để trả lời câu hỏi của bạn: Lý do rất tệ khi có các cổng mở trên máy tính của bạn là vì các cổng này có thể dễ dàng được phát hiện và một khi đã phát hiện ra các cổng này giờ đây dễ bị lỗ hổng của các ứng dụng nghe.


Định nghĩa của bạn về một cổng là gì, không chính xác. Một cổng không bị giới hạn bởi TCP bằng mọi cách.
MDMarra

1
Tôi cho rằng người ta không nên tin MỌI THỨ họ đọc trên 'mạng :) 5 trong số 6 kết quả hàng đầu của Google nêu rõ "TCP" trong định nghĩa của họ. google.com/...
Shoeless

Không, họ nói TCP / IP. Sự khác biệt lớn. TCP / IP bao gồm UDP
MDMarra

1
ICMP không sử dụng cổng, nó là giao thức lớp 3 được bao gồm trong bộ giao thức IP.
MDMarra

1
Lý do duy nhất mà tôi nói đó là nó rất quan trọng trong việc tham khảo tường lửa (điều này là gián tiếp). TCP là trạng thái, và do đó các kết nối được ghi nhớ, trong đó UDP thì không. Nhiều lần điều này có nghĩa là các cổng phải được mở để trả lại lưu lượng UDP được khởi tạo bên trong khi điều này không cần phải xảy ra đối với các kết nối TCP được thiết lập bên trong.
MDMarra

0

Vì lý do tương tự mà bạn đóng và khóa cửa ra vào và cửa sổ ở nhà.


3
tôi khóa cửa ra vào và cửa sổ vì trời lạnh. Câu hỏi này có liên quan gì đến cách nhiệt?
quack quixote

2
Cửa ra vào và cửa sổ của bạn không cách nhiệt nếu chúng chỉ được đóng lại? Liệu các bu lông thêm thực sự cung cấp cách nhiệt hơn nhiều.
Dentrasi

Điểm hay, nhưng đáng chú ý là không phải ai cũng khóa cửa và cửa sổ ở nhà. Điều này có thể là "Không phải ai cũng muốn bảo vệ tài sản của mình" hoặc "Không phải ai cũng thích sống trong một nền văn hóa sợ hãi", tùy thuộc vào quan điểm của bạn.
Ilari Kajaste

-2

Chúng ta chỉ nói rằng các cổng mở giống như cửa sổ mở và cửa mở nhưng khi cửa sổ của bạn mở một tên cướp hoặc một con chuột và một con nhện có thể vào # xin vui lòng cho tôi biết nếu tôi bị câm hoặc asinine Chỉnh sửa không có cổng mở giống như cửa sổ mở nhưng Trong internet có một cổng mở Tôi đoán cũng có cổng đóng là cửa sổ đóng mà không có cổng, chúng tôi không thể kết nối hoặc duyệt Tôi đoán giống như HTTP và SSH hoặc FTP mà không có chúng tôi không thể kết nối vì đó là máy khách, đó chỉ là kết nối TCP

Tôi không có chuyên gia bảo mật


Các cổng mở được yêu cầu để cung cấp dịch vụ. Chỉ một trong số một triệu ví dụ có thể có: Gmail sử dụng cổng mở (443 cho trang web của họ bằng HTTPS). Nhưng nó yêu cầu bạn đăng nhập trước khi hiển thị bất cứ điều gì.
Arjan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.