วันอังคารที่ 31 พฤษภาคม พ.ศ. 2554

วิธีการเจาะระบบ Web Application Hacking 10 วิธี ของ Hacker และ วิธีป้องกัน

วิธีการเจาะระบบ Web Application Hacking 10 วิธี ของ Hacker และ วิธีป้องกัน

ปัจจุบันนี้ ทุกบริษัท แทบจะมี Website เป็นของตัวเอง บางบริษัทก็อาจจะเช่า Web Hosting อยู่ หรือ

บางบริษัทก็อาจมี Web Site เป็นของตนเองอยู่ในระบบเครือข่ายของบริษัท โดยมีการต่อเชื่อมเครือข่าย

ของบริษัทด้วย Frame Relay, ADSL หรือ Leased Line  เข้ากับระบบเครือข่ายของ ISP ซึ่งส่วนใหญ่ก็

จะมีการจัดซื้อ Firewall มาใช้ป้องกันระบบเครือข่ายภายในของบริษัท กับระบบอินเตอร์เน็ต จาก ISP

และ มีการเปิดให้คนภายนอกสามารถเข้ามาเยี่ยมชม Web Site ได้  โดยเปิด Port TCP 80 (http) และ

Port TCP 443 (https) ในกรณีที่ใช้โปรโตคอล SSL ในการเข้ารหัสข้อมูลเพื่อเพิ่มความปลอดภัย มาก

ยิ่งขึ้น


ปัญหาคือ ในเมื่อทุกบริษัทต้องเปิดทางให้มีการเข้าชม Web Site ทั้งแบบ Plain text traffic (Port 80)

และแบบ Encrypted text traffic (port 443)  ทำให้ Hacker สามารถจู่โจม Web Site ของเราโดยไม่

ต้องเจาะผ่าน Firewall  เนื่องจากเป็น Port ที่ Firewall มีความจำเป็นต้องเปิดใช้อยู่แล้ว


