Како спречити рањивости убризгавања ОС команди?

Убацивање ОС команде је озбиљна претња по безбедност.

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

Неки примери напада убризгавањем укључују СКЛ ињекцију, скриптовање на више локација, убризгавање команде и ЛДАП & КСПатх ињекцију.

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

Овај чланак ће говорити о нападу ињекцијом команде и методама за његово спречавање.

Хајде да почнемо!

Шта је убризгавање ОС команде?

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

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

Како то функционише?

Извор слике: Валларм

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

Ево како то обично функционише:

  • Прво, нападач идентификује циљни систем који је рањив на ињекцију команде. Ово може бити веб апликација, самостални програм или било који други систем који дозвољава извршавање команди љуске на основу корисничког уноса.
  • Нападач прави злонамерно оптерећење које садржи команде љуске које жели да изврши на циљном систему. Ово корисно оптерећење је обично дизајнирано да заобиђе било какву валидацију улаза коју циљни систем може имати.
  • Затим нападач шаље злонамерни терет циљном систему или преко поља обрасца, параметра УРЛ-а или неког другог механизма за унос.
  • Циљни систем узима кориснички унос и прослеђује га љусци за извршење.
  • Претпоставимо да систем не проверава исправност или не дезинфикује унос. У том случају, те команде љуске се извршавају на циљном систему, а нападач може приступити осетљивим информацијама, мењати и брисати датотеке или добити неовлашћен приступ циљном систему.
  Придружите се Аппле-овом Бета програму и прибавите се Маверицкс Буилдовима

Пример командне ињекције

Замислите веб апликацију која узима корисничко име хоста или ИП адресу и пингује га да провери његову доступност. Апликација је подложна убризгавању команди ако не успе да правилно потврди и дезинфикује кориснички унос.

Нападач може искористити ову рањивост уношењем корисног оптерећења.

127.0.0.1 ; cat /etc/passwd

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

Прва команда, „пинг 127.0.0.1“ ће бити извршена како се очекује и вратиће резултате команде пинг.

Међутим, тачка и зарез (;) иза које следи „цат /етц/пассвд“ омогућава нападачу да убаци додатну команду која ће прочитати садржај датотеке /етц/пассвд, која садржи осетљиве информације о корисницима система и њиховим лозинкама.

Зато се командна ињекција сматра озбиљном безбедносном претњом.

Утицај рањивости ињекције команде

Убризгавање команде је озбиљна безбедносна рањивост која може имати озбиљне последице и за систем и за његове кориснике. Неки од њих су:

Крађа података

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

Извршење произвољног кода

Нападачи могу да изврше произвољан код на рањивом систему, што им омогућава да преузму потпуну контролу над системом и врше злонамерне активности као што су инсталирање малвера или креирање нових корисничких налога.

Компромис система

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

Оштећење угледа

Такође може негативно утицати на репутацију погођене организације или веб странице.

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

  Како пронаћи нагиб у Гоогле табелама

Како открити рањивост убризгавања ОС команде?

Постоји неколико начина за откривање рањивости убризгавања команди ОС-а, укључујући:

Код

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

Пенетрација тестирање

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

Алати за скенирање

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

Анализа дневника

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

Важно је напоменути да једноставно откривање рањивости није довољно. Да бисте заштитили апликацију и њене кориснике, требало би да одмах одредите приоритет и позабавите се рањивостима које су пронађене.

Како спречити нападе убризгавањем команди ОС?

Напади убризгавањем команди ОС могу се спречити праћењем ових најбољих пракси:

Валидација уноса и санирање

Потврдите цео унос корисника да бисте били сигурни да не садржи злонамерне корисне податке.

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

  8 најбољих ЦММС софтвера у 2022

Користите параметризоване команде

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

Избегавајте извршавање команди љуске са високим привилегијама

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

Имплементирајте обраду грешака и изузетака

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

Спроведите редовно безбедносно тестирање

Редовне безбедносне ревизије и тестирање могу да идентификују рањивости у вашем коду и системима.

Закључак

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

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

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