Làm cách nào để xác định xem hộp Linux của tôi đã bị xâm nhập chưa?


11

Gần đây tôi đã đọc một bài viết về phân tích các nỗ lực đăng nhập SSH độc hại. Điều này khiến tôi suy nghĩ, tên người dùng SSH, kết hợp mật khẩu trên hộp Debian của tôi có gì lạ không? Tôi đã bị nhắm mục tiêu bởi một cuộc tấn công từ điển vũ phu? Hãy xem /var/log/auth.log.0 :

Sep 23 07:42:04 SLUG sshd[8303]: Invalid user tyjuan from 210.168.200.190
Sep 23 07:42:09 SLUG sshd[8305]: Invalid user tykeedra from 210.168.200.190
Sep 23 07:42:14 SLUG sshd[8307]: Invalid user tykeem from 210.168.200.190
Sep 23 07:42:19 SLUG sshd[8309]: Invalid user tykeshia from 210.168.200.190
Sep 23 07:42:25 SLUG sshd[8311]: Invalid user tyla from 210.168.200.190
Sep 23 07:42:30 SLUG sshd[8313]: Invalid user tylan from 210.168.200.190
Sep 23 07:42:35 SLUG sshd[8315]: Invalid user tylar from 210.168.200.190
Sep 23 07:42:40 SLUG sshd[8317]: Invalid user tyler from 210.168.200.190
Sep 23 07:42:45 SLUG sshd[8319]: Invalid user tylerfrank from 210.168.200.190
Sep 23 07:42:50 SLUG sshd[8321]: Invalid user tyliah from 210.168.200.190
Sep 23 07:42:55 SLUG sshd[8323]: Invalid user tylor from 210.168.200.190

Vì vậy, nó không nhìn tốt. Bây giờ tôi biết rằng tôi đã bị nhắm mục tiêu bởi một cuộc tấn công và một số tên người dùng, kết hợp mật khẩu của tôi rất yếu, tôi muốn biết làm thế nào tôi có thể ...

  • ... xác định xem hộp Linux của tôi đã bị xâm nhập chưa?
  • ... Hoàn tác bất kỳ thiệt hại nào do thủ phạm để lại?
  • ... ngăn chặn điều này xảy ra trong tương lai?

CẬP NHẬT

Bạn có lời khuyên nào về việc hoàn tác bất kỳ thiệt hại nào mà thủ phạm để lại không?


nhật ký đó không cho thấy bạn đã bị xâm phạm. Bạn có thêm thông tin nào ngoài điều đó làm bạn lo lắng không?

Câu trả lời:


15

Rất nhiều người dường như đề xuất Denyhost, nhưng tôi đã thấy rất nhiều thành công với Fail2Ban trên các hệ thống của mình. Nó theo dõi số lần thất bại (có thể định cấu hình) và sau đó thực hiện một hành động - trên máy chủ của tôi, hành động đó là sử dụng iptables để giảm tất cả lưu lượng truy cập khỏi máy chủ. Sau 10 lần đăng nhập thất bại, họ bị cấm và đó là kết thúc của nó.

Tôi sử dụng kết hợp với Logcheck để tôi luôn biết những gì đang diễn ra trên máy chủ của mình.

Nếu bạn có bất kỳ bằng chứng nào cho thấy ai đó đã thực sự xâm nhập vào hệ thống của bạn (nhật ký bạn đã đăng không phải là bằng chứng về điều này), thì giải pháp duy nhất của bạn là sao lưu tất cả dữ liệu bạn cần giữ, lau máy, cài đặt lại và khôi phục từ bản sao lưu. Nếu không, không có cách nào để chắc chắn.


1
Tôi sử dụng logcheck và fail2ban cũng vậy. Kết hợp rất tốt.

Tôi thứ hai việc sử dụng fail2ban.
Malfist

Tôi cũng đã chuyển sang fail2ban từ denyhosts vì fail2ban giám sát nhiều dịch vụ hơn (mail, web, ftp, ...) và có thể định cấu hình nhiều hơn
Jure1873

10

