ክፍል 10 / 11

የደህንነት እና ሚስጥሮች አስተዳደር፡ DevSecOps እና አርቲፊሻል ኢንተለጀንስ

ትርፍ፡

  • DevSecOpsን የመረዳት ችሎታ እና ወርቃማ የምስጢር አስተዳደር ህጎችን (ኮድ አላስገባም ፣ በክምችት ውስጥ ይቀመጣል ፣ በሚሮጥበት ጊዜ የተወጋ ፣ ይመለሳል ፣ አነስተኛ መብቶች)
  • ለደህንነት ቅኝት ውጤቶች (SCA, SAST, image, IaC, secret) እና ለመከላከያ ዓላማዎች የኦዲት ኮድን ቅድሚያ ለመስጠት አርቴፊሻል ኢንተለጀንስ የመጠቀም ችሎታ
  • በሚስጥር መፍሰስ ውስጥ የመጀመሪያው እርምጃ መሻር/መቀልበስ መሆኑን ማወቅ እና አርቴፊሻል ኢንተለጀንስ በተፈቀደላቸው ስርዓቶች ውስጥ ብቻ ለመከላከያ ዓላማ በህጋዊ ገደቦች ውስጥ መጠቀም ነው።

ስርዓቱ ምን ያህል በፍጥነት መዘርጋት እንዳለበት በተበላሸ ቀን ምንም ማለት አይደለም. DevOps በፍጥነት ላይ ሲያተኩር፣ ደህንነት አንዳንድ ጊዜ እስከ መጨረሻው ይቀራል - እና እስከ መጨረሻ የሚተወው ደህንነት ብዙውን ጊዜ በጭራሽ አይመጣም። DevSecOps በ DevOps ፍሰት መጀመሪያ ላይ እና በእያንዳንዱ ደረጃ ላይ ደህንነትን የሚያስቀምጥ አካሄድ ነው፡- “ደህንነት ወደ ግራ” - ማለትም በቧንቧው ውስጥ ያለውን ተጋላጭነት በመያዝ፣ በፕሮድ ውስጥ ሳይሆን ኮድ በሚጻፍበት ጊዜ። ለDevSecOps ባለሙያ፣ ደህንነት የተለየ ቡድን ስራ አይደለም፣ ነገር ግን የእያንዳንዱ ቃል ኪዳን፣ እያንዳንዱ ምስል፣ እያንዳንዱ ገላጭ አካል ነው።

በዚህ ክፍል ውስጥ ሁለት ዋና መጥረቢያዎች አሉ. የመጀመሪያው የምስጢር አስተዳደር ነው፡ ደህንነቱ የተጠበቀ ትውልድ፣ ማከማቻ፣ ማሰራጨት እና ሚስጥራዊ መረጃ እንደ የይለፍ ቃሎች፣ ቁልፎች፣ ሰርተፊኬቶች። ሁለተኛው የደህንነት ቅኝት እና ማጠንከሪያ ነው፡ በጥገኛዎች፣ ምስሎች፣ ውቅሮች ላይ ተጋላጭነቶችን መፈለግ። AI በሁለቱም ላይ ኃይለኛ ረዳት ነው - ተጋላጭነቶችን ያሳያል, የፍተሻ ውጤቶችን ቅድሚያ ይሰጣል, ጥገናዎችን ይመክራል. ነገር ግን በጣም ወሳኝ ማስጠንቀቂያ እዚህ ላይ ይሠራል: AI ለመከላከያ ነው; የሌላ ሰው ስርዓት ያልተፈቀደ መዳረሻ፣ ያልተፈቀደ ቅኝት ወይም የጥቃት መሳሪያ መፍጠር ህገወጥ ነው እና የዚህ መድረክ ጥብቅ ገደብ ነው።

