Thursday, September 3, 2009

Web Browser Features and Risks

ฟีเจอร์ต่างๆ ของ Browser ที่ทำให้ระบบเกิดความเสี่ยง
บทความโดย: Thai Windows Administrator Blog

ผมคิดว่าคงไม่มีใครที่ไม่มีโปรแกรมเว็บเบราเซอร์ติดตั้งอยู่บนเครื่องคอมพิวเตอร์เพื่อใช้ในการท่องอินเทอร์เน็ต และต้องยอมรับว่าเว็บเบราเซอร์เป็นโปรแกรมหลักตัวหนึ่งที่ทำให้ระบบมีความเสี่ยง เนื่องจากเป็นโปรแกรมที่ทำหน้าที่เป็นตัวเชื่อมต่อระหว่างผู้ใช้เข้ากับโลกอินเทอร์เน็ต

ดังนั้น การทำความเข้าใจการทำงานและคุณสมบัติของเว็บเบราว์เซอร์ที่กำลังใช้งานอยู่จึงเป็นสิ่งสำคัญ เนื่องจากการเปิดใช้คุณลักษณะหรือฟีเจอร์บางอย่างของเว็บเบราเซอร์อาจส่งผลให้ระบบมีความปลอดภัยลดลงและมีความเสี่ยงเพิ่มขึ้น และที่สำคัญเว็บเบราว์เซอส่วนมากทำการเปิดใช้งานฟีเจอร์ต่างๆ โดยดีฟอลท์

จากข้อมูลการโจมตีระบบคอมพิวเตอร์ในปัจจุบัน แฮกเกอร์จะมุ่งเป้าไปที่การใช้ประโยชน์ (Exploit) จากช่องโหว่ต่างๆ ของโปรแกรมเพื่อโจมตีระบบ โดยแฮกเกอร์จะใช้ช่องโหว่เหล่านี้ในด้านต่างๆ เช่น เข้าควบคุมเครื่องคอมพิวเตอร์ ทำการขโมยข้อมูล ทำลายไฟล์ หรือใช้คอมพิวเตอร์ในการโจมตีคอมพิวเตอร์เครื่องอื่นๆ

เนื่องจากเว็บเบราเซอร์ที่ทำหน้าที่เป็นตัวเชื่อมต่อระหว่างผู้ใช้เข้ากับโลกอินเทอร์เน็ต ดังนั้น การใช้ประโยชน์จากช่องโหว่ของเว็บเบราเซอร์ จึงเป็นวิธีที่ทำได้ง่าย มีความเป็นไปได้สูง และมีค่าใช้จ่ายน้อย (อาจจะน้อยที่สุด) เมื่อเทียบกับวิธีการอื่นๆ โดยแฮกเกอร์แค่สร้างหน้าเว็บ (ที่เป็นอันตราย) ที่จะทำการติดตั้งซอฟต์แวร์โทรจัน (Trojan) หรือสปายแวร์ (Spyware) เพื่อทำหน้าที่ขโมยข้อมูลของผู้ใช้ จากนั้นจะใช้ิวิธีการต่างๆ เพื่อหลอกล่อผู้ใช้ให้เข้าชมเว็บไซต์ดังกล่าว เช่น ส่งลิงก์ของเว็บไซต์ไปกับอีเมล หรืออาจจะตั้งชื่อเว็บไซต์เลียนแบบเว็บไซต์ที่มีชื่อเสียง (วิธีการเหล่านี้เรียกว่า Phishing) เป็นต้น เมื่อผู้ใช้ทำการคลิกลิงก์ที่แนบมากับอีเมลหรือเปิดเว็บไซต์ที่แฮกเกอร์สร้างขึ้น และถ้าเบราว์เซอร์มีช่องโหว่ก็อาจจะทำให้ติดโทรจันหรือสปายแวร์ทันที

สำหรับฟีเจอร์ของเว็บเบราเซอร์ ที่สามารถทำให้ระบบเกิดความเสี่ยงมีอยู่หลายตัวด้วยกัน ตามรายละเอียดด้านล้าง

ActiveX
ActiveX เป็นเทคโนโลยีที่ใช้โดย Internet Explorer ของไมโครซอฟท์ ActiveX ช่วยให้เว็บเบราเซอร์สามารถใช้งานแอพพลิเคชันหรือส่วนของแอพพลิเคชันได้ โดยหน้าเว็บสามารถใช้องค์ประกอบของ ActiveX ที่มีอยู่แล้วในระบบวินโดวส์ หรือที่เว็บไซต์มีให้ดาวน์โหลด เพื่อช่วยให้เว็บเบราเซอร์สามารถทำงานพิเศษบางอย่างได้ แต่ ActiveX อาจจะทำให้เกิดความเสี่ยงในระดับร้ายแรงหากมีการใช้งานอย่างไม่ถูกต้องหรือเหมาะสม

