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

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

Разумевање бафера и системске меморије

Да бисте разумели шта је напад прекорачења бафера и како функционише, морате да знате шта је бафер и како функционише меморија рачунара.

Меморија стека и гомиле су две главне карактеристике меморије рачунара. То су структуре података које се користе за доделу меморије. Иако су слични, стек и хеап меморија се разликују на више начина.

Стек, који користи концепт Ласт-ин, Фирст-оут ​​(ЛИФО), користи се у РАМ-у (меморији са случајним приступом) за привремено чува извршавања програма, док хеап додељује меморију користећи динамичку алокацију глобалној Променљиве. Али једина ствар која им је заједничка је тампон.

instagram viewer

Шта је бафер?

Бафер је област меморије која се користи за складиштење података, највероватније у РАМ-у рачунара, док се премешта са једне локације на другу. Ови подаци су обично програми које треба извршити. Бафери се чувају у стеку или хрпи. Они оптимизују извршење података.

Шта је преливање бафера?

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

Сада, у меморији рачунара, одмах иза бафера или простора бафера је повратна адреса. Ова повратна адреса се заправо зове проширени показивач инструкција (ЕИП). Његова функција је да усмери рачунар на одређени програм када се попуни. Када бафер има више података него што може да задржи и када се препуни, он се прелива у повратну адресу.

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

Шта је напад прекорачења бафера и како функционише?

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

Нападач чак може да напише неке податке који садрже злонамерни код и да изазову преливање бафера. ЕИП се затим пише да преусмери систем назад на злонамерни код и покреће се. Тада хакер преузима контролу над системом.

Постоји пет главних корака у нападима прекорачења бафера:

  1. Спикинг
  2. Фуззинг
  3. Проналажење офсета
  4. Замена ЕИП или повратне адресе
  5. Искоришћавање рањивости

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

Које су врсте напада прекорачења бафера?

Постоје два главна типа напада прекорачења бафера: напади засновани на стеку и напади засновани на хрпи.

1. Напади прекорачења бафера засновани на стеку

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

2. Напади прекорачења бафера засновани на хепу

Ова врста прекорачења стека није уобичајена, јер је тешко имплементирати и искористити. Јавља се када се меморија додељена програму препуни. У јануару 2021. Гугл је открио преливање бафера засновано на хрпи рањивост у В8 компоненти Цхроме-а.

Како можете спречити нападе прекорачења бафера?

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

1. Коришћење заштите времена извршавања ОС-а

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

2. Коришћење безбедних програмских језика

Програмски језици као што су Ц и Ц++ не имплементирају проверу граница низа током извршавања јер је потребан додатни код да провери сваки програм уписан у систем и успорава га. Због тога су подложнији нападима прекорачења бафера. Боље је користити безбедније језике као што су Ц#, Јава и Питхон јер имају мањи ризик од напада прекорачења бафера.

3. Користите насумични распоред распореда адресног простора (АСЛР)

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

4. Обезбедите строге безбедносне политике

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

Одржавање безбедности је кључно за борбу против напада прекорачења бафера

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

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