Các tệp EXE được nén có hại cho máy chủ Linux không?


49

Tôi đã chạy một trình quét phần mềm độc hại trên trang web của mình và nó đã đánh dấu một loạt các tệp EXE được nén là các tệp rủi ro tiềm ẩn (các tệp này đã được người dùng tải lên). Vì tôi có thể giải nén các tệp trên máy Mac của mình, tôi cho rằng đây là các tệp ZIP thực sự chứ không chỉ là một cái gì đó như được đổi tên thành các tệp PHP.

Vì vậy, tệp ZIP không nên có bất kỳ rủi ro nào cho máy chủ web của tôi, phải không?


1
Âm thanh như một máy quét phần mềm độc hại rác.
Nick T

11
Bạn biết rằng bạn có thể kiểm tra xem chúng có ở định dạng ZIP file foo.ziphay không, hoặc thậm chí kiểm tra xem chúng có hợp lệ 7z t foo.zipđể kiểm tra hay không (nghĩa là giải nén và xác minh tổng kiểm tra CRC, mà không cần giải nén vào các tệp cục bộ trên đĩa). ( 7zsử dụng cú pháp hơi giống với tar.) Hoặc unzip -l foo.zipđể liệt kê nội dung. Dù sao, tôi chỉ nghĩ thật kỳ lạ khi bạn nói về việc kiểm tra các tệp trên một máy tính khác khi bạn có thể dễ dàng kiểm tra chúng trên máy chủ.
Peter Cordes

6
Bạn đang lưu trữ loại trang web nào? Nghe có vẻ không phải là một ý tưởng hay khi đặt nội dung do người dùng gửi và máy chủ web hướng về phía trước của bạn vào cùng một hộp.
oldmud0

@NickT Các tệp ZIP tự giải nén có thể có thêm mã độc được đính kèm vào phần thi hành.
chrylis -on strike-

Câu trả lời:


84

Nếu chúng thực sự được nén các tệp exe Windows, chúng sẽ vô hại đối với hệ thống Linux của bạn, trừ khi bạn có thứ gì đó giống như Wine có thể cố gắng thực thi chúng.

Nhưng nếu chúng nằm trong đường dẫn web của bạn, chúng có thể là phần mềm độc hại và gây rủi ro lớn cho khách truy cập trang web của bạn (và đến lượt bạn, nếu bạn bị đánh dấu là nguồn phần mềm độc hại và người dùng sẽ nhận được cảnh báo xấu khi họ truy cập vào Địa điểm).


3
Tôi tự hỏi liệu việc lưu trữ rác "người dùng" như vậy có thể khiến Google gắn nhãn hiệu trang web của bạn thành "Trang web này có thể bị hack" hay kích hoạt Chrome hiển thị trang cảnh báo màu đỏ khổng lồ. "Vô hại" có thể là một chút sai lầm sau đó.
Nick T

11
@NickT: Nó chắc chắn có thể, và đó là những gì tôi đã đề cập đến trong đoạn thứ hai của mình.
Sven

4
Về lý thuyết, ai đó cũng có thể tạo .zipcác tệp không đúng định dạng cố gắng nhắm mục tiêu sai sót trong các triển khai giải nén cụ thể.
jamesdlin

3
Mono có nhiều khả năng được cài đặt trên máy chủ hơn Wine và có thể thực thi các tệp CLR .exe.
Rhymoid

62

Vì tôi có thể giải nén các tệp trên máy mac của mình, tôi cho rằng đây là các tệp zip thực sự chứ không chỉ là một cái gì đó như được đổi tên thành các tệp php.

Mặc dù bạn có thể đúng trong trường hợp này, giả định của bạn có thể không luôn luôn giữ. Một kho lưu trữ ZIP vẫn hợp lệ ngay cả khi bạn nạp dữ liệu tùy ý vào nó , do đó hoàn toàn có thể tạo một tệp đồng thời là một kho lưu trữ ZIP hợp lệ chứa dữ liệu vô tội và cũng là một tập lệnh PHP độc hại. Nó thậm chí không khó lắm; chỉ cần nối mã PHP và tệp ZIP và đảm bảo (ví dụ: sử dụng __halt_compiler()) rằng PHP sẽ không cố phân tích dữ liệu lưu trữ ZIP được nối thêm.

Thủ thuật này được sử dụng hợp pháp để tạo các tệp ZIP tự giải nén, nhưng hoàn toàn có thể bổ sung bất kỳ dữ liệu ẩn hoặc mã thực thi nào khác vào một tệp ZIP theo cùng một cách. Một số chương trình có thể từ chối mở các tệp ZIP đã sửa đổi như vậy (nhưng nếu vậy, về mặt kỹ thuật, chúng vi phạm thông số định dạng ZIP) hoặc theo mặc định, chúng có thể xác định tệp đó là một tệp khác ngoài tệp ZIP, nhưng nói chung, nếu bạn cung cấp như vậy tập tin vào mã mong đợi một tập tin ZIP, nó có thể sẽ được chấp nhận như một.

Một cách sử dụng độc hại phổ biến hơn cho các thủ thuật như vậy là ngụy trang mã khai thác trong vùng chứa dựa trên ZIP (ví dụ: tệp JAR) thành một thứ vô hại (như hình ảnh GIF, như trong khai thác GIFAR ), nhưng không có lý do gì nó không thể cũng được sử dụng theo hướng khác, ví dụ: bỏ qua bộ lọc tải lên tệp ngây thơ cấm tải lên các tập lệnh PHP nhưng cho phép các tệp ZIP, mà không kiểm tra xem tệp đã tải lên có thể cùng lúc không.


