Information Security Risk Assessment and Vulnerability Assessment – Part I
by A.Pinya Hom-anek, CISSP,CISA
ACIS Professional Team
พูดถึงคำว่า “Security” ของระบบ IT นั้น ดูเหมือนว่าคำจำกัดความจะมีความหมายค่อนข้างลึกซึ้ง เพราะ “Security” ไม่ได้เป็นแค่ Product เช่น การติดตั้ง Firewall และ IDS (Intrusion Detection System) แล้วจบ แต่ “Security” เป็น “Ongoing Process” หมายถึงต้องทำเป็นระบบและทำอย่างต่อเนื่องไม่มีวันจบ หากเราพูดว่า ระบบของเรามี “Security” ที่ดีในวันนี้ อีกเดือนหนึ่งหรืออีกสัปดาห์หนึ่งข้างหน้า ระบบอาจถูก Hack ได้ เหตุผลก็คือ ช่องโหว่ของระบบที่เราเรียกว่า “Vulnerability” ใหม่ๆ นั้นเกิดขึ้นแทบทุกวัน สังเกตได้จาก NOS ในตระกูล Windows ของ Microsoft นั้น จะมีรายงานช่องโหว่ของระบบทุกเดือน โดยเฉลี่ยเดือนละ 3-5 ช่องโหว่ บางเดือนก็มีถึงกว่า 10 ช่องโหว่ โดยมาจากทั้งตัว Windows 2000 Server เอง, IIS Web Server, Microsoft SQL Server หรือแม้กระทั่ง Browser ตัวเก่ง IE 6.0 ตลอดจน Mail Client เช่น Outlook หรือ Outlook Express เป็นต้น
ค่าย UNIX หรือ LINUX นั้นก็มีช่องโหว่กับเขาด้วยเช่นกัน โดยเฉพาะช่องโหว่ใน “BIND” DNS Server หรือ “Sendmail” Mail Server, “WU.FTPd” FTP Server ตลอดจน “APACHE” Web Server ที่มีผู้ใช้งานมากที่สุดในโลกก็มีช่องโหว่ที่ได้รับการแก้ไขแล้ว นี่ยังไม่รวมช่องโหว่ใน Secure Shell (SSH) version 1.0 และ OpenSSL ในระยะหลายเดือนที่ผ่านมานั้น ช่องโหว่ในระบบ Open Source นั้นมีมากขึ้นตามสำดับสัมพันธ์กับความนิยมในการใช้งาน Linux ที่เพิ่มมากขึ้นอย่างรวดเร็ว
ถ้าถามผมว่า แล้วเราจะใช้ระบบอะไรดี ระหว่างผลิตภัณฑ์ในตระกูล “Windows” ของค่าย “Microsoft” กับผลิตภัณฑ์ในตระกูล “UNIX” เช่น SUN Solaris, IBM AIX ตลอดจนพวก Open Source อย่าง Linux หรือ Apache Web Server
คำตอบก็คือ เราต้องมาพิจารณาดูตัวเราเอง ถ้าเป็นองค์กรก็ลองพิจารณาดูความพร้อมของทีมงานฝ่าย ITว่ามีความชำนาญในการจัดการดูแล Windows หรือ UNIX/ LINUX มากกว่ากัน การที่เราจะป้องกันระบบให้มีประสิทธิภาพนั้น เราจำเป็นต้องมีความรู้ถึงผลิตภัณฑ์ที่เราใช้งานอยู่อย่างถ่องแท้เสียก่อน พูดง่ายๆว่า เราต้องชำนาญในตัว NOS นั้นๆอยู่พอสมควร เราจึงจะสามารถป้องกันได้อย่างมีประสิทธิภาพ
ยกตัวอย่าง เช่น หากคุณต้องการนำ Linux มาใช้งานเป็น Web Server โดยใช้ Apache Web Server และ ใช้ PHP กับ MySQL ในการทำ Web Application แต่บุคลากรในองค์กรหรือตัวคุณเองไม่มีความชำนาญในการใช้งาน Linux เวลามี Patch แก้ช่องโหว่ออกมา คุณก็จะไม่ได้ Update หรือไม่กล้าลง Patch กลัวมีปัญหากับ “Production Server” ที่ใช้งานอยู่ ก็เลยปล่อยให้ระบบมีช่องโหว่โดยปริยาย Linux Server ของคุณก็อาจกลายเป็นเหยื่อของเหล่า “Script Kiddies” หรือ “Hacker” ทั้งหลายที่มีอยู่ทั่วโลก และพวก Hacker มือโปรส่วนใหญ่แล้วกว่า 90% เป็นผู้ที่มีความชำนาญในการใช้งาน UNIX/Linux ทั้งสิ้น ถ้าเหตุการณ์เป็นเช่นนี้แล้ว ผมมีความคิดว่าใช้ Windows น่าจะดีกว่า ในกรณีที่เราขาดแคลนบุคลากรที่มีทักษะ (skill) ในด้าน UNIX/Linux เพราะ Windows นั้นดูแลง่ายกว่า การ update พวก Service Pack หรือ Hot Fix ก็ทำได้โดยง่ายกว่าการจัดการกับ Patch ต่างๆบน UNIX/Linux
แล้วเราจะแน่ใจได้อย่างไรว่าระบบที่เราใช้อยู่ ไม่ว่าจะเป็น Unix/Linux หรือ Windows จะไม่มีช่องโหว่ ?
วิธีการที่เราควรจะเริ่มทำซึ่งเป็นขั้นตอนแรกของ “การรักษาความปลอดภัยข้อมูลอย่างเป็นระบบ” (ท่านผู้อ่านสามารถหาอ่านได้ใน eLeader Vol 15 หรือที่ Web Site:http://www.acisonline.net/article_prinya_secureawareness.htm) ก็คือ การทำ “Information Security Risk Assessment” หมายถึง การวิเคราะห์ความเสี่ยงของระบบนั่นเอง ซึ่งเราต้องตอบคำถามต่างๆดังต่อไปนี้
1. ระบบของเรามีส่วนไหนบ้างที่มีโอกาสล่มหรือโดน Hacker เข้ามาถล่ม หรือแอบขโมยข้อมูล และภัยที่จะเกิดขึ้นกับระบบของเราจะมาจากทางไหนได้บ้างเช่น ภัยจาก Hacker ทั้งภายใน ภายนอก, ภัยจากไวรัส, ภัยจาก Hardware มีปัญหา เป็นต้น (Threat Events)
2. ถ้ามีเหตุเกิดขึ้นกับระบบเช่น ระบบล่มหรือโดน Hacker เข้ามา Hack ถามว่า ความเสียหายในครั้งนั้นจะมากน้อยเพียงใด (Single Exposure Value)
3. โอกาสที่จะเกิดเหตุ, ความถี่หรือจำนวนครั้งที่เกิด (Frequency)
4. เราควรจะทำอย่างไรเพื่อที่จะไม่ให้เกิดปัญหากับระบบหรือลดความรุนแรงของปัญหาที่เกิดขึ้น หรือ เราอาจจะทำการ “Transfer” ความเสี่ยงไปให้บุคคลที่ 3 (3rd party) (Safeguards and Controls)
5. ถ้าสรุปได้ว่า ต้องมีการซื้อ Firewall หรือ IDS ในการป้องกันระบบ ค่าใช้จ่ายทั้งหมดรวมถึงค่า Implement และ Maintenance นั้นเป็นจำนวนเท่าไร่ (Safeguards and Controls Costs)
6. สุดท้ายต้องคำนวณ Cost/Benefit ระหว่าง มูลค่าของความเสียหายที่เกิดขึ้น กับค่าใช้จ่ายที่เราต้องลงทุนในการป้องกันระบบว่าคุ้มกันหรือไม่ ตลอดจนคำนวณค่า ROI (Return On Investment)
จากคำตอบที่ได้จากคำถามต่าง ๆ ทำให้เราพอมองเห็นแล้วว่า เราควรที่จะลงทุนในการป้องกัน Asset ของเราหรือไม่ คำว่า “Asset” นั้น หมายถึง “สิ่งที่เรามีความจำเป็นต้องป้องกัน” เช่น ข้อมูล (Information), ฐานข้อมูล (Database), บุคลากร (Personal) , Hardware และ Software ตลอดจน Network Infrastructure เป็น Router หรือ Switching เป็นต้น
การวิเคราะห์ความเสี่ยงของระบบนั้น ประกอบไปด้วยขั้นตอนใหญ่ ๆ ทั้งหมด 6 ขั้นตอน ได้แก่
ขั้นตอนที่ 1 Inventory, Definition, and Requirements
การเข้ามาเก็บข้อมูลและเรียนรู้ทำความเข้าใจถึง “Business Process” ขององค์กร ตลอดจนทำ Inventory ของ hardware และ software ที่ใช้งาน เพื่อเตรียมข้อมูลให้พร้อมในขั้นตอนต่อไป
ขั้นตอนที่ 2 Vulnerability & Threat Assessment
การวิเคราะห์ช่องโหว่และภัยต่าง ๆ ที่อาจเกิดขึ้นกับระบบ ทั้งระดับ Network, Hosts ตลอดจน application โดยเฉพาะอย่างยิ่ง “Web application” ทุกวันนี้การ Hack ส่วนใหญ่เกิดขึ้นกับ Web sever ที่ไม่ได้ Harden หรือ ไม่ได้รับการดูแลลง Patch หรือ Hotfix อย่างสม่ำเสมอ
ขั้นตอนนี้ต้องใช้ tools ที่มีความสามารถในการเจาะระบบ และบุคลากรที่มีความชำนาญในการใช้ tools ด้วย การที่บางองค์กรใช้ “Vulnerability Scanner” เช่น Internet scanner จาก iss.net หรือ Nessus จาก nessus.org ตลอดจน Retina จาก eeye.com มาทำการวิเคราะห์เจาะหาช่องโหว่ ก็ยังอาจไม่เพียงพอ หรือไม่สามารถเจาะเข้าสู่ระบบให้เห็นภาพชัดเจนได้ เพราะบุคลากรที่ใช้งาน tools เหล่านี้ ถ้าไม่ได้เป็น hacker หรือยังไม่มีสัญชาติญาณของ hacker ตลอดจน ยังไม่มี skill ในระดับ hacker ที่สามารถเจาะเข้าสู่ระบบได้ เราจึงอาจต้องทำการเจาะระบบโดยอาศัยความสามารถของ Professional Security Consultant หรือบริษัทที่รับงานด้านนี้ที่มีประสบการณ์เพียงพอที่จะเจาะเข้าสู่ระบบของเราได้ ในหลักการเราเรียกว่า การทำ “Penetration test” หรืออีกนัยหนึ่งก็คือ ” Ethical Hacking Our System” นั่นเอง
การทำ “Vulnerability Assessment” ที่ดีนั้น เราควรจะได้รายงานผลดังนี้
2.1. Network Mapping
ถ้า Attacker หรือ Hacker ที่ Hack เข้ามาจากภายนอก (จาก Internet ) สามารถมองเห็นแผนผังของเครือข่ายของเราได้หรือไม่? โดยอาจจะดึงข้อมูลจาก DNS server ของเราที่ไม่ได้ป้องกัน Zone Transfer เป็นต้น
2.2. Hosts and Services Discovery
การทำ Penetration Test สามารถได้ข้อมูลของ Host ที่อยู่ในระบบของเราหรือไม่? โดยควรจะแสดงให้เห็น IP Address, ชนิดของ NOS ว่าเป็น Windows หรือ UNIX/Linux ตลอดจน Service ที่เปิดให้บริการอยู่ไม่ว่าจะเป็น HTTP Port 80, SMTP Port 25 หรือ SSH Port 22 เป็นต้น ข้อมูลของ Host นั้นควรจะเจาะได้เริ่มจาก Router ของเราที่ต่ออยู่กับ ISP แล้วมาที่ Firewall ตลอดจน Host ทั้งหมดที่อยู่ใน DMZ (Demilitarized Zone) ถ้าสามารถเจาะเข้าถึง Host ที่อยู่ภายใน Internal Network (หลัง Firewall) ก็ยิ่งดี ในแง่ของการเจาะระบบแบบ Ethical Hacking แต่ไม่ดีแน่ ๆ ถ้าช่องโหว่ของระบบเราเปิดให้เข้าถึง Host ที่อยู่หลัง Firewall
2.3. Vulnerability Analysis
เมื่อทราบถึง Host และ Service ที่เปิดอยู่แล้ว ควรรายงานช่องโหว่ของระบบที่มีอยู่ในแต่ละ Host ตลอดจนวิเคราะห์ว่า ถ้าช่องโหว่ถูกเจาะในระดับแรก แล้วจะมีการเจาะเพิ่มอีกในระดับต่อไปอย่างไร
2.4. Vulnerability Measurement & Data Collection
ควรแสดงถึงขั้นตอนในการเจาะระบบให้ดูโดยละเอียด เพื่อความเข้าใจที่ดียิ่งขึ้น จะได้รู้ว่าควรป้องกันอย่างไรถึงจะได้ผล
2.5. Security Design Review & Recommendation Identify Safeguard
หลังจากที่เราทราบแล้วว่า ระบบเรามีช่องโหว่ก็ควรมีคำแนะนำในการออกแบบระบบให้มีความปลอดภัยมากกว่าที่เป็นอยู่ โดยใช้หลักการ “Defense-in-Depth” กล่าวคือ ต้องพิจารณาเรื่องการ Hardening Host ต่าง ๆ, การ Re-design Perimeter Network ใหม่ เช่น การ Re-config Firewall หรือ IDS ตลอดจน Screening Router, การ Implement IDS เพิ่มเติม, การ Encryption โดยใช้ SSL หรือ Server Shell, การกำหนด Security Polices & Procedures เช่น การใช้งาน Remote Access, การแก้ปัญหาในระดับ Application ตลอดจนการ Evaluate Source Code จากนั้นควรมีการพูดถึงการ Maintenance และ Monitoring อย่างต่อเนื่อง ตลอดจนแผนรองรับเหตุการณ์ที่อาจเกิดขึ้น (Incident Response)
จะเห็นได้ว่าขั้นตอนที่ 2 นั้นมีรายละเอียดปลีกย่อยค่อนข้างมาก และต้องการทีมงานที่มีประสบการณ์และทักษะในด้าน Security ค่อนข้างสูง ดังนั้นการเลือกบริษัทที่จะมาทำแบบ Security Assessment นั้น จึงต้องพิจารณาอย่างรอบคอบ
สำหรับขั้นตอนของ “Risk Assessment” ใน step ที่ 3 ถึง 6 นั้น ผมขอกล่าวในฉบับหน้าแล้วกันนะครับ อย่าลืมติดตามนะครับ
จาก : หนังสือ eLeader Thailand
ปีที่ 15 ฉบับที่169 ประจำเดือนมีนาคม 2546
Update Information : 21 มีนาคม 2546