OWASP (Open Web Application Security Project)

Extosoft company
Security Breaker
Published in
3 min readApr 26, 2020

OWASP คือ มาตราฐานความปลอดภัยของเว็บแอปพลิเคชัน ที่ร่วมกันจัดทำโดยองค์กรไม่แสวงหาผลกำไรที่เน้นวิจัยทางด้าน Web Application Security โดยจะมี community เกี่ยวกับ เอกสาร เครื่องมือและเทคโนโลยีความปลอดภัยของเว็บแอปพลิเคชัน

OWASP Top 10 คือ 10 ข้อที่สำคัญที่สุดตามมาตราฐานความปลอดภัยของเว็บแอปพลิเคชัน โดยจะมีข้อมูลหลักๆที่แสดง ดังนี้

  • แสดงเกี่ยวกับความเสี่ยงของช่องโหว่ ที่เกิดขึ้น
  • ผลกระทบที่เกิดขึ้นตามช่องโหว่นั้นๆ
  • การป้องกันช่องโหว่นั้นๆ

มาตราฐานการ update OWASP นี้จะกระทำทุกๆ 3–4ปี และปีล่าสุดที่ update มาตราฐานความปลอดภัยของเว็บแอปพลิเคชันนี้คือ ปี 2017 คาดว่าปีจะ update อีกรอบน่าจะช่วงเดือนมีนาคม ถึงเดือน พฤษภาคม ปี 2020 นี้

OWAP Top 10 ปี 2020 มีรายละเอียดดังนี้

OWASP ลำดับที่1: การใช้ Injection คือ การโจมตีโดยแทรกคำสั่ง (Code) เข้าไปที่แอปพลิเคชั่นเป้าหมาย มีได้ทั้งแบบ SQL หรือ NoSQL หรือแทรกผ่านคำสั่งระดับ OS และ การแทรกคำสั่งผ่าน LDAP

OWASP ลำดับที่2: การใช้ Broken Authentication คือ การโจมตีที่เกี่ยวกับฟังก์ชั่นการ login โดยใช้ username และ password หรือ การใช้ Login Keys หรือ การใช้ session token

Authentication vs Authorization

Authentication หมายถึงการยืนยันตัวตนเพื่อยืนยันว่าเป็นบุคคลที่ระบุจริง เช่นการสแกนหน้าว่าตรงกับหมายเลขบัตรประชาชนใหม การให้ยืนยันตัวตนผ่าน OTP ที่ส่งเข้ามาในมือถือ เป็นต้น

Hacker จะปลอมตัวเป็น user ชั่วคราว (temporarily user) หรือ user ที่มีจริงในระบบเป้าหมายก็ได้ในการ Hack เข้ามา

  • โปรแกรมมเมอร์อาจจะเขียน code หรือใช้ user เช่น test ที่เป็น temp เอาไว้ทำงานบางอย่าง แล้วไม่ได้ลบออก Hacker ก็จะคาดเดา user พวกนี้แล้วลองทดสอบ hack เข้าไปที่เครื่องเป้าหมาย
  • Hack จาก session token เช่น ลอง logout และกด playback ว่า session ได้ถูก kill หรือหลุดออกจากระบบใหม ถ้า session ไม่หลุดหลังจาก logout แล้ว คนที่เป็น Hacker จะใช้ช่องทางนี้เข้ามาเจาะระบบต่อไป

OWASP ลำดับที่3: การใช้ Sensitive Data Exposure คือ การโจมตีแบบเจาะจงมาที่การส่งชุดข้อมูลส่วนตัว หรือ บัตรประชาชน หรือ บัตรเครดิต แล้วปลอมแปลงข้อมูลนั้นๆไปยังเป้าหมายที่ต้องการ โดยการโจมตีนี้ทำได้ทั้งทาง web applications และ APIs (Application Programming Interface คือ ช่องทางการเชื่อมต่อระหว่างเว็บไซต์หนึ่งไปยังอีกเว็บไซต์หนึ่ง)

