Hacker กับ Cracker
Hacker หมายถึงผู้ที่มีความสนใจอย่างแรงกล้าในการทำงานอันลึกลับซับซัอนของการทำงานของระบบปฏิบัติการคอมพิวเตอร์ใด
ๆ ก็ตาม ส่วนมากแล้ว hacker จะเป็นโปรแกรมเมอร์ ดังนั้น
hackerจึงได้รับความรู้ขั้นสูงเกี่ยวกับระบบปฏิบัติการและprogramming
languagesพวกเขาอาจรู้จุดอ่อนภายในระบบและที่มาของจุดอ่อนนั้น
hackerยังคงค้นหาความรู้เพิ่มเติม อย่างต่อเนื่อง แบ่งปันความรู้ที่พวกเขาค้นพบ
และไม่เคยคิดทำลายข้อมูลโดยมีเจตนา
และไม่เคยคิดทำลายข้อมูลโดยมีเจตนา
Cracker คือบุคคลที่บุกรุกหรือรบกวนระบบคอมพิวเตอร์ที่อยู่ห่างไกลด้วยเจตนาร้าย
cracker เมื่อบุกรุกเข้าสู่ระบบ จะทำลายข้อมูลที่สำคัญทำให้ผู้ใช้ไม่สามารถใช้งานคอมพิวเตอร์
หรืออย่างน้อยทำให้เกิดปัญหาในระบบคอมพิวเตอร์ของเป้าหมาย โดยกระทำของ
cracker มีเจตนามุ่งร้ายเป็นสำคัญ คำจำกัดความเหล่านี้ถูกต้องและอาจใช้โดยทั่วไปได้อย่างไรก็ตามยังมีบททดสอบอื่นอีก
เป็นบททดสอบทางกฎหมายโดยการใช้เหตุผลทางกฏหมายเข้ามาใช้ในสมการ คุณสามารถแยกความแตกต่างระหว่างhacker
และ cracker บททดสอบนี้ไม่ต้องการความรู้ทางกฎหมายเพิ่มเติมแต่อย่างใด
มันถูกนำมาใช้ง่าย ๆ โดยการสืบสวนเช่นเดียวกับ "men rea"
สรุปความแตกต่าง hacker กับ cracker ก็คือ
hacker จะเข้าถึงข้อมูลเพื่อตรวจสอบการทำงานหรือข้อผิดพลาดส่วนcracker
จะเข้าถึงข้อมูลเพื่อแสวงหาผลประโยชน์จากข้อมูลที่ได้มา
วิธีการที่ Hacker และ Cracker
ใช้เข้าไปก่อกวนในระบบอินเทอร์เน็ต
1.Password Sniffers เป็นโปรแกรมเล็กๆที่ซ่อนอยู่ในเครือข่าย
และถูกสั่งให้บันทึกการ Log on และรหัสผ่าน
(Password) แล้วนำไปเก็บในแฟ้มข้อมูลลับ
2. Spoofing เป็นเทคนิคการเข้าสู่คอมพิวเตอร์ที่อยู่ระยะทางไกล
โดยการปลอมแปลงที่อยู่อินเนอร์เน็ต (Internet Address) ของเครื่องที่เข้าได้ง่ายหรือเครื่องที่เป็นมิตร
เพื่อค้นหาจุดที่ใช้ในระบบรักษาความปลอดภัยภายใน วิธีการคือ การได้มาถึงสถานภาพที่เป็นแก่นหรือราก
(Root) ซึ่งเป็นการเข้าสู่ระบบขั้นสูงสำหรับผู้บริหารระบบ
เมื่อได้รากแล้วจะสร้าง Sniffers หรือโปรแกรมอื่นที่เป็น Back
Door ซึ่งเป็นทางกลับลับๆใส่ไว้ในเครื่อง
3. The Hole in the Web เป็นข้อบกพร่องใน World
-Wide-Web ซึ่งเป็นส่วนหนึ่งที่อยู่ในอินเทอร์เน็ต
เนื่องจากโปรแกรมที่ใช้ในการปฏิบัติการของ Website จะมีหลุมหรือช่องว่างที่ผู้บุกรุกสามารถทำทุกอย่างที่เจ้าของ
Site สามารถทำได้
รายละเอียดของ 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
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 ถูกแฮกเกอร์เรียกกลับมาดูใหม่ได้ โดยไม่ต้อง 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) ระบบก็จะถามคำถามกลับมา
ซึ่งถ้าคำถามนั้นง่ายเกินไป แฮกเกอร์ก็จะเดาคำตอบได้ไม่ยากนัก ทำให้แฮกเกอร์ได้ 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 ใหม่ๆ ออกมาให้แฮกเกอร์ใช้การเจาะระบบของเรา
สำหรับ Top 10 Web Application Hacking
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 หรืออาจจะเป็นแฮกเกอร์ลองพิมพ์
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
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 จึงเป็นทางออกสำหรับการแก้ไขปัญหาทางด้านความปลอดภัยของระบบให้รอดพันจาก เหล่าไวรัสและแฮกเกอร์ซึ่งนับวันจะเพิ่มจำนวนและเพิ่มความสามารถมากขึ้น