mikä on RCE (Remote Code Execution) – hyökkäys?
etäkoodin suoritusta käytetään paljastamaan haavoittuvuuden muoto, jota voidaan hyödyntää, kun käyttäjän syöte ruiskutetaan tiedostoon tai merkkijonoon ja koko paketti ajetaan ohjelmointikielen jäsentimellä. Tämä ei ole sellaista käyttäytymistä, jota web-sovelluksen kehittäjä esittää. Etäkoodin Suoritushyökkäys voi johtaa täysimittaiseen hyökkäykseen, joka vaarantaisi kokonaisen verkkosovelluksen ja verkkopalvelimen. Huomaa myös, että lähes kaikilla ohjelmointikielillä on erilaiset koodin Arviointitoiminnot.
koodin arviointi voi tapahtua myös, jos annat käyttäjän syötteiden päästä käsiksi toimintoihin, jotka arvioivat koodia samalla ohjelmointikielellä. Tämän tyyppinen toimenpide voidaan toteuttaa tarkoituksellisesti ohjelmointikielen matemaattisten funktioiden pääsemiseksi tai vahingossa, koska kehittäjä on suunnitellut käyttäjän ohjattavan syötön olevan jonkin näistä toiminnoista sisällä. Ei ole suositeltavaa toteuttaa tätä toimintalinjaa. Monet ihmiset pitävät haitallisena edes koodin arviointia.
esimerkki koodista
Katsotaanpa esimerkkiä koodin arviointihyökkäyksestä.
voi tuntua paremmalta idealta luoda dynaamisesti muuttuvia nimiä jokaiselle käyttäjälle ja tallentaa heidän rekisteröintipäivänsä. Tämä on esimerkki siitä, miten voit tehdä sen PHP: ssä
eval("$$user = '$regdate');As long as the username is controlled by the user's input, an attacker may create a name like this:x = 'y';phpinfo();//
luotu PHP-koodi muistuttaisi tätä:
$x = 'y';phpinfo();// = 2016';
voit nyt nähdä, että muuttujaa kutsutaan x: ksi, mutta sen arvo on y. kun hyökkääjä voi antaa muuttujalle toisen arvon, hän voi luoda uuden komennon käyttämällä puolipistettä (;). Hän voi nyt täyttää loput narusta. Näin hän ei saa työssään syntaksivirheitä. Heti kun hän suorittaa tämän koodin, tuotos phpinfo olisi näkyvissä sivulla. Kannattaa aina muistaa, että se on mahdollista PHP ja muilla kielillä ominaisuuksia, jotka voivat arvioida syötteen.
koodin Etätoteutuksen järjestäminen Origon mukaan
suurin osa RCE: n erotetuista heikkouksista johtuu tietyistä perussyistä, joita voidaan seurata takaisin lähtöpisteeseensä. Koodin Etätoteutuksen ryhmittelyä aloittamalla tarkastellaan seuraavasti.
dynaaminen koodin suoritus
dynaaminen koodin suoritus on kaikkien tietojen mukaan yleisimmin tunnustettu perussyy, joka aiheuttaa koodin suoritushyökkäyksen. Monet ohjelmointimurteet on suunniteltu niin, että ne voivat tuottaa koodia toisella koodilla ja suorittaa sen saman tien. Tämä ajatus on hämmästyttävä, joka käsittelee erilaisia monimutkaisia kysymyksiä. Oli miten oli, pahansuopa hyökkääjä voi hallita tätä ajatusta hankkiakseen RCE: n pääsyn ja valmiudet.
tavallisesti nopeasti Tuotettu koodi riippuu tietystä asiakkaan syötöstä. Tavallisesti koodiin sisältyy tieto, joka on muistettu tietystä rakenteesta. Kun pahanlaatuinen hyökkääjä ymmärtää, että voimakas koodiaika hyödyntää tiettyjä tietoja, se voisi tehdä huomattavan koodin tyyppinä sovelluksen erottamiseksi. Jos asiakkaiden maksuosuuksia ei tutkita, koodi toteutetaan tavoitteen mukaisesti.
siinä vaiheessa, kun päätät katsoa tarkkaan, dynaaminen koodin suoritus on vastuussa kahdenlaisista RCE-pohjaisista hyökkäyksistä; välittömistä ja kiertoteistä.
suora
hallinnoidessaan kuvaa suorasta uniikista tribuuttitoteutuksesta hyökkääjä tajuaa, että heidän palautteensa käytettäisiin koodin tuottamiseen.
epäsuora
poikkeavalla tavalla se on huolissaan voimakkaasta koodikaudesta asiakkaan syötteiden kanssa. Asiakkaan syöte on tyypillisesti vähintään yhden kerroksen alainen. Osa kerrokset saattavat olla vastuussa muuttaa panoksen ennen kuin se päätyy dynaaminen koodi Ikä. Lisäksi dynaaminen koodi ikä voi olla myöhempi vaikutus eikä välitöntä hyödyntämistä info. Tämä on syy se ei ehkä ole selvää asiakkaalle, joka antaa info, joka täyttää kuin rakenne lohko koodi romu, joka olisi toteutettu etäisesti.
autioituminen
autioituminen on uskomaton opas kuvaamaan nykytilannetta. Ei voimakas koodi ikä pitäisi tapahtua aikana deserialization. Jaksoittaisesti tämä on tilanne, joka tapahtuu, kun sarjallistettu objekti sisältää karkeat informaatiokentät tai vastaavanlaiset objektit. Asiat menevät entistä sekavammiksi, kun kirjoituksen aineksia sarjatetaan. Autioituminen sisältäisi myös jonkin verran dynaamista koodi-ikää.
saattaa vaikuttaa siltä, että voimakkaat murteet ovat ainoita, joihin työn sarjallisuus vaikuttaa. Mikäli tämä pitää paikkansa, asia olisi hyvin suppea. Oli miten oli, tämä tilanne on erittäin hyödyllinen myös staattisissa murteissa. Se on vaikeampi saavuttaa kanssa staattinen kieli, mutta se ei todellakaan ole mahdollista.
ajoittain tämän idean toteuttaminen hallinnoi autioitumisen tuottamaa välityskapasiteettia. Ikä objektit runtime ovat vain ajateltavissa dynaaminen koodi Ikä. Tämä merkitsee sitä, että jos tieto, joka hylätään, tehdään etäisesti tehdyllä haulla, pahansuopa hyökkääjä voisi ottaa sen haltuun ja muuttaa sitä. Ympäri suunnitellun koodin bittiä voisi samoin olla perehtynyt temppu voimakas koodi Ikä suorittaa kapasiteettia, kun se on sisällytetty pala deserialization.
Muistiturvallisuus
yksi perussyy RCE: n hyökkäyksiin identifioituu muistiturvallisuuteen tai API-suojaukseen. Muistihyvinvointi viittaa koodin vastatoimiin pääsystä perusmuistiin, joita se ei installoinut. On tavallista olettaa, että muistiturvallisuuden puute johtaisi luvattomaan tietojen käyttöön. Joka tapauksessa, työkehys ja laitteet riippuvat muistin tallentaa suoritettavan koodin. Koodin suorituksella tunnistettavat metatiedot pidetään muistissa. Tämän muistiosan käyttäminen voisi pyytää ACE: tä ja RCE: tä. Mitkä ovat näin osasyyt muistin hyvinvointiin liittyviin asioihin?
tuotteen suunnitelman epätäydellisyydet
epätäydellisyydet tuotekokoonpanossa ovat muistihyvinvoinnin heikkoutta, joka tapahtuu, kun tietyssä piilotetussa osassa on suunnitteluvirhe. Ajoittain, puute osa voisi olla kääntäjä, kääntäjä, virtuaalikone, tai jopa working framework osa tai kirjasto. Tässä luokassa on erilaisia virheitä. Osa sisällyttää;
puskurin ylivuoto
puskurin ylivuoto lisäksi viitataan Puskurin ylivuotoon, voidaan käyttää viittaamaan perus-ja kuuluisaan menetelmään, jota käytetään muistin hyvinvoinnin murtamiseen. Tämä hyökkäys hyödyntää tietyn suunnitelman virhe tai vika pitää yhteyttä muistisolut, jotka sijaitsevat kohti loppuun muistityyny. Tuki saataisiin takaisin aidosta puhelusta julkiseen API: een. Kuitenkin, cradle vain viittaa aloituspaikka uhka käytetään rekisteröimään todellinen muisti sijainnit tietyn artikkelin tai ohjelman laskuri. Niiden erottaminen kehdosta on huomattava tai sitä voidaan epäilemättä spekuloida. Koodin tutkiminen aina kun se on saatavilla tai vianmääritys koko ohjelman suorituksen aikana voi päätyä hyödylliseksi hyökkääjälle, joka tarvitsee tutkia suhteellisia kantoja.
tämä viittaa siihen, että kehtotulva mahdollistaisi jossain määrin poissa olevan muistin muuttamisen. Kehto saattaa löytyä vielä yhden koneen sijaintiavaruudesta ja sitä muutetaan kutsumalla kaukainen API. Tämä päästää etäkoneen muistiin. On olemassa lukuisia lähestymistapoja käyttää tällaista access tehdessään RCE kaksinaamainen. On yleinen epäilys, että olettaen, että on olemassa puskurivuoto heikkous, RCE-pohjainen hyökkäys ei ole pois korteilta. Tämä merkitsee sitä, että koodin haltijat ovat vedonneet nopeasti korjata niiden tuki tulvat ennen RCE hyökkäys tapahtuu.
laitteiden suunnitteluvirheet
muistin hyvinvointihyökkäykset voivat johtua myös laitteiden kokoonpanovirheistä. Ne eivät ole yhtä normaaleja kuin ohjelmointihyökkäykset ja niitä on paljon vaikeampi tunnistaa. Tällainen pahoinpitely vaikuttaa kuitenkin valtavasti puitteisiin.
etäkoodin Arviointihaavoittuvuuden vaikutukset
hyökkääjä, joka voi suorittaa Etäkoodipohjaisen hyökkäyksen järjestelmään onnistuneesti, pystyisi suorittamaan muita komentoja käyttämällä hyväkseen ohjelmointikieltä tai www-palvelinta. Monilla ohjelmointikielillä hyökkääjä voisi komentaa järjestelmää kirjoittamaan, lukemaan tai poistamaan tiedostoja. Voi olla jopa mahdollista muodostaa yhteys eri tietokantoihin hyökätyn järjestelmän kanssa.
miksi hyökkääjät tekevät RCE-hyökkäyksiä?
vaikka ei ole mitään erityistä syytä, miksi hyökkääjät päättävät käyttää RCE-hyväksikäyttöä hyökätäkseen verkkosovellukseen, ei ole mitään erityistä syytä. Se on vain, että jotkut haittaohjelmat löytää se helppo hyödyntää tätä koodia suorittamisen päästä käsiksi järjestelmiin.
Miten Estät Etäkoodin Suoritushyökkäykset?
aluksi tulisi välttää käyttäjän syötettä arvioidun koodin sisällä. Paras vaihtoehto tässä tilanteessa olisi välttää kokonaan evalin kaltaisten toimintojen käyttöä. Sitä pidetään eräänlaisena huonona käytäntönä ja se voidaan helposti välttää. On myös suositeltavaa, että et koskaan anna käyttäjän muokata sisältöä tiedostoja, jotka on mahdollisesti jäsennelty kyseisen ohjelmointikielen. Usein, tämä sisältää kerroit käyttäjä luoda nimi ja tiedostopäätteet, jotka hän haluaa ladata tai luoda web-sovellus.
näitä asioita ei kannata tehdä RCE-pohjaisten hyökkäysten välttämiseksi. Niitä ovat:
- puhdistan käyttäjän syötettä. Usein tämä on vaikea saavuttaa, koska on paljon esiasennettuja ohituksia ja rajoituksia.
- anna käyttäjän päättää tai luoda www-palvelimella käytettävien tiedostojen laajennus tai sisältö. Hänen on käytettävä monia turvallisia käytäntöjä käsitellessään tiedostojen latauksia tai vaarantaessaan elintärkeän tiedon joutumisen vääriin käsiin.
- Siirrä kaikki käyttäjän ohjaamat syötöt järjestelmäkutsuihin tai arviointitoimintoihin
- aktiivisesti mustalle listalle kaikki erityiset merkit tai funktioiden nimet. Tätä tulisi välttää aivan kuten käyttäjän syötteen puhdistamista. Mutta se on uskomattoman vaikea toteuttaa.