weronga tauira taha tūmau - ngoikoretanga ssti - utauta ssti

He Whakamārama mō te Werohanga Tauira taha Tūmau me ngā Tauira Waehere Tuturu

Te Mahi a te Werohanga Tauira Taha-Tūmau i Muri i ngā Whakaaturanga

Ka puta he werohanga tauira taha-tūmau ina whakauruhia tika te tāuru a te kaiwhakamahi ki roto i te miihini tauira, ā, ka arotakehia me te kore he horoi tika, he wehenga rānei. Ka hangaia he ngoikoretanga SSTI e āhei ai te kaiwhakaeke ki te werohanga i ngā kawenga SSTI kua hangaia motuhaketia (hei tauira, {{7*7}} i roto i te Jinja2), ka arotakehia e te miihini, ka taea ai ngā mea katoa mai i te whakaaturanga raraunga ki te whakatinanatanga waehere matapōkere i roto i te horopaki tūmau. Nā te mea ka whakaatuhia e ngā miihini tauira rerekē ngā mea me ngā API rerekē, ka rerekē ngā kawenga SSTI i runga i te tūāpapa engari he rite tonu te mōrearea: ka tukuna e rātou te whakaurunga kore pono kia mawhiti i te rere o te whakaputa e tumanakohia ana, ā, ka whakahaerehia i roto i te wā oma o te tono, ka arahi pea ki te whakatinanatanga waehere mamao katoa, ki te nekehanga taha rānei mēnā ka waiho kia kore e tirohia.

Tauira iti rawa o te ngoikore i roto i te Jinja2

from flask import request, render_template_string @app.route("/hello") def hello():     name = request.args.get("name", "world")     # ❌ Vulnerable: directly rendering user input     return render_template_string("Hello " + name) 

Mena ka tukuna e te kaiwhakamahi ?ingoa={{7*7}}, ka arotakehia e te taupānga, ka whakahokia mai Kia ora 49He ngoikoretanga SSTI pukapuka matua tēnā.

Tauira iti rawa o te ngoikore i roto i te Twig

// ❌ Vulnerable Twig usage $template = $twig->createTemplate("Welcome " . $_GET['user']); echo $template->render([]); 

Ka taea e te kaiwhakaeke te wero i ngā kawenga SSTI pēnei i {{7*7}} hei whakamatau i te whakatinanatanga o te waehere. Te tūponotanga: ka taea e te werohanga māmā te piki ake ki te pānui i ngā kōnae, te whakahaere i ngā whakahau OS, te huri hōhonu atu rānei ki ngā hanganga.

Ngā Mahi a te Ao Tūturu: Ngā Utu SSTI e Whakaoho ana i te Whakahaere Waehere Mamao

Kia puta he ngoikoretanga SSTI, ka ngana ngā kaiwhakaeke ki te neke mai i te pāngarau whakamātautau-o-te-ariā ki te pāngarau katoa RCEHe rerekē te whakahaere a ngā miihini tauira rerekē i ngā kawenga.

Ngā utauta Jinja2

  • {{7*7}} → te whakahaerenga taunga
  • {{config.items()}} → ngā turuturu o ngā whirihoranga tūmau.
  • {{ ”.__class__.__mro__[2].__subclasses__() }} → ara ki te RCE

Ngā kawenga tere

  • #tautuhinga($x=”7″)${x} → te karo werohanga
  • #tautuhinga($a=$class.tirotiro(“java.lang.WāOma”) → urunga tika i te wā whakahaere

Ngā utauta manga

  • {{7*7}} → tātaitanga
  • {{app.request.server.all}} → ngā taurangi taiao
  • {{_self.env.registerUndefinedFilterCallback(‘system’)}} → te whakatinanatanga o te waehere

E whakaatu ana ēnei kawenga SSTI i te āhua o te ngoikore ōrite i roto i ngā miihini rerekē e arahi ana ki ngā momo rerekētanga. te whakamahi i ngā ara, engari he morearea tonu rātou.

Te wāhi e huna ai te Werohanga Tauira taha tūmau CI/CD-Ngā Taupānga Ārahi

Ehara i te mea he mōrearea taupānga tukutuku anake te werohanga tauira taha tūmau; ka puta mai i roto i hou CI/CD pipelines rawa. Ko ngā wāhi huna noa ko:

  • Ngā tūtohi potae i roto i a Kubernetes, ka whakaatuhia ngā uara tauira i roto i te hihiri
  • Kauira Īmēra e hono ana i ngā tāuru e whakahaerehia ana e te kaiwhakamahi
  • Dashboards te wāhi e werohia ai ngā aho patai, ngā raraunga whirihora rānei ki roto i ngā tauira
  • Ngā tuhinga DevOps e whakaputa ana i te HTML/Markdown mā te whakamahi i ngā miihini tauira.

tauira:

# ❌ Insecure Helm values with user input configMap:   appMessage: "{{ .Values.message }}" 

