Text size
പരീക്ഷിച്ചറിഞ്ഞത്7 മിനിറ്റ് വായന

എന്റെ കുബർനെറ്റ്സ് സുരക്ഷാ ചെക്ക്ലിസ്റ്റ്

RBAC, നെറ്റ്വർക്ക് നയങ്ങൾ, റൺടൈം സുരക്ഷ. ഓരോ ക്ലസ്റ്ററിലും ഞാൻ പരിശോധിക്കുന്ന ക്രമീകരണങ്ങൾ.

My Kubernetes security checklist
AI ഉപയോഗിച്ച് സൃഷ്ടിച്ച ചിത്രീകരണം

കുബർനെറ്റസ് സുരക്ഷിതമല്ല, പക്ഷേ സ്ഥിരസ്ഥിതിയായി സുരക്ഷിതമല്ല. പുതിയ ഒരു ക്ലസ്റ്റര് വഴി പാഡുകള് റൂട്ട് ആയി പ്രവർത്തിപ്പിക്കാനും, മറ്റു പാഡുകളുമായി ആശയവിനിമയം നടത്താനും, ആവശ്യപ്പെട്ടാല് ഹോസ്റ്റിന്റെ ഫയല് സിസ്റ്റം മൌണ്ട് ചെയ്യാനും സാധിക്കും. ഞാൻ അവലോകനം ചെയ്യുന്ന മിക്ക കൂട്ടങ്ങളിലും ഈ വാതിലുകൾ തുറന്നിട്ടുണ്ടാകും.

ഇത് ഓരോ ക്ലസ്റ്ററിലും ഞാൻ പരിശോധിക്കുന്ന ക്രമമാണ്, ഏറ്റവും പ്രധാനപ്പെട്ടതിൽ നിന്ന് ഏറ്റവും അടിയന്തിരമായി.

1. ഒരു പാരമ്പര്യം ആര് എന്ത് ചെയ്യാനാവും (RBAC)

  • പങ്കിട്ട അഡ്മിൻ ക്രമീകരണങ്ങളൊന്നും ഇല്ല. ആളുകൾ SSO ഉപയോഗിച്ച് ലോഗിൻ ചെയ്യുകയും ഗ്രൂപ്പുകളെ അടിസ്ഥാനമാക്കി റോളുകൾ നേടുകയും ചെയ്യുന്നു.
  • ആരും ഉപയോഗിക്കുന്നില്ല. cluster-admin ഓരോ ദിവസവും. ഗ്ലാസ് ബ്രേക്ക് ആക്സസ് ചെയ്യുന്നതിനായി സൂക്ഷിക്കുക, രേഖപ്പെടുത്തി മുന്നറിയിപ്പ് നൽകുക.
  • സേവന അക്കൌണ്ടുകൾക്ക് കുറഞ്ഞ പ്രിവിലേജ്. മിക്ക ആപ്ലിക്കേഷനുകളും കുബർനെറ്റസ് API-യുമായി സംസാരിക്കേണ്ട ആവശ്യമില്ല. സജ്ജീകരിച്ചു automountServiceAccountToken: false ആ സാധനങ്ങളുടെ കാര്യമാണ്.
  • അപകടകരമായ അനുമതികൾക്കായി ശ്രദ്ധിക്കുക: പ്രവേശനം secrets നാമമേഖലകളില് , pods/exec, kube-system, escalate ഒപ്പം bind ക്രിയകളും വൈഡ് കാർഡുകളും (*).
  • പതിവായി അവലോകനം ചെയ്യുക. ഉപകരണങ്ങൾ kubectl auth can-i --list, rbac-tool അല്ലെങ്കിൽ KubiScan എന്നിവ അധികമായി പ്രിവിലേജ് ചെയ്ത അക്കൌണ്ടുകൾ കണ്ടെത്താന് സഹായിക്കുന്നു.

2. പാഡുകൾ ലോക്ക് ചെയ്യുന്നു

കുബർനെറ്റിന് ഇതിനായി ഒരു ബിൽറ്റ്-ഇൻ സംവിധാനമുണ്ട്: സുരക്ഷാ പ്രവേശനം, മൂന്നു തലങ്ങളില്: privileged, baseline ഒപ്പം restricted. ലേബലുകളുള്ള നാമമേഖലയ്ക്കായി ഇത് പ്രവർത്തനക്ഷമമാക്കുകഃ

