Tuseme mwenyeji wa lango amedukuliwa wakati cheti chake bado ni halali. Kila kanuni iliyodhibiti ni kurasa gani mgeni anaweza kuomba inabaki kutumika, na hakuna kanuni hizi inayozuia muunganisho ambao mshambuliaji sasa anafungua kutoka mwenyeji huyo kuelekea subneti ya hifadhidata. Pengo hili ndilo sababu ya kuwa sehemu ya kuingia ya wavuti pekee si dai lile lile kama mtandao uliogawanywa. Madai mawili yanahitaji mapitio tofauti, kutoka sehemu tofauti za kuanzia, kabla ya lolote kati yao kuweza kufanywa kwa uaminifu.

Madai mawili, na ni moja tu kati yao linaanza kwa mgeni

Dai la kwanza linahusu mtu: mgeni mwenye kivinjari na kikao halali anaweza kufungua programu moja na hakuna kingine. Sehemu ya kuingia ya wavuti pekee inajibu dai hilo vizuri, kwa sababu mgeni anapokea ukurasa badala ya njia. Jibu hilo linafaa kuwekwa, na pia ni dai pekee ambalo michoro nyingi hurekodi.

Dai la pili linahusu sehemu: inadhaniwa kuwa lango, au mchakato wa programu ulio nyuma yake, uko chini ya udhibiti wa mtu mwingine. Kutokana na dhana hiyo swali linabadilika kutoka ni URL gani zinazoruhusiwa hadi ni maeneo na utambulisho gani mchakato bado unaweza kufikia.

Madai mawili yana wamiliki tofauti, yanazalisha ushahidi tofauti na yanashindwa kwa kujitegemea. Timu ya utambulisho inaweza kuonyesha la kwanza kwa jaribio la kikao; la pili linahitaji sera ya mtandao, mapitio ya akaunti ya huduma na udhibiti wa mwenyeji. Muundo unaorekodi nusu ya mgeni tu unaonekana kamili kwenye slaidi ya mapitio na mwembamba wakati wa tukio, kwa sababu udhibiti unaojaliza baada ya udukuzi haukuwa kamwe ndani ya wigo. Taja dai ambalo kila udhibiti unaunga mkono, la sivyo kanuni moja ya lango itahesabiwa kwa yote mawili.

Huduma ya matumizi iliyofanyiwa kazi, na njia mbili inazopoteza

Chukua huduma ya matumizi: lango la umma kwenye 10.60.4.10 huthibitisha wafanyakazi na hupeleka maombi yaliyoidhinishwa kwa msikilizaji wa programu kwenye bandari 8443, na programu hiyo hufikia msikilizaji mmoja wa PostgreSQL kwenye 10.60.4.20:5432 kama jukumu la expenses_app. Wafanyakazi hawapaswi kupata ufikiaji wa ndani wa jumla. Katika utendaji wa kawaida muundo hutoa kwa kweli kiingilio maalum cha programu bila kuchapisha msikilizaji wa hifadhidata popote. Anwani ni muhimu, kwa sababu kila ukaguzi wa baadaye katika makala hii unazitaja.

Sasa ondoa lango kutoka kwenye kundi linaloaminika. Ni maeneo gani 10.60.4.10 inaweza kufikia mara mchakato wake unapokuwa wa mshambuliaji? Kichujio cha URL kilichoweka kikomo kwa wageni hakisemi chochote kuhusu muunganisho ambao mwenyeji wa lango hufungua kuelekea subneti ya hifadhidata.

Badala yake ondoa mchakato wa programu, na mamlaka hubadilika umbo: jukumu la expenses_app, huduma ambazo seva hiyo inaweza kufikia, na faili ambazo akaunti hiyo inaweza kusoma. Katika hali zote mbili mlango wa mbele unaweza kubaki wa wavuti pekee wakati mpaka wa backend haupo. Kwa hiyo lebo kwenye mlango wa mbele si jibu la swali lolote kati ya mawili.

Panga mamlaka ambayo kila upande unayo kwa kweli

Mkataba ulioandikwa kama ruhusa zinazokusudiwa huwa na tabia ya kurudia muundo kwako. Uandike kama mamlaka yanayomilikiwa, ukaguzi unaokanusha ziada na mmiliki wa ukaguzi huo, na kila safu inakuwa inaweza kujaribiwa. Jedwali hili ni pendekezo kwa mfano ulio juu, si dai la bidhaa:

