Tādi lasītāji kā jūs palīdz atbalstīt MUO. Veicot pirkumu, izmantojot saites mūsu vietnē, mēs varam nopelnīt filiāles komisiju. Lasīt vairāk.

Viena no drošības speciālista priekšrocībām ir darbs ar daudzām komandām. Pēc audita drošības speciālistiem būs iespēja strādāt ar datu bāzu administratoriem un analītiķiem. Lai lietojumprogramma darbotos pareizi un droši, šīs komandas cenšas novērst drošības ievainojamības, kurām ir kopīgs pamats. Dialogi starp šīm komandām rada dažas problēmas ar īstu IP.

Starpniekserveris un reālie IP jēdzieni

Mūsdienu tīmekļa lietojumprogrammas darbojas vairākos lietotņu serveros un datu bāzu sistēmās. Iedomājieties, ka diviem lietojumprogrammu serveriem ir viens un tas pats avota kods. Lietotāja pieprasījumus var izpildīt jebkurš no šiem serveriem atkarībā no slodzes situācijas. Slodzes līdzsvarošanas mehānisms, kas apstrādā HTTP pieprasījumus lietojumprogrammu serveru priekšā, izlemj, kuru pieprasījumu pārsūtīt uz kuru lietojumprogrammu serveri. Tas rada lielu jautājumu starpprogrammatūras sistēmu administratoriem un programmatūras izstrādātājiem: kāda ir lietotāja īstā IP adrese?

Starpniekserveri ir atbildīgi par datu pārsūtīšanu starp divām sistēmām. Slodzes līdzsvarotājs ir mehānisms, kas ir atbildīgs par starpniekserveri. Citiem vārdiem sakot, tikai viena sistēma sazinās gan ar lietotāju, gan ar lietojumprogrammu serveri. Runājot par tīkla trafiku, tīmekļa A vai tīmekļa B serveri vienmēr sazinās ar slodzes balansētāja IP adresi. To pašu var teikt par lietotājiem. Drošības profesionāļiem slodzes balansētāji rada nopietnas problēmas uz laiku balstītos SQL injekcijas uzbrukumos. Bet šeit galvenā uzmanība tiek pievērsta IP viltošanai.

X-Forwarded-For un IP attiecības

Apsveriet attiecības starp X-Forwarded-For, izstrādātāju un starpprogrammatūru. Piemēram, pieņemsim, ka lietojumprogrammas izstrādātāja uzdevums ir reģistrēt visas darbības, piemēram, lietotāju nepareizas paroles mēģinājumus, ar viņu IP adresēm. Sākumā izstrādātājs noteiks lietotāja IP adresi, kad HTTP pieprasījums tiks izpildīts ar iespēju, ko nodrošina viņa izmantotā programmēšanas valoda, un mēģinās turpināt izmantot šos datus pieteikumu.

Tā kā tā IP adrese tiks fiksēta visā izstrādes procesā, tā vienmēr redzēs vienu un to pašu adresi testu laikā, jo parasti lietotāju datori korporatīvie tīkli strādā ar statisku IP izmantojot MAC adresi. Vienība veiks dažus pieņemšanas testus; tomēr ar tiem būs problēmas. Pārbaudes vienība pārsūtīs šo problēmu programmatūras izstrādātājam.

Šajā posmā izstrādātājs izstrādes vidē var ierakstīt kontrolieri un redzēt HTTP pieprasījumu, kas tiek nosūtīts uz lietojumprogrammu neapstrādātā veidā, jo visiem ir viena un tā pati IP adrese. Tā rezultātā tiks strādāts ar X-Forwarded-For.

Galvenes informācija ar nosaukumu X-Forwarded-For tiks nosūtīts uz lietojumprogrammu serveri. Šajā posmā programmatūras izstrādātājs redzēs savu IP adresi, kuru viņi kontrolē ar ipconfig, nevis žurnālos redzamo slodzes balansētāju. Daudzi programmētāji domā, ka viņi var atrisināt šo problēmu, izmantojot šādu koda bloku:

funkcijusaņemt IP adresi() {
$ipKeys = masīvs(
"HTTP_CLIENT_IP",
"HTTP_X_FORWARDED_FOR",
"HTTP_X_FORWARDED",
"HTTP_X_CLUSTER_CLIENT_IP",
"HTTP_FORWARDED_FOR", "HTTP_FORWARDED",
"REMOTE_ADDR"
);
katram ($ipKeys $key) {
ja (masīvs_key_exists($key, $_SERVER) taisnība) {
katram (eksplodēt (',', $_SERVER[$key]) $ip) {
$ip = trim($ip);
ja (validate_ip($ip)) {
atgriezties $ip;
}
}
}
}
atgrieztiesisset($_SERVER["REMOTE_ADDR"])? $_SERVER["REMOTE_ADDR"]: viltus;
}

