- Published on
Mình giải thích lại bài thuyết trình của mình tại sự kiện Gặp mặt Tân sinh viên - BKSec
- Authors

- Name
- Trung Tran
- @teebow1e
Giới thiệu
Bài viết này mình sẽ nhìn lại các ý mình đã triển khai trong buổi thuyết trình, đồng thời bổ sung và giải đáp các thuật ngữ trong slide.
Nếu bạn chưa có link đến bài thuyết trình, xem tại đây.
Cơ hội nghề nghiệp và Kiến thức cần có
Phần này mình gộp vào do mình cảm thấy lượng thông tin đã tương đối đầy đủ. Nhìn chung, với một newbie mới bước chân làm quen vào CTF Forensics, bạn có thể lựa chọn con đường "hắc ám" - ngay lập tức bắt tay vào học phương pháp phân tích các bằng chứng (kết hợp với học thêm các kiến thức còn thiếu trong quá trình phân tích, điều tra evidence). Bên cạnh đó, bạn có thể thử làm quen với các mảng Web Exploitation hay Pwnable để hiểu thêm về cách tấn công các hệ thống, từ đó đặt cho mình câu hỏi "Liệu mình tấn công thế này thì bên phòng thủ có biết hay không nhỉ?" - nguồn cảm hứng để bạn tìm hiểu về Forensics, hay điều tra các bằng chứng còn sót lại.
Các khó khăn cần vượt qua
Đây chính là phần mà mình đã dành nhiều thời gian nhất - và cũng là phần mình nói nhanh nhất. Hãy cùng điểm qua một vài ý chính:
Quá nhiều loại Artifact cần phân tích
artifact = bằng chứng
Ở đây, mình sẽ lấy ví dụ về 2 hệ điều hành đang được sử dụng rộng rãi nhất:
WindowsvàLinux. Nhìn chung, khi phân tích / điều tra một sự cố, chúng ta sẽ nghĩ đến các sự kiện đã xảy ra trong quá trình kẻ tấn công thực hiện khai thác trên thiết bị.- Với Windows
- Nếu xét về số lượng artifact, mình không dám chắc về con số, tuy nhiên một số cái tên phổ biến cần biết bao gồm: Event Log (
evtx), MasterFileTable ($MFT), Registry, PowershellHistory,... 1
- Nếu xét về số lượng artifact cho một sự kiện nhất định - ví dụ sự kiện 1 tiến trình mới đã được khởi chạy (Evidence of Execution)2, bạn có thể sử dụng các bằng chứng sau:

Sidenote: Hầu hết các trường hợp bạn sẽ không dùng đến / không dùng hết số artifact này trong quá trình phân tích; tuy nhiên càng nhiều artifact bạn có thể thu thập và phân tích, bạn càng chắc chắn hơn về sự kiện đã xảy ra.
- Đôi khi trong một loại bằng chứng cũng có thể rất phức tạp, ví dụ như trong trường hợp của Event Log, có rất nhiều sự kiện có các ID khác nhau; chưa kể nếu cài plugin như
Sysmon, số lượng sự kiện sẽ rất nhiều.3
Sidenote: Trên thực tế, bạn sẽ không cần phải nhớ hết các ID này (chỉ cần biết và phân biệt được các ID phổ biến). Bạn vẫn có thể tra Google mà 🐧
- Nếu xét về số lượng artifact, mình không dám chắc về con số, tuy nhiên một số cái tên phổ biến cần biết bao gồm: Event Log (
- Với Linux
- Trong hầu hết các trường hợp, khi thực hiện điều tra số trên hệ điều hành Linux, bằng chứng đa phần sẽ nằm dưới 2 dạng: file, memory (bằng chứng nằm trong RAM - ví dụ như 1 tiến trình malware hiện đang chạy trên hệ thống).4
- Bạn sẽ cần hiểu rõ về các bằng chứng / log mà Linux thu thập một cách tự động, từ đó thu thập và phân tích chúng.
- Với Windows
Giai đoạn 2017 - 202x: sự gia tăng của hình thức tấn công Ransomware
Ransomware vẫn còn chưa được biết đến rộng rãi trong giới công nghệ; tuy nhiên sau sự kiện cuộc tấn công mã hoá dữ liệu bằng mã độc WannaCry5 vào tháng 5/2017, mọi thứ đã thay đổi hoàn toàn. Có rất nhiều bài báo và phân tích về sự kiện này, các bạn có thể tham khảo. Hãy nhìn vào biểu đồ dưới đây6: 
Biểu đồ trên chứng minh hình thức tấn công mã hoá dữ liệu ngày càng gia tăng, và ngày càng tinh vi. Việt Nam cũng không nằm ngoài mối đe doạ này.7
Malware liên tục dùng các ngôn ngữ ít phổ biến (Go, Rust, Zig,...) để né tránh EDR/AV
Trước tiên hãy giải nghĩa một vài từ mới được sử dụng ở đây:
EDR(Endpoint Detection and Response): Bộ công cụ phát hiện và ngăn chặn mối đe doạ tại Endpoint. Endpoint có thể hiểu ở đây như máy trạm của người dùng. EDR thường được sử dụng trong môi trường doanh nghiệp (Enterprise) - trong đó, EDR được cài đặt tại máy trạm của người dùng, liên tục giám sát; khi phát hiện mối đe doạ sẽ tự động gửi cảnh báo về máy chủ để có phương án xử lý.AV(Antivirus): Phần mềm diệt Virus
Nhìn chung, để 2 công cụ trên có thể bắt và diệt được các mối đe doạ, có 2 phương pháp chính được sử dụng:
- Heuristic-based (static analysis): scan, đào sâu vào dữ liệu để tìm kiếm các đoạn mã nghi ngờ là "nguy hiểm". Ví dụ, quét một file
PHPphát hiện nhiều dòng codeshell_execkết hợp với các lệnh Linux nguy hiểm -> ALERT.- Ví dụ trên vô cùng đơn giản để bạn hiểu về phương pháp phân tích này, tuy nhiên với các dữ liệu chứa non-printable char (ký tự không thể in ra được), thì làm sao để phát hiện mối đe doạ? (mình để phần này cho các bạn tự tìm hiểu 😶🌫️)
- Behaviour-based (phát hiện dựa trên hành vi): AV sẽ theo dõi hầu hết các hoạt động trên hệ thống (số lượng hoạt động AV có thể theo dõi được có thể thay đổi với mỗi vendor - nhà sản xuất).
- Nếu có các hoạt động đáng ngờ (ghi đè file hệ thống, ghi đè vùng nhớ, cố gắng kill process hệ thống, ghi vào registry, ...) - các hành động này sẽ được ngăn chặn.
Vậy tại sao các ngôn ngữ ít phổ biến hơn (Go, Rust, Zig, Nim,...) lại được ưa thích trong việc vượt qua lớp bảo vệ này?
Mình sẽ không đi sâu vào phần này, dưới đây là một số lý do:
- Hạn chế về số lượng signature đã biết. EDR/AV thường sử dụng các chữ ký (đặc điểm nhận dạng) để phân tích các mẫu binary bị nghi ngờ. Với các ngôn ngữ mới này, mã biên dịch ra khác hoàn toàn so với các mẫu mã độc viết bằng
ChayC++truyền thống. - Luồng code khi thực thi khó hiểu khiến cho việc dịch ngược trở nên khó khăn.
- Tuy vậy, các ngôn ngữ chỉ có thể che giấu được việc scan dựa trên signature, để vượt qua được behavioural scan là một chuyện khác; bởi vì, dù cho có sử dụng ngôn ngữ nào chăng nữa, malware vẫn cần phải tương tác trực tiếp với API của Windows để thực thi các hành vi độc hại.
- Lúc này, AV nào có khả năng phân tích hành vi tốt hơn sẽ ngăn chặn được.
Nhiều hình thức Phishing (lừa đảo) mới xuất hiện
Trong phần này, mình sẽ chỉ đề cập đến các hành vi lừa đảo yêu cầu sự tương tác trực tiếp của người dùng với thiết bị mạng (không tính các phương pháp Social Engineering).
Các hình thức phishing thường được sử dụng gần đây:
- Facebook Ads Phishing8
- Google SEO Poisioning 9
- Fake I'm not a robot10
- Các hình thức phishing bypass 2FA (Xác thực 2 yếu tố)11
Trong phần này chủ yếu là demo để các bạn hình dung được các hình thức tấn công "mới" trong thời gian gần đây. Nếu chơi game có meta (chiến thuật hiệu quả nhất tính đến hiện tại) - thì trong cyber security cũng như vậy. Threat Actor luôn tìm ra các phương thức tấn công mới, và chúng ta luôn luôn cần update để bắt kịp.
Việc lập trình thiếu an toàn từ các vendor (đặc biệt là các vendor lớn, global)
Trước tiên, mình muốn giới thiệu với các bạn một vài vendor và sản phẩm của họ:
- Palo Alto: Nhà cung cấp các giải pháp về An toàn thông tin, đặc biệt là tường lửa tầng Ứng dụng. Các thiết bị tường lửa của họ được chạy trên hệ điều hành riêng, được gọi là
PAN-OS.
- Fortinet: Nhà cung cấp giải pháp An toàn thông tin, một số sản phẩm nổi bật như các thiết bị mạng, tường lửa. (sản phẩm của họ dùng tốt :D)

Và đây là một số CVE gần đây của họ (đã có PoC - mã khai thác, và có thể đang được khai thác ngoài đời thực nếu như các thiết bị có lỗ hổng chưa được vá 🥲🥲)
- Palo Alto - CVE-2024-0012, CVE-2024-947412
- Fortinet - CVE-2024-47575, CVE-2024-2311313
Và đoạn code này thật sự đã được sử dụng ở môi trường production - trong một sản phẩm của 1 vendor có tầm ảnh hưởng quốc tế:
Giải thích: Trong đoạn code trên chúng ta có
$plà đối tượngProcess(nghe là thấy liên quan đến hệ thống), và ngay dưới nó là$p->pexecute, và trong lệnh đó là một câu lệnh Linux. Chạy lệnh không có gì sai, tuy nhiên việc nối chuỗi trực tiếp biến$msg,$username(các dữ liệu này đều làuntrusted- do người dùng đưa vào) vào câu lệnh là cực kỳ nguy hiểm. Gần như là RCE nếu như các giá trị này có thể bị thao túng, và thực sự là họ đã RCE (chạy lệnh hệ thống từ xa) thành công.Với số lượng CVE được phát hiện nhiều như vậy, tuy nhiên nếu các bên nghiên cứu không phát hành các bài phân tích, PoC rộng rãi thì sẽ không sao đâu nhỉ? Chưa chắc đã giòn đâu, hãy nhìn vào báo cáo Threat Intelligence của Mandiant (Google Cloud) phát hành vào tháng 10/202414:

- Rất nhiều lỗ hổng zero-days được khai thác trước khi vendor kịp khắc phục.
- Ngay cả khi vendor kịp thời khắc phục, threat actor chỉ mất trung bình 5 ngày để viết ra mã khai thác và sử dụng.
Nhìn chung, với các thông tin trên, có thể thấy được áp lực bị tấn công vào các hệ thống trọng yếu, quan trọng luôn luôn thường trực với đội phòng thủ, đặc biệt là khi các mối đe doạ không thể nhận biết được.
Sự gia tăng về số lượng của các nhóm APT, dịch vụ MaaS (Malware as a Service)
Tuy nhiên, đôi lúc ngay cả khi hệ thống của bạn không có phần mềm dính lỗ hổng bảo mật, hệ thống đã được cập nhật các bản vá, gia cố, bạn vẫn có thể bị nhắm đến. Hãy cùng giải thích các thuật ngữ được nêu:
APT- Advanced Persistent Threat: các nhóm threat actor chuyên nghiệp, có tổ chức, có tiềm lực. Họ sở hữu kỹ năng và hạ tầng tấn công rộng lớn, có khả năng thực hiện các cuộc tấn công lớn vào các tổ chức, các quốc gia.15
MaaS- Malware as a Service: một dạng cybercrime outsource - bạn mua/thuê các phần mềm, dịch vụ độc hại để thực hiện tấn công một đối tượng nào đó.
Nhìn chung phần này cũng không có gì để nói nhiều lắm, bạn nên biết là họ tồn tại, và việc gia cố hệ thống, luôn luôn phòng bị, tìm hiểu kiến thức là một trong những cách tốt nhất để bảo vệ tổ chức của bạn khỏi các cuộc tấn công như trên. (thực ra là mình buồn ngủ rồi 😪)
Lời cuối
Mặc dù các khó khăn trên không liên quan trực tiếp đến Forensics CTF, nhưng nếu bạn có ý định theo con đường của những người phòng thủ (Blueteam), hi vọng các kiến thức này sẽ hữu ích cho bạn. CTF luôn lấy kiến thức từ đời sống, vì vậy biết đâu các kiến thức này sẽ hữu ích thì sao?
teebow1e.
Footnotes
https://mohammedalhumaid.com/wp-content/uploads/2022/01/windows-forensics-analysis-v-1.0-4.pdf ↩
https://github.com/Psmths/windows-forensic-artifacts?tab=readme-ov-file#execution---evidence-of-execution ↩
https://github.com/Psmths/windows-forensic-artifacts?tab=readme-ov-file#account---logon-id ↩
https://fareedfauzi.github.io/2024/03/29/Linux-Forensics-cheatsheet.html ↩
https://www.statista.com/statistics/1410498/ransomware-revenue-annual/ ↩
https://vietnamnet.vn/ma-doc-ma-hoa-du-lieu-tong-tien-lockbit-3-0-tan-cong-vndirect-nguy-hiem-the-nao-2271741.html ↩
https://labs.watchtowr.com/pots-and-pans-aka-an-sslvpn-palo-alto-pan-os-cve-2024-0012-and-cve-2024-9474/?123 ↩
https://labs.watchtowr.com/fortinet-fortigate-cve-2024-23113-a-super-complex-vulnerability-in-a-super-secure-appliance-in-2024/ https://labs.watchtowr.com/hop-skip-fortijump-fortijumphigher-cve-2024-23113-cve-2024-47575/ ↩
https://cloud.google.com/blog/topics/threat-intelligence/time-to-exploit-trends-2023 ↩