Các nỗ lực đăng nhập hợp lệ cũng được đăng nhập, vì vậy nếu bạn thấy một nỗ lực vũ phu tiếp theo là thành công, đó là một dấu hiệu tốt cho thấy điều gì đó tồi tệ đã xảy ra.

Tôi sử dụng Denyhost để theo dõi nhật ký của mình về lưu lượng SSH đáng ngờ và tôi đã cấu hình nó để tự động tắt tường lửa máy chủ tại một thời điểm nhất định.

Lưu ý có nhiều cách khác mà bạn muốn giám sát máy của mình để xem nó có bị xâm phạm hay không, bao gồm các kiểu tải, hoạt động đăng nhập, đánh hơi lưu lượng định kỳ, giám sát các quy trình đang chạy và cổng mở và đảm bảo tính toàn vẹn của tệp với công cụ như tripwire.

Nếu bạn chỉ thực hiện một, giám sát tải hệ thống là một cách rất hiệu quả để phát hiện sự thỏa hiệp, bởi vì hầu hết các máy khi bị xâm nhập đều được sử dụng để làm những việc như gửi một lượng lớn thư rác hoặc nhận được nhiều lưu lượng truy cập. Có lẽ không hữu ích nếu bạn là mục tiêu có giá trị cao và mọi người có thể đang cố gắng đột nhập vào bạn vì những lý do khác ngoài việc biến máy chủ của bạn thành zombie, nhưng dù sao cũng có giá trị. Cộng với tải giám sát là cần thiết để định hình và tìm ra khi nào bạn cần đầu tư vào phần cứng nhiều hơn hoặc phần mềm tốt hơn.

Bạn cũng nên thực hiện phân tích nhật ký toàn diện, xem xét auth.log và những người khác để biết những điều bất ngờ. Phân tích tệp nhật ký là một thị trường cạnh tranh và vấn đề chưa được giải quyết, nhưng có những công cụ miễn phí như logwatch có thể được cấu hình để gửi cho bạn bản tóm tắt hàng ngày.

Bảo mật thông qua các lớp!


1
Tất nhiên, kẻ tấn công có thể đã sửa đổi nhật ký để loại bỏ bằng chứng về sự xâm nhập của chúng, vì vậy thiếu bằng chứng trong nhật ký không nhất thiết có nghĩa là mọi thứ đều ổn.

Đây là sự thật. Thiếu bằng chứng về cơ bản không bao giờ là bằng chứng không thỏa hiệp, trong cuốn sách của tôi. Đăng nhập vào một máy chủ từ xa có thể làm tăng độ tin cậy của các bản ghi. Tôi sử dụng đường hầm syslog-ng và ssh cho mục đích này.

Tôi cũng đã thấy vô số lần cố gắng hack máy chủ của mình ... Tôi đã cài đặt Denyhost và nó đã thêm một vài IP chỉ sau 10 phút. Cảm ơn!
Aaron Brown

4

Quên Tripwire, nó khá đắt. Sử dụng Aide thay thế. Nó miễn phí, dễ cài đặt (mặc dù phải mất một chút thời gian để quyết định loại trừ các thư mục tạm thời và cấu hình khác).

bạn chạy nó, nó xây dựng một cơ sở dữ liệu của tất cả các tập tin. Chạy lại và nó sẽ cho bạn biết tập tin nào đã thay đổi.

Một điều khác cần làm là cài đặt CSF, có trình chặn loại denyhost, vì mọi người không liên tục đăng nhập, nó sẽ thêm chúng vào quy tắc tường lửa của bạn. Bạn cũng có thể yêu cầu thông tin đăng nhập SSH cũng phải có khóa công khai, các kiddies script có thể thử bao nhiêu lần đăng nhập tùy thích.


Có một phiên bản mã nguồn mở (và miễn phí) của Tripwire. Xem tripwire.org
Dan Andreatta

