ሂድ pre-commit ሜንጦ

እንዴት Pre-Commit Hooks ምስጢሮችን በማቆም ላይ ውድቀት

ምንድን pre-commit Hooks በእርግጥ አድርግ (እና አታድርግ)?

pre-commit ኮዱ ከመተላለፉ በፊት ማዕቀፍ የአካባቢ ማረጋገጫዎችን ለማስፈፀም በተለምዶ ጥቅም ላይ ይውላል commitወደ አንድ የጂት ማከማቻእንደ linters፣ formatters እና እንደ ጠንካራ ኮድ የተሰጣቸው ሚስጥሮች ያሉ ችግሮችን ለመያዝ ብጁ ስክሪፕቶችን እንኳን ማስኬድ ይችላል። ግን ዋናው ነገር ይኸውና፦ hooks ሩጫ ብቻ በገንቢው ማሽን ላይ። ይህ ማለት አንድ ሰው መንጠቆውን ካሰናከለ፣ ሳይጭነው ከቀረ ወይም ሆን ብሎ ከዘለለው፣ አጠቃላይ የመከላከያ ንብርብር ይጎዳል።

የጊት ተወላጅ pre-commit መንጠቆው በአገልጋይ በኩል የተገደበ አይደለም። ሁሉም የቡድን አባላት እንዳዋቀሩት ወይም በትክክል እንደሚጠቀሙበት ምንም ዋስትና የለም። ማዕከላዊ ተፈጻሚነት ከሌለ፣ እነዚህ hooks አማራጭ ይሁኑ guardrails ከጠንካራ ማቆሚያዎች ይልቅ። በተከፋፈሉ ቡድኖች ወይም ክፍት ምንጭ ፕሮጀክቶች ውስጥ፣ ይህ እንደ ብቸኛው የመከላከያ መስመር አስተማማኝ ያደርጋቸዋል።

በአጭሩ, pre-commit hooks የአካባቢውን የደህንነት አደጋዎች ለመቀነስ ይረዳሉ፣ ነገር ግን በራሳቸው በቂ አይደሉም። “pre-commit"ብዙ ጊዜ ይጣላል፣ ነገር ግን ከሰፊ የማስፈጸሚያ ስትራቴጂ ጋር ካልተያያዘ በስተቀር፣ ከቁጥጥር ይልቅ እንደ ሀሳብ ነው።"

ገንቢዎች git pre ን እንዴት እንደሚያልፉ commit የመንጠቆ ቼኮች

ገንቢዎች የሚያልፉባቸው በርካታ እውነተኛ መንገዶች አሉ ሂድ pre-commit ሜንጦ ሆን ተብሎም ይሁን አይሁን ማረጋገጫዎች፡

  • -ምንም-ማረጋገጫ የለም ባንዲራ፦ ይህ ባለ አንድ መስመር ሁሉንም ቼኮች ያልፋል፦
    ሂድ commit -m “hotfix” –no-verify
    ብዙውን ጊዜ በጫና ስር፣ በአደጋ ጊዜ ወይም ገንቢው በስህተት ቼክ ስለታገደ ብቻ ጥቅም ላይ ይውላል።
  • ያልተከታተሉ የውቅር ፋይሎች፦ ሚስጥሮች ብዙውን ጊዜ ይደበቃሉ .env, config.yml, ወይም settings.py ፋይሎች። እነዚህ ፋይሎች ካልተከታተሉ ወይም ካልተቃኙ pre-commitሳይታወቃቸው ይንሸራተታሉ።
  • የመንጠቆ መጫኛ ጠፍቷል: ቡድኑ የመንጠቆ መጫኛን በ በኩል ካላስገደደ pre-commit ጫን ወይም የCI ማረጋገጫ፣ ከዚያም አዲስ የቡድን አባላት ወይም አስተዋጽዖ አበርካቾች ምንም አይነት የአካባቢ ቼኮች ሳይሰሩ ኮድን መግፋት ይችላሉ።
  • በእጅ የተስተካከለ .ጊት pre-commit hooks፦ ገንቢዎች እንኳን ሊቀይሩት ወይም ሊያስወግዱት ይችላሉ pre-commit ምንም አይነት መመሪያ ከሌለ የ hook ፋይልን ያሂዱ።

በአጭሩ, ሂድ pre-commit ሜንጦ ዘዴዎች በቀላሉ ሊታለፉ የሚችሉ እና ሙሉ በሙሉ በገንቢ ዲሲፕሊን ላይ የተመሰረቱ ናቸው፣ ይህም አይሰፋም።

