สวัสดีครับ วันนี้จะมาอธิบายการทำงาน Threat Intelligence เพื่อใช้ในการหา Leak Sensitive Data ขององค์กร และอาจจะมีตัวอย่างในการเขียน Web scraping เพื่อใช้ในการตรวจสอบด้วยตัวเอง
เริ่มต้นด้วยประเภทของ Threat Intelligence ก่อนนะครับ โดยหลัก ๆ จะมีอยู่ 4 ประเภท
1. Strategic Threat Intelligence (ข่าวกรองเชิงกลยุทธ์)
เป้าหมาย: แนวโน้มทางเศรษฐกิจ การเมือง และสังคมที่ส่งผลต่อความมั่นคงทางไซเบอร์
ตัวอย่างข้อมูล: การวิเคราะห์แนวโน้มในอุตสาหกรรม เช่น การโจมตีด้านการเงิน และพวกรายงานเกี่ยวกับภัยคุกคามระดับโลก เช่น Ransomware-as-a-Service (RaaS)
กลุ่มผู้ใช้งาน: ผู้บริหารระดับสูง (CISO, CEO), ผู้กำหนดนโยบาย (Policy Makers)
2. Tactical Threat Intelligence (ข่าวกรองเชิงยุทธวิธี)
เป้าหมาย: โดยหลักจะใช้เพื่อเตรียมการและจัดการกับเหตุไม่พึงประสงค์ มุ่งเน้นไปที่ข้อมูลภัยคุกคามที่เกี่ยวข้องกับวิธีการโจมตี , เทคนิค , และกระบวนการของผู้โจมตี
ตัวอย่างข้อมูล: รายงานเกี่ยวกับฟิชชิง (Phishing) หรือการโจมตีโดยใช้มัลแวร์ หรือแนวโน้มและรูปแบบของการโจมตี
กลุ่มผู้ใช้งาน: ทีมวิเคราะห์ภัยคุกคาม, ผู้จัดการความปลอดภัยทางไซเบอร์
3. Operational Threat Intelligence (ข่าวกรองเชิงปฏิบัติการ)
เป้าหมาย: ข้อมูลมักมาจากฟอรัมใน Dark Web, การวิเคราะห์เหตุการณ์แบบเรียลไทม์ หรือการเก็บและวิเคราะห์ข้อมูลที่เกี่ยวข้องกับการโจมตีที่กำลังเกิดขึ้นหรืออาจเกิดขึ้นในเร็ว ๆ นี้
ตัวอย่างข้อมูล: รายชื่อเป้าหมายที่ผู้โจมตีมุ่งหวัง รวมไปถึงข้อมูลต่างๆที่ใช้ภายในองค์ที่หลุดในช่องทางได้ช่องทางหนึ่ง หรือการวิเคราะห์การโจมตีที่กำลังดำเนินอยู่ เช่น รายการ IP, URL, และไฟล์ต้องสงสัย
กลุ่มผู้ใช้งาน: ทีมตอบสนองต่อเหตุการณ์ (Incident Response Team)
4. Technical Threat Intelligence (ข่าวกรองเชิงเทคนิค)
เป้าหมาย: ข้อมูลที่มีรายละเอียดทางเทคนิคสูง เช่น ข้อมูลตัวบ่งชี้ภัยคุกคาม หรือใช้โดยผู้เชี่ยวชาญด้านเทคนิคเพื่อตรวจจับและป้องกันภัยคุกคาม
ตัวอย่างข้อมูล: แฮชของมัลแวร์ (Malware Hashes), ที่อยู่ IP ของเซิร์ฟเวอร์ Command & Control (C2), รายละเอียดของช่องโหว่ (Vulnerabilities)
กลุ่มผู้ใช้งาน: ผู้ดูแลระบบความปลอดภัย, นักวิเคราะห์ทางเทคนิค
โดย Threat Intelligence เปรียบเสมือนการเฝ้าระวังภัยก่อนที่จะถูกโจมตี ถ้าเกิดมี Leak Sensitive Data ขององค์กร หลุดออกไปใน Dark Web การทำ Threat Intelligence ก็จะสามารถป้องกันการถูกโจมตีจากผู้ไม่ประสงค์ดีได้ โดยที่กล่าวมาจะเป็นลักษณะของ Threat Intelligence ในประเภทของ Operational Threat Intelligence (ข่าวกรองเชิงปฏิบัติการ)
หลักการทำงานของ Threat Intelligence ใช้เพื่อเป็นการหาช่องทางป้องกันการโจมตีขององค์การผ่านจากข้อมูลที่มีการหลุดหรือสามารถระบุตัวบุคคลที่มีความเสี่ยงต่อการใช้ข้อมูลมาโจมตี โดยการทำตัว Threat Intelligence จะสามารถป้องการก่อนเกิดการโจมตีได้ ตัวอย่างหนึ่งที่มีการใช้งานอย่างแพร่หลายก็จะเป็นการหา Leak Sensitive Data ที่มีการหลุดออกมาเพื่อจะได้เฝ้าระวังหรือป้องกันจากการถูกโจมตี
โดยหลักการของการของกระบวนการนี้ก็จะเป็นการทำตัว Web Scraping เพื่อหา Sensitive Data ที่มีการปล่อยออกมาที่ Dark Web โดยกระบวนการทำ Web Scraping จะมีดังนี้
- เชื่อมต่อ URL ของ Onion Address ผ่านตัว tor โดยหลังจากที่ Connect อาจจะต้องมี Crawler เข้ามาช่วยเพื่อทำให้สามารถหาข้อมูลได้ลึกขึ้น หลักการทำงานของ Crawler จะไปค้นหา URL ที่มีการฝังอยู่ในเว็บไซต์มาเก็บหรือใช้เข้าถึงเพื่อการเก็บข้อมูลที่ละเอียดและกว้างขึ้น
- ใช้ Library Web Scaping อย่างเช่นตัว Beautifulsoup หรือจะเป็นตัวอื่นแล้วแต่ทางผู้อ่านจะถนัด โดยหลัการของตัว Web Scaping จะเป็นการดึงข้อมูล จาก HTTP Response
- ทำตัวรับ Keyword ควบคู่ Scaping จาก HTTP Response เพื่อไม่ต้องเสียเวลาวิเคราะห์
โดยขั้นตอนการเขียนเพื่อเริ่มทำ Scaping
1. ให้ทำการติดตั้งตัว tor ก่อน
sudo apt install tor python3 python3-pip
2. แก้ไขไฟล์ /etc/tor/torrc
sudo nano /etc/tor/torrc
3. ให้เพิ่มคำสั่งเพื่อใช้งาน Tor Control Port โดยเป็นพอร์ต 9051
ControlPort 9051 CookieAuthentication 1
4. ให้เปิดการใช้งาน Services Tor
sudo systemctl start tor sudo systemctl enable tor
5. Import Library
from stem import Signal
from stem.control import Controller
import requests
from bs4 import BeautifulSoup
6. เขียนฟังก์ชันสำหรับการทำ Tor session
def newsession():
session = requests.Session()
session.proxies = {
'http': 'socks5h://127.0.0.1:9050',
'https': 'socks5h://127.0.0.1:9050'
}
return session
7. เขียนฟังก์ชันในการเปลี่ยน IP Address
def newip():
with Controller.from_port(port=9051) as controller:
controller.authenticate()
controller.signal(Signal.NEWNYM)
8. เขียนฟังก์ชันในการเรียก URL และส่งตัว HTTP response เพื่อไปทำ scraping
def scraping(url):
newip()
time.sleep(10)
session = getsession()
res = session.get(url)
soup = BeautifulSoup(res.content, 'html.parser')
return soup
9. ตัวอย่างในการหาจาก key (อาจจะต้องเขียนเพิ่มเติมให้ครอบคุม)
def findkeyword(kw,soup):
for kw in soup:
ret = kw.get_text()
return ret
10. กำหนด URL ที่ต้องการจะเข้าถึงโดยเป็น .onion
url = “http://onionaddress.onion”
11. เรียกใช้ฟังก์ชัน scraping และส่งไปยัง findkeyword เพื่อทำการหาข้อมูลใน HTTP Response
soup = scraping(url)
result = findkeyword(“datafarm.co.th”,soup)
print(result)
Library ที่มีการใช้งาน
- Requests
- BeautifulSoup4
- Stem
ข้อเสียของการทำ Threat Intelligence ด้วยตัวเอง คือ ยุ่งยาก ใช้เวลานาน ไม่มีความ Flexible ในการวิเคราะห์ และการหาข้อมูล อาจจะทำให้ตกหล่นข้อมูลบางอย่างได้
สุดท้ายขออนุญาตขายของหน่อยนะครับ โดยในตอนนี้ทางดาต้าฟาร์มได้มี Service Threat Intelligence เพื่อป้องกันการโจมตี โดยมีหลักการเหมือนกับที่กล่าวมา แต่จะมีความยืดหยุ่น เข้าใจได้ง่าย มีความฉลาดในส่วนของ Tools โดยชื่อ Service ดังกล่าวจะมีชื่อ Persona โดยที่เจ้าน้อง Persona จะสามารถหาได้โดยหลักการหาจาก DNS ขององค์กร นำไปหาที่ฝั่ง Dark Web มาเพื่อทำเป็นลิสต์และทำให้วิเคราะห์ได้โดยง่าย ซึ่งเหมาะกับการใช้งานบนองค์กรอย่างมากที่สุด
สำหรับวันนี้ต้องขอขอบคุณผู้อ่านทุกท่านและขอฝากน้อง Persona ไว้เป็นอ้อมอกอ้อมใจด้วยนะครับ