apiVersion: v1
kind: Namespace
metadata:
  name: shop
  labels:
    pod-security.kubernetes.io/enforce: restricted
    pod-security.kubernetes.io/warn: restricted

സി. restricted മികച്ച രീതികൾ പിന്തുടരാന് ഈ നിലയില് ആവശ്യപ്പെടുന്നു. ഒരു അനുയോജ്യമായ പാഡിന്റെ സുരക്ഷാ പശ്ചാത്തലം ഇങ്ങനെ കാണപ്പെടുന്നു:

securityContext:
  runAsNonRoot: true
  seccompProfile:
    type: RuntimeDefault
containers:
- name: app
  securityContext:
    allowPrivilegeEscalation: false
    readOnlyRootFilesystem: true
    capabilities:
      drop: ["ALL"]

ലക്ഷ്യം restricted എല്ലാ ആപ്ലിക്കേഷൻ നാമമേഖലകളിലും. സൂക്ഷിക്കുക. privileged സിസ്റ്റം ഘടകങ്ങള് ക്ക് മാത്രം അത് യഥാര് ത്ഥമായി ആവശ്യമുള്ള (സിഎൻഐ, സ്റ്റോറേജ് ഡ്രൈവറുകള് , മോണിറ്ററിംഗ് ഏജന്റുമാർ), അവരുടെ സ്വന്തം നാമമേഖലയില് .

എല്ലാ കഴിവുകളുമുള്ള റൂട്ട് ആയി പ്രവർത്തിക്കുന്ന ഒരു കണ്ടെയ്നർ, നോഡിന്റെ ഉടമസ്ഥതയിൽ നിന്നും ഒരു ദുർബലത അകലെയാണ്.

3. ഒരു കല്ല് നെറ്റ് വര് ക്ക് പോളിസികള്

സ്ഥിരസ്ഥിതിയായി, ഓരോ പാഡിനും ഗ്രൂപ്പിലെ മറ്റ് പാഡുകളുമായി സംസാരിക്കാം. ആക്രമണകാരിക്ക് അതിലൊന്ന് കിട്ടിയാൽ, അവന് എല്ലാം പിടിച്ചെടുക്കാം.

ഒരു സ്ഥിരസ്ഥിതി നിഷേധിക്കുക ഓരോ നാമമേഖലയിലും, ആവശ്യമുള്ളത് അനുവദിക്കുക:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny
  namespace: shop
spec:
  podSelector: {}
  policyTypes: ["Ingress", "Egress"]

പിന്നെ ഗേറ്റ്വേ എപിഐയിൽ എത്താൻ അനുവദിക്കുന്ന നയങ്ങൾ ചേർക്കുക, എപിഐ അതിന്റെ ഡാറ്റാബേസിൽ എത്താൻ അനുവദിക്കുന്നു, എല്ലാം ഡിഎൻഎസിൽ എത്താൻ. ഓർക്കുക: നിങ്ങളുടെ സിഎൻഐ അവരെ പിന്തുണയ്ക്കുന്ന പക്ഷം മാത്രമേ നെറ്റ്വർക്ക് നയങ്ങൾ പ്രവർത്തിക്കൂ (Cilium, Calico, ഏറ്റവും ആധുനിക CNIs എന്നിവ ചെയ്യുന്നു).

പരിമിതപ്പെടുത്തൽ പുറംതൊലി ഇന്റർനെറ്റിലേക്ക് എത്താൻ കഴിയാത്ത ഒരു അപഹാസ്യമായ പാഡ് എളുപ്പത്തിൽ ഉപകരണങ്ങൾ ഡൌൺലോഡ് ചെയ്യാനോ ഡാറ്റ അയയ്ക്കാനോ കഴിയില്ല.

