Archive for the ‘Attack’ Category

25.03.09

ความหมาย Shell Code ที่ SRAN ตรวจจับเจอ

ชื่อ : SHELLCODE x86 NOOP

ความหมาย :

พบชุดคำสั่ง NOP (No Operation) สำหรับ CPU x86 ซึ่งมีโอกาสที่จะเกิด Buffer Overflow exploit ได้

ชุดคำสั่งที่พบได้แก่

1. 90 90 90 90 90 90 90 90 90 90 /bin/sh
2. AAAAAAAAAAAAAAAAAAAAAAAAA

Picture 2 by you.

ส่วนมากจะถูกแทรกเข้ามาใน โปรแกรมภาษา C ซึ่งใช้คำสั่งร่วมกับภาษา Assembly

การวิเคราะห์ :

Signature ในหมวด shellcode นี้ต้องวิเคราะห์ใน payload ให้อย่างละเอียดเพราะว่ามีโอกาสที่จะเกิดความผิดพลาดได้ง่ายเนื่องจากในปัจจุบันข้อมูลทาง LAN , WAN มีส่วนซ้ำๆกันมาก

เช่น การส่งไฟล์ขนาดใหญ่ , ข้อความใน Web , IRC , IM ที่มีรูปแบบตรงกับ Signature นี้

เหตุการณ์ที่เจอมากที่สุดของ SHELLCODE นี้คือเหตุการณ์ที่เกิดขึ้นกับ port 137

13.03.09

การโจมตี XSS ตอนที่ 2

การป้องกันช่องโหว่ XSS

ในปัจจุบันการป้องกันช่องโหว่ cross-site scripting อาศัยการแปลงข้อมูลตัวอักขระพิเศษของภาษาเอชทีเอ็มแอลทุกตัวที่เป็นไปได้ว่าอาจเป็นข้อมูลมุ่งร้าย โดยทำก่อนที่เว็บแอพพลิเคชั่น (หรือสคริปต์ฝั่งไคลเอ็นท์) จะแสดงผล และภาษาโปรแกรมมิ่งหลาย ๆ ตัวมีฟังก์ชั่นหรือไลบรารีที่ช่วยในการการแปลงข้อมูลนี้ (ในบริบทนี้ยังเรียกด้วยว่า quoting หรือ escaping)

http://farm4.static.flickr.com/3126/2504941517_e2b27b6a6c.jpg

ตัวอย่างของการทำ quoting แสดงตัวอย่างข้างล่างนี้ จากภายในอินเตอร์พรีเตอร์ของ Python เอง

<script>alert(’xss’);</script>

จากตัวอย่างข้างบนนี้ คำสั่ง print ในบรรทัดแรกได้สร้างสคริปต์ฝั่งไคลเอ็นท์ที่สามารถเอ็กซิคิวท์ได้ แต่ในคำสั่งที่สองแสดงผลเป็นสายอักขระหนึ่งซึ่งเป็นรูปแบบที่ได้เปลี่ยนแปลงข้อมูลเอชทีเอ็มแอลจากเดิมแล้ว รูปแบบอักขระเหล่านี้จะปรากฏเป็นตัวอักขระจริงในเบราว์เซอร์ แทนที่จะเป็นความหมายพิเศษแบบคำสั่งเอชทีเอ็มแอล วิธีนี้ช่วยป้องกันไม่ให้สามารถใส่สคริปต์ใด ๆ เข้าไปในหน้าแสดงผลเอชทีเอ็มแอลได้ นอกจากนี้ยังป้องกันไม่ให้ผู้ใช้สามารถป้อนข้อมูลในรูปแบบเอชทีเอ็มแอลมุ่งร้ายเข้าไปอีกด้วย

ปัญหาพื้นฐานเกี่ยวกับการหลีกเลี่ยงช่องโหว่ XSS คือสถานการณ์มีความแตกต่างกัน ในสถานการณ์หนึ่งความต้องการและปัญหาก็เปลี่ยนแปลงไป ตัวอย่างเช่น เมื่อข้อมูลที่รับจากผู้ใช้ส่งมายัง src attribute ของไฮเปอร์ลิงค์ cgi.escape() ก็ไม่เพียงพอสำหรับการป้องกัน เช่น จะมีการเพิ่มรูปหนึ่งเข้าไปในหน้าเว็บที่แสดงรูปต่าง ๆ ในรูปแบบเช่นนี้

ผู้โจมตีสามารถใส่ “doesntexist.jpg’ onerror=’alert(document.cookie)” เข้าไปในอีเว้นท์ซึ่งจะทำงานเมื่อเบราว์เซอร์ ไม่สามารถโหลดไฟล์ “doesntexist.jpg” และเอ็กซิคิวท์โค้ดดังกล่าว

ถ้ามีใครคนหนึ่งได้ใช้ฟังก์ชั่นอย่างเช่น cgi.escape() (ซึ่งมาพร้อมกับ Python) อีกคนหนึ่งก็จะพยายามเปลี่ยนอักขระทั้งหมดยกเว้นอักขระที่รู้กันดีอยู่แล้วว่าปลอดภัยทั้งหมดให้เป็น HTML entity ที่มีค่าเท่ากัน เบราว์เซอร์ใช้อัลกอริทึมในการวิเคราะห์คำในภาษาเอชทีเอ็มแอลที่ซับซ้อน (และมักจะมีข้อผิดพลาด) ดังนั้นจึงยากที่จะทำนายได้ว่าอักขระตัวใดที่จะเป็นอักขระพิเศษ โดยเฉพาะการสนับสนุนชุดอักขระ Unicode ของเบราว์เซอร์ ซึ่งอาจทำให้แอพพลิเคชั่นหนึ่งถูกโจมตีโดยช่องโหว่ XSS ได้ ถ้าอัลกอริทึมที่ใช้ในการแปลงข้อมูลเอชทีเอ็มแอลตรวจสอบเฉพาะอักขระที่อาจจะมีอันตรายเท่านั้น

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

(more…)

© Copyright 2010 Global Technology Integrated