бүтээх процесст орчны хувьсагчдыг оруулах

Бүтээх процесст орчны хувьсагчдыг аюулгүй оруулах

Бүтээх процесст орчны хувьсагчдыг оруулах нь standard орчин үеийн практикт CI/CD pipelines. Багууд нууцлал, токен болон ажиллах хугацааны тохиргоог хатуу кодчилолгүйгээр бүтээлт рүү дамжуулахын тулд бүтээх процесст орчны хувьсагчдыг оруулдаг. Гаднаас нь харахад энэ нь энгийн бөгөөд аюулгүй загвар шиг харагдаж байна.

Гэсэн хэдий ч практик дээр энэ нь програм хангамжийн хангамжийн сүлжээнд хамгийн дутуу үнэлэгддэг эрсдэлүүдийн нэг болдог.

Учир нь багууд бүтээх процесст орчны хувьсагчдыг оруулсны дараа эдгээр утгууд тусгаарлагдахаа болино. Тэдгээр нь дотор нь ажилладаг бүх зүйлд хандах боломжтой болно. pipeline. Бүтээлийн скриптүүд, CLI хэрэгслүүд, гуравдагч талын үйлдлүүд, тэр ч байтугай хамаарлууд нь тэдгээрийг уншиж чадна.

Энд л бүх зүйл эвдэрч эхэлдэг.

Энэхүү гарын авлагад бид багууд бодит орчинд бүтээх процесст орчны хувьсагчдыг хэрхэн оруулдаг талаар авч үзэх болно. pipelines, гоожиж байгаа газар үнэндээ хаана тохиолддог, мөн хөгжүүлэлтийг удаашруулахгүйгээр бүтээх үйл явцыг хэрхэн аюулгүй болгох.

Бүтээх процесст орчны хувьсагчдыг оруулах гэдэг нь юу гэсэн үг вэ

Үндсэндээ орчны хувьсагчдыг оруулах гэдэг нь утгуудыг а руу дамжуулах гэсэн үг юм. pipeline гүйцэтгэх явцад ажлууд тэдгээрт хандах боломжтой байхаар ажиллах үед. 

Практикт ихэнх багууд орчны хувьсагчдыг бүтээх процесст янз бүрийн үе шатуудад олон удаа оруулдаг бөгөөд эдгээр утгыг хэрхэн ашиглаж байгааг бүрэн харах боломжгүй байдаг.

Эдгээр утгууд нь ихэвчлэн API түлхүүрүүд, мэдээллийн сангийн итгэмжлэлүүд, жетонууд эсвэл орчинд тохирсон тохиргоог агуулдаг. Тэдгээрийг шууд кодонд хадгалахын оронд CI/CD Систем нь угсралт эхлэхэд тэдгээрийг динамикаар ачаалдаг.

Энэ нь жинхэнэ асуудлыг шийддэг. Энэ нь кодыг цэвэр байлгаж, давхардлаас зайлсхийж, ижил зүйлийг зөвшөөрдөг. pipeline үе шат, туршилт болон үйлдвэрлэлийн орчинд ажиллах.

Гэсэн хэдий ч энэ загвар нь цаашид хүчин төгөлдөр бус болсон таамаглал дээр тулгуурладаг: бүтээх орчин нь хяналттай бөгөөд урьдчилан таамаглах боломжтой гэсэн.

Орчин үеийн pipelines нь аль нь ч биш. Эдгээр нь олон алхам, гадаад интеграцчилал, кодыг динамикаар гүйцэтгэдэг хамаарлуудыг агуулдаг. Үүний үр дүнд хувьсагчийг оруулсны дараа энэ нь зүгээр л тохиргоо биш болно. Энэ нь гүйцэтгэлийн контекстийн нэг хэсэг болдог.

Барилгын процесст орчны хувьсагчид алдагдсан газар

Ихэнх мэдээлэл алдагдсан нь хэн нэгэн нууцыг илт задруулснаас болдоггүй. Тэд яагаад болдог вэ гэвэл pipelineхөгжүүлэгчид бүрэн таамаглаагүй байдлаар ажилладаг.

Багууд бүтээх процесст орчны хувьсагчдыг оруулах бүртээ мэдрэмтгий өгөгдөлд хандах боломжтой бүрэлдэхүүн хэсгүүдийн тоог нэмэгдүүлдэг.