4. രഹസ്യങ്ങൾ

  • വിശ്രമിക്കുന്ന സമയത്ത് രഹസ്യങ്ങൾ എൻക്രിപ്റ്റ് ചെയ്യുക നിയന്ത്രിത ക്ലസ്റ്ററുകളില് കെ. എം. എസ് ഉപയോഗിച്ച്
  • ഗിറ്റിലെ രഹസ്യങ്ങൾ സൂക്ഷിക്കരുത് ലളിതമായ YAML ൽ. ബാഹ്യ രഹസ്യങ്ങൾ, മുദ്രവെച്ച രഹസ്യങ്ങൾ അല്ലെങ്കിൽ SOPS ഉപയോഗിക്കുക.
  • പരിധി get ഒപ്പം list രഹസ്യങ്ങളെ കുറിച്ച് RBAC ൽ ഒരു നാമമേഖലയില് രഹസ്യങ്ങള് ലിസ്റ്റ് ചെയ്താല് അവയെല്ലാം വെളിപ്പെടും.
  • ഇഷ്ടം വർക്ക് ലോഡ് ഐഡന്റിറ്റി രഹസ്യങ്ങളില് സ്റ്റാറ്റിക് ക്ലൌഡ് ക്രെഡൻഷ്യലുകള് ക്ക് മുകളില് .

5. ചിത്ര നയം

  • വിശ്വസനീയമായ രജിസ്ട്രികളിൽ നിന്നുള്ള ചിത്രങ്ങള് മാത്രം അനുവദിക്കുക.
  • ഇല്ല latest ടാഗുകൾ. പിൻ പതിപ്പുകൾ, നല്ലത് ദഹിപ്പിക്കൽ.
  • ഒപ്പിട്ട ചിത്രങ്ങൾ ആവശ്യപ്പെടുക (കോസിഗ്നൽ) ഉല്പാദനത്തിനായി.
  • സ്കാൻ ചെയ്ത ചിത്രങ്ങൾ സിഐയിലും റെജിസ്റ്ററില് തുടര് ച്ചയായി.

ഇവയെല്ലാം ഒരു പ്രവേശന നയ സംവിധാനം ഉപയോഗിച്ച് നടപ്പിലാക്കുന്നു. കിവെര് നോ അല്ലെങ്കില് ഒപിഎ ഗേറ്റ്കീപ്പർ, അല്ലെങ്കിൽ കുബർനെറ്റസ് ബിൽറ്റ് ഇൻ ചെയ്തതുമായി പ്രവേശന നയം സാധൂകരിക്കുന്നു ലളിതമായ നിയമങ്ങൾക്കായി.

6. എന്തൊക്കെ പ്രവർത്തിക്കുന്നു എന്ന് നിരീക്ഷിക്കുന്നു (റൺടൈം സെക്യൂരിറ്റി)

പ്രതിരോധ നിയന്ത്രണങ്ങളെ മറികടക്കാം. റൺടൈം സെക്യൂരിറ്റി സംശയകരമായ പെരുമാറ്റം കണ്ടുപിടിക്കുന്നു.

  • ഫാൽക്കോ (സിഎൻസിഎഫ്) ഒരു കണ്ടെയ്നറിൽ ജനിച്ച ഒരു ഷെൽ, അപ്രതീക്ഷിത ഔട്ട്ഗോയിംഗ് കണക്ഷനുകൾ, അല്ലെങ്കിൽ സെൻസിറ്റീവ് ഡയറക്ടറികളിലേക്ക് എഴുതുന്നതുപോലുള്ള കാര്യങ്ങളിൽ സിസ്റ്റം കോളുകളും അലേർട്ടുകളും നിരീക്ഷിക്കുന്നു.
  • ടെട്രാഗൺ (Cilium പ്രോജക്ട്) eBPF ഉപയോഗിക്കുന്നു നിരീക്ഷണത്തിനായി, കൂടാതെ നിരോധിതമായ എന്തെങ്കിലും ചെയ്യുന്ന ഒരു പ്രക്രിയയെ കൊല്ലുന്നത് പോലുള്ള നയങ്ങൾ നടപ്പിലാക്കാനും കഴിയും.

നിങ്ങളുടെ മറ്റ് അലേർട്ടുകളുമായി ഒരേ സ്ഥലത്തേക്ക് അവരുടെ അലേർട്ട് അയയ്ക്കുക, അവയെ ട്യൂൺ ചെയ്യുക, അല്ലെങ്കിൽ അവ ശബ്ദമായി മാറും.