OWASP ลำดับที่4: การใช้ XML External Entities (XXE) คือ การโจมตีผ่าน SOAP Web Services โดยการส่งคำสั่งเข้าไปใน XML document ของเครื่องเป้าหมาย เพื่อให้ฝั่ง server ประมาณผล การโจมตีทาง XXE ยกตัวอย่างเช่น

  • การส่ง HTTP Request ทาง URL เข้าไปโจมตี
  • การส่ง XML เข้าไปเพื่อให้อ่าน File ในเครื่องเป้าหมายว่ามี file ใหน share อยู่บ้าง และ file นั้นเปิดให้ read หรือ write หรือ execute ได้หรือไม่
  • การส่ง XML เข้าไปเพื่อ scan หา port ของเป้าหมายที่เปิดไว้
  • การส่ง code ผ่านทาง XXE เพื่อให้เกิดการ run หรือ execute คำสั่งตามที่เราต้องการ
  • การส่ง denial-of-service (DoS) เข้าไปโจมตีทาง XXE เป้าหมายคือทำให้เครื่อง server ประมวลผลสูงๆ กิน resource พวก CPU และ Memory เยอะๆ จนไม่สามารถให้บริการอื่นๆได้ ไม่ถึงขนาดต้องให้ระบบ Down เพียงขอแค่ขัดขวางหรือชะลอ ไม่ให้บริการ (service) ของเป้าหมายทำงานได้ปกติ อาจจะอย่างชั่วคราวหรือถาวร ก็ได้

OWASP ลำดับที่5: Broken Access control คือ โจมตีผ่านทางสิทธิ์ ของบัญชีผู้ใช้ในระบบ เช่นการให้สิทธิ์ บางอย่างกับบาง user มากเกินไป จนสามารถเจาะได้ทั้งระบบ หรือ user ตัวเองไม่มีสิทธิ์ในการแก้ไขบางอย่างที่ตัวเองต้องการ แอบใช้ user ของคนอื่นที่มีสิทธิ์มากกว่ามาทำโดยที่เจ้าของ user สิทธิ์นั้นไม่รู้ จนทำให้เกิดช่องโหว่ในการโจมตีจาก Hacker

OWASP ลำดับที่6: Security misconfigurations คือ โจมตีผ่านช่องโหว่การตั้งค่าระบบ แบบใช้ค่าเริ่มต้น (Default configuration) ทำให้สามารถคาดเดาการตั้งค่าของระบบได้ หรือ การตั้งค่าระบบไม่ปลอดภัย ใส่ผิดตำแหน่ง (path) กำหนดสิทธิ์ไม่ถูกต้อง หรือ การใส่ค่า configuration เพิ่มเติมจากที่มีอยู่เพื่อทำงานบางอย่างโดยไม่คำนึงถึงปลอดภัย หรือ การไม่ใส่ HTTP Headers รวมถึงการส่ง output app log ที่มีรายละเอียดส่วนบุคคลมากเกินไป เช่น ชื่อ นามสกุล บัตรประชาชน หรือ อื่นๆ ไม่เพียง แต่ต้องกำหนดค่าระบบปฏิบัติการเฟรมเวิร์กและแอพพลิเคชั่นทั้งหมดอย่างปลอดภัย แต่จะต้องได้รับการติดตั้ง / อัพเกรดในเวลาที่เหมาะสมด้วย

OWASP ลำดับที่7: Cross Site Scripting (XSS) คือ ช่องโหว่เกิดจากฝั่งหน้า Web browser ของ Application ที่ยอมรับให้ Hacker สามารถส่ง data หรือ script (JavaScript) ไป run หรือ execute ที่ web browser ได้

Type of Cross site scripting (Reflected XSS, Store XSS and DOM-based XSS)

Reflected XSS คือการโจมตีแบบชั่วคราว (Non-Persistent) คือการส่ง script ไปพร้อมกับ Link URL เมื่อเป้าหมาย click link ตัว script ก็จะทำงานทันที