Ar to nepietiks — izstrādātājam ir jāpārbauda, ​​vai ienākošā vērtība ir derīga IP adrese.

Viss iepriekš minētais piederēja daļai, ko apstrādāja izstrādātājs. Bet, lai lietojumprogramma darbotos pareizi un droši, komandas strādā kopā teorētiski, bet iekšā realitātē, ārkārtējos punktos viens no otra — mēģiniet tikt galā ar drošības ievainojamībām, kurām ir a kopīgs pamats. Tagad mēģiniet aplūkot šo problēmu no personas, kas ir atbildīga par slodzes līdzsvarotāja konfigurāciju, perspektīvas.

Sistēmas administratori varētu domāt, ka izstrādātāji ieraksta tādu informāciju kā X-Forwarded-For, jo HTTP pieprasījumā iekļautajiem datiem nevar uzticēties. Šie administratori bieži pārraida X-Forwarded-For; tomēr tie pārsūta arī tās sistēmas TCP avota adresi, kas nosūtīja pieprasījumu kā otro galvenes vērtību. True-Client-IP struktūra ir labs piemērs tam.

Saliekot visas šīs lietas kopā, divas dažādas vienības vienai un tai pašai problēmai risina dažādus ceļus, ko sauc par klienta IP viltošanu. Rezultāts ir kritiska problēma, kurā IP reģistrēšana un IP balstīta autorizācija nedarbosies.

Kā iespiešanās testos tiek atklāta klienta IP viltošana?

Lielākā daļa iespiešanās pārbaudītāju drošības pārbaudēm izmanto Firefox. Viņi konfigurē Firefox ar vienkāršu papildinājumu X-Forwarded-For: 127.0.0.1 visiem HTTP pieprasījumiem. Tādējādi palielinās iespēja atklāt šādas ievainojamības visos iespiešanās testos. Veicot auditu saskaņā ar OWASP kontrolsaraksts nodrošina šādu ievainojamību pārbaudi. Tomēr, lai noteiktu X-Forwarded-For ievainojamību, lietojumprogrammā ir nepieciešams modulis, kas parāda jūsu IP adresi vai veiktās darbības.

Kā novērst X-Forwarded-For ievainojamību

Organizācijām ir nepieciešams obligāts drošas lietojumprogrammu izstrādes dokuments visām programmatūras komandām un ārpakalpojumu uzņēmumiem. Piemēram, ja jums ir nepieciešama lietotāja IP adrese, uzņēmumam ir iepriekš jāplāno un jāparedz noteikums par galvenes informāciju, ko tas šeit izmantos. Pretējā gadījumā dažādas komandas izstrādās dažādus risinājumus. Ja šādu situāciju nevar atrisināt, tiks izmantotas ārpakalpojumu lietojumprogrammas, kas apgrūtinās pirmkodu mērīšanu. Kopumā uzņēmumi nevēlas iet šādu ceļu.

Bet, lai atrisinātu šo problēmu, varat izmantot šādu F5 noteikumu:

kad HTTP_REQUEST {
HTTP:: galvenes noņemšana X-Forwarded-Priekš
HTTP:: galvenes ievietošana X-Forwarded-Priekš [IP:: attālās_adrese]
}

Tādējādi HTTP pieprasījumā no ārpasaules tiek noņemts lauks X-Forwarded-For. Pēc tam tas pārsūta pieprasījumu, pievienojot tās sistēmas IP adresi, kas tai nosūtīja pieprasījumu. Tādā veidā tiek izveidots uzticams saraksts programmatūrai, kas darbojas saskaņā ar X-Forwarded-For.

Rezumējot, lielākais mērķis šeit ir veikt dažas HTTP pieprasījumu pārbaudes un izveidot uzticamu vidi. Iepriekš minētais koda bloks ir labs piemērs, ko varat izmantot šim nolūkam.

Kiberdrošības ietvari un dokumentācija uzņēmumiem

Vienības, kas šķiet neatkarīgas viena no otras, patiesībā ir viena veseluma daļas. Tāpēc visam ir jāstrādā sistemātiski. Katrai vienībai ir jāpiemēro iepriekš noteiktie noteikumi. Ja šāda darba sistēma netiek pieņemta, var rasties daudzas problēmas, piemēram, X-Forwarded-For ievainojamība. Šim nolūkam viss ir jāapsver iepriekš un jāizmanto pēc iespējas visaptverošāka dokumentācija.

Un katrai šīs lielās sistēmas vienībai ir jāpieņem un jāievieš kiberdrošības sistēmas. Sākuma punktam vajadzētu būt šo sistēmu darbības loģikas izpētei un apguvei.