4
"* ... determine if my Linux box has been infiltrated?"
  • tìm kiếm dấu hiệu của các quá trình lạ Tôi thường sử dụng các công cụ đi kèm với chkrootkit ( http://www.chkrootkit.org )
  • Làm một portscan với nmap từ một máy khác. Nếu hộp của bạn đã bị xâm nhập, rất có thể atacker đã cài đặt một cửa hậu

"* ... hoàn tác bất kỳ thiệt hại nào do thủ phạm để lại?"

Hãy quên nó đi, nếu có một cuộc tấn công, lời khuyên tốt nhất là cài đặt lại từ đầu (đảm bảo bạn bổ sung bất kỳ lỗ hổng nào trên bản cài đặt mới). Rất dễ dàng để không nhận thấy một cửa hậu hoặc một quá trình lén lút, tốt hơn hết bạn nên cài đặt lại.

"* ... ngăn điều này xảy ra trong tương lai?"

  • cập nhật bảo mật

  • tường lửa chặt chẽ

  • mật khẩu mạnh

  • tắt dịch vụ không cần thiết


3

hãy nhìn vào các công cụ như Logcheck , PortSentry , và tripwire . nó rất phổ biến đối với các nỗ lực SSH từ điển ngẫu nhiên, vì vậy tôi sẽ không quá lo lắng về điều đó. bạn có thể muốn thay đổi cổng để ẩn giấu ngẫu nhiên, nhưng thỉnh thoảng bạn vẫn sẽ thấy các nỗ lực ngẫu nhiên, đó là cuộc sống có máy trên internet.


3

Một điều tôi sử dụng trên các máy chủ của mình để giúp ngăn chặn các cuộc tấn công này là Denyhost . Denyhosts sẽ ngăn người dùng độc hại cố gắng đăng nhập. Kể từ khi cài đặt nó, các tệp nhật ký của tôi đã có ít mục nhập đăng nhập hơn.


3

Đó là một cách thực hành tốt để sử dụng các cặp khóa Công khai / Riêng tư làm xác thực bổ sung; Bằng cách đó, người dùng không thể đăng nhập qua SSH mà không có khóa đúng; Sẽ là không thể đoán được cho một bác sĩ vũ phu. Một bài viết tốt đẹp về điều này có thể được tìm thấy ở đây .

Điều này một mình với cụm mật khẩu sẽ khá vững chắc cho xác thực SSH; Nhưng có nhiều lỗ hổng hơn! Xem ra với tất cả các ứng dụng sử dụng một cổng mở; Nếu chúng có chứa một kẻ khai thác lỗi có thể vượt qua hệ thống của bạn. Một ví dụ điển hình là bot bot được cài đặt trên máy chủ của chúng tôi do lỗi trong phần mềm webstats mà chúng tôi hiện đang sử dụng.


2

Fail2ban là một công cụ phân tích thời gian thực đăng nhập truy cập. Nó có thể được cấu hình để chặn bất kỳ IP nào với một số lần thử đăng nhập thất bại. Điều này tránh các cuộc tấn công từ điển mà không phải di chuyển cổng ssh. chkrootkit và rootkithunter là những tiện ích tốt để kiểm tra sự xâm nhập. Nếu việc xâm nhập đã thành công, cách tốt nhất là sao chép dữ liệu (và chỉ là dữ liệu, không phải thực thi), xóa và cài đặt lại vì thực sự rất khó để chắc chắn 100% hệ thống sạch sẽ.


2

Không có gì ở đây để đề nghị rằng hộp của bạn đã bị xâm phạm. Ngay cả khi mật khẩu của bạn khá yếu, một cuộc tấn công từ điển chỉ ném một lần đăng nhập vào mỗi tên người dùng là cực kỳ khó thành công.

Nhưng, nếu bạn biết mật khẩu của mình yếu, thì hãy củng cố chúng! Cá nhân tôi thích pwgen (được đóng gói bởi Debian). Trên mỗi lần chạy, nó tạo ra một số lượng lớn các ứng cử viên mật khẩu mạnh, nhưng tương đối rõ ràng (đối với tôi ít nhất) khá dễ nhớ, chẳng hạn như yodieCh1, Tai2daci hoặc Chohcah9.

Tuy nhiên, nếu có bằng chứng khác cho thấy hệ thống của bạn đã bị xâm phạm ... Nuke nó từ quỹ đạo. Đó là cách duy nhất để chắc chắn.

Dữ liệu không thể thực thi có thể có thể cứu được, nhưng bất kỳ thứ gì có nội dung thực thi (điều này có thể bao gồm những thứ như tài liệu MS Office và một số tệp cấu hình) phải được sử dụng trừ khi bạn sẵn sàng và có thể kiểm tra thủ công để đảm bảo rằng nó không ' đã bị biến thành thù địch hoặc chấp nhận khả năng nó có thể là thù địch và làm hỏng hệ thống của bạn hoặc cung cấp một con đường cho sự thỏa hiệp lại trong tương lai nếu bạn giữ nó xung quanh.


2

Một bảo vệ bổ sung nhỏ mà tôi thích là xếp hạng giới hạn các kết nối ssh đến để làm chậm mọi cuộc tấn công từ điển hoặc tương tự. Đừng mong đợi điều này sẽ tự bảo vệ bạn, nhưng hãy sử dụng điều này ngoài các đề xuất trong các câu trả lời khác bao gồm vô hiệu hóa xác thực mật khẩu.

Sử dụng iptables:

$ iptables        -A INPUT      -p tcp --dport 22 -m state --state ESTABLISHED,RELATED -j ACCEPT
$ iptables        -A INPUT      -p tcp --dport 22 -m state --state NEW -m limit --limit 3/min --limit-burst 3 -j ACCEPT
$ iptables        -A INPUT      -p tcp --dport 22 -j DROP

2

Có một số lời khuyên tồi về chủ đề này, chẳng hạn như:

  • sử dụng cổng không chuẩn cho ssh (sai!)
  • sử dụng một số công cụ bảo mật của bên thứ ba (thêm một phụ thuộc / độ phức tạp không cần thiết)
  • cấu hình tường lửa của bạn để chặn hoặc lập danh sách trắng (bảo trì đau đầu)

Chỉ cần tinh chỉnh /etc/ssh/sshd_configthay vì để cải thiện bảo mật:

  • PermitRootLogin no
  • Định cấu hình Cho phép người dùng chỉ dành cho người dùng trên hệ thống có tài khoản ssh
  • Cân nhắc chỉ sử dụng các khóa vật lý với 'Mật khẩu xác thực không'

Nếu bạn là hộp đã được thâm nhập. Xây dựng lại hộp.


(-1) Đôi khi cần cấu hình các quy tắc trên tường lửa hoặc sử dụng hệ thống ngăn chặn xâm nhập. Gọi đó là lời khuyên tồi mà không có bất kỳ thảo luận bổ sung nào về lý do tại sao đó không phải là một ý tưởng tốt không hữu ích.
Zoredache

1

Sẽ xảy ra tất cả các thời gian với ssh kích hoạt. Di chuyển nó đến một cổng cao.

Có một chương trình gọi là "Tripwire" rất tuyệt vời để phát hiện xâm nhập, nhưng khá khó cài đặt. Nếu không có gì khác, bạn nên đọc qua tài liệu của họ để bạn hiểu vấn đề.


1

Bạn cần cài đặt phát hiện xâm nhập trước khi kết nối máy với internet.

Và đó là một ý tưởng tốt cho các kết nối SSH trong danh sách trắng để đảm bảo cả thế giới thậm chí không thể thử những thứ như vậy.


Tôi cũng sẽ thêm người dùng trong danh sách trắng được phép đăng nhập qua SSH cũng như vô hiệu hóa xác thực dựa trên mật khẩu nếu có thể.

1

Làm cách nào để xác định xem hộp Linux của tôi đã bị xâm nhập chưa?

Khởi động phương tiện chỉ đọc (livecd) và so sánh các tệp với bản sao lưu của bạn hoặc phương tiện gốc.

Chỉ cần nhìn xung quanh cho hành vi kỳ lạ. Tất nhiên điều này là dễ nhất nếu bạn dành thời gian trước khi hack để có được cảm giác tốt về những gì là 'bình thường'.

Các lỗi bạn đăng không cho thấy một sự thỏa hiệp. Chỉ là ai đó đang cố gắng.

Làm thế nào tôi có thể hoàn tác bất kỳ thiệt hại nào do thủ phạm để lại?

Cài đặt lại và khôi phục từ bản sao lưu trước khi hệ thống bị xâm phạm.

Xem:

Làm thế nào tôi có thể ngăn chặn điều này xảy ra trong tương lai?

Xem:



0

Psad kết hợp với Shorewall là một cách tốt để khen ngợi các quy tắc iptables của bạn.

Tôi cũng sử dụng Fail2ban để theo dõi thông tin đăng nhập ssh của mình


0

sử dụng rkhunter hoặc chkrootkit hoặc cả hai; quét hộp của bạn từ bên ngoài để xem cổng nào được mở

dù sao đi nữa, nếu tất cả những gì bạn có là người dùng không hợp lệ, không cần phải lo lắng :)