Java
Java เป็นภาษาโปรแกรมแบบ Object-oriented ซึ่งสามารถใช้ในการพัฒนาเนื้อหาเว็บไซต์แบบไดนามิก โดยการรันโค้ด Java หรือ Applet ที่อยู่บนเว็บไซต์นั้นจะใช้ Java Virtual Machine (JVM) ซึ่งมีมาพร้อมระบบปฏิบัติการบางตัว ในขณะที่บางระบบปฏิบัติการผู้ใช้จะต้องทำการติดตั้ง JVM เพิ่มเติมจึงจะสามารถใช้งาน Java ได้ Java Applets นั้นจะทำงานเป็นอิสระจากระบบปฏิบัติการ

โดยทั่วไปแล้ว Java Applet จะถูกรันใน Sandbox ซึ่งจะมีการปฏิสัมพันธ์กับระบบอย่างจำกัด อย่างไรก็ตามในการใช้งาน JVM ในบางกรณี มีช่องโหว่ที่ทำให้ Java Applet สามารถข้ามข้อจำกัดได้ เช่น Java Applet ที่ได้รับการรับรองสามารถข้ามข้อจำกัดได้ แต่ทั่วไปแล้วโปรแกรมจะพร็อมพ์ถามผู้ใช้ก่อนที่จะทำการรัน

Plug-ins
Plug-in เป็นแอพพลิเคชันที่พัฒนาขึ้นมาเพื่อใช้ในเว็บเบราเซอร์ โดย Netscape ได้คิดค้นมาตรฐาน NPAPI สำหรับใช้ในการพัฒนา plug-ins และมีเว็บเบราเซอร์หลายตัวที่ใช้มาตรฐานตัวนี้ รวมทั้ง Mozilla Firefox และ Safari

Plug-in นั้นมีลักษณะการทำงานคล้ายกันกับ ActiveX แต่ต่างกันตรงที่ Plug-in ไม่สามารถทำการรันนอกโปรแกรมเว็บเบราเซอร์ได้ ตัวอย่าง Plug-in ที่นิยมใช้งานกันมาก เช่น Adobe Flash Player เป็นต้น โดย Plug-in นั้นสามารถทำให้เกิดข้อบกพร่องแบบ Buffer Overflows หรือ Cross-Domain Violations ได้

Cookies
Cookie คือ ไฟล์ที่ถูกสร้างขึ้นบนเครื่องคอมพิวเตอร์เพื่อทำหน้าที่เก็บข้อมูลการเข้าใช้งานเว็บไซต์ต่างๆ โดยไฟล์ Cookie นั้นจะเก็บข้อมูลต่างๆ เกี่ยวกับเว็บไซต์ที่เข้าเยี่ยมชม หรือข้อมูลเกี่ยวกับชื่อผู้ใช้และรหัสผ่าน (Credentials) สำหรับใช้ล็อกออนเข้าเว็บไซต์

Cookie นั้นถูกออกแบบมาให้สามารถอ่านได้เฉพาะจากเว็บไซต์ที่เป็นผู้สร้าง Cookie ตัวนั้นเท่านั้น Cookie จะอยู่ 2 ประเภทด้วยกัน คือ Session Cookie ซึ่งจะถูกลบเมื่อผู้ใช้ปิดโปรแกรมเว็บเบราเซอร์ ในขณะที่ Persistent Cookie จะยังคงเก็ยอยู่บนเครื่องคอมพิวเตอร์จนกว่าจะถึงกำหนดวันหมดอายุ

ผู้พัฒนาเว็บไซต์นั้นสามารถใช้ Cookie ในการระบุจำนวนผู้เข้าเยี่ยมชมเว็บไซต์ แต่ก็มีผู้ใช้บางคนที่เห็นว่าการใช้งาน Cookie นั้นเป็นการละเมิดความเป็นส่วนตัว ในกรณีที่เว็บไซต์ใช้ Cookie ในการตรวจสอบตัวตน (Authentication) หากมีการจัดการกับ Cookie อย่างไม่เหมาะสม อาจจะทำให้แฮกเกอร์สามารถใช้ Cookie เพื่อให้ได้สิทธิ์ในการเข้าถึงไซต์นั้นได้ ในด้านความเสี่ยงนั้น Persistent Cookie นั้น จะมีความเสี่ยงสูงกว่า Session cookie เนื่องจากมันถูกเก็บอยู่บนเครื่องคอมพิวเตอร์นานกว่า

JavaScript
JavaScript (หรือ ECMAScript) เป็นภาษาสคริปต์ที่ช่วยทำให้เว็บไซต์โต้ตอบกับผู้ใช้ได้ โดยจะมีข้อกำหนดเกี่ยวกับมาตรฐานของ JavaScript ซึ่งจะจำกัดฟีเจอร์บางอย่างที่อาจทำให้ระบบมีความเสี่ยง เช่น การเข้าถึงไฟล์ที่เก็บอยู่บนเครื่องคอมพิวเตอร์ เป็นต้น

