10 อันดับความเสี่ยงด้านเว็บแอพพลิเคชั่นของ OWASP ปี 2010
ทำความรู้จักกับ OWASP
โครงการ OWASP (The Open Web Application Security Project) ดำเนินการโดยมูลนิธิ OWASP ซึ่งเป็นองค์กรไม่แสวงหาผลกำไรหมายเลข 501c3 และยังได้รับการสนับสนุนการทำงานจากสมาชิกทั้งบุคคลทั่วไป องค์กรต่างๆ อีกทั้งมหาวิทยาลัยโครงการนี้เป็นการสร้างชุมชนเปิดและฟรีให้กับทั่วโลก โดยมีวัตถุประสงค์เพื่อส่งเสริมและพัฒนาการรักษาความปลอดภัยของโปรแกรมประยุกต์ (Application) ให้ดียิ่งขึ้น อีกทั้งยังมีการจัดตั้ง OWASP ย่อยๆในประเทศต่างๆด้วย สำหรับในประเทศไทยเองก็มีเช่นกัน และประธานของโครงการนี้ในประเทศไทยคนปัจจุบันคือ กิติศักดิ์ จิรวรรณกูล หรือผมเอง [2] ใครสนใจติดตามข่าวสารของ OWASP ประเทศไทย (หรือ OWASP Thailand Chapter) สามารถติดตามได้ที่แฟนเพจตามเอกสารอ้างอิง [3]
รูปที่ 1 แสดงโลโกของ OWASP
"โครงการจัด 10 อันดับความเสี่ยงด้านเว็บแอพพลิเคชั่น หรือ OWASP Top 10" เป็นโครงการหนึ่งที่ได้รับความนิยมอย่างสูง เนื่องจากเป็นโครงการที่เผยแพร่ความรู้ สร้างความตระหนักถึงอันตรายของการโจมตีผ่านเว็บแอพพลิเคชั่น
ความเสี่ยงด้านการรักษาความปลอดภัยเว็บแอพพลิเคชั่นคืออะไร
ผู้โจมตีสามารถเลือกทำอันตรายธุรกิจหรือองค์กรผ่านแอพพลิเคชั่นของเราได้ จากรูปที่ 2 แสดงความเสี่ยงที่อาจจะเกิดหรือไม่ก็ได้ แต่อย่างไรก็ตามก็ต้องให้ความสนใจเหมือนกัน
รูปที่ 2 แสดงภาพเส้นทางของความเสี่ยงที่อาจจะเกิดขึ้นในองค์กร
ในบางครั้งการโจมตีนั้นอาจทำได้โดยง่าย แต่บางครั้งก็อาจจะยากมาก ในทำนองเดียวกันนี้การโจมตีเหล่านี้อาจไม่ได้สร้างความเสียหายให้แก่องค์กร แต่บางครั้งก็อาจส่งผลกระทบที่รุนแรงต่อธุรกิจเลยก็เป็นได้ ในการตรวจหาความเสี่ยงภายในองค์กรนั้นสามารถทำได้โดยการประเมินผลความสัมพันธ์ระหว่างผู้โจมตี (Threat agent) แนวทางการโจมตี (Attack vector) และความอ่อนแอของระบบ (Security weakness) ร่วมกับการประมาณผลกระทบด้านเทคนิคและธุรกิจต่อองค์กร ทั้งหมดนี้เป็นปัจจัยในการประเมินความเสี่ยงทั้งหมดขององค์กร
กระบวนการประเมินความเสี่ยง
ในโครงการจัด 10 อันดับความเสี่ยงด้านเว็บแอพพลิเคชั่น หรือ OWASP Top 10 นี้เน้นการระบุความเสี่ยงที่ร้ายแรงที่สุดขององค์กร ซึ่งแต่ความเสี่ยงที่จะกล่าวต่อไปนั้น OWASP ได้แสดงข้อมุลทั่วไปเกี่ยวกับโอกาสที่จะเกิดและผลกระทบทางด้านเทคนิคโดยใช้แนวทางการประเมินอย่างง่ายที่อ้างอิงกระบวนการ OWASP Risk Rating Methodology [4]
รูปที่ 3 แสดงตารางที่ใช้ในการประเมินความเสี่ยง
อย่างไรก็ตามแต่ละองค์กรนั้นมีลักษณะเฉพาะที่แตกต่างกัน แนวทางการโจมตีและผลกระทบอาจจะเหมือนกันหรือแตกต่างกันก็เป็นได้ ดังนั้นการประเมินความเสี่ยงนั้นจึงควรทำด้วยตนเอง โดยเน้นไปที่ผู้โจมตี (Threat agents) การควบคุมความปลอดภัย (Security controls) และผลกระทบเชิงธุรกิจ (Business impacts) ขององค์กร
ถึงแม้ว่าในการจัด 10 อันดับความเสี่ยงเวอร์ชั่นก่อนนั้นมุ่งเน้นไปที่จุดอ่อน (Vulnerabilities) ทั่วไป แต่ชื่อเรียกก็ถูกออกแบบตามความเสี่ยงเหมือนกัน ซึ่งชื่อของแต่ละความเสี่ยงในการจัด 10 อันดับความเสี่ยงนี้ถูกตั้งจาก ประเภทการโจมตี ประเภทของจุดอ่อน หรือประเภทของผลกระทบที่เกิด และการเลือกชื่อที่จะนำมาใช้นั้นจะเป็นชื่อที่นิยมและสามารถเก็บไว้สร้างความตระหนักได้อย่างสูงสุด
" 10 อันดับความเสี่ยงด้านเว็บแอพพลิเคชั่นปี 2010 "
- Injection เป็นการแทรกโค้ดเข้าไปในระบบ เช่น OS SQL และ LDAP ซึ่งเมื่อมีผู้ไม่หวังดีแทรกคำสั่งของระบบ(command) หรือคำสั่งสำหรับการคิวรี่ (query) เข้าไปเพื่อทำให้ระบบทำงานผิดพลาด หรือการเข้าไปถึงข้อมูลที่ไม่ได้รับอนุญาต
- Cross-Site Scripting (XSS) เป็นเทคนิคที่แฮกเกอร์จะแอบซ่อนหรือฝังสคริปส์ประสงค์ร้ายผ่านเว็บแอพพลิเคชั่นที่มีช่องโหว่ในเว็บไซต์ต่างๆ จากนั้นเมื่อเหยื่อหลงเข้ามาเยี่ยมชมหน้าเว็บนั้นสคริปส์ของแฮกเกอร์ก็จะถูกเรียกใช้งานที่เว็บเบราเซอร์ของเหยื่อเพื่อขโมยเซสชั่น (session) เปลี่ยนหน้าเว็บ หรือ redirect ไปยังเว็บประสงค์ร้ายได้
- Broken Authentication and Session Management ฟังก์ชั่นการระบุตัวตน (Authentication) ของเว็บแอพพลิเคชั่นที่มีช่องโหว่ ทำให้ผู้โจมตีสามารถขโมยรหัสผ่าน คีย์ โทคเคน (Token) หรือแอบอ้างปลอมตัวเป็นผู้ใช้งานจริงๆได้
- Insecure Direct Object References เกิดจากการอ้างอิงถึง Object ที่ใช้ภายใน เช่น ไฟล์ ไดเรคทอรี่ หรือคีย์ของฐานข้อมูล โดยไม่มีการตรวจสอบสิทธิ์หรือควบคุมการเข้าถึง ซึ่งทำให้ผู้โจมตีสามารถใช้การอ้างอิงนี้เข้าถึงข้อมูลที่ไม่ได้รับอนุญาตได้
- Cross-Site Request Forgery (CSRF) หรือเรียกสั้นๆ ว่า ซีเซิร์ฟ (CSRF) คือรูปแบบการโจมตีที่บังคับให้เว็บเบราเซอร์ของเหยื่อส่ง HTTP request ที่ถูกปรับแต่งแล้ว รวมถึง session cookie และ ข้อมูลเกี่ยวกับการระบุตัวตน(Authentication) ไปยังเว็บแอพพลิเคชั่นที่มีช่องโหว่ ทำให้ผู้โจมตีสามารถสร้าง request ที่แอพพลิเคชั่นคิดว่ามาจากผู้ใช้ที่ถูกต้องได้ (สวมรอยสิทธิ์การใช้งานของผู้อื่น)
- Security Misconfiguration หมายถึง เป็นปัญหาที่เกิดขึ้นจากผู้ดูแลระบบที่ไม่ได้คอนฟิกระบบให้มีความปลอดภัย ซึ่งรวมไปถึงการอัพเดตซอฟต์แวร์และโค้ดต่างๆที่ถูกใช้โดยแอพพลิเคชั่น
- Insecure Cryptographic Storage หลากเว็บแอพพลิเคชั่นไม่ได้คำนึงถึงการป้องกันข้อมูลสำคัญเช่น รหัสผ่าน(password) หมายเลขบัตรเครดิตลูกค้า หรือ ข้อมูลลับของลูกค้า ด้วยการเข้ารหัส (encryption) หรือการทำแฮช(hashing) ซึ่งผู้โจมตีสามารถเข้าถึงและอาจแก้ไขข้อมูลที่สำคัญเหล่านี้ได้
- Failure to Restrict URL Access ความผิดพลาดในการจำกัดการเข้าถึงเว็บ ซึ่งอาจจะมีการควบคุมการเข้าถึงโดยใช้url เพื่อเข้าไปยังหน้าเว็บที่ถูกซ่อนไว้ อย่างไรก็ตามผู้โจมตีสามารถปลอมแปลงชื่อ URL เพื่อหลอกเข้าไปยังหน้าเว็บที่ซ่อนไว้ได้
- Insufficient Transport Layer Protection เว็บแอพพลิเคชั่นส่วนใหญ่ละเลยที่่จะรักษาความลับและความถูกต้องของข้อมูลในเครือข่าย หรือบางครั้งใช้อัลกอริทึ่มในการเข้ารหัสที่อ่อนแอ ใบประกาศนียบัตรที่หมดอายุหรือไม่ถูกต้อง ทำให้ผู้โจมตีสามารถขโมยและแอบเปลี่ยนแปลงข้อมูลระหว่างการส่งได้
- Unvalidated Redirects and Forwards เป็นเทคนิคที่ผู้โจมตีทำให้ผู้ใช้ไปเข้าถึงยังหน้าเว็บที่ไ่ม่พึงประสงค์ เช่น หน้าเว็บฟิชชิง (phishing) หรือเว็บที่มีโปรแกรมประสงค์ร้ายฝังอยู่ หรือส่งต่อเพื่อเข้าถึงหน้าเว็บที่ผู้อื่นไม่ได้รับอนุญาตได้เอกสารอ้างอิง
- OWASP Top 10 - https://www.owasp.org/index.php/Top_10_2010-Main
- OWASP Thailand Chapter (Official site อยู่ในระหว่างการปรับเปลี่ยนหน้าเว็บใหม่) - https://www.owasp.org/index.php/Thailand
- OWASP Thailand Chapter fanpage - https://www.facebook.com/pages/OWASP-Thailand-Chapter/151130168312937
- OWASP Risk Rating Methodology - https://www.owasp.org/index.php/OWASP_Risk_Rating_Methodology