10 เรื่องความมั่นคงปลอดภัยที่ต้องรู้กับ OWASP Top 10 Web Application Security

0

แม้ว่าโลกจะเปลี่ยนแปลงไปเป็นยุคดิจิทัลอย่างรวดเร็วในช่วงที่ผ่านมา แต่ก็ส่งผลให้มีเรื่องของความมั่นคงปลอดภัยทางไซเบอร์ที่กลายประเด็นร้อนแรงขึ้นมาด้วยเช่นกัน และถ้าหากใครยังจับต้นชนปลายไม่ถูก แนะนำให้รู้จักกับ OWASP Top 10 Web Application Security ซึ่งเชื่อว่าเมื่อเข้าใจถึงช่องโหว่ต่าง ๆ ตามที่ OWASP ได้จัดลำดับไว้แล้ว จะทำให้การพัฒนาระบบหรือการใช้งาน Application ของท่านเปลี่ยนไปอย่างแน่นอน

สำหรับบทความนี้ ทางทีมงาน ADPT จะสรุปแบบคร่าว ๆ ของ OWASP Top 10 Web Application Security ปี 2021 จากที่ได้มีโอกาสไปร่วมอบรมในหลักสูตรของทาง NCSA เมื่อเดือนก่อน ซึ่งหวังว่าบทความนี้จะเป็นจุดเริ่มต้นให้กับใครหลาย ๆ คนได้เห็นภาพว่า OWASP ในส่วนของ Web Application Security ของปี 2021 ที่จัดลำดับไว้นั้นมีอะไรบ้าง และหวังว่าจะช่วยจุดประกายให้กับผู้อ่านไปศึกษาเพิ่มเติมต่อในแต่ละหัวข้อ เพื่อนำไปประยุกต์ปรับใช้ในการพัฒนาและดูแลระบบขององค์กรต่อไปได้

OWASP Top 10 Web Application Security

A01:2021-Broken Access Control 

คือช่องโหว่ยอดนิยมที่ระบบเปิดให้ใช้งานแล้วกลับอนุญาตให้ User หนึ่งสามารถทำรายการข้ามอีก User หนึ่ง หรือข้ามสิทธิ์กันได้นั่นเอง เช่น Login ด้วย User ทั่วไป แต่กลับมีสิทธิเข้าหน้า Admin ได้ หรือทำธุรกรรมของ User อีกคนหนึ่งได้ เป็นต้น


A02:2021-Cryptographic Failures 

คือช่องโหว่ที่เกิดจากข้อมูลสำคัญของระบบถูกส่งไปในช่องทางที่ไม่ปลอดภัย หรือใช้อัลกอริทึมที่ไม่ปลอดภัยในการเข้ารหัส หรือจัดเก็บไว้แบบไม่เข้ารหัสทั้งที่ควรจะทำ เช่น ไม่มีการเข้ารหัส Password ใน Database ไม่ได้ใช้ HTTPS หรือข้อมูล Sensitive ของระบบแต่ไปเก็บไว้ใน Plain Text เป็นต้น


A03:2021-Injection 

คือช่องโหว่ที่ระบบสามารถใส่ Command บางอย่างในช่อง Text Field บนหน้าเว็บ แล้วส่งไป Execute ที่ระบบหลังบ้านได้ เช่น SQL Injection ที่อาจใส่ SQL ที่ช่อง Username แล้วไป Query ส่งข้อมูล User ออกมาได้หมด หรือ Cross Site Scripting (XSS) ที่หน้าเว็บไซต์อาจรับ Script ไปรันดึงข้อมูลหลังบ้านมาแสดงได้


A04:2021-Insecure Design 

คือช่องโหว่ที่ออกแบบระบบไว้ไม่ปลอดภัยเพียงพอ ซึ่งมีรูปแบบที่หลากหลายมาก เช่น ระบบมีกระบวนการ 1,2,3,4 แต่ผู้ใช้กลับสามารถทำ 1 แล้วไปทำ 4 ได้เลยโดยข้าม 2,3 ไป หรือกระบวนการอัปโหลดไฟล์ที่สามารถคาดเดารูปแบบชื่อไฟล์ได้ ทำให้แฮกเกอร์สามารถทับไฟล์สำคัญของระบบหรือแอบดูไฟล์ข้อมูลของคนอื่น หรือว่าอัปโหลดฟอร์ม HTML ขึ้นไปแล้วกลายเป็นหน้าเว็บที่แฮกเกอร์ใช้รัน OS Command ในการโจมตีได้ต่อ เป็นต้น


A05:2021-Security Misconfiguration 

คือช่องโหว่ที่มีการตั้งค่าความมั่นคงปลอดภัยผิดพลาด ซึ่งเชื่อว่ามักจะพลาดกันบ่อย ๆ เช่น การจัดการ Error Handling แล้วแสดงหน้าข้อมูลเพื่อ Debug พร้อมบางส่วนของโค้ด หรือการเปิด Directory Listing ไว้จึงทำให้แฮกเกอร์รู้เวอร์ชันของ Web Server ที่ใช้งานซึ่งหากเวอร์ชันนั้นมีช่องโหว่สำคัญอยู่ ก็อาจถูกโจมตีได้อย่างง่ายดาย โดยหัวข้อนี้ยังรวมไปถึงเรื่อง XML External Entities (XXE) ที่ระบบอนุญาตให้ประกาศ Tag พิเศษใน XML Request Format แล้วไปเข้าถึง Entity ที่ไม่ควรจะเข้าถึงได้


A06:2021-Vulnerable and Outdated Components

คือช่องโหว่ที่เกิดจากการเลือกใช้ Component ที่มีช่องโหว่เองหรือว่าเลือกเวอร์ชันที่ Outdate ไปแล้วมาพัฒนาระบบ ซึ่งถ้าให้ดีก่อนเลือกใช้ Component อะไรมาพัฒนา ควรไปสืบค้นในเว็บไซต์ https://nvd.nist.gov/vuln/search ซึ่งเป็นฐานข้อมูลช่องโหว่แห่งชาติก่อน เพื่อตรวจสอบอีกครั้งว่า Component ที่จะใช้อยู่นั้นปลอดภัยหรือไม่ ควรจะใช้เวอร์ชันอะไร เป็นต้น ดังนั้น ขอเน้นย้ำว่า “ห้ามใช้ตัวที่รู้ว่ามีตัว Outdate หรือช่องโหว่เด็ดขาด”


A07:2021-Identification and Authentication Failures

คือช่องโหว่ในเรื่อง Authentication หรือเรื่อง Identification ที่ไม่แข็งแรง เช่น การไม่ได้ Verify ตัวตนของคนสมัครจริง ๆ จนทำให้เกิดการทำ Identity Spoofing ได้ หรือว่า การ Bypass Login หรือใช้ Password ที่ไม่แข็งแรงพอจนทำให้โดน Brute Force Attack ได้ โดยปัญหามักจะเจอคือระบบที่อนุญาตให้ Login ได้ไม่จำกัดจำนวนครั้ง กับระบบที่มี Policy การอนุญาตให้ตั้ง Password ที่ไม่ปลอดภัยได้


A08-2021-Software and Data Integrity Failures

คือช่องโหว่ที่อาจจะคล้าย ๆ กับ A06:2021 แต่จะเป็นเรื่องการใช้ซอฟต์แวร์หรือ Component ที่ไม่ได้ตรวจสอบ Integrity ก่อนนำมาพัฒนา หรือว่าตรวจสอบแล้วแต่ยังไม่ดีเพียงพอ จนทำให้แฮกเกอร์สามารถดักแก้ไขค่าใน HTTP Request แล้วไปประมวลผลในส่วนที่ไม่ควรจะได้รับอนุญาตได้ โดยตัวอย่างที่ทำแล็ปกันคือการทำ Object Serialization บน PHP ที่ระบบทำการ Deserialize แล้ว Execute คำสั่งได้เลย โดยที่ไม่ได้ตรวจสอบว่าไปเข้าถึงส่วนที่ไม่ควรเข้าถึงหรือไม่


A09:2021-Security Logging and Monitoring Failures

ข้อนี้อาจจะไม่ได้เป็นช่องโหว่โดยตรง แต่เป็นความเสี่ยงระบบที่พัฒนาขึ้นมาแล้วไม่ได้มีการจัดเก็บ Log ที่ดีเพียงพอ ไม่ว่าจะจัดเก็บแล้วแต่เก็บไม่ครบ จัดเก็บแล้วแต่ไม่ได้ดู หรือเวลาใน Log แต่ละระบบไม่ตรงกัน จนส่งผลให้ไม่สามารถตรวจสอบรายละเอียดได้หรือตรวจสอบได้ยากมากเมื่อมีการโจมตีเกิดขึ้น 

ดังนั้นสิ่งที่ต้องทำคือ จัดเก็บ Log ของ Web Server ทุกตัว ต้อง Identify ได้หมด ว่าใครทำอะไรที่ไหนอย่างไร ให้ครบถ้วน และต้องเก็บให้ปลอดภัย ซึ่งไว้ Localhost อย่างเดียวไม่ได้ด้วยเพราะก่อนที่แฮกเกอร์จะจากไป จะลบ Log ทัั้งหมดทิ้งไป ดังนั้น ถ้าหากมีการจัดเก็บ Log แล้วจำเป็นต้องมีการจัดส่ง Log มาที่ Centralized Log Server เสมอ และ Server ทุกตัวควรจะต้อง Sync Time ตลอดด้วย


A10:2021-Server-Side Request Forgery (SSRF)

ช่องโหว่นี้คือหัวข้อใหม่ที่เพิ่งขึ้นมาติด Top 10 โดยจะเป็นช่องโหว่ที่มักเกิดกับระบบที่รับ Request จาก User แล้วเอา Request ไป Request ต่ออีกที เช่น ระบบที่อนุญาตให้เข้าหน้า Admin เฉพาะ Internal IP เท่านั้น แต่แต่แฮกเกอร์อาศัยตัว Server ที่ยึดได้นี้เองในการเข้าหน้า Admin ได้ ซึ่งทำให้แฮกเกอร์สามารถใช้งาน Server ตัวเองนี้โจมตีเครื่องตัวเองหรือเครื่องอื่นในเครือข่ายได้ทันที แล้วอาจดึงข้อมูลที่ไม่ควรเข้าถึงได้ออกไปทำอะไรต่อได้อีกด้วย


บทส่งท้าย

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