Читаоци попут вас помажу у подршци МУО. Када обавите куповину користећи везе на нашем сајту, можда ћемо зарадити провизију за партнере. Опширније.

Ињекциони напади су један од најчешћих начина на који хакери нападају системе јер им омогућава да лако покрећу многе команде и кодове. Ињекција ОС команде је један такав напад ињекцијом којег морате бити свесни. Ово искоришћава рањивост коју администратори система, базе података и веб апликација треба да схвате веома озбиљно.

Дакле, шта је напад убризгавањем команде ОС?

Дефиниција убризгавања ОС команде

Ињекција ОС команде омогућава злонамерном нападачу да покрене било коју команду коју жели искоришћавањем рањивог оперативног система, програма, апликације, базе података или додатка. То се дешава када апликације не успеју да правилно провере и дезинфикују параметре које користе приликом позивања функција љуске као што је систем() или екец() да изврши системске команде.

Да бисте боље разумели откривање и искоришћавање убризгавања ОС команде, корисно је испитати ово питање у три главне категорије.

1. Директно убризгавање команде

Размотрите ово из перспективе нападача. Сајбер нападач открива да апликација покреће одређену системску команду; уносе злонамерну команду као део очекиваних аргумената. Апликација затим извршава оригиналну команду праћену злонамерном.

Нападач користи различите приступе да пронађе такву рањивост. Најлакши метод за борбу против овога је да оперативни систем буде увек ажуриран; то можете учинити у сарадњи са компетентним ИТ тимом. Требало би да избегавате све апликације и програме који могу да изазову системске рањивости јер нападач може директно да убаци код, а штета је непредвидљива.

2. Индиректна командна ињекција

У случају индиректне ињекције команде, нападач не уноси директно код или команду у систем. За то користе рањиву апликацију или програм у систему. Рањивост ствара мост између нападача и оперативног система. Користећи ову комуникацију, нападач има за циљ да покрене злонамерне кодове и команде на мети.

Нападач извршава серију тестова да би идентификовао ову рањивост и открива да софтвер користи податке из спољног извора, као што је датотека или променљива окружења, за позивање системске команде. Нападач затим модификује садржај спољног извора, тако да сада садржи злонамерну команду. Ово се затим извршава заједно са упутствима оригиналне апликације.

Главна разлика између директног и индиректног убризгавања команде је у томе што нападач користи апликацију за комуникацију са оперативним системом. Али не постоји стварна разлика између штете која два облика ињекције могу да нанесу, тако да се оба треба позабавити. Зато треба да се уверите да су програми у вашој мрежи поуздани и неопходни. Не држите апликације у које немате поверења на свом уређају.

3. Слепа командна ињекција

Друга врста убризгавања ОС команди је слепа ињекција команде. То значи да апликација не враћа никакав излаз из команде у ХТТП одговору. Нападач користи различите технике као што су временско кашњење и рутирање излаза да би искористио ову рањивост.

Замислите да тражите веб локацију, а вредност „/?сеарцх=ид“ у УРЛ адреси се мења са сваком претрагом. Вредност ИД-а овде може бити корисничка страница, адреса фотографије производа или било која страница на сајту. Нападач може добити различите резултате променом ид вредности. Тешко је то урадити ручно, али постоје алати као што је Бурп Суите за ово. Касније, нападач открива необичност на страници: може бити враћена ид вредност која, иако није показала никакве резултате, Одговор сајта је био 200, што указује да је све у реду. У таквом случају, нападач би могао да употреби слепу командну ињекцију.

Посебно је корисна техника као што је временско одлагање. Пошто ће страница која се отвори бити празна, нећете добити никакав одговор, али ћете можда и даље моћи да се прикупите информације о томе шта је ускладиштено у бази података на основу временских кашњења које учитавају страницу само ако је одређени знак поклон. Ово је превише дуготрајно да би био ручни процес, али много алата може аутоматизовати напад.

Пример сценарија напада

Хајде да размотримо све горе наведено кроз пример. Замислите да имате апликацију за куповину која омогућава кориснику да види да ли су производи на залихама. Хајде да користимо УРЛ као што је доле да бисмо приступили свим овим информацијама:

екампле_унсафе_сторе.цом/стоцкСтатус? продуцтИД=245&стореИД=

Замислите да проследите ИД-ове производа и складишта као аргументе команди љуске, као што је „стоцкстат.пл 245 38“, пошто би апликација морала да тражи старе записе. Ако програмер не предузме ништа против ињекција команде, нападач може послати унос да изврши жељену команду:

& одјек тхис_а_хармфул_цомманд &

Ако овај унос уђе у параметар продуцтИД, команда коју извршава апликација биће:

стоцкстат.пл & одјек тхис_а_хармфул_цомманд & 38

Команда ецхо је корисна метода за откривање ињекција команде, као и за осигурање да се дати стринг појављује у излазу. Знак "&" је а сепаратор команди љуске, тако да се извршавају три одвојене команде, једна за другом. Као резултат, излаз враћен кориснику ће бити:

Грешка -ИД производа није пронађен
тхис_а_хармфул_цомманд
38: команда није пронађен

Овде је датотека "стоцкстат.пл" извршила команду без аргумената које је очекивала и стога је вратила поруку о грешци. Затим је ехо команда коју је убризгао нападач покренула и нападач је видео израз који је унео на екрану. Оригинални аргумент, "38", покренут је као команда која изазива грешку.

Како се заштитити од ињекција ОС команди

Иако је командна ињекција моћан и штетан вектор напада, постоје неки трикови да се то избегне. Образложење иза напада убризгавањем команди ОС је извршавање одређених команди оперативног система помоћу апликације. Морате спречити да се ово деси. Постоје нека питања која треба размотрити:

  1. Морате спречити било кога ко има приступ апликацији да може да покрене код.
  2. Требало би да спречите било кога ко има приступ апликацији да шаље захтеве серверу са синтаксичким изразима.
  3. Морате да шифрујете фразе које захтева свако ко има приступ.

Хајде да прођемо кроз сваку ставку једну по једну. Добро решење за први проблем је да користите метод беле листе да спречи било кога ко дође до слоја апликације да покрене одређене кодове или захтеве. Свако кога не идентификујете неће моћи да покрене код.

Решење за друго је да не прихватите неке текстуалне изразе који се користе у командама. Корисник може да унесе само нумеричке вредности. Примените ово заједно са методом беле листе и имаћете много безбеднији систем.

Трећа ставка се односи на шифровање синтаксичких параметара као што су унети знак и размаци. Као резултат тога, метода беле листе, синтаксичка провера улаза и шифровање улаза требало би да вас заштите од убризгавања команди ОС-а.

Напади ињекцијом се развијају сваки дан

Постоји много метода убризгавања са различитим техникама напада, као што су ОС команда, СКЛ, ССИ и КСПатх. Није лако покушати спречити сваког од њих. Имајте на уму да се сви ови напади развијају сваки дан и да искориштавају мале рањивости које су програмери превидјели. Зато је од виталног значаја да увек будете у току и пажљиво пратите тренутна дешавања у свету сајбер безбедности.