Ruoste on jo Android-kehityksen suosikki

Google paljasti äskettäin taipumus ohjelmointikieli Ruoste sallittujen kielten joukossa Android-kehitykseen.

Koska Rust-kääntäjä sisällytettiin Android-lähdekoodiin vuonna 2019, mutta kielituki pysyi kokeellisena. Jotkut ensimmäisistä Androidiin toimitettavista Rust-komponenteista ovat Binder-prosessienvälisen viestintämekanismin ja Bluetooth-pinon uudet toteutukset.

Rust-toteutus toteutettiin osana turvallisuuden vahvistamista koskevaa hanketta, edistää turvallisia koodaustekniikoita ja parantaa ongelmien tunnistamista, kun työskentelet muistin kanssa Androidissa. On havaittu, että noin 70% kaikista Androidissa havaituista vaarallisista haavoittuvuuksista johtuu virheistä, kun käsitellään muistia.

Rust-kielen käyttö, että keskittyy turvalliseen muistinhallintaan ja tarjoaa automaattisen muistinhallinnan, se vähentää haavoittuvuuksien riskiä, ​​joka johtuu virheistä muistin käsittelyn aikana, kuten pääsy muistialueelle sen vapauttamisen jälkeen ja puskurirajojen ylittäminen.

Turvallinen muistinkäsittely varmistetaan Rustissa rakennushetkellä tarkistamalla viitteet, seuraamalla objektin omistajuutta ja objektin kestoa (laajuutta) sekä arvioimalla muistin käytön oikeellisuutta ajon aikana.

Ruoste tarjoaa myös keinoja suojautua ylivuotoja vastaan kokonaisluku, vaatii muuttujien arvojen pakollisen alustamisen ennen käyttöä, käsittelee paremmin standardikirjaston virheet, hyväksyy oletusarvoisesti viitteiden ja muuttumattomien muuttujien käsitteen ja tarjoaa vahvan staattisen kirjoittamisen loogisten virheiden minimoimiseksi.

Androidissa suojattu muistinhallinta tarjotaan Kotlin- ja Java-kielillä jo tuettu, mutta ei sovellu järjestelmän komponenttien kehittämiseen raskaan yleiskustannuksen vuoksi.

Ruosteen avulla voidaan saavuttaa suorituskyky lähellä C- ja C ++ -kieliä, jolloin sitä voidaan käyttää kehitysalustan matalatasoisten osien ja komponenttien kehittämiseen laitteiston kanssa vuorovaikutuksessa.

C- ja C ++ -koodien turvallisuuden varmistamiseksi Android käyttää hiekkalaatikon eristämistä, staattista analyysia ja fuzzing-testejä. Hiekkalaatikon eristysominaisuudet ovat rajalliset ja saavuttaneet kykynsä rajan (prosessien jatkuva pirstoutuminen ei ole käytännöllistä resurssien kulutuksen näkökulmasta).

Hiekkalaatikon käytön rajoituksista he mainitsevat korkean yleiskustannuksen ja suuremman muistin kulutuksen, joka johtuu tarpeesta luoda uusia prosesseja, sekä IPC: n käyttöön liittyvän ylimääräisen viiveen.

Samaan aikaan hiekkalaatikko ei poista haavoittuvuuksia koodissa, vaan vain vähentää riskejä ja vaikeuttaa hyökkäystä, koska hyödyntäminen vaatii yhden, mutta usean haavoittuvuuden tunnistamisen.

Kooditestausmenetelmät ovat rajoitetut, koska virheiden havaitsemiseksi sinun on luotava olosuhteet ongelman ilmentymiselle. Kaikkia mahdollisia vaihtoehtoja ei voida kattaa, joten monet virheet jäävät huomaamatta.

Android-järjestelmäjärjestelmissä Google noudattaa kahden säännön sääntöjä, mukaan jonka lisätty koodi ei saa täyttää enempää kuin kaksi kolmesta ehdosta- Työskentele vahvistamattomien syötetietojen kanssa, käytä epävarmaa ohjelmointikieliä (C / C ++) ja suorita ilman kovaa hiekkalaatikon eristystä (korkeammilla käyttöoikeuksilla).

Tästä säännöstä seuraa, että ulkoisten tietojen käsittelykoodi on vähennettävä vähimmäisoikeuteen (eristetty) tai kirjoitettava turvallisella ohjelmointikielellä.

Google ei yritä kirjoittaa koodia uudelleen C / C ++ olemassa Rust, mutta hän aikoo käyttää tätä kieltä uuden koodin kehittämiseen.

On järkevää käyttää Rustia uudelle koodille, koska tilastollisesti suurin osa virheistä esiintyy uudessa tai äskettäin muokatussa koodissa. Erityisesti noin 50% Androidissa havaituista muistivirheistä havaitaan alle vuotta sitten kirjoitetussa koodissa.

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.

  1.   miguel rodriguez dijo

    Ironista, kun suurin kilpailijasi päätyy omaksumaan jotain, jota autoit kehittämään omiin tarkoituksiisi ... Ruoste on nousussa.