În securitatea informatică, un sandbox (traducere din engleză: cutie de nisip) este un mecanism de securitate, conceput pentru a separa programele care rulează, de obicei în efortul de a atenua răspândirea erorilor de sistem sau/și a vulnerabilităților software. Metafora cutiei cu nisip (de unde vine numele "sandbox") derivă din conceptul de cutie cu nisip (groapă cu nisip) pentru copii - o zonă de joacă unde copiii pot construi, distruge și experimenta fără a cauza vreo daună în lumea reală. Sandbox-ul este folosit deseori pentru a elimina programele sau codurile, care sunt netestate sau care nu sunt de încredere, posibil de la , furnizori, utilizatori sau site-uri web neverificate sau suspicioase, fără a risca daune asupra mașinii gazdă sau a sistemului de operare. Un sandbox oferă de obicei un set de resurse strict controlat, cum ar fi spațiu de stocare și , în care programele din cadrul acestuia pot rula. Accesul la rețea, capacitatea de a inspecta sistemul gazdă sau de a citi de pe dispozitivele de intrare sunt de obicei nepermise sau puternic restricționate.
În sensul furnizării unui mediu extrem de controlat, sandbox-urile pot fi văzute ca un exemplu specific de . Sandboxing-ul este utilizat frecvent pentru a testa programe neverificate care ar putea conține un virus sau vreun alt tip de cod rău intenționat, fără a permite software-ului să dăuneze dispozitivului gazdă.
Implementări
Un sandbox este implementat prin executarea software-ului într-un mediu de sistem de operare restricționat, controlând astfel resursele (de exemplu, , memoria, spațiul sistemului de fișiere etc.) pe care un proces le poate utiliza.
Unele exemple de implementări ale sandbox-ului:
Sandboxing-ul aplicațiilor Linux, construit pe caracteristicile , și ale nucleului Linux. Folosit în special de Systemd, Google Chrome, Firefox și . Android a fost primul sistem de operare important care a implementat sandboxing-ul complet al aplicațiilor, construit prin atribuirea fiecărei aplicații câte un ID de utilizator Linux propriu. Apple App Sandbox (Sandbox-ul aplicațiilor Apple) este necesar pentru aplicațiile distribuite prin Mac App Store și iOS / iPadOS App Store de la Apple, și recomandat pentru alte aplicații semnate. Windows Vista și edițiile ulterioare includ rularea proceselor în mod „scăzut”, rulare cunoscută sub numele de „” (UAC). Windows 10 Pro, începând cu versiunea 1903, oferă o funcționalitate cunoscută sub numele de Windows Sandbox. Google Sandboxed API. o un computer gazdă complet, care pe un sistem de operare convențional poate porni și rula ca pe hardware real. Sistemul de operare oaspete rulează în sandbox, în sensul că nu funcționează nativ pe gazdă și poate accesa resursele gazdă doar prin emulator. O „“: restricții legate de accesul la rețea și un restricționat al sistemului de fișiere. „Închisorile“ sunt cel mai frecvent utilizate în găzduirea virtuală (virtual hosting). Execuția bazată pe reguli oferă utilizatorilor control deplin asupra proceselor pornite, generate (de alte aplicații) sau cărora li se permite să injecteze cod în aplicații diferite și să aibă acces la rețea, prin atribuirea de către sistem a nivelurilor de acces pentru utilizatori sau programe în conformitate cu un set de reguli determinate. De asemenea, aceasta poate controla securitatea fișierelor/registrului (ce programe pot citi și scrie în sistemul de fișiere/registru). Într-un astfel de mediu, virușii și troienii au mai puține oportunități de a infecta un computer. Framework-urile de securitate și Apparmor sunt două astfel de implementări pentru Linux. Cercetătorii în domeniul securității se bazează în mare măsură pe tehnologiile de tip sandboxing pentru analizarea comportamentului programelor malware. Prin crearea unui mediu care imită sau replică desktopurile vizate, cercetătorii pot evalua modul în care programele malware infectează și compromit o gazdă țintă. Numeroase servicii de analiză a programelor malware sunt bazate pe tehnologia sandboxing. este un sandbox conceput pentru rularea eficientă și sigură a codului compilat C și C++ în browser, independent de sistemul de operare al utilizatorului. Sistemele de capabilități pot fi considerate un mecanism de tip sandboxing fin, în care programele primesc opace atunci când sunt generate și au capacitatea de a face lucruri specifice pe baza tokenurilor pe care le dețin. Implementările bazate pe capabilități pot funcționa la diferite niveluri, de la kernel la spațiul utilizatorului. Un exemplu de sandboxing bazat pe capabilități la nivel de utilizator implică randarea HTML într-un browser web. În modul strict al Secure Computing Mode (seccomp), seccomp permite doar apelurile de sistem write(), read(), exit() și sigreturn() (scriere, citire, ieșire și returnarea semnăturii). HTML5 are un atribut „sandbox” pentru utilizarea cu iframe-uri. Mașinile virtuale Java includ un sandbox, pentru a restricționa acțiunile codului care nu este de încredere, cum ar fi un applet Java. al .NET oferă securitate pentru accesul la cod pentru a impune restricții asupra codului care nu este de încredere. Izolarea erorilor software (SFI) permite rularea de cod nativ nesigur prin sandboxing-ul tuturor instrucțiunilor assembly de stocare, citire și salt către segmente izolate de memorie.
Câteva dintre cazurile de utilizare ale sandbox-urilor:
Sisteme de jurizare online pentru testarea programelor în cadrul unor concursuri de programare. -uri de nouă generație care permit utilizatorilor să execute fragmente de cod copiate pe serverul pastebin-ului.
Vezi și
Tor (rețea de anonimat)
Note
Legături externe
Security In-Depth for Linux Software: Preventing and Mitigating Security Bugs (traducere titlu: Securitate în profunzime (în straturi) pentru software Linux: Prevenirea și atenuarea erorilor de securitate) Sandbox Proiectele Chromium Pagina de manual pentru caracteristica capsicum din FreeBSD(4)o capabilitate lightweight a sistemului de operare și un framework de sandbox Pagina de manual OpenBSD pledge(2)o modalitate de a restricționa operațiunile sistemului testării în sandbox Importanța sandbox-ului în cadrul unei erori zero-day
Categorie:Securitate informatică Categorie:Securitatea calculatoarelor Categorie:Securitatea sistemelor de operare Categorie:Virtualizare