BUSINESS LOGIC VULNERABILITIES (WEB , APP and API)
- Business Logic VULNERABILITIES ຫຼື ການຈັດການຂໍ້ມູນທີ່ຜິດພາດໃນເຊີງທຸລະກິດທີ່ກໍ່ໃຫ້ເກີດຊ່ອງໂຫວ່ , ເຊຶ່ງເຫດຜົນຫລັກໆທີ່ກໍ່ໃຫ້ເກີດຊ່ອງໂຫວ່ສ່ວນຫລາຍຈະມາຈາກ ການອອກແບບລະບົບທີ່ບໍ່ຖືກຕ້ອງຕາມທີ່ຄວນຈະເປັນ (ບໍ່ໃສ່ໃຈໃນການອອກແບບລະບົບ) ແລະ ການພັດທະນາລະບົບ Web&App ທີ່ບໍ່ຄໍານຶງເຖິງຄວາມປອດໄພຂອງ Data ທີ່ Input ເຂົ້າມາ ແລະ Output ອອກໄປ ເຊຶ່ງອາດຈະສົ່ງຜົນກະທົບທີ່ຮ້າຍແຮງຕາມມາ ຕົວຢ່າງເຊັ່ນ: ຂໍ້ມູນທີ່ສໍາຄັນຂອງລູກຄ້າສາມາດເຂົ້າເຖິງໄດ້ໂດຍທີ່ບໍ່ໄດ້ຮັບອະນຸຍາດ ບໍ່ວ່າຈະເປັນ ຂໍ້ມູນທາງດ້ານການເງິນ ແລະ ຂໍ້ມູນບັດຕ່າງໆ…
ເຊິ່ງໃນບົດຄວາມນີ້ເຮົາຈະພາມາເບິ່ງພາບລວມຂອງ business logic vulnerabilities ວ່າສ່ວນຫລາຍເປັນແນວໃດ,ມີຜົນກະທົບຕໍ່ business ຫລາຍຊໍ່າໃດ ແລະ ເຮົາຈະມີວິທີປ້ອງກັນແນວໃດ…
How do business logic vulnerabilities occur ???
- ຕາມການສໍາຫລວດແລ້ວສ່ວນຫລາຍແມ່ນເກີດຂຶ້ນຍ້ອນ ຕົວຂອງ Developer ເອງທີ່ບໍ່ປະຕິບັດຕາມມາດຕະຖານການອອກແບບຄວາມປອດໄພທີ່ໄດ້ຖືກວາງອອກ ໄວ້ (Maybe lazy…) ບໍ່ວ່າຈະເປັນ (Web&APP,API OWASP TOP 10),ດ້ວຍເຫດຜົນນີ້ເອງຈະເຮັດໃຫ້ເກີດຜົນກະທົບຕາມມາທັນທີ ແລະ ຈະເຮັດໃຫ້ລະບົບມີຊ່ອງໂຫວ່ ເຊິ່ງອາດຈະນໍ່າໄປສູ່ຊ່ອງໂຫວ່ທີ່ດັງໆ ເຊັ່ນ: cross-site scripting (XSS) , input validation , file upload vulnerabilities ແລະ mass assignment.
— ເຮົາຈະພາມາເບິ່ງຊ່ອງໂຫວ່ແຕ່ລະອັນກັນວ່າມີຄວາມຫມາຍແນວໃດ —
Cross-site Scripting (XSS)
- Cross-site scripting (XSS) ຖືວ່າເປັນຊ່ອງໂຫວ່ທາງດ້ານ business logic vulnerability ອີກອັນຫນຶ່ງ ເຊິ່ງສາມາດເກີດຂຶ້ນໄດ້ຍ້ອນບໍ່ໄດ້ມີການ validate data ທີ່ໄດ້ຮັບມາຈາກຕົວຂອງ user , ເຊິ່ງອາດຈະພາໃຫ້ Hacker ສາມາດປ້ອນຂໍ້ມູນ,Code ທີ່ເປັນອັນຕະລາຍເຂົ້າມາໃນ Web Server ເຮົາໄດ້. ດ້ວຍຕົວຂອງຊ່ອງໂຫວ່ນີ້ເອງອາດຈະກໍ່ໃຫ້ເກີດຈຸດອ່ອນໃນລະບົບເຮົາຄື: Hacker ສາມາດເຂົ້າເຖິງຂໍ້ມູນຕ່າງທີ່ລະອຽດອ່ອນໄດ້ໂດຍທີ່ບໍ່ໄດ້ຮັບອະນຸຢາດ ຫຼື ກໍລະນິຮ້າຍແຮງອາດຈະຖືກຢຶດ Server ໄປເລີຍ… -,-
Input Validation
- Input validation ຕົວຂອງຜູ້ຂຽນຄິດວ່າສາມາດພົບເຈິໄດ້ໃນລະບົບສ່ວນຫລາຍ ຍ້ອນວ່າມີຄວາມຫຍຸ້ງຍາກ ໃນການເຮັດ validation ກັບ data ທີ່ input ເຂົ້າມາ ເຊິ່ງກໍ່ໃຫ້ເກີດມີການປ່ອຍປະລະເລີຍເປັນສ່ວນຫລາຍ , ແລະ ຕົວຂອງຊ່ອງໂຫວ່ນີ້ເອງ ສາມາດກໍ່ໃຫ້ເກີດການຮັບ input data ຈາກ user ໂດຍທີ່ເຮົາບໍ່ໄດ້ກໍາຫນົດໄວ້ ເຂົ້າໄປໃນ database ເຮົາ ບໍ່ວ່າຈະເປັນ SQL ຫລື NOSQL ແລະ ອາດຈະກໍ່ໃຫ້ເກີດມີການ injection ເກີດຂຶ້ນ.
File Upload Vulnerabilities
- File Upload Vulnerabilities ກໍເປັນອີກຫນຶ່ງຢ່າງທີ່ສາມາດມີຜົນກະທົບທາງທຸລະກິດເຮົາໄດ້ ຢົກຕົວຢ່າງອົງກອນໃດຫນຶ່ງໃຊ້ Infrastructure ຂອງ AWS ເປັນ S3 Service ເຊິ້ງໃນຕົວຂອງ S3 ເອງສາມາດເກັບ Data ໄດ້ free 50GB ຖ້າກາຍ ຈະໄດ້ເສີຍເງິນເພີ່ມ, ເຊິ່ງຖ້າຕົວຂອງລະບົບບໍ່ໄດ້ມີການ Validate the data’s size ທີ່ຮັບເຂົ້າມາ , ລະບົບອາດຈະຖືກໂຈມຕີໂດຍຜູ້ບໍ່ຫວັງດີໄດ້ໂດຍການ upload file ໃຫ່ຍໆ ເຂົ້າມາໃນລະບົບເຮົາ ເຊິ້ງຈະເຮັດໃຫ້ເຮົາເສຍ cost ກັບຈຸດນີ້ໄປທັນທີ.
Mass Assignment
- Mass Assignment ກໍເປັນຊ່ອງໂຫວ່ຫນຶ່ງທີ່ຮ້າຍແຮງທີ່ສາມາດສົ່ງຜົນກະທົບໃນທາງທຸລະກິດເຮົາໄດ້ , ຍົກຕົວຢ່າງ API ໃດຫນຶ່ງທີ່ມີການສະຫມັກສະມາຊິກແບບບໍ່ໄດ້ເຮັດການ validate ທີ່ຖືກຕ້ອງເຊິ່ງເຮັດໃຫ້ Hacker ສາມາດປ້ອນຂໍ້ມູນເພີ່ມເຂົ້າມາໃນ API ເຮົາຕື່ມໄດ້.
Normal API Request Regiter Flow:
POST /api/user/new HTTP/1.1
Host: longdog.local
Content-Type: application/json
Content-Length: 151
{
"user": "swizzz",
"password": "P@ssw0rd",
"email": "swizzz@lailaolab"
}An attacker can input more than a normal API request, suggesting “role.”
POST /api/user/new HTTP/1.1
Host: longdog.local
Content-Type: application/json
Content-Length: 151
{
"user": "swizzz",
"password": "P@ssw0rd",
"email": "swizzz@lailaolab",
"role": "admin"
}- ເຊິ່ງເຫດນີ້ເອງຈະສາມາດເຮັດໃຫ້ user ທີ່ສະຫມັກເຂົ້າມາໃຫມ່ກາຍເປັນ Admin ທັນທີ , ເຊິ່ງອາດຈະນໍາໄປສູ່ການເຂົ້າເຖິງຂໍໍ້ມູນຕ່າງໆໄດ້ໂດຍທີ່ບໍ່ໄດ້ຮັບອະນຸຍາດຈາກເຈົ້າຂອງລະບົບຕາມມີ່ຄວນຈະເປັນ ແລະ ອາດຈະກໍ່ໃຫ້ເກີດການປັ່ນປ່ວນຕ່າງໆຕາມມາ ບໍ່ວ່າຈະເປັນການຫາຜົນປະໂຫຍດທາງດ້ານການເງິນ ແລະ ອື່ນໆ.
The Impact of Business Logic Vulnerabilities
- ໃນມຸມມອງທາງທຸລະກິດເອງກໍສາມາດສົ່ງຜົນກະທົບຢ່າງຮ້າຍແຮງໄດ້ເຊັ້ນດຽວກັນ ເຊິ່ງອາດຈະນໍາໄປສູ່ຜົນກະທົບທາງດ້ານ ຄວາມປອດໄພທາງ Cyber , ທາງດ້ານການເງິນ ລວມໄປເຖິງຊື່ສຽງຂອງຕົວ ບໍລິສັດເອງ .
- ເຊິ່ງໃນຕົວຂອງຄວາມປອດໄພດ້ານ Cyber ເອງຈະສົ່ງຜົນກະທົບທາງດ້ານຂໍ້ມູນທີ່ລະອຽດອ່ອນຂອງລູກຄ້າທີ່ັຫລຸດອອກໄປໂດຍທີ່ບໍ່ໄດ້ຮັບອະນຸຍາດຢ່າງທີ່ເປັນ ເຊິ້ງອາດນໍາໄປສູ່ບັນຫາທີ່ຕາມມາຢ່າງຮຸນແຮງເຊັ່ນ: ລູກຄ້າບໍ່ມີຄວາມຫມັ້ນໃຈໃນການພັດທະນາລະບົບຂອງບໍລິສັດ ແລະ ອາດຈະເຮັດໃຫ້ບໍລິສັດຂາດຄວາມຫນ້າເຊື່ອຖືໃນທາງ Branding ໄປເລີຍ.
- ໃນສ່ວນຂອງທາງດ້ານການເງິນທາງບໍລິສັດອາດຈະເສຍໄປກັບການແກ້ໄຂບັນຫາຊ່ອງໂຫວ່ທີ່ເກີດຂຶ້ນ ແລະ ການເສຍເງິນໄປກັບການສ້າງມາດຕະຖານໃຫມ່ເພື່ອໃຫ້ກັບມາມີມາດຕະຖານ ແລະ ສື່ສຽງທີ່ດີອີກຄັ້ງ.
Security Risks
- Business logic vulnerabilities ສາມາດກໍ່ໃຫ້ເກີດໄພຄຸກຄາມຕໍ່ຄວາມປອດໄພຂອງອົງກອນໄດ້ . ຫລາຍໆຊ່ອງໂຫວ່ທີ່ເກີດຂຶ້ນອາດຈະນໍາໄປສູ່ການ bypass ລະບົບ ທີ່ທາງອົງກອນໄດ້ວາງອອກແຕ່ Hacker ສາມາດປ່ຽນແປງ ຫລື ກ້າວຂ້າມຈຸດນີ້ໄປໄດ້ ເຊິ່ງອາດຈະນໍາໄປສູ່ ຂໍ້ມູນຂອງລູກຄ້າ ສາມາດເຂົ້າເຖິງໄດ້ ຫລື ຫລຸດອອກໄປໃນທີ່ສຸດ ຍົກຕົວຢ່າງ App ທາງດ້ານການເງິນທີ່ມີຊ່ອງໂຫວ່ທາງດ້ານການຊໍາລະເງິນ Hacker ສາມາດ bypass ລະບົບການຊໍາລະເງິນໄປໄດ້ໂດຍທີ່ບໍ່ໄດ້ເສຍເງິນ ແລະ ຍັງສາມາດເຂົ້າເຖິງບັນຊີຂອງຄົນອື່ນໄດ້ ແລະ ຍັງສາມາດເບິ່ງຂໍ້ມູນທາງດ້ານການເງິນໄດ້ບໍ່ວ່າຈະເປັນ ລະຫັດບັດ,account , ລາຍຮັບ , ລາຍຈ່າຍ , ບັດປະຈໍາໂຕ ແລະ Passport.
Financial Losses
- Business logic vulnerabilities ຍັງສົ່ງຜົນກະທົບທາງດ້ານການເງິນຕໍ່ອົງກອນ ຍົກຕົວຢ່າງ App ສັ່ງອາຫານທີ່ Hacker ສາມາດຫາຜົນປະໂຫຍດຈາກຈຸດນີ້ໄດ້ ໂດຍການສັ່ງອາຫານແບບບໍ່ຈໍາກັດ ໂດຍທີ່ບໍ່ໄດ້ເສຍເງິນ , ຫລື ອາດຈະຫາຜົນປະໂຫຍດໂດຍການເຂົ້າເຖິງຂໍ້ມູນທາງດ້ານການເງິນຂອງລູກຄ້າບໍ່ວ່າຈະເປັນ ບັນຊີທະນາຄານ , ບັດ Credit ຕ່າງໆ ເຊິ້ງອາດຈະເຮັດໃຫ້ບໍລິສັດຕ້ອງຮັບຜິດຊອບຈຸດນີ້ໄປ ແລະ ກໍລະນີຮ້າຍແຮງອາດຈະເຮັດໃຫ້ບໍລິສັດຕ້ອງຮັບຜິດຊອບທັງຫມົດ ແລະ ຖືກດໍາເນີນຄະດີຕາມກົດຫມາຍ, ແລະ ນອກຈາກນີ້ Hacker ອາດຈະຫາວິທີ bypass ເພື່ອ ຍົກເລີກການສັ່ງ Order ຂອງລູກຄ້າທັງຫມົດເຊິ້ງຈະເຮັດໃຫ້ບໍລິສັດເສຍລາຍໄດ້ໃນຈຸດໆໄປ ແລະ ການທີ່ຈະແກ້ໄຂບັນຫາພວກນີ້ອາດຈະຕ້ອງໃຊ້ເງິນຈໍານວນຫລາຍ ແລະ ເສຍເວລາໃນການແກ້ໄຂ.
Reputation Impact
- Business logic vulnerabilitiesນອກຈາກຄວາມເສຍຫາຍທາງດ້ານການເງິນແລ້ວ ຊ່ອງໂຫວ່ພວກນີ້ຍັງສົ່ງຜົນກະທົບທາງດ້ານ ສື່ສຽງຂອງອົງກອນ ຫາກພົບວ່າຊ່ອງໂຫວ່ທີ່ເກີດຂຶ້ນນັ້ນສົ່ງຜົນກະທົບກັບຂໍ້ມູນ ແລະ ຄວາມເປັນສ່ວນໂຕຂອງລູກຄ້າ , ແນ່ນອນວ່າດ້ວຍເຫດການນີ້ຈະເຮັດໃຫ້ທາງ ບໍລິສັດ ເສຍຄວາມເຊື່ອຫມັ້ນ ຈາກລູກຄ້າ ແລະ ຜູ້ນໍາໃຊ້ທັນທີ , ຫນັກໄປກ່ອນນີ້ແມ່ນອາດຈະຖືກຟ້ອງຮ້ອງ ຈົນນໍາໄປສູ່ການຖືກປັບໄຫມຕາມລະບຽບກົດຫມາຍ ,ແນ່ນອນວ່າຊື່ສຽງກໍຈະຖືກທໍາລາຍໄປພ້ອມກັນ ລວມໄປເຖິງຄວາມຫມັ້ນຄົງທາງດ້ານການເງິນຂອງບໍລິສັດ.
Mitigating Business Logic Vulnerabilities
- ຊ່ອງໂຫວ່ດ້ານ Business logic vulnerabilities ທີ່ກ່າວມານັ້ນສ່ວນຫລາຍຈະສາມາດບັນເທົາ ແລະ ເຮັດແຜນຮັບມືກັບມັນໄດ້ແຕ່ບໍ່ແນ່ນອນ 100% ເພາະວ່າທຸກລະບົບມີໂອກາດທີ່ຈະມີຊ່ອງໂຫວ່ຫມົດບໍ່ມີລະບົບໃນໂລກນີ້ປອດໄພ 100% ບໍ່ວ່າຈະເປັນບໍລິສັດຊັ້ນນໍາລະດັບໂລກເອງກໍຕາມ . ດ້ວຍເຫດນີ້ເຮົາພຽງແຕ່ສາມາດລົດຊ່ອງໂຫວ່ພວກນີ້ລົງໄດ້ໂດຍການປະຕິບັດຕາມແຜນທີ່ວາງອອກຢ່າງເຂັ້ນງວດ.
Penetration Testing
- Penetration Testing ຫລືເອີ້ນສັ້ນໆວ່າ Pentest ເຊິ່ງຈະເປັນການຈໍາລອງ , ທົດສອບຄວາມປອດໄພຂອງລະບົບ ໂດຍຈະມີການເນັ້ນໂຈມຕີ Security ແລະ Business logic vulnerabilities ຂອງລະບົບ ໂດຍ Pentester (White Hacker) ເພື່ອທີ່ຈະຫາຊ່ອງໂຫວ່ ຫລື ຈຸດອ່ອນຂອງລະບົບ ຍົກຕົວຢ່າງ: ຮ້ານຂາຍຄໍາ ທີ່ມີໂອກາດຖືກປົ້ນສູງ ທາງເຈົ້າຂອງຈຶ່ງໄດ້ມີການຈ້າງ ໂຈນ ເພື່ອຈະໃຫ້ໂຈນເຂົ້າໄປລັກເອົາສິ່ງຂອງທີ່ມີຄ່າ , ຖ້າໂຈນລັກໄດ້ແລະມາແຈ້ງເຈົ້າຂອງຮ້ານວ່າມີຊ່ອງໂຫວ່ຢູ່ບ່ອນໃດ ເພື່ອຈະໄປພັດທະນາຮ້ານໃຫ້ມີຄວາມປອດໄພຍິ່ງຂຶ້ນ Pentesting ເອງກໍ່ເຊັ່ນດຽວກັນທີ່ເຮັດໃຫ້ເຮົາຮູ້ຈຸດອ່ອນຂອງລະບົບເຮົາເອງເພື່ອຈະນໍາໄປພັດທະນາຕໍ່ໄປໃຫ້ມີຄວາມປອດໄພທີ່ສູງຂຶ້ນ.
Secure Coding
ການຂຽນ Code ທີ່ມີຄວາມປອດໄພເອງກໍເປັນອີກຫນຶ່ງຢ່າງທີ່ສາມາດເຮັດໃຫ້ Business logic vulnerabilities ຫລຸດລົງໄດ້ ບໍ່ວ່າຈະເປັນການເລືອກ stack ທີ່ນິຍົມ ແລະ ມີຄວາມປອດໄພສູງຄື : MEAN and MERN stacks , ກໍສາມາດລົດບັນຫາຊ່ອງໂຫວ່ໄປໄດ້ລະດັບຫນຶ່ງ , ນອກຈາກນີ້ອາດຈະພິຈາລະນາ ເລືອກໃຊ້ Cloud Services ທີ່ນິຍົມ ແລະ ມີຄວາມປອດໄພສູງ ຢ່າງເຊັ່ນ: AWS, GOOGLE and ALIBABA Cloud ເປັນຕົ້ນ ,ລວມໄປເຖິງການປະຕິບັດຕາມຊ່ອງໂຫວ່ຂອງ OWASP TOP10 ຂອງ WEB,APP and API ພຽງເທົ່ານີ້ກໍສາມາດເຮັດໃຫ້ລະບົບມີຄວາມປອດໄພສູງໃນລະດັບຫນຶ່ງ.
Incident Response Plan
- ສຸດທ້າຍແລ້ວສິ່ງທີ່ສໍາຄັນທີ່ສຸດຄືອົງກອນຄວນມີແຜນຮັບມືກັບຊ່ອງໂຫວ່ທີ່ອາດຈະເກີດຂຶ້ນໃນອານາຄົດ ແລະ ເຫດການດ້ານ ຄວາມປອດໄພອື່ນທີ່ຄາດບໍ່ເຖິງຕ່າງໆເພາະວ່າບໍ່ມີລະບົບໃດປອດໄພ 100% , ເຊິ່ງເຮົາອາດຈະວາງແຜນສະເພາະຫນ້າໄວ້ຕາມທີ່ເຮົາຄິດວ່າຈະມີຊ່ອງໂຫວ່ນີ້ແນ່ນ່ອນໃນອານາຄົດ ແລະ ນອກຈາກນີ້ກໍຄວນມີການ backup data ໄວ້ ເວລາລະບົບມີບັນຫາ ແລະ ຄວນມີການກູ້ຄືນ , ລາຍງານສາເຫດ ໃຫ້ກັບ ທີມ ຫລື ລູກຄ້າໃຫ້ໄວທີ່ສຸດ ເພື່ອຈະໄດ້ຮັບການແກ້ໄຂໃຫ້ທັນເວລາ ແລະ ມີປະສິດທິພາບສູງສຸດ ພຽງເທົ່ານີ້ກໍສາມາດລົດຄວາມສ່ຽງທີ່ຈະເກີດຂຶ້ນຕໍ່ອົງກອນ ແລະ ລູກຄ້າໄດ້ແລ້ວ….
ດ້ວຍການນໍາໃຊ້ກົນລະຍຸດພວກນີ້ກໍສາມາດລົດຜົນກະທົບຕໍ່ຄວາມສ່ຽງທາງອົງກອນອນ ແລະ ທຸລະກິດໄດ້ລະດັບຫນຶ່ງແລ້ວ , ແຕ່ບໍ່ຮັບປະກັນວ່າຈະປອດໄພ ເພາະບໍ່ມີລະບົບໃດໃນໂລກປອດໄພ 100%
Get LAILAOLAB’s stories in your inbox
Join Medium for free to get updates from this writer.
Author: Swizzpk











