Шта је Фузинг?

Шта је фуззинг

Увод: Шта је Фузинг?

2014. кинески хакери хакован у Цоммунити Хеалтх Системс, профитни амерички болнички ланац, и украо податке о 4.5 милиона пацијената. Хакери су искористили грешку под називом Хеартблеед која је откривена у ОпенССЛ библиотеци криптографије неколико месеци пре хаковања.

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

Овде долази 'фуззинг'.

Шта је фузинг напад?

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

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

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

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

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

 

Врсте фуззера

Фузери се могу класификовати на основу неких карактеристика:

  1. Циљеви напада
  2. Метода стварања фузза
  3. Свест о структури улаза
  4. Свест о структури програма

1. Циљеви напада

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

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

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

2. Метода стварања фузза

Фузери се такође могу класификовати на основу начина на који креирају податке за фузију. Историјски гледано, фуззери су стварали фузз генерисањем насумичних података од нуле. Тако је то у почетку урадио професор Бартон Милер, иницијатор ове технике. Овај тип фуззера се назива а фуззер заснован на генерацији.

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

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

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

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

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

3. Свест о структури улаза

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


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

4. Свест о структури програма

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

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

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

Популарни алати за фузинг

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

Лимитатионс Оф Фуззинг

Иако је Фузинг заиста корисна техника тестирања оловком, није без својих грешака. Неки од ових су:

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

 

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

Zakljucak

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

Па шта чекате? 

Почните фуззинг данас!

Коболд Леттерс: ХТМЛ-базирани е-маил напади пхисхинг-ом

Коболд Леттерс: ХТМЛ-базирани е-маил напади пхисхинг-ом

Коболд Леттерс: ХТМЛ-базирани пхисхинг напади е-поштом Лута Сецурити је 31. марта 2024. објавила чланак који баца светло на нови софистицирани пхисхинг вектор, Коболд Леттерс.

Прочитајте више »