ຄວາມສ່ຽງທີ່ບໍ່ມີຄວາມສ່ຽງ OAUID | ວິທີການປະຕິບັດການອະນຸຍາດໃຫ້ປອດໄພໃນການສະຫມັກເວັບຂອງທ່ານ

Anonim
ຄວາມສ່ຽງທີ່ບໍ່ມີຄວາມສ່ຽງ OAUID | ວິທີການປະຕິບັດການອະນຸຍາດໃຫ້ປອດໄພໃນການສະຫມັກເວັບຂອງທ່ານ 2740_1

ບົດຂຽນນີ້ຈະຈັດການກັບຄວາມອ່ອນແອ OAIBT ທີ່ມີຊື່ສຽງ. ຜູ້ອ່ານຍັງຈະຮຽນຮູ້ວິທີປະຕິບັດການອະນຸຍາດທີ່ປອດໄພແລະປອດໄພໃນ Web Application.

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

ການແນະນໍາ

isouth 2.0 ອະນຸສັນຍາແມ່ນຖືກນໍາໃຊ້ຢ່າງກວ້າງຂວາງໃນການນໍາໃຊ້ຕ່າງໆ. ການນໍາໃຊ້ມັນ, ການໂຕ້ຕອບຜູ້ໃຊ້ທີ່ສະດວກສະບາຍກາຍເປັນທີ່ມີຢູ່, ການກວດສອບຄວາມຖືກຕ້ອງແລະການອະນຸຍາດທີ່ງ່າຍກວ່າ, ທຽບກັບວິທີການປະເພນີສໍາລັບການໃສ່ຊື່ຜູ້ໃຊ້ແລະລະຫັດຜ່ານ. ດ້ວຍການຈັດຕັ້ງປະຕິບັດທີ່ເຫມາະສົມແລະຄິດ, ອະນຸສັນຍາ OAUTH ຈະປອດໄພກວ່າການອະນຸຍາດແບບດັ້ງເດີມ, ເພາະວ່າຜູ້ໃຊ້ບໍ່ຈໍາເປັນຕ້ອງແບ່ງປັນຂໍ້ມູນການບັນຊີຂອງພວກເຂົາດ້ວຍການເຂົ້າເຖິງຊັບພະຍາກອນສະເພາະ. ຜູ້ໃຊ້ມັກຈະເຂົ້າສູ່ລະບົບໂດຍໃຊ້ບັນຊີ Google, Facebook ຫຼື LinkedIn, ແທນທີ່ຈະລົງທະບຽນເຂົ້າໃຫມ່ທຸກໆເວັບໄຊທ໌້. ດັ່ງນັ້ນ, ອະນຸສັນຍາ Oauth ໄດ້ເຮັດໃຫ້ຊີວິດຂອງພວກເຮົາລຽບງ່າຍ.

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

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

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

ການລັກຂະໂມຍ Tockey Oauth ໂດຍໃຊ້ຫົວຫນ້າອ້າງອີງ

ເມື່ອຄໍາຮ້ອງຂໍການອະນຸຍາດຮຽກຮ້ອງໃນນາມຂອງຜູ້ໃຊ້ທີ່ Server OAUTHE, ບຸກຄົນທີ່ໄດ້ຮັບລະຫັດເຂົ້າແລະສົ່ງກັບໄປທີ່ server ສໍາລັບການກວດກາຕໍ່ໄປ. ຖ້າໃນລະຫວ່າງການເຮັດວຽກທີ່ຜູ້ໃຊ້ຈະຖືກໂອນໄປຫາຫນ້າອື່ນ, ລະຫັດຈະຖືກເຫັນໃນຫົວຂໍ້ "ຜູ້ອ້າງອີງ" ຂອງການຮ້ອງຂໍ HTTP. ດັ່ງນັ້ນ, ລະຫັດຈະຕົກຢູ່ໃນເວັບໄຊທ໌ພາຍນອກ, ເຊິ່ງຈະເປັນໄພຂົ່ມຂູ່ຂອງຂໍ້ມູນຜູ້ໃຊ້ທີ່ລົງທະບຽນຢູ່ໃນເຊີຟເວີ OAURT.

ຫມາຍເຫດ: ຫົວຂໍ້ອ້າງອີງແມ່ນຫົວຫນ້າທີ່ອ້າງອີງ HTTP, ມັນສົ່ງຕໍ່ URL ທີ່ມາຈາກການຮ້ອງຂໍ.

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

ການລັກຂະໂມຍ Tockey Oauth ໂດຍໃຊ້ພາລາມິເຕີ Redirect_uri

ຄໍາຮ້ອງສະຫມັກລິເລີ່ມຂັ້ນຕອນການອະນຸຍາດໂດຍການສົ່ງຄໍາຮ້ອງຂໍໃຫ້ກັບເຄື່ອງແມ່ຂ່າຍ OAID:

https://www.example.com/ignin/Signin/Authorize?..........

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

https://www.example.com/ignin/Signin/Authorize?................

ບາງຄັ້ງ URL ທີ່ຄ້າຍຄືກັນຖືກບລັອກ. ຜູ້ໂຈມຕີສາມາດໂອນຂໍ້ມູນທີ່ໄດ້ຮັບໃນ URL ເປີດ, ເຊັ່ນນີ້:

https://www.example.com/oauth20_authort.google.com/backToOthsubt.com/Seviltpset://evil.com.

