le Commit Na Tatala ai se Faitotoʻa i Tua
Ua tuufaatasia se foliga fou e taulima ai mea ua lafoina e tagata faaaoga. Ua pasia uma suega, ae i ni nai vaiaso mulimuli ane, ua faaalia i se pentest e mafai e tagata osofaʻi ona faatinoina poloaiga i luga o le server; o le taunuuga o le le saogalemu o le deserialization o loo natia i totonu o le code. O le va mai le deserialization i le faatinoga o le code mamao e mafai ona matua laitiiti lava, aemaise lava pe a faatuatuaina faamatalaga faasolosolo mai afifi tatala punaoa po o auaunaga i totonu e aunoa ma se faamaoniga.
O le ā le Deserialization i le Code, Aiseā e Lamatia ai, ma Po o Fea e Nanā ai
I le faaupuga a le au atina'e, o le a le deserialization? O le faagasologa lea o le aveina o fa'amaumauga fa'atulagaina, JSON, XML, fa'atulagaga binary, po'o ni mea fa'asolosolo fa'apitoa i gagana, ma toe fa'aliliuina i ni mea i le manatua.
Na o ia lava, fa'ate'aina o le faasologa e le afaina ma e taatele, mo se faataitaiga:
- JavaFaitauina o mea faitino ma ObjectInputStream
- Python: Utaina o faʻamatalaga ma pickle.load
- Node.js: Iloiloina o le JSON ma JSON.parse
E aliali mai le lamatiaga pe a faʻaaogaina le deserialization i faʻamaumauga e le faʻatuatuaina e aunoa ma se faʻamaoniga. E mafai e se tagata osofaʻi ona fatuina ni mea e ulufale ai e faʻaosofia ai se filifili o masini, o auala o loʻo iai nei e faʻaaogaina i ni auala e leʻi mafaufauina, lea e mafai ona oʻo atu ai i le faʻatinoina o le code mamao.
Le saogalemu fa'ate'aina o le faasologa e masani ona maua i:
- Afifi tatala punaoa faatasi ai ma tulaga faaletonu e le saogalemu
- Faʻailoga faʻapitoa lea e manatu o le fa'asologa o fa'amatalaga e fa'atuatuaina
- APIs isi vaega o loʻo toe faʻafoʻi mai mea faʻasolosolo e aunoa ma se faʻamaoniga
- Fausia ni mea taua pei o le:
- Java .ser faila o lo'o i ai mea ua uma ona fa'asologaina.
- Python .pkl faila fa'ata'ita'iga i le faagasologa o galuega a le masini e a'oa'o ai.
- Mea fa'atulagaina fa'asolosolo ua fa'apipi'iina i totonu o ata Docker po'o koneteina fa'alauiloa
- Java .ser faila o lo'o i ai mea ua uma ona fa'asologaina.
- Su'ega su'ega pei o le:
- O faʻamaumauga tuai o suʻega faʻasolosolo na kopiina mai ata o le gaosiga.
- Uta fa'asolosolo ua sii mai mai fale teu oloa i fafo mo su'ega o le fa'atinoga po'o le regression.
- O faʻamaumauga tuai o suʻega faʻasolosolo na kopiina mai ata o le gaosiga.
E mafai ona fa'aofi nei faila i totonu o se fale teu oloa ma utaina otometi i le taimi o su'ega po'o fa'atinoina, ma mafua ai ona le saogalemu. fa'ate'aina o le faasologa in CI/CD pipelines a'o le'i o'o le code i le gaosiga.
Mai le Le Saogalemu o le Fa'ate'aina o le Fa'ailoga i le Fa'atinoina o Tulafono Mamao: O Le Ala o le Osofa'iga
O le filifili o le faʻaaogaina mo le le saogalemu o le deserialization e masani ona mulimuli i se tasi o nei mamanu:
- E ulufale mai le fa'amatalaga e le'i fa'atuatuaina i le polokalama.
- O le deserialization saogalemu e toe faia ai mea faitino e aunoa ma ni faʻatapulaʻaina.
- O se filifili o masini komepiuta e faʻagaoioia ai galuega faatino o loʻo iai i ni auala e leʻi mafaufauina.
- E fa'ateleina e le tagata osofa'i avanoa ma fa'atino ai le fa'atinoina o tulafono mamao.
Eseese:
- E fa'aaogaina e filifili o masini Java ia faletusi tuai e pei o le Apache Commons.
- Python .pkl utaina o le faʻataʻitaʻiga i mea leaga ua faʻapipiʻiina.
- Fa'avasegaina o le Node.js JSON ma iloiloga() po'o fa'aulufalega fa'aonaponei.
Fuga:
Auala e Iloa ai le Insecure Deserialization a'o le'i Fa'atasia
O le pu'eina o le deserialization e le saogalemu a'o le'i tu'ufa'atasia code e sili atu le taugofie nai lo le fa'aleleia pe a uma ona fa'atinoina. O le tu'ufa'atasiga o le au'ili'iliga otometi ma le su'ega fa'atino e sili ona aoga:
- Su'ega o le Saogalemu o Talosaga Tumau (SAST):
- Fa'atulaga masini su'esu'e e iloa ai API lamatia e pei o ObjectInputStream, pickle.load, ma YAML.load e aunoa ma se uta saogalemu.
- Siaki uma le code punaoa ma fausia/fa'ata'ita'i mea faitino mo mea e le saogalemu fa'ate'aina o le faasologa mamanu.
- Faaali sa'o lava i'uga i totonu pull requests ina ia mafai e le au atiaʻe ona faʻaleleia na tulaga aʻo leʻi tuʻufaʻatasia.
- Fa'atulaga masini su'esu'e e iloa ai API lamatia e pei o ObjectInputStream, pickle.load, ma YAML.load e aunoa ma se uta saogalemu.
- CI/CD sosoʻoga:
Fa'ata'ita'iga fa'asologa o galuega:
- E tu'ufa'atasia le poloka i luga o fa'amaumauga taua o le deserialization e le saogalemu e puipuia ai le code le saogalemu mai le o'o atu i lala gaosiga.
- Su'ega Iunite ma Fa'aulufalega Fa'aleaga Fa'ata'ita'i:
- faia avega e le afaina, pulea e faʻataʻitaʻi ai mea masani o osofaʻiga faʻasolosolo.
- Fa'ata'ita'i pe fa'apefea ona taulimaina e le talosaga; e tatau ona teena, fa'amamā, pe fa'amaumau le mea na ulufale mai nai lo le fa'agasoloina ma le tauaso.
- Fa'aofi nei su'ega i le masini otometi pipeline o lea latou te faʻatinoina ai galuega uma a le PR, ma vave ona maua ai amioga le saogalemu o le faʻaumatia o faʻamatalaga.
- Ia mautinoa o uta o su'ega e le mafai ona fa'atinoina ma saogalemu e teu i totonu o le fale teu oloa, ma taula'i tonu lava i le fa'aogaina o le iloa.
- faia avega e le afaina, pulea e faʻataʻitaʻi ai mea masani o osofaʻiga faʻasolosolo.
O lenei auala fa'alava e tu'ufa'atasia ai le su'esu'ega otometi ma su'ega a le tagata atia'e, ma fa'amautinoa ai o lo'o fa'ailoaina ma ave'esea auala e le saogalemu o le deserialization a'o le'i avea ma vaivaiga o le fa'atinoina o tulafono mamao.
Fuafuaga Puipuiga mo Tagata Atiina'e: Taofia o le Deserialization mai le Avea ma le Fa'atinoina o Tulafono Mamao
- Tuaoi o le faatuatuaga: Aveese na'o le fa'asologa mai punaoa ua fa'amaonia ma fa'amaonia.
- API Saogalemu:
- Java: Puipui faletusi ma le faʻamaoniga.
- Python: Fa'aaoga json.loads() i luga pickle.loads() i mea e mafai.
- Node.js: Aloese mai iloiloga() po'o le fa'atinoina o tulafono fa'a-dynamique.
- Java: Puipui faletusi ma le faʻamaoniga.
- Lisi fa'atagaina ma fa'ata'ita'iga: Fa'atapula'a ituaiga o mea faitino e fa'atagaina. Fa'amalosia ni fa'atulagaga JSON.
- Tausiga o le soifua maloloina o le tagata e faalagolago i ai: Mata'ituina CVEs o lo'o ta'ua ai le deserialization po'o le fa'atinoina o tulafono mamao.
- Tulafono iloiloga: Faʻaopopo fa'ate'aina o le faasologa siaki saogalemu i faʻataʻitaʻiga iloiloga PR.
Fa'amatalaga o meafaigaluega: Meafaigaluega e pei o Xygeni su'esu'e le code ma mea e fa'alagolago i ai mo le deserialization e le saogalemu a'o le'i tu'ufa'atasia, fa'ailoa vaega e maualuga le lamatia ina ia mafai e le au atia'e ona vave fa'aleleia.
Faʻataʻitaʻiga o Mamanu o le Iloa i Gagana eseese (Fa'ailoga Saogalemu)
O faʻataʻitaʻiga uma o loʻo i lalo o ni pseudo-code ua faʻamamaina e faʻaalia ai mamanu iloa, ae le o ni faʻaaogaina lelei:
Java – Iloaina o le fa'aaogaina o le API e le saogalemu:
Python - Aloese mai le deserialization e le saogalemu:
Node.js – Taofia le fa'atinoina o tulafono fa'atino:
Fa'aogaina otometi o le iloa i le DevSecOps Pipelines: Pu'eina o le Deserialization A'o le'i o'o i le Gaosiga
O le otometiina o le iloa o le deserialization e le saogalemu e faʻamautinoa ai ua maua ma faaleleia vaivaiga a'o le'i o'o atu i le fa'atinoina o tulafono mamao i le gaosiga.
Pipeline Iloiloga
- momoʻe SAST i luga o le code punaoa, faila fa'atulagaina, ma fausia mea taua i taimi uma commit.
- Iloa mamanu o le deserialization e le saogalemu i totonu o le code o talosaga ma faalagolagoga.
Su'esu'ega o Mea Fa'aonaponei
- Scan .ser, .pkl, ma isi faila fa'asolosolo mo mamanu e le saogalemu a'o le'i fa'atinoina pe fa'atinoina fo'i su'ega.
Pull Request polokaina
- E tuufaatasia poloka pe afai e iloa se deserialization e le saogalemu.
- Faaali atu ni manatu faaalia e mafai ona faatino i PRs e faanatinati ai le toe faaleleia.
Fa'amalosia o Su'ega a le Iunite
- Aofia ai suega iunite faatasi ai ma fa'aulufalega leaga fa'ata'ita'i i totonu o le CI/CD pipeline
- E fausia le faaletonu pe afai e faagasolo e le talosaga faʻamatalaga faʻasolosolo e le saogalemu nai lo le teena.
Aloese mai Fa'amatalaga Sese e aunoa ma le Fa'avaivaia o Tulafono
- Aua le fa'agata tulafono e iloa ai ina ia "fa'alologo" ai fa'ailoilo; e mafai ona fa'atagaina ai le fa'aletonu moni o le saogalemu e pasia e aunoa ma le iloa.
- Faaaoga se lisi pa'epa'e fa'atonutonuina (lisi-fa'atagaina) mo mamanu saogalemu ua iloa po'o fa'alagolago.
- Mana'omia le fa'amaoniga o le saogalemu a'o le'i fa'amaonia mea e ulufale i le lisi pa'epa'e.
- Tausi le lisi paʻepaʻe i lalo o le pulega o lomiga ma toe iloilo i lea taimi ma lea taimi e faʻamautinoa ai o loʻo talafeagai ma saogalemu tuusaunoaga uma.
Matafaioi a Xygeni
- Fa'atasi sa'o i totonu CI/CD pipelines e suʻesuʻe ai le source code ma fausia ni mea faitino.
- Iloa ai mamanu o le deserialization e le saogalemu ma faalagolago lamatia i le amataga o le olaga.
- Lagolagoina le lisi pa'epa'e fa'avae i luga o faiga fa'avae fa'atasi ai ma le iloiloga fa'amalosia o le saogalemu, fa'apaleniina le sa'o o le iloa ma le gaosiga a le au atia'e.
Tumau i Luma o le Fa'atinoina o Tulafono Mamao e ala i le Deserialization Saogalemu
E mafai ona lē matauina le deserialization e lē saogalemu se’ia oo ina avea ma auala tuusa’o i le fa’atinoina o le code mamao. O le puipuia o lea mea e mana’omia ai:
- Malamalama i le mea e ta'ua o le deserialization ma le auala e mafai ona fa'aaogaina sese ai.
- Fa'apipi'iina o le iloa otometi i le fa'agasologa o galuega atia'e.
- Iloiloina soo mea e faalagolago i ai, fausia ni meafaitino, ma faamatalaga faasolosolo e faaaoga i suega.
Matafaioi aoga a Xygeni i lenei faiga:
- Siakiina o le Source Code: Fa'ailoa mai mamanu o le deserialization e le saogalemu i le tele o gagana a'o le'i tu'ufa'atasia le code.
- Su'esu'ega o Mea Fa'atino ma le Fa'alagolago: Iloa faila fa'asolosolo lamatia (.ser, .pkl, embedded config) ma vaega a isi vaega e iai ni vaivaiga ua iloa.
- Pulega Fa'avae i Faiga Fa'avae: Lagolagoina se lisi fa'atagaina fa'atonutonuina fa'atasi ai ma le fa'amaoniga saogalemu, ma ia mautinoa o tuusaunoaga talafeagai e le fa'atupuina ai ni lamatiaga moni.
- Manatu Fa'aalia a le Tagata Atia'e i le Tala'aga: Fa'ailoa le nofoaga tonu ma le mafua'aga o le le saogalemu o le deserialization i totonu pull requests, e mafai ai e le au atia'e ona vave fa'aleleia fa'afitauli ma fa'amaonia le fa'aitiitia o le fa'afitauli e ala i le toe su'esu'eina.
I le tu'ufa'atasia sa'o o siaki fa'apenei i totonu CI/CD, e mafai e 'au ona pu'e ma fa'aleleia le le saogalemu deserialization a'o le'i iai se avanoa e fa'atupula'ia ai i le fa'atinoina o tulafono mamao i le gaosiga.




