Ano ang sandboxing at kung paano mag-sandbox ng isang programa

Ang mga sandbox ay umiiral dahil ang buhangin ay nakakatuwang maglaro, ngunit hindi namin nais na masubaybayan ito sa buong bakuran ng paaralan at sa bahay. Kung matagal ka nang gumugol sa isang beach, alam mo kung gaano kalawak ang buhangin at kung gaano kahirap mapupuksa. Bago mo alam ito, mayroong buhangin sa mga pasilyo, buhangin sa labahan, at buhangin sa shower.

Sa mundo ng computer, ang parehong problema ay mayroon sa mga programa. Ang mga programa na tumatakbo sa iyong computer ay nagbabahagi ng mga mapagkukunan ng computer na iyon. Ang lahat ng iyong mga programa ay gumagamit ng parehong static na pag-iimbak tulad ng disk drive, ang parehong memorya, at ang parehong gitnang pagpoproseso ng yunit (CPU). Kung ibinahagi ang mga karaniwang mapagkukunan tulad nito, maaari kang magtapos sa problema sa buhangin. Ang isang programa ay nagtatapos sa buong computer dahil isinusulat nito ang data sa lahat ng mga bahagi ng iyong mga disk, na-access ang memorya mula sa lahat ng mga lugar ng iyong memorya at nagpapadala ng mga kahilingan sa CPU kasama ang bawat iba pang programa. Pinapanatili namin ang buhangin sa isang kahon ng buhangin para sa parehong kadahilanan na ginagamit namin ang mga programa sa computer ng sandbox: upang maglaman ng buhangin – o programa – – sa isang nasasakop na saklaw.

Pinapadali ng pangunahing disenyo ng computer ang pagbabahagi ng mapagkukunan na ito. Sa pamamagitan ng pagpapahintulot sa mga programa na magbahagi ng mga mapagkukunan, ang computer ay maaaring tila multi-task at lumilitaw na gumagawa ng maraming mga bagay nang sabay-sabay. Ito mismo ang uri ng pag-uugali na darating namin sa hinihingi mula sa aming mga computer, telepono, tablet, at relo sa mga nakaraang taon, ngunit ang mga kakayahang ito ay maaaring maging sanhi ng hindi kanais-nais na mga epekto. Ang mga programa ay maaaring kumilos nang masama at mag-crash, o maging sanhi ng pag-crash ng iba pang mga programa; maaari silang magkaroon ng isang pag-asa sa ilang iba pang aplikasyon sa computer na sumasalungat sa mga pangangailangan ng ibang mga programa; at, dumarami, ang mga programa ay nakakahamak at sinubukan na mag-access sa mga lugar na wala sa hangganan upang gumawa ng masasamang bagay.

Browser sandboxing

Ang mundo malawak na web (www) ay umiral noong 1989, at ang unang talagang tanyag na browser, si Mosaic, ay nagtulak sa internet sa tanyag na kultura. Ang web ay idinisenyo upang ibahagi ang mga dokumento; hindi ito kailanman idinisenyo upang suportahan ang mayroon kami ngayon: isang sistema ng paghahatid na batay sa internet kung saan tumatakbo ang software sa ulap. Ang chasm sa pagitan ng disenyo at aktwal na paggamit ay lumikha ng hindi mabilang na mga pagkakataon para sa mga masasamang tao na gumamit ng mga web browser bilang mekanismo ng paghahatid para sa kanilang malware.

Ang linya kung saan natapos ang isang pisikal na computer sa desktop at nagsisimula ang internet ay lubos na malabo. Karamihan sa mga program na aming pinapatakbo ngayon ay bahagyang o ganap na nakasalalay sa isang live na koneksyon sa internet upang gumana. Sa patuloy na koneksyon ng internet na humuhuni sa background, nagiging malinaw na ang isang kaakit-akit na atake ng vector ay ang mga program na ginagamit namin upang ma-access ang internet. Sa tuktok ng listahan na iyon ay ang karapat-dapat na web browser. Sa katunayan, noong 2016 ang kumpanya ng seguridad sa internet na si Sucuri ay nag-log ng kalahating bilyon (na bilyon na may isang B) nakakahamak na kahilingan na naglalayong sa mga website at browser sa isang solong 30-araw na panahon.