Stored XSS คือ การโจมตีแบบถาวร (Persistent) คือการฝั่ง script ไว้ที่ฝั่ง web browser เช่นพวก blog หรือ Content ที่สามารถให้ฝั่ง script เข้าไปประมลผลได้

DOM-based XSS คือ แก้ไข Framework ของ DOM เพื่อรับข้อมูลจาก user ที่ส่งข้อมูลจากการทำงานปกติ มาแสดง alert หรือ show ที่หน้า browser ที่เราต้องการ การ Hack นี้จะอยู่ในกรอบของ web server เท่านั้น ไม่มีส่งข้อมูลไปที่ app server หรือ DB server ใดๆทั้งนั้น

OWASP ลำดับที่8: Insecure Deserialization คือ การโจมตีโดยการส่ง remote code เข้ามา เมื่อระบบมีช่องโหว่ที่เกิดการการแปลงข้อมูลหรือถอดหรัสข้อมูลใน application ที่ผิดพลาด

การโจมตีทำได้ ดังนี้

  • ลบ หรือ ปลี่ยนแปลงอ๊อพเจ็กต์ของข้อมูลที่ถูกเข้ารหัสไว้
  • โจมตีแบบ Injection ได้ทั้งแบบ SQL หรือ NoSQL หรือแทรกผ่านคำสั่งระดับ OS และ การแทรกคำสั่งผ่าน LDAP
  • เพิ่มสิทธิ์การเข้าถึงของ user เพื่อโจมตี จาก user ที่มีสิทธิ์แค่ view อย่างเดียวให้สามารถ insert/update/delete หรือ ได้สิทธิ์สูงสุดเท่า Admin ก็ได้
Serialization vs Deserialization

OWASP ลำดับที่9: Using Components with known vulnerabilities คือ โจมตีผ่านช่องโหว่ของการใช้ Software (libraries และ frameworks) และ Hardware ที่ถูกรายงานและถูกเปิดเผยไว้เป็นสาธารณะแล้ว โดยมาตราฐานจะอ้างอิงตาม ช่องโหว่ที่ประกาศที่ CVE ที่เป็นหน่วยงานหลัก ที่ทำหน้าที่รวบรวมช่องโหว่ต่างๆ ไว้เพื่ออ้างอิงอย่างเป็นทางการ จัดลำดับเวลาในการเกิดเหตุ และความร้ายแรงของช่องโหว่นั้นๆด้วย สามารถตรวจสอบได้ที่ cve.mitre.org

OWASP ลำดับที่10: Insufficient logging and monitoring คือ โจมตีจากช่องการบันทึก และแสดงผล log ของการโจมตี ที่ไม่เพียงพอสำหรับการวิเคราะห์หาความเสี่ยง และการตรวจสอบ (Monitoring) ที่ไม่ครอบคลุม ถึงเส้นทางการโจมตีจากกลุ่ม Hacker

ยกตัวอย่าง

Hacker ใช้วิธีการโจมตีหลากหลายรูปแบบเพื่อสร้างเส้นทางหรือหาวิธีทางในการเข้าเจาะระบบให้ได้ โดยการโจมตีนั้นๆ จะเกิดขึ้นและมี access log รวมถึงวิธีการเข้าถึงข้อมูลเป้าหมาย ถ้าฝั่ง Admin server ไม่ได้เข้ามาตรวจสอบ log หรือ monitoring ว่ามีใครพยายามเข้ามาในระบบเราบ้าง และไม่ทำการลบเส้นทางหรือ history log ของ hacker ที่ทำไว้ สิ่งนี้ก็จะเป็นช่องทางให้ Hacker โจมตีระบบในช่องทางที่คาดว่าจะเป็นไปได้ ได้มากขึ้น

SECURITY BREAKER and EXTOSOFT TEAM

2ุ6/04/2020

--

--