If.Uara.karere mai i te tāuru kore whakawhirinaki, ka whakauruhia he werohanga tauira taha-tūmau ki roto i tō whakatinanatanga pipeline ake.

Te ārai i te SSTI mā te whakamahi i ngā Tauira Tauira Haumaru me te Tātaritanga Pūmau

Ko te whakaiti i ngā ngoikoretanga o te SSTI me whai tauira waehere pai ake me te kimi wawe.

Ngā tauira haumaru

  • ❌ Kaua e whakamahia aho_tauira_whakaatu ranei ōrite
  • ✅ Whakamahia ngā kōnae tauira kua tautuhia i mua, ā, tukuna ngā taurangi kua horoia
  • ✅ Ngā miihini tauira pouaka onepu ina wātea
  • ✅ Whakamanahia, ā, karohia te whakaurunga a te kaiwhakamahi i mua i te whakaputa

Te whakahaere pihikete kore haumaru me te whakahaere pihikete haumaru (mōrearea whakauru e pā ana)

# ❌ Insecure: session cookie without flags response.set_cookie("session", token) # ✅ Secure: session cookie hardened response.set_cookie("session", token, httponly=True, secure=True, samesite="Strict") 

Rārangi Arowhai Iti mō ngā Kaiwhakawhanake

  • Kaua rawa e whakaatu tika i te tāurunga mata o te kaiwhakamahi
  • Whakamahia ngā tauira pouaka onepu ina tautokona
  • Whakakorehia, whakamanahia hoki ngā taurangi tauira katoa
  • Āta karohia ngā kaiaromatawai tauira ritenga
  • Matawaihia te waehere mō aho_tauira_whakaatu ngā tauira honohono aho rānei

Te tātari pateko ā, ka taea e ngā kaihanga riipene te tohu i ngā hanganga morearea i mua i te taenga ki te mahi whakaputa.

Te whakauru i ngā arowhai SSTI ki roto i te DevSecOps Pipelines

He iti ake te utu, he haumaru ake hoki te hopu wawe i te werohanga tauira taha-tūmau i te whakatika i muri mai. Me whakauru e ngā tīma DevSecOps ngā arowhai ki roto pipelines:

  • Commit hooks: whakakore commitngā mahi mōrearea (aho_tauira_whakaatu)
  • Ngā tātaritanga pūmau: matawaihia te mōrearea werohanga tauira taha tūmau i roto i te waehere tauira
  • Whakamanatanga whakawhirinakitanga: tohu i ngā miihini tauira tawhito me ngā ngoikoretanga SSTI e mōhiotia ana
  • Pipeline kuwaha: ka hanumi te poraka kia pahemo rā anō ngā arowhai SSTI

Mā te whakamahi i te kimi kawenga SSTI hei wāhanga o CI/CD, ka ārai koe i te tukunga o te waehere whakamahi kino.

Kaua e Tukua te Werohanga Tauira taha-tūmau kia Mahue ki roto i tō Puranga

Ka taea e te werohanga tauira taha-tūmau kotahi te whakanui ake i ngā mahi tinihanga pāngarau ({{7*7}}) ki te whakahaere katoa i te waehere mamao. Kāore ngā ngoikoretanga SSTI e puta noa i roto i ngā taupānga tukutuku engari i roto hoki i CI/CD pipelines, ngā tūtohi Helm, me ngā tauira īmēra.

Take take

  • Kaua rawa e whakaatu i te tāurunga mata o te kaiwhakamahi ki roto i ngā tauira
  • Whakamanahia, ā, horoia hoki ngā taurangi hihiri katoa
  • He rerekē ngā kawenga SSTI o ngā miihini rerekē (Jinja2, Velocity, Twig), engari ka taea katoa te whakamahi hei patu.
  • Whakamahia te tātaritanga pūmau me ngā kēti tere-raru i roto i pipelines
  • Arotakehia ngā tauira i roto i tō puranga i ia wā, i ia wā

Nga taputapu penei Xygeni āwhina i ngā tīma ki te kite i te whakamahinga tauira morearea, te aukati i ngā ngoikoretanga SSI, me te whakatinana i ngā mahi haumaru puta noa pipelineme ngā whakawhirinakitanga. I roto i te DevSecOps, he mea nui te whakaaro ki ngā kawenga SSTI hei mōrearea taumata-teitei nā te mea kotahi te werohanga ki roto i tō pipeline ka taea e te taupānga rānei te whakararu i tō taiao katoa.

ngā taputapu-pūmanawa-sca-tātari-hanganga-pūmanawa
Whakaritea ngā āhuatanga matua, whakatikahia, me te tiaki i ngā mōrearea o ō pūmanawa
Tikina tō Pūkete Koreutu.
Kāore he kāri nama e hiahiatia.

Whakapūmau i tō Whakawhanaketanga me te Tukunga Pūmanawa

me te Huinga Hua Xygeni