Terraform Security
Taarifa Msingi
HashiCorp Terraform ni chombo cha infrastructure as code kinachokuwezesha kufafanua rasilimali za wingu na za ndani katika faili za usanidi zinazoweza kusomwa na binadamu ambazo unaweza kuzitolea toleo, kutumia tena, na kushiriki. Unaweza kisha kutumia mchakato thabiti kutoa na kusimamia miundombinu yako yote kwa njia yake ya maisha. Terraform inaweza kusimamia vipengele vya kiwango cha chini kama vile kompyuta, uhifadhi, na rasilimali za mtandao, pamoja na vipengele vya kiwango cha juu kama vile kuingia kwenye DNS na huduma za SaaS.
Terraform Inafanyaje Kazi?
Terraform inaunda na kusimamia rasilimali kwenye majukwaa ya wingu na huduma zingine kupitia interfaces zao za programu (APIs). Watoa huduma huwezesha Terraform kufanya kazi na karibu kila jukwaa au huduma na API inayopatikana.
HashiCorp na jamii ya Terraform tayari wameandika zaidi ya watoa huduma 1700 kusimamia aina tofauti maelfu ya rasilimali na huduma, na idadi hii inaendelea kuongezeka. Unaweza kupata watoa huduma wote wanaopatikana hadharani kwenye Usajili wa Terraform, ikiwa ni pamoja na Amazon Web Services (AWS), Azure, Google Cloud Platform (GCP), Kubernetes, Helm, GitHub, Splunk, DataDog, na mengi zaidi.
Mchakato msingi wa Terraform unajumuisha hatua tatu:
Andika: Unafafanua rasilimali, ambazo zinaweza kuwa kwenye watoa huduma na huduma nyingi za wingu. Kwa mfano, unaweza kuunda usanidi wa kupeleka programu kwenye mashine za vitu vya kibinafsi katika mtandao wa Virtual Private Cloud (VPC) na vikundi vya usalama na balansa ya mzigo.
Panga: Terraform inaunda mpango wa utekelezaji unaoelezea miundombinu itakayoundwa, kusasishwa, au kuharibiwa kulingana na miundombinu iliyopo na usanidi wako.
Tumia: Kwa idhini, Terraform hutekeleza shughuli zilizopendekezwa kwa mpangilio sahihi, kuheshimu mitegemeo yoyote ya rasilimali. Kwa mfano, ikiwa unasasisha mali ya VPC na kubadilisha idadi ya mashine za vitu katika VPC hiyo, Terraform itaunda upya VPC kabla ya kupanua mashine za vitu.
Maabara ya Terraform
Tuweke terraform kwenye kompyuta yako.
Hapa una mwongozo na hapa una njia bora ya kupakua terraform.
RCE katika Terraform
Terraform haina jukwaa linalofunua ukurasa wa wavuti au huduma ya mtandao tunayoweza kuchambua, kwa hivyo, njia pekee ya kudhoofisha terraform ni kuweza kuongeza/kurekebisha faili za usanidi wa terraform.
Hata hivyo, terraform ni sehemu nyeti sana ya kudhoofishwa kwa sababu itakuwa na upatikanaji wa haki za kipekee kwa maeneo tofauti ili iweze kufanya kazi vizuri.
Njia kuu kwa mshambuliaji kuweza kudhoofisha mfumo ambapo terraform inaendeshwa ni kudhoofisha hazina inayohifadhi mizizi ya faili za usanidi wa terraform, kwa sababu kwa wakati fulani zitakuwa zinatafsiriwa.
Kwa kweli, kuna suluhisho huko ambalo hutekeleza moja kwa moja mpango/utekelezaji wa terraform baada ya PR kuundwa, kama vile Atlantis:
Atlantis SecurityIkiwa unaweza kudhoofisha faili ya terraform kuna njia tofauti unaweza kufanya RCE wakati mtu anatekeleza terraform plan
au terraform apply
.
Terraform plan
Terraform plan ni amri inayotumiwa zaidi katika terraform na waendelezaji/suluhisho wanaotumia terraform wanaita mara kwa mara, kwa hivyo njia rahisi ya kupata RCE ni kuhakikisha unachafua faili ya usanidi wa terraform ambayo itatekeleza amri za kiholela katika terraform plan
.
Kutumia mtoa huduma wa nje
Terraform inatoa mtoa huduma wa nje
ambao hutoa njia ya kuingiliana kati ya Terraform na programu za nje. Unaweza kutumia chanzo cha data cha external
kutekeleza nambari ya kiholela wakati wa plan
.
Kuingiza katika faili ya usanidi wa terraform kitu kama hiki kutatekeleza rev shell wakati wa kutekeleza terraform plan
:
Kutumia mtoa huduma ya desturi
Mshambuliaji anaweza kutuma mtoa huduma ya desturi kwenye Usajili wa Terraform na kisha kuongeza kwenye nambari ya Terraform kwenye tawi la kipengele (mfano kutoka hapa):
Unaweza kupata msimbo wa rev shell katika https://github.com/carlospolop/terraform_external_module_rev_shell/tree/main/modules
Katika rasilimali ya nje, tumia kipengele cha ref kuficha msimbo wa rev shell wa terraform katika tawi ndani ya repo, kitu kama:
git@github.com:carlospolop/terraform_external_module_rev_shell//modules?ref=b401d2b
Kutumia Terraform
Terraform apply itatekelezwa ili kutumia mabadiliko yote, unaweza pia kuitumia vibaya kupata RCE kwa kuingiza faili ya Terraform yenye nia mbaya local-exec.
Unahitaji tu kuhakikisha kuwa mzigo kama huu unamalizika katika faili ya main.tf
:
Fuata mapendekezo kutoka kwa mbinu iliyopita kutekeleza shambulizi hili kwa njia ya kujificha zaidi kwa kutumia vyanzo vya nje.
Kupitisha Siri
Unaweza kuwa na thamani za siri zinazotumiwa na terraform zilizomwagika kwa kukimbia terraform apply
kwa kuongeza kitu kama hiki kwenye faili ya terraform:
Kutumia Vibaya Faili za Hali ya Terraform
Kwa kesi ambapo una ufikiaji wa kuandika kwenye faili za hali ya terraform lakini huwezi kubadilisha nambari ya terraform, utafiti huu unatoa chaguo zingine za kuvuna faida kutoka kwenye faili:
Kufuta rasilimali
Kuna njia 2 za kuharibu rasilimali:
Ingiza rasilimali yenye jina la nasibu kwenye faili ya hali ikielekeza kwenye rasilimali halisi ya kuharibu
Kwa sababu terraform itaona kwamba rasilimali haipaswi kuwepo, itaiondoa (ikifuata kitambulisho cha rasilimali halisi kilichotajwa). Mfano kutoka ukurasa uliopita:
Badilisha rasilimali ya kufuta kwa njia ambayo haiwezekani kusasisha (hivyo itafutwa na kujengwa upya)
Kwa kifaa cha EC2, kubadilisha aina ya kifaa cha kutosha kufanya terraform ifute na kuijenga upya.
RCE
Pia niwezekana kuunda mtoa huduma ya desturi na kubadilisha moja ya watoaji katika faili ya hali ya terraform kwa ile yenye nia mbaya au kuongeza rasilimali tupu na mtoa huduma yenye nia mbaya. Mfano kutoka kwa utafiti wa awali:
Badilisha mtoa huduma aliye kwenye orodha nyeusi
Katika kesi unakutana na hali ambapo hashicorp/external
ilikuwa kwenye orodha nyeusi, unaweza kutekeleza upya mtoa huduma wa external
kwa kufuata hatua zifuatazo. Tafadhali kumbuka: Tunatumia toleo la mtoa huduma wa external uliochapishwa na https://registry.terraform.io/providers/nazarewk/external/latest. Unaweza pia kuchapisha toleo lako au kutekeleza upya.
Kisha unaweza kutumia external
kama kawaida.
Zana za Ukaguzi
tfsec: tfsec hutumia uchambuzi wa kistatiki wa nambari yako ya terraform kutambua upangaji wa kimakosa unaoweza kutokea.
terascan: Terrascan ni kianalizi cha nambari ya kistatiki kwa Miundombinu kama Nambari.
Marejeo
Last updated