20Mar, 2024
Language blog :
Thai
Share blog : 
20 March, 2024
Thai

10 วิธีเพิ่มความปลอดภัยในการพัฒนาซอฟต์แวร์

By

8 mins read
10 วิธีเพิ่มความปลอดภัยในการพัฒนาซอฟต์แวร์

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

1. Secure Coding Practices

1. ฝึกฝนให้ทีม developer มีการเขียนโค้ดที่ปลอดภัยตามหลักการ จะช่วยการป้องกันการโจมตีจากช่องโหว่ เช่น (injection attacks, buffer overflows)

2. ปฏิบัติตามหลักเกณฑ์การเขียนโค้ดอย่างปลอดภัย

      1. ทำ input validation เสมอ อย่าใว้ใจข้อมูล input จากผู้ใช้

      2. มีการออกแบบที่เป็นเอกลักษณ์ และมีความปลอดภัยด้วย

      3. ทำให้ระบบใช้งานง่าย เป็นพื้นฐาน แต่มีประสิทธิภาพ

      4. ใช้ช่องทางการสื่อสารที่ปลอดภัย ทั้งภายในบริษัทและกับลูกค้า

      5. ตรวจสอบคุณภาพของโค้ดและปฏิบัติตาม code standards

2. Code Reviews

Credit: https://unsplash.com/photos/a-computer-screen-with-a-bunch-of-code-on-it-ieic5Tq8YMk

1. ทำการตรวจสอบโค้ดเป็นประจำโดยเน้นที่ความปลอดภัย ในทุกๆครั้งที่จะนำโค้ดไปรวมไว้ที่ส่วน Main Branch หรือ Production Branch

2. ใช้เครื่องมือ automate testing เพื่อลดเวลาที่ใช้ในการทดสอบ

3. ทุกคนในทีมควรมีการรีวิวโค้ดของคนอื่น เพื่อทำให้เข้าใจโค้ดและเป็นไปตาม code standards

3. Authentication and Authorization

1. พัฒนาระบบยืนยันตัวตนที่เข้มงวดเพื่อให้แน่ใจว่าผู้ใช้มีข้อมูลอยู่ในระบบและสามารถที่จะใช้ระบบได้

2. ใช้ระบบจำกัดสิทธิ์ในการเข้าถึง เพื่อให้ผู้ใช้สามารถเข้าไปยังเนื้อหาที่จำเป็นสำหรับผู้ใช้

4. Data Encryption

Credit: https://unsplash.com/photos/a-golden-padlock-sitting-on-top-of-a-keyboard-FnA5pAzqhMM

1. ใช้การเข้ารหัสข้อมูลทั้งขารับและขาส่ง

2. มีการจัดเก็บข้อมูล secret key ที่ปลอดภัย ซึ่งสามารถจัดเก็บผ่านผู้ให้บริการ cloud provider เช่น AWS Secrets Manager, Google cloud Secret Manager, Azure Key Vault

5. Input Validation

Credit : https://i.stack.imgur.com/0Smzi.png

1. มีการทำ validate ข้อมูลที่ผู้ใช้ทุกคนจะกรอกเข้ามาเพื่อเป็นการป้องกัน injection attacks

2. ใช้ parameterized queries เพื่อปกป้องการเกิด SQL injection

6. Error Handling:

1. พัฒนา error handling เพื่อหลีกเลี่ยงการเปิดเผยข้อมูลที่มีความอ่อนไหว หรือข้อมูลสำคัญ

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

7. Security Testing

1. ต้องมีการทดสอบระบบทุกครั้งก่อนใช้งาน และรวมถึงการทำ penetration testing และ การทำ code scanning

      1. penetration testing tools

        1. Metasploit

        2. Wireshark

        3. Burp Suite

      2. code scanning

        1. Nikto

        2. SonarQube

        3. Veracode

8. Dependency Management

1. ให้ทำการอัพเดตเวอร์ชั้นของ library component หรือ tools ที่ใช้ในการพัฒนาอยู่เสมอ

2. คอยตรวจสอบความปลอดภัยของ library ว่ามีความน่าเชื่อถือมากน้อยเพียงใด และสิ่งที่นำมาใช้นั้นไม่ทำให้ระบบทำงานผิดพลาด

 

 

9. Incident Response Planning

Credit : https://unsplash.com/photos/man-in-white-long-sleeve-shirt-writing-on-white-board-um1zVjVCtEY

1. มีการวางแผนรับมือเหตุการณ์ที่อาจจะเกิดขึ้นกับระบบ และใช้แผนการนั้นรับมือหากเกิดสถานการณ์นั้น

2. มีการฝึกซ้อมจำลองสถานการณ์ที่อาจจะเกิดขึ้นอยู่เสมอเพื่อให้แน่ใจว่าแผนการที่ใช้รับมือนั้นยังคงทำงานได้ดีอยู่ และเป็นการทบทวนสมาชิกในทีมถึงแผนการและวิธีการรับมือ

10. Software Development Lifecycle (SDLC) 

Credit : https://i0.wp.com/melsatar.blog/wp-content/uploads/2012/03/sdlc.png?fit=830%2C374&ssl=1

