คำแนะนำในการพัฒนาเว็บแอปพลิเคชันให้มั่นคงปลอดภัยจาก 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

Microsoft เปิดตัว Integrated Security Operations Center บน Defender ยกเครื่อง SOC รองรับ AI Agent

Microsoft เปิดตัว Integrated Security Operations Center (ISOC) บน Microsoft Defender พร้อมย้ายความสามารถด้าน SIEM จาก Microsoft Sentinel …

[วีดีโอย้อนหลัง] SendQuick Webinar : Identity Under Attack “ถอดบทเรียนการโจมตีในไทย และวิธีป้องกันด้วย MFA”

เรื่อง MFA กำลังเป็นประเด็นใหญ่ โดยเฉพาะกับหน่วยงานภาครัฐ และหน่วยงานโครงสร้างพื้นฐานของประเทศ ซึ่งวันนี้ได้เริ่มประกาศบังคับใช้เป็นข้อบังคับพื้นฐานแล้วในประกาศจาก สกมช. โดยใครที่พลาด SendQuick Webinar เรื่อง “Identity Under Attack : ถอดบทเรียนการโจมตีในไทย …