ວິທີທີ່ຂ້ອຍສາມາດເຂົ້າເຖິງ homebrew ໃນ 30 ນາທີ

ບັນຫານີ້ຖືກລົງໃນ blog homebrew ທີ່ https://brew.sh/2018/08/05/security-incident-disclosure/.

ນັບຕັ້ງແຕ່ເຫດການທີ່ເກີດຂື້ນເມື່ອບໍ່ດົນມານີ້ກັບ NPM, RubyGems, ແລະ Gentoo, ຂ້ອຍໄດ້ຮັບຄວາມສົນໃຈແລະກັງວົນຫລາຍຂຶ້ນວ່າຜູ້ຈັດການຊຸດສາມາດຖືກ ນຳ ໃຊ້ເພື່ອເຜີຍແຜ່ຊອບແວທີ່ເປັນອັນຕະລາຍໃນການໂຈມຕີຕ່ອງໂສ້ການສະ ໜອງ. ໂດຍສະເພາະ, ວິທີການທີ່ຜູ້ຄວບຄຸມແລະພື້ນຖານໂຄງລ່າງຂອງໂຄງການເຫຼົ່ານີ້ສາມາດຖືກໂຈມຕີເປັນແວ່ນແຍງການໂຈມຕີ.

ໃນວັນທີ 31 ເດືອນມິຖຸນາ, ຂ້ອຍໄດ້ເຂົ້າໄປໃນຄວາມຕັ້ງໃຈທີ່ຈະເບິ່ງວ່າຂ້ອຍສາມາດເຂົ້າເຖິງຫໍສະມຸດ GitHub ຂອງ Homebrew ໄດ້ບໍ. ປະມານ 30 ນາທີຕໍ່ມາ, ຂ້າພະເຈົ້າໄດ້ເອົາໃຈໃສ່ຜະລິດຕະພັນເຄື່ອງຈັກຜະລິດ / homebrew ທຳ ອິດຂອງຂ້າພະເຈົ້າ.

ຮົ່ວ

ກົນລະຍຸດເບື້ອງຕົ້ນຂອງຂ້ອຍແມ່ນອີງໃສ່ການລັກ ID. ຊອກເບິ່ງວ່າໃບຢັ້ງຢືນຄວາມຖືກຕ້ອງໄດ້ຮົ່ວໄຫຼຈາກສະມາຊິກຂອງອົງການ Homebrew GitHub.

ເຄື່ອງມື OSSINT ໂດຍ Michael Henriksen ເອີ້ນວ່າ gitrob ເຮັດໃຫ້ອັດຕະໂນມັດການຄົ້ນຫານີ້ງ່າຍດາຍແທ້ໆ. ຂ້າພະເຈົ້າໄດ້ທົດສອບມັນຢູ່ໃນອົງກອນ homebrew ແຕ່ສຸດທ້າຍກໍ່ບໍ່ເຫັນຫຍັງ ໜ້າ ສົນໃຈ.

ຕໍ່ໄປ, ຂ້າພະເຈົ້າໄດ້ເບິ່ງບັນຫາຕ່າງໆທີ່ໄດ້ປະກາດກ່ອນ ໜ້າ ນີ້ໃນ https://hackerone.com/Homebrew. ຈາກບ່ອນນັ້ນຂ້ອຍໄດ້ພົບວ່າ Homebrew ກຳ ລັງ ດຳ ເນີນການຕົວຢ່າງ Jenkins ເຊິ່ງເປັນ (ໂດຍເຈດຕະນາ) ທີ່ມີຢູ່ໃນສາທາລະນະທີ່ https://jenkins.brew.sh.

ຫຼັງຈາກການຂຸດລົງບາງຢ່າງ, ຂ້າພະເຈົ້າສັງເກດເຫັນບາງສິ່ງບາງຢ່າງທີ່ຫນ້າສົນໃຈ; ສ້າງໃນໂຄງການ "ຂວດນໍ້າປະປາ Homebrew" ທີ່ ດຳ ເນີນການຊຸກຍູ້ທີ່ຖືກຕ້ອງ ສຳ ລັບ BrewTestBot / homebrew repo:

ສິ່ງນີ້ເຮັດໃຫ້ຂ້ອຍຄິດວ່າ: "ຂໍ້ມູນປະ ຈຳ ທີ່ເກັບໄວ້ຢູ່ໃສ?". ຂ້ອຍສັງເກດເຫັນການເຊື່ອມໂຍງ "ຕົວແປສິ່ງແວດລ້ອມ" ຢູ່ເບື້ອງຊ້າຍທີ່ເຮັດໃຫ້ມີ GitHub API ທີ່ຖືກເປີດເຜີຍ:

