Cách ly hoàn toàn máy VirtualBox


17

Tôi muốn sử dụng VirtualBox để cài đặt một số phần mềm không có quyền truy cập vào máy tính chủ của tôi (và ngược lại). Tuy nhiên, tôi cũng hình dung khả năng thử những thứ "nguy hiểm" hơn, như cố gắng chạy các khai thác 0 ngày và xem họ có thể làm gì.

Làm thế nào cô lập một máy ảo có thể được thực hiện từ máy chủ? Tôi có nên (hoặc tôi có thể ?) Thiết lập tường lửa giữa khách và chủ không? Là tiện ích khách có nguy cơ bảo mật? Những gì về thư mục được chia sẻ?

Ngay bây giờ, máy khách đang chạy thử nghiệm GNU / Linux Debian.


7
Stack Exchange có một nhóm Bảo mật thông tin nếu bạn muốn đặt câu hỏi bảo mật chi tiết.
gian mạng

Phân biệt @cybernard tại đây. Sau một chút suy nghĩ, đây sẽ là một câu hỏi cực kỳ thích hợp cho Security.SE, giả sử nó không phải là một bản sao (mà tôi sợ nó có thể xảy ra, với sự phát triển cộng đồng của họ).
0xdd

1
Bạn không nên sử dụng VirtualBox, vì nó tương tác với hệ thống của bạn thông qua mô-đun hạt nhân có rủi ro cao hơn nhiều so với triển khai không gian người dùng thuần túy. Và đặc biệt là mô-đun hạt nhân hộp ảo được coi là tào lao bởi các nhà phát triển kernel. Một lựa chọn tốt hơn là một số trình giả lập như qemu đang chạy như một người dùng không có đặc quyền, không có quyền truy cập vào bất kỳ quy tắc tường lửa và thú vị nào ngăn chặn truy cập mạng cho người dùng đó. (Đăng dưới dạng bình luận vì nó không trả lời trực tiếp câu hỏi liên quan đến VirtualBox)
allo

Câu trả lời:


36

Tôi sẽ bắt đầu bằng cách nói rằng câu hỏi này rất rộng và cho thấy rất ít nghiên cứu ban đầu, và câu trả lời này không nên được xem là một sự khích lệ của loại câu hỏi đó. Thay vào đó, câu trả lời này hy vọng sẽ cung cấp một số mẹo an toàn cực kỳ cơ bản cho những người mới bắt đầu phân tích phần mềm độc hại.

Hoạt động theo giả định rằng bạn đang chạy phần mềm độc hại đã được nghiên cứu trước đó, cách bạn cách ly môi trường của mình phụ thuộc rất nhiều vào khả năng của phần mềm độc hại đó. Một số quy tắc chung áp dụng cho hầu hết các phần mềm độc hại hiện đại có thể là:

  • Cô lập VM của bạn từ internet. Điều này có thể đơn giản như không thiết lập chuyển tiếp giao diện đến máy khách và ngăn phần mềm độc hại giao tiếp với bất kỳ nút điều khiển và kiểm soát tiềm năng nào có thể khiến nó hoạt động không thể đoán trước.

  • Sử dụng một siêu giám sát thích hợp. Có một vài cái chính trên thị trường, bao gồm VirtualBox, HyperV, QEMU và macOS Hypervisor.framework, để đặt tên cho một số ít; một số trong số này được phần mềm độc hại nhắm mục tiêu tích cực và tùy thuộc vào phiên bản, có thể dễ bị phần mềm độc hại thoát ra khỏi máy khách.

  • Chắc chắn không cài đặt bổ sung của khách , hoặc một số tương tự của nền tảng khác. Mục tiêu theo nghĩa đen của loại phần mềm này là thiết lập sự tích hợp giữa khách và máy chủ, làm suy yếu hiệu quả sự tách biệt giữa chúng. Tôi không phải là nhà nghiên cứu phần mềm độc hại, nhưng tôi sẽ ngạc nhiên nếu không có phần mềm độc hại nào đặc biệt nhắm vào loại bề mặt này.

Để giải quyết một số điểm của bạn trực tiếp:

Làm thế nào cô lập một máy ảo có thể được thực hiện từ máy chủ?

Tại thời điểm này, một VM có thể được cách ly khá kỹ lưỡng, nhưng một số chức năng vẫn phải đi qua máy chủ trực tiếp ít nhiều, với rất ít sự bảo vệ của trình ảo hóa. Ngay lập tức, hầu hết các máy ảo không KVM (như VirtualBox) sẽ không chia sẻ kernel với HĐH máy chủ. Điều này một mình đóng vai trò là trình chặn đối với nhiều lớp khai thác, đáng chú ý nhất là khả năng chạy các tòa nhà tùy ý chống lại hạt nhân máy chủ của bạn (với dấu hoa thị đáng chú ý là việc triển khai lớp VM bị hỏng có thể cho phép phần mềm độc hại khắc phục điều này theo những cách ít rõ ràng hơn).

