it-swarm-vi.tech

Làm cách nào để biết máy chủ Linux của tôi đã bị hack?

Các dấu hiệu nhận biết rằng máy chủ Linux đã bị hack là gì? Có công cụ nào có thể tạo và gửi email báo cáo kiểm toán theo lịch trình không?

36
cowgod
  1. Giữ một bản sao nguyên sơ của các tệp hệ thống quan trọng (như ls, ps, netstat, md5sum) ở đâu đó, với md5sum của chúng và so sánh chúng với các phiên bản trực tiếp thường xuyên. Rootkit sẽ luôn luôn sửa đổi các tập tin này. Sử dụng các bản sao này nếu bạn nghi ngờ bản gốc đã bị xâm phạm.
  2. aide hoặc tripwire sẽ cho bạn biết bất kỳ tệp nào đã được sửa đổi - giả sử cơ sở dữ liệu của họ không bị giả mạo.
  3. Định cấu hình nhật ký hệ thống để gửi logfiles của bạn đến máy chủ nhật ký từ xa nơi chúng không thể bị can thiệp bởi kẻ xâm nhập. Xem các logfiles từ xa này để biết hoạt động đáng ngờ
  4. đọc nhật ký của bạn thường xuyên - sử dụng logwatch hoặc logcheck để tổng hợp thông tin quan trọng.
  5. Biết máy chủ của bạn. Biết những loại hoạt động và nhật ký là bình thường.
34
Brent

Bạn không.

Tôi biết, tôi biết - nhưng đó là sự thật hoang tưởng, đáng buồn, thực sự;) Có rất nhiều gợi ý tất nhiên, nhưng nếu hệ thống được nhắm mục tiêu cụ thể - có thể không thể nói được. Thật tốt khi hiểu rằng không có gì là hoàn toàn an toàn. Nhưng chúng ta cần phải làm việc để an toàn hơn, vì vậy tôi sẽ chỉ vào tất cả các câu trả lời khác thay thế;)

Nếu hệ thống của bạn bị xâm phạm, không có công cụ hệ thống nào của bạn có thể được tin cậy để tiết lộ sự thật.

12
Oskar Duveborn

Một số điều đã cho tôi biết trong quá khứ:

  • Tải cao trên một hệ thống không hoạt động
  • Segfaults kỳ lạ, ví dụ. từ các tiện ích tiêu chuẩn như ls (điều này có thể xảy ra với các bộ root bị hỏng)
  • Các thư mục ẩn trong / hoặc là /var/ (hầu hết các kiddies script quá ngu ngốc hoặc lười biếng để che dấu vết của họ)
  • netstat hiển thị các cổng mở không nên ở đó
  • Daemon trong danh sách quy trình mà bạn thường sử dụng các hương vị khác nhau của (ví dụ: bind, nhưng bạn luôn sử dụng djbdns)

Ngoài ra, tôi đã tìm thấy một dấu hiệu đáng tin cậy cho thấy một hộp bị xâm phạm: nếu bạn có cảm giác xấu về sự siêng năng (với các bản cập nhật, v.v.) của quản trị viên mà bạn đã kế thừa một hệ thống, hãy theo dõi chặt chẽ!

11
user1686

Tripwire là một công cụ thường được sử dụng - nó thông báo cho bạn khi các tệp hệ thống đã thay đổi, mặc dù rõ ràng bạn cần phải cài đặt nó trước. Mặt khác, các mục như tài khoản người dùng mới mà bạn không biết, các quy trình và tệp lạ mà bạn không nhận ra hoặc tăng mức sử dụng băng thông mà không có lý do rõ ràng là những dấu hiệu thông thường.

Các hệ thống giám sát khác như Zabbix có thể được định cấu hình để cảnh báo bạn khi các tệp như/etc/passwd bị thay đổi.

11
Whisk

Có một phương pháp kiểm tra các máy chủ bị tấn công thông qua kill -

Về cơ bản, khi bạn chạy "kill -0 $ PID", bạn đang gửi tín hiệu nop để xử lý mã định danh $ PID. Nếu quá trình đang chạy, lệnh kill sẽ thoát bình thường. (FWIW, vì bạn đang truyền tín hiệu tiêu diệt nop, sẽ không có gì xảy ra với quy trình). Nếu một quá trình không chạy, lệnh kill sẽ thất bại (trạng thái thoát nhỏ hơn 0).