Dahil ang mga browser ay napakatindi at laging nasa, nararapat silang maging espesyal na pansin. Marami sa mga browser ngayon ang idinisenyo upang patakbuhin ang kanilang sariling mga sandbox nang awtomatiko nang walang anumang set up mula sa gumagamit.

Ang Google Chrome ay nakabalot na sando mula pa sa simula.
Mas mahaba ang Mozilla Firefox upang maipatupad ang sandboxing ngunit halos 100% doon ngayon.
Ipinakilala ng Internet Explorer ang ilang antas ng sandboxing noong 2006 na may IE 7, at ang mga kahon ng sandbox ng Microsoft Edge ngayon.
Ang browser ng Apple ng Apple ay nagpapatakbo ng mga website sa magkakahiwalay na mga proseso.

Kung nagpapatakbo ka ng isang eksotikong browser, o nais ng higit na higit na paghihiwalay sa pagitan ng iyong OS at iyong browser, maaaring gusto mong tingnan ang manu-manong mga pagpipilian sa sandbox na nakalista sa susunod na seksyon.

Manu-manong sandboxing

Habang ang mga browser ay isang napakahalagang kahinaan sa anumang operating system, sa anumang paraan sila lamang ang kahinaan. Ang anumang application ay may potensyal na maging malisyosong at samakatuwid ang posture ng seguridad ng anumang computer ay maaaring palakasin sa pamamagitan ng paggamit ng sandboxing. Ang manu-manong sandboxing ay ang proseso ng sinasadyang pag-configure ng iyong system sa sandbox ng isang application na kung hindi man ay maaaring magkaroon ng buong pag-access sa iyong system.

Virtual machine

Ang virtualization ng desktop ay dumating sa isang mahabang paraan sa mga nakaraang taon at medyo madali itong i-install at gumamit ng mga virtual machine. Ang isang virtual machine ay tulad ng tunog: isang “machine” na hindi totoo. Ito ay talagang isang piraso lamang ng software. Ang pinaka-karaniwang paggamit ng isang virtual machine ay ang pag-install ng isang kopya ng iyong operating system sa loob nito at patakbuhin ang virtual na makina sa iyong desktop na parang ito ay isa pang pisikal na makina. Ang ganitong uri ng paghihiwalay ay nagbibigay ng maraming seguridad dahil ang mga programa ay maaari lamang ma-access ang mga mapagkukunan sa loob ng virtual machine. Kung ang isang piraso ng malware ay dapat na hawakan at mahawahan ang iyong system, maaari lamang itong mahawahan ang virtual machine, na naglilimita sa dami ng pinsala na magagawa nito. Posible ring magpatakbo ng mga alternatibong operating system sa loob ng isang virtual machine tulad ng pagpapatakbo ng isang pamamahagi ng Linux sa isang virtual machine sa isang Windows PC.

Maraming mga aplikasyon ng virtualization, ang bawat isa ay naglalayong sa isang tiyak na uri ng kaso ng paggamit. Ang pinakatanyag at mature na desktop virtualization application na karaniwang mga gumagamit ay karaniwang hawakan ay VirtualBox at Parallels.

Background: Ang isang virtualization ay binubuo ng dalawang pangunahing bahagi. Ang termino host tumutukoy sa aktwal na pisikal na computer na nagpapatakbo ng virtualization software. Ang termino bisita tumutukoy sa operating system na tumatakbo sa loob ng virtualization application.

VirtualBox

