How to hardening your MS Windows OS
by A.Phakkhaphong Kritawat
CCNA, MCSE Windows 2000 with XP , MCSA Windows 2000 ,MCDBA SQL Server 2000 , OCA 9i
ACIS Professional Team
E-mail:phakkhaphong

การรู้จักกับช่องโหว่ (Vulnerability) ในระบบสารสนเทศและวิธีการจัดการกับช่องโหว่เหล่านั้น (Vulnerability Assessment) เป็นเรื่องที่สำคัญที่สุดอย่างหนึ่งในด้าน Information Security ทุกวันนี้มีการพบช่องโหว่มากมาย โดยเฉพาะอย่างยิ่งที่มากับระบบปฏิบัติการเอง โดยปกติแล้วระบบปฏิบัติการที่ขายๆ กันอยู่ในท้องตลาด หรือในแบบที่จำหน่ายจ่ายแจกได้ฟรีล้วนแล้วแต่มีช่องโหว่ให้แฮกเกอร์สามารถเจาะระบบเข้ามาได้แทบทั้งสิ้น จำเป็นอย่างยิ่งที่จะต้องได้รับการแก้ไขเพื่ออุดรอยรั่วเหล่านั้น หรือที่เรียกว่า การ Hardening ระบบนั่นเอง แต่ขอให้ระลึกไว้เสมอว่าการทำ Hardening ที่ผมกำลังเสนอนี้ เป็นเพียงการปรับแก้ในส่วนที่สำคัญๆ เท่านั้น ช่องโหว่อื่นๆ ยังคงหลงเหลืออยู่ และจะเพิ่มมากขึ้นเมื่อเวลาผ่านไป อีกเรื่องหนึ่งที่ผู้อ่านต้องระมัดระวังก็คือเมื่อใดก็ตามที่ผู้อ่านลงซอฟท์แวร์ต่างๆ เพิ่มเข้าสู่ระบบปฏิบัติการ ก็จะเป็นการเพิ่มเป้าหมายในการโจมตีให้กับแฮกเกอร์อย่างช่วยไม่ได้ ผู้อ่านจำเป็นที่จะต้องติดตามข่าวคราวเกี่ยวกับช่องโหว่ต่างๆ ของทั้งระบบปฏิบัติการและซอฟแวร์ที่ผู้อ่านมี (http://www.microsoft.com/security , http://online.securityfocus.com) ซึ่งอาจถูกตรวจพบภายหลังอย่างสม่ำเสมอ

ผมจะขอเริ่มที่การ Hardening ระบบปฏิบัติการวินโดว์ ก่อน เพราะผู้อ่านส่วนใหญ่ใช้งานระบบปฏิบัติการนี้อยู่ ซึ่งมีรายละเอียดดังนี้

1. ช่องโหว่ที่เกิดจากการทำ Networking Shares โดยไม่มีการป้องกันที่รัดกุม ปัญหานี้เป็นปัญหาที่รุนแรงและขยายวงกว้างไปอย่างรวดเร็ว เป็นเพราะประโยชน์ของความสามารถในการแชร์ไฟล์กันอย่างง่ายดาย ผู้ใช้ทั่วไปก็สามารถตั้งค่าใช้งานกันได้เอง แต่ผู้ใช้เหล่านั้นหรือแม้แต่ผู้ดูแลระบบที่ไม่ระวัง ก็อาจทำให้เกิดช่องโหว่ได้โดยง่าย ตัวอย่างเช่นไวรัส Nimda ซึ่งพยายามค้นหาช่องโหว่นี้ในระบบของคุณ และหากตรวจพบก็จะ Copy ตัวมันลงในเครื่องของคุณ จากนั้นก็ใช้เครื่องคุณเป็นฐานเพื่อโจมตีเครื่องอื่น ๆ ต่อไป
    วิธีการแก้ไข
  • ให้ปิดแชร์ที่ไม่จำเป็นต้องใช้งานแล้ว ทิ้งไป
  • ไม่ทำการแชร์ให้กับเครื่องที่อยู่บนอินเตอร์เน็ตโดยเด็ดขาด
  • ต้องบังคับให้มีการตรวจสอบสิทธิก่อนการเข้าถึงข้อมูลด้วยทุกครั้ง
  • ทำการแชร์เฉพาะไดเรกทอรี่ที่ต้องการใช้งานเป็นการเฉพาะเท่านั้น อย่าทำการแชร์ให้กับไดเรกทอรีราก (C:,D:,E:,…) โดยเด็ดขาด
  • ทำการระบุเครื่องที่มีสิทธิเข้าถึงแชร์ โดยการใช้ค่า IP Address เท่านั้น อย่าใช้ชื่อเครื่องโดยเด็ดขาด เพราะในทุกวันนี้ชื่อเครื่องเองก็ไม่ปลอดภัย เนื่องจากมีเทคนิคที่เรียกว่าการทำ DNS Spoofing ซึ่งสามารถสร้าง
  • Record ใน DNS เพื่อหลอกว่าเป็นเครื่องที่ติดต่อกับคุณได้โดยง่าย
  • ทำการปิด Port ที่วินโดว์ใช้ในการแชร์ File & Print (port 137,138,139 และ 445)
2. ช่องโหว่ที่ผู้อื่นสามารถเรียกค้นข้อมูลจากเครื่องคุณ หรือเข้าใช้งานเครื่องคุณได้โดยไม่จำเป็นต้องมีการตรวจสอบสิทธิใด ๆ ซึ่งเป็นปัญหาที่เกิดกับวินโดว์ทุกรุ่นที่มีอยู่ในท้องตลาด เนื่องจากไมโครซอฟท์ ได้ทำการสร้างแชร์พิเศษชื่อ IPC$ เพื่อประโยชน์ในการติดต่อระหว่างซอฟท์แวร์ต่างๆ ของไมโครซอฟท์ให้เป็นไปโดยง่าย แฮกเกอร์ก็สามารถใช้ประโยชน์ในจุดนี้เพื่อเข้ามาหาข้อมูลจากเครื่องของคุณ และอาจเข้าถึงเครื่องคุณได้ทันที หากตั้งต่างๆ เกี่ยวกับการแชร์ไม่ดีพอ (Null Session Vulnerability)
    วิธีการแก้ไข
  • ให้แก้ไขค่าใน Registry เพื่อจำกัดสิทธิของผู้ที่เข้ามาแบบ Anonymous Login ดังนี้
  • HKLM/System/CurrentControlSet
    /Control/LSA/RestrictAnonymous=2
  • ทำการปิดกั้นการเข้าถึง Port 135,137,138,139 และ 445 ทั้ง TCP และ UDP จากภายนอกเครือข่าย โดยกำหนดไว้ที่ Router หรือ Firewall ตัวนอกสุดก็ได้
3. ช่องโหว่ที่เกิดจากการใช้ Weak Hashing Function ในการตรวจสอบสิทธิการเข้าถึงที่ใช้เวลาไม่นานในการค้นหารหัสผ่านที่ถูกต้อง เช่น LM Hashing
    วิธีการแก้ไข
  • ปิดการใช้งาน LM Hashing โดยเปลี่ยนไปใช้ Hashing Function อื่นๆ ที่ดีกว่าดังนี้ HKLM/System/CurrentControlSet
    /Control/LSA/LMCompatibilityLevel=x
    โดย x มีค่าดังนี้
    0 - Send LM response and NTLM response
    1 - Use NTLMv2 session security if negotiated
    2 - Send NTLM authentication only
    3 - Send NTLMv2 authentication only
    4 - DC refuses LM authentication
    5 - DC refuses LM and NTLM authentication (accepts only NTLMv2)
  • ไม่จัดเก็บค่าที่เกิดจากการ Hash ด้วย LM Hashing ไว้ในระบบปฏิบัติการวินโดว์
    กรณี Windows 2000 ให้กำหนดฟังก์ชัน HKLM/System/CurrentControlSet/Control
    /LSA/NoLMHash

    กรณี Windows XP ให้กำหนดค่า HKLM/System/CurrentControlSet/Control
    /LSA/NoLMHash=1
4. ช่องโหว่ที่เกิดจากการใช้รหัสผ่านที่ไม่มีประสิทธิภาพหรือไม่กำหนดรหัสผ่าน อาจจะมาจากที่คุณกำหนดรหัสผ่านนั้นขึ้นใช้งานเอง หรือซอฟท์แวร์ที่ใช้งานสร้างบัญชีผู้ใช้และกำหนดรหัสผ่านมาให้ก็ตาม สิ่งเหล่านี้ทำให้แฮกเกอร์สามารถขโมยรหัสผ่านของคุณไปใช้งานได้อย่างไม่ยากเย็นนัก
    วิธีการแก้ไข
  • แน่ใจว่าได้กำหนดรหัสผ่านที่มีความยาวเพียงพอและซับซ้อนยากต่อการคาดเดา แนะนำให้มีความยาวตั้งแต่ 8 ตัวอักษรขึ้นไป และประกอบด้วย ตัวอักษร ตัวเลข และสัญลักษณ์พิเศษ โดยตัวอักษรต้องไม่เป็นคำที่สามารถพบได้ในพจนานุกรม
  • ในกรณีที่คุณเป็นผู้ดูแลระบบ ให้กำหนด Password Policy ที่รัดกุม โดยเฉพาะการบังคับให้มีการกำหนดรหัสผ่านอย่างรัดกุม ดังคำแนะนำที่ให้ไว้
ทั้งหมดนี้เป็นเพียงบางส่วนที่จะช่วยให้ระบบปฏิบัติการวินโดว์ของคุณยากต่อการเจาะเข้ามาของแฮกเกอร์ ซึ่งเราจะมารู้จักกับช่องโหว่ที่เหลือในคราวต่อๆ ไป หากมีข้อสงสัยประการใดติดต่อผมได้ที่ phakkhaphong ขอบคุณครับ

Update Information : 6 ธันวาคม 2545


การติดตั้ง Snort และ ACID (Open Source Intrusion Detection System) อย่างง่ายและถูกวิธี
Update: April 2, 2003


How to hardening your UNIX/Linux OS
Update: Dec 23, 2002


How to hardening your MS Windows OS
Update: Dec 6, 2002

all_pix_trans.gif (807 bytes)