Share this
ข้อควรปฏิบัติสำหรับการทำ Server Hardening
Issues
April
Programmer
Categories:
#Back-end Tools
Inspired by: Khemanorak, Natchaya
Views
Server Hardening คืออะไร ?
โดยปกติคำว่า “Hardening” มีความหมายโดยทั่วไป ถึงการทำให้ Surface มีความแข็งแรงขึ้น อีกทั้งยังทำให้มีความคงทนมากขึ้นต่อการถูกจู่โจม
Server Hardening ก็มีความหมายที่ใกล้เคียงกัน นั่นคือกระบวนการการเพิ่มความแข็งแกร่งให้แก่ระบบ (Server) เพื่อเพิ่มความปลอดภัย ภูมิคุ้มกัน และความคงทนให้กับระบบ อีกทั้งยังช่วยป้องกันและรับมือการโจมตีการบุคคลภายนอกอีกด้วย
หากกล่าวสั้นๆ การประยุกต์ใช้งาน Server Hardening นั้นจะลด พื้นที่สำหรับการโจมตี (Attack Surface) สำหรับระบบของเรา
ทำไม Server Hardening ถึงมีความสำคัญ
ก่อนอื่นเลย เราขอพูดถึง Attack Surface ก่อน Attack Surface หรือพื้นที่โจมตี คือจุดต่างๆของระบบที่ บุคคลภายนอกสามารเข้ามาโจมตี โดยอาจจะเข้าถึงข้อมูลที่เป็นความลับ (Confidential) หรือทำลายความสมบูรณ์ (Integrity) และการทำงานของระบบในภาพรวม (Functionality)
แน่นอนว่าการถูกโจมตี 1 ครั้งย่อมส่งผลกระทบต่อระบบของเราในวงกว้าง ทั้งในเรื่องการรั่วไหลของข้อมูล ซึ่งอาจจะเป็นข้อมูลส่วนตัวที่มีควาสำคัญ ทั้งในเรื่องการทำงานของระบบ ซึ่งอาจเกิดความเสียหายต่อธุรกิจเป็นอย่างมาก นอกจากนี้สำหรับบริษัผู้พัฒนาระบบ อาจทำให้ลูกค้าเสียความเชื่อมั่นต่อบริษัทอย่างแน่นอน
ยิ่งในโลกปัจจุบันที่การใช้งาน อีกทั้งการวางระบบ ล้วนใช้งาน Internet ทั้งสิ้น ทำให้มีความเป็นไปได้สูงขึ้นที่ระบบจะถูกโจมตีโดยผู้ไม่ประสงค์ดี ดังนั้น การที่ระบบขาดเครื่องมือในการป้องกันตัวเองจากการโจมตีนี้ ถือเป็นความเสี่ยงอย่างมาก
การประยุกต์ใช้งาน Server Hardening กับทุกระบบในองค์กรจึงมีความสำคัญอย่างยิ่ง เนื่องจากมันจะช่วยในการป้องกันการโจมตีจากบุคคลภายนอก หรือทำให้ระบบเราคงทนและสามารถรับมือกับการโจมตีทุกรูปแบบ ซึ่งจะช่วยสร้างเสริมทั้งความปลอดภัย และความมั่นใจสำหรับผู้ใช้งานทุกคนได้นั่นเอง
จึงอาจพูดได้ว่า Server Hardening ไม่ช่ทางเลือก แต่เป็นสิ่งที่ “ควรทำ” และ “ต้องทำ” เพื่อความปลอดภัยของข้อมูลและการใช้งาน
ข้อควรปฏิบัติเมื่อทำ Server Hardening
สำหรับบทความนี้ เราจะไม่เน้นพูดขั้นตอน Step-by-Step สำหรับการทำ Server Hardening แต่เราจะนำเสนอ Tip & Trick ที่จะช่วยให้คุณทำ Server Hardening ได้อย่างมีประสิทธิภาพ
สำหรับการทำ SSH
- ไม่ควรมีการ Login Remote ผ่าน Root โดยควรที่จะเป็นการ Login จาก User ธรรมดาก่อน จากนั้นจะ Log In ผ่าน Root User
- ในกรณีที่ไม่มีการทำงาน (Action) ภายในระยะเวลา 5 นาที ควรมีการตั้งค่า Disconnect idle connection
- ควรที่จะ Disable การทำ X11 Forwarding
- ไม่ควรใช้ Default Port เช่น Port 22 เนื่องจากจะแสกนหาเจอได้ง่าย
- ควรมีการตั้งค่าว่าผู้ใช้งานท่านไหนสามารถ SSH เข้าสู่ระบบได้
- ไม่ควรใช้ Username และ Password ในการ SSH เข้าสู่ระบบ เนื่องจากมีความปลอดภัยไม่มากพอ แต่ควรจะใช้ Key Pair ที่มีทั้งความซับซ้อน มีรหัสที่ยาว และปลอดภัยกว่า
ผู้ใช้งานและกลุ่ม (User and Group)
- อย่าใช้ Root User ในการ Run Application เนื่องจากการใช้ Root User ในการดำเนินการจะไม่มีการเก็บข้อมูลในการทำ Operational Log และทำให้ตรวจสอบได้ยาก
- ควรมีการสร้าง Group ใหม่ โดยควร ควรมีการตั้ง Sudo Permission
- หากใช้งานร่วมกับ CI/CD เพื่อการ Deployment โดยหากมีการใช้ Password ในการดำเนินการจะไม่ปลอดภัย เนื่องจากจะต้องมีการเก็บ Password ไว้เป็น text file ดังนั้น เราจึงควรที่จะให้กลุ่ม execute command โดยใช้ Root Permission และไม่จำเป็นต้องใส่ Password
Strong Password Policy
- ควรเปลี่ยน Password ทุกๆ 90 วัน
- ควรตั้งค่า Password ให้ยาวที่สุดที่สามารถทำได้
- ควรใช้ทั้ง Lower Case, Upper Case และอักขระพิเศษ (Special Character) ในตั้งค่า Password
- ตั้งค่าไม่ให้ Password ซ้ำ จากอันเดิมที่เคยตั้งไปก่อนหน้า เพื่อเสริมความปลอดภัยอีก 1 ระดับ
Encrypt the Data
- สำหรับการจัดเก็บข้อมูล หากเป็นข้อมูลที่มีความสำคัญและเป็นความลับควรจะ Encrypt ข้อมูล เพื่อความปลอดภัย
การตั้งค่า Server Log
- ทุกๆ Server ที่มีควรตั้งค่า Log ไปไว้ในที่เดียว ไม่ควรแยกกัน เนื่องจากหากต้องการจะตรวจสอบและข้อมูลอยู่คนละที่กันจะทำให้ตรวจสอบได้ยาก
Time Sync
- Server ทุกตัวควรมีการตั้งค่าเวลาที่ Timezone ตรงกัน เนื่องจากหากต้องการตรวจสอบข้อมูลจะสามารถตรวจสอบข้อมูลจากเวลาเดียวกัน ซึ่งจะทำให้สามารถดำเนินการได้ง่ายกว่านั่นเอง
และนี่คือหลักการที่ควรปฏิบัติ 6 ประการเมื่อคุณจะใช้งาน Server Hardening จริงๆแล้วยังมีการข้อปฏิบัติอีกหลายอย่างที่คุณสามารถปรับใช้ เพื่อสร้างเสริมความปลอดภัยให้กับระบบมากขึ้น
ขอบคุณที่มาข้อมูลจาก
You may also like
Low Code Framework ทำงานอย่างไร?
ก.ย. 25, 2024•อ่านเมื่อ 1 วันที่แล้ว
Back-end Tools
Front-end Tools
Automated Process
วิธีสร้าง Chatbot ในแบบฉบับง่ายๆ ไม่ใช่ คนTech ก็ทำได้
ก.ย. 25, 2024•อ่านเมื่อ 28 นาทีที่แล้ว
Back-end Tools
Front-end Tools
Digital Transformation
HR Bot สร้างขึ้นมาได้อย่างไร
ก.ย. 25, 2024•อ่านเมื่อ 4 ชั่วโมงที่แล้ว
Bot
Automated Process
Front-end Tools
Angular event
ก.ย. 25, 2024•อ่านเมื่อ 4 วันที่แล้ว
Front-end Tools
Automated Process
Video