VBScript
VBScript เป็นภาษาสคริปต์ที่ใช้งานใน Internet Explorer ของไมโครซอฟท์ โดย VBScript มีคุณลักษณะเหมือนกับ JavaScript แต่ไม่ได้รับความนิยมใช้งานมากนัก เนื่องจากมีข้อจำกัดในด้านการทำงานร่วมกับเว็บเบราเซอร์อื่นๆ ที่ไม่ใช่ Internet Explorer

ความเสี่ยงที่เกิดจากการใช้สคริปต์
ความสามารถในการรองรับ JavaScript หรือ VBScript ทำให้ผู้สร้างว็บเพจสามารถเพิ่มฟีเจอร์ต่างๆ ได้มากขึ้นและเว็บไซต์สามารถโต้ตอบกับผู้ใช้ได้มากขึ้น

อย่างไรก็ตาม ความสามารถอย่างเดียวกันนี้อาจถูกนำไปใช้เพื่อทำการโจมตีระบบโดยแฮกเกอร์ เนื่องจากเว็บเบราเซอร์ส่วนใหญ่จะมีการเปิดใช้ความสามารถในการรองรับภาษาสคริปต์ ส่งผลให้มีโอกาสเกิดช่องโหว่ความปลอดภัยหลายตัว ดังนี้

Cross-Site Scripting
Cross-Site Scripting หรือเรียกสั้นๆ ว่า XSS เป็นช่องโหว่ในเว็บไซต์ที่ทำให้แฮกเกอร์สามารถทำการยกระดับความไว้วางใจ (Trust Relationship) ระหว่างเว็บไซต์กับผู้เยี่ยมชมเว็บไซต์ อย่างไรก็ตาม Cross-Site Scripting ไม่ได้เกิดจากความผิดพลาดของโปรแกรมเว็บเบราเซอร์ การป้องกันจึงจะต้องกระทำบนฝั่งเว็บไซต์

Cross-Zone and Cross-Domain Vulnerabilities
โปรแกรมเว็บเบราเซอร์ส่วนใหญ่ จะใช้ซีเคียวริตี้โมเดลในการป้องกันสคริปต์ที่อยู่ในเว็บไซต์ ไม่ให้เข้าถึงข้อมูลที่อยู่ในคนละโดเมน (Domain) โดยซีเคียวริตี้โมเดลนี้จะใช้พื้นฐานบน Netscape Same Origin Policy (http://www.mozilla.org/projects/security/components/same-origin.html) สำหรับ Internet Explorer ของไมโครซอฟท์นั้น จะใช้นโยบาย (Policy) ในการแยกซีเคียวริตี้โซน

สำหรับช่องโหว่ของการใช้ซีเคียวริตี้โมเดลที่เว็บเบราเซอร์ใช้ สามารถใช้ในการกระทำบางอย่างที่ตามปกติไม่อนุญาตให้กระทำได้ โดยผลกระทบที่ตามมาจะคล้ายกับผลกระทบที่เกิดจากช่องโหว่ Cross-Site Scripting

อย่างไรก็ตาม ถ้าช่องโหว่นี้อนุญาตให้แฮกเกอร์เข้าถึงโซน Local Machine หรือพื้นที่หวงห้ามอื่นๆ (Protected Areas) แฮกเกอร์ก็จะสามารถทำการรันคำสั่งต่างๆ ได้ตามต้องการ

Detection Evasion
โดยทั่วไปแล้ว การทำงานของโปรแกรม Anti-virus, Intrusion Detection Systems (IDS) และ Intrusion Prevention Systems (IPS) จะใช้วิธีการตรวจสอบเนื้อหาตามรูปแบบที่ได้กำหนดไว้ล่วงหน้า ถ้าโปรแกรมตรวจพบรูปแบบประเภท “known bad” โปรแกรมก็จะตอบสนองตามความเหมาะสมเพื่อป้องกันผู้ใช้จากการถูกบุกรุก แต่เนื่องจากสคริปต์เป็นภาษาโปรแกรมแบบไดนามิก ทำให้เว็บเพจที่มีสคริปต์ประสงค์ร้าย สามารถใช้เทคนิคบางอย่างเพื่อหลบเลี่ยงระบบตรวจจับของโปรแกรมรักษาความปลอดภัยได้

แหล่งข้อมูลอ้างอิง
Web Browser Features and Risks (US-Cert)

© 2009 TWA Blog. All Rights Reserved.

2 Comment:

Anonymous said...

ชอบคุณครับ

Anonymous said...

ในโลกออนไลน์ เต็มไปด้วยผู้ไม่ประสงค์ดี