Једна од предности бити специјалиста за безбедност је рад са бројним тимовима. Након ревизије, стручњаци за безбедност ће имати прилику да раде са администраторима базе података и аналитичарима. Да би апликација радила исправно и безбедно, ови тимови покушавају да се изборе са безбедносним рањивостима које имају заједничку основу. Дијалози између ових тимова покрећу нека питања са стварним ИП-ом.
Прокси и прави ИП концепти
Данашње веб апликације раде на више сервера апликација и система база података. Замислите да два сервера апликација деле исти изворни код. Захтеви корисника су спремни да их испуни било који од ових сервера у зависности од ситуације оптерећења. Механизам за балансирање оптерећења, који рукује ХТТП захтевима испред сервера апликација, одлучује који захтев ће проследити ком серверу апликација. Ово поставља велико питање за администраторе система средњег софтвера и програмере софтвера: која је права ИП адреса корисника?
Прокси су задужени за пренос података између два система. Балансатор оптерећења је механизам задужен за прокси. Другим речима, само један систем комуницира и са корисником и са сервером апликација. Што се тиче мрежног саобраћаја, веб А или веб Б сервери увек комуницирају са ИП адресом балансера оптерећења. Исто се може рећи и за кориснике. За професионалце у области безбедности, балансери оптерећења изазивају озбиљне проблеме у временским нападима СКЛ ињекције. Али главни фокус овде је ИП лажирање.
Кс-Форвардед-Фор и ИП Релатионсхип
Размотрите однос између Кс-Форвардед-Фор, програмера и међувера. На пример, рецимо да је задатак програмера апликације да забележи све активности, као што су покушаји нетачне лозинке од стране корисника, са њиховим ИП адресама. У почетку, програмер ће одредити ИП адресу корисника када се испуни ХТТП захтев са могућност коју пружа програмски језик који користи и покушаће да настави да користи ове податке у апликација.
Пошто ће његова ИП адреса бити фиксирана током процеса развоја, увек ће видети исту адресу током тестова, јер генерално, кориснички рачунари у корпоративне мреже раде са статичком ИП-ом преко МАЦ адресе. Јединица ће извршити неке тестове прихватања; међутим, биће проблема са овим. Јединица за тестирање ће проследити овај проблем програмеру софтвера.
У овој фази, програмер може да напише контролер у развојном окружењу и види ХТТП захтев који се преноси апликацији у сировом облику, пошто сви имају исту ИП адресу. Ово ће резултирати радом са Кс-Форвардед-Фор.
Информације заглавља под називом Кс-Форвардед-Фор ће бити послат на сервер апликација. У овој фази, програмер софтвера ће видети своју ИП адресу, коју контролише помоћу ипцонфиг-а, а не балансер оптерећења који виде у евиденцији. Многи програмери мисле да могу да реше овај проблем са блоком кода попут овог:
функцијагетИПаддресс() {
$ипКеис = низ(
'ХТТП_ЦЛИЕНТ_ИП',
'ХТТП_Кс_ФОРВАРДЕД_ФОР',
'ХТТП_Кс_ФОРВАРДЕД',
'ХТТП_Кс_ЦЛУСТЕР_ЦЛИЕНТ_ИП',
'ХТТП_ФОРВАРДЕД_ФОР', 'ХТТП_ФОРВАРДЕД',
'РЕМОТЕ_АДДР'
);
за сваки ($ипКеис као $кеи) {
ако (арраи_кеи_екистс($кеи, $_СЕРВЕР) истина) {
за сваки (експлодирати (',', $_СЕРВЕР[$кеи]) као $ип) {
$ип = трим($ип);
ако (валидате_ип($ип)) {
повратак $ип;
}
}
}
}
повратакиссет($_СЕРВЕР['РЕМОТЕ_АДДР'])? $_СЕРВЕР['РЕМОТЕ_АДДР']: лажно;
}
Ово неће бити довољно – програмер треба да провери да ли је долазна вредност важећа ИП адреса.
Све горе наведено је припадало делу којим управља програмер. Али да би апликација радила исправно и безбедно, тимови – раде заједно у теорији, али у стварности, у екстремним тачкама једна од друге—покушајте да се носите са безбедносним рањивостима које имају а заједничка основа. Сада покушајте да сагледате проблем из перспективе особе одговорне за конфигурацију балансера оптерећења.
Администратори система могу помислити да програмери бележе информације као што је Кс-Форвардед-Фор јер се подацима у ХТТП захтеву не може веровати. Ти администратори често преносе Кс-Форвардед-Фор; међутим, они такође преносе ТЦП изворну адресу система који је послао захтев као другу вредност заглавља. Структура Труе-Цлиент-ИП је добар пример за то.
Када све ове ствари спојите, две различите јединице прате различите путање за исти проблем, познат као лажирање ИП адреса клијента. Резултат је критичан проблем у којем ИП евидентирање и ауторизација заснована на ИП-у неће радити.
Како се открива лажна ИП адреса клијента у тестовима пенетрације?
Већина тестера пенетрације користи Фирефок за своје безбедносне провере. Они конфигуришу Фирефок са једноставним додатком, Кс-Форвардед-Фор: 127.0.0.1 за све ХТТП захтеве. И тако се повећава могућност откривања таквих рањивости у свим тестовима пенетрације. Обављање ревизије према ОВАСП контролна листа осигурава да проверите такве рањивости. Међутим, да бисте открили рањивост Кс-Форвардед-Фор, потребан вам је модул у апликацији који приказује вашу ИП адресу или предузете радње.
Како решити рањивост Кс-Форвардед-Фор
Организацијама је потребан обавезан документ за развој безбедних апликација за све софтверске тимове и компаније за спољне послове. На пример, ако вам је потребна корисничка ИП адреса, компанија би требало да планира унапред и да постави правило о информацијама заглавља које ће овде користити. У супротном, различити тимови ће произвести различита решења. Ако се таква ситуација не може решити, на сцену ће доћи спољне апликације, што ће отежати мерење изворних кодова. Генерално, компаније не желе да иду таквим путем.
Али да бисте решили овај проблем, можете користити следеће Ф5 правило:
када ХТТП_РЕКУЕСТ {
ХТТП:: заглавље уклони Кс-Прослеђено-За
ХТТП:: уметнути заглавље Кс-Прослеђено-За [ИП:: ремоте_аддр]
}
Ово уклања поље Кс-Форвардед-Фор у ХТТП захтеву из спољашњег света. Затим преноси захтев додавањем ИП адресе система који му је послао захтев. На тај начин се креира поуздана листа за софтвер који делује у складу са Кс-Форвардед-Фор.
Да резимирамо, највећи циљ овде је извршити неке провере ХТТП захтева и створити поуздано окружење. Горњи блок кода је добар пример који можете користити за ово.
Оквири и документација за сајбер безбедност за предузећа
Јединице које изгледају као независне једна од друге су заправо делови целине. Зато све мора да функционише систематски. Унапред одређена правила морају се применити између сваке јединице. Ако се такав радни систем не усвоји, могу се појавити многи проблеми као што је рањивост Кс-Форвардед-Фор. За ово треба све унапред размотрити и користити што је могуће свеобухватнију документацију.
И свака јединица у овом великом систему треба да усвоји и примени оквире сајбер безбедности. Ваша полазна тачка би требало да буде истраживање и учење логике рада ових оквира.