CI/CD Pipelineኤስ፡ የት pre-commit መስራት ያቆማል

ኮዱ ከአካባቢያዊው ማሽን ወጥቶ ከገባ በኋላ CI/CD pipeline, pre-commitየቁጥጥር አገልግሎቱ ያበቃል። በግልጽ ካልተንጸባረቀ በስተቀር pipelineእነዚያ ሁሉ ማረጋገጫዎች ይጠፋሉ። ይህ ትልቅ ዓይነ ስውር ቦታ ይፈጥራል።

ለምሳሌ፣ አንድ ቡድን የሚጠቀምበትን አስቡት GitHub እርምጃዎች or GitLab ሲአይ በማዋሃድ ላይ በራስ-ሰር እንዲሰማራ። አንድ ሰው ቢያልፍ የቅድመ commit በአካባቢው እና ምስጢሮችን የሚገፋፋ፣ pipeline እነዚያን ምስጢሮች በደስታ ይገነባል እና ወደ ዝግጅት ወይም ወደ ምርት እንኳን ያሰማራል።

ያለ pipeline- የምስጢር ማወቂያ ወይም የማረጋገጫ ደረጃዎች፣ pre-commit ኮዱ አንዴ ከተመታ በኋላ ጥበቃዎች ዋጋ የላቸውም git push.

የCI ፍሰቶችን የሚያሄዱ እና ኮድ የሚያሰማሩ የCI ፍሰቶችን ማየት የተለመደ ነው፣ ይህም የሚከተሉትን ምልክቶች ሳይፈትሹ ነው። ሂድ pre-commit ሜንጦ ማረጋገጫዎች መጀመሪያ ላይ አልፈዋል። ይህ ግንኙነት መቋረጥ የደህንነት አደጋዎች በፍጥነት የሚያድጉበት ቦታ ነው።

ሚስጥራዊ ቅኝት እና ደህንነትን በመተግበር ላይ CI/CD

እነዚህን ክፍተቶች ለመዝጋት፣ ሚስጥራዊ ፍለጋ እና የደህንነት ቁጥጥሮች መፈተሽ አለባቸው CI/CD pipelines. እንዴት እንደሆነ እነሆ

  • የአገልጋይ-ጎን የፍተሻ መሳሪያዎችን ይጠቀሙ፦ እንደ git leaks ያሉ የተዋሃዱ መሳሪያዎች, ትሩፍልሆግ, ወይም ሚስጥራዊ ፈልጎ ማግኘት በቀጥታ በ ውስጥ pipelineእያንዳንዱን ይቃኛሉ commit ወይም ለምስጢሮች የህዝብ ግንኙነት (PR)።
  • በኤፒአይ ላይ የተመሠረተ ቅኝት፦ አንዳንድ መድረኮች የኤፒአይ መዳረሻን ያለተመሳሳይም ሆነ በፍላጎት የመጠባበቂያ ቅጂዎችን ለመቃኘት ያቀርባሉ። ይህ ውጫዊ ማረጋገጫን ሳይቀንስ ያስችላል pipeline.
  • የውድቀት ግንባታዎች በምርመራዎች ላይ፦ ምስጢሮች ወይም የተሳሳቱ ውቅሮች ሲገኙ ግንባታዎችን ወይም ውህደቶችን ውድቅ ለማድረግ ፖሊሲዎችን ያዋቅሩ።
  • ቅድመ-ውህደት ማስፈጸሚያ፦ ከመዋሃድዎ በፊት የሚስጥር ቅኝት እንዲያልፍ ለማድረግ የጂትሃብ/ጂትላብ ቅርንጫፍ ጥበቃ ደንቦችን ይጠቀሙ።
  • ከ Xygeni ጋር ውህደት: የተጋለጡ ምስጢሮችን፣ የተሳሳቱ ውቅሮችን እና ተጋላጭ የሆኑ ጥገኝነቶችን በቀጥታ በ ውስጥ ያገኛል pipelineደህንነቱ ያልተጠበቀ ውህደትን በራስ-ሰር ያግዳል። በግንባታ ጊዜ የፖሊሲ ማስፈጸሚያዎችን ያቀርባል እና ከታዋቂ ሰዎች ጋር ያለምንም እንከን ይዋሃዳል CI/CD መድረኮች.

ይህ አካሄድ ማረጋገጫውን ወደ ግራ ያዞራል ነገር ግን ማስፈጸሚያውን ማዕከላዊ ያደርገዋል። እንዲሁም ደካማ የአካባቢ-ብቻን ይተካል። pre-commit አስተማማኝ እና ኦዲት ሊደረግባቸው ከሚችሉ የስራ ፍሰቶች ጋር አጠቃቀም።