Жишээлбэл, хөгжүүлэгч нь бүтэлгүйтсэн бүтцийг дибаг хийхийн тулд дэлгэрэнгүй бүртгэлийг идэвхжүүлж болно. CLI хэрэгсэл нь орчны хувьсагчдыг гаралтынхаа нэг хэсэг болгон хэвлэж болно. Хамаарал нь гүйцэтгэлийнх нь нэг хэсэг болгон процессын хувьсагчдад чимээгүйхэн хандаж болно.

Эдгээр үйлдлүүдийн аль нь ч дангаараа сэжигтэй харагдахгүй байна. Гэсэн хэдий ч тэд хамтдаа олон гоожих замыг бий болгодог.

Нууцууд дараах байдлаар дуусч болно:

  • хадгалагдаж, индексжүүлэгддэг логуудыг бүтээх
  • багуудын хооронд хуваалцсан дибаг гаралт
  • гадаад кодыг ажиллуулдаг гуравдагч талын CI үйлдлүүд
  • суулгалт эсвэл ажиллах үеийн үед гүйцэтгэгддэг хамаарлууд
  • барилгын явцад үүссэн түр зуурын эд өлгийн зүйлс

Нууц зүйл бүртгэлд гарч ирсний дараа бараг хадгалагдахгүй. Бүртгэлийг олон системд хуулж, хадгалж, хадгалдаг. Энэ үед илчлэлт нь анхныхаас хамаагүй илүү өргөн хүрээг хамардаг. pipeline.

Ийм учраас орчны хувьсагчийн алдагдлыг ихэвчлэн хожуу, эсвэл аль хэдийн гэмтэл учирсны дараа илрүүлдэг.

Багууд яагаад бүтээх процесст орчны хувьсагчдыг оруулдаг вэ

Эдгээр эрсдэлүүдээс үл хамааран багууд орчны хувьсах тарилгад ихээхэн найддаг. Үүнд сайн шалтгаан бий.

Энэ нь идэвхжүүлдэг pipelineуян хатан байхын тулд s. Нэг ажлын урсгал нь өөр өөр орчинд дасан зохицож, олон үйлчилгээнд баталгаажуулж, кодыг өөрчлөхгүйгээр зан төлөвийг динамикаар өөрчилж чадна.

Хурдацтай хөгжиж буй DevOps орчинд энэхүү уян хатан байдал зайлшгүй шаардлагатай. Гэсэн хэдий ч уян хатан байдал нь үргэлж буулт хийхтэй хамт ирдэг. Илүү динамик байх тусам pipeline улам бүр хэцүү болж, дотор нь юу болж байгааг хянах нь улам хэцүү болдог. Нэмэлт алхам, интеграци эсвэл хамаарал бүр нь мэдрэмтгий өгөгдөлд хандах боломжтой газруудын тоог нэмэгдүүлдэг.

Үүний үр дүнд орчны хувьсагчийн тарилга нь тохиргооны дэлгэрэнгүй мэдээллээс аюулгүй байдлын асуудал руу шилждэг.

Бүтээх процесст орчны хувьсагчдыг оруулах үед гарч болзошгүй нийтлэг эрсдэлүүд

Эрсдэлүүд нь онолын шинжтэй биш. Тэд бодит байдал дээр харагдаж байна pipelineөдөр бүр.

Модонд алдагдсан нууцууд

Лог нь нэг юм хамгийн түгээмэл өртөлтийн эх үүсвэрүүдАлдаа засах туг, CLI хэрэгслүүд болон стекийн мөрүүд нь хөгжүүлэгчид анзааралгүйгээр мэдрэмтгий утгуудыг илчилдэг.

Илэрсэний дараа эдгээр утгууд системүүдээр хурдан тархдаг.

Хэт их зөвшөөрөлтэй хандалт

Олон pipelines нь бүх хувьсагчдыг бүх ажилд ил гаргадаг. Энэ нь шаардлагагүй эрсдэлийг бий болгодог.

Хэрэв нэг алхам эвдэрвэл энэ нь үнэндээ хэрэггүй итгэмжлэлүүдэд хандах боломжтой.

Хараат байдал ба үйл ажиллагааны зүй бус хэрэглээ

