งาน Security hardening บน Windows หรืออาจเรียกว่า Security lockdown คือ กระบวนการเสริมความแข็งแรงด้านความปลอดภัยให้กับ Windows ด้วยขั้นตอนผสมผสานมากมาย เมื่อเครื่องแข็งแรง ปลอดภัย ผู้ใช้งานก็มั่นใจ มักมีความเข้าใจผิดๆ เช่น Harden ทำให้เสียเวลา, เคย Harden มาแล้วก็ทำเหมือนเดิมๆ นั่นแหละ เป็นต้น
คุณสมบัติของคนที่ทำ Hardening ควรเป็นผู้มีความอดทน เพราะงานนี้เป็นงานที่อยู่เบี้องหลังมากๆ ผู้ใช้ระบบรู้ว่าระบบที่ Harden แล้วแข็งแรง แต่มันไม่มี function อะไรใหม่ๆ และอาจโดนตำหนิหากทำระบบของเขาใช้งานช้าหรือแย่กว่านั้นอาจไม่ได้เลย ต้องรักการเรียนรู้และมีเหตุผลเพราะควร Harden แบบพอดี ถ้าทำมากเกินไปอนาคต update program ไม่ได้จะยุ่ง และสุดท้ายตรงคือต้องสมาธและมีสติอันนี้สำคัญตอนแก้ไขอะไรในระบบต้องรู้ตัวว่าทำอะไร เพราะทำแบบเบลอจะทำให้งานเสียได้ เราลองมาเปิดมุมมองใหม่กับงาน Security hardening ว่าเขาทำอะไรกัน
ขั้นตอนของ Hardening
- ศึกษาการทำงานของ Application บน Server และทดสอบใช้งาน Basic function
- จัดทำ Hardware และ Software inventory เพื่อใช้สำหรับการดูแลว่าเรามีอะไรอยู่บ้าง และส่วนใดต้องการดูแลเรื่องความปลอดภัย
- ถ้า Application นั้นซื้อมาหรือไม่ได้พัฒนาเอง ต้องศึกษา Security Guide จากผู้พัฒนาก่อน เพื่อป้องกันการแก้ไขระบบโดยไม่ได้รับอนุญาต หรือมีปัญหาเรื่องการ Support
- กำหนดขอบเขตการ Harden ให้เหมาะสมหรือตรงกับหน้าที่หรือ Application บน Server
- หาเครื่องมือทุนแรงช่วยประเมินความปลอดภัยเช่น Microsoft MBSA, Best Pracrtise Analyzer เป็นต้น
- หา Hotfix/Patch certification list สำหรับ Application ถ้าหาได้
- ศึกษาวิธีการ Harden จากแหล่งต่างๆ
- มีการ Backup / Recovery
- ลงมือ Harden และหมั่นทดสอบการใช้เบืีี้องต้นเป็นระยะๆ
- ส่งมอบระบบคืนให้ผู้ทดสอบระบบงาน
- มีการ Review security อย่างน้อยปีละ 1 ครั้ง
การกำหนดขอบเขตและรูปแบบการ Harden
จากภาพด้านบน แสดงให้เห็นว่าการ Harden ให้มอง Server แบ่งออกเป็นหมวดหมู่ เพื่อให้ความสะดวกเราก็จะเจาะไปทีละเรื่องอย่างเป็นขั้นเป็นตอน คำอธิบายของแต่ละกล่องมีดังนี้
1. Application หมายถึงการป้องกันใน 2 ระดับคือ
- ระดับของตัว Application ให้ดูเรื่องการสร้างกำหนดสิทธิการใช้งานต่างๆ, การลบข้อมูลทดสอบ, การเขียน Code ที่ไม่มีจุดอ่อนด้าน Security
- ระดับของ Platform ที่ใช้ Run ตัว Application เช่น ถ้าเป็น Web .Net เป็น Microsoft IIS หรือ J2EE ก็เป็น TomCat พวกนี้ต้องไปศึกษา Security Guide ได้
2. File System – ไปดูเรื่องการกำหนดสิทธิ Folder ต่างๆ ให้สิทธิเฉพาะคนที่มีหน้าที่เข้าไปเห็นข้อมูลหรือ Application คนอื่นห้ามเข้า ใน Folder ที่เก็บ Application นั้น มีความสำคัญมาก หากผู้ไม่ประสงค์ดีนำโปรแกรมที่ไม่ได้รับอนุญาตไปลง อาจทำให้เกิดความเสียหายร้ายแรงได้
3. Operating System – ศึกษาจากคู่มือ Security ของ OS ว่าต้องทำอย่างไร เช่น
- User Account/Group,
- การปิด Service, Uninstall program ที่ไม่ใช้,
- การดู Port ด้วย netstat ว่าเครื่องเปิด service อะไรบน TCP/UDP protocol
- ถ้าเป็น Windows เราจะใช้ Group Policy ช่วยก็ได้ เพื่อช่วยให้ดูแลง่ายขึ้นด้วย
- ติดตั้ง Anti-Virus และอย่าลืมดูว่ามัน Update signature ได้
- ติดตั้ง Windows Update Agent แต่ Server อาจกำหนดไม่ใช้มัน update เองได้เดี๋ยวทำเครื่องพัง แต่ใช้ประโยชน์ให้มัน warning เวลามี hotfix ออกใหม่ได้
4. Network – บางครั้งเครื่องเราอาจป้องกันด้วย Software แล้วอาจไม่เพียงพอก็ใช้ Firwall หรืออุปกรณ์ Network security มาช่วยอีกแรง
5. Physical – เครื่อง Server ควรควบคุมให้ผู้มีหน้าที่เข้าไปยุ่งกับมันได้เท่านั้น นอกจากนี้ก็ควรดูว่าที่ตั้ง server นั้น เรียบร้อยไหม เช่น ไม่มีน้ำจากแอร์หรือดับเพลิงหยดลงเครื่อง, พวกสายไฟหรือสายต่างๆ ติดตั้งเรียบร้อยดี เป็นต้น
เครื่องมือ/เครื่องทุ่นแรง
เราควรให้เวลาในการศึกษาข้อมูลของ Software/Hardware ที่ Inventory ที่เราเตรียมไว้ Software บางตัวก็มีผู้พัฒนา Tool สำหรับทำ Security scan มันช่วยให้ประหยัดเวลาและเป็นมาตราดีกว่าเสียเวลามานั่งทำ ซึ่งเราก็ควรรู้อยู่แล้วว่าต้องตรวจตราในหัวไหนด้วย ไม่ใช่ปล่อยเครื่องทำอย่างเดียว เพราะมันทำพังก็ไม่รู้ว่าเป็นเรื่องอะไร ตัวอย่างของเครื่องมือสำหรับ Windows คือ MBSA (http://technet.microsoft.com/en-us/security/cc184924)
ส่งท้าย
การทำงานเรื่อง Security เป็นของการฝึกความคิดหาเหตุผล การทำความเข้าใจขอบเขต 5 ข้อที่กล่าวมา และการศึกษาความรู้ใหม่ด้าน Security เมื่อเทคโนโลยีมีการเปลี่ยนแปลงอยู่ตลอดเวลา อาจมีความรู้ใหม่ๆ ไปเจาะระบบได้ ดังนั้น งาน Hardening จึงเป็น Continuous Process ที่ต้องคอยดูอยู่เรื่อย
External Links เพื่อหาข้อมูลเพิ่มเติม
- https://wikis.utexas.edu/display/ISO/Windows+2008R2+Server+Hardening+Checklist
- http://learn.iis.net/page.aspx/93/optimizing-performance/
- http://learn.iis.net/page.aspx/88/configuring-security/
- http://blogs.msdn.com/b/securitytools/archive/2009/09/30/sql-server-2008-security-policy-example.aspx
- http://blogs.msdn.com/b/securitytools/archive/tags/information+security+tools/