7. നിയന്ത്രണ തലം, നോഡുകൾ

  • എപിഐ സെര് വര് പൊതുവായി ലഭ്യമല്ല, അല്ലെങ്കിൽ കുറഞ്ഞത് അറിയപ്പെടുന്ന ഐ. പി. പരിധികളിലേയ്ക്കെങ്കിലും പരിമിതപ്പെടുത്തിയിരിക്കുന്നു.
  • ഓഡിറ്റ് ലോഗ് ചെയ്യൽ പ്രവർത്തനക്ഷമമാക്കി, പിന്നെ ലോഗ്സ് എവിടെയെങ്കിലും സെൻട്രൽ ഷിപ്പ് ചെയ്തു.
  • കുബർനെറ്റുകളെ കാലികമായി നിലനിർത്തുക. സുരക്ഷാ പരിഹാരങ്ങള് പിന്തുണയ്ക്കുന്ന പതിപ്പുകളില് മാത്രം ഇറങ്ങുന്നു.
  • കഠിനമാക്കിയ നോഡ് ഇമേജുകൾ, കുറഞ്ഞ ഒഎസ് (ബോട്ട്ലെറോക്കറ്റ്, ടാലോസ് അല്ലെങ്കിൽ കണ്ടെയ്നർ ഒപ്റ്റിമൈസ് ചെയ്ത ഒഎസ് പോലുള്ളവ), പതിവായി മാറ്റിസ്ഥാപിക്കുന്നു.
  • ക്ലൌഡ് മെറ്റാഡാറ്റാ എൻഡ് പോയിന്റുകളിലേക്കുള്ള പ്രവേശനം തടയുക അല്ലെങ്കിൽ AWS- ൽ IMDSv2 നടപ്പിലാക്കുക.

8. ബെഞ്ച് മാർക്കുകൾ

  • സിഐഎസ് കുബർനെറ്റസ് ബെഞ്ച്മാർക്ക്: വിശദമായ ശുപാർശകൾ. കുബേ ബെഞ്ച് ഒരു ക്ലസ്റ്ററിനെ അത് പരിശോധിക്കുന്നു.
  • കുബെസ്കേപ്പ് ഒപ്പം ട്രിവി (trivy k8s) തെറ്റായ ക്രമീകരണത്തിനായി ക്ലസ്റ്ററുകളെ സ്കാൻ ചെയ്യുകയും അവയെ NSA/CISA കർശനമായ മാർഗ്ഗനിർദ്ദേശം പോലുള്ള ചട്ടക്കൂടുകളിലേക്ക് മാപ്പ് ചെയ്യുകയും ചെയ്യുന്നു.

അവയെ പതിവായി പരിശോധിക്കുക. 100% എന്ന ലക്ഷ്യത്തിലല്ല, എല്ലാ കണ്ടെത്തലുകളും മനസ്സിലാക്കുക എന്ന ലക്ഷ്യത്തിലേയ്ക്ക്.

എവിടെ നിന്നാണ് ഞാൻ തുടങ്ങേണ്ടത്?

നിങ്ങൾക്ക് മൂന്ന് കാര്യങ്ങൾ മാത്രമേ ചെയ്യാനാകൂ: കുറഞ്ഞ പദവികളുള്ള RBAC ഉള്ളവരെ SSO ലേക്ക് മാറ്റുക, പോഡ് സെക്യൂരിറ്റി നടപ്പിലാക്കുക restricted ആപ്ലിക്കേഷന് നെയിംസ്പെയ്സുകളില് , കൂടാതെ സ്ഥിരസ്ഥിതി നിരസിക്കൽ നെറ്റ്വർക്ക് നയങ്ങള് ചേര് ക്കുക. അത് മിക്ക ക്ലസ്റ്ററുകളിലും സുരക്ഷാ വിടവുകൾ അടയ്ക്കുന്നു.

എന്റെ അഭിപ്രായം, കുബർനെറ്റസ് നിങ്ങൾക്ക് ആവശ്യമുള്ള എല്ലാ ലോക്കുകളും തരുന്നു. അവ തുറന്നിട്ടാണ് വരുന്നതു.

ഡെസ്ലി