Khi máy chủ của bạn bị hack/rootkit được cài đặt, một trong những điều đầu tiên nó làm là bảo kernel ẩn các tiến trình bị ảnh hưởng khỏi các bảng quy trình, v.v. Tuy nhiên, nó có thể thực hiện tất cả các loại điều thú vị trong không gian kernel để xử lý xung quanh các quá trình. Và điều này có nghĩa là

a) Kiểm tra này không phải là kiểm tra mở rộng, vì các rootkit thông minh/được mã hóa tốt sẽ đảm bảo rằng kernel sẽ trả lời với câu trả lời "quá trình không tồn tại" làm cho kiểm tra này trở nên dư thừa. b) Dù bằng cách nào, khi một máy chủ bị tấn công có quá trình "xấu" đang chạy, thì nó thường không hiển thị dưới/Proc.

Vì vậy , nếu bạn ở đây cho đến bây giờ, phương pháp là giết -0 mọi quy trình có sẵn trong hệ thống (mọi thứ từ 1 ->/Proc/sys/kernel/pid_max) và xem nếu có các quy trình đang chạy nhưng không được báo cáo trong/Proc.

Nếu một số quy trình xuất hiện dưới dạng đang chạy, nhưng không được báo cáo trong/Proc, có lẽ bạn có vấn đề với bất kỳ cách nào bạn nhìn vào nó.

Đây là tập lệnh bash thực hiện tất cả những điều đó - https://Gist.github.com/1032229 . Lưu nó trong một số tập tin và thực hiện nó, nếu bạn tìm thấy một quá trình xuất hiện không được báo cáo trong Proc, bạn nên có một số khách hàng tiềm năng để bắt đầu đào sâu vào.

HTH.

10
Shai

Tôi sẽ thứ hai các câu trả lời được đưa ra ở đây và thêm một trong những câu trả lời của riêng tôi.

find /etc /var -mtime -2

Điều này sẽ cung cấp cho bạn một dấu hiệu nhanh nếu bất kỳ tệp máy chủ chính nào của bạn thay đổi trong 2 ngày qua.

Đây là từ một bài viết về phát hiện hack Cách phát hiện nếu máy chủ của bạn đã bị hack.

7
Ian Purton

Từ Làm cách nào tôi có thể phát hiện các xâm nhập không mong muốn trên máy chủ của mình?

  • Sử dụng IDS

    SNORT® là một hệ thống phát hiện và ngăn chặn xâm nhập mạng nguồn mở sử dụng ngôn ngữ dựa trên quy tắc, kết hợp các lợi ích của chữ ký, giao thức và phương pháp kiểm tra dựa trên bất thường. Với hàng triệu lượt tải xuống cho đến nay, Snort là công nghệ phát hiện và ngăn chặn xâm nhập được triển khai rộng rãi nhất trên toàn thế giới và đã trở thành tiêu chuẩn thực tế cho ngành công nghiệp.

    Snort đọc lưu lượng truy cập mạng và có thể tìm kiếm những thứ như "lái xe bằng cách kiểm tra bút" trong đó ai đó chỉ thực hiện quét toàn bộ metasploit đối với máy chủ của bạn. Thật tốt khi biết những thứ này, theo ý kiến ​​của tôi.

  • Sử dụng nhật ký ...

    Tùy thuộc vào cách sử dụng của bạn, bạn có thể thiết lập nó để bạn biết bất cứ khi nào người dùng đăng nhập hoặc đăng nhập từ một IP lẻ hoặc bất cứ khi nào root đăng nhập hoặc bất cứ khi nào ai đó cố gắng đăng nhập. Tôi thực sự có máy chủ gửi e-mail cho tôi mỗi thông báo nhật ký cao hơn Debug. Có, thậm chí Thông báo. Tôi lọc một số trong số họ tất nhiên, nhưng mỗi sáng khi tôi nhận được 10 email về những thứ nó khiến tôi muốn sửa nó để nó ngừng xảy ra.

  • Theo dõi cấu hình của bạn - Tôi thực sự giữ toàn bộ/etc của mình trong Subversion để tôi có thể theo dõi các bản sửa đổi.

  • Chạy quét. Các công cụ như LynisRootkit Hunter có thể cung cấp cho bạn các cảnh báo về các lỗ hổng bảo mật có thể có trong các ứng dụng của bạn. Có những chương trình duy trì cây băm hoặc cây băm của tất cả các thùng của bạn và có thể cảnh báo bạn về những thay đổi.

  • Giám sát máy chủ của bạn - Giống như bạn đã đề cập đến không gian đĩa - biểu đồ có thể cho bạn một gợi ý nếu có gì đó bất thường. Tôi sử dụng Cacti để theo dõi CPU, lưu lượng mạng, dung lượng ổ đĩa, nhiệt độ, v.v ... Nếu một cái gì đó trông kỳ quặc lẻ và bạn nên tìm hiểu tại sao nó kỳ lạ.

