Lần cuối tôi test system sandboxing software là thời XP. Tôi nhớ programs như ShadowGuard, nếu memory serves me well, và Deep Freeze, được thiết kế tạo virtual filesystem layer để changes được làm trong active session, và next reboot, chúng được scrub back to clean state. Bản chất, read-only system với khả năng selective modification.
Cho applications, bạn có thể muốn thứ ít complicated hơn — và cho những người cần, có Sandboxie. Như vậy, tôi không thực sự thử ứng dụng, không phải early days cũng không sau khi bị acquired, nhưng giờ, sau khi thử Windows Defender Application Guard (không thành công) trên Windows 10 Home, tôi quyết định xem lại chương trình này. Vậy test và review Sandboxie. Xây dựng security castle nào!
Setup và cấu hình
Cài đặt không complicated, nhưng yêu cầu bạn pay attention. Phần chính của setup là Sandboxie driver, làm all the magic in background. Tôi không gặp vấn đề làm này trên Windows 10 Home box — không dùng security software khác ngoài built-in Mitigation Protections.
Lần đầu chạy, Sandboxie scan software trên hệ thống và hỏi có apply các configuration settings không. Tôi không chắc điều này làm gì tại thời điểm này, nhưng tôi để step complete. Vâng, không như bạn có option không click OK, nhưng bạn có thể remove entries shown.
Tutorial
Vì Sandboxie usage không trivial, chương trình bắt đầu với tutorial. Bạn được yêu cầu follow vài steps, để familiar với cách app works. Tôi thấy wizard hơi clunky, và chỉ hiểu chuyện gì sau khi complete it, so to speak. TL;DR, bạn sẽ có shortcut Sandboxie-ed cho default Web browser trên desktop, và nếu chạy nó, browser (Firefox במקרה này) sẽ launch sandboxed. Main program interface là task manager loại gì, show tất cả sandboxed applications, grouped by containers (bạn có thể configure different sandboxes sau). Khi chương trình chạy dưới Sandboxie, bạn identify nó bằng prefix và suffix [#] trong title (không trivial vì không phải programs nào show titles), và bằng yellow border khi hover chuột over application window.
Chơi trong cát
Tôi bắt đầu dùng chương trình, và sớm học được function gọi Immediate Recovery. Nếu bạn copy file vào một trong pre-defined folders, bạn có thể "recover" chúng từ sandbox vào real system. Mặc định, Sandboxie isolate applications chạy bên trong từ outside filesystem, vì vậy nếu bạn close chúng, tất cả changes sẽ lost (như downloads). Giống như chạy browser trong Linux live session, không persistence, changes gone nếu reboot. Nếu bạn không biết Linux là gì, bỏ qua câu cuối.
Close nghĩa là bạn chỉ giữ file trong sandboxed session; không trực quan.
Mặc định, bạn có shortcut cho default browser, nhưng bạn có thể launch bất kỳ program nào via right-click. Bạn sẽ có option select desired (sand)box.
Chương trình behave well. Ví dụ, tôi không thấy browsing history hay bookmarks trong Firefox hay Chrome khi chạy sandboxed, và không notice performance degradation hay conflict với plugins/extensions hay media playback. Nhưng trong Chrome, không có title, nên không indication bạn đang chạy sandboxed trừ khi hover chuột.
Settings và thêm settings
Tôi sớm phát hiện có multiple ways tweak Sandboxie configuration. Nếu right-click process listed trong sandbox, bạn có thể thay đổi hành vi. Nhưng chỉ effective cho current session. Sau đó, bạn cũng có global settings. Điều này hơi confusing.
Hơi khó tìm per-sandbox global settings, nhưng tìm được. Sau đó, bạn có super-long list options tweak, bao gồm look and feel, how và if recover hoặc delete files, grouping programs (như browsers based on Firefox hoặc Chromium), và migration files vào sandbox. Tôi thấy một số options khá tricky, vì explanations dùng not format. Vì vậy bạn cần put brain in reverse để hiểu gì sẽ actually happen.
Tiếp, bạn có long, detailed list restrictions và access rights. Bạn quyết định sandboxed applications sẽ có resource types gì (cho box đó). Bạn có thể dùng very fine-tuned list permissions, bao gồm files nào có thể read/write, files nào không accessible, network ports, và hơn. Lại dùng Linux analogy, điều này similar to viết AppArmor hoặc SELinux rules, và không trivial task. Bạn really need good understanding của system internals để làm changes ở đây mà không compromise security hoặc break applications — hoặc thậm chí system. Vâng, nếu không careful, bạn có thể lock yourself out of Windows. Ví dụ, listed DLLs dưới — chúng nghĩa gì cho ordinary user?
Things trở nên even more complicated khi bạn nhìn Registry, IPC, hoặc COM. Đây là true nerdy territory, và trừ khi bạn fully understand typical Windows process memory mapping, bạn không nên nhìn section này.
Applications option mở ra super-long list categories, với various default rules bạn có thể add hoặc remove. Bạn configure browsers, email readers, PDF software, và nhiều apps/tools khác riêng biệt. Lại, tôi thấy lots of rules/explanations difficult to understand. Ví dụ, nếu rule được viết, nhưng không có sign, có nghĩa là blocked? Hay chỉ rule bạn có thể configure? Hay Default exclusions for Immediate Recovery. Điều đó nghĩa gì? File types hoặc locations sẽ được recover? Hay sẽ bị excluded?
Bạn cũng có option edit program configuration qua ini file, hơi old school, nhưng nó đó, cho những ai cần speed và geeky actions. All in all, configuration piece leaves a lot to be desired, và cũng emphasized how complex it is.
So sánh với các phương pháp khác?
Vâng, tôi hỏi cùng câu hỏi như trong App Guard article. Nếu bạn dùng browsers đã có sandboxing capabilities, nếu dùng Exploit Protection, nếu dùng extension như Noscript, và cũng possibly chạy dưới standard (limited) account, có bao nhiêu value cho thứ như này?
Điều đầu tiên đến mind — arbitrary execution of code, nhưng tất cả above definitely limit applicability của đó. Điều thứ hai, và quan trọng hơn nhiều, là: sandbox model break ở đâu? Câu trả lời là, user. Thực tế, trong testing, tôi nhận ra bạn có option save files đến unsandboxed folders, và đó là vấn đề. Nếu bạn allow bad file through, bạn cuối cùng sẽ dùng nó unrestricted. Có thể nó không render damage trong isolated session, nhưng sau đó sẽ, đặc biệt nếu bạn không notice "bad" symptoms và become convinced nó safe. Thực tế, presence của powerful security tool có thể thậm chí lower sense of self-preservation của bạn.
Sau đó, bạn cũng có option tinker sandbox settings và làm changes — add hoặc remove file và registry access, define folders cho immediate recovery, và类似. Nếu bạn không deeply skilled, bạn có thể potentially tạo gap trong sandbox. Điều này trở nên even more apparent nếu bạn thực sự có usability problem (do security restrictions) và thử work around it. Giờ, đây không phải Sandboxie issue, mà general one. Nó là paradox của software security. Nếu bạn không skilled đủ dùng software to full potential, bạn không likely benefit từ nó, nhưng nếu bạn skilled, thì bạn most likely không cần nó.
Đây là lý do tôi thấy EMET hoặc Exploit Guard extremely valuable. Chúng có thể cripple usage trong một số cases do applied mitigations (rare nhưng possible), nhưng điều này done without classifying software as good or bad. Thay vào đó, done ở lower level — good or bad instruction hoặc memory access. Exploit Guard không discriminate giữa bad software và good software viết badly.
Tương tự, nếu bạn dùng standard account, bạn limited trong cái bạn có thể làm. Và điều này nothing to do với random hax0r trying to pwn you. Nó rudimentary hơn nhiều. Bạn no privilege thay đổi nhiều system settings. Period. Không quan trọng deliberate hay mistake hay whatever. Không possible.
Quay lại Sandboxie. Mặc định, nó làm lots of good stuff, và nếu bạn không tinker, bạn nên có reasonable layer extra security. Nhưng Sandboxie không limit cái xảy ra within sandbox và sẽ không prevent code running hoặc prevent bạn copy data out of sandbox. Hơn nữa, bạn có ability tinker và change settings, potentially mở holes trong isolation mechanism. Từ những gì tôi test, Sandboxie tốt trong isolating Internet-facing programs từ system, nhưng sẽ không limit access đến Internet data, như browsing activity.
Kết luận
Sandboxie là nice, robust program. Nó cung cấp advanced users high degree of flexibility setup low-privilege containers cho untrusted và Internet-facing software. Bạn isolate applications này, cách somewhat similar đến mobile operating systems. Trừ Sandboxie làm này ages ago. Hơn nữa, nếu bạn không thích isolation mechanism hoạt động như thế nào, hoặc một program không behaving hoặc functioning correctly, bạn dễ dàng execute nó outside Sandboxie context, và Bob's your uncle.
Tuy nhiên, Sandboxie cũng có limitations. Setup và configuration far from trivial, và yêu cầu solid level understanding của system, devices, access, và类似. Điều này có thể turn Sandboxie usage into a burden. Cuối cùng, Sandboxie limits privileges nhưng không sanitize chúng, nghĩa là nếu có memory leak trong context của running application (tức là illegal instruction loại gì), Sandboxie sẽ không stop đó. Hoặc prevent bạn copy file bạn download từ Web ra khỏi container. Nghĩa là Sandboxie makes sense khi bạn không trust cái bạn làm thay vì khi bạn trust. Tôi tin value của nó là test applications và nếu bạn cần roam wild Internet unchecked. All in all, recommended và worth checking. Có lẽ future versions sẽ có simplified interface và more intuitive access control flow. Take care.
Cheers.