0

Một cái gì đó rất khác: hãy thử sử dụng Google trên địa chỉ IP! Một hacker tự xưng là STARTURK từ Thổ Nhĩ Kỳ có thể đã cố gắng hack trang web của bạn.

Mặc dù có vẻ như một cuộc tấn công vũ phu vào hệ thống của bạn, nhưng cũng có thể là tin tặc này đã thử một lần và hiện đã đi đến một số trang web khác.


0

Như nhiều người đã lưu ý, Tripwire / AIDE là cách tốt nhất để tìm kiếm các thay đổi hệ thống. Thật không may, con bò ra khỏi chuồng vì nó phải được cấu hình trên một hệ thống nổi tiếng.

Một điều có thể giúp bạn ít nhất là bắt đầu là sử dụng cơ sở dữ liệu RPM của bạn để kiểm tra md5sums của các tệp của bạn. Ý chính cơ bản là đây:

rpm -qa | xargs rpm -V

Điều này không hoàn hảo vì nhiều lý do. Đầu tiên, về cơ bản, cơ sở dữ liệu RPM của bạn có thể đã bị thay đổi. Thứ hai, hầu hết các distro đều sử dụng prelinking và RPM không nhận biết trước. MD5 có thể đã bị thay đổi từ quy trình đó, điều này là hợp pháp.