Орчин үеийн pipelines нь гуравдагч талын хэрэгслүүд болон интеграцуудаас ихээхэн хамаардаг. Эдгээр бүрэлдэхүүн хэсгүүд нь таны нууцтай ижил орчинд ажилладаг.

Хэрэв тэдгээрийн нэг нь хорлонтойгоор авирлавал тарьсан хувьсагчдад чимээгүйхэн хандах боломжтой.

дагуу OWASP, хангамжийн сүлжээний халдлага нь бүтээх процесст итгэмжлэгдсэн бүрэлдэхүүн хэсгүүдийг байнга ашигладаг. Орчны хувьсагчид ихэвчлэн хамгийн хялбар бай болдог.

Энэ эрсдэл нь онолын хувьд биш юм. Саяхны үйл явдлуудaxios npm буулт гэх мэт нь халдагчид итгэмжлэгдсэн хамаарлуудыг хэрхэн урвуулан ашиглаж, ажиллах хугацааны нууцад хэрхэн нэвтэрдэгийг харуулдаг. pipeline өгөгдөл.
 

Код дахь нөөц нууцууд

Хувьсагч дутуу байгаагаас болж бүтээлт амжилтгүй болох үед багууд заримдаа нөөц утгуудыг нэмж хадгалдаг pipelineгүйж байна.

Цаг хугацаа өнгөрөхөд эдгээр үнэт зүйлс өөрчлөгдөнө commitашигласан эсвэл байрлуулсан нь урт хугацааны өртөлтийг бий болгодог.

Бүтээх процесст орчны хувьсагчдыг аюулгүй оруулах шилдэг туршлагууд

Багууд бүтээх процесст орчны хувьсагчдыг хэрхэн оруулж байгааг баталгаажуулах нь уян хатан байдлыг арилгах тухай биш, харин гүйцэтгэлийн явцад эдгээр утгуудыг хэрхэн ил гаргахыг хянах тухай юм.
 
Ангилал Шилдэг туршлага Энэ нь яагаад чухал вэ?
Нууц хадгалах газар Агуулах эсвэл CI нууцлалын менежерийг ашиглах Код доторх илрэлээс сэргийлдэг
Хандалтын хяналт Ажлын байр бүрт хандах эрхийг хязгаарлах Довтолгооны гадаргууг бууруулдаг
Бүртгэл Маск мэдрэмтгий утгууд Нэвчилтээс сэргийлнэ
Хамрах хүрээ ба ашиглалтын хугацаа Богино хугацааны итгэмжлэл ашиглах Тэсрэлтийн радиусыг хязгаарладаг
Баталгаажуулалт Хувьсагч байхгүй үед бүтэлгүйтэл үүснэ Аюултай бус нөхцөл байдлаас зайлсхийдэг

Яагаад олон CI/CD Аюулгүй байдлын хэрэгслүүд Miss Env Var Leaks

Ихэнх аюулгүй байдлын хэрэгслүүд нь бүтээх ажил дууссаны дараа код эсвэл хамаарлыг сканнердахад анхаарлаа төвлөрүүлдэг.

Гэсэн хэдий ч, ажиллуулах явцад орчны хувьсагчийн алдагдал гардаг.

A pipeline нууцыг зөв оруулж, тэдгээрийг лог эсвэл ажиллах үеийн зан төлөвөөр дамжуулан илчилж чадна. Сканнер асуудлыг илрүүлэх үед нууц нь аль хэдийн эвдэрсэн байж магадгүй юм.

Энэ нь илрүүлэлт болон урьдчилан сэргийлэх хоорондын зайг бий болгодог.

Багуудад үйл ажиллагаа явуулдаг хяналт хэрэгтэй pipeline дууссаны дараа биш, харин ажиллана.

Энэ нь ялангуяа багууд олон ажил болон гуравдагч талын алхмуудын дагуу бүтээх процесст ажиллах хугацааны хяналтгүйгээр орчны хувьсагчдыг оруулах үед маш чухал болдог.

Бид аюулгүй орчны хувьсах тарилгыг хэрхэн санал болгож байна вэ

Практикт үр дүнтэй хамгаалалт нь хэд хэдэн тууштай зарчимд суурилдаг.