ในโลกของ E-Commerce มีอัตราการใช้งาน Web Server ที่เพิ่มขึ้นทุกวัน [ข้อมูลจาก

(www.netcraft.com) และ จากข้อมูลของ UNCTAD (http://www.unctad.org)] พบว่า Web Server

ทั่วโลก มีทั้งแบบที่เข้ารหัสด้วย SSL แล้ว และ แบบไม่เข้ารหัสด้วย SSL ก็ยังคงมีใช้กันอยู่

ในเมื่อแฮกเกอร์มองเห็นช่อง ที่เรามีความจำเป็นต้องเปิดใช้งานผ่านทาง Web Server และ Web

Application แฮกเกอร์ในปัจจุบันจึงใช้วิธีที่เรียกว่า Web Application Hacking ในการเจาะเข้าสู่ระบบ

ขององค์กรต่างๆ ทั่วโลก ขณะนี้มีการจู่โจมระบบโดยกลุ่มแฮกเกอร์ที่ต้องการทำสถิติ ในการเจาะ Web

Site (ดูรายละเอียดได้ที่ http://www.zone-h.org)


ดังนั้น ผู้ที่มี Web Site อยู่ และ โดยเฉพาะผู้ที่ต้องการหันมาทำธุรกิจในลักษณะของ E-commerce ซึ่ง

ต้องมี Web Site ที่ใช้ Web server ที่เชื่อถือได้ และมีการเขียน Web application โดยคำนึงถึงเรื่อง

Security เป็นหลัก จึงมีความจำเป็นอย่างยิ่งที่ต้องเรียนรู้ช่องโหว่ (Vulnerability) ของ Web

application ที่แฮกเกอร์ชอบใช้ในการเจาะระบบ Web application ของเรา

ซึ่งรวบรวมได้ทั้งหมด 10 วิธีด้วยกัน (Top 10 Web Application Hacking)


ตลอดจนเรียนรู้วิธีการป้องกันที่ถูกต้อง เพื่อที่จะไม่ให้ตกเป็นเหยื่อ ของเหล่าแฮกเกอร์ที่จ้องคอยเจาะ

ระบบเราอยู่ โดยผ่านทาง Web Site ที่ยังไงเราก็ต้องเปิดให้เข้าถึง และ ยังมี Virus Worm ตัวใหม่ๆ ที่

เขียนขึ้นเพื่อจู่โจม Port 80 (HTTP) และ Port 443 (SSL) โดยเฉพาะอีกด้วย


รายละเอียดของ Top 10 Web Application Hacking มี 10 วิธี ดังนี้



1. Unvalidated Input

หมายถึง การที่ข้อมูลจากฝั่ง client ที่ส่วนใหญ่แล้ว จะมาจาก Internet Explorer (IE) Browser ไม่ได้

รับการตรวจสอบก่อนถูกส่งมาประมวลผลโดย Web Application ที่ทำงานอยู่บน Web Server ทำให้

แฮกเกอร์สามารถดักแก้ไขข้อมูลในฝั่ง client ก่อนที่จะถูกส่งมายังฝั่ง server โดยใช้โปรแกรมที่สามารถ

ดักข้อมูลได้ เช่น โปรแกรม Achilles เป็นต้น   ดังนั้น ถ้าเรารับข้อมูลจากฝั่ง client โดยไม่ระมัดระวัง

หรือ คิดว่าเป็นข้อมูลที่เราเป็นคนกำหนดเอง เช่น เทคนิคการใช้ Hidden Field หรือ Form Field ตลอด

จนใช้ข้อมูลจาก Cookies เราอาจจะโดนแฮกเกอร์แก้ไขข้อมูลฝั่ง client ด้วย โปรแกรมดังกล่าวแล้วส่ง

กลับมาฝั่ง server ในรูปแบบที่แฮกเกอร์ต้องการ และมีผลกระทบกับการทำงานของ Web Application

ในฝั่ง web server



วิธีป้องกัน

เราควรจะตรวจสอบข้อมูลที่รับมาจากทั้ง 2 ฝั่ง คือ ข้อมูลที่รับมาจาก client ผ่านทาง Browser และ

ข้อมูลที่รับมาประมวลผลที่ web server โดยตรวจสอบที่ web server อีกครั้งก่อนนำไปประมวลผลด้วย

Web application เราควรมีการฝึกอบรม Web Programmer ของเราให้ระมัดระวังในการรับ input จาก

ฝั่ง client ตลอดจนมีการ Review Source code ไม่ว่าจะเขียนด้วย ASP, PHP หรือ JSP Script ก่อนที่

จะนำไปใช้งานในระบบจริง ถ้ามีงบประมาณด้านรักษาความปลอดภัย ก็แนะนำให้ใช้ application level

firewall หรือ Host-Based IDS/IPS ที่สามารถมองเห็น Malicious content และป้องกันในระดับ

application layer


2. Broken Access Control

หมายถึง มีการป้องกันระบบไม่ดีพอ เกี่ยวกับการกำหนดสิทธิของผู้ใช้ (Permission) ที่สามารถจะ

Log-in /Log-on เข้าระบบ Web application ได้ ซึ่งผลที่ตามมาก็คือ ผู้ที่ไม่มีสิทธิเข้าระบบ

(Unauthorized User) สามารถเข้าถึงข้อมูลที่เราต้องการป้องกันไว้ไม่ให้ Unauthorized User เข้ามาดู

ได้ เช่น เข้ามาดูไฟล์ข้อมูลบัตรเครดิตลูกค้าที่เก็บอยู่ใน Web Server หรือ เข้าถึงไฟล์ข้อมูลในลักษณะ

Directory Browsing โดยเห็นไฟล์ทั้งหมดที่อยู่ใน web Server ของเรา ปัญหานี้เกิดจากการกำหนด

File Permission ไม่ดีพอ และอาจเกิดจากปัญหาที่เรียกว่า ?Path Traversal? หมายถึง แฮกเกอร์จะลอง

สุ่มพิมพ์ path หรือ sub directory ลงไปในช่อง URL เช่น http://www.abc.com/../../customer.mdb

เป็นต้น นอกจากนี้อาจเกิดจากปัญหาการ cache ข้อมูลในฝั่ง client ทำให้ข้อมูลที่ค้างอยู่ cache ถูก

Hacker เรียกกลับมาดูใหม่ได้ โดยไม่ต้อง Log-in เข้าระบบก่อน


วิธีป้องกัน

พยายามอย่าใช้ User ID ที่ง่ายเกินไป และ Default User ID ที่ง่ายต่อการเดา โดยเฉพาะ User ID ที่

เป็นค่า default ควรลบทิ้งให้หมด   สำหรับปัญหา Directory Browsing หรือ Path Traversal นั้น ควรมี

การ set file system permission ให้รัดกุม เพื่อป้องกันช่องโหว่ที่อาจถูกโจมตี และปิด file permission

ใน sub directory ต่างๆ ที่ไม่ได้ใช้  และไม่มีความจำเป็นต้องให้คนภายนอกเข้า เพื่อป้องกันแฮกเกอร์

สุ่มพิมพ์ path เข้ามาดึงข้อมูลได้ และควรมีการตรวจสอบ Web Server log file และ IDS/IPS log file

เป็นระยะๆ ว่ามี Intrusion หรือ Error แปลกๆ หรือไม่


3. Broken Authentication and Session Management

หมายถึง ระบบ Authentication ที่เราใช้อยู่ในการเข้าถึง Web Application ของเรานั้นไม่แข็งแกร่งเพียง

พอ เช่น การตั้ง Password ง่ายเกินไป, มีการเก็บ Password ไว้ในฝั่ง Client โดยเก็บเป็นไฟล์ Cookie

ที่เข้ารหัสแบบไม่ซับซ้อนทำให้แฮกเกอร์เดาได้ง่าย หรือใช้ชื่อ User ที่ง่ายเกินไป เช่น User Admin

เป็นต้น   บางทีก็ใช้ Path ที่ง่ายต่อการเดาได้ เช่น www.abc.com/admin หมายถึง การเข้าถึงหน้า

admin ของระบบ แฮกเกอร์สามารถใช้โปรแกรมประเภท Dictionary Attack หรือ Brute Force Attack

ในการลองเดาสุ่ม Password ของระบบ Web Application ของเรา ตลอดจนใช้โปรแกรมประเภท

Password Sniffer ดักจับ Password ที่อยู่ในรูปแบบ Plain Text  หรือบางทีแฮกเกอร์ก็ใช้วิธีง่ายๆ ใน

การขโมย Password เรา โดยแกล้งปลอมตัวเป็นเรา แล้วแกล้งลืม Password (Forgot Password)

ระบบก็จะถามคำถามกลับมา ซึ่งถ้าคำถามนั้นง่ายเกินไป แฮกเกอร์ก็จะเดาคำตอบได้ไม่ยากนัก ทำให้

Hacker ได้ Password เราไปในที่สุด


วิธีป้องกัน

ที่สำคัญที่สุด คือ การตั้งชื่อ User Name และ Password ควรจะมีความซับซ้อน ไม่สามารถเดาได้ง่าย

มีความยาวไม่ต่ำกว่า 8 ตัวอักษร และมีข้อกำหนดในการใช้ Password (Password Policy) ว่าควรมีการ

เปลี่ยน Password เป็นระยะๆ ตลอดจนให้มีการกำหนด Account Lockout เช่น ถ้า Logon ผิดเกิน 3

ครั้ง ก็ให้ Lock Account นั้นไปเลยเป็นต้น การเก็บ Password ไว้ในฝั่ง Client นั้น ค่อนข้างที่จะ

อันตราย ถ้ามีความจำเป็นต้องเก็บในฝั่ง Client จริงๆ ก็ควรมีการเข้ารหัสที่ซับซ้อน (Hashed or

Encrypted) ไม่สามารถถอดได้ง่ายๆ การ Login เข้าระบบควรผ่านทาง https protocol คือ มีการใช้

SSL เข้ามาร่วมด้วย เพื่อเข้ารหัส Username และ Password ให้ปลอดภัยจากพวกโปรแกรม Password

Sniffing ถ้ามีงบประมาณควรใช้ Two-Factor Authentication เช่น ระบบ One Time Password ก็จะ

ช่วยให้ปลอดภัยมากขึ้น การใช้ SSL ควรใช้ Digital Certificate ที่ได้รับการ Sign อย่างถูกต้องโดย CA

(Certificate Authority) ถ้าเราใช้ CA แบบ Self Signed จะทำให้เกิดปัญหา Man in the Middle

Attack (MIM) ทำให้แฮกเกอร์สามารถเจาะข้อมูลเราได้แม้ว่าเราจะใช้ SSL แล้วก็ตาม (ข้อมูลเพิ่มเติมที่

เกี่ยวข้องกับ SSL Hacking ดูที่ http://www.acisonline.net)


4. Cross Site Scripting (XSS) Flaws

หมายถึง แฮกเกอร์สามารถใช้ Web Application ของเรา เช่น ระบบ Web Board ในการฝัง Malicious

Script แฝงไว้ใน Web Board แทนที่จะใส่ข้อมูลตามปกติ เมื่อมีคนเข้า Refresh หน้า Web Board ก็จะ

ทำให้ Malicious Script ที่ฝังไว้นั้นทำงานโดยอัตโนมัติ ตามความต้องการของแฮกเกอร์ หรือ อีกวิธี

หนึ่ง แฮกเกอร์จะส่ง e-mail ไปหลอกให้เป้าหมาย Click ไปที่ URL Link ที่แฮกเกอร์ได้เตรียมไว้ใน

e-mail เมื่อเป้าหมาย Click ไปที่ Link นั้น ก็จะไปสั่ง Run Malicious Script ที่อยู่ในตำแหน่งที่แฮกเกอร์

ทำดักรอไว้  วิธีการหลอกแบบนี้ในวงการเรียกว่า PHISHING ซึ่งโดนกันไปแล้วหลายองค์กร เช่น

Citibank, eBay เป็นต้น (ข้อมูลเพิ่มเติมดูได้ที่ http://www.acisonline.net)


วิธีป้องกัน

อย่างแรกเลยต้องมีการให้ข้อมูลกับผู้ใช้คอมพิวเตอร์ทั่ว ไป ที่ใช้ e-mail และ web browser กันเป็น

ประจำ  ให้ระมัดระวัง URL Link แปลกๆ หรือ e-mail แปลกๆ ที่เข้ามาในระบบก่อนจะ Click ควรจะดูให้

รอบคอบก่อน เรียกว่า เป็นการทำ Security Awareness Training ให้กับ User ซึ่งควรจะทำทุกปี ปีละ

2-3 ครั้ง เพื่อให้รู้ทันกลเม็ดของแฮกเกอร์ และไวรัสที่ชอบส่ง e-mail มาหลอกอยู่เป็นประจำ สำหรับใน

ฝั่งของผู้ดูและระบบ เช่น Web Master ก็ควรจะแก้ไข source codeใน Web Board ของตนให้ฉลาดพอ

ที่จะแยกแยะออกว่ากำลังรับข้อมูลปกติ หรือรับข้อมูลที่เป็น Malicious Script ซึ่งจะสังเกตได้ไม่ยาก

เพราะ Script มักจะมีเครื่องหมาย ?< > ( ) # & ?  ให้ Web Master ทำการกรองเครื่องหมายเหล่านี้

ก่อนที่จะนำข้อมูลไปประมวลผลโดย Web application ต่อไป


5. Buffer Overflow

หมายถึง ในฝั่งของ Client และ Server ไม่ว่าจะเป็น IE Browser และ IIS Web Server หรือ Netscape

Browser และ Apache Web Server ที่เราใช้กันอยู่เป็นประจำ ล้วนมีช่องโหว่ (Vulnerability) หรือ Bug

ที่อยู่ในโปรแกรม เมื่อแฮกเกอร์สามารถค้นพบ Bug ดังกล่าว แฮกเกอร์ก็จะฉวยโอกาสเขียนโปรแกรม

เจาะระบบที่เราเรียกว่า ?Exploit? ในการเจาะผ่านช่องโหว่ที่ถูกค้นพบ ซึ่งช่วงหลังๆ แม้แต่ SSL

Modules ทั้ง IIS และ Apache web server ก็ล้วนมีช่องโหว่ให้แฮกเกอร์เจาะผ่านทาง Buffer

Overflow ทั้งสิ้น


วิธีป้องกัน

จะเห็นว่าปัญหานี้มาจาก ผู้ผลิตไม่ใช่ปัญหาการเขียนโปรแกรม Web application ดังนั้นเราต้องคอยหมั่น

ติดตามข่าวสาร New Vulnerability และ คอยลง Patch ให้กับระบบของเราอย่างสม่ำเสมอ และลง ให้

ทันท่วงทีก่อนที่จะมี exploit ใหม่ๆ ออกมาให้แฮกเกอร์ใช้การเจาะระบบของเรา


6. Injection Flaws

หมายถึง แฮกเกอร์สามารถที่จะแทรก Malicious Code หรือ คำสั่งที่แฮกเกอร์ใช้ในการเจาะระบบส่งผ่าน

Web Application ไปยังระบบภายนอกที่เราเชื่อมต่ออยู่ เช่น ระบบฐานข้อมูล SQL โดยวิธี SQL

Injection หรือ เรียก External Program ผ่าน shell command ของระบบปฎิบัติการ เป็นต้น

ส่วนใหญ่แล้วแฮกเกอร์จะใช้วิธีนี้ ในช่วงการทำ Authentication หรือการ Login เข้าระบบผ่านทาง

Web Application เช่น Web Site บางแห่งชอบใช้ /admin ในการเข้าสู่หน้า Admin ของ ระบบ ซึ่งเป็น

ช่องโหว่ให้แฮกเกอร์สามารถเดาได้เลยว่า เราใช้ http://www.mycompany.com/admin ในการเข้าไป

จัดการบริหาร Web Site ดังนั้นเราจึงควรเปลี่ยนเป็นคำอื่นที่ไม่ใช่ /admin ก็จะช่วยได้มาก

วิธีการทำ SQL injection ก็คือ แฮกเกอร์จะใส่ชื่อ username อะไรก็ได้แต่ password สำหรับการทำ

SQL injection จะใส่เป็น Logic Statement ยกตัวอย่างเช่น ? or ?1′ = ?1 หรือ ? or ?1″= ?1

ถ้า Web Application ของเราไม่มีการเขียน Input Validation ดัก password แปลกๆ แบบนี้ แฮกเกอร์ก็

สามารถที่จะ bypass ระบบ Authentication ของเราและ Login เข้าสู่ระบบเราโดยไม่ต้องรู้ username

และ password ของเรามาก่อนเลย

วิธีการเจาะระบบด้วย SQL injection ยังมีอีกหลายแบบจากที่ยกตัวอย่างมา ซึ่งแฮกเกอร์รุ่นใหม่สามารถ

เรียนรู้ได้ทางอินเทอร์เน็ต และวิธีการทำก็ไม่ยาก อย่างที่ยกตัวอย่างมาแล้ว


วิธีป้องกัน

นักพัฒนาระบบ (Web Application Developer) ควรจะระมัดระวัง input string ที่มาจากทางฝั่ง Client

(Web Browser) และไม่ควรใช้วิธีติดต่อกับระบบภายนอกโดยไม่จำเป็น

ควรมีการกรองข้อมูลขาเข้า ที่มาจาก Web Browser ผ่านมาทางผู้ใช้ Client อย่างละเอียด และ ทำการ

กรอง ข้อมูลที่มีลักษณะที่เป็น SQL injection statement ออกไปเสียก่อนที่จะส่งให้กับระบบฐานข้อมูล

SQL ต่อไป

การ ใช้ Stored Procedure หรือ Trigger ก็เป็นทางออกหนึ่งในการเขียนโปรแกรมสั่งงานไปยังระบบ

ฐานข้อมูล SQL ซึ่งมีความปลอดภัยมากกว่าการใช้ Dynamic SQL Statement กับฐานข้อมูล SQL

ตรงๆ



7. Improper Error Handling

หมายถึง มีการจัดการกับ Error message ไม่ดีพอ เวลาที่มีผู้ใช้ Web Application หรืออาจจะเป็น

Hacker ลองพิมพ์ Bad HTTP Request เข้ามาแต่ Web Server หรือ Web Application ของเราไม่มี

ข้อมูล จึงแสดง Error message ออกมาทางหน้า Browser ซึ่งข้อมูลที่แสดงออกมาทำให้แฮกเกอร์

สามารถใช้เป็นประโยชน์ ในการนำไปเดาเพื่อหาข้อมูลเพิ่มเติมจากระบบ Web Application ของเราได้

เนื่องจากเมื่อการทำงานของ Web application หลุดไปจากปกติ ระบบมักจะแสดงค่า Error Message

ออกมา แสดงถึงชื่อ user ที่ใช้ในการเข้าถึงฐานข้อมูล, แสดง File System Path หรือ Sub Directory

Name ที่ชี้ไปยังไฟล์ฐานข้อมูล ตลอดจนทำให้แฮกเกอร์รู้ว่าเราใช้ระบบอะไรเป็นฐานข้อมูลเช่น ใช้

MySQL เป็นต้น


วิธีแก้ปัญหา

ควรมีการกำหนด นโยบายการจัดการกับ Error message ให้กับระบบ โดยทำหน้า Error message ที่

เตรียมไว้รับ เวลามี Bad HTTP Request แปลกๆ เข้ามายัง Web Application ของเรา โดยหน้า Error

message ที่ดี  ไม่ควรจะบอกให้ผู้ใช้รู้ถึงข้อมูลระบบบางอย่าง ที่ผู้ใช้ทั่วไปไม่ควรรู้ และถ้าผู้ใช้คนนั้นเป็น

แฮกเกอร์ซึ่งย่อมมีความรู้มากกว่าผู้ใช้ธรรมดา การเห็นข้อมูล Error message ก็อาจนำไปใช้เป็น

ประโยชน์สำหรับแฮกเกอร์ได้


8. Insecure Storage

หมายถึง การเก็บรหัสผ่าน (password), เบอร์บัตรเครดิตลูกค้า หรือ ข้อมูลลับของลูกค้า ไว้อย่างไม่มี

ความปลอดภัยเพียงพอ ส่วนใหญ่จะเก็บแบบมีการเข้ารหัส (Encryption) ไว้ในฐานข้อมูล หรือ เก็บลงใน

ไฟล์ ที่อยู่ใน Web server และคิดว่าเมื่อเข้ารหัสแล้วแฮกเกอร์คงไม่สามารถอ่านออก แต่ สิ่งที่เราคิดนับ

ว่าเป็นการประเมินแฮกเกอร์ต่ำเกินไป เนื่องจากอาจเกิดข้อผิดพลาดในการเข้ารหัส เช่น การเข้ารหัสนั้น

ใช้ Algorithm ที่อ่อนเกินไป ทำให้แฮกเกอร์แกะได้ง่ายๆ หรือมีการเก็บกุญแจ (key) หรือ รหัสลับ

(Secret password) ไว้เป็นไฟล์แบบง่ายๆ ที่แฮกเกอร์ สามารถเข้าถึงได้ หรือ สามารถถอดรหัสได้โดย

ใช้เวลาไม่มากนัก


วิธีแก้ไข

ควรมีการเข้ารหัสไฟล์ โดยใช้ Encryption Algorithm ที่ค่อนข้างซับซ้อนพอสมควร หรือแทนที่จะเก็บ

รหัสผ่านที่เข้ารหัสไว้ ให้หันมาเก็บค่า Message Digest หรือ ค่า HASH ของรหัสผ่านทาง โดยใช้

Algorithm SHA-1 เป็นต้น

การเก็บกุญแจ (key), ใบรับรอง ดิจิตัล (Digital Certificate) หรือ ลายมือชื่อดิจิตัล (Digital

Signature)  ควรเก็บไว้อย่างปลอดภัย เช่น เก็บไว้ใน Token หรือ Smart Card ก็จะปลอดภัยกว่าการ

เก็บไว้เป็นไฟล์ในฮาร์ดดิสค์ เป็นต้น (ถ้าเก็บเป็นไฟล์ก็ควรทำการเข้ารหัสไว้ทุกครั้ง)


9. Denial of Service

หมายถึงระบบ Web Application หรือ Web Server ของเรา อาจหยุดทำงานได้เมื่อเจอกับ Bad HTTP

Request แปลกๆ หรือ มีการเรียกเข้ามาอย่างต่อเนื่องจำนวนมาก ทำให้เกิดการจราจรหนาแน่นบน Web

Server ของเรา โดยปกติ Web Server จะจัดการกับ Concurrent session ได้จำนวนหนึ่ง ถ้ามี HTTP

Request เข้ามาเกินค่าที่ Web Server จะสามารถรับได้ ก็จะเกิด Error ขึ้น ทำให้ผู้ใช้ไม่สามารถเข้า

Web Site เราได้  นอกจากนี้ อาจจะทำให้เครื่องเกิด CPU Overload หรือ Out of Memory ก็เป็นรูป

แบบหนึ่งของ Denial of Service เช่นกัน กล่าวโดยรวมก็คือ ทำให้ระบบของเรามีปัญหาเรื่อง

Availability


วิธีแก้ไข

การป้องกัน DoS หรือ DDoS Attack นั้นไม่ง่าย และ ส่วนใหญ่ ไม่สามารถป้องกันได้ 100% การติดตั้ง

Hardware IPS (Intrusion Prevention System) เป็นอีกทางเลือกหนึ่ง แต่ก็มีค่าใช้จ่ายค่อนข้างสูง

หากต้องการประหยัดงบประมาณก็ควรต้อง ทำการ Hardening ระบบให้เรียบร้อย เช่น Network OS ที่

ใช้อยู่ก็ควรจะลง Patch อย่างสม่ำเสมอ, Web Server ก็เช่นเดียวกัน เพราะมีช่องโหว่ เกิดขึ้นเป็นประจำ

ตลอดจนปรับแต่งค่า Parameter บางค่าของ Network OS เพื่อให้รองรับกับการโจมตีแบบ DoS

/DDoS Attack



10. Insecure Configuration Management

หมายถึง เป็นปัญหาที่เกิดขึ้นจากผู้ดูแลระบบ หรือ ผู้ติดตั้ง Web Server มักจะติดตั้งในลักษณะ Default

Configuration ซึ่งยังคงมีช่องโหว่มากมาย หรือบางครั้งก็ไม่ได้ทำการ Update Patch ระบบให้ครบถ้วน

จนถึง Patch ล่าสุด

ปัญหาที่เจอบ่อยๆ ก็คือมีการกำหนดสิทธิในการเข้าถึงไฟล์ต่างๆ ใน Web Server ไม่ดีพอ  ทำให้มีไฟล์

หลุดออกมาให้ผู้ใช้เข้าถึงได้ เช่น แสดงออกมาในลักษณะ Directory Browsing ตลอดจนค่า default

ต่างๆ ไม่ว่าจะเป็น Default Username และ Default Password ก็มักจะถูกทิ้งไว้โดยไม่ได้เปลี่ยนอยู่เป็น

ประจำ


วิธีแก้ปัญหา

ให้ทำการแก้ไขค่า Default ต่างๆ ทันทีที่ติดตั้งระบบเสร็จ และทำการ Patch ระบบ ให้จนถึง Patch ล่า

สุด  และตาม Patch อย่างสม่ำเสมอ เรียกว่า ทำการ Hardening ระบบนั่นเอง  Services ใดที่ไม่ได้ใช้

ก็ไม่ต้องเปิดบริการ เราควรตรวจสอบสิทธิ File and Subdirectory Permission ในระบบว่าตั้งไว้ถูกต้อง

และปลอดภัยหรือไม่ ตลอดจนเปิดระบบ Web Server log file เพื่อที่จะได้สามารถตรวจสอบ (Audit)

HTTP Request ที่ส่งมายัง Web Server ได้ โดยดูจาก Web Server log file ที่เราได้เปิดไว้ และ เรา

ควรหมั่นติดตามข่าวสารเรื่องช่องโหว่ (Vulnerability) ใหม่ๆ อย่างสม่ำเสมอ และ มีการตรวจวิเคราะห์

Web Server log file, Network log file, Firewal log file และ IDS/IPS log file เป็นระยะๆ

จะเห็นได้ว่าแฮกเกอร์ในปัจจุบันสามารถเจาะระบบเราโดยผ่าน ทะลุ Firewall ได้อย่างง่ายดาย เพราะ เรา

มีความจำเป็นต้องเปิดให้บริการ Web Server ในทุกองค์กร ดังนั้นการตรวจสอบเรื่องของ Web

Application Source Code และ Web Server Configuration จึงเป็นทางออกสำหรับการแก้ไขปัญหา

ทางด้านความปลอดภัยของระบบให้รอดพันจาก เหล่าไวรัส และแฮกเกอร์ซึ่งนับวันจะเพิ่มจำนวนและ

เพิ่มความสามารถขึ้นเป็นทวีคูณ


ที่มา: google.com

Credit Every One In Thailand
Dabit  All Admin In Thailand

ไม่มีความคิดเห็น:

แสดงความคิดเห็น