Serverless.com Security
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Opleiding AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Opleiding GCP Red Team Expert (GRTE)
'n Organisasie is die hoogste vlak entiteit binne die Serverless Framework ekosisteem. Dit verteenwoordig 'n kollektiewe groep, soos 'n maatskappy, departement, of enige groot entiteit, wat verskeie projekte, spanne, en toepassings insluit.
Die Span is die gebruikers met toegang binne die organisasie. Spanne help om lede te organiseer op grond van rolle. Samewerkers
kan bestaande toepassings sien en ontplooi, terwyl Admins
nuwe toepassings kan skep en organisasie-instellings kan bestuur.
'n App is 'n logiese groepe van verwante dienste binne 'n Organisasie. Dit verteenwoordig 'n volledige toepassing wat bestaan uit verskeie serverless dienste wat saamwerk om 'n samehangende funksionaliteit te bied.
'n Diens is die kernkomponent van 'n Serverless toepassing. Dit verteenwoordig jou hele serverless projek, wat al die funksies, konfigurasies, en hulpbronne insluit wat nodig is. Dit word tipies gedefinieer in 'n serverless.yml
lêer, 'n diens sluit metadata in soos die diensnaam, verskaffer konfigurasies, funksies, gebeurtenisse, hulpbronne, plugins, en persoonlike veranderlikes.
Dit is 'n opsomming van die amptelike tutoriaal uit die dokumentasie:
Skep 'n AWS-rekening (Serverless.com begin in AWS-infrastruktuur)
Skep 'n rekening in serverless.com
Skep 'n app:
Dit behoort 'n app genaamd tutorialapp
te geskep het wat jy kan nagaan in serverless.com en 'n gids genaamd Tutorial
met die lêer handler.js
wat 'n paar JS-kode bevat met 'n helloworld
kode en die lêer serverless.yml
wat daardie funksie verklaar:
Skep 'n AWS verskaffer deur in die dashboard te gaan op https://app.serverless.com/<org name>/settings/providers?providerId=new&provider=aws
.
Om serverless.com
toegang tot AWS te gee, sal dit vra om 'n cloudformation-stapel te loop met hierdie konfigurasie-lêer (op die tyd van hierdie skrywe): https://serverless-framework-template.s3.amazonaws.com/roleTemplate.yml
Hierdie sjabloon genereer 'n rol genaamd SFRole-<ID>
met arn:aws:iam::aws:policy/AdministratorAccess
oor die rekening met 'n Vertroue Identiteit wat Serverless.com
AWS rekening toelaat om toegang tot die rol te verkry.
Die tutoriaal vra om die lêer createCustomer.js
te skep wat basies 'n nuwe API-eindpunt sal skep wat deur die nuwe JS-lêer hanteer word en vra om die serverless.yml
-lêer te wysig om 'n nuwe DynamoDB-tabel te genereer, 'n omgewing veranderlike te definieer, die rol wat die gegenereerde lambdas sal gebruik.
Ontplooi dit met serverless deploy
Die ontplooiing sal uitgevoer word deur 'n CloudFormation Stap
Let daarop dat die lambdas blootgestel word via API gateway en nie via direkte URL's nie
Toets dit
Die vorige stap sal die URL's druk waar jou API eindpunte lambda funksies ontplooi is
Oormatig permissiewe IAM rolle kan ongeautoriseerde toegang tot wolkbronne verleen, wat lei tot datalekke of bronmanipulasie.
Beginsel van Minste Bevoegdheid: Ken slegs die nodige toestemmings aan elke funksie toe.
Gebruik Geskeide Rolle: Verskaf rolle gebaseer op funksievereistes.
Die stoor van sensitiewe inligting (bv. API sleutels, databasis akrediteer) direk in serverless.yml
of kode kan lei tot blootstelling as repositories gecompromitteer word of as toegang tot AWS gecompromitteer word, aangesien dit leesbaar sal wees vanaf die lambdas konfigurasies.
Omgewingveranderlikes: Spuit geheime tydens uitvoering sonder om dit hard te kodifiseer.
Geheime Bestuurder Integrasie: Gebruik dienste soos AWS Secrets Manager, Azure Key Vault, of HashiCorp Vault.
Gekodeerde Veranderlikes: Maak gebruik van die Serverless Framework se versleuteling funksies vir sensitiewe data.
Toegangbeheer: Beperk toegang tot geheime gebaseer op rolle.
Vermy die Log van Geheime: Verseker dat geheime nie in logs of foutboodskappe blootgestel word nie.
Verouderde of onveilige afhanklikhede kan kwesbaarhede inbring, terwyl onvanpaste invoerhantering kan lei tot kode-inspuitaanvalle.
Afhanklikheidsbestuur: Werk afhanklikhede gereeld op en skandeer vir kwesbaarhede.
Invoer Validasie: Implementeer streng validasie en sanitisering van alle invoere.
Kode Hersienings: Voer deeglike hersienings uit om sekuriteitsfoute te identifiseer.
Statiese Analise: Gebruik gereedskap om kwesbaarhede in die kodebasis te ontdek.
Sonder behoorlike logging en monitering kan kwaadwillige aktiwiteite onopgemerk bly, wat die insidentrespons vertraag.
Gekonsolideerde Logging: Aggregere logs met dienste soos AWS CloudWatch of Datadog.
Aktiveer Gedetailleerde Logging: Vang noodsaaklike inligting sonder om sensitiewe data bloot te stel.
Stel Waarskuwings In: Konfigureer waarskuwings vir verdagte aktiwiteite of anomalieë.
Gereelde Monitering: Moniteer logs en metrieke voortdurend vir potensiële sekuriteitsinsidente.
Oop of verkeerd beveiligde API's kan uitgebuit word vir ongeautoriseerde toegang, Denial of Service (DoS) aanvalle, of kruis-web aanvalle.
Outentisering en Autorisasie: Implementeer robuuste mekanismes soos OAuth, API sleutels, of JWT.
Tariefbeperking en Throttling: Voorkom misbruik deur versoek tariewe te beperk.
Veilige CORS Konfigurasie: Beperk toegelate oorspronge, metodes, en koppe.
Gebruik Webtoepassing Vuurmure (WAF): Filter en monitor HTTP versoeke vir kwaadwillige patrone.
Gedeelde bronne en onvoldoende isolasie kan lei tot bevoegdheidseskalaties of onbedoelde interaksies tussen funksies.
Isolasie van Funksies: Ken unieke bronne en IAM rolle toe om onafhanklike werking te verseker.
Hulpbron Partitionering: Gebruik geskeide databasisse of stoor emmers vir verskillende funksies.
Gebruik VPC's: Ontplooi funksies binne Virtuele Privaatskywe vir verbeterde netwerkisolasie.
Beperk Funksie Toestemmings: Verseker dat funksies nie toegang het tot of mekaar se bronne kan beïnvloed nie, tensy dit eksplisiet vereis word.
Onversleutelde data in rus of in oordrag kan blootgestel word, wat lei tot datalekke of vervalsing.
Versleutel Data in Rus: Maak gebruik van wolkdienste se versleuteling funksies.
Versleutel Data in Oordrag: Gebruik HTTPS/TLS vir alle datatransmissies.
Veilige API Kommunikasie: Handhaaf versleuteling protokolle en valideer sertifikate.
Bestuur Versleuteling Sleutels Veilig: Gebruik bestuurde sleutel dienste en draai sleutels gereeld.
Gedetailleerde foutboodskappe kan sensitiewe inligting oor die infrastruktuur of kodebasis blootstel, terwyl onbehandelde uitsonderings kan lei tot toepassingskrake.
Generiese Foutboodskappe: Vermy die blootstelling van interne besonderhede in fout antwoorde.
Gekonsolideerde Fout Hantering: Bestuur en saniteer foute konsekwent oor alle funksies.
Monitor en Log Foute: Volg en analiseer foute intern sonder om besonderhede aan eindgebruikers bloot te stel.
Blootgestelde ontplooiing konfigurasies of ongeautoriseerde toegang tot CI/CD pype kan lei tot kwaadwillige kode ontplooiings of misconfigurasies.
Veilige CI/CD Pype: Implementeer streng toegangbeheer, multi-faktor autentisering (MFA), en gereelde ouditte.
Berg Konfigurasie Veilig: Hou ontplooiing lêers vry van hardgekodeerde geheime en sensitiewe data.
Gebruik Infrastruktuur as Kode (IaC) Sekuriteitsgereedskap: Gebruik gereedskap soos Checkov of Terraform Sentinel om sekuriteitsbeleide af te dwing.
Onveranderlike Ontplooiings: Voorkom ongeautoriseerde veranderinge na ontplooiing deur onveranderlike infrastruktuur praktyke aan te neem.
Die gebruik van ongeëvalueerde of kwaadwillige derdeparty plugins kan kwesbaarhede in jou serverless toepassings inbring.
Evalueer Plugins Deeglik: Beoordeel die sekuriteit van plugins voor integrasie, en verkies dié van betroubare bronne.
Beperk Plugin Gebruik: Gebruik slegs nodige plugins om die aanval oppervlak te minimaliseer.
Monitor Plugin Opdaterings: Hou plugins op datum om voordeel te trek uit sekuriteitsopdaterings.
Isolasie van Plugin Omgewings: Voer plugins in geïsoleerde omgewings uit om potensiële kompromies te bevat.
Publiek toeganklike funksies of onbeperkte API's kan uitgebuit word vir ongeautoriseerde operasies.
Beperk Funksie Toegang: Gebruik VPC's, sekuriteitsgroepe, en vuurmuur reëls om toegang tot betroubare bronne te beperk.
Implementeer Robuuste Outentisering: Verseker dat alle blootgestelde eindpunte behoorlike outentisering en autorisasie vereis.
Gebruik API Gateways Veilig: Konfigureer API Gateways om sekuriteitsbeleide af te dwing, insluitend invoer validasie en tariefbeperking.
Deaktiveer Ongebruikte Eindpunte: Hersien en deaktiveer gereeld enige eindpunte wat nie meer gebruik word nie.
Die toekenning van oormaatige toestemmings aan spanlede en eksterne samewerkers kan lei tot ongeautoriseerde toegang, datalekke, en misbruik van bronne. Hierdie risiko is verhoog in omgewings waar verskeie individue verskillende vlakke van toegang het, wat die aanval oppervlak en potensiaal vir binnelandse bedreigings verhoog.
Beginsel van Minste Bevoegdheid: Verseker dat spanlede en samewerkers slegs die toestemmings het wat nodig is om hul take uit te voer.
Toegang Sleutels en Lisensie Sleutels is kritieke akrediteer wat gebruik word om interaksies met die Serverless Framework CLI te outentiseer en te autoriseer.
Lisensie Sleutels: Dit is unieke identifiseerders wat benodig word vir die outentisering van toegang tot Serverless Framework weergawe 4 wat toelaat om via CLI aan te meld.
Toegang Sleutels: Akrediteer wat die Serverless Framework CLI toelaat om met die Serverless Framework Dashboard te outentiseer. Wanneer jy aanmeld met serverless
cli, sal 'n toegang sleutel gegenereer en op die skootrekenaar gestoor word. Jy kan dit ook as 'n omgewingveranderlike genaamd SERVERLESS_ACCESS_KEY
stel.
Blootstelling Deur Kode Repositories:
Hardkodering of per ongeluk die toewysing van Toegang Sleutels en Lisensie Sleutels aan weergawebeheer stelsels kan lei tot ongeautoriseerde toegang.
Onveilige Berging:
Die stoor van sleutels in platte teks binne omgewingveranderlikes of konfigurasielêers sonder behoorlike versleuteling verhoog die waarskynlikheid van lekkasie.
Onvanpaste Verspreiding:
Die deel van sleutels deur onveilige kanale (bv. e-pos, klets) kan lei tot onderskepping deur kwaadwillige akteurs.
Gebrek aan Rotasie:
Om sleutels nie gereeld te roteer nie, verleng die blootstellingsperiode as sleutels gecompromitteer word.
Oormaatige Toestemmings:
Sleutels met breë toestemmings kan uitgebuit word om ongeautoriseerde aksies oor verskeie bronne uit te voer.
Leer & oefen AWS Hacking:HackTricks Opleiding AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Opleiding GCP Red Team Expert (GRTE)