วันศุกร์ที่ 3 มกราคม พ.ศ. 2557

ความรู้เกี่ยวกับ Web Application, Search Engine

ความรู้เกี่ยวกับ Web Application, Search Engine

Web Application
Hacker ในอดีตแตกต่างจาก Hacker ในปัจจุบันและอนาคต เนื่องจาก Hacker ในอดีตนั้น มักจะเป็นผู้ที่มีความเชี่ยวชาญด้าน TCP/IP protocol suite หรือการเขียนโปรแกรมภาษา C อย่างลึกซึ้ง Hacker มักจะใช้ Exploit หรือ โปรแกรมเจาะระบบ เจาะผ่านทาง Port ต่างๆ ที่เปิดให้บริการบน Server ของเรา เช่น FTP Server จะเปิด Port 20 และ 21, Sun RPC บน Solaris Platform เปิด Port "Sun RPC" 111 เป็นต้น โดย Hacker นิยมเจาะระบบ Unix ผ่านทาง Port RPC โดยใช้ Exploit ของ Port 111 ซึ่งปกติจะเป็น Port Default ของ Solaris อยู่แล้ว (ข้อมูลเพิ่มเติมอ่านได้ที่ www.sans.org/top20)

แต่ในปัจจุบัน Hacker จำเป็นต้องมีการเปลี่ยนแปลงพฤติกรรมในการเจาะระบบเนื่องจาก ระบบส่วนใหญ่มีการป้องกันโดยใช้ Firewall และ มักจะปิด Port ต่างๆ ที่ไม่จำเป็น ตลอดจนปิดแม้กระทั่ง ICMP ซึ่งจะทำให้ Hacker ไม่สามารถใช้คำสั่ง PING มายังเครื่องของเราได้ โดยเราจะเปิด Port สำหรับการใช้งานผ่านทาง Web เท่านั้น คือ Port HTTP 80 และ HTTPS 443 (SSL) จะเห็นได้ว่า Hacker นั้นไม่สามารถเจาะระบบโดยใช้ Exploit เดิมๆ เพราะ Port ต่างๆ ถูกปิดโดย Firewall เรียบร้อยแล้ว ดังนั้น จึงเป็นที่มาของ การ Hack ในแนวใหม่ (Next Generation Hacking) ก็คือ "Web Application Hacking" เจาะเฉพาะ Port 80 และ Port 443 (เพราะ Firewall ของทุกองค์กรยังไงก็ต้องเปิด Port 80 เพื่อให้คนภายนอกเข้ามาเยี่ยมชม Website)

Hacker ในปัจจุบันจึงจำเป็นต้องมีความรู้ด้านการเขียนโปรแกรม Web Application ด้วย ถ้าเป็น Windows Platform ก็ต้องศึกษาเกี่ยวกับ IIS Web Server, Active Server Page (ASP) หรือถ้าใช้ Unix/Linux Platform ก็ต้องศึกษาเกี่ยวกับ Apache Web Server, mod_SSL, PERL หรือภาษายอดนิยม PHP และ Java Server Page (JSP) เป็นต้น

แน่นอนว่า Web Application นั้นถูกเขียนโดย Web Programmer ส่วนใหญ่มักจะมีความเชี่ยวชาญในการเขียนภาษา ASP หรือ PHP บางคนก็ชอบใช้ Content Management System เช่น PHPnuke (www.phpnuke.org) หรือ PHPbb (www.phpbb.com) ซึ่งล้วนแต่มีช่องโหว่ให้กับ Hacker โดยปกติแล้ว Web Programmer มักจะไม่ได้สนใจเรื่องของ Security โดยตรง จะมีเพียงบางคนที่ศึกษาเรื่องนี้อย่างจริงจัง ดังนั้นการเขียน Web Application ที่ไม่ได้คำนึงถึงด้าน Web Application Security นั้น จึงเป็นการเปิดช่องให้กับ Hacker ในการเจาะระบบ ผ่านทาง Port 80 หรือ Port 443 ได้อย่างง่ายดาย โดยที่ Firewall ไม่สามารถที่จะป้องกันได้เลย

การเจาะระบบผ่านทาง Port 80 หรือ 443 นั้น ไม่ยากอย่างที่เราคิด ลองตรวจสอบระบบของเราเองดู ด้วยวิธีการที่เรียกกันในกลุ่มคนที่ทำงานด้าน Information Security ว่า "Vulnerability Assessment" โดยใช้โปรแกรมจำลองการเจาะระบบ ตัวอย่างเช่นโปรแกรม N-Stealth จาก Website http://www.nstalker.com เราจะพบว่า Web Server ของเรา ไม่ว่าจะเป็น IIS หรือ Apache ล้วนมีช่องโหว่ที่ Hacker สามารถมองเห็นโดยโปรแกรมจะวิเคราะห์ช่องโหว่ใน CGI Script, PERL Script ตลอดจน ASP, PHP, Cold Fusion และ JSP Script ด้วย

