Wednesday, January 04, 2012

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 
  1. Injection เป็นการแทรกโค้ดเข้าไปในระบบ เช่น OS SQL และ LDAP ซึ่งเมื่อมีผู้ไม่หวังดีแทรกคำสั่งของระบบ (command) หรือคำสั่งสำหรับการคิวรี่ (query) เข้าไปเพื่อทำให้ระบบทำงานผิดพลาด หรือการเข้าไปถึงข้อมูลที่ไม่ได้รับอนุญาต
  2. Cross-Site Scripting (XSS) เป็นเทคนิคที่แฮกเกอร์จะแอบซ่อนหรือฝังสคริปส์ประสงค์ร้ายผ่านเว็บแอพพลิเคชั่นที่มีช่องโหว่ในเว็บไซต์ต่างๆ จากนั้นเมื่อเหยื่อหลงเข้ามาเยี่ยมชมหน้าเว็บนั้นสคริปส์ของแฮกเกอร์ก็จะถูกเรียกใช้งานที่เว็บเบราเซอร์ของเหยื่อเพื่อขโมยเซสชั่น (session) เปลี่ยนหน้าเว็บ หรือ redirect ไปยังเว็บประสงค์ร้ายได้
  3. Broken Authentication and Session Management ฟังก์ชั่นการระบุตัวตน (Authentication) ของเว็บแอพพลิเคชั่นที่มีช่องโหว่ ทำให้ผู้โจมตีสามารถขโมยรหัสผ่าน คีย์ โทคเคน (Token) หรือแอบอ้างปลอมตัวเป็นผู้ใช้งานจริงๆได้
  4. Insecure Direct Object References
 เกิดจากการอ้างอิงถึง Object ที่ใช้ภายใน เช่น ไฟล์ ไดเรคทอรี่ หรือคีย์ของฐานข้อมูล โดยไม่มีการตรวจสอบสิทธิ์หรือควบคุมการเข้าถึง ซึ่งทำให้ผู้โจมตีสามารถใช้การอ้างอิงนี้เข้าถึงข้อมูลที่ไม่ได้รับอนุญาตได้
  5. Cross-Site Request Forgery (CSRF) หรือเรียกสั้นๆ ว่า
ซีเซิร์ฟ (CSRF) คือรูปแบบการโจมตีที่บังคับให้เว็บเบราเซอร์ของเหยื่อส่ง HTTP request ที่ถูกปรับแต่งแล้ว รวมถึง session cookie และ ข้อมูลเกี่ยวกับการระบุตัวตน (Authentication) ไปยังเว็บแอพพลิเคชั่นที่มีช่องโหว่ ทำให้ผู้โจมตีสามารถสร้าง request ที่แอพพลิเคชั่นคิดว่ามาจากผู้ใช้ที่ถูกต้องได้ (สวมรอยสิทธิ์การใช้งานของผู้อื่น)
  6. Security Misconfiguration หมายถึง เป็นปัญหาที่เกิดขึ้นจากผู้ดูแลระบบที่ไม่ได้คอนฟิกระบบให้มีความปลอดภัย ซึ่งรวมไปถึงการอัพเดตซอฟต์แวร์และโค้ดต่างๆที่ถูกใช้โดยแอพพลิเคชั่น
  7. Insecure Cryptographic Storage หลากเว็บแอพพลิเคชั่นไม่ได้คำนึงถึงการป้องกันข้อมูลสำคัญเช่น รหัสผ่าน (password) หมายเลขบัตรเครดิตลูกค้า หรือ ข้อมูลลับของลูกค้า ด้วยการเข้ารหัส (encryption) หรือการทำแฮช (hashing) ซึ่งผู้โจมตีสามารถเข้าถึงและอาจแก้ไขข้อมูลที่สำคัญเหล่านี้ได้
  8. Failure to Restrict URL Access ความผิดพลาดในการจำกัดการเข้าถึงเว็บ ซึ่งอาจจะมีการควบคุมการเข้าถึงโดยใช้ url เพื่อเข้าไปยังหน้าเว็บที่ถูกซ่อนไว้ อย่างไรก็ตามผู้โจมตีสามารถปลอมแปลงชื่อ URL เพื่อหลอกเข้าไปยังหน้าเว็บที่ซ่อนไว้ได้
  9. Insufficient Transport Layer Protection เว็บแอพพลิเคชั่นส่วนใหญ่ละเลยที่่จะรักษาความลับและความถูกต้องของข้อมูลในเครือข่าย หรือบางครั้งใช้อัลกอริทึ่มในการเข้ารหัสที่อ่อนแอ ใบประกาศนียบัตรที่หมดอายุหรือไม่ถูกต้อง ทำให้ผู้โจมตีสามารถขโมยและแอบเปลี่ยนแปลงข้อมูลระหว่างการส่งได้
  10. Unvalidated Redirects and Forwards เป็นเทคนิคที่ผู้โจมตีทำให้ผู้ใช้ไปเข้าถึงยังหน้าเว็บที่ไ่ม่พึงประสงค์ เช่น หน้าเว็บฟิชชิง (phishing) หรือเว็บที่มีโปรแกรมประสงค์ร้ายฝังอยู่ หรือส่งต่อเพื่อเข้าถึงหน้าเว็บที่ผู้อื่นไม่ได้รับอนุญาตได้
เอกสารอ้างอิง
  1. OWASP Top 10 - https://www.owasp.org/index.php/Top_10_2010-Main
  2. OWASP Thailand Chapter (Official site อยู่ในระหว่างการปรับเปลี่ยนหน้าเว็บใหม่) - https://www.owasp.org/index.php/Thailand
  3. OWASP Thailand Chapter fanpage - https://www.facebook.com/pages/OWASP-Thailand-Chapter/151130168312937
  4. OWASP Risk Rating Methodology - https://www.owasp.org/index.php/OWASP_Risk_Rating_Methodology

4 comments:

Planile (-. .- ")o said...

ขอบคุณมากค่ะสำหรับความรู้ที่เป็นภาษาไทย

Foh9 said...

ด้วยความยินดีครับ

Unknown said...
This comment has been removed by the author.
Unknown said...

มีอีกบทความนะครับ ใครอยากลองอ่านแบบเจาะลึกลองเข้าไปอ่านได้ครับ

http://blog.wisered.com/ช่องโหว่ความปลอดภัย-owasp-top-10/