Hacking Web Application (ตอนที่ 1) by A.Pinya Hom-anek, CISSP,CISA ACIS Professional Team E-mail: |
สำหรับองค์กรในยุค ICT นี้ทุกบริษัทล้วนมี Web Site เป็นของตนเองแทบทั้งสิ้น ส่วนใหญ่เพื่อแสดงข้อมูลที่เปิดเผยได้ต่อสาธารณะ อันได้แก่ ข้อมูลผลิตภัณฑ์สินค้า แผนที่ เบอร์โทรศัพท์ ตลอดจนกิจกรรมต่างๆ ที่ต้องการเผยแพร่ซึ่งองค์กรจำเป็นต้องใช้ "Web Server" ในการจัดทำ "Web Site" โดยปกติทั่วไปแล้ว ข้อมูลจากwww.netcraft.com ได้รายงานว่า web site ทั่วโลกมีถึงกว่า 40 ล้าน web site ซึ่ง 66.52 % ใช้ Apache (Open Source) เป็น web server และ 24.64 % ใช้ IIS ของ Microsoft เป็น web server (http://news.netcraft.com/archives/2003
/06/12/june_2003_web_server_survey.html)
จาก ข้อมูลใน web site นี้ Hacker สามารถค้นประวัติของ web site เราได้ว่าเคยใช้ web server อะไร และมีการปรับปรุงเปลี่ยนแปลงเช่น Upgrade version หรือลง Patch อะไรบ้าง โดยสามารถ search จาก www.netcraft.com ได้โดยใส่ชื่อ web site ที่ต้องการค้นข้อมูลลงไป จะได้ผลลัพธ์ในรูปที่ 1
รูปที่1 : ตัวอย่างการค้นหาประวัติของเว็บไซต์ใน www.netcraft.com
ที่กลายเป็นแหล่งข้อมูลอย่างดีให้กับแฮกเกอร์
รูปที่2 : http://packetstormsecurity.nl เว็บไซต์หากินของเหล่าแฮกเกอร์
ซึ่งมีเครื่องมือเจาะระบบมากมายให้เลือกใช้
เทคนิคการเจาะ Web Application นั้น มีอยู่หลายวิธี ส่วนใหญ่แล้ว Hacker จะรู้ว่าเราใช้ Platform ของ Microsoft (Web Server คือ IIS) หรือของค่าย UNIX/ Linux (Web Server คือ Apache httpd) ถ้าหาก Hacker เจาะตัว Web Server ไม่ได้ Hacker จะหาวิธีอื่นในการเจาะ โดยปกติแล้วก็จะดูไปถึงภาษา Script ที่เรานำมาเขียน Code ใช้งาน ซึ่ง Script เหล่านี้ล้วนมีช่องโหว่แทบทั้งสิ้นไม่ว่าจะเป็น ASP, PHP หรือ JSP เราจึงจำเป็นต้องมีการตรวจสอบ Source Code เสียก่อนที่จะนำมาใช้งาน ซึ่งต้องใช้เวลาพอสมควร และ เราควรลองใส่ Parameter แปลกๆ ลงในช่อง URL เพื่อลองดูว่าหากมีการเปลี่ยนแปลงค่า Parameter จะทำให้ระบบมีปัญหาหรือไม่ (Parameter Tampering)
เทคนิคที่ Hacker นิยมก็คือการทำ SQL Injection เนื่องจากเมื่อเวลาเราต้องการที่จะ Login (Authentication) เข้าสู่ web site ทาง Web Server จะถาม "Username" และ "Password" ของเรา เมื่อเราใส่ Username และ password แล้ว Browser ก็จะนำข้อมูลไป check กับฐานข้อมูลในลักษณะ select * from table where user_name = "username" จากการที่เราใช้ "where clause" ในการเขียน web application เพื่อการค้นข้อมูลของ user ซึ่งในการเขียนโปรแกรมนี้จะดูง่าย แต่ในทางมุมมองของ Hacker นั้น Hacker จะใช้ วิธีใส่ SQL command แปลกๆ เพิ่มเติมเข้ามาใน SQL Query เพื่อดึงข้อมูลที่ Hacker ต้องการออกมาจาก Web Site ของเรา
Hacker สามารถใช้โปรแกรมประเภท Sniffer ในการตรวจจับข้อมูล User name และ password เช่นโปรแกรม Cain จาก Web Site: www.oxid.it มาดักจับ password เวลาที่ user ทำการ log on เข้าสู่ Web Application ถ้า Web Server ไม่ได้ใช้ SSL (Secure Socket Layer) กับ Web Server ข้อมูลที่ใช้ http ซึ่งเป็น Plain text ที่ไม่ได้รับการเข้ารหัสก็จะถูกโปรแกรม Cain ตรวจจับได้อย่างง่ายดาย (ดูรูปที่ 3)
รูปที่3 : โปรแกรม Cain ซึ่งเป็นโปรแกรมประเภท Sniffer
ที่สามารถตรวจจับข้อมูลยูสเซอร์เนมและพาสส์เวิร์ดได้
การใช้งาน SSL Protocol สามารถป้องกันข้อมูลไม่ให้ถูกแอบ sniff ได้ในระดับหนึ่งแต่ไม่สามารถป้องกันการ Hack แบบที่ใช้ Exploit ยิงเข้ามาโดยตรง เนื่องจากระบบของเรามี "Known Vulnerabilities" ดังนั้น เราควรทำการ "Patch" หรือ "Fix" Web Server ของเราอย่างสม่ำเสมอด้วยนะครับ
จาก : หนังสือ eLeaderThailand
ฉบับที่173 ประจำเดือนกรกฎาคม 2546
Update Information : 17 กรกฎาคม 2546
ไม่มีความคิดเห็น:
แสดงความคิดเห็น