Mặc dù vậy, VM của bạn vẫn có một không gian xử lý trong phần cứng của máy chủ của bạn - và mặc dù điều này thường không gây rủi ro vì các hệ điều hành hiện đại cung cấp sự cách ly không gian xử lý hợp lý, nó vẫn có thể được sử dụng để khai thác các cuộc tấn công ở mức cực thấp như máy khoan , trong đó một quá trình ghi tuần tự vào bộ nhớ theo một cách cụ thể cho đến khi nó có thể đọc các khối bộ nhớ liền kề mà nó không sở hữu - cho phép rò rỉ bộ nhớ giữa các tiến trình một cách hiệu quả.

Cũng đáng lưu ý rằng sự cô lập có xu hướng giảm đi phần nào khi bạn muốn thực hiện bất kỳ loại I / O nào: đầu vào và đầu ra nhất thiết có nghĩa là vượt qua, để lộ bề mặt tấn công có thể được tận dụng để thực hiện các hành động của máy chủ. Điều này bao gồm thông qua HID như chuột và bàn phím, cũng như những thứ như truyền qua mạng - mặc dù điều này thường phụ thuộc vào cách thực hiện tốt việc truyền qua I / O trong VM của bạn.

Tôi có nên (hoặc tôi có thể?) Thiết lập tường lửa giữa khách và chủ không?

Nó phụ thuộc, nhưng nói chung nó không phải là một ý tưởng tồi . Hầu hết các nền tảng chính đều hỗ trợ tường lửa ở cấp độ ảo hóa. Chúng tối đa được cho phép như tường lửa trên máy chủ của bạn, lần lượt nhiều nhất là cho phép như tường lửa trên mạng LAN hoặc Vlan của bạn. Nếu bạn muốn tận dụng điều này thay vì cắt hoàn toàn quyền truy cập mạng bằng cách ngắt kết nối các giao diện mạng ảo, tôi khuyên bạn nên nghiên cứu về cổng nào và lưu trữ các mục tiêu phần mềm độc hại đã chọn của bạn và đi từ đó.

Là tiện ích khách có nguy cơ bảo mật?

. Chúng cho phép tất cả các loại tích hợp giữa máy chủ của bạn và máy khách và không phải lúc nào cũng có các thông số kỹ thuật mở, nơi bạn có thể thấy những gì đang được mở ra; xem ở trên.

Những gì về thư mục được chia sẻ?

Điều đó phụ thuộc vào cách bạn thực hiện nó, nhưng nó thường là một ý tưởng tồi . Nhiều nhà ảo thuật thực hiện điều này bằng cách tạo một ổ đĩa ảo được gắn trong máy khách có root nằm trong thư mục đó. Tùy thuộc vào việc triển khai cơ chế đó, có thể thay đổi đôi chút giữa các khung, bạn có thể an toàn hoặc không, tùy thuộc vào loại phần mềm độc hại nào bạn đang thử nghiệm.


Mối quan tâm của tôi là bạn đã thực hiện rất ít nghiên cứu về vấn đề này và cuối cùng bạn có thể làm hại máy hoặc dữ liệu của mình. Trước khi tiếp tục, tôi khuyên bạn nên xem xét các cơ chế cách ly khác nhau trên các HĐH chung (KVM, cách chúng tích hợp với các khung ảo hóa cấp cao hơn ( ), thùng chứa ( ) và chrootcơ chế ( ) để đặt tên một vài), khi mỗi cái là phù hợp, và những gì họ có thể và không thể làm. Tại thời điểm đó, bạn sẽ có thể đánh giá tốt hơn liệu bạn có thể chơi xung quanh với phần mềm độc hại một cách an toàn hay không trong một môi trường cách ly thích hợp.

Cuối cùng, bạn không nên tham gia vào việc cố gắng làm việc với phần mềm độc hại mới hoặc ít được biết đến (trừ khi bạn là nhà nghiên cứu bảo mật dày dạn, nhưng câu trả lời này không nhằm vào các nhà nghiên cứu bảo mật dày dạn). Các diễn viên độc hại cực kỳ sáng tạo khi nói đến những gì họ khai thác và cách họ khai thác nó. Để có được ý tưởng về điều này, hãy xem bất kỳ cuộc đàm phán DEFCON nào gần đây không tập trung vào kỹ thuật xã hội hoặc tiếp cận vật lý thông qua các phương tiện cơ học.


3
Tôi không nghĩ có nhiều sự khác biệt về mặt cách ly, về nguyên tắc, giữa KVM và VirtualBox / VMWare / ... vì tất cả chúng đều yêu cầu hỗ trợ mô-đun hạt nhân và sử dụng ảo hóa có hỗ trợ phần cứng. Có lẽ bạn có nghĩa là container / docker? Điều đó nói rằng việc khai thác qemu thuần túy được cho là sẽ chỉ trong không gian người dùng nhưng ngày nay nó có thể ít được xem xét hơn so với kvm (xem thêm khai thác ổ đĩa mềm) nhưng cả kvm và qemu đều không cho phép các tòa nhà trực tiếp vào kernel nhưng cả hai đều cho phép gián tiếp (thông qua ảo hóa hoặc ảo hóa) .
Maciej Piechotka

@MaciejPiechotka sai lầm của tôi, đó là sai lầm. Tôi đã cập nhật câu trả lời, nhưng cảm ơn vì đã đưa ra điều này!
0xdd
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.