የምስጢር አስተዳደር ወርቃማ ህጎች

  1. ምስጢር ወደ ምንጭ ኮድ በጭራሽ አያደርገውም። ዶከርፋይል አይደለም፣ YAML አይደለም፣ ስክሪፕት ሳይሆን Git አይደለም። አንዴ ወደ ጊት ከገባ በኋላ ምስጢሩ በቀድሞው ውስጥ ይቀጥላል።
  2. ሚስጥሮች በማዕከላዊ ማከማቻ ውስጥ ይቀመጣሉ. HashiCorp Vault፣ AWS Secrets Manager፣ Azure Key Vault፣ GCP Secret Manager — እነዚህ የማከማቻ ሚስጥሮች የተመሰጠሩ፣መዳረሻን ይቆጣጠሩ እና እነሱን ይከታተላሉ።
  3. በሚሠራበት ጊዜ መርፌ ነው. አፕሊኬሽኑ በሚሰራበት ጊዜ ምስጢሩን ከቮልት ወይም ከአካባቢ ተለዋዋጭ ያወጣል እንጂ ከዲስክ አይደለም።
  4. በየጊዜው ይሽከረከራል. የምስጢር ህይወት ረዘም ላለ ጊዜ, የመፍሰሱ አደጋ የበለጠ ይሆናል. ራስ-ማሽከርከር ተስማሚ ነው.
  5. ዝቅተኛ ስልጣን. እያንዳንዱን ሚስጥር ማግኘት የሚችለው የሚያስፈልገው አገልግሎት ብቻ ነው።
ጠቃሚ ምክር፡ ብቸኛው በጣም ውጤታማው የመከላከያ እርምጃ ሚስጥራዊ ስካነር (እንደ git-secret, gitleaks, trufflehog) በቧንቧ ውስጥ ማስቀመጥ ነው፡ ምስጢር በአጋጣሚ ለመፈጸም ከተሞከረ ድርጊቱን ያቆማል። ይህ በምንጩ ላይ ያለውን መፍሰስ ያቆማል። AI የእነዚህን አሳሾች የቧንቧ መስመር ውህደት ለመጻፍ ይረዳል.

ደረጃ በደረጃ፡ ለሚስጥር መፍሰስ ምላሽ መስጠት

ምስጢር ከወጣ ፣ አትደንግጡ ፣ ትዕዛዙ አስፈላጊ ነው-

  1. ይሰርዙ እና ወዲያውኑ ያሽከርክሩ። የተለቀቀውን ቁልፍ ዋጋ ያጥፉ ፣ አዲስ ይፍጠሩ። እሱን ማጥፋት ብቻ በቂ አይደለም - ያለፈው ጊዜ ይቀራል።
  2. ተጽእኖውን ይገምግሙ. ይህ ቁልፍ የት ደረሰ? ተበድሏል? ምዝግቦቹን ይፈትሹ.
  3. ምንጩን ያጥፉ። እንዴት ፈሰሰ? አጽዳ ኮድ, ታሪክ; ግን ያስታውሱ፡ መሰረዝ ከማጽዳት በፊት ይመጣል።
  4. መከላከል እንዳይደገም ሚስጥራዊ አሳሹን ወደ ቧንቧው ያክሉት።
ትኩረት፡ በጣም ውድ የሆነው ውርርድ “ማንም ስላላየው” ብቻ የወጣ ምስጢር መመለስ አይደለም። ወደ ይፋዊ ማከማቻ የተጣለ ቁልፍ በሰከንዶች ውስጥ በቦቶች ይቃኛል። ጥርጣሬ በሚፈጠርበት ጊዜ, አሽከርክር - የማሽከርከር ዋጋ ዝቅተኛ ነው, የፍሳሽ ዋጋ በጣም አስከፊ ነው.

የደህንነት ፍተሻ ዓይነቶች

DevSecOps በርካታ የንብርብር ቅኝቶችን ይጠቀማል; የእያንዳንዱን ውጤት ለመተርጎም AI ጠቃሚ ነው-

  • ኤስሲኤ (የሶፍትዌር ቅንብር ትንተና)፡ በምትጠቀማቸው የክፍት ምንጭ ጥገኝነቶች ውስጥ የታወቁ ድክመቶችን (CVE)ን ያገኛል።
  • SAST (የማይንቀሳቀስ የመተግበሪያ ደህንነት ሙከራ)፡ ሳያስኬደው የተጋላጭነት ምንጭ ኮድን ይቃኛል።
  • DAST (ተለዋዋጭ የመተግበሪያ ደህንነት ሙከራ)፡- አሂድ መተግበሪያን በውጪ ይሞክራል።
  • የምስል ቅኝት፡- በመያዣው ምስል (ትሪቪ፣ ዶከር ስካውት) ውስጥ ያሉ ተጋላጭነቶችን ያገኛል።
  • የIaC ቅኝት፡ በ Terraform/manifests (tfsec, checkov) ውስጥ የተሳሳቱ ውቅረቶችን ያገኛል።