Ang VirtualBox ay pag-aari ng Oracle at may mga kliyente para sa bawat pangunahing operating system. Pagkatapos i-install ang VirtualBox, maaari kang lumikha ng isang virtual machine sa pamamagitan ng paggamit ng Bagong pindutan. Kailangan mong ibigay ang media sa pag-install ng operating system dahil hindi kasama ang VirtualBox. Ang mga pamamahagi ng Linux ay madaling natagpuan sa internet – isang magandang listahan ay ang website distrowatch at para sa pagmamay-ari ng mga operating system tulad ng Windows kakailanganin mong magamit ang iyong pag-install ng CD.

Parallels

Parallels ay halos kapareho sa VirtualBox na may kapansin-pansin na pagbubukod na ito ay tumatakbo lamang sa macOS at partikular na binuo upang patakbuhin ang Windows sa virtual machine. Kung hinahanap mo ang kumbinasyon na iyon – ang pagpapatakbo ng Windows sa iyong macOS desktop – kung gayon ang mga Parallels ay maaaring ang pinakamahusay na solusyon para sa iyo. Ang mga parallels ay hindi libre, gayunpaman mayroong isang 30-araw na libreng pagsubok.

Sandboxie

Ang motto ni Sandboxie ay ang Walang Programa ng Trust. Tumatakbo lamang ito sa Windows at sinasabing ihiwalay ang mga tumatakbo na mga programa mula sa pinagbabatayan na operating system. Ang control panel ng Sandboxie ay ginagamit upang mag-nominate ng mga tukoy na programa na tatakbo sa isang sandbox. Ang pinakakaraniwang mga programa na nagpapakita ng pinakamalaking banta, tulad ng mga browser at mga programa sa email, ay nakalista bilang mga pagpipilian sa pagsasaayos bilang default, at maaaring idagdag ang iba pang mga aplikasyon kung kinakailangan.

Ang data sa loob ng Sandboxie ay nawasak kapag ang isang sandbox ay sarado, ngunit posible na i-configure ang Sandboxie upang mag-iwan ng mahalagang data na hindi nabago. Ang mga folder na naglalaman ng mga email at mga bookmark sa web browser ay mga halimbawa ng data na maaaring mabuhay sa isang pagtanggal ng sandbox.

Ang Sandboxie ay dinisenyo para sa mga gumagamit ng bahay at na makikita sa murang presyo.

Qubes OS

Ang QubesOS (pronounces “Cubes”) ay nararapat ng isang espesyal na pagbanggit para sa virtualization. Ginagamit ng Qubes ang Xen hypervisor sa halip na VirtualBox. Naglulunsad ito ng maraming mga operating system ng panauhin at ang bawat isa ay hiwalay sa iba pa. Pinapayagan nito ang sandboxing ng mga indibidwal na aplikasyon, ang bawat isa sa loob ng sarili nitong virtual machine, sa halip ay sandbox lamang ang buong operating system ng panauhin. Ang natatanging pagkakaiba ng QubesOS ay si Xen ay ang sariling operating system; walang “host” operating system na tumatakbo sa ilalim nito. Sumulat ako ng higit pa tungkol sa mga Qubes at iba pang mga pamamahagi na nakatuon sa hindi nagpapakilala sa Linux dito.

Ang paglaan ng oras upang sandbox ang iyong system ay maaaring magbigay ng isang matatag na pagtatanggol laban sa maraming mga uri ng malware at makakatulong sa pag-unlad ng software. Walang kapalit para sa isang malusog na dosis ng paranoia kapag gumagamit ng internet, ngunit maaaring makatulong ang paghiwalayin ang iyong mas mahina na mga aplikasyon.

Ang mga uri ng mga isyu na hindi mga sandwich na programa ay maaaring maging sanhi

Ang mga programa ay nag-crash sa bawat isa