Lời khuyên tốt nhất là đây: nếu bạn không chắc chắn liệu mình có bị xâm phạm hay không, đây thực sự là thời gian để xây dựng lại.


0

Để ngăn chặn các vấn đề bảo mật trong tương lai, bạn có thể xem OSSEC , tôi sử dụng nó để kiểm tra tính toàn vẹn của tệp và theo dõi nhật ký trên các máy chủ của chúng tôi, nó rất đầy đủ và dễ cấu hình. Nó có thể gửi thông báo thư, bạn có thể kiểm tra thông báo qua dòng lệnh hoặc giao diện web ...

http://www.ossec.net/

lấy từ trang web:

"OSSEC là một Hệ thống phát hiện xâm nhập dựa trên máy chủ nguồn mở. Nó thực hiện phân tích nhật ký, kiểm tra tính toàn vẹn của tệp, giám sát chính sách, phát hiện rootkit, cảnh báo theo thời gian thực và phản hồi tích cực."

  • phân tích nhật ký Nó có thể kiểm tra tệp nhật ký trên máy chủ của bạn và thông báo cho bạn thông qua các quy tắc (có rất nhiều định nghĩa trước và bạn có thể thêm tệp của riêng mình)

  • tính toàn vẹn của tập tin tripwire / aide như chức năng vì vậy bạn sẽ thấy nếu có bất kỳ tập tin nào đã được sửa đổi trên máy chủ của bạn

  • giám sát chính sách: kiểm tra một số quy tắc bảo mật "Thực tiễn tốt nhất"

  • phát hiện rootkit: rkhunter, chkrootkit giống như chức năng

  • cảnh báo theo thời gian thực và phản hồi tích cực: Bạn có thể định cấu hình ossec để tự động phản ứng với các cảnh báo (tôi không sử dụng nhưng bạn có thể sử dụng nó để chặn truy cập ssh đến các máy chủ thực hiện quá nhiều lần thử kết nối thất bại)

Sản phẩm thực sự tốt và nó rất năng động

Để làm cứng hộp của bạn, bạn cũng có thể sử dụng lynis hoặc bastille

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.