CDIC 2023

คำแนะนำในการพัฒนาเว็บแอปพลิเคชันให้มั่นคงปลอดภัยจาก IBM

IBM ได้แนะนำ Best Practice ที่ต้องคำนึงถึงสำหรับการพัฒนาเว็ปแอปพลิเคชัน ดังนั้นเราจึงขอสรุปให้ทุกท่านได้ติดตามกันครับ

Credit: ShutterStock.com

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

1.) ใส่ใจตั้งแต่การออกแบบ

การคำนึงถึงเรื่องความมั่นคงปลอดภัยได้เร็วเท่าไรก็จะยิ่งทำให้ลดค่าใช้จ่ายและเวลาที่ต้องมาแก้ปัญหาในภายหลังเท่านั้น อย่างไรก็ดีหากเราไม่สามารถฝังหัวเรื่องความมั่นคงปลอดภัยไว้ในช่วงการออกแบบได้จริงๆ ท่านก็ยังสามารถเลี่ยงไปใช้กระบวนการที่ชื่อ ‘Threat Modeling’ ซึ่งเป็นการให้ผู้วางโครงสร้างด้านความมั่นคงปลอดภัยนั่งคุยกับทีมพัฒนาแอป ถึงภัยต่างๆ ที่อาจเกิดขึ้นว่ามีการคิดไว้แล้วหรือยังเช่น ข้อมูลสำคัญถูกเข้ารหัสไว้ไหมตอนเก็บและใช้งาน หรือได้คิดถึงเรื่องสิทธิ์ในการเข้าถึงหรือยัง เป็นต้น

2.) พัฒนาอย่างมั่นคงปลอดภัย

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

3.) Secure Coding

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

  • ตรวจสอบอินพุตน์ – มีการตรวจสอบฟิลด์ข้อมูลที่เข้ามา ซึ่งบ่อยครั้งที่ฝั่งไคลเอ้นต์มักถูก Bypass ได้ง่าย ดังนั้นเซิร์ฟเวอร์ต้องออกแรงทำแทน โดยเฉพาะเรื่องปัญหา Buffer Overflow และใช้การทำ Whistlist ข้อมูลในอินพุตน์แทน Blacklist เพราะจะจำกัดได้ง่ายกว่า
  • Command Injection – เลี่ยงการรันคำสั่งตรงๆ ที่รับเข้ามาเพราะอาจเป็นช่องทางให้คนร้ายเข้ามาทำ OS Command Injection ได้ แต่หากจำเป็นต้องใช้สิทธิ์ต่ำที่สุดเอาไว้
  • SQL Injection – ช่องโหว่สำคัญที่มักเกิดขึ้นกับฐานข้อมูล ซึ่งแก้ไขได้ด้วยการใช้ Statement ที่เตรียมเอาไว้โดยเฉพาะอย่างรัดกุม หรือการใช้ Store Procedure ก็ช่วยได้
  • อื่นๆ – XSS, Clickjacking หรือการเปิดให้อัปโหลดไฟล์ และหลีกเลี่ยงการรับ URL เป็นอินพุตน์ก็เป็นเรื่องที่ต้องใส่ใจหาทางป้องกันทั้งสิ้น 

4.) เข้ารหัส

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

5.) ช่วยตรวจสอบรหัสผ่านให้ผู้ใช้งาน

การบังคับตรวจสอบรหัสผ่านว่าเป็นไปตามเกณฑ์ด้านความมั่นคงปลอดภัยเช่น ยาวพอ ยากพอ จะช่วยลดความเสี่ยงเมื่อถูก Brute force attack ได้ รวมถึงการใช้ 2 factors authentication และควรต้องสามารถบล็อกความพยายามล็อกอินผิดๆ หลายครั้งติดได้ นอกจากนี้ต้องใส่ใจเรื่อง Least privilege ด้วย

6.) ใช้เครื่องมือตรวจสอบเข้าช่วย

  • DevSecOps – การเพิ่มการปฏิบัติจริงทาง Security เข้ามาในขั้นตอน DevOps ในช่วงกระบวนการ Build เป็นเรื่องที่ละเลยไม่ได้
  • Static application security testing (SAST) – เครื่องมือสแกนโค้ดสามารถช่วยหาช่องโหว่ในแอปพลิเคชันได้ แต่ข้อเสียคือมี False Positive เยอะหน่อย ดังนั้นต้องตรวจสอบให้ดี
  • Dynamic application security testing (DAST) – เครื่องมือประเมินผลลัพธ์จากการใส่อินพุตน์แปลกๆ มากมายให้โปรแกรม 
  • Penetration Testing – กระบวนการทดสอบด้านความมั่นคงปลอดภัยขั้นสูง ที่อาศัยทั้งเรื่อง Dynamic Scanning และเทคนิคการโจมตีแบบ manual เพื่อจำลองเข้าถึงระบบของจริงที่อาจเกิดขึ้น

ที่มา : https://securityintelligence.com/posts/web-application-security-best-practices-developers-guide/


About nattakon

จบการศึกษา ปริญญาตรีและโท สาขาวิศวกรรมคอมพิวเตอร์ KMITL เคยทำงานด้าน Engineer/Presale ดูแลผลิตภัณฑ์ด้าน Network Security และ Public Cloud ในประเทศ ปัจจุบันเป็นนักเขียน Full-time ที่ TechTalkThai

Check Also

ขอเชิญร่วมงานสัมมนา Digital Fundamental for the Future [10 ต.ค. 2566 เวลา 8.00 –16.20น. ณ โรงแรม Marriott Marquis Queen’s Park]

Computer Union ขอเรียนเชิญ CTO, CIO, CISO, IT Manager, Cybersecurity Manager, Systems Engineer, Data Center Engineer, …

[โปรพิเศษรอบ Early Bird] คอร์สเรียน ‘Incident Response’ จาก Sosecure เรียนออนไลน์ เน้นลงมือจริง 3 วันเต็ม

Incident Response เป็นหนึ่งในหัวข้อหลักของแผนการที่ทุกองค์กรควรมือ คำถามคือทุกวันนี้องค์กรหรือบริษัทที่ท่านมีส่วนรวมมีแผนรับมือเหล่านี้ได้ดีเพียงใด ครอบคลุมความเสี่ยงและเคยผ่านสถานการณ์จริงมาได้ดีแค่ไหน ซึ่งหากปฏิบัติตามแผนได้ดีก็อาจจะช่วยลดผลกระทบของความเสียหายได้อย่างมีนัยสำคัญ ด้วยเหตุนี้เองจึงอยากขอเชิญชวนผู้สนใจทุกท่านมาเพิ่มพูนความรู้ในคอร์สสุดพิเศษจาก Sosecure โดยเนื้อหาจะกล่าวถึง Framework, Incident Response และ Incident Handling …