ጥንቃቄ፡ አንድ ስካነር በመቶዎች የሚቆጠሩ ግኝቶችን ይጥላል; ሁሉንም በአንድ ጊዜ ለመጠገን የማይቻል ነው. ግኝቶችን ለማስቀደም AIን ተጠቀም፡ የትኞቹ በእውነት ሊበዘብዙ የሚችሉ፣ በፅንሰ-ሀሳብ ግልጽ የሆኑ ነገር ግን በተግባር የማይደረስባቸው? ነገር ግን የመጨረሻውን ቅድሚያ ከራስዎ አውድ ጋር ያረጋግጡ።

የራስተር ንብርብሮች ሰንጠረዥ

ንብርብር

ምን ይቃኛል?

ናሙና ተሽከርካሪ

መቼ ነው።

ኤስ.ኤ.ኤ

የጥገኛ ተጋላጭነቶች (CVE)

ደፔንዳቦት፣ ስኒክ

እያንዳንዱ ግንባታ

SAST

የምንጭ ኮድ ተጋላጭነቶች

Semgrep፣ CodeQL

እያንዳንዱ PR

የምስል ቅኝት

የመያዣው ድክመቶች

ትሪቪ፣ ስካውት

ከተገነባ በኋላ

IaC ቅኝት።

የተሳሳተ ውቅረት

tfsec, checkov

Terraform PR

ሚስጥራዊ ቅኝት

የወጡ ሚስጥሮች

gitleaks

እያንዳንዱ ቃል ኪዳን

ሶስት ጥቃቅን ጉዳዮች

ጉዳይ 1 — 300 CVEs፣ 12 እውነተኛ አደጋዎች። የምስል ቅኝት 300 ድክመቶችን ዘግቧል; ቡድኑ ሽባ ሆነ። የፍተሻ ውጤቱን ለ AI ይስጡ እና "የትኞቹ በርቀት ሊበዘብዙ እንደሚችሉ እና ሊደረስባቸው የሚችሉ ናቸው?" ቅድሚያ ሰጥተውታል። AI 12 እውነተኛ አደገኛ ግኝቶችን አጉልቷል. ቡድኑ መጀመሪያ ዘጋባቸው; የቀረውን በዕቅድ ቀጥሯል። ከመደናገጥ በፊት ቅድሚያ ይስጡ።

ጉዳይ 2 - ማሽከርከር ጥቃትን አከሸፈው። አንድ ገንቢ በድንገት የደመና ቁልፍን ወደ ይፋዊ ማከማቻ ገፋው። ማንቂያው ጠፋ; ቡድኑ ሰርዞ ቁልፉን በ4 ደቂቃ ውስጥ መልሷል። ምዝግብ ማስታወሻዎቹ ቁልፉ ቀድሞውኑ ከቦት እንደተጠየቀ አሳይቷል - አሁን ግን ልክ ያልሆነ ነው። የፈጣን ለውጥ የሂሳብ አከፋፈል አደጋን እና የውሂብ መፍሰስን ከልክሏል።

ጉዳይ 3 - IaC ስካን ክፍት ባልዲ ያዘ። በኤአይኤ የታገዘ የአይኤሲ ቅኝት ወደ ምርት ሳይሄድ "የህዝብ ንባብ" ፍቃድ ያለው በ Terraform ኮድ ውስጥ የማከማቻ ባልዲ ያዘ። ገንቢው "ለሙከራ" ከፍቶት ነበር እና መዝጋት ረስቶታል። የቧንቧ መስመር ቁርጠኝነትን አቆመ; ክፍት ሆኖ አያውቅም። በትክክል ወደ ግራ የማንሸራተት ነጥቡ ነው።

አራት ሊገለበጡ የሚችሉ አብነቶች