ጠንከር ያለ pre-commit ከእውነተኛ መቆጣጠሪያዎች ጋር መጠቀም

እየተጠቀሙ ከሆነ pre-commit፣ ዋጋ እንዲኖረው ያድርጉት፦

  • ፖሊሲ-እንደ-ኮድየደህንነት ፖሊሲዎችን እንደ OPA ወይም ብጁ የ YAML ደንቦች ያሉ ማዕቀፎችን በመጠቀም እንደ ማከማቻዎ አካል ይግለጹ። በቡድኖች ውስጥ ያስፈጽሟቸው።
  • ደህንነታቸው የተጠበቀ አብነቶች፦ ይህንን የሚያካትቱ የኩኪ ቆራጭ ወይም ብጁ የቦይለር ፕሌቶችን ይጠቀሙ ማዋቀር እና standard hooksደህንነቱ የተጠበቀ ነባሪዎችን ዝቅተኛ የመቋቋም መንገድ በማድረግ።
  • Pipeline ማስፈጸሚያ: መስታወት pre-commit hooks በእርስዎ ሲአይ ውስጥ pipeline በመጠቀም pre-commit አሂድ - ሁሉም ፋይሎች ትዕዛዝ.
  • ሊገመገሙ የሚችሉ መንገዶች: ምዝግብ ማስታወሻ እና ማንቂያ መቼ --አረጋግጥ የለም ጥቅም ላይ ሲውል ወይም commit ማረጋገጫውን ይዘላል። ታይነትን ወደ DevSecOps ሂደት ይግፉ።
  • Standardዚ ሂድ pre-commit ሜንጦ አጠቃቀም: ተመሳሳይ መሆኑን ያረጋግጡ hooks የደህንነት መንሸራተትን ለማስወገድ በአካባቢያዊ ልማት እና በCI ውስጥ በቋሚነት ይሮጣሉ።

እነዚህ ለውጦች የሚያደርጉት ብቻ አይደሉም pre-commit የበለጠ ውጤታማ፤ የጥንቃቄ የደህንነት ማስፈጸሚያ ባህል ይፈጥራሉ።

ስለዚህ፣ አካባቢያዊ Hooks በቂ አይደሉም

Pre-commit hooks ጠቃሚ ግን ደካማ ናቸው። ሙሉ በሙሉ በአካባቢያዊ አደረጃጀት እና በግለሰብ ዲሲፕሊን ላይ የተመሰረቱ ናቸው፣ እና በባንዲራ ሊታለፉ ይችላሉ። በጋራ ማከማቻዎች እና CI/CD የስራ ፍሰቶች፣ በፍጥነት ይፈርሳሉ።

በAppSec ውስጥ እውነተኛ ደህንነት ማለት ችላ ሊባል በማይችልበት ቦታ ማስፈጸሚያ መተግበር ማለት ነው፡ በ CI/CDየአገልጋይ-ጎን ሚስጥራዊ ቅኝት፣ የተዋሃዱበት ጊዜ ፖሊሲዎች እና ማዕከላዊ መሳሪያዎች ቁልፍ ናቸው።

ሂድ pre-commit ሜንጦ በጣም ከባድ ባይሆንም፣ ፋየርዎልም አይደለም። ገንቢዎች እንደ አጠቃላይ መፍትሔ ሳይሆን እንደ አንድ የተደራረበ ስትራቴጂ አካል አድርገው ሊመለከቱት ይገባል።

የመሳሰሉ መሳሪያዎች ዚጌኒ ክፍተቱን ለማጥበብ፣ ፖሊሲዎችን ለማስፈጸም፣ የተጋለጡ ምስጢሮችን ለመለየት ይረዳሉ pipelineዎች፣ እና ግንባታዎች ከመጀመራቸው በፊት ደህንነትን ማረጋገጥ። በአካባቢው ላይ አትመካ hooks ብቻህን፤ ጠንክረህ pipelineበጣም አስፈላጊ በሆነበት ቦታ ላይ ነው።

sca-tools-software-composition-analyse-tools
የሶፍትዌር አደጋዎችዎን ቅድሚያ ይስጡ፣ ያስተካክሉ እና ይጠብቁ
ነፃ መለያ ያግኙ።
ምንም ዱቤ ካርድ አያስፈልግም።

የሶፍትዌር ልማትዎን እና አቅርቦትዎን ደህንነት ይጠብቁ

ከ Xygeni Product Suite ጋር