Google avasi järjestelmän hiekkalaatikkoympäristöjen luomiseksi C / C ++: lle

Google

Joitakin päiviä sitten Google ilmoitti Sandboxed API -projektin avaamisestaEttä voit automatisoida hiekkalaatikkojen luontiprosessin mielivaltaisten kirjastojen eristetylle suorittamiselle C: ssä ja C ++: ssa.

Koodisi eristäminen kirjastoista avulla voidaan suojautua kirjastojen tarjoamista kahvoilta, luodaan ylimääräinen este siltä varalta, että koodissasi on haavoittuvuuksia, joita voidaan hyödyntää manipuloimalla kirjastoon tulevan ulkoisen datan kanssa. Koodi on avoinna Apache 2.0 -lisenssillä.

Eristäminentai se tehdään Sandbox2-ajon aikana, jossa käytetään nimitiloja, c-ryhmiä ja seccomp-bpf.

Hiekkalaatikkoon toimitettu koodi, joka toimii erillisessä prosessissa, jolle pääsy järjestelmäkutsuihin ja resursseihin, samoin kuin tiedostot ja verkkoyhteydet, on rajoitettu.

Prosessit saavat pääsyn vain järjestelmän ominaisuuksiin, joita tarvitaan suoraan eristetyn koodin suorittamiseen.

Sandbox2 määrittelee prosessin suorittavat komponentittai käytä eristyssääntöjä ja tue myöhempää suoritusta.

Hiekkalaatikko2 sitä voidaan käyttää erillään Sandbox-sovellusliittymästä kirjastojen lisäksi myös mielivaltaisten prosessien eristämiseen.

Suojauksen lisäämisen lisäksi positiivinen kohta koodin poistamisessa erillisissä prosesseissa on mahdollisuus erikseen säätää kirjaston ja suorittimen muistin kulutuksen rajoituksia sekä suojaa vikoja vastaan: vika kirjasto ei aiheuta koko sovelluksen kaatumista.

Tietoja Sandboxed API: sta

Sandboxed API on Sandbox2-laajennus mikä yksinkertaistaa olemassa olevien kirjastojen kuljetusta suoritettavaksi eristetyssä tilassa.

API hiekkalaatikko tarjoaa väliohjelmiston käyttöliittymän, jonka avulla voit suorittaa kirjastokoodin hiekkalaatikkoympäristössäsamoin kuin järjestää puhelu kirjastoon hiekkalaatikkoympäristössä ja varmistaa, että kirjastotulokset toimitetaan pääohjelmaan.

Se käyttää eristettyä kirjastoa erikoistuneen RPC: n kautta ProtoBuffs-protokollan perusteella.

A kirjastokehittäjille tarjotaan joukko vaihtoehtoja, jotka sallivat muuttujien käytön, tiedostokuvaajat, puskurit ja kirjastotoiminnot, jotka on eristetty perussovelluksesta, mukaan lukien työkalut automaattiseen ja hallittuun muistisynkronointiin taulukoiden ja rakenteiden jakamiseksi.

sapi-yleiskatsaus

Kun tällaisia ​​tietoja analysoiva ohjelmistokirjasto on riittävän monimutkainen, se voi joutua tietyntyyppisten tietoturva-aukkojen uhriksi: muistivirheitä aiheuttavat virheet tai muun tyyppiset analyysilogiikkaan liittyvät ongelmat (esimerkiksi polun kulkuongelmat).). Näillä haavoittuvuuksilla voi olla vakavia turvallisuusvaikutuksia.

Lisäksi, API on toimitettu eristettyjen prosessien toiminnan seuraamiseksi ja niiden käynnistämiseksi uudelleen vikatilanteissa.

Eristetylle kirjastolle eristettyjen toimintojen merkintäkoodi generoidaan automaattisesti Bazel-kokoonpanojärjestelmälle ja ohjelmointirajapinnalle (SAPI) perus- ja eristettyjen prosessien vuorovaikutusta varten.

Kehittäjän on myös luotava otsikkotiedosto, jossa on eristyssäännöt, jotka määrittelevät kaikki sallitut järjestelmäkutsut ja toiminnot (luku, kirjoitus, tiedostojen avaaminen, ajankäyttö, kyky asentaa signaalinkäsittelijöitä, tuki muistin jakamiseen mallocin kautta jne.).

Tiedostot ja hakemistot, joihin kirjastolla pitäisi olla pääsy, määritetään erikseen.

Asennus

Tällä hetkellä projekti on saatavana vain Linuxille, mutta tulevaisuudessa he lupaavat lisätä tukea macOS- ja BSD-järjestelmille sekä pitkällä aikavälillä ja Windowsille. Joo haluat asentaa hiekkalaatikkoon api, voit noudattaa annettuja ohjeita tässä linkissä.

Suunnitelmista on myös huomattava kyky eristää kirjastot muilla kielillä kuin C ja C ++, ylimääräinen ajonaikainen tuki eristämiseen (esim. laitteistovirtualisointiin perustuva) ja kyky käyttää CMakea ja muita kokoonpanojärjestelmiä (tuki on nyt rajoitettu Bazelin koontijärjestelmään).

lähde: https://security.googleblog.com


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastaa tiedoista: AB Internet Networks 2008 SL
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.