o le a le deserialization - fa'atinoina o tulafono mamao

E faʻapefea ona avea le Insecure Deserialization ma Remote Code Execution (ma le auala e puʻeina ai aʻo leʻi tuʻufaʻatasia)

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
  • 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.

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:

  1. E ulufale mai le fa'amatalaga e le'i fa'atuatuaina i le polokalama.
  2. O le deserialization saogalemu e toe faia ai mea faitino e aunoa ma ni faʻatapulaʻaina.
  3. O se filifili o masini komepiuta e faʻagaoioia ai galuega faatino o loʻo iai i ni auala e leʻi mafaufauina.
  4. 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.
  • 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.

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

  1. Tuaoi o le faatuatuaga: Aveese na'o le fa'asologa mai punaoa ua fa'amaonia ma fa'amaonia.
  2. 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.

       

  3. Lisi fa'atagaina ma fa'ata'ita'iga: Fa'atapula'a ituaiga o mea faitino e fa'atagaina. Fa'amalosia ni fa'atulagaga JSON.
  4. 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.
  5. 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.

meafaigaluega-sca-polokalame-su'esu'ega-tu'ufa'atasiga
Fa'amuamua, toe fa'aleleia, ma puipui au tulaga lamatia o polokalama faakomepiuta
Maua lau Teugatupe e leai se totogi.
Leai se credit card e manaʻomia.

Puipui lau Atina'eina ma le Tu'uina Atu o Polokalama Faakomepiuta

fa'atasi ai ma le Xygeni Product Suite