5
Tom Ritter

Tôi chỉ muốn thêm vào đây:

Kiểm tra lịch sử bash của bạn, nếu nó trống và bạn không đặt nó hoặc bỏ trống nó, có khả năng ai đó đã xâm phạm máy chủ của bạn.

Kiểm tra lần cuối. Hoặc bạn sẽ thấy I.P không rõ hoặc nó sẽ trông rất trống rỗng.

Sau đó, như câu trả lời được chấp nhận đã nêu, các tệp hệ thống thường được thay đổi, kiểm tra ngày sửa đổi. Tuy nhiên, họ thường làm xáo trộn ngày sửa đổi.

Họ thường cài đặt một phiên bản khác của ssh chạy trên một cổng ngẫu nhiên. Điều này thường được ẩn ở một số nơi thực sự kỳ lạ. Lưu ý rằng thông thường nó sẽ được đổi tên thành một cái gì đó khác với ssh. Vì vậy, hãy kiểm tra netstat (có thể không hoạt động vì chúng thường thay thế nó) và sử dụng iptables để chặn bất kỳ cổng nào chưa biết.

Trong mọi trường hợp, đây là một tình huống mà phòng bệnh hơn chữa bệnh. Nếu bạn đã bị xâm phạm, tốt nhất là chỉ định dạng và bắt đầu lại. Gần như không thể xác nhận bạn đã dọn dẹp thành công vụ hack.

Hãy lưu ý những điều sau để ngăn máy chủ của bạn bị xâm nhập.

  1. Thay đổi cổng ssh
  2. Ngăn chặn root không thể đăng nhập
  3. chỉ cho phép một số người dùng nhất định
  4. Ngăn chặn đăng nhập mật khẩu
  5. Sử dụng khóa ssh, khóa được bảo vệ bằng mật khẩu
  6. Trường hợp có thể danh sách đen tất cả các ip và danh sách trắng các ips cần thiết.
  7. Cài đặt và cấu hình fail2ban
  8. Sử dụng tripwire để phát hiện sự xâm nhập
  9. Theo dõi số lượng người dùng đăng nhập bằng Nagios hoặc zabbix. Ngay cả khi bạn được thông báo mỗi khi đăng nhập, ít nhất bạn sẽ biết khi nào một số người khác đang chơi.
  10. Nếu có thể hãy giữ máy chủ của bạn trên vpn và chỉ cho phép ssh qua vpn ip. Bảo mật vpn của bạn.

Thật đáng giá khi lưu ý rằng một khi họ vào một máy chủ, họ sẽ kiểm tra lịch sử bash của bạn và tìm kiếm các máy chủ khác mà bạn đã kết nối qua ssh từ máy chủ đó. Sau đó, họ sẽ cố gắng kết nối với các máy chủ đó. Vì vậy, nếu bạn bị ép buộc vì mật khẩu kém, rất có thể họ sẽ có thể kết nối với máy chủ khác và thỏa hiệp chúng.

Đó là một thế giới xấu xí ngoài kia, tôi nhắc lại phòng bệnh hơn chữa bệnh.

2
Rob

Sau khi tìm kiếm xung quanh một chút, cũng có cái này, nó thực hiện những gì tôi đã liệt kê ở trên, trong số những thứ khác: http://www.chkrootkit.org/http: // www.rootkit.nl/projects/rootkit_hunter.html

1
Shai

Bạn nên kiểm tra GuardRail. Nó có thể quét máy chủ của bạn hàng ngày và cho bạn biết những gì đã thay đổi theo cách trực quan đẹp. Nó không yêu cầu một đại lý và có thể kết nối qua SSH, do đó bạn không cần phải dọn rác máy và tài nguyên của mình với một đại lý.

Trên hết, nó miễn phí cho tối đa 5 máy chủ.

Kiểm tra nó ở đây:

https://www.scriptrock.com/

0
Cheyne