Serverless.com Security
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Shirika ni kitengo cha juu zaidi ndani ya mfumo wa Serverless. Kinawakilisha kikundi cha pamoja, kama kampuni, idara, au kitengo chochote kikubwa, ambacho kinajumuisha miradi, timu, na programu nyingi.
Timu ni watumiaji wenye ufikiaji ndani ya shirika. Timu husaidia katika kuandaa wanachama kulingana na majukumu. Washiriki
wanaweza kuona na kupeleka programu zilizopo, wakati Wasimamizi
wanaweza kuunda programu mpya na kusimamia mipangilio ya shirika.
Programu ni kundi la kimantiki la huduma zinazohusiana ndani ya Shirika. Inawakilisha programu kamili iliyoundwa na huduma nyingi za serverless zinazofanya kazi pamoja ili kutoa kazi inayofanana.
Huduma ni kipengele cha msingi cha programu ya Serverless. Inawakilisha mradi wako mzima wa serverless, ikijumuisha kazi zote, mipangilio, na rasilimali zinazohitajika. Kawaida inafafanuliwa katika faili ya serverless.yml
, huduma inajumuisha metadata kama jina la huduma, mipangilio ya mtoa huduma, kazi, matukio, rasilimali, plugins, na vigezo vya kawaida.
Hii ni muhtasari wa mafunzo rasmi kutoka kwenye hati:
Unda akaunti ya AWS (Serverless.com inaanza katika miundombinu ya AWS)
Unda akaunti katika serverless.com
Unda programu:
Hii inapaswa kuwa imeunda app inayoitwa tutorialapp
ambayo unaweza kuangalia katika serverless.com na folda inayoitwa Tutorial
yenye faili handler.js
inayoshikilia baadhi ya msimbo wa JS wenye msimbo wa helloworld
na faili serverless.yml
ikitangaza kazi hiyo:
Unda mtoa huduma wa AWS, ukitembea kwenye dashibodi katika https://app.serverless.com/<org name>/settings/providers?providerId=new&provider=aws
.
Ili kutoa serverless.com
ufikiaji wa AWS itahitaji kuendesha stack ya cloudformation ikitumia faili hii ya usanidi (wakati wa kuandika hapa): https://serverless-framework-template.s3.amazonaws.com/roleTemplate.yml
Kiolezo hiki kinaunda jukumu linaloitwa SFRole-<ID>
lenye arn:aws:iam::aws:policy/AdministratorAccess
juu ya akaunti yenye Kitambulisho cha Kuamini kinachoruhusu akaunti ya Serverless.com
ya AWS kufikia jukumu hilo.
Mafunzo yanahitaji kuunda faili createCustomer.js
ambayo kimsingi itaunda kiunganishi kipya cha API kinachoshughulikiwa na faili mpya ya JS na yanahitaji kubadilisha faili serverless.yml
ili kufanya itengeneze meza mpya ya DynamoDB, kufafanua kigezo cha mazingira, jukumu ambalo litakuwa likitumia lambdas zilizotengenezwa.
Tumia serverless deploy
kupeleka
Upelekaji utafanywa kupitia CloudFormation Stack
Kumbuka kwamba lambdas zinapatikana kupitia API gateway na si kupitia URLs za moja kwa moja
Jaribu
Hatua ya awali itachapisha URLs ambapo kazi za lambda za mwisho wa API zimepelekwa
Majukumu ya IAM yenye ruhusa nyingi sana yanaweza kutoa ufikiaji usioidhinishwa kwa rasilimali za wingu, na kusababisha uvujaji wa data au upotoshaji wa rasilimali.
Kanuni ya Haki Ndogo: Panga ruhusa zinazohitajika tu kwa kila kazi.
Tumia Majukumu Tofauti: Differenciate majukumu kulingana na mahitaji ya kazi.
Kuhifadhi taarifa nyeti (mfano, funguo za API, akidi za database) moja kwa moja katika serverless.yml
au msimbo kunaweza kusababisha kufichuliwa ikiwa hifadhi za data zitashambuliwa au ikiwa ufikiaji wa AWS utashambuliwa kwani zitakuwa zinapatikana kutoka kwenye mipangilio ya lambdas.
Mabadiliko ya Mazingira: Ingiza siri wakati wa utendaji bila kuandika kwa nguvu.
Ushirikiano wa Meneja wa Siri: Tumia huduma kama AWS Secrets Manager, Azure Key Vault, au HashiCorp Vault.
Mabadiliko Yaliyosimbwa: Tumia vipengele vya usimbaji vya Serverless Framework kwa data nyeti.
Udhibiti wa Ufikiaji: Punguza ufikiaji wa siri kulingana na majukumu.
Epuka Kurekodi Siri: Hakikisha kwamba siri hazifichuliwi katika kumbukumbu au ujumbe wa makosa.
Mtegemeo wa zamani au usio salama unaweza kuleta udhaifu, wakati usimamizi mbaya wa pembejeo unaweza kusababisha mashambulizi ya kuingiza msimbo.
Usimamizi wa Mtegemeo: Sasisha mara kwa mara mtegemeo na scan kwa udhaifu.
Uthibitishaji wa Pembejeo: Tekeleza uthibitishaji mkali na usafi wa pembejeo zote.
Mapitio ya Msimbo: Fanya mapitio ya kina ili kubaini kasoro za usalama.
Uchambuzi wa Kijamii: Tumia zana kugundua udhaifu katika msingi wa msimbo.
Bila kurekodi na ufuatiliaji sahihi, shughuli mbaya zinaweza kukosa kugunduliwa, kuchelewesha majibu ya tukio.
Kurekodi Kati: Panga kumbukumbu kwa kutumia huduma kama AWS CloudWatch au Datadog.
Washa Kurekodi kwa Kina: Pata taarifa muhimu bila kufichua data nyeti.
Weka Arifa: Sanidi arifa kwa shughuli za kushangaza au tofauti.
Ufuatiliaji wa Mara kwa Mara: Fuata mara kwa mara kumbukumbu na vipimo kwa matukio ya usalama yanayoweza kutokea.
APIs zilizo wazi au zisizo salama zinaweza kutumika kwa ufikiaji usioidhinishwa, mashambulizi ya Denial of Service (DoS), au mashambulizi ya cross-site.
Uthibitishaji na Uidhinishaji: Tekeleza mifumo imara kama OAuth, funguo za API, au JWT.
Kukataza Kiwango na Throttling: Zuia matumizi mabaya kwa kupunguza viwango vya maombi.
Sanidi CORS kwa Usalama: Punguza asili, mbinu, na vichwa vinavyoruhusiwa.
Tumia Moto wa Programu za Wavuti (WAF): Chuja na ufuatilie maombi ya HTTP kwa mifumo mbaya.
Rasilimali zinazoshirikiwa na kutengwa kwa kutosha kunaweza kusababisha kupanda kwa haki au mwingiliano usiohitajika kati ya kazi.
Tenga Kazi: Panga rasilimali tofauti na majukumu ya IAM ili kuhakikisha uendeshaji huru.
Kugawanya Rasilimali: Tumia hifadhidata tofauti au ndoo za kuhifadhi kwa kazi tofauti.
Tumia VPCs: Peleka kazi ndani ya Mifumo ya Kibinafsi ya Wingu kwa kutengwa kwa mtandao iliyoimarishwa.
Punguza Ruhusa za Kazi: Hakikisha kazi haziwezi kufikia au kuingilia rasilimali za kila mmoja isipokuwa inahitajika wazi.
Data isiyosimbwa katika hali ya kupumzika au katika usafiri inaweza kufichuliwa, na kusababisha uvujaji wa data au upotoshaji.
Simbua Data Katika Hali ya Kupumzika: Tumia vipengele vya usimbaji vya huduma za wingu.
Simbua Data Katika Usafiri: Tumia HTTPS/TLS kwa usafiri wote wa data.
Wasiliana na API kwa Usalama: Lazimisha itifaki za usimbaji na kuthibitisha vyeti.
Simamisha Funguo za Usimbaji kwa Usalama: Tumia huduma za funguo zilizodhibitiwa na kubadilisha funguo mara kwa mara.
Ujumbe wa makosa wa kina unaweza kufichua taarifa nyeti kuhusu miundombinu au msingi wa msimbo, wakati makosa yasiyoshughulikiwa yanaweza kusababisha kuanguka kwa programu.
Ujumbe wa Makosa wa Kawaida: Epuka kufichua maelezo ya ndani katika majibu ya makosa.
Usimamizi wa Makosa Kati: Simamia na safisha makosa kwa njia ya kawaida katika kazi zote.
Fuata na Kurekodi Makosa: Fuata na kuchambua makosa ndani bila kufichua maelezo kwa watumiaji wa mwisho.
Mipangilio ya upelekaji iliyofichuliwa au ufikiaji usioidhinishwa kwa mabomba ya CI/CD yanaweza kusababisha upelekaji wa msimbo mbaya au mipangilio isiyo sahihi.
Salama Mabomba ya CI/CD: Tekeleza udhibiti mkali wa ufikiaji, uthibitishaji wa hatua nyingi (MFA), na ukaguzi wa mara kwa mara.
Hifadhi Mipangilio kwa Usalama: Hifadhi faili za upelekaji bila siri zilizowekwa kwa nguvu na data nyeti.
Tumia Zana za Usalama za Miundombinu kama Msimbo (IaC): Tumia zana kama Checkov au Terraform Sentinel kutekeleza sera za usalama.
Upelekaji Usio Badilika: Zuia mabadiliko yasiyoidhinishwa baada ya upelekaji kwa kupitisha mazoea ya miundombinu isiyobadilika.
Kutumia plugins za tatu zisizokaguliwa au mbaya kunaweza kuleta udhaifu katika programu zako za serverless.
Kagua Plugins kwa Kina: Kadiria usalama wa plugins kabla ya kuingizwa, ukipendelea zile kutoka vyanzo vinavyoaminika.
Punguza Matumizi ya Plugins: Tumia tu plugins zinazohitajika ili kupunguza uso wa shambulio.
Fuata Sasisho za Plugins: Hifadhi plugins zikiwa na sasisho ili kufaidika na patches za usalama.
Tenga Mazingira ya Plugins: Endesha plugins katika mazingira yaliyotengwa ili kudhibiti makosa yanayoweza kutokea.
Kazi zinazopatikana hadharani au APIs zisizo na vizuizi zinaweza kutumika kwa shughuli zisizoidhinishwa.
Punguza Ufikiaji wa Kazi: Tumia VPCs, vikundi vya usalama, na sheria za moto ili kupunguza ufikiaji kwa vyanzo vinavyoaminika.
Tekeleza Uthibitishaji Imara: Hakikisha kwamba mipangilio yote iliyofichuliwa inahitaji uthibitishaji na uidhinishaji sahihi.
Tumia API Gateways kwa Usalama: Sanidi API Gateways kutekeleza sera za usalama, ikiwa ni pamoja na uthibitishaji wa pembejeo na kukataza kiwango.
Zima Mipangilio Isiyotumika: Kagua mara kwa mara na zima mipangilio yoyote ambayo haitumiki tena.
Kutoa ruhusa nyingi kwa wajumbe wa timu na washirikishi wa nje kunaweza kusababisha ufikiaji usioidhinishwa, uvujaji wa data, na matumizi mabaya ya rasilimali. Hatari hii inaongezeka katika mazingira ambapo watu wengi wana viwango tofauti vya ufikiaji, na kuongeza uso wa shambulio na uwezekano wa vitisho vya ndani.
Kanuni ya Haki Ndogo: Hakikisha kwamba wajumbe wa timu na washirikishi wana ruhusa zinazohitajika tu kutekeleza majukumu yao.
Funguo za Ufikiaji na Funguo za Leseni ni ithibati muhimu zinazotumiwa kuthibitisha na kuidhinisha mwingiliano na Serverless Framework CLI.
Funguo za Leseni: Ni vitambulisho vya kipekee vinavyohitajika kwa uthibitishaji wa ufikiaji wa Serverless Framework Toleo la 4 ambalo linaruhusu kuingia kupitia CLI.
Funguo za Ufikiaji: Ithibati zinazoruhusu Serverless Framework CLI kuthibitisha na Dashibodi ya Serverless Framework. Wakati wa kuingia na serverless
cli funguo ya ufikiaji itakuwa imeundwa na kuhifadhiwa kwenye laptop. Unaweza pia kuipanga kama mabadiliko ya mazingira yanayoitwa SERVERLESS_ACCESS_KEY
.
Kufichuliwa Kupitia Hifadhi za Msimbo:
Kuandika kwa nguvu au kwa bahati mbaya kupeleka Funguo za Ufikiaji na Funguo za Leseni kwenye mifumo ya udhibiti wa toleo kunaweza kusababisha ufikiaji usioidhinishwa.
Hifadhi Isiyo Salama:
Kuhifadhi funguo katika maandiko wazi ndani ya mabadiliko ya mazingira au faili za mipangilio bila usimbaji sahihi kunaongeza uwezekano wa uvujaji.
Usambazaji Usiofaa:
Kushiriki funguo kupitia njia zisizo salama (mfano, barua pepe, gumzo) kunaweza kusababisha kukamatwa na wahalifu.
Kukosa Mzunguko:
Kutokuzungusha funguo mara kwa mara kunaongeza kipindi cha kufichuliwa ikiwa funguo zitashambuliwa.
Ruhusa Zisizofaa:
Funguo zenye ruhusa pana zinaweza kutumika kufanya vitendo visivyoidhinishwa katika rasilimali nyingi.
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)