+1 cho QUÀ TẶNG, thật thú vị khi biết về một ví dụ cụ thể về khai thác này trong thực tế.
caesay

11

Có ít nhất hai cân nhắc đáng chú ý bạn nên tính đến:

  1. Nếu các tệp này được phân phối trên trang web của bạn, bạn có thể phải chịu trách nhiệm nếu ai đó nhận phần mềm độc hại từ trang web của bạn. Ít nhất thì trang web của bạn có thể bị gắn cờ vì phần mềm độc hại. Nếu bạn quyết định bỏ qua các cảnh báo về trình quét phần mềm độc hại, ít nhất bạn nên thông báo cho người tải lên và những người tải xuống có thể rằng tệp có thể gây hại (đôi khi EXE được tải xuống từ Internet).
  2. Bạn có thực hiện bất kỳ xử lý trên các tệp này ngoài quét phần mềm độc hại không? Tự động xử lý tệp đính kèm hoặc tải lên như vậy luôn tiềm ẩn nguy hiểm, vì nội dung tệp có thể là bất cứ thứ gì. Bạn thậm chí không cần phải thực thi tệp EXE nếu phần mềm tiện ích của bạn dễ bị khai thác và zip / exe có vẻ đẹp chứa nội dung độc hại nhắm mục tiêu vào tiện ích của bạn. Tôi sẽ không để máy chủ của mình xử lý bất cứ điều gì không quét được phần mềm độc hại.

Vì vậy, tùy thuộc vào những gì máy chủ của bạn thực hiện, tệp có khả năng gây hại cho máy chủ của bạn hoặc người dùng khác. Vì tôi khá cảnh giác với các EXE được tải xuống từ Internet, tôi nói rằng những người tải xuống có thể là những người dùng tiềm năng nhất có nguy cơ ở đây.


2

Bạn có thể kiểm tra xem các tệp có thể chạy được trên máy chủ Linux của mình hay không bằng cách kiểm tra chúng bằng file FILENAME.exelệnh. Các tệp nhị phân Elf (định dạng thực thi được sử dụng trên Linux) có thể được đặt tên bằng .exephần mở rộng để gây nhầm lẫn cho một quản trị viên Linux không nghi ngờ, vì vậy có lẽ nên kiểm tra trước khi tin tưởng một cách mù quáng rằng các tệp này không thể chạy được.


2

Tôi ngạc nhiên rằng không ai đề cập rằng bất kỳ dữ liệu nào có thể xảy ra (hoặc được tạo ra) có hại cho bất kỳ chương trình (lỗi) nào. Đó là cơ sở của mờ. Ví dụ: bạn có thể có tệp JPEG (hoặc giống JPEG) gây ra lỗi tràn bộ đệm trên bộ giải mã JPEG (cụ thể?), Gây ra bất cứ điều gì từ việc từ chối dịch vụ đến thực thi mã tùy ý. Đây là về việc lật đổ một chương trình xử lý dữ liệu hiện có; không cần phải mang lại một thực thi mới! Và đây là lý do tại sao cần có hộp cát, vệ sinh đầu vào và các nguyên tắc ít đặc quyền nhất.

Vì vậy, trong trường hợp của bạn, bạn có thể có tệp ZIP gây ra sự cố trên (cụ thể?) Công cụ giải mã ZIP. Không cần tệp ZIP để chứa tệp thực thi riêng cho nó có hại.

Phải nói rằng, máy quét của bạn đang làm việc ở cấp độ khác, thô hơn. Nếu loại rủi ro mà tôi đang nói đến tồn tại trong các tệp đó, thì bạn đã gặp phải thời điểm bạn xử lý chúng :).


1

Vì tôi có thể giải nén các tệp trên máy Mac của mình, tôi cho rằng đây là các tệp ZIP thực sự chứ không chỉ là một cái gì đó như được đổi tên thành các tệp PHP.

Đã có các cuộc tấn công nhúng dữ liệu và vẫn hiển thị các tệp là hợp lệ. Trong một máy chủ được cấu hình không chính xác hoặc trong một ứng dụng được mã hóa sai, những điều này có thể khiến mã được thực thi trong máy chủ của bạn.

Vì vậy, cẩn thận với điều đó là tốt.


0

Một kiểm tra bổ sung mà bạn lý tưởng nên áp dụng là phương pháp php finfo để kiểm tra xem các tệp được người dùng tải lên có thực sự là những gì bạn cho phép không và không phải là thứ mà người dùng đổi tên các tệp chỉ để đánh lừa hệ thống.


-6

.Exe được giải nén cũng vô hại đối với các máy chủ Linux.


23
Không nhất thiết phải như vậy - .exekhông phải là một phần của tên tệp và đây cũng có thể được chọn làm tên cho tệp nhị phân ELF.
Sven

Ngoài ra, RƯỢU có thể được cài đặt. Cấp, phần lớn phần mềm độc hại nhắm mục tiêu Windows có thể sẽ không hoạt động ngay dưới RƯỢU, nhưng rủi ro là có. Tốt nhất, .exes được giải nén trên Linux hầu hết là vô hại.
Ray

@Ray Phụ thuộc vào cấu hình. Nếu, vì một số lý do, Mono hoặc Wine được cài đặt, thì binfmt_misc có thể được cấu hình để .exe thực sự có thể thực thi được.
Rhymoid
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.