ຫຼືນີ້:

https://www.example.com/auth2/authiens ບໍ?

ໃນເວລາທີ່ຈັດຕັ້ງປະຕິບັດ OAUTI ຢາ, ທ່ານບໍ່ສາມາດລວມເອົາໂດເມນທັງຫມົດໃນລາຍການຂາວ. ພຽງແຕ່ກົດຫມາຍຈໍານວນຫນຶ່ງເທົ່ານັ້ນທີ່ຄວນໄດ້ຮັບການເພີ່ມເຂົ້າໃນ "Redirect_uri" ບໍ່ໄດ້ໂອນຄໍາຮ້ອງຂໍໃຫ້ເປີດການປ່ຽນເສັ້ນທາງ.

ການປອມແປງຂອງການຮ້ອງຂໍເສັ້ນຂ້າມ

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

ມັນຄຸ້ມຄ່າທີ່ຈະເບິ່ງວິທີການໂຈມຕີ CSRF ໄດ້ຖືກປະຕິບັດໃນ OAUTH ແລະໃນຖານະທີ່ "ລັດ" ພາລາມິເຕີ "ລັດ" ສາມາດໃຊ້ເພື່ອຫຼຸດຜ່ອນຜົນກະທົບຂອງຄວາມສ່ຽງ.

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

ສະນັ້ນ, ຂ້ອຍສາມາດປ້ອງກັນສະຖານະການນີ້ໂດຍໃຊ້ພາລາມິເຕີ "ລັດ" ໄດ້ແນວໃດ?

ແອັບພລິເຄຊັນຕ້ອງສ້າງມູນຄ່າທີ່ອີງໃສ່ບັນຊີແຫຼ່ງຂໍ້ມູນ (ຕົວຢ່າງ, ໃຫ້ໃຊ້ລະຫັດຜູ້ໃຊ້ Hash Key). ມັນບໍ່ສໍາຄັນຫຍັງເລີຍ, ສິ່ງທີ່ສໍາຄັນແມ່ນວ່າຄຸນຄ່າແມ່ນມີຄວາມເປັນເອກະລັກແລະສ້າງຂື້ນໂດຍໃຊ້ຂໍ້ມູນສ່ວນຕົວກ່ຽວກັບຜູ້ໃຊ້ສ່ວນຕົວ. ມັນຖືກມອບຫມາຍໃຫ້ເປັນພາລາມິເຕີ "ລັດ".

ມູນຄ່ານີ້ຖືກສົ່ງຕໍ່ໃຫ້ຜູ້ໃຫ້ບໍລິການເມື່ອປ່ຽນເສັ້ນທາງ. ດຽວນີ້ The Hacker ໄດ້ເຊື້ອເຊີນຜູ້ເຄາະຮ້າຍໃຫ້ເປີດ URL, ເຊິ່ງລາວໄດ້ເກັບຮັກສາໄວ້.

ລະຫັດການອະນຸຍາດຖືກອອກໃຫ້ແລະສົ່ງກັບລູກຄ້າເຂົ້າຮ່ວມໃນກອງປະຊຸມພ້ອມກັບພາລາມິເຕີ "ລັດ".

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

ຄວາມສ່ຽງອື່ນໆທີ່ຖືກກວດພົບໃນເວລາທີ່ປະຕິບັດການຈັດຕັ້ງປະຕິບັດການປະຕິບັດຄວາມສາມາດໃນການໃຊ້ XSS (ບາງຄັ້ງທີ່ກົດປຸ່ມ ລະຫັດການອະນຸຍາດສາມາດນໍາໃຊ້ໄດ້ຫຼາຍກ່ວາຫນຶ່ງຄັ້ງເພື່ອອອກການເຂົ້າເຖິງຫຼາຍກ່ວານັ້ນ). ຄວາມອ່ອນແອເຫລົ່ານີ້ແມ່ນມີຫນ້ອຍກ່ວາສິ່ງທີ່ອະທິບາຍຂ້າງເທິງ, ແຕ່ມັນບໍ່ໄດ້ເຮັດໃຫ້ພວກມັນມີອັນຕະລາຍຫນ້ອຍລົງ. ນັກພັດທະນາຄວນຮູ້ທຸກການປະຕິບັດທີ່ຈໍາເປັນເພື່ອຮັບປະກັນການດໍາເນີນງານທີ່ຫນ້າເຊື່ອຖືຂອງການສະຫມັກເວັບຂອງມັນ.

ຜູ້ຂຽນບົດຄວາມທີ່ຖືກແປ: Simon Saliba.

ສໍາຄັນ! ຂໍ້ມູນພຽງແຕ່ສໍາລັບຈຸດປະສົງທາງວິຊາການເທົ່ານັ້ນ. ກະລຸນາປະຕິບັດຕາມກົດຫມາຍແລະຢ່າໃຊ້ຂໍ້ມູນນີ້ເພື່ອຈຸດປະສົງທີ່ຜິດກົດຫມາຍ.

ອຸປະກອນທີ່ຫນ້າສົນໃຈຫຼາຍໃນ Cisoclub.ru. ຈອງກັບພວກເຮົາ: Facebook | vk | Twitter | Instagram | ໂທລະພາບ | Zen | Messenger | ICQ ໃຫມ່ | YouTube | ກໍາມະຈອນ.

ອ່ານ​ຕື່ມ