ComponentAuthority it actually holdsCheck that proves the denialOwner of the check
Identity providerIssues assertions and session cookies, and holds no network path of its ownA request to the application URL without a session is redirected to the login pageIdentity team
Public gateway hostTCP reachability to whatever its routing table and egress rules permitAn egress rule drops 10.60.4.20:5432 and the probe reports the port filteredNetwork platform team
Application roleSQL privileges granted to expenses_app inside the expenses databaseA privilege query shows no ownership or create right on any other schemaApplication team
Database listenerAccepts connections only from the source ranges named in its host-based rulesA connection from an unlisted address is refused before authenticationDatabase administrator
Management pathAdministrative access reserved for patching, monitoring and recoveryA staff workstation cannot reach the administrative port or jump through itPlatform owner

Umiliki hufuata mamlaka. Timu ya utambulisho inamiliki madai, timu ya jukwaa la mtandao inamiliki njia, timu ya programu inamiliki jukumu la hifadhidata, msimamizi wa hifadhidata anamiliki msikilizaji na kanuni zake zenye msingi wa mwenyeji, na mmiliki wa jukwaa anamiliki tabaka la usimamizi. Kukanusha bila mmiliki ni sentensi katika hati, si udhibiti.

Mgawanyiko pia huzuia kuhesabu mara mbili. Kizuizi cha bandari hakiwezi kueleza upendeleo wa jedwali, na jukumu la hifadhidata haliwezi kuzuia mwenyeji kufungua soketi kuelekea subneti isiyohusiana.

Orodhesha kile lango linaweza kufikia badala ya kudai

Dai la mpaka ni bora kadiri orodha iliyo nyuma yake ilivyo. Kwenye mwenyeji wa lango, amri tatu zinashughulikia uchaguzi wa njia, jaribio la moja kwa moja na sera ya kutoka:

ip route get 10.60.4.20
nc -zv 10.60.4.20 5432
sudo nft list chain inet filter output

Soma matokeo kwa mpangilio huo. Njia inasema kama 10.60.4.20 inachaguliwa kutoka kwa mwenyeji huyo; jaribio linasema kama msikilizaji anajibu; orodha ya kanuni inaonyesha kama sera inasimamisha pakiti au kama hakukuwa na kitu kamwe kwenye njia yake.

Rudia orodha kutoka kwa mwenyeji wa programu. Kutoka hapo upande wa hifadhidata ni swali moja linaloendeshwa kama jukumu la programu:

psql -h 10.60.4.20 -U expenses_app -d expenses -c 'select rolname, rolsuper, rolcreatedb from pg_roles'

Muunganisho wenye mafanikio chini ya jukumu lisiloweza kusoma schema nyingine ni tokeo tofauti na muunganisho wenye mafanikio chini ya jukumu la mmiliki. La pili pekee ni ugunduzi.

Rekodi kukanusha, kisha weka tarehe kwenye mapitio

Kukubali huandikwa kama matokeo si nia: kikao cha mfanyakazi hakiwezi kufikia msikilizaji, mwenyeji wa lango hawezi kufikia subneti isiyohusiana, na jukumu la programu haliwezi kuunda hifadhidata. Kila kimoja ni ukaguzi tofauti wenye mmiliki aliyetajwa na tarehe.

Weka ufuatiliaji, viraka na urejeshaji vifikike kupitia njia ya usimamizi iliyoundwa kwa ajili yao. Mpaka unaozuia pia mmiliki wake unakuwa kukatika, na jibu la kwanza la kawaida kwa kukatika huko ni kupanua kanuni tena. Mwongozo wa mzingo wa CISA unaomba ufikiaji wa kuingia na kutoka uwekewe kikomo kwa bandari na itifaki zinazostahili, ikiwa ni pamoja na trafiki kati ya mitandao ya ndani, ambayo ni mwelekeo unaoanzishwa na backend ambao michoro mingi huiacha.

Weka tarehe kwenye mapitio na taja mmiliki wake. Endesha tena orodha na swali la upendeleo baada ya mabadiliko yoyote kwenye taswira ya lango, jedwali la njia au jukumu la programu.

Makala zinazohusiana