Có một cách giải quyết cho lỗ hổng RFC 5961 Linux TCP không?


28

Gần đây tôi đọc về này lỗ hổng Linux TCP ( CVE-2016-5696 ) cho phép kẻ tấn công để phá vỡ hoặc chiếm quyền điều khiển một kết nối giữa hai máy chạy Linux (ví dụ một máy chủ web và một khách hàng). Tôi hiểu rằng sự cố đã được giới thiệu trở lại vào năm 2012 trong nhân Linux phiên bản 3.6 và cũng ảnh hưởng đến tất cả các phiên bản mới hơn.

Hiện tại bản sửa lỗi này chưa được phát hành (như thời điểm viết bài này), nhưng có cách giải quyết nào vì đây là một lỗi khá lớn?


Ubuntu chưa phát hành bản sửa lỗi? Một số bản phân phối khác đã có bản sửa lỗi được công bố trước khi lỗ hổng được công khai.
Michael Hampton

@MichaelHampton: Theo như tôi hiểu thì một bản sửa lỗi đã được cung cấp trong kênh được đề xuất, tuy nhiên bản phát hành ổn định vẫn chưa được thực hiện.

Tôi nghĩ họ đang lên kế hoạch phát hành bản sửa lỗi vào ngày 27.

@MichaelHampton: Tôi đã cập nhật câu trả lời của mình với các thông tin liên quan.

Câu trả lời:


29

Lưu ý: Phần Giải pháp đã được lưu giữ vì lý do lịch sử, tuy nhiên vui lòng bỏ qua phần Khắc phục bên dưới.

Cách giải quyết:

Như đã nêu ở đây :

Tin tốt - và, vâng, có một tin tốt - rất dễ sửa. Đầu tiên, bản thân Linux đang được vá để ngăn chặn vectơ tấn công trong đường đua của nó. Tiếp theo, bạn chỉ cần nâng 'giới hạn ACK thách thức' lên một giá trị cực kỳ lớn để thực tế không thể khai thác vấn đề kênh bên cho phép cuộc tấn công hoạt động.

Vì sự cố này ảnh hưởng đến cả máy khách và máy chủ hoặc trên thực tế, bất kỳ hai máy Linux nào nói chuyện qua mạng, điều quan trọng là phải triển khai cách khắc phục trong cả hai và khắc phục ngay khi phát hành.

Để thực hiện cách giải quyết, hãy làm như sau:

  1. Mở tệp cấu hình bằng: sudoedit /etc/sysctl.conf
  2. Chèn dòng net.ipv4.tcp_challenge_ack_limit = 999999999vào tệp và lưu nó
  3. Chạy sudo sysctl -pđể cập nhật cấu hình

Bạn cũng có thể thực hiện thao tác trực tiếp từ Terminal:

sudo bash -c 'echo "net.ipv4.tcp_challenge_ack_limit = 999999999" >>/etc/sysctl.conf'

Hoặc là:

echo 'net.ipv4.tcp_challenge_ack_limit = 999999999' | sudo tee -a /etc/sysctl.conf

Sau đó chạy:

sudo sysctl -p

Sửa chữa:

Như đã nêu ở đây :

net/ipv4/tcp_input.c in the Linux kernel before 4.7 does not properly
determine the rate of challenge ACK segments, which makes it easier for
man-in-the-middle attackers to hijack TCP sessions via a blind in-window
attack.
...
sbeattie> fix is going to land in Ubuntu kernels in this SRU cycle,  
with a likely release date of Aug 27. Earlier access to the kernels  
with the fix will be available from the -proposed pocket, though they 
come with the risk of being less tested.

Và một bản sửa lỗi đã được phát hành:

linux (4.4.0-36.55) xenial; urgency=low

  [ Stefan Bader ]

  * Release Tracking Bug
    - LP: #1612305

  * I2C touchpad does not work on AMD platform (LP: #1612006)
    - SAUCE: pinctrl/amd: Remove the default de-bounce time

  * CVE-2016-5696
    - tcp: make challenge acks less predictable

 -- Stefan Bader <stefan.bader@canonical.com>  Thu, 11 Aug 2016 17:34:14 +0200

Chạy:

sudo apt-get update
sudo apt-get dist-upgrade

Để đảm bảo bạn có phiên bản mới nhất. Hoặc sử dụng Trình cập nhật phần mềm nếu bạn muốn cập nhật qua GUI.

Bạn có thể kiểm tra phiên bản nào bạn đang chạy và phiên bản nào có sẵn:

apt-cache policy linux-image-generic

Cách khắc phục nhanh (nhưng không bền bỉ):echo 999999999 > /proc/sys/net/ipv4/tcp_challenge_ack_limit
Ben Voigt
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.