ຫອຍທີ່ຖືກຈຳກັດແມ່ນຫຍັງ ແລະ ເປັນຫຍັງການໂຈມຕີດ້ວຍຫອຍແບບໂດດຈຶ່ງມີຄວາມສຳຄັນ
shell ທີ່ຈຳກັດແມ່ນໃຊ້ເພື່ອຄວບຄຸມຄຳສັ່ງທີ່ຜູ້ໃຊ້ສາມາດປະຕິບັດໄດ້, ເຊິ່ງມັກຈະປ້ອງກັນການກະທຳຕ່າງໆເຊັ່ນ cd, ການເປີດໃຊ້ shell ໃໝ່, ຫຼື ການສົ່ງອອກຕົວແປສະພາບແວດລ້ອມ. ໂດຍປົກກະຕິແລ້ວພວກມັນຈະຖືກນຳໃຊ້ໃນ CI/CD ຕົວແທນ ຫຼື ສ້າງສະພາບແວດລ້ອມເພື່ອຈຳກັດພຶດຕິກຳຂອງຜູ້ໃຊ້. ເຖິງຢ່າງໃດກໍ່ຕາມ, ຜູ້ໂຈມຕີຊອກຫາວິທີທີ່ຈະປະຕິບັດການໂດດເຊວ, ເຊິ່ງເປັນວິທີການທີ່ໃຊ້ເພື່ອຫຼົບໜີສະພາບແວດລ້ອມຂອງເຊວທີ່ຖືກຈຳກັດ ແລະ ເຂົ້າເຖິງເຊວທີ່ບໍ່ຈຳກັດເຊັ່ນ bin/bash. ເມື່ອຢູ່ພາຍໃນແລ້ວ it, ຜູ້ໂຈມຕີມີການຄວບຄຸມບັນທັດຄຳສັ່ງຢ່າງເຕັມທີ່, ໂດຍຂ້າມຂໍ້ຈຳກັດທັງໝົດຂອງສະພາບແວດລ້ອມທີ່ຖືກຈຳກັດ.
ວິທີການເຮັດວຽກຂອງ Jumping Shell: ຈາກ Restricted ໄປຫາ bin/bash
ເປົ້າໝາຍຂອງການກະໂດດແບບ shell ແມ່ນເພື່ອໃຊ້ປະໂຫຍດຈາກຈຸດອ່ອນໃນສະພາບແວດລ້ອມທີ່ຈຳກັດ ແລະ ກະຕຸ້ນການຫຼົບໜີຂອງ shell ທີ່ນຳໄປສູ່ bin/bashເຕັກນິກທົ່ວໄປສຳລັບການຫຼົບໜີການໂຈມຕີດ້ວຍລະເບີດທີ່ຈຳກັດລວມມີ:
$ ls /bin/bash $ /bin/bashIf bin/bash ສາມາດເຂົ້າເຖິງໄດ້, ການອ້ອນວອນງ່າຍໆນີ້ເຮັດໃຫ້ມັນສຳເລັດ.
ວິທີການທົ່ວໄປອີກອັນໜຶ່ງ:
$ echo "/bin/bash" > run.sh $ sh run.sh ຜູ້ໂຈມຕີອາດຈະໃຊ້ປະໂຫຍດຈາກບັນນາທິການເຊັ່ນ: vi or ຫນ້ອຍ:
vi :set shell=/bin/bash :shell ວິທີການເຫຼົ່ານີ້ສະແດງໃຫ້ເຫັນວ່າການກະໂດດເປືອກຫອຍສາມາດນໍາໄປສູ່ການ bin/bash ການປະຕິບັດ, ໂດຍສາມາດຫຼີກລ່ຽງການປົກປ້ອງເປືອກທີ່ຈຳກັດໄດ້ຢ່າງມີປະສິດທິພາບ.
ຄວາມສ່ຽງທີ່ແທ້ຈິງຂອງການໂຈມຕີເຫຼົ່ານີ້ໃນ DevOps
ໃນການແບ່ງປັນ CI/CD ສະພາບແວດລ້ອມ, ເປືອກຫອຍທີ່ຖືກຈຳກັດແມ່ນໃຊ້ເພື່ອແຍກການສ້າງ ແລະ ຫຼຸດຜ່ອນຄວາມສ່ຽງ. ແຕ່ເມື່ອຜູ້ໂຈມຕີປະສົບຜົນສຳເລັດດ້ວຍເປືອກຫອຍແບບໂດດ ແລະ ເຂົ້າເຖິງ bin/bash, ຮູບແບບຄວາມປອດໄພລົ້ມສະຫຼາຍ.
ຄວາມສ່ຽງລວມມີ:
- ການເຂົ້າເຖິງຄວາມລັບຂອງສິ່ງແວດລ້ອມໂດຍບໍ່ໄດ້ຮັບອະນຸຍາດ
- ການເພີ່ມສິດທິພິເສດຜ່ານການບໍ່ຈຳກັດ bin/bash
- ການແຊກແຊງການກໍ່ສ້າງ pipelines ຫຼື ສິ່ງປະດິດ
- ການນຳໃຊ້ເຄື່ອງມືທີ່ຍືນຍົງພາຍໃນ pipeline
ເປືອກທີ່ຈຳກັດການຫຼົບໜີ bin/bash ເປີດປະຕູສູ່ການປະນີປະນອມລະບົບຢ່າງຄົບຖ້ວນ, ເຊິ່ງມັກຈະເປັນການເຄື່ອນໄຫວທຳອິດໃນຂອບເຂດທີ່ກວ້າງຂວາງກວ່າ ການໂຈມຕີ DevSecOps.
ການຕິດຕາມກວດກາ ແລະ ການກວດພົບການໂດດຂອງ Shell ແລະ bin/bash Escapes
ເພື່ອກວດຫາພຶດຕິກຳຂອງ jumping shell ແລະ ສະກັດກັ້ນຄວາມພະຍາຍາມຂອງການ escape shell ທີ່ຈຳກັດ, ທີມງານຮັກສາຄວາມປອດໄພຕ້ອງ:
- ບັນທຶກກິດຈະກຳຂອງເຊວທັງໝົດ, ໂດຍສະເພາະ / bin / bash ການປະຕິບັດ
- ຕິດຕາມກວດກາການໃຊ້ຕົວແກ້ໄຂໃນທາງທີ່ຜິດ ແລະ ການໃຊ້ສະຄຣິບເປັນເວັກເຕີ spawn ຂອງເຊວ
- ຕິດຕາມການເຂົ້າເຖິງໄຟລ໌ config ຂອງ shell ເຊັ່ນ .bashrc or .bash_ ໂປຣໄຟລ
ຮູບແບບພຶດຕິກຳເຊັ່ນ: ການເປີດຕົວ bin/bash ຈາກສະພາບແວດລ້ອມທີ່ຈຳກັດຄວນຖືກພິຈາລະນາວ່າເປັນການແຈ້ງເຕືອນທີ່ມີຄວາມສຳຄັນສູງ. ການກວດພົບມັນແຕ່ຫົວທີສາມາດປ້ອງກັນການເຄື່ອນໄຫວຂ້າງທີ່ເລິກເຊິ່ງກວ່າໄດ້.
ການປ້ອງກັນການໂຈມຕີ ແລະ ການຂຸດຄົ້ນແບບ Shell ທີ່ຈຳກັດການຫຼົບໜີ
ເພື່ອຫຼຸດຜ່ອນຄວາມສ່ຽງດ້ານການກະໂດດຂອງລະເບີດ ແລະ ປ້ອງກັນບໍ່ໃຫ້ຜູ້ໂຈມຕີຍິງປືນ bin/bash:
- ເຮັດໃຫ້ເປືອກຫອຍທີ່ຖືກຈຳກັດແຂງຂຶ້ນ: ເອົາອອກ ຫຼື ຕັນ ການເຂົ້າເຖິງ
- ໃຊ້ AppArmor ຫຼື SELinux ເພື່ອຈຳກັດການປະຕິບັດຄຳສັ່ງ
- ບັງຄັບໃຊ້ສິດທິພິເສດໜ້ອຍທີ່ສຸດໃນທົ່ວ CI/CD ບົດບາດ ແລະ ຜູ້ແລ່ນ
- ສ້າງ Containerize ດ້ວຍຮູບພາບທີ່ບໍ່ມີການກະຈາຍທີ່ບໍ່ມີເປືອກເຊັ່ນ: bin/bash
- ກວດສອບສະພາບແວດລ້ອມກ່ອນ ແລະ ຫຼັງການສ້າງເພື່ອກວດຈັບຄວາມຜິດປົກກະຕິ
ການປ້ອງກັນສະຖານະການການຫຼົບໜີຂອງ shell ທີ່ຈຳກັດຮຽກຮ້ອງໃຫ້ມີການຄວບຄຸມຫຼາຍຊັ້ນ, ບໍ່ພຽງແຕ່ອີງໃສ່ shell ທີ່ຈຳກັດເທົ່ານັ້ນ. ຢ່າສົມມຸດວ່າ shell ທີ່ຈຳກັດຈະປອດໄພຖ້າ bin/bash ແມ່ນມີທ່າແຮງທີ່ຈະສາມາດເຂົ້າເຖິງໄດ້.
ສະຫຼຸບ: ການຫຼົບໜີຈາກເປືອກຫອຍແມ່ນຈຸດເຂົ້າ
ລູກປືນທີ່ຖືກຈຳກັດແມ່ນຊັ້ນປ້ອງກັນ, ບໍ່ແມ່ນການຮັບປະກັນ. ການໂຈມຕີດ້ວຍລູກປືນແບບກະໂດດແມ່ນແນໃສ່ການໂດດດ່ຽວທີ່ອ່ອນແອ ແລະ ການກວດສອບຄວາມຖືກຕ້ອງທີ່ບໍ່ດີ. ເມື່ອຢູ່ພາຍໃນແລ້ວ / bin / bash, ຜູ້ໂຈມຕີສາມາດປ່ຽນທິດທາງ, ຄົງຢູ່ ແລະ ປະນີປະນອມໂຄງສ້າງພື້ນຖານ DevSecOps ໄດ້.
ການກວດຈັບ ແລະ ການແຍກຕົວແມ່ນສິ່ງຈຳເປັນ. ການລວມເອົາການບັນທຶກຄຳສັ່ງ, ສະພາບແວດລ້ອມທີ່ຈຳກັດ, ແລະ ການເຮັດຄວາມສະອາດຜູ້ຈັດການແພັກເກດທີ່ເໝາະສົມຊ່ວຍຫຼຸດຜ່ອນການເປີດເຜີຍ.
ສຸດທ້າຍ, ເຄື່ອງມືຕ່າງໆເຊັ່ນ ຊີເກນີ ສະເໜີໃຫ້ເຫັນເຖິງຄວາມສ່ຽງເຫຼົ່ານີ້. ພວກມັນຊ່ວຍບັງຄັບໃຊ້ຄວາມສົມບູນຂອງລະຫັດ, ກວດພົບພຶດຕິກຳທີ່ຜິດປົກກະຕິຂອງ shell, ແລະ ຮັບປະກັນຂອງທ່ານ pipelineຈາກໄພຂົ່ມຂູ່ພາຍໃນ ແລະ ພາຍນອກ, ລວມທັງສິ່ງທີ່ເລີ່ມຕົ້ນດ້ວຍການກະໂດດງ່າຍໆໄປຫາ / bin / bash ຫຼື ພະຍາຍາມຫຼົບໜີສະພາບແວດລ້ອມທີ່ຖືກຈຳກັດ.