1) የፍተሻ ውጤትን ቅድሚያ ይስጡ

ከታች ያለውን የደህንነት ቅኝት ውፅዓት ቅድሚያ ይስጡ። ለእያንዳንዱ ግኝት፡(1) በእውነት ጥቅም ላይ ይውላል (ሩቅ/ያልተረጋገጠ?)፣ (2) በእኛ አውድ ውስጥ ተደራሽ ነውን፣ (3) የማሻሻያ ጥረት፣ (4) የሚመከር ቅድሚያ (ወሳኝ/ከፍተኛ/መካከለኛ/ዝቅተኛ)። 5 በጣም አጣዳፊ የሆኑትን ያድምቁ. በግልጽ ይናገሩ; እያንዳንዱን ቅድሚያ በእኔ አውድ ማረጋገጥ እንዳለብኝ አመልክት። ውጤት፡ [SCAN]

2) የምስጢር አስተዳደር ንድፍ;

ለ[APPLICATION/INFRstructure] የሚስጥር አስተዳደር አቀራረብን ያቅርቡ፡ የትኛው ቮልት፣ በ runtime ጊዜ ሚስጥሮችን እንዴት ማስገባት እንደሚቻል፣ እንዴት ማሽከርከርን በራስ ሰር መስራት እንደሚቻል፣ አነስተኛ መብቶችን እንዴት ማስከበር ይቻላል? በኮዱ ውስጥ ምስጢሩን በጭራሽ የማይካተት የኮንክሪት ፍሰት ይግለጹ።

3) በኮዱ ውስጥ ተጋላጭነቶችን መፈለግ (መከላከያ)፡-

ለደህንነት ከዚህ በታች የእኔን የOWN ኮድ ያረጋግጡ (ፈቃድ አለኝ)፡ ማንኛውም መርፌ፣ የተከተተ ሚስጥር፣ ደህንነቱ ያልተጠበቀ ነባሪ፣ ያልተረጋገጠ ግቤት አለ? ለእያንዳንዱ ግኝት አስፈላጊነቱን እና እርማትን ይስጡ. ዓላማው መከላከል እና ማጠናከር ነው. ኮድ፡ [CODE]

4) የሚስጥር መፍሰስ ምላሽ እቅድ፡-

አንድ [ሚስጥር ዓይነት] በአጋጣሚ [LOCATION] ሰርጎ ገብቶ ሊሆን ይችላል። ደረጃ በደረጃ የጣልቃ ገብነት ቅደም ተከተል ስጠኝ: በመጀመሪያ ምን ማድረግ አለብኝ (ስረዛ / መመለስ), ውጤቱን እንዴት መገምገም, ተደጋጋሚነትን እንዴት መከላከል እንደሚቻል? እንዲሁም ለምን መሰረዝ ብቻ በቂ እንዳልሆነ ያብራሩ።

ደካማ ጥያቄ / ጠንካራ ጥያቄ

ደካማ፡ "ይህን ስርዓት እንዴት እጥባለሁ/ይህን ተጋላጭነት እጠቀማለሁ?"

ይህ ጥያቄ ከሥነ ምግባር ውጭ የሆነ እና ከዚህ መድረክ ወሰን ውጭ ነው። ለጥቃት AI መጠቀም ህገወጥ ነው።

ጠንካራ: "ለደህንነት የራሴን ማመልከቻ ኮድ ፍቀድ: የተካተቱ ሚስጥሮችን, መርፌ አደጋዎችን እና ያልተጠበቁ ነባሪዎችን ያግኙ, እያንዳንዳቸውን ያስተካክሉ. ግቡ ስርዓቱን ማጠንከር ነው."

ልዩነት: ሁለተኛው ጥያቄ ለመከላከያ ዓላማዎች, በስልጣን ወሰን ውስጥ እና ለማጠናከር ነው. ይህ በDevSecOps ውስጥ ትክክለኛው የ AI አጠቃቀም ነው።

