TỔNG QUAN
Máy tính và hoạt động của máy tính
Theo Microsoft, máy tính là thiết bị có khả năng xử lý thông tin và cung cấp kết quả mong muốn Dù lớn hay nhỏ, máy tính thực hiện công việc theo ba bước cơ bản đã được định sẵn.
Máy tính hoạt động bằng cách nhận dữ liệu đầu vào, xử lý theo các quy luật định sẵn và đưa ra kết quả Chúng có thể được phân loại theo nhiều tiêu chí, bao gồm kích thước từ máy vi tính đến siêu máy tính, theo thế hệ với năm thế hệ khác nhau, và theo phương thức xử lý, bao gồm máy tính tương tự (analog) và máy tính số (digital).
Máy tính bao gồm phần cứng và phần mềm, trong đó hệ điều hành là phần mềm quan trọng nhất, có nhiệm vụ điều khiển và phối hợp việc sử dụng phần cứng để đáp ứng nhu cầu của người dùng Một số hệ điều hành phổ biến hiện nay là Microsoft Windows, Mac OS và UNIX Bên cạnh đó, các chương trình ứng dụng được phát triển để thực hiện các tác vụ cụ thể như xử lý văn bản, bảng tính và quản lý cơ sở dữ liệu Để hoạt động, các chương trình ứng dụng cần được cài đặt trên nền tảng của hệ điều hành.
Quá trình khởi động của Windows và hoạt động của chương trình trên nền Windows
Dưới đây là mô tả quá trình hoạt động của các hệ điều hành Windows2000 dựa trên nhân NT
Sau khi BIOS khởi động hoàn tất, quyền điều khiển sẽ được chuyển giao cho hệ điều hành Windows sẽ đọc Sector đầu tiên của phân vùng, được gọi là bootsector, và thực thi các lệnh tại đây Đoạn mã này sẽ truy cập thư mục gốc của phân vùng để tìm kiếm tệp tin ntldr (NT Loader).
Nguyễn Thị Phương Thanh- Lớp CT901 7 file này, nó sẽ đọc file đó vào bộ nhớ và thực thi Ntldr sẽ tải hệ điều hành vào bộ nhớ
Khi khởi động, ntldr sẽ đọc file boot.ini để liệt kê các phiên bản của hal.dll và ntoskrnl.exe, cung cấp thông tin về số lượng CPU, dung lượng RAM, khả năng xử lý dữ liệu và tần số xung của đồng hồ thời gian thực Hệ điều hành sau đó sẽ gọi các thành phần thực thi để thực hiện các thiết lập cần thiết Cuối cùng, tiến trình người sử dụng đầu tiên được tạo ra, với trình điều khiển phiên là tiến trình cơ bản của Windows, thực hiện các lời gọi hệ thống mà không sử dụng môi trường Win32 Công việc của nó bao gồm đưa các đối tượng vào không gian tên của trình điều khiển đối tượng, tạo phân trang tập tin mở rộng và mở các DLL quan trọng Sau khi hoàn tất, chương trình đăng nhập winlogon.exe sẽ được tạo ra.
Winlogon.exe khởi tạo trình xác thực iass.exe và tiến trình chủ services.exe, giúp tìm kiếm trong registry các tiến trình cần thiết cho không gian người dùng Sau khi người dùng đăng nhập, hoạt động của đĩa trở nên nặng nề do services.exe khởi động tất cả các dịch vụ và tải các trình điều khiển thiết bị thiếu, bao gồm máy in, máy chủ file, Telnet, điều khiển mail đến, fax, giải pháp DNS, nhật ký sự kiện, và trình điều khiển cắm- chạy.
Nguyễn Thị Phương Thanh- Lớp CT901 8
Giao diện lập trình ứng dụng Windows (Win32 Application
Windows, giống như các hệ điều hành khác, có một tập hợp các lời gọi hệ thống nhưng Microsoft không công bố danh sách cụ thể của chúng, mà thay vào đó, định nghĩa Win32 API với tài liệu đầy đủ Nhiều lời gọi hệ thống tạo ra các đối tượng nhân, bao gồm file, tiến trình, tiểu trình, và luồng, với mỗi lời gọi thiết lập một đối tượng và trả về một kênh điều khiển (handle) Handle này được sử dụng để thực hiện các thao tác trên đối tượng, nhưng không thể được truyền trực tiếp giữa các tiến trình khác nhau Mỗi đối tượng cũng có mô tả bảo mật riêng, xác định quyền truy cập cho các thao tác trên nó.
Các lời gọi Win32 API cung cấp các giải pháp dễ hiểu cho nhiều lĩnh vực trong hệ điều hành, bao gồm việc thiết lập và quản lý tiến trình cùng tiểu trình Ngoài ra, còn có nhiều lời gọi hỗ trợ giao tiếp nội bộ giữa các tiến trình, như thiết lập và huỷ bỏ mutex, cờ hiệu, sự kiện, và các đối tượng giao tiếp khác.
Hệ thống quản lý bộ nhớ mặc dù hoạt động gần như vô hình đối với lập trình viên, nhưng một chức năng quan trọng của nó là ánh xạ tệp tin vào vùng nhớ ảo của tiến trình thông qua việc đặt tên chức năng Điều này cho phép tiến trình truy cập và sử dụng tài nguyên một cách hiệu quả.
Nguyễn Thị Phương Thanh- Lớp CT901 9 có khả năng đọc và ghi các phần của file như thể chúng là những từ nhớ (memory word)
Trong nhiều chương trình, xuất/nhập file là một phần quan trọng, và theo quan điểm của Win32, file được xem như một dãy tuyến tính các byte Win32 cung cấp khoảng 60 lời gọi để thực hiện các thao tác như tạo mới, xóa file và thư mục, mở, đóng, đọc, ghi file, cũng như thiết lập thuộc tính file Bên cạnh đó, Win32 cũng cung cấp các lời gọi liên quan đến bảo mật, với mỗi tiến trình có một ID xác định và mỗi đối tượng đi kèm với một danh sách kiểm soát truy cập (ACL) để xác định người dùng có quyền truy cập và các thao tác được phép thực hiện Cách tiếp cận này đảm bảo bảo mật tốt hơn bằng cách xác định rõ ràng quyền truy cập của từng cá nhân đối với các đối tượng.
Win32 API là một tập hợp các hàm giúp thực hiện các công việc khi chương trình chạy, với sự phong phú của lệnh tùy thuộc vào sức mạnh của hệ điều hành Do đó, ngay cả lập trình viên cũng không thể nắm vững toàn bộ Những phần mềm độc hại thường lợi dụng điều này bằng cách đặt tên dễ gây nhầm lẫn cho các hàm API Thực tế, API chỉ có ý nghĩa với lập trình viên, còn đối với người sử dụng, nó hoàn toàn trong suốt.
Định dạng File thực thi khả chuyển (Portable Executable File format) và quá trình thực thi PE file
Định dạng file thực thi di động, hay còn gọi là PE file, là định dạng nhị phân được sử dụng cho các hệ điều hành Windows NT, Windows 95 và Windows 32bit Được thiết kế bởi Microsoft, định dạng này cho phép các ứng dụng hoạt động hiệu quả trên các nền tảng Windows.
Nguyễn Thị Phương Thanh- Lớp CT901 10
The Portable Executable (PE) format, standardized in 1993 by the Tool Interface Standard Committee—which includes major companies like Microsoft, Intel, Borland, Watcom, and IBM—was developed based on the Common Object File Format (COFF) This format is used for object files and executable files on Windows systems In summary, all files on Windows with extensions such as exe, dll, sys, scr, bpl, dpl, cpl, ocx, acm, and ax are in the PE file format.
Cấu trúc cơ bản của một PE file gồm nhiều phần(section) Tối thiểu một
A PE file must contain two sections: one for code and another for data A Windows NT application typically includes nine predefined sections: text, bss, rdata, rsrc, idata, pdata, and debug.
Những section thông dụng hiện nay là:
1, Executable Code Section, có tên là text
2, Data Section, có tên là data hoặc rdata
3, Resource Section, có tên là rsrc
4, Export Data Section, có tên là edata
5, Import Data Section, có tên là idata
6, Debug Information Section, có tên là debug
Các tài liệu này phục vụ cho lợi ích của lập trình viên, vì để thực thi một file PE, Windows sử dụng PE loader để nạp file vào bộ nhớ Cấu trúc dữ liệu của file PE trên đĩa và trong bộ nhớ là giống nhau, cho phép tìm kiếm bất kỳ section nào của file PE khi nó đã được nạp Các section của file PE được ánh xạ vào vùng nhớ, và quá trình nạp file PE vào bộ nhớ được quản lý bởi chế độ phân trang của vùng nhớ ảo, với mỗi section bắt đầu ở một trang nhớ.
Nguyễn Thị Phương Thanh- Lớp CT901 11
Registry của hệ điều hành Windows
Registry là cơ sở dữ liệu phân cấp của hệ điều hành Windows, bắt đầu từ Windows 9x, lưu trữ thông tin cấu hình hệ thống cho người dùng, ứng dụng và thiết bị phần cứng Nó chứa dữ liệu quan trọng mà Windows tham khảo trong suốt quá trình hoạt động, bao gồm thông tin người dùng, ứng dụng đã cài đặt, loại tài liệu có thể tạo ra, thiết lập thuộc tính biểu tượng cho thư mục và ứng dụng, cùng với thông tin về phần cứng và cổng đang sử dụng.
Registry thay thế hầu hết các tệp văn bản ini trong Windows và các tệp cấu hình MS-DOS như Autoexec.bat và config.sys Dù Registry là chung cho các phiên bản Windows, vẫn tồn tại sự khác biệt giữa chúng Để truy cập Registry trong Windows, người dùng có thể mở menu Run và gõ lệnh regedit.
Nguyễn Thị Phương Thanh - Lớp CT901 12 cho biết rằng ý tưởng của Registry rất đơn giản, bao gồm nhiều thư mục, mỗi thư mục chứa các thư mục con và các mục thông tin (entry) Do đó, Registry có thể được xem như một hệ thống tệp tin, trong đó chứa nhiều tệp nhỏ.
Nó có nhiều thư mục và các entry
Windows gây nhầm lẫn khi gọi một thư mục là khóa (key) mà không có định nghĩa rõ ràng Các thư mục cấp cao nhất bắt đầu bằng chuỗi HKEY, có nghĩa là kênh điều khiển khóa (Handle to KEY) Việc đặt tên cho các thư mục con nên được cải thiện, mặc dù đôi khi không cần thiết.
Cuối cùng của cây phân cấp là các entry, hay còn gọi là các giá trị (value), chứa thông tin với ba thành phần chính: tên giá trị, kiểu giá trị và dữ liệu Tên giá trị thường là chuỗi Unicode, với giá trị mặc định là "default" nếu thư mục chỉ chứa một giá trị Kiểu giá trị có thể là chuỗi Unicode, danh sách chuỗi Unicode, số nguyên 32 bit, số nhị phân tùy ý, hoặc liên kết tượng trưng đến một thư mục hoặc entry khác trong registry Các liên kết tượng trưng tương tự như shortcut trong hệ thống file, cho phép một entry trỏ đến một entry hoặc thư mục khác, và cũng có thể được sử dụng làm khóa Windows có 6 khóa gốc (root key) quan trọng.
Nguyễn Thị Phương Thanh- Lớp CT901 13
Trong đó HKEY_LOCAL_MACHINE là khóa quan trọng nhất vì nó chứa tất cả thông tin về hệ thống hiện tại Nó có 5 khóa con Khóa con
HARDWARE chứa nhiều khóa con mô tả tất cả thông tin về phần cứng và chương trình điều khiển tương ứng
Khóa con SAM (Security Access Manager) lưu trữ thông tin quan trọng bao gồm tên người dùng, nhóm người dùng, mật khẩu và các tài khoản cần thiết để đảm bảo an toàn cho quá trình đăng nhập.
Khóa con SECURITY cung cấp thông tin quan trọng về chính sách bảo mật, bao gồm độ dài tối thiểu của mật khẩu và số lần đăng nhập sai được chấp nhận trước khi áp dụng các biện pháp bảo mật.
Khóa con SOFTWARE là khu vực trong Registry nơi nhà sản xuất lưu trữ thông tin riêng của họ Các lập trình viên thiết kế Registry để quản lý và phục hồi thông tin này khi gặp sự cố.
Khóa con SYSTEM lưu trữ thông tin quan trọng về quá trình khởi động hệ thống, bao gồm danh sách các chương trình điều khiển cần nạp và danh sách các dịch vụ cần khởi động cùng với cấu hình thông tin của chúng.
Khóa HKEY_USERS chứa thông tin về tiểu sử của tất cả người dùng
Các tùy chọn của người dùng là vùng các con số được lưu trữ ở đây
Khóa HKEY_CLASSES_ROOT quản lý các đối tượng COM và liên kết giữa phần mở rộng file với chương trình tương ứng, xác định chương trình nào sẽ mở loại file đó Tất cả thông tin về các phần mở rộng file và chương trình liên quan được lưu trữ trong khóa này.
Nguyễn Thị Phương Thanh- Lớp CT901 14
Khóa HKEY_CURRENT_CONFIG liên kết đến cấu hình phần cứng hiện tại, cho phép người dùng tạo ra nhiều cấu hình khác nhau Trong khi đó, khóa HKEY_CURRENT_USER trỏ đến người dùng hiện tại, giúp truy xuất dễ dàng các tùy chọn của họ Cả hai khóa này không bổ sung thông tin mới, mà chỉ tham chiếu đến những dữ liệu đã có sẵn.
Khóa HKEY_PERFORMANCE_DATA không thực sự tồn tại Mỗi khóa con trong khóa này là một liên kết trừu tượng đến một nơi nào đó trong registry
Registry đã sẵn sàng cho lập trình viên trên nền Win32, với các lệnh để tạo và xóa khóa cũng như lấy giá trị khóa Dưới đây là danh sách các lệnh hiệu quả nhất.
Hàm Win32 API Mô tả
RegCreateKeyEx Tạo một khóa registry mới
RegOpenKeyEx Truy cập đến khóa và điều khiển nó RegEnumKeyEx Liệt kê các khoá cấp dưới của khóa đang điều khiển
RegQueryKeyEx Tra cứu giá trị một khóa
Khi hệ thống tắt, thông tin registry được lưu trữ trong file hive tại thư mục \winnt\system\config Để đảm bảo tính nguyên vẹn và ổn định của hệ thống, việc cập nhật và sao lưu registry tự động là rất quan trọng Những thao tác cơ bản này giúp tránh lỗi và mất mát thông tin, vì khi mất dữ liệu trong registry, người dùng sẽ phải cài đặt lại toàn bộ phần mềm.
Nguyễn Thị Phương Thanh- Lớp CT901 15
Tổng quan về mạng Internet
Máy tính trước đây hoạt động độc lập, nhưng hiện nay chúng được kết nối với nhau thành mạng máy tính, cho phép giao tiếp dễ dàng giữa các thiết bị Mạng máy tính có thể bao gồm các kết nối cố định như cáp truyền mạng hoặc kết nối tạm thời qua cáp điện thoại và các phương thức truyền thông khác Quy mô mạng có thể nhỏ như LAN với vài máy tính và thiết bị, hoặc lớn hơn như WAN với nhiều máy tính trải rộng trên một khu vực địa lý rộng Mạng lớn nhất hiện nay chính là Internet.
Theo Microsoft, Internet là một mạng lưới toàn cầu kết nối các máy tính và gateway thông qua giao thức TCP/IP Tâm điểm của Internet là đường truyền dữ liệu tốc độ cao giữa các điểm mạng chính và máy chủ, bao gồm hàng ngàn hệ thống máy tính từ thương mại, chính quyền đến giáo dục Hiện nay, Internet cung cấp nhiều dịch vụ đa dạng như FTP, Telnet, E-mail và World Wide Web.
Bạn có thể gửi và nhận email từ bất kỳ đâu, miễn là cả người gửi và người nhận đều có địa chỉ email Web, hay còn gọi là WWW, là một tập hợp các trang dữ liệu HTML được lưu trữ trên các máy tính toàn cầu Hệ thống này hoạt động thông qua giao thức HTTP, kết nối mọi hệ thống thông tin trên Internet.
Nguyễn Thị Phương Thanh- Lớp CT901 16
FTP là một hệ thống quan trọng để truyền tải tệp giữa các máy tính qua Internet, cho phép chuyển các tệp có dung lượng lớn Hệ thống này chủ yếu được sử dụng để chuyển các dữ liệu mang tính cá nhân.
Telnet là một chương trình máy tính cho phép kết nối từ xa giữa hai máy tính Để sử dụng Telnet, người dùng cần có tên đăng nhập (username), mật khẩu (password) và địa chỉ của máy tính đích Hệ thống máy chủ cần được biết là UNIX để thực hiện kết nối hiệu quả.
Internet là một hệ thống mạng liên kết các máy tính, hoạt động trên nhiều hệ điều hành khác nhau như DOS, UNIX, WINDOWS và MACINTOSH Để các máy tính trong mạng Internet có thể kết nối và truyền dữ liệu, cần có các quy tắc chung gọi là giao thức mạng Giao thức mạng là tập hợp quy tắc về định dạng dữ liệu, phương thức gửi nhận, kiểm soát hiệu quả và chất lượng truyền dữ liệu, cũng như xử lý lỗi và sự cố Một số giao thức mạng phổ biến bao gồm TCP/IP, UDP, IPX/SPX, ARP và NetBIOS Trong số đó, TCP/IP nổi bật với tốc độ kết nối nhanh, tính tiện lợi, độ tin cậy cao và bảo mật tốt, hiện đang là giao thức duy nhất được sử dụng trên Internet.
Trong giao thức TCP/IP, mỗi máy tính có một địa chỉ IP duy nhất để xác định Để tránh trùng lặp địa chỉ, việc định tuyến giữa các node mạng được quản lý bởi trung tâm thông tin Internet (InterNIC), cơ quan này phân chia địa chỉ thành ba lớp (A, B, C) để kiểm soát tất cả các địa chỉ mạng trên Internet.
Nguyễn Thị Phương Thanh- Lớp CT901 17
Mỗi máy tính không chỉ có địa chỉ IP mà còn có một địa chỉ vật lý duy nhất gọi là địa chỉ MAC (Medium Access Control), nằm trên card mạng (Network Interface Card - NIC) Địa chỉ MAC bao gồm 12 ký tự hexa, thường được viết theo các định dạng như 123456789ABC, 123456-789ABC hoặc 12-34-56-78-9A-BC Trong đó, sáu ký tự đầu tiên xác định nhà sản xuất NIC, trong khi sáu ký tự còn lại là số seri của NIC.
Thuật ngữ Reverse Engineering được hiểu là quá trình khám phá nguyên lý hoạt động của thiết bị hoặc hệ thống thông qua phân tích cấu trúc, chức năng và hành vi của chúng Quá trình này thường tập trung vào một lĩnh vực cụ thể và thực hiện phân tích chi tiết nhằm tạo ra một thiết bị hoặc chương trình mới có khả năng thực hiện công việc tương tự mà không sao chép từ sản phẩm cũ.
Reverse Engine đối với phần mềm được định nghĩa là quá trình phân tích hệ thống nhằm tạo ra mô tả hệ thống ở mức trừu tượng cao hơn, còn được gọi là "Đi ngược quy trình phát triển phần mềm" Kết quả đầu ra của quá trình này là các giai đoạn thực hiện dưới dạng mã nguồn, được dịch ngược từ giai đoạn phân tích, tạo thành sự đảo ngược của mô hình thác nước truyền thống Trong quá trình này, phần mềm được phân tích dưới dạng nguyên bản mà không bị thay đổi Để ngăn chặn Reverse Engine và việc thiết kế lại các phần mềm độc hại, công nghệ chống can thiệp phần mềm (Software anti-tamper technology) đã được phát triển.
Nguyễn Thị Phương Thanh- Lớp CT901 18 quyền hoặc các hệ thống phần mềm lớn Trong thực tế, Reengieering và Reverse Engine được hợp nhất
Nguyễn Thị Phương Thanh- Lớp CT901 19
PHẦN MỀM GIÁN ĐIỆP
Một số định nghĩa về phần mềm gián điệp
Spyware là phần mềm có khả năng thực hiện các hành vi như quảng cáo, thu thập thông tin người dùng hoặc thay đổi cấu hình máy tính mà không có sự đồng ý của người sử dụng.
Spyware là phần mềm hợp pháp được thiết kế để giám sát hoạt động của máy tính và hành vi người dùng Nó có khả năng theo dõi các thao tác như gõ phím, lịch sử duyệt web, và tải lên thông tin nhạy cảm mà không cần sự đồng ý của người dùng.
Spyware là loại phần mềm độc hại chuyên thu thập thông tin từ máy tính mà người dùng không hay biết Những dữ liệu bị thu thập thường bao gồm hành vi gõ phím, thông tin xác thực, địa chỉ email cá nhân, dữ liệu từ các biểu mẫu trực tuyến và thói quen lướt web của người dùng.
Spyware can be categorized into several types, including Browser Hijackers, which take control of web browsers; Browser Toolbars, which add unwanted toolbars to browsers; Pop-up Advertisements that generate intrusive ads; Winsock Hijackers that manipulate network connections; Man-in-the-Middle Proxies that intercept communications; Ad-serving or Spyware Cookies that track user activity; and System Monitors and Dialers that manage system functions and initiate calls.
Khi máy tính bị nhiễm Spyware thường có các biểu hiện sau:
- Máy tính hoạt động chậm dần
Nguyễn Thị Phương Thanh- Lớp CT901 20
- Các popup quảng cáo xuất hiện khi bạn lướt Web
- Máy tính tự dưng quay số (để kết nối mạng) lúc nửa đêm và hóa đơn dịch vụ Internet tăng lên khổng lồ
- Khi nhập từ khóa tìm kiếm vào thanh tìm kiếm, một Website lạ chiếm quyền điều khiển việc tìm kiếm
- Nhiều Website mới được tự động thêm vào danh sách yêu thích
- Trang chủ bị chiếm đoạt và khi bị xóa bỏ đi nó vẫn trở lại như cũ
Do những tác hại nghiêm trọng của Spyware, nhiều công ty bảo mật đã tiến hành nghiên cứu và phát triển các công cụ nhằm phát hiện và loại bỏ các loại Spyware hiệu quả.
Vấn đề thu tin trên mạng Internet
Internet đã phát triển mạnh mẽ về quy mô và chất lượng dịch vụ, cho phép lưu trữ một khối lượng thông tin khổng lồ Hầu hết mọi tin tức và kiến thức của nhân loại đều có sẵn trên mạng Người dùng có thể dễ dàng khai thác thông tin qua các dịch vụ như Web và video Việc thu thập tin tức công khai trên Internet rất thuận tiện thông qua các trang web tin tức, hình ảnh, cũng như các trang của tổ chức và cá nhân Các công cụ tìm kiếm như Google, Yahoo Search và Microsoft giúp người dùng tìm kiếm thông tin liên quan một cách hiệu quả.
Ngoài việc thu thập thông tin công khai trên Internet, còn có những cá nhân và tổ chức với ý đồ thu thập thông tin bí mật Thông tin công khai trên Internet thường có độ chính xác thấp và không chuyên sâu Hơn nữa, các thông tin bí mật liên quan đến kinh doanh và an ninh quốc gia cần được bảo vệ chặt chẽ.
Nguyễn Thị Phương Thanh, học viên lớp CT901 21, nhấn mạnh rằng thông tin chi tiết về một cá nhân sẽ không bao giờ được công bố trên Internet Để thu thập những thông tin này, chỉ có thể áp dụng phương pháp thu thập bí mật.
Hack để thu tin
Quá trình phát triển của máy tính và phần mềm đã dẫn đến sự xuất hiện của nhiều lỗi chương trình và lỗ hổng bảo mật Hệ điều hành và các phần mềm có thể gặp phải các vấn đề bảo mật ở nhiều mức độ khác nhau, và điều này trở nên nghiêm trọng hơn khi máy tính được kết nối mạng Những kẻ tấn công có kiến thức về mạng có thể lợi dụng những lỗ hổng này để xâm nhập vào hệ thống máy tính mà người dùng không hay biết Sau khi thâm nhập, họ có thể thực hiện mọi thao tác như trên máy tính của mình, giám sát hoạt động của người dùng, thu thập thông tin nhạy cảm như mật khẩu, địa chỉ email và tài khoản tín dụng, cũng như chiếm đoạt dữ liệu trong máy tính.
Giới bảo mật hiện nay không ai không biết đến công cụ Metasploit của
HD Moore và các cộng sự đã phát triển Metasploit, một công cụ kiểm thử bảo mật được xây dựng bằng ngôn ngữ Ruby, kết hợp giữa Perl và C++ Công cụ này cung cấp nhiều tính năng như các công cụ phụ trợ và payload để khai thác lỗ hổng bảo mật Metasploit có khả năng tấn công các lỗ hổng trên hệ điều hành Windows XP Professional, bao gồm các lỗi như Metafile Escape(), SetAbortProc Code Execution, và Microsoft RPC DCOM Interface Overflow, cũng như các hệ điều hành khác như Linux và Sun Solaris, cùng với các ứng dụng như Oracle và MS SQL Server Khi kẻ tấn công thâm nhập vào hệ thống, họ có thể thực hiện các hành động độc hại như cài đặt mã độc.
Nguyễn Thị Phương Thanh - Lớp CT901 22 đề cập đến sự nguy hiểm của các phần mềm gián điệp như trojan và backdoor, cho phép kẻ tấn công dễ dàng thu thập thông tin từ máy tính bị xâm nhập Các phần mềm này có khả năng giám sát, tải lên và tải xuống dữ liệu, cũng như thay đổi cấu hình hệ thống Đặc biệt, bọn tội phạm đã phát triển kỹ thuật "thu chặn bàn phím" để ghi lại mọi thông tin nhạy cảm mà nạn nhân nhập vào Quá trình cài đặt phần mềm này diễn ra tự động và từ xa, khiến nạn nhân khó phát hiện Khi phần mềm hoạt động, mọi dữ liệu mà nạn nhân gõ trên bàn phím sẽ được gửi về cho kẻ xâm nhập qua Internet mà không bỏ sót bất kỳ ký hiệu nào.
Cài cắm phần mềm để thu tin
Hiện nay, hình thức tấn công mạng phổ biến nhất là lợi dụng các website để tải phần mềm độc hại (Malware) vào máy tính của nạn nhân Với việc Internet sử dụng IP động, các cuộc tấn công dựa vào địa chỉ IP trở nên khó khăn và dễ bị phát hiện Thay vào đó, kẻ tấn công tạo ra một website chứa mã độc và gửi địa chỉ này cho người dùng Khi người dùng truy cập vào website đó, máy tính của họ sẽ bị cài đặt phần mềm nguy hiểm, có khả năng thu thập dữ liệu và gửi về cho kẻ tấn công.
Một phương pháp tấn công đơn giản nhưng khó lường là kẻ tấn công trực tiếp tiếp cận và cài đặt phần mềm lên máy tính của nạn nhân để thu thập thông tin Với cách tấn công này, kẻ xâm nhập có nhiều lợi thế, không chỉ cài đặt phần mềm mà còn có thể cấu hình hệ thống máy tính theo ý muốn, từ đó dễ dàng truy cập trái phép từ xa.
Nguyễn Thị Phương Thanh- Lớp CT901 23
Virus máy tính
2.5.1 Định nghĩa và đặc trƣng
Virus máy tính là một loại chương trình hoặc mẫu chương trình được thiết kế đặc biệt, có khả năng tự nhân bản và sao chép vào các chương trình khác.
Chương trình Virus thường thực hiện các bước sau:
- Tìm cách gắn vào đối tượng chủ, sửa đổi dữ liệu sao cho virus nhận được quyền điều khiển mỗi khi chương trình chủ được thực thi
- Khi được thực hiện, Vius tìm kiếm những đối tượng khác, sau đó lây nhiễm lên những đối tượng này
- Tiến hành những hoạt động phá hoại, do thám…
- Trả lại quyền thi hành cho những chương trình chủ hoạt động như bình thường
Virus máy tính chỉ có thể lây nhiễm vào các đối tượng có khả năng thực thi như file chương trình (*.com, *.exe, *.bat), tài liệu văn bản Word, Excel, PowerPoint, hoặc các chương trình Java (*.class) Virus là chương trình có khả năng tự kích hoạt và lây lan trong hệ thống, làm thay đổi môi trường hoặc các chương trình đang thực hiện Thông thường, virus mang tính chất phá hoại, gây lỗi khi thực hiện chương trình, dẫn đến hỏng hóc dữ liệu không thể khôi phục và thậm chí có thể xóa bỏ chúng.
Nguyễn Thị Phương Thanh- Lớp CT901 24
Tính lây lan là đặc điểm quan trọng để xác định một chương trình có phải là virus hay không Virus máy tính tự động cài đặt và kích hoạt mà không cần sự cho phép của người dùng.
Tính phá hoại của virus là đặc điểm nguy hiểm nhất, bao gồm việc làm hỏng dữ liệu như ăn cắp và xóa thông tin, gây ra lỗi chương trình, cũng như phá hoại chương trình bằng cách format ổ cứng và xóa sạch BIOS, từ đó ảnh hưởng nghiêm trọng đến mạng máy tính.
Tính nhỏ gọn: Hầu hết Virus đều có kích thước rất nhỏ so với một chương trình bình thường: tronng khoảng 4KB trở xuống
Tính tương thích của virus máy tính rất quan trọng; một virus được phát triển cho một hệ thống nhất định thường không thể lây nhiễm sang hệ thống khác.
Virus mới thường kế thừa các ý tưởng và kỹ thuật từ những virus trước đó, có thể giữ nguyên hoặc được cải tiến và sửa đổi.
2.5.2 Các loại virus điển hình
There are various types of viruses that infect the Boot Sector on floppy disks, the Master Boot Record, and the Boot Record on hard drives, as well as the FAT (File Allocation Table), the Windows Registry, and data areas within the Windows operating system.
Nguyễn Thị Phương Thanh- Lớp CT901 25
Virus Boot chiếm quyền điều khiển máy tính ngay từ khi khởi động, trước khi bất kỳ hệ điều hành nào được nạp, vì vậy loại virus này không phụ thuộc vào hệ điều hành.
- Khả năng lây lan mạnh
Virus lây nhiễm dạng file thường xuất hiện dưới các định dạng như *.com, *.exe, và các file chứa mã giả như *.bat, *.doc, và *.xls Chúng ghi đè mã lệnh lên đầu file chủ, và khi chương trình chủ được thực thi, virus sẽ chiếm quyền điều khiển Sau khi thực hiện các hoạt động độc hại, virus có thể trả lại quyền điều khiển cho chương trình chủ.
Virus Macro là các chương trình độc hại lợi dụng lệnh macro trong Microsoft Word hoặc Excel Macro là các đoạn mã được lập trình bằng WordBasic hoặc VBA (Visual Basic for Application) nhằm tự động hóa các thao tác trong các ứng dụng Office.
Virus Macro lây lan qua các tập tin văn bản *.doc và bảng tính *.xls, kích hoạt khi mở bằng Microsoft Word hoặc Microsoft Excel, và có khả năng lây nhiễm sang các tập tin khác cùng định dạng.
- Rất đa dạng, phong phú, chủ yếu dựa trên tính năng sao chép các macro từ văn bản này sang văn bản khác mà ứng dụng hỗ trợ
Virus macro được thiết kế để tăng cường khả năng lây lan bằng cách lây nhiễm nhiều loại tài liệu khác nhau, bao gồm văn bản Word, bảng tính Excel, trang trình bày PowerPoint và dự án trong Microsoft Project.
Nguyễn Thị Phương Thanh- Lớp CT901 26
Virus thư điện tử là loại virus lây nhiễm qua email, sử dụng chương trình thư điện tử để phát tán Chúng thường được lập trình bằng các ngôn ngữ bậc cao như VBA hoặc Script.
- Có khả năng tự phát tán trên mạng
- Tốc độ lây lan nhanh
Kỹ thuật kích hoạt mã Script nhúng trong HTML cho phép virus gắn vào mã nguồn của thông điệp mà không cần file đính kèm, giúp Script được thi hành ngay khi người dùng mở thư.
Nguyễn Thị Phương Thanh- Lớp CT901 27
PHÂN TÍCH MỘT TRƯỜNG HỢP CỤ THỂ
Phân tích hiện trường
Để tiến hành phân tích và bảo toàn hiện trường, người phân tích cần lấy mẫu từ hệ thống đã cài đặt, đồng thời sao lưu nguyên vẹn ổ cứng của hệ thống Hiện nay, Norton Ghost là phần mềm sao lưu hệ thống phổ biến được sử dụng, cho phép sao lưu dữ liệu vào một ổ cứng mới, từ đó tạo ra mẫu để phân tích.
3.1.2 Tìm kiếm module gây nên hiện tƣợng nghi vấn
Nguyễn Thị Phương Thanh- Lớp CT901 28
Sau khi tiếp nhận và sao lưu hiện trường, người phân tích đã dựng lại hiện trường trên một máy tính khác để tiến hành nghiên cứu Đầu tiên, các chương trình quét Virus và Spyware được sử dụng để quét máy mà không diệt virus Kết quả cho thấy máy bị nhiễm nhiều loại virus, đặc biệt là hai file dpnclt.exe và itirclt.exe trong thư mục C:\WINDOWS\system32 bị nhiễm virus loại Trojan.Spy.Agent.M Tiếp theo, người phân tích đã tiến hành nghiên cứu hệ thống để tìm ra nguyên nhân gây ra hiện tượng nghi vấn.
Dựa vào hiện tượng sao chép dữ liệu từ USB flash disk, có thể suy luận rằng có một tác nhân nào đó đã thực hiện hành động này, và đó chính là thành phần thu tin.
Hệ thống thông thường tại thư mục C:\Program Files\Common Files\Microsoft Shared\MSInfo chỉ chứa một vài tệp mặc định và không có thư mục con nào.
Hệ thống đang nghiên cứu trong thư mục này xuất hiện các thư mục con lạ như MsDdac, MsDFsa và MsDLsa, trong khi các chương trình ứng dụng do người dùng cài đặt thường không tạo lập dữ liệu trong những thư mục này.
Nguyễn Thị Phương Thanh- Lớp CT901 29
Các thư mục trên không phải là thư mục của Windows, mà là những thư mục do chương trình cài cắm tạo ra để ngụy trang và lưu trữ dữ liệu thu thập được.
Người thực hiện đã sử dụng chương trình FileMon để giám sát truy cập file trong USB flashdisk Kết quả cho thấy dịch vụ svchost.exe của Windows đã sao chép các file từ thiết bị lưu trữ di động, đổi phần mở rộng của file và lưu vào một thư mục cụ thể.
C:\Program Files\Common Files\Microsoft Shared\MSInfo
Nguyễn Thị Phương Thanh- Lớp CT901 30
Như hình minh họa, ta có thể thấy svchost.exe đã đọc dữ liệu trong
USB flash disk tạo ra các thư mục tương tự như thiết bị trong thư mục MsDdac Sau đó, nó tạo ra các tệp có tên giống với các thiết bị lưu trữ trong USB, đồng thời tạo các thư mục với phần mở rộng khác nhau Cuối cùng, USB sẽ đọc từng tệp trong thiết bị và ghi vào các tệp tương ứng trong thư mục MsDdac.
Việc thay đổi phần mở rộng của file nhằm mục đích ngụy trang, giúp tránh sự phát hiện từ người dùng Thuật toán đổi tên này thực hiện bằng cách đọc mã ASCII từng ký tự trong phần mở rộng, cộng thêm 2 và chuyển đổi ngược thành ký tự mà không sử dụng modulo 26.
Sử dụng FileMon kiểm soát việc truy cập file
Hiện tượng cho thấy có một module nào đó được svchost.exe kích hoạt, tự động sao chép các file từ USB flash disk vào máy tính Để xác định module này, cần sử dụng các chương trình kiểm soát tiến trình chuyên dụng, vì Task Manager của Windows không đủ khả năng Một trong những công cụ hiệu quả là Process Explorer, cho phép theo dõi các tiến trình đang hoạt động và xác định các module mà chúng sử dụng Trong quá trình phân tích, cần đặc biệt chú ý đến các thông tin liên quan.
Nguyễn Thị Phương Thanh - Lớp CT901 31 có các module với phần mở rộng dll hoặc exe, nguồn gốc không rõ ràng và ngày tháng tạo lập khác nhau.
Vào tháng 8/2007, hiện tượng sao chép dữ liệu trong USB Flashdisk đã được ghi nhận, và người phân tích đã sử dụng chương trình Process Explorer để xác định các module lạ, bao gồm module mdidll.dll với ngày tạo lập 30/8/2007 và không có mô tả Việc xác định các module này rất dễ dàng nhờ vào tính năng popup của Process Explorer, cho phép người dùng xem đường dẫn đến module đang được phân tích.
Bài viết này tập trung vào việc phân tích module thu tin, cụ thể là file mdidll.dll, được cài đặt trong thư mục C:\WINDOWS\system32.
Để phân tích mã lệnh của module, người thực hiện cần tìm hiểu thông tin ban đầu như ngôn ngữ lập trình, môi trường, chương trình biên dịch và tình trạng mã hóa Sau đó, có thể sử dụng IDA và Olly Debug, hai chương trình hàng đầu trong lĩnh vực RE, trong đó IDA thường được đánh giá cao hơn Trong bài này, IDA Pro Advanced 5.2 (hỗ trợ cả 32 bit và 64 bit) và Olly Debug 1.10 được sử dụng để phân tích Bước đầu tiên là kiểm tra mdidll.dll bằng chương trình PEiD 0.93.
Kết quả thu được cho biết module này được lập trình bằng ngôn ngữ C++ trong môi trường Microsoft Studio 6.0 và không bị mã hóa
Nguyễn Thị Phương Thanh- Lớp CT901 33
Khi dùng RDG Packer Detector 0.5.7 để kiểm tra ở chế độ " Powerful
Medthod, allowing multi-dectection" ta được kết quả tương tự
Sau khi đã biết một số thông tin cơ bản về mdidll.dll, ta sử dụng IDA
Pro để tải vào và tự động phân tích module mdidll.dll
Nguyễn Thị Phương Thanh- Lớp CT901 34
Trong chương trình IDA có nhiều cửa sổ con (subview) như :
Trong số các subview của IDA, IDA View-A (hiển thị mã lệnh và lưu đồ) và String (hiển thị các xâu ký tự trong module) thường được chú ý nhiều nhất.
Thật vậy, khi chuyển sang subview String, ta tìm thấy nhiều xâu ký tự phù hợp với nhận định
Đánh giá, kết luận
- Hiện trường mà người phân tích thực hiện hoàn toàn giống với hiện trường thực, có hiện tượng tự động sao chép dữ liệu trong USBflashdisk vào thư mục :
Nguyễn Thị Phương Thanh- Lớp CT901 46
C:\Progrgam Files\Common Files\Microsoft Shared\MSInfo
Sau khi tiến hành kiểm tra và phân tích, kết luận cho thấy hệ thống nghiên cứu đã bị cài đặt phần mềm gián điệp nhằm thu thập thông tin bí mật từ thiết bị USB flash disk Phần mềm này bao gồm ba thành phần: thu thập thông tin, thông báo địa chỉ và khai thác lỗ hổng Tuy nhiên, trên máy tính chỉ phát hiện được hai thành phần, gồm module mdidll.dll và module itirclt.exe Cả hai phần mềm này được lập trình tinh vi với thuật toán phức tạp, sử dụng nhiều kỹ thuật mã hóa và ẩn dấu, không có thông tin trên Internet Phần mềm mdidll.dll không thể bị xóa và không bị phát hiện bởi các chương trình diệt virus, trong khi itirclt.exe có thể bị xóa nhưng sẽ tự tái tạo ngay lập tức.
Các phần mềm độc hại có thể được đóng gói vào thiết bị lưu trữ và cài đặt thủ công trên máy tính, hoặc thông qua dịch vụ Web và email khi người dùng truy cập vào các website, liên kết không an toàn hoặc email có tệp đính kèm chứa mã độc Việc cài đặt này là có chủ đích, không phải là hành động vô ý.
- Khi hoạt động, mdidll.dll phải tạo ra các thư mục MsDdac, MsDFsa và MsDLsa trong thư mục
You can check the installation date of software on your machine by examining the creation dates of folders and files located in C:\Program Files\Common Files\Microsoft Shared\MSInfo This allows you to determine when the software was installed and when it began collecting data.
Nguyễn Thị Phương Thanh- Lớp CT901 47
KINH NGHIỆM RÚT RA VÀ CÁC ĐỀ XUẤT
Kinh nghiệm rút ra
Việc thử nghiệm và phân tích các chương trình độc hại, đặc biệt là các phần mềm cài cắm, tiềm ẩn nhiều nguy cơ Đầu tiên, việc lấy mẫu cần phải giữ nguyên hiện trường, vì vậy sao lưu phải được thực hiện một cách cẩn thận Thứ hai, nếu môi trường phân tích không an toàn và không được kiểm soát chặt chẽ, chương trình có thể gây hại cho hệ thống và dẫn đến những hậu quả nghiêm trọng Do đó, việc nắm vững quy trình phân tích và xử lý các phần mềm cài cắm là vô cùng cần thiết.
4.1.1 Xây dựng môi trường phân tích
Trước khi xây dựng môi trường phân tích, cần quán triệt một số nguyên tắc sau:
- Sử dụng hệ thống chuyên dụng cho phân tích và không kết nối Internet
Hệ thống sử dụng cần được cách ly khỏi mạng máy tính và Internet để tránh lây nhiễm phần mềm mã độc Trước khi kết nối mạng, ổ cứng phải được định dạng hoàn toàn để xóa bỏ mọi phần mềm độc hại Không nên lưu trữ dữ liệu nhạy cảm trên hệ thống này, vì có khả năng bị đánh cắp hoặc hủy hoại Hệ thống chỉ nên được sử dụng như một phòng thí nghiệm phân tích mã độc, và việc sử dụng cho mục đích khác có thể gây ra nhiều rắc rối Luôn nhớ rằng, không bao giờ được kết nối mạng với hệ thống này.
Nguyễn Thị Phương Thanh, học sinh lớp CT901, đã sử dụng máy tính kết nối Internet để đảm bảo an toàn dữ liệu và ngăn chặn sự lây lan của các chương trình độc hại ra bên ngoài.
- Bản phân tích phải như hiện trường thật
Khi tiến hành phân tích, máy tính cần được xây dựng tương tự như hiện trường thực tế để đảm bảo độ chính xác cao nhất trong kết quả Người phân tích thường sử dụng hệ thống phần cứng thực và bản sao lưu của hiện trường để thực hiện phân tích, giúp tái tạo các yếu tố như phần cứng, phần mềm và kết nối mạng Tuy nhiên, trong trường hợp không thể sử dụng hệ thống thực, các chương trình tạo máy ảo cũng có thể được áp dụng để thực hiện phân tích.
Để phân tích và giữ nguyên hiện trường, người phân tích cần lấy mẫu từ hệ thống đã bị cài đặt Sau khi có mẫu, quá trình phân tích sẽ được tiến hành để xem xét hệ thống Các nhà phân tích thường sử dụng các công cụ quản lý tiến trình chuyên sâu, không phải là Task Manager của Windows, mà là các phần mềm như Process Explorer hay Security Task Manager Những công cụ này có khả năng phát hiện và hiển thị cả các tiến trình ngầm, các module mà tiến trình gọi đến, đường dẫn đến file thực thi, và mô tả của file, đồng thời đánh giá mức độ can thiệp của các tiến trình vào hệ thống Qua việc xem xét các tiến trình, dựa vào kinh nghiệm và đối chiếu với các chương trình liệt kê file khởi động của Windows, nhà phân tích sẽ tìm kiếm các dấu hiệu bất thường.
Nguyễn Thị Phương Thanh - Lớp CT901 49, trong quá trình phân tích mã độc, nhà phân tích cần xác định các tiến trình nghi vấn thông qua các công cụ như FileMon và RegMon để giám sát truy cập file và Registry Những công cụ này giúp theo dõi tiến trình nào đang thu thập, lưu trữ và gửi dữ liệu Đối với các chương trình kết nối mạng, nhà phân tích sử dụng các phần mềm quét mạng như Ethereal và Ettercap để kiểm tra cổng và lưu lượng mạng, từ đó xác định dịch vụ nào đang mở cổng và thông tin được gửi đi đâu.
Sau khi phát hiện các tiến trình nghi vấn, nhà phân tích sẽ rút trích các module và sử dụng các công cụ phân tích mã như IDA Pro và Olly Debug để nghiên cứu hành vi của chúng Nếu không thể đọc mã, các chương trình sẽ thông báo rằng module đã bị pack hoặc mã hóa, buộc nhà phân tích phải sử dụng các công cụ như PeiD và RPG Packet Detector để xác định phương pháp pack và mã hóa Khi có thông tin cần thiết, nhà phân tích sẽ áp dụng các chương trình unpack để lấy lại module chưa bị mã hóa Các module này sẽ được phân tích lại để xác minh hành vi của chúng trên hệ thống bị ảnh hưởng Cuối cùng, để đảm bảo tính chính xác của phân tích, nhà phân tích cần xây dựng mô hình các thành phần đã thu được và kiểm tra trạng thái của hệ thống.
Nguyễn Thị Phương Thanh- Lớp CT901 50 biểu hiện của hiện trường thì chứng tỏ các thành phần đó chính là thành phần gây ra biểu hiện bất thường
Sau khi phát hiện nhiều phương pháp xử lý các chương trình mã độc, nhà phân tích có thể dựa vào hành vi mà chương trình gây ra cho hệ thống để xây dựng quy trình gỡ bỏ hiệu quả.
Đề xuất
4.2.1 Giải pháp khắc phục hậu quả và bịt kín sơ hở
Máy tính và mạng máy tính đang trở thành nhu cầu thiết yếu trong xã hội hiện đại, mang lại nhiều lợi ích cho các hoạt động hàng ngày Tuy nhiên, sự gia tăng sử dụng cũng kéo theo nguy cơ bị tấn công thông tin từ các thế lực thù địch và kẻ xấu Với đặc thù của công nghệ, lỗ hổng an ninh vẫn tồn tại và trình độ kỹ thuật hiện tại chưa đảm bảo an toàn khi kết nối Internet Do đó, cần thiết phải đề xuất một số giải pháp nhằm khắc phục hậu quả và bảo vệ thông tin người dùng.
Cần quán triệt nghiêm túc quy chế sử dụng máy tính để kết nối Internet, đặc biệt là việc cấm các máy tính chứa thông tin cơ mật không được phép kết nối Internet Hơn nữa, việc đưa các thiết bị lưu trữ, đặc biệt là các thiết bị di động như USB, đĩa mềm và đĩa quang có chứa thông tin mật vào máy tính kết nối Internet là không được phép, do nguy cơ rò rỉ thông tin rất cao.
Khi sử dụng Internet, người dùng cần thận trọng với các email không rõ nguồn gốc và tránh truy cập vào các website hay liên kết không xác định để bảo vệ máy tính khỏi phần mềm độc hại Việc cài đặt và thường xuyên cập nhật phần mềm diệt virus, spyware, cùng với việc thiết lập tường lửa là rất quan trọng để đảm bảo an toàn trực tuyến.
Nguyễn Thị Phương Thanh- Lớp CT901 51
(firewall) để hạn chế các nguy cơ bị tấn công bởi các chương trình mã độc và hành vi tấn công từ bên ngoài
4.2.2 Phương án xử lý phần mềm cài cắm
Khi phát hiện phần mềm cài cắm thu thập thông tin bí mật, biện pháp an toàn và hiệu quả nhất là gỡ bỏ chúng để bảo vệ dữ liệu và ngăn chặn hành vi thu thập thông tin từ bên ngoài Quy trình gỡ bỏ phần mềm cài cắm đã được trình bày trong phân tích các thành phần thu thập và thông báo địa chỉ Khi hai thành phần này bị vô hiệu hóa, lỗ hổng để thu thập thông tin sẽ bị chặn hoàn toàn Thông thường, khi ý đồ thu thập thông tin bị phát hiện, các cơ quan đặc biệt nước ngoài sẽ tiến hành gỡ bỏ thành phần này.
Nguyễn Thị Phương Thanh- Lớp CT901 52