ปัจจุบันจำนวนของช่องโหว่ในส่วนของ Application พบว่ามีจำนวนมากกว่าช่องโหว่ของระบบปฏิบัติการ (Operating System) โดยแนวโน้มนี้เริ่มมาได้ประมาณ 2-3 ปีที่ผ่านมา อันเนื่องจากความนิยมในการใช้งาน Application แบบ Web based ซึ่งเทคโนโลยีช่วยให้การบริหารจัดการ และ บำรุงรักษา (Maintenance) เป็นไปอย่างง่าย เร็ว และทั่วถึง เมื่อเปรียบเทียบกับ Application แบบ Client-Server เดิม แต่ในขณะเดียวกันการที่เปิดกว้างก็เป็นแหล่งให้เกิดการโจมตีจากภายนอกได้ ง่ายเช่นเดียวกัน
ภาพแสดงความสัมพันธ์ของจำนวนช่องโหว่ (Vulnerabilities) และ แต่ละ Layer |
สาเหตุที่พบเป็นประจำของช่องโหว่ที่เกิดใน Web Application คือ
- การเขียนโปรแกรมที่ไม่รัดกุม หรือ ไม่ได้คำนึงถึงการรักษาความปลอดภัยอย่างเพียงพอ (Secure Coding) เช่น Input validation ที่ไม่เหมาะสม การไม่มี Session tracking หรือ Cookie integrity check เป็นต้น
- การพบช่องโหว่ หรือ ข้อผิดพลาด ในระบบที่ทำงานร่วมกันเป็น Web Application เช่น Web Application Server หรือ Web Server หรือ Operating System ที่ระบบต่างๆ ทำงานอยู่
- การกำหนดค่า Configuration ที่ไม่เหมาะสม หรือ ไม่ปลอดภัยในขณะที่ทำการ Implement ระบบ หรือการใช้ค่า default ในระหว่างติดตั้ง
ดังจะเห็นได้จากสถิติการโจมตีในภาพถัดไป
แผนภาพแสดงจำนวนครั้งที่เกิด HTTP Attack (Server-side) ในระหว่าง มีนาคม ถึง กันยายน 2009 |
แผนภาพประเทศเป้าหมายของ HTTP Attack (Server side) ระหว่าง มีนาคม ถึง กันยายน 2009 |
แผนภาพประเทศต้นกำเนิดของ HTTP Attack (Server side) ระหว่าง มีนาคม ถึง กันยายน 2009 |
จากสถิติที่แสดง จะเห็นว่าประเทศไทยติดอันดับต้นๆ ของประเทศที่มีการโจมตีในส่วนของ Web Application มากที่สุดในโลก รวมถึงเป็นประเทศที่เป็นต้นกำเนิดของการโจมตีเป็นอันดับสอง ซึ่งเป็นไปได้จากหลายสาเหตุ สาเหตุหนึ่งคือ การถูกใช้งานเพื่อการโจมตีในลักษณะของ BotNet (ย่อมาจาก roBOT NETwork ซึ่งหมายถึง เครื่องคอมพิวเตอร์ทั่วไป ที่ถูกติดตั้ง Software ประเภท Trojan horse โดยเจ้าของเครื่องหรือผู้ใช้ไม่รู้ตัว ซึ่ง Software นั้นจะคอยรับคำสั่งตามแต่ผู้ควบคุมเครือข่ายของ Trojan นั้นๆ จะกำหนด เช่น โจมตี Web site ปลายทางให้ใช้งานไม่ได้ (DDoS Attack) หรือ หาช่องโหว่ในระบบที่ตั้งเป้าหมายเอาไว้ หรือทำการส่งจดหมายขยะ (Spam Mail) เป็นต้น ซึ่งเคยมีการตรวจพบว่า บางเครือข่าย มีจำนวนเครื่องในควบคุมนับล้านเครื่องทั่วโลก ซึ่งเป็นเครื่องในควบคุมที่สามารถสั่งงานให้ทำอะไรก็ได้ตามแต่ผู้จ้างวาน ต้องการ ซึ่งถือเป็นรูปแบบหนึ่งของ Cyber Criminal ซึ่งมีการคาดการณ์ว่า ในปี 2010 การโจมตีที่เกิดขึ้นจะมีสัดส่วนของ Cyber Crime มากกว่า Hactivisim หรือการทดลองเจาะระบบโดยวัยรุ่นหรือนักศึกษาที่อยากลองวิชา ซึ่งเคยถือเป็นสัดส่วนสูงสุดในอดีต
ประเภทของการโจมตีผ่าน Web Application
OWASP (The Open Web Application Security Project) เป็นองค์กรไม่แสวงหากำไรที่เกิดจากการรวมตัวของผู้ชำนาญการในสาขาต่างๆ เพื่อวิเคราะห์ เฝ้าระวัง และให้ความรู้แก่บุคคลทั่วไป โดย OWASP ได้จัดทำ OWASP Top 10 ซึ่งรวบรวม Risk สูงสุด 10 อันดับแรก โดยฉบับล่าสุดคือ OWASP Top 10 Release Candidate 1 ได้จัดอันดับความเสี่ยง(ประเภท) ของการโจมตี Web Application ไว้ดังนี้ โดยเราจะกล่าวในรายละเอียดเฉพาะ 5 อันดับแรกซึ่งประกอบไปด้วย
Security Risks | |
1 | Injection ซึ่ง เป็นวิธีการโจมตีโดยใช้ช่องโหว่ของ Application ที่เขียนมาไม่รัดกุมหรือปลอดภัย โดยใส่ code ประเภท SQL, OS command และ LDAP injection โดยข้อมูลเหล่านี้จะถูกนำไปประมวลผล หรือใช้เพื่อเข้าถึงข้อมูลที่ต้องการได้ โดยไม่ได้เป็นการทำงานตามปกติของ Application? นั้นๆ เช่น list directory หรือ login เข้าสู่ระบบโดยไม่ต้องรู้ username และ password เป็นต้น |
2 | Cross Site Scripting (XSS) XSS flaw เกิดขึ้น Web server รับข้อมูลที่ไม่ประสงค์ดีไว้ และนำข้อมูลนั้นส่งไปยัง browser โดยไม่มีการ validate อย่างเหมาะสม ซึ่งทำให้ผู้โจมตีสามารถสั่งให้ script ทำงานบนเครื่องของเหยื่อ ซึ่งสามารถใช้เปลี่ยนแปลงหน้าเว็บ หรือ hijack session หรือ นำเหยื่อไปยังหน้าเว็บที่ไม่ต้องการได้ |
3 | Broken Authentication and Session Management ในบางครั้ง การพัฒนาระบบในส่วนของการทำ Authentication อาจมีข้อผิดพลาดที่ทำให้ผู้ไม่ประสงค์ดี สามารถสวมรอยเป็นบุคคลอื่นได้ |
4 | Insecure Direct Object References เกิด จากการอ้างอิงถึง Object ที่ใช้ภายใน เช่น database connection string หรือชื่อ file หรือ user และ password ที่ใช้ในการติดต่อระบบอื่นๆ หรือ IP address ของระบบภายใน โดยที่การอ้างอิงเหล่านั้นไม่ได้ป้องกันการเข้าถึงจากบุคคลภายนอก หรือ การปกปิด Source Code ที่เหมาะสมหรือรัดกุมเพียงพอ ทำให้ผู้ไม่ประสงค์ดีสามารถรู้ถึงโครงสร้างของระบบ และใช้เป็นประโยชน์ในการโจมตี |
5 | Cross Site Request Forgery (CSRF) การ โจมตีแบบ CSRF จะบังคับให้ browser ของเหยื่อที่หลงเข้ามา ส่ง HTTP request ที่ถูกปรับแต่งแล้ว รวมถึง session cookie และ ข้อมูลเกี่ยวกับการ authentication ไปยัง Web application ที่มีช่องโหว่ซึ่งทำให้ผู้โจมตีสามารถสร้าง request ที่ application คิดว่ามาจากผู้ใช้ที่ถูกต้องได้ (สวมรอยสิทธิ์การใช้งานของผู้อื่น) |
6 | Security Misconfiguration |
7 | Failure to Restrict URL Access |
8 | Invalidated Redirects and Forwards |
9 | Insecure Cryptographic Storage |
10 | Insufficient Transport Layer Protection |
กระบวนการในการป้องกันการโจมตีผ่าน Web Application คือ
- สร้าง Awareness ให้กับนักพัฒนา (Developer) เพื่อให้เขียน code ได้อย่างรัดกุม และไม่มีข้อผิดพลาดหรือช่องโหว่เกิดขึ้น
- ใช้บริการของ Software หรือ ที่ปรึกษาภายนอก ในการทำ Code Review เพื่อตรวจสอบความปลอดภัยของ Application ที่พัฒนาขึ้นมา ว่ามีความปลอดภัยเพียงพอ
- หมั่นติดตามข่าวสารด้านความปลอดภัย เพื่อแก้ไขช่องโหว่ที่ค้นพบใหม่ เช่น ติดตั้ง Patch ของระบบปฏิบัติการ และ Application Server เช่น IIS, Apache, Tomcat, Websphere หรือ อื่นๆ
- ใช้บริการของ Software หรือ ที่ปรึกษาภายนอกในการทำ Web Application Vulnerabilities scanning? เพื่อตรวจหาช่องโหว่ของ Web Application โดยเฉพาะ Application ที่ให้บริการกับบุคคลภายนอก หรือ คู่ค้า
- ใช้ระบบป้องกันการโจมตีของ Web Application โดยใช้ระบบ Web Application Firewall สำหรับป้องกันช่องโหว่ที่เกิดใน Application ที่ไม่สามารถแก้ไขข้อผิดพลาดหรือช่องโหว่ได้ และชะลอการปรับปรุงรักษาความปลอดภัยจนถึงเวลาที่พร้อม
ภัยคุกคามใน Application ใช้งานอื่นๆ
ในช่วงปีที่ผ่านมา มีช่องโหว่ที่เรียกว่า Zero-day หรือ ช่องโหว่ที่มีการค้นพบ และถูก Exploit ก่อนที่จะมี Patch หรือ วิธีการแก้ไขออกมาที่สำคัญๆ สามารถยกตัวอย่างได้ดังนี้
- Adobe Acrobat, Reader, and Flash Player Remote Code Execution Vulnerability (CVE-2009-1862)
- Microsoft Office Web Components ActiveX Control Code Execution Vulnerability (CVE-2009-1136)
- Microsoft Active Template Library Header Data Remote Code Execution Vulnerability (CVE-2008-0015)
- Microsoft DirectX DirectShow QuickTime Video Remote Code Execution Vulnerability (CVE-2009-1537)
- Adobe Reader Remote Code Execution Vulnerability (CVE-2009-1493)
- Microsoft PowerPoint Remote Code Execution Vulnerability (CVE-2009-0556)
จะเห็นว่าภัยคุกคามไม่ได้เป็นอะไรที่ไกล ตัวแต่อย่างใด ประเทศไทยเป็นทั้งเป้าหมาย และ แหล่งกำเนิดของการโจมตีผ่าน Web Application ติดอันดับโลก การรู้เท่าทันและป้องกันแต่เนิ่นๆ จะทำให้ระบบไม่ถูกโจมตีหรือในบางกรณีอาจส่งผลเสียต่อการดำเนินธุรกิจได้ ในฉบับถัดไป เราจะมาดูในส่วนของการรักษาความปลอดภัยสำหรับโครงสร้างพื้นฐานทางสารสนเทศ ยุคใหม่ในส่วนอื่นๆ ต่อไป
ภัยคุกคามในระบบปฏิบัติการ
ในปัจจุบันระบบปฏิบัติการของ Microsoft มีจำนวนช่องโหว่ใหม่ๆ ลดลงเรื่อยๆ ถึงแม้จำนวนของ Patch Bulletin ในแต่ละปียังไม่ลดลง (ปี 2009 มีจำนวน Patch ทั้งสิ้น 74 Patch โดยแก้ไขปัญหาใน Windows ประมาณ 50% ส่วนที่เหลือคือ MS Office และ Internet Explorer)
MS08-067 Microsoft Server 92% Service Buffer Overflow MS04-011 Microsoft Active 3% Directory Overflow MS04-007 ASN.1 Bit string 1% Processing Heap Overflow MS03-026 DCOM Service 2% Buffer Overflow Other 2% | |
แผนภาพแสดงปริมาณการโจมตีช่องโหว่ของระบบปฏิบัติการของ Microsoft ในช่วงมีนาคม กันยายน 2009 นายธนชัย กะชามาศ (แบงค์) 51040840 |
ไม่มีความคิดเห็น:
แสดงความคิดเห็น
หมายเหตุ: มีเพียงสมาชิกของบล็อกนี้เท่านั้นที่สามารถแสดงความคิดเห็น