የተለመዱ ስህተቶች

  • ምስጢሩን በኮድ/ታሪክ ውስጥ መክተት። በጣም የተለመደው እና ቀጣይነት ያለው ተጋላጭነት.
  • የወጣውን ሚስጥር አለመመለስ። "ማንም አላየውም" በጣም ውድ ውርርድ ነው።
  • ሁሉንም የማጣሪያ ግኝቶች በእኩልነት ማየት። ቅድሚያ በመስጠት ሽባ መሆን ወይም እውነተኛ አደጋ ማጣት።
  • ደህንነትን እስከመጨረሻው መተው። በፕሮድ ውስጥ ያለው ክፍተት ከቧንቧው ክፍተት ብዙ እጥፍ የበለጠ ውድ ነው.
  • አነስተኛ ስልጣንን ማለፍ። የሁሉንም ነገር መዳረሻ ያለው ሚስጥራዊ/ሚና አንድ ነጠላ መፍሰስ አደጋ ያደርገዋል።
  • AI ለጥቃት ለመጠቀም በመሞከር ላይ። ህገወጥ እና ከመድረክ ውጪ።

በማጠቃለያው

DevSecOps በዴቭኦፕስ ፍሰት መጀመሪያ ላይ እና በእያንዳንዱ ደረጃ ላይ ደህንነትን ያስቀምጣል - ተጋላጭነቶችን በኮድ እና በቧንቧ እንጂ በፕሮድ አይደለም። የምስጢር አያያዝ ወርቃማ ህጎች፡ ሚስጥሩ ወደ ኮዱ አይገባም፣ በማእከላዊ ካዝና ውስጥ ይቀመጣል፣ በሂደት ላይ ይተክላል፣ በመደበኛነት ይመለሳል እና በትንሽ መብቶች ይደረስበታል። የመፍሰሱ የመጀመሪያ እርምጃ ሁል ጊዜ ማቋረጥ/መመለስ ነው። AI የፍተሻ ውፅዓትን በማስቀደም ፣ ሚስጥራዊ ፍሰቶችን በመንደፍ እና ኮድን በመከላከል ረገድ ኃይለኛ ነው - ግን ጥቅም ላይ የሚውለው ለመከላከያ እና በህጋዊ ገደቦች ውስጥ ባሉ ስርዓቶች ላይ ብቻ ነው።

የመተግበሪያ ተግባር

የእራስዎን ፕሮጀክት ይውሰዱ (ሥልጣን ያለዎት)። (1) የተካተቱትን ሚስጥሮች እና ደህንነታቸው ያልተጠበቁ ነባሪዎች በ"ኮድ ውስጥ ያሉ ተጋላጭነቶችን መፈለግ" በሚለው አብነት ያረጋግጡ። (2) የደህንነት ቅኝት ውፅዓት (ትክክለኛ ወይም ናሙና) በ"triage" አብነት ደርድር እና 3 በጣም አስቸኳይ ግኝቶችን ይለዩ። (3) ምስጢሩን ከኮዱ ሙሉ በሙሉ በሚያስወግድ "በሚስጥራዊ አስተዳደር ንድፍ" አብነት ለፕሮጀክትዎ ፍሰት ረቂቅ ያዘጋጁ።

የማረጋገጫ ዝርዝር

  • [ ] በእኔ ኮድ፣ ምስል እና መግለጫዎች ውስጥ ምንም የተካተቱ ምስጢሮች አለመኖራቸውን አረጋግጫለሁ።
  • [ ] ምስጢሮቹን በማዕከላዊ ካዝና ውስጥ አስቀምጫለሁ እና በሂደት ጊዜ እወጋቸዋለሁ።
  • [ ] የመፍሰሱ ሁኔታ የመጀመሪያው እርምጃ ማቋረጥ/መመለስ እንደሆነ አውቃለሁ።
  • [ ] በብዝበዛነት እና በኔ አውድ ላይ በመመስረት የፍተሻ ግኝቶችን ቅድሚያ ሰጥቻለሁ።
  • [] የደህንነት ቅኝቶችን ወደ ቧንቧው የመጀመሪያ ደረጃዎች (ወደ ግራ) አንቀሳቅሻለሁ።
  • [ ] እኔ ስልጣን ባለኝ ስርዓቶች ላይ AI ለመከላከያ ዓላማ ብቻ ነው የተጠቀምኩት።