Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

code ที่นักพัฒนาเขียนขึ้นมานั้น S.A.F.E ไหมนะ ?

$
0
0

สิ่งที่นักพัฒนา software ควรต้องรู้และเข้าใจสำหรับ code ที่เขียนคือ code ที่เขียนขึ้นมานั้นปลอดภัยหรือไม่ ? แน่นอนว่า นักพัฒนาบางคนอาจจะบอกว่า แค่เขียน code ให้เสร็จตามเวลาก็ถือว่าดีแล้ว ส่วนเรื่องของ security ไม่ใช่หน้าที่ ให้ทางฝ่าย security ดูเองก็แล้วกัน ถ้ามีเจอปัญหาอะไรก็แจ้งมา เดี๋ยวแก้ไขให้ !! แต่คิดว่าไม่น่าจะเป็นแนวคิด แนวทางที่ดีนัก เนื่องจากนักพัฒนาต้องมีความรู้และเข้าใจ การเขียน code ให้มีความปลอดภัยกันบ้าง อ่านเจอบทความเรื่อง S.A.F.E จึงนำมาสรุปไว้นิดหน่อย
Sensitive Access control Foolproof Enforce

Sensitive

ใน source code ไม่มีข้อมูลหรือเก็บข้อมูล sessitive data หรือไม่ เช่น password, ข้อมูลที่เป็นความลับหรือส่วนตัว และ session หรือ token ต่าง ๆ รวมทั้งเก็บใน version control มีด้วยหรือไม่ ถ้ามีก็ให้แยกออกมาโดยด่วน ข้อมูลที่ส่งไปมาระหว่าง server นั้น ทำการเข้ารหัสหรือไม่ ในส่วนของ log message ต่าง ๆ ทำการเก็บข้อมูล sesitive data หรือไม่ หรือข้อมูลส่วนตัวที่ไม่ได้รับอนุญาตจากเจ้าของหรือไม่ ดังนั้นตรวจสอบกันด้วยนะ !!

Access control

การเข้าถึงข้อมูลต่าง ๆ ยิ่งเป็น sesitive data แล้วนั้น มีขั้นตอน authentication และ authorization หรือไม่ พูดง่าย ๆ คือ authentication คือคุณเป็นใครในระบบ authorization คือคุณมีสิทธิ์ต่าง ๆ ในการเข้าถึงหรือไม่ รวมถึงการเข้าถึงทุก ๆ ครั้งต้องมี log สำหรับการตรวจสอบอีกด้วย ทั้งสำเร็จและไม่สำเสร็จ

Foolproof

เราทำการตรวจสอบในแต่ละ request หรือไม่ ? ทั้งการตรวจสอบข้อมูลว่า เป็นไปตามที่ต้องการหรือไม่ เพื่อลดปัญหาต่าง ๆ ทั้ง JavaScript และ SQL Injection เมื่อทำการส่งผล error กลับไปยังผู้เรียก ต้องไม่ส่งรายละเอียดของการทำงานภายในออกไป เพราะว่า มันอาจจะเป็นข้อมูลที่ใช้ในโจมตีระบบได้เลย ยกตัวอย่างเช่นถ้า password ผิด น่าจะแจ้งด้วยคำว่า login fail มากกว่า password ผิดนะ

Enforce

นักพัฒนาไม่รู้หรอกว่า code ที่เขียนมานั้น ปลอดภัยหรือไม่ ? ดังนั้นจำเป็นต้องการการตรวจสอบและทดสอบเสมอ นั่นหมายความว่า การออกแบบระบบปลอดภัยหรือไม่ ? ทำการ review code สำหรับเรื่อง security อยู่อย่างเสมอ ต้องทำการตรวจสอบและทดสอบเรื่องของ security แบบอัตโนมัติ อย่ารอให้พัฒนาระบบทั้งหมดเสร็จก่อนนะ จึงมาทดสอบ ทำให้เป็นกิจกรรมที่เกิดขึ้นอยู่อย่างเสมอ

สุดท้ายแล้ว

น่าจะช่วยทำให้ code ที่เขียนขึ้นมานั้นปลอดภัยมากขึ้น นักพัฒนาลองเข้าไปศึกษาเพิ่มเติมได้ที่ OWASP ยิ่งถ้าบริษัทไหนมี security specialist/expert แล้ว ให้คนเหล่านั้นมาสอน มาเขียนให้ดูเลยครับ ขอให้สนุกกับการเขียน code นะครับ

Viewing all articles
Browse latest Browse all 1997

Trending Articles