Нууцыг гадаа хадгалах pipelineТэдгээрийг зөвхөн ажиллах үед оруулна уу. Хандалтыг шаардлагатай хамгийн бага хүрээнд хязгаарлана уу. Боломжтой үедээ богино хугацааны итгэмжлэлийг ашиглаарай.

Үүний зэрэгцээ, хэрхэн хийхийг хянаж байгаарай pipelines хандалтын мэдрэмтгий утгууд. Гэнэтийн хандалтын хэв маяг нь гоожиж харагдахаас өмнө эрсдэлийг илтгэдэг.

Энэ арга нь аюулгүй байдлыг реактив илрүүлэлтээс урьдчилан сэргийлэх хяналт руу шилжүүлдэг.

Xygeni хэрхэн хамгаалахад тусалдаг вэ CI/CD Нууц тарилга

Xygeni нь багууд бүтээх процесст орчны хувьсагчдыг оруулж, нууцууд үнэхээр ил болсон цэг дээр анхаарлаа төвлөрүүлдэг: дотор талд pipeline, гүйцэтгэх явцад.

Зөвхөн бүтээгдсэний дараах сканнерд найдахын оронд Xygeni хэрхэн хийхийг шинжилдэг pipelines нь ажиллах явцад орчны хувьсагчдыг ашигладаг. Үүнд нууцууд ажлуудад хэрхэн шилждэг, бүтээх алхамууд тэдгээрт хэрхэн ханддаг, хамаарлууд нь гүйцэтгэх орчинтой хэрхэн харилцан үйлчилдэг зэрэг орно.

Жишээлбэл, Xygeni нь хэзээ болохыг илрүүлж чадна pipeline хувьсагчдыг хэт өргөн хүрээнд ил гаргадаг, алхам нь мэдрэмтгий утгуудыг лог руу хэвлэх эрсдэлтэй үед, эсвэл хамаарал нь гэнэтийн байдлаар итгэмжлэлд хандахыг оролдох үед.

Үүний зэрэгцээ, guardrails бодлогыг шууд хэрэгжүүлэх pipelineБагууд аюултай бүтээн байгуулалтыг хааж, тодорхой ажлуудад нууцаар хандах эрхийг хязгаарлаж, эрсдэлтэй тохиргоог үйлдвэрлэлд хүрэхээс нь өмнө урьдчилан сэргийлэх боломжтой.

Учир нь энэ нь дотор нь болдог CI/CD ажлын урсгалаар хөгжүүлэгчид ажиллах арга барилаа өөрчлөх шаардлагагүй. Аюулгүй байдал нь нэг хэсэг болдог pipeline, тусдаа алхам биш.

Үүний үр дүнд багууд нууцыг хэрхэн ашиглаж байгааг харах, тэдгээрийг хэрхэн илчлэхийг хянах, хүргэлтийг удаашруулахгүйгээр алдагдлын эрсдлийг бууруулах боломжтой болдог.

Final бодол

Орчин үеийн бүтээх процесст орчны хувьсагчдыг оруулах нь зайлшгүй шаардлагатай CI/CD Гэсэн хэдий ч зохих хяналтгүйгээр энэ практик нь гүйцэтгэлийн олон үе шатанд нууцыг илчилж болзошгүй юм.

Гэсэн хэдий ч энэ нь ихэвчлэн анзаарагдахгүй байдаг эрсдэлийн давхаргыг бий болгодог.

Асуудал нь орчны хувьсагчдыг ашиглах эсэхэд биш, харин гүйцэтгэх явцад тэдгээрийн өртөлтийг хэрхэн хянах вэ гэдэгт оршино.

Орчин үеийн DevOps орчинд бүтээх явцад алдагдлыг урьдчилан сэргийлэх нь дараа нь илрүүлэхээс хамаагүй илүү чухал юм.

sca-tools-програм хангамжийн-бүтцийн-шинжилгээний-хэрэгсэл
Програм хангамжийн эрсдэлээ эрэмбэлэх, засах, аюулгүй болгох
Үнэгүй бүртгэлээ аваарай.
Зээлийн картын шаардлагагүй.

Програм хангамжийн хөгжүүлэлт болон хүргэлтээ аюулгүй байлгаарай

Xygeni Product Suite-тэй хамт