SDLC เป็นกระบวนการพัฒนาซอฟต์แวร์ที่มุ่งเน้นให้ในส่วนที่สำคัญไม่แพ้จากการพัฒนาหรือเก็บ requirements นั้นก็คือ security โดยในทุกๆขั้นตอนของการพัฒนาซอฟต์แวร์จะใส่ security ไปด้วย ซึ่งการใส่ security ไปนั้นก็จะช่วยให้ทุกๆขั้นตอนมีความปลอดภัยมากยิ่งขึ้นลดช่องโหว่ และ ลดการมาปรับแก้โค้ดเรื่องความปลอดภัยพร้อมในการส่งมอบไปยังลูกค้า

  1. เพิ่มการป้องกันความปลอดภัยไปทุกๆรอบของการพัฒนาซอฟต์แวร์ และปรับปรุงให้เหมาะสมกับ development framework ที่ใช้งาน

  2. วางแผนการทำงานล่วงหน้าของระบบ เพื่อป้องกันความเสี่ยงที่อาจจะเกิดขึ้นในระหว่างการพัฒนาซอฟต์แวร์

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

Written by
Nat
Nat

Subscribe to follow product news, latest in technology, solutions, and updates

- More than 120,000 people/day visit to read our blogs

Other articles for you

07
November, 2024
JS class syntax
7 November, 2024
JS class syntax
เชื่อว่าหลายๆคนที่เขียน javascript กันมา คงต้องเคยสงสัยกันบ้าง ว่า class ที่อยู่ใน js เนี่ย มันคืออะไร แล้วมันมีหน้าที่ต่างกับการประกาศ function อย่างไร? เรามารู้จักกับ class ให้มากขึ้นกันดีกว่า class เปรียบเสมือนกับ blueprint หรือแบบพิมพ์เขียว ที่สามารถนำไปสร้างเป็นสิ่งของ( object ) ตาม blueprint หรือแบบพิมพ์เขียว( class ) นั้นๆได้ โดยภายใน class

By

4 mins read
Thai
07
November, 2024
15 สิ่งที่ทุกธุรกิจต้องรู้เกี่ยวกับ 5G
7 November, 2024
15 สิ่งที่ทุกธุรกิจต้องรู้เกี่ยวกับ 5G
ผู้ให้บริการเครือข่ายในสหรัฐฯ ได้เปิดตัว 5G ในหลายรูปแบบ และเช่นเดียวกับผู้ให้บริการเครือข่ายในยุโรปหลายราย แต่… 5G มันคืออะไร และทำไมเราต้องให้ความสนใจ บทความนี้ได้รวบรวม 15 สิ่งที่ทุกธุรกิจต้องรู้เกี่ยวกับ 5G เพราะเราปฏิเสธไม่ได้เลยว่ามันกำลังจะถูกใช้งานอย่างกว้างขวางขึ้น 1. 5G หรือ Fifth-Generation คือยุคใหม่ของเทคโนโลยีเครือข่ายไร้สายที่จะมาแทนที่ระบบ 4G ที่เราใช้อยู่ในปัจจุบัน ซึ่งมันไม่ได้ถูกจำกัดแค่มือถือเท่านั้น แต่รวมถึงอุปกรณ์ทุกชนิดที่เชื่อมต่ออินเตอร์เน็ตได้ 2. 5G คือการพัฒนา 3 ส่วนที่สำคัญที่จะนำมาสู่การเชื่อมต่ออุปกรณ์ไร้สายต่างๆ ขยายช่องสัญญาณขนาดใหญ่ขึ้นเพื่อเพิ่มความเร็วในการเชื่อมต่อ การตอบสนองที่รวดเร็วขึ้นในระยะเวลาที่น้อยลง ความสามารถในการเชื่อมต่ออุปกรณ์มากกว่า 1 ในเวลาเดียวกัน 3. สัญญาณ 5G นั้นแตกต่างจากระบบ

By

4 mins read
Thai
07
November, 2024
จัดการ Array ด้วย Javascript (Clone Deep)
7 November, 2024
จัดการ Array ด้วย Javascript (Clone Deep)
ในปัจจุบันนี้ ปฏิเสธไม่ได้เลยว่าภาษาที่ถูกใช้ในการเขียนเว็บต่าง ๆ นั้น คงหนีไม่พ้นภาษา Javascript ซึ่งเป็นภาษาที่ถูกนำไปพัฒนาเป็น framework หรือ library ต่าง ๆ มากมาย ผู้พัฒนาหลายคนก็มีรูปแบบการเขียนภาษา Javascript ที่แตกต่างกัน เราเลยมีแนวทางการเขียนที่หลากหลาย มาแบ่งปันเพื่อน ๆ เกี่ยวกับการจัดการ Array ด้วยภาษา Javascript กัน เรามาดูตัวอย่างกันเลยดีกว่า โดยปกติแล้วการ copy ค่าจาก value type ธรรมดา สามารถเขียนได้ดังนี้

By

4 mins read
Thai

Let’s build digital products that are
simply awesome !

We will get back to you within 24 hours!Go to contact us
Please tell us your ideas.
- Senna Labsmake it happy
Contact ball
Contact us bg 2
Contact us bg 4
Contact us bg 1
Ball leftBall rightBall leftBall right
Sennalabs gray logo28/11 Soi Ruamrudee, Lumphini, Pathumwan, Bangkok 10330+66 62 389 4599hello@sennalabs.com© 2022 Senna Labs Co., Ltd.All rights reserved.