Sa mga unang araw ng pag-compute, ibigay ng CPU ang mga mapagkukunan sa isang first-come-first-serve na batayan. Nagtrabaho ito nang maayos kapag ang aming mga computer ay hindi gumagawa ng marami, ngunit sa mga araw na ito mas kumplikadong mga pamamaraan ng paglalaan ng mapagkukunan. Labis na ipinagtatanggol ng mga CPU ang mga hangganan ng mga mapagkukunang kanilang inilalaan at, kung ang isang programa ay nagtatangkang mag-access ng isang mapagkukunan na hindi partikular na itinalaga dito, ang programa o iba pang mga programa ay maaaring mag-crash.

Ang pagpapatakbo ng isang programa sa isang sandbox ay nagbibigay-daan sa system na paunang maglaan ng mga mapagkukunan tulad ng memorya at puwang ng disk nang maaga ng programa na humihiling ng anupaman. Tinitiyak nito na ang mga mapagkukunang iyon ay handa para sa programa sa tuwing nangangailangan ito, at tinitiyak din na walang ibang mga programa ang maaaring gumamit ng mga mapagkukunang iyon.

Mga programa na may iba’t ibang mga dependencies

Ang bawat programa ay may maraming mga bersyon ng kanyang sarili. Napakakaunting mga programa ay perpekto sa lahat ng paraan sa kanilang unang paglulunsad, kaya’t bakit kami ay patuloy na sumailalim sa walang katapusang pag-upgrade ng pag-upgrade. Ang aming mga aparato ay magpakailanman ay nagsasabi sa amin na ang mga pag-update ay kailangang mailapat o magagamit ang mga bagong bersyon ng aming mga programa. Mahalagang pahintulutan ang mga update na ito sa lalong madaling panahon dahil marami sa mga update na ito ay nauugnay sa mga isyu sa seguridad o pagganap. Ang pagtanggal ng mga pag-upgrade ay karaniwang nagbibigay ng iyong aparato na hindi gaanong ligtas at tumatakbo sa isang estado na hindi gaanong perpekto.

Sa ilalim ng pangunahing mga aplikasyon na ginagamit namin at nakikipag-ugnay sa bawat araw ay isang hanay ng mga programa ng katulong. Ang mga programang ito ay umiiral upang matulungan nang maayos ang pangunahing application nang maayos. Kami mga tao ay bihirang magkaroon ng kamalayan sa mga programang ito, ngunit ang pangunahing programa ay hindi maaaring gumana nang wala sila. Ang mga programang katulong na ito ay tinawag dependencies sa parlance ng developer. Tulad ng anumang iba pang programa, ang mga dependencies ay patuloy na nag-update at nagbabago, kung saan ang mga bagay ay maaaring makakuha ng nakakalito.

Kung ang isang pangunahing programa ay gumagamit ng isang partikular na pag-andar na ang mga supply ng dependency, ngunit ang dependency ay na-upgrade at biglang hindi na gumana pa, pagkatapos ang pangunahing aplikasyon ay gaguho. Ang pangunahing aplikasyon ay hindi makakakuha ng inaasahang resulta mula sa dependant. Sa maraming mga kaso, ang error sa dependency ay hindi inaasahan na ang pangunahing aplikasyon ay mag-crash ng unceremoniously. Ang pangunahing developer ng application ay marahil ay hindi binigyan ng babala nang maaga tungkol sa mga pagbabago sa pagiging umaasa, kaya maaaring mahirap na account para sa ganoong sitwasyon at malugod itong hawakan.

Karamihan sa mga programmer gawin ang kanilang makakaya upang matiyak pabalik na pagkakatugma, na nangangahulugang kahit na ang isang mas bagong bersyon ng kanilang aplikasyon ay walang function na ito noong nakaraan, hahawak pa rin ito ng mga kahilingan para sa pagpapaandar na iyon upang ang iba pang mga aplikasyon depende sa ito ay hindi mag-crash. Gayunpaman, ang ilang mga kapansin-pansin na pagbubukod tulad ng Java at Python ay kilala sa pagiging napakahirap upang gumana sa isang pag-upgrade. Sa mundo ng Linux, ang kilalang pariralang “dependency impiyerno” ay tumutukoy sa mga problemang likas na may malaking pag-update ng system. Sa ilang mga kaso, ang mga programa sa dependency ay may sariling mga dependencies, at hindi napapakinggan na magtapos sa isang sitwasyon ng pag-upgrade kung saan hindi posible upang masiyahan ang lahat ng mga dependency. Halimbawa, kung ang aking Puppy Vet Tracker program ay nangangailangan ng bersyon na 2.0 ng ilang nakasalalay na programa, ngunit ang aking programa sa Daily Star Wars Quote ay nangangailangan ng bersyon 1.0 ng parehong umaasa na programa, kung gayon hindi posible upang masiyahan ang kahilingan na iyon para sa parehong mga programa.

Ang mga nag-develop ay madalas na tumatakbo sa ganitong uri ng isyu, at ang sandboxing ay isang paraan upang matugunan ito. Ang paglikha ng isang sandbox at pag-install ng aking Puppy Vet Tracker sa loob nito ay magpapahintulot sa nakasalalay na programa na ma-upgrade sa bersyon 2.0. Ang pangunahing sistema ng computer ay mananatili sa bersyon 1 ng nakasalalay na programa, at samakatuwid maaari ko pa ring makuha ang aking pang-araw-araw na quote ng Star Wars. Panalo-win.

Mga nakakahamak na programa

Isaalang-alang ang isang sitwasyon kung saan ibinahagi ng isang application ang iyong computer sa lahat ng iba pang mga tumatakbo na programa. Ang ilan sa mga program na tumatakbo sa iyong computer ay maaaring maglaman ng sensitibong impormasyon. Marahil mayroon kang mga ligal na dokumento, badyet ng mga spreadsheet, o buksan ang isang tagapamahala ng password, at ang mga application na ito ay nag-iimbak ng ilang data sa memorya. Ang mga nakakahamak na programa ay umiiral na ang pagsisiyasat sa paligid ng mga lugar ng computer na naatasan sa iba pang mga programa upang makita kung ano ang kanilang mahahanap. Sa mga nagdaang taon, ang paglalaan ng mapagkukunan ay naging mas mahusay kaya mas mahirap para sa isang programa na ma-access ang data na wala sa mga lugar na partikular na itinalaga dito, ngunit ang mga pamamaraan ng pag-hack tulad ng pagsubok na basahin na lampas sa memorya na itinalaga sa programa ay maaaring gumana.

Ang trick sa matagumpay na pag-exfiltration ng data (ang pag-alis ng data mula sa iyong system) ay palaging umaasa sa lokohang gumagamit ng computer sa pag-install ng malware. Ito ay karaniwang ginagawa sa mga taktikal na panlipunan o taktika sa phishing at maaaring magresulta sa pakyawan ng kompromiso ng isang sistema kung saan maaaring magnanakaw ang bawat file..

Ang mga programa sa Sandboxing ay maaaring magbigay ng isang napakalakas na pagtatanggol laban sa mga nakakahamak na programa. Kapag ang isang programa ay maayos na naka-sandwich, maaari lamang itong ma-access ang puwang ng memorya at disk na itinalaga dito. Samakatuwid, ang pagbubukas ng mga sensitibong dokumento sa isang kahon ng buhangin ay karaniwang maiiwasan ang malisyosong programa ng kakayahang ma-access ang mga ito dahil ang dokumento ay wala sa parehong puwang ng memorya ng malisyosong programa. Ang pagkakaroon ng sinabi na, mayroong isang napaka-pinagsama-samang pagsisikap ng mga hacker na tumagos sa loob, at labas, ng mga sandbox. Ito ay tinawag pagtakas sa virtual na kapaligiran at itinuturing na isang seryosong uri ng pag-atake na kamakailan na binayaran ng Microsoft ang isang $ 105,000 na halaga sa isang puting-hat hacking team na nagpakita na posible gamit ang Edge Browser.