ช่องโหว่ใน Web Application นั้น มีหลายประเภทเช่น Hidden Manipulation, Cookie Poisoning, Buffer Overflow, SQL Injection, Cross Site Scripting (XSS) Flaws (ซึ่งผมจะกล่าวรายละเอียดในฉบับต่อไป)

ถามว่าวันนี้เรามีทั้ง Firewall และ IDS ในระบบของเราแล้วเราจะปลอดภัยจากการโจมตีของ Hacker หรือไม่ คำตอบก็คือ ไม่ได้ 100% เพราะยังไงเราก็ต้องเปิด Port ให้คนเข้ามาที่ Web Server ของเราอยู่ดี และ Web Application Programmer ส่วนใหญ่ก็ไม่ได้มีความรู้ในระดับของ Hacker ตลอดจนงานพัฒนาโปรแกรมนั้นก็มักจะเป็นงานที่เร่งรีบเสียจนไม่มีเวลาที่จะมาตรวจสอบ Source Code เพื่อความปลอดภัยของระบบ ดังนั้นทางแก้ไขแบบบูรณาการก็คือ เราต้องถ่ายทอดความรู้ด้าน "Web Application Security" ให้กับโปรแกรมเมอร์ เพื่อโปรแกรมเมอร์จะได้มีความตระหนักถึงการจู่โจมของ Hacker เรียกว่าสร้าง "Security Awareness"ตลอดจนมีการนำ Source Code มาตรวจสอบทั้งแบบ Manual และ Automated โดยใช้ Tools ที่มีอยู่มากมายใน Internet ก็สามารถจะช่วยลดความเสี่ยงที่เกิดขึ้นกับ Web Application ของเราได้กว่า 50 %


Search Engine
earch Engine คือ เครื่องมือการค้นหาข้อมูลผ่านอินเตอร์เน็ต ที่ทุกคนสามารถเข้าไปค้นหาข้อมูลผ่านอินเตอร์เน็ตก็ได้ โดย กรอก ข้อมูลที่ต้องการค้นหา หรือ Keyword (คีเวิร์ด) เข้าไปที่ช่อง Search Box แล้วกด Enter แค่นี้ข้อมูลที่เราค้นหาก็จะถูกแสดงออกมาอย่างมากมายก่ายกอง เพื่อให้เราเลือกข้อมูลที่เราโดนใจที่สุดเอามาใช้ งาน โดยลักษณะการแสดงผลของ Search Engine นั้นจะทำการแสดงผลแบบ เรียงอันดับ Search Results ผ่านหน้าจอคอมพิวเตอร์ของเรา

Search Engine มี 3 ประเภท
ประเภทที่ 1 Crawler Based Search Engines คือ เครื่องมือการค้นหาบนอินเตอร์เน็ตแบบอาศัยการบันทึกข้อมูล และ จัดเก็บข้อมูลเป็นหลัก ซึ่งจะเป็นจำพวก Search Engine ที่ได้รับความนิยมสูงสุด เนื่องจากให้ผลการค้นหาแม่นยำที่สุด และการประมวลผลการค้นหาสามารถทำได้อย่างรวดเร็ว จึงทำให้มีบทบาทในการค้นหาข้อมูลมากที่สุดในปัจจุบัน โดยมีองค์ประกอบหลักเพียง 2 ส่วนด้วยกันคือ
1. ฐานข้อมูล โดยส่วนใหญ่แล้ว Crawler Based Search Engine เหล่านี้จะมีฐานข้อมูลเป็นของตัวเอง ที่มีระบบการประมวลผล และ การจัดอันดับที่เฉพาะ เป็นเอกลักษณ์ของตนเองอย่างมาก
2. ซอฟแวร์ คือ เครื่องมือหลักสำคัญที่สุดอีกส่วนหนึ่งสำหรับ Serch Engine ประเภทนี้ เนื่องจากต้องอาศัยโปรแกรมเล็กๆ ทำหน้าที่ในการตรวจหา และทำการจัดเก็บข้อมูล หน้าเพจ หรือ เว็บไซต์ต่าง ๆ ในรูปแบบของการทำสำเนาข้อมูล เหมือนกับต้นฉบับทุกอย่าง ซึ่งเราจะรู้จักกันในนาม Spider หรือ Web Crawler หรือ Search Engine Robots เช่น www.google.com
ประเภทที่ 2 Web Directory หรือ Blog Directory คือ สารบัญเว็บไซต์ที่ให้สามารถค้นหาข่าวสารข้อมูล ด้วยหมวดหมู่ข่าวสารข้อมูลที่เกี่ยวข้องกัน ในปริมาณมากๆ คล้าย ๆ กับสมุดหน้าเหลือง ซึ่งจะมีการสร้าง ดรรชนี มีการระบุหมวดหมู่อย่างชัดเจน ซึ่งจะช่วยให้การค้นหาข้อมูลต่าง ๆ ตามหมวดหมู่นั้น ๆ ได้รับการเปรียบเทียบอ้างอิง เพื่อหาข้อเท็จจริงได้ในขณะที่เราค้นหาข้อมูล เพราะว่าจะมีเว็บไซต์มากมาย หรือ Blog มากมายที่มีเนื้อหาคล้าย ๆ กันในหมวดหมู่เดียวกัน ให้เราเลือกที่จะหาข้อมูลได้อย่างตรงประเด็นที่สุด (ลดระยะเวลาได้มากในการค้นหา) ตัวอย่างเช่น
1. ODP หรือ Dmoz ที่หลาย ๆ คนรู้จัก ซึ่งเป็น Web Directory ที่ใหญ่ที่สุดในโลก Search Engine หลาย ๆ แห่งก็ใช้ข้อมูลจากที่แห่งนี้เกือบทั้งสิ้น เช่น Google, AOL, Yahoo, Netscape และอื่น ๆ อีกมากมาย ODP มีการบันทึกข้อมูลประมาณ 80 ภาษาทั่วโลก รวมถึงภาษาไทยด้วย (URL : http://www.dmoz.org )
2. สารบัญเว็บไทย SANOOK ก็เป็น Web Directory ที่มีชื่อเสียงอีกเช่นกัน และเป็นที่รู้จักมากที่สุดในเมืองไทย(URL : http://webindex.sanook.com )
ประเภทที่ 3 Meta Search Engine คือ Search Engine ที่ใช้หลักการในการค้นหาโดยอาศัย Meta Tag ในภาษาHTML ซึ่งมีการประกาศชุดคำสั่งต่าง ๆ เป็นรูปแบบของ Tex Editor ด้วยภาษา HTML นั่นเองเช่น ชื่อผู้พัฒนา คำค้นหา เจ้าของเว็บ หรือ บล็อก คำอธิบายเว็บหรือบล็อกอย่างย่อ ผลการค้นหาของ Meta Search Engine นี้มักไม่แม่นยำอย่างที่คิด เนื่องจากบางครั้งผู้ให้บริการหรือ ผู้ออกแบบเว็บสามารถใส่อะไรเข้าไปก็ได้มากมายเพื่อให้เกิดการค้นหาและพบเว็บ หรือ บล็อกของตนเองและอีกประการหนึ่งก็คือ มีการอาศัย Search Engine Index Server หลาย ๆ แห่งมาประมวลผลรวมกัน จึงทำให้ผลการค้นหาข้อมูลต่าง ๆ ไม่เที่ยงตรงเท่าที่ควร
หลักการทำงาน เว็บคราวเลอร์ ( Web Crawler) หรือที่รู้จักกันดีในชื่อ เว็บสไปเดอร์ ( Web Spider ) หรือ เว็บโรบอท ( Web Robot ) เป็นโปรแกรมที่ทำงานด้วยตัวเอง โดยจะเชื่อมต่อกับเครือข่ายอินเตอร์เน็ต เก็บข้อมูลเพื่อจุดประสงค์ใดจุดประสงค์หนึ่ง เช่น เก็บ E-mail Address ( เพื่อนำไปใช้สแปมอีเมล์ ) เว็บคราวเลอร์ที่ใช้กันอยู่ในปัจจุบันทั่วไปและมีการวิจัยกันมากคือ ใช้ในการทำงานเกี่ยวกับระบบ เสิร์จเอนจิ้น โดยเว็บคราวเลอร์ทำหน้าที่เก็บรวบรวมข้อมูลเว็บเพจในระบบอินเตอร์เน็ต เพื่อนำมาใช้ในการทำดัชนี ทำเป็นระบบเสิร์จเอนจิ้นต่อไป หลักการทำงานของเว็บคราวเลอร์แบบพื้นฐานคือ การเริ่มต้นดาวน์โหลดเว็บเพจจากยูอาร์แอลเริ่มต้น หรือที่เรียกว่า Seed URLs ยูอาร์แอลเริ่มต้นอาจจะเป็นชุดของ ยูอาร์แอลหรือยูอาร์แอลเดียวก็ได้ เมื่อเว็บคราวเลอร์ดาวน์โหลดหน้าเอกสารเว็บเพจจากยูอาร์แอลที่ดาวน์โหลดมาแล้ว เว็บคราวเลอร์จะทำการวิเคราะห์ หายูอาร์แอลลิงค์ทั้งหมดในหน้าเว็บเพจนั้น เพื่อนำไปใช้ดาวน์โหลดเก็บข้อมูล ทำวนซ้ำต่อไปเรื่อยๆ วิธีการใช้งาน ... 1) คำสำคัญที่เป็นภาษาไทยล้วนๆ
สมมติว่าคุณจะค้นหาข้อมูลเกี่ยวกับนักคณิตศาสตร์ คำสำคัญอันดับแรกที่เรานึกถึงได้ทันทีก็คือ นักคณิตศาสตร์ แต่ผมคิดว่าคำสำคัญเพียงคำเดียวก็ดูจะกว้างไป และในบางครั้งผลการค้นหาก็มากมายหลายสิบหน้า ถ้าเราจะเปิดอ่านทุกลิงก์ทุกหน้าก็คงไม่ดีแน่ ดังนั้นเราจึงต้องจำกัดผลการค้นหาให้แคบลงตามที่เราต้องการ สมมติว่าคุณต้องการข้อมูลเกี่ยวกับนักคณิตศาสตร์ชาวกรีก คำสำคัญที่ใช้ได้ก็ได้แก่ นักคณิตศาสตร์ และคำว่า กรีก คราวนี้สังเกตผลการค้นหาที่ได้ คุณจะพบว่าผลการค้นหามีจำนวนน้อยลง คราวนี้ก็สะดวกที่เราจะเลือกลิงก์ที่ต้องการได้
ในทำนองเดียวกัน ถ้าคุณอยากได้ข้อมูลเกี่ยวกับนักคณิตศาสตร์ชาวกรีกแต่เป็นภาษาอังกฤษ คำสำคัญ 2 คำแรกที่น่าจะใช้ได้ก็คือ greek mathematician แต่ผมมีข้อสังเกตของการใช้เว็บไซต์ http://www.google.co.th/ และ search engine หลายๆ ตัวในอินเทอร์เน็ต คือ ในการค้นหาข้อมูลที่ใช้คำสำคัญเป็นภาษาอังกฤษ (รวมทั้งภาษาไทยด้วย) ถ้าเราใช้เครื่องหมาย “ ” (double quote) คร่อมระหว่างคำสำคัญคู่ใดๆ ก็ตาม ผลการค้นหาอาจแตกต่างกันเล็กน้อยซึ่งเป็นรายละเอียดทางเทคนิค ผมจะไม่อธิบายไว้ในที่นี้ ในกรณีนี้คำสำคัญว่า greek mathematician (คำว่า greek แล้วเว้นวรรคจากนั้นตามด้วยคำว่า mathematician) อาจให้ผลการค้นหาที่ต่างจากคำสำคัญ “greek mathematician” และที่สำคัญอีกอย่างก็คือตัวอักษรใหญ่เล็กที่ต่างกันก็อาจจะให้ผลการค้นหาที่ต่างกันได้อีกเช่นกัน
3) คำสำคัญที่เป็นภาษาไทยปนภาษาอังกฤษ
search engine บางแห่งอาจค้นไม่พบข้อมูลที่ต้องการเมื่อใช้คำสำคัญที่เป็นภาษาไทยกับภาษาอังกฤษปนกัน แต่อย่างไรก็ตามผมพบว่าเว็บไซต์ http://www.google.co.th ไม่มีปัญหากับคำสำคัญที่เป็นแบบ 2 ภาษาปนกัน สมมติว่าคุณต้องการไฟล์บทเรียนเกี่ยวกับไฟฟ้ากระแส คำสำคัญที่อาจจะใช้ได้มีดังต่อไปนี้ 1) ไฟฟ้ากระแสตรง “direct current” 2) “direct current” ไฟฟ้า กระแสตรง 3) “direct current” เนื้อหา
ประโยชน์ของการค้นข้อมูลโดยใช้ search engine
1. ค้นหาเว็บที่ต้องการได้สะดวก รวดเร็ว
2. สามารถค้นหาแบบเจาะลึกได้ ไม่ว่าจะเป็น รูปภาพ, ข่าว, MP3 และอื่นๆ อีกมากมาย
3. สามารถค้นหาจากเว็บไซต์เฉพาะทาง ที่มีการจัดทำไว้ เช่น download.com เว็บไซต์เกี่ยวกับข้อมูลและซอร์ฟแวร์ เป็นต้น
4. มีความหลากหลายในการค้นหาข้อมูล
5. รองรับการค้นหา ภาษาไทย


แหล่งที่มา : http://www.acisonline.net/article_prinya_web_security1.htm
http://nampo.blogspot.com/2011/01/search-engine.html

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

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