ຂ້າພະເຈົ້າໄດ້ທົດສອບມັນຢູ່ໃນເວັບໄຊທ໌້ເພື່ອ ກຳ ນົດເຂດທີ່ມີສັນຍາລັກ:

$ curl https://api.github.com/user/repos -u $ GITHUB_API_TOKEN: x-oauth-basic | jq '. [] | {repo: .full_name, ການອະນຸຍາດ: .permissions} '{"repo": "BrewTestBot / homebrew-core", "ການອະນຸຍາດ": {"admin": true, "push": true, "pull": true}} { "repo": "Homebrew / Brew", "ການອະນຸຍາດ": {"admin": ການຊຸກຍູ້ທີ່ບໍ່ຖືກຕ້ອງ: ຄວາມຈິງ, "ລາກ": ຄວາມຈິງ}} {"repo": "Homebrew / formulae.brew.sh", "ການອະນຸຍາດ ": {" admin ": false" push ": true," pull ": true}} {" repo ":" homebrew / homebrew core "," ການອະນຸຍາດ ": {" admin ": false" push ": true, "ແຕ້ມ": ຄວາມຈິງ}}

ເຊິ່ງຊີ້ໃຫ້ເຫັນວ່າຂ້ອຍສາມາດເຂົ້າເຖິງ repos homebrew ສູນກາງເຫຼົ່ານີ້:

  • Homebrew / ເບຍ
  • ຫລັກ Homebrew / homebrew
  • Homebrew / formulae.brew.sh

ເພື່ອໃຫ້ແນ່ໃຈວ່າ, ຂ້ອຍໄດ້ທົດສອບສິ່ງນີ້ໂດຍການສ້າງ blob ໃນ repo homebrew / homebrew core:

$ curl https://api.github.com/repos/Homebrew/homebrew-core/git/blobs -u $ GITHUB_API_TOKEN: x-oauth-basic -d '{"ເນື້ອຫາ": "ທົດສອບ"}' -H "ເນື້ອຫາ -Type: application / json "{sha: 30d74d258442c7c65512eafab474568dd706c430," url ":" https://api.github.com/repos/Homebrew/homebrew-core/git/blobs/30d74d258442c7c65512eaf6474530 "

ຈາກນັ້ນລາວໄດ້ລາຍງານບັນຫາດັ່ງກ່າວໃຫ້ກັບຜູ້ດູແລຮັກສາ homebrew.

ນັ້ນ ໝາຍ ຄວາມວ່າແນວໃດ

ຂ້າພະເຈົ້າຂໍເວົ້າໃນແງ່ມຸມນີ້:

  • ປະຊາຊົນຫຼາຍຮ້ອຍຫຼາຍພັນຄົນໃຊ້ homebrew, ລວມທັງພະນັກງານຈາກບາງບໍລິສັດທີ່ໃຫຍ່ທີ່ສຸດໃນ Silicon Valley.
  • ຊຸດທີ່ຕິດຕັ້ງຫຼາຍທີ່ສຸດໃນ 30 ວັນທີ່ຜ່ານມາແມ່ນ openssl, ເຊິ່ງໄດ້ຕິດຕັ້ງຫລາຍກວ່າ 500,000 ເທື່ອ: https://formulae.brew.sh/analytics/install/30d/
  • ຂ້ອຍໄດ້ມີການເຂົ້າເຖິງໂດຍກົງໃນການ ນຳ ໃຊ້ homebrew / homebrew repo core. ໃນເວລານັ້ນ, repo ນີ້ບໍ່ມີສາຂາແມ່ບົດທີ່ຖືກປົກປ້ອງ, ຊຶ່ງຫມາຍຄວາມວ່າຂ້ອຍຈະສາມາດປ່ຽນເປັນ refs / Heads / master ໄດ້ໄວ. ທຸກໆຄົນທີ່ຕິດຕັ້ງ homebrew ໃໝ່ໆ ຫລືປະຕິບັດການປັບປຸງຜະລິດເບຍຈະມີສູດອັນຕະລາຍຂອງຂ້ອຍ.

ຖ້າຂ້ອຍເປັນນັກສະແດງທີ່ເປັນອັນຕະລາຍ, ຂ້ອຍອາດຈະມີການປ່ຽນແປງນ້ອຍໆ, ໂດຍບໍ່ໄດ້ສັງເກດເຫັນກັບສູດ OpenSSL ແລະວາງປະຕູຢູ່ຫລັງຄອມພິວເຕີ້ທີ່ຕິດຕັ້ງມັນ.

ຖ້າຂ້ອຍເຂົ້າເຖິງ ຄຳ ຫມັ້ນສັນຍາພາຍໃນ 30 ນາທີ, ປະເທດຊາດທີ່ມີຊັບພະຍາກອນທີ່ມີຄວາມຕັ້ງໃຈສາມາດເຮັດແນວໃດຕໍ່ກັບທີມອາສາສະ ໝັກ 17 ຄົນ? ມີເຄືອຂ່າຍຂອງບໍລິສັດເອກະຊົນ ຈຳ ນວນເທົ່າໃດທີ່ສາມາດເຂົ້າເຖິງໄດ້? ວິທີການຈໍານວນຫຼາຍຂອງເຫຼົ່ານີ້ສາມາດຖືກນໍາໃຊ້ເພື່ອເພີ່ມທະວີການລະເມີດຂໍ້ມູນໃນລະດັບໃຫຍ່? ລະບົບການຄຸ້ມຄອງຊຸດອື່ນໃດທີ່ມີຈຸດອ່ອນທີ່ຄ້າຍຄືກັນ?

ນີ້ແມ່ນຄວາມກັງວົນທີ່ເພີ່ມຂື້ນຂອງຂ້ອຍ, ແລະມັນໄດ້ຖືກພິສູດອີກເທື່ອ ໜຶ່ງ ແລະເທື່ອວ່າຜູ້ຈັດການຊຸດແລະການຮົ່ວໄຫລ ID ແມ່ນຄວາມອ່ອນແອໃນຄວາມປອດໄພຂອງອິນເຕີເນັດແລະການໂຈມຕີໃນຕ່ອງໂສ້ການສະ ໜອງ ກໍ່ເປັນໄພຂົ່ມຂູ່ທີ່ແທ້ຈິງແລະຕໍ່ເນື່ອງ. ນີ້ບໍ່ແມ່ນຈຸດອ່ອນຂອງ homebrew, ແຕ່ເປັນບັນຫາທີ່ເປັນລະບົບໃນອຸດສາຫະ ກຳ ທີ່ພວກເຮົາຕ້ອງການການຄົ້ນຄວ້າຄວາມປອດໄພຫລາຍຂື້ນ.

ສິ່ງທີ່ ກຳ ລັງເຮັດຢູ່

Homebrew ໄດ້ປະກາດບັນຫາດັ່ງກ່າວຢ່າງເປັນທາງການໃນ blog ທີ່ https://brew.sh/2018/08/05/security-incident-disclosure/. ທີມງານ homebrew ໄດ້ເຮັດວຽກຮ່ວມກັບ GitHub ເພື່ອຮັບປະກັນວ່າ token ການເຂົ້າເຖິງທີ່ລະບຸໄວ້ບໍ່ໄດ້ຖືກ ນຳ ໃຊ້ທີ່ເປັນອັນຕະລາຍແລະບໍ່ມີການກະ ທຳ ທີ່ບໍ່ຄາດຄິດໃດໆກັບ repos homebrew ກາງ. ຂໍຂອບໃຈເປັນພິເສດຂອງຂ້ອຍທີ່ຈະໄປຫາ Mike McQuaid ສຳ ລັບການປຸງແຕ່ງບົດລາຍງານຂອງຂ້ອຍຢ່າງລວດໄວແລະເປັນມືອາຊີບໃນຊ່ວງພັກພໍ່ຂອງລາວ.

ມັນເປັນທີ່ຈະແຈ້ງວ່າມີຫຼາຍຢ່າງທີ່ສາມາດເຮັດໄດ້ເພື່ອປັບປຸງຄວາມປອດໄພຂອງໂຄງການ homebrew. ຖ້າທ່ານໃຊ້ homebrew ຢູ່ບ່ອນເຮັດວຽກຂອງທ່ານ, ທ່ານຄວນຂໍໃຫ້ພວກເຂົາບໍລິຈາກໃນໂຄງການ. ໃນຖານະເປັນອຸດສາຫະ ກຳ, ພວກເຮົາ ຈຳ ເປັນຕ້ອງລົງທືນເພື່ອຄວາມຜາສຸກຂອງໂປແກຼມ OSS ຫຼັກທີ່ພວກເຮົາທຸກຄົນເພິ່ງພາອາໄສ.