Terraform Security
Last updated
Last updated
Jifunze na fanya mazoezi ya AWS Hacking: Jifunze na fanya mazoezi ya GCP Hacking:
HashiCorp Terraform ni chombo cha miundombinu kama msimbo ambacho kinakuruhusu kufafanua rasilimali za wingu na za ndani katika faili za usanidi zinazoweza kusomwa na binadamu ambazo unaweza kuziandika upya, kuzitumia tena, na kuzishiriki. Kisha unaweza kutumia mtiririko wa kazi unaofanana kusambaza na kusimamia miundombinu yako yote wakati wa mzunguko wake wa maisha. Terraform inaweza kusimamia vipengele vya chini kama vile kompyuta, uhifadhi, na rasilimali za mtandao, pamoja na vipengele vya juu kama vile entries za DNS na vipengele vya SaaS.
Terraform inaunda na kusimamia rasilimali kwenye majukwaa ya wingu na huduma nyingine kupitia interfaces zao za programu za maombi (APIs). Watoa huduma wanaruhusu Terraform kufanya kazi na karibu jukwaa au huduma yoyote yenye API inayopatikana.
Mtiririko wa msingi wa Terraform unajumuisha hatua tatu:
Andika: Unafafanua rasilimali, ambazo zinaweza kuwa katika watoa huduma na huduma nyingi za wingu. Kwa mfano, unaweza kuunda usanidi wa kusambaza programu kwenye mashine za virtual katika mtandao wa Virtual Private Cloud (VPC) pamoja na vikundi vya usalama na balancer ya mzigo.
Panga: Terraform inaunda mpango wa utekelezaji unaofafanua miundombinu itakayoundwa, kusasishwa, au kuharibiwa kulingana na miundombinu iliyopo na usanidi wako.
Tumia: Kwa idhini, Terraform inatekeleza operesheni zilizopendekezwa kwa mpangilio sahihi, ikiheshimu utegemezi wowote wa rasilimali. Kwa mfano, ikiwa unasasisha mali za VPC na kubadilisha idadi ya mashine za virtual katika VPC hiyo, Terraform itaunda upya VPC kabla ya kupanua mashine za virtual.
Sakinisha terraform kwenye kompyuta yako.
Terraform haina jukwaa linalofichua ukurasa wa wavuti au huduma ya mtandao tunaweza kuhesabu, kwa hivyo, njia pekee ya kuathiri terraform ni kuweza kuongeza/kubadilisha faili za usanidi wa terraform.
Hata hivyo, terraform ni kipengele nyeti sana kuathiri kwa sababu itakuwa na ufikiaji wa kijasiri kwa maeneo tofauti ili iweze kufanya kazi ipasavyo.
Njia kuu kwa mshambuliaji kuweza kuathiri mfumo ambapo terraform inafanya kazi ni kuathiri hifadhi inayohifadhi usanidi wa terraform, kwa sababu kwa wakati fulani wata fasiriwa.
Kwa kweli, kuna suluhisho huko nje ambazo zinafanya mpango wa terraform/tumia kiotomatiki baada ya PR kuundwa, kama Atlantis:
Ikiwa unaweza kuathiri faili ya terraform kuna njia tofauti unaweza kufanya RCE wakati mtu anatekeleza terraform plan
au terraform apply
.
Mpango wa Terraform ni amri inayotumika zaidi katika terraform na waendelezaji/mifumo inayotumia terraform huipigia simu kila wakati, hivyo njia rahisi ya kupata RCE ni kuhakikisha unachafua faili ya usanidi wa terraform ambayo itatekeleza amri zisizo za kawaida katika terraform plan
.
Kutumia mtoa huduma wa nje
Kuingiza katika faili ya usanidi wa terraform kitu kama ifuatavyo kutaendesha shell ya rev wakati wa kutekeleza terraform plan
:
Kutumia mtoa huduma maalum
Mtoa huduma anapakuliwa katika init
na atatekeleza msimbo mbaya wakati plan
inatekelezwa
Kutumia rejeleo la nje
Chaguzi zote zilizotajwa ni muhimu lakini si za siri sana (ya pili ni ya siri zaidi lakini ngumu zaidi kuliko ya kwanza). Unaweza kufanya shambulio hili hata kwa njia ya siri zaidi, kwa kufuata mapendekezo haya:
Badala ya kuongeza rev shell moja kwa moja kwenye faili la terraform, unaweza kupakia rasilimali ya nje ambayo ina rev shell:
Katika rasilimali ya nje, tumia kipengele cha ref kuficha kodi ya rev shell ya terraform katika tawi ndani ya repo, kitu kama: git@github.com:carlospolop/terraform_external_module_rev_shell//modules?ref=b401d2b
Fuata mapendekezo kutoka kwa mbinu ya awali ili kufanikisha shambulio hili kwa njia ya siri zaidi kwa kutumia marejeleo ya nje.
Unaweza kuwa na thamani za siri zinazotumiwa na terraform zikiwa zimeandikwa ukikimbia terraform apply
kwa kuongeza kwenye faili ya terraform kitu kama:
Kuna njia 2 za kuharibu rasilimali:
Weka rasilimali yenye jina la nasibu kwenye faili la hali ikielekeza kwenye rasilimali halisi ya kuharibu
Kwa sababu terraform itaona kwamba rasilimali hiyo haipaswi kuwepo, itaiharibu (ikifuatilia kitambulisho halisi cha rasilimali kilichotajwa). Mfano kutoka ukurasa wa awali:
Badilisha rasilimali ili kufuta kwa njia ambayo haiwezekani kuisasisha (hivyo itafutwa na kuundwa upya)
Kwa mfano la EC2, kubadilisha aina ya mfano ni ya kutosha kufanya terraform ifute na kuunda upya.
Ikiwa unakutana na hali ambapo hashicorp/external
imeorodheshwa kwenye orodha ya madoa, unaweza kuitekeleza upya mtoa huduma external
kwa kufanya yafuatayo. Kumbuka: Tunatumia fork ya mtoa huduma wa external iliyochapishwa na https://registry.terraform.io/providers/nazarewk/external/latest. Unaweza kuchapisha fork yako mwenyewe au utekelezaji upya pia.
Kisha unaweza kutumia external
kama kawaida.
Snyk inatoa suluhisho kamili la skanning ya Infrastructure as Code (IaC) inayogundua udhaifu na mipangilio isiyo sahihi katika Terraform, CloudFormation, Kubernetes, na mifumo mingine ya IaC.
Features:
Skanning ya wakati halisi kwa ajili ya udhaifu wa usalama na masuala ya kufuata sheria.
Uunganisho na mifumo ya udhibiti wa toleo (GitHub, GitLab, Bitbucket).
Ombi za kurekebisha kiotomatiki.
Ushauri wa kina wa kurekebisha.
Checkov ni chombo cha uchambuzi wa msimbo wa statiki kwa miundombinu kama msimbo (IaC) na pia chombo cha uchambuzi wa muundo wa programu (SCA) kwa picha na pakiti za chanzo wazi.
ufuataji wa sheria: Hakikisha kwamba msimbo ulioanzishwa unafuata viwango vya usalama, viwango vyako vya kawaida
maendeleo yanayoendeshwa na tabia: Tuna BDD kwa karibu kila kitu, kwa nini isiwe kwa IaC?
kabla ya kupeleka: inathibitisha msimbo wako kabla ya kupelekwa
rahisi kuunganisha: inaweza kukimbia katika mchakato wako (au katika vitendo vya git) ili kuhakikisha kwamba upelekezi wote umethibitishwa.
ugawaji wa majukumu: unaweza kuweka majaribio yako katika hazina tofauti ambapo timu tofauti inawajibika.
Kwa bahati mbaya ikiwa msimbo unatumia baadhi ya watoa huduma ambao huna ufikiaji nao huwezi kufanya terraform plan
na kuendesha chombo hiki.
☁️ Inakagua makosa ya usanidi katika watoa huduma wote wakuu (na wengine wadogo)
⛔ Mamia ya sheria zilizojengwa ndani
🪆 Inachanganua moduli (za ndani na za mbali)
➕ Inakadiria maelezo ya HCL pamoja na thamani halisi
↪️ Inakadiria kazi za Terraform mfano concat()
🔗 Inakadiria uhusiano kati ya rasilimali za Terraform
🧰 Inafaa na Terraform CDK
🙅 Inatumia (na kuimarisha) sera za Rego zilizofafanuliwa na mtumiaji
📃 Inasaidia muundo mbalimbali wa matokeo: nzuri (ya default), JSON, SARIF, CSV, CheckStyle, JUnit, maandiko, Gif.
🛠️ Inaweza kubadilishwa (kupitia bendera za CLI na/au faili ya usanidi)
⚡ Haraka sana, ina uwezo wa kuchanganua haraka hifadhi kubwa
Pata udhaifu wa usalama, masuala ya ufuatiliaji, na makosa ya usanidi wa miundombinu mapema katika mzunguko wa maendeleo wa miundombinu yako kama msimbo na KICS kutoka Checkmarx.
KICS inasimama kwa Kuendelea Infrastructure kama Code Secure, ni chanzo wazi na ni lazima kuwa nacho kwa mradi wowote wa wingu asilia.
Kuchunguza miundombinu kama msimbo kwa makosa ya usanidi bila shida.
Kufuatilia miundombinu ya wingu iliyotolewa kwa mabadiliko ya usanidi yanayoleta mabadiliko ya hali, na inaruhusu kurudi kwenye hali salama.
Kugundua udhaifu wa usalama na ukiukaji wa kufuata sheria.
Kupunguza hatari kabla ya kutoa miundombinu asilia ya wingu.
Inatoa kubadilika kukimbia kwa ndani au kuungana na CI\CD yako.
HashiCorp na jamii ya Terraform tayari wameandika zaidi ya watoa huduma 1700 kusimamia maelfu ya aina tofauti za rasilimali na huduma, na nambari hii inaendelea kukua. Unaweza kupata watoa huduma wote wanaopatikana hadharani kwenye , ikiwa ni pamoja na Amazon Web Services (AWS), Azure, Google Cloud Platform (GCP), Kubernetes, Helm, GitHub, Splunk, DataDog, na mengine mengi.
Hapa una na hapa una .
Terraform inatoa ambayo inatoa njia ya kuunganishwa kati ya Terraform na programu za nje. Unaweza kutumia chanzo cha data external
kuendesha msimbo wowote wakati wa plan
.
Mshambuliaji anaweza kutuma kwenye na kisha kuiongeza kwenye msimbo wa Terraform katika tawi la kipengele ():
Unaweza kupata mfano katika
You can find the rev shell code in
Terraform apply itatekelezwa ili kutekeleza mabadiliko yote, unaweza pia kuitumia vibaya kupata RCE kwa kuingiza faili ya Terraform yenye .
Unahitaji tu kuhakikisha payload fulani kama ifuatavyo inamalizika katika faili ya main.tf
:
Katika hali ambapo una ufikiaji wa kuandika kwenye faili za hali za terraform lakini huwezi kubadilisha msimbo wa terraform, unatoa chaguzi za kuvutia za kunufaika na faili hiyo:
Pia inawezekana na kubadilisha tu mmoja wa watoa huduma katika faili ya hali ya terraform kwa yule mbaya au kuongeza rasilimali tupu na mtoa huduma mbaya. Mfano kutoka kwa utafiti wa awali:
Sign Up: Unda akaunti kwenye .
Inachanganua miundombinu ya wingu iliyotolewa kwa kutumia , , , , , , , , , , , , au na kugundua usalama na makosa ya kufuata sheria kwa kutumia uchambuzi wa msingi wa grafu.
Inafanya ambayo ni uchambuzi wa pakiti za chanzo wazi na picha kwa ajili ya Uhalifu wa Kawaida na Ufunuo (CVEs).
Kutoka kwa : terraform-compliance
ni mfumo wa majaribio mwepesi, unaolenga usalama na ufuatiliaji wa sheria dhidi ya terraform ili kuwezesha uwezo wa majaribio mabaya kwa miundombinu yako kama-msingi wa kanuni.
kubebeka: sakinisha tu kutoka pip
au uendeshe kupitia docker
. Tazama
From the : tfsec inatumia uchambuzi wa statiki wa msimbo wako wa terraform ili kugundua uwezekano wa makosa ya usanidi.
Kutoka kwa : Terrascan ni mchambuzi wa msimbo wa statiki kwa Miundombinu kama Msimbo. Terrascan inakuwezesha:
Jifunze na fanya mazoezi ya AWS Hacking: Jifunze na fanya mazoezi ya GCP Hacking:
Angalia !
Jiunge na 💬 au au tufuatilie kwenye Twitter 🐦 .
Shiriki mbinu za hacking kwa kuwasilisha PRs kwa na repos za github.