Secure Coding

secure coding

Secure Coding คือ แนวทางการพัฒนาซอฟต์แวร์ที่มีความทนทานต่อการถูกโจมตีจากผู้ไม่ประสงค์ดี โดยซอฟต์แวร์ที่พัฒนาขึ้นนั้นจะได้รับการออกแบบ และ พัฒนา รวมทั้งตรวจสอบแล้วว่าจะไม่สามารถถูกโจมตี หรือ ถูกเจาะด้วยเครื่องมือหรือภัยคุกคามที่เป็นที่รู้จักได้ง่าย

secure coding

โดยทั่วไปแล้วโปรแกรมที่ไม่มีความมั่นคงปลอดภัยนั้นสามารถถูกเจาะได้ด้วยหลากหลายวิธีการ ซึ่งโดยทั่วไปแล้วทุกวิธีการนั้นมีจุดประสงค์เพื่อยึดเซิร์ฟเวอร์หรือไคลเอนท์ ตัวอย่างของการเจาะระบบผ่านทางช่องโหว่ของแอพพลิเคชันต่าง ๆ ได้แก่ การปฏิเสธการให้บริการ (Denial of Service) การปลอดตัวเป็นผู้อื่น การปล่อยมัลแวร์ (Malware) เพื่อเจาะเข้าระบบ เป็นต้น

ซึ่งการเรียนรู้ทางด้าน Secure Coding สามารถช่วยปกป้องแอพพลิเคชันรวมไปถึงข้อมูลลับของเราจากการถูกขโมยหรือความเสียหายได้

การพัฒนาแอปพลิเคชันให้ปลอดภัยไม่ใช่เพียงแค่การเพิ่มฟีเจอร์ด้าน Security หลังจากที่พัฒนาแอปพลิเคชันเสร็จ แต่จำเป็นต้องพิจารณาตั้งแต่การออกแบบและเขียนโค้ด (Secure Coding) ซึ่ง OWASP Proactive Control เป็นมาตรการควบคุมที่สำคัญที่นักพัฒนาควรใช้เป็นแนวทางในการออกแบบและเขียนโค้ดอย่างปลอดภัย
OWASP Proactive Control ประกอบด้วยเทคนิคและแนวคิดในการเขียนโค้ดอย่างปลอดภัยจำนวน 10 ข้อ เรียงลำดับตามความสำคัญ โดยลำดับที่ 1 มีความสำคัญสูงสุด ดังนี้

  1. ทำการตรวจสอบและยืนยันความปลอดภัยตั้งแต่เริ่ม และทำให้บ่อย
  2. ทำ Query Parameterization เพื่อป้องกันการโจมตีแบบ SQL Injection
  3. Encode ข้อมูล
  4. ตรวจสอบการป้อนข้อมูล เช่น ประเภท ความยาว รูปแบบ
  5. มีการพิสูจน์และยืนยันตัวตน
  6. มีการควบคุมสิทธิ์ในการเข้าถึง
  7. ปกป้องข้อมูลทั้งขณะรับส่งและจัดเก็บ
  8. วางระบบ Logging และ Intrusion Detection
  9. นำ Framework และ Library ด้านความปลอดภัยมาใช้งาน
  10. มีการจัดการกับ Error และ Exception

สำหรับใครที่สนใจอยากจะศึกษาข้อมูลเพิ่มเติมได้ที่ OWASP ได้เลย