mikä on koodin ruiskutus ja miten voit välttää sen

Code Injection haavoittuvuudet on yleinen termi, joka kuvaa haavoittuvuuksia, joita hyökkääjä voi käyttää hyväksi haitallisen koodin ruiskuttamiseen ja suorittamiseen.

tämä haavoittuvuus ilmenee yleensä epäluotettavien tietojen validoinnin puuttumisesta. Sovellukset, jotka arvioivat koodin suoraan vahvistamatta sitä ensin, olisivat alttiita tällaiselle hyökkäykselle.

Code Injection sekoitetaan joskus muihin haavoittuvuuksiin, kuten Ja Command Injection. On huomattava, että Code Injection on erityyppinen haavoittuvuus, jossa hyökkääjä ruiskuttaa koodia käyttöjärjestelmän komentojen sijaan. Tämä tarkoittaa, että koodin syöttämisen haavoittuvuuksien osalta hyökkääjää rajoittaa sovelluksen kielitoiminnot.

hyökkääjän rajoitukset

tällaisia haavoittuvuuksia käytettäessä hyökkääjiä rajoittavat sovelluksen kieli (kuten PHP / Python) – toiminnot. Useimmissa tapauksissa hyökkääjä saattaa kuitenkin pystyä hyödyntämään tulkin toiminnallisuutta siirtyäkseen koodin syöttämisestä käskyn syöttämiseen.

esimerkiksi jos hyökkääjä injektoi PHP-koodin verkkosovellukseen, hyökkääjää rajoittaisi PHP-tulkin tarjoama toiminnallisuus. Kun pistoshyökkäys tapahtuu, PHP-tulkki suorittaa pistetyn koodin ja riippuu tulkin toiminnallisuudesta, hyökkääjä voisi hyödyntää PHP: ssä käytettävissä olevia ohjelman suoritustoimintoja, kuten system() tai shell_exec, suorittaakseen järjestelmäkäskyjä.

Code injection

Code Injection

the impact that a successful attack would have different on moninainen factors such as the language used by the application, the functionality available by application, jne.

useimmissa tapauksissa onnistunut hyökkäys voi kuitenkin täysin vaarantaa sovelluksen ja sen tietojen luottamuksellisuuden, eheyden ja saatavuuden.

esimerkki

Kuvittele verkkosovellus, joka välittää epäluotettavaa tietoa, kuten käyttäjän syötteen PHP eval () – funktiolle. EVAL () – funktio yksinkertaisesti arvioi merkkijonon PHP-koodiksi niin kauan kuin siinä on voimassa oleva PHP-syntaksi ja päättyy puolipisteeseen.

<?php

$backup = “”;

$input = $_GET;

eval (“\$backup = \$input;”);

?>

koska sovellus siirtää käyttäjän syötteen vaaralliseen PHP eval () – funktioon eikä validointia tehdä, sovellus olisi altis koodin Ruiskutushyökkäyksille.

hyökkääjä saattoi hyödyntää tätä heikkoutta syöttämällä syötteen 1; phpinfo (); kuten alla on esitetty:

https://example.com/index.php?arg=1;https://example.com/index.php?arg=1; phpinfo();

Suorita käyttöjärjestelmän järjestelmäkomentoja

haavoittuvuuden varmistamisen jälkeen hyökkääjä voisi jatkaa järjestelmän komentojen suorittamista hyödyntämällä komentojen suorittamisen mahdollistavia tulkin toimintoja. Tällöin käytetään systeemifunktiota ().

https://example.com/index.php?arg=1;https://example.com/index.php?arg=1; järjestelmä (“whoami”);

whoami-komento tulostaa nykyisen käyttäjän käyttäjätunnuksen, kun sitä kutsutaan. Tämä tarkoittaa sitä, että kun sovellus

siirtää käyttäjän syötteen eval () – funktiolle, PHP-tulkki suorittaisi whoami-komennon

taustalla olevassa käyttöjärjestelmässä.

kun hyökkääjä voi suorittaa järjestelmäkäskyjä, hän voi edetä saaden interaktiivisen komentotulkin haavoittuvassa

järjestelmässä ja suorittaa muita hyökkäyksiä muita järjestelmiä vastaan vaarantuneen järjestelmän sisäisessä verkossa.

ehkäisy

käytetystä kielestä riippumatta koodin Pistoshaavoittuvuudet voidaan välttää noudattamalla alla kuvattuja parhaita käytäntöjä

:

  • Vältä epäluotettavien tietojen arviointia

◦ ellei se ole ehdottoman välttämätöntä, älä suoraan arvioi epäluotettavia tietoja käyttämällä vaarallisia toimintoja, kuten eval (). * Pidä kaikkia tietoja epäluotettavina

● huomaa, että epäluotettavat tiedot eivät viittaa ainoastaan HTML-lomakkeiden kautta annettuihin syötteisiin. Käyttäjien kontrolloimia tietoja, kuten evästeitä, HTTP-pyyntöjen otsikoita ja ladattuja tiedostoja, on käsiteltävä epäluotettavina.

  • Validoidut tiedot

◦ vahvista aina käyttäjän syöte palvelinpuolella.

gb jos käyttäjän on tarkoitus lähettää syöte tietyssä muodossa, kuten päivämäärä, postinumero, numerot, Sähköposti

osoite jne., varmista, että käyttäjän syöte vastaa oletettua muotoa.

↑ jos hakemus odottaa arvon olevan rajoitettu määrä vaihtoehtoja, noudata valkoiseen luetteloon perustuvaa lähestymistapaa ja varmista, että

toimitettu syöttö on yksi sallituista vaihtoehdoista.

  • Harden tulkki

◦ esimerkiksi PHP-tulkin toiminnallisuus olisi rajoitettava siihen minimitoiminnallisuuteen, jota sovellus tarvitsee toimiakseen. Tämä voi tehdä hyökkääjien järjestelmän komentojen suorittamisesta paljon vaikeampaa. Esimerkiksi PHP-ohjelman suoritustoiminnot voidaan poistaa käytöstä muokkaamalla php: tä.INI-tiedosto.

  • staattinen analyysi

◦ Suorita staattisia analyysitoimintoja tunnistaaksesi turvattomiin arviointeihin liittyvät haavoittuvuudet.

  • VAPT

◦ suorittaa säännöllisiä haavoittuvuuden arviointi-ja Levinneisyystestejä tällaisten heikkouksien tunnistamiseksi ja lieventämiseksi.

Vastaa

Sähköpostiosoitettasi ei julkaista.