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 1Computer Forensics và những điều cần
biết
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 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.
Trang 2Từ đâ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
Trang 3nhau, 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 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…
• Dữ liệu dễ dàng bị giả mạo
• 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:
Trang 4• 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…
• 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
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ị.
Hướng dẫn Network Forensics – phần 1
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.
Trang 5Cũ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
• 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.
Trang 61 Đị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.
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 7Thông tin trong khung chi tiết gói tin, cho ta biết máy kẻ tấn công có địa chỉ
Để 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 tại whitehat Forum: http://forum.whitehat.vn/threads/541…Wireshark.html
Tôi sử dụng trang http://cqcounter.com/ và tìm 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 ?
Trang 8Khi 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:
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 cuối cùng:
Như vậy cuộc tấn công diễn ra trong khoảng 16 giây.
Trang 95 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.
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 CVE-2003-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-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 10Vậ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.