(Đã dịch) Siêu Não Hắc Khách (Hacker) - Chương 388: Người trung gian công kích
Tuy nhiên, Windows 3.1 cũng đã thiết kế quyền hạn khống chế, hơn nữa phân tầng hệ thống, nhưng phương diện này làm chưa tốt, thậm chí có thể nói là tương đối thô ráp.
Điều này cũng dễ hiểu, dù sao hệ thống mới ra mắt, hơn nữa lúc đó họ rất vội để đẩy nhanh tiến độ, ưu tiên thực hiện một số chức năng quan trọng. Đối với người dùng bình thường, hệ thống quyền hạn khống chế của họ đã đáp ứng được yêu cầu cơ bản.
Hệ điều hành Windows 3.x vốn không được phát triển như một hệ điều hành thực thụ. Họ có dòng Windows NT chuyên biệt, với quyền hạn khống chế hoàn thiện hơn nhiều, tính ổn định cũng được tăng cường đáng kể. Tuy nhiên, việc tùy chỉnh và sửa đổi hệ thống NT cũng khó khăn hơn. Nói chung, sử dụng trực tiếp hệ thống hiện tại vẫn thuận tiện hơn.
Hơn nữa, hệ thống Windows đều là mã nguồn đóng, nói trắng ra là phần mềm thương mại. Nếu muốn sử dụng, phải mua bản quyền. Việc họ đang sử dụng là vi phạm luật sở hữu trí tuệ, và Microsoft có thể khởi kiện. Tất nhiên, việc tòa án trong nước có thụ lý hay không lại là chuyện khác.
Hệ thống quyền hạn của Windows 3.1 tuy đơn giản, nhưng người dùng không được phép thao tác tầng hệ thống, vì sẽ đe dọa tính ổn định. Chỉ cần phá hỏng một cấu trúc dữ liệu quan trọng, hệ thống có thể sụp đổ.
Các thao tác ở tầng dưới cùng của hệ thống đều được thực hiện thông qua các hàm hệ thống được đóng gói trong SDK do Microsoft cung cấp. Các hàm này sẽ không tùy tiện thao tác dữ liệu quan trọng trong RAM, mà sẽ thực hiện các chức năng theo cách mà nhà phát triển hệ thống mong muốn.
Như vậy, vừa không ảnh hưởng đến tính ổn định và an toàn của hệ thống, vừa cho phép các nhà phát triển phần mềm ứng dụng đạt được chức năng mong muốn, đồng thời đơn giản hóa quy trình thao tác, giúp họ không cần quan tâm đến cơ chế vận hành tầng dưới, quả là một công ba việc.
Tất nhiên, không phải là người dùng không thể truy cập vào các thành phần của tầng hệ thống. Các loại virus Trojan muốn thực hiện chức năng của mình, phần lớn là lợi dụng sơ hở của hệ thống để đạt được quyền hạn vượt quá tầng người dùng.
Tuy nhiên, hệ thống của họ đã được tối ưu hóa kỹ lưỡng, các sơ hở thông thường về cơ bản đã được vá. Việc tìm ra một sơ hở như vậy là rất khó.
Vì vậy, khi Dư Ba nghe Lâm Hồng ba hoa chích chòe nói "Quyền hạn phải tự mình đi lấy, sẽ không tự động đưa tới cửa", không khỏi cười khẩy, phản bác:
"Ngươi nói dễ nghe đấy, có bản lĩnh ngươi bắt một cái xem sao?"
Dư Ba vẫn còn chút ý kiến với Lâm Hồng, dù sao chính anh ta đến mới khiến mọi người trong phòng thí nghiệm hoang mang, lo lắng công sức bao năm của mình bị phủ nhận. Hơn nữa, anh ta cũng không thích thái độ hời hợt của Lâm Hồng. Dù công ty của các anh tự biên soạn một hệ thống điều khiển, cũng không thể ăn nói lung tung như vậy chứ?
Họ đã đắm mình trong hệ thống này quá lâu, tự cho rằng mình hiểu rõ nó, chỉ kém những người đã phát triển hệ thống.
Anh ta biết quyền hạn phải tự mình đi lấy, chứ không tự động đưa tới cửa, nhưng nói thì dễ làm thì khó. Có những việc chỉ đứng nói thì không đau lưng. Anh ta đã thấy nhiều người như vậy rồi.
Dư Ba cho rằng Lâm Hồng muốn thể hiện mình trước mặt lãnh đạo, nên cố ý "làm màu".
Lâm Hồng nghe vậy, chỉ cười, không để bụng, mà nói với Tào Hưng Bình và Từ Trực Trung:
"Tình huống này tôi đã gặp trước đây. Rất nhiều Trojan và worm, chính là thông qua việc ghi đè các hàm tầng dưới của hệ thống để đánh cắp dữ liệu. Trong lĩnh vực an toàn hệ thống, có một thuật ngữ đặc biệt cho việc này, gọi là 'Tấn công người trung gian'."
Tấn công người trung gian là một phương thức tấn công vô cùng cổ xưa và hiệu quả trong giới hacker.
Nguyên lý cơ bản của nó là chèn một "thiết bị" tấn công vào đường truyền dữ liệu, từ đó đạt được mục đích tìm kiếm và đánh cắp dữ liệu.
Tình huống này giống như cắt một đoạn ống nước, sau đó nối vào một đoạn ống khác do mình điều khiển. Đoạn ống này sẽ không ảnh hưởng đến dòng chảy bình thường trong ống, nó chỉ quản lý dòng chảy. Khi phát hiện có một con cá đi qua, nó sẽ ghi lại thông tin này. Thậm chí, nó còn có một số chức năng kỳ diệu khác, ví dụ như thay con cá bằng một con lươn.
Mà hai đầu ống nước, vì không được thông báo, nên không biết những gì đã xảy ra với dòng chảy trong quá trình lưu thông.
Họ không biết con cá mình gửi đi đã bị người khác quản lý, thậm chí bị đánh tráo. Bên gửi cho rằng mình đã gửi một con cá, còn bên nhận thì cho rằng đối phương đã gửi một con lươn.
Trong lĩnh vực Internet, người trung gian thậm chí có thể là một chiếc máy tính. Người dùng A gửi thông tin cho người dùng B, nhưng thông tin lại bị đánh cắp và chạy đến máy tính C một vòng, mà người dùng A và B hoàn toàn không biết thông tin của mình đã bị nghe lén. Vì máy tính C chỉ sao chép và lưu trữ dữ liệu, hoàn toàn không sửa đổi thông tin, nên A và B rất khó phát hiện hành vi này.
Còn trong máy tính ngoại tuyến, tấn công người trung gian thường là tiếp quản một đoạn mã hoặc hàm số, tương đương với việc phủ thêm một lớp bên ngoài. Muốn truy cập nội dung thực, phải thông qua người trung gian này.
Siêu worm của Lâm Hồng thu thập dữ liệu trên thực tế cũng dựa trên nguyên lý này. Nhìn từ bên ngoài, hệ thống đã bị nhiễm và hệ thống ban đầu không có bất kỳ khác biệt nào, sẽ không ảnh hưởng đến dòng chảy dữ liệu bình thường, cũng sẽ không ảnh hưởng đến tính ổn định của hệ thống.
Mà hệ thống radar của họ hiện tại, rất có thể cũng như vậy. Có một thành phần nào đó đã tiếp quản một hàm hệ thống được sử dụng trong hệ thống của họ. Chỉ là, đối phương xử lý hàm tầng dưới đó không tốt, khiến họ không thể điều phối và sử dụng thành công hàm này, dẫn đến không có giá trị trả về.
Từ Trực Trung và Tào Hưng Bình nhìn nhau, sau đó Từ Trực Trung hỏi: "Tiểu Hồng, cậu có chắc chắn là nguyên nhân này không?"
Lời Lâm Hồng nói rất dễ hiểu, họ cũng nghe rõ.
Tuy nhiên, để chắc chắn, Lâm Hồng vẫn phải tự mình kiểm chứng.
"Vậy đi, nếu tiện, tôi sẽ dùng phương pháp của mình để kiểm chứng." Anh nói.
Từ Trực Trung suy nghĩ một chút rồi gật đầu đồng ý.
Theo hiệu lệnh của Tào Hưng Bình, Dư Ba đành phải nhường chỗ.
Lâm Hồng ngồi xuống, mở trình biên dịch, lập tức bắt tay vào biên soạn một công cụ nhỏ.
Công cụ này rất đơn giản, chỉ có một chức năng, đó là liên tục điều phối và sử dụng hàm số đó, sau đó sử dụng phương pháp dump RAM để lưu dữ liệu chỉ định trong RAM vào một tệp văn bản. Đồng thời, nó cũng giám sát kết quả trả về của hàm số đó.
Tiếp theo, Lâm Hồng lặp lại quy trình mà Dư Ba đã làm trước đó, khởi động lại, sau đó vào trạng thái ngủ đông, rồi khôi phục lại...
Một tệp mới đã được tạo.
Lâm Hồng sử dụng trình soạn thảo để mở nó, bắt đầu phân tích nội dung bên trong tệp văn bản.
Đứng sau Lâm Hồng, Dư Ba muốn xem anh ta làm trò gì, nhất thời có chút ngơ ngác.
Không biết Lâm Hồng cố ý hay sao, động tác của anh ta rất nhanh, viết mã như thể đã biên soạn vô số lần trong đầu, nhanh như chớp. Sau khi sửa một vài lỗi do sơ suất, công cụ nhỏ đã được viết xong. Toàn bộ quá trình không mất đến ba phút.
Dư Ba đứng phía sau nhìn chằm chằm không chớp mắt cũng không theo kịp bước tiến của anh ta. Tuy hiểu ý nghĩa đại khái, nhưng anh ta hoàn toàn không hiểu chi tiết, không biết đối phương biên soạn như vậy để làm gì.
Và khi nhìn thấy tệp văn bản được tạo ra cuối cùng, anh ta càng há hốc mồm, vì nội dung bên trong theo lý thuyết là không thể truy cập được, là dữ liệu RAM của tầng hệ thống.
"Điều này không thể..." Dư Ba còn muốn nói gì đó, nhưng lập tức ngậm miệng, vì sự thật đã bày ra trước mắt, anh ta còn nói không thể nào chẳng phải là nói nhảm sao?
Lâm Hồng nhanh chóng xem qua bản ghi, cuối cùng gật đầu nói:
"Quả nhiên. Bên trong có một chương trình ẩn, tiếp quản hàm số này."
Bản ghi trong tệp log cho thấy rất rõ ràng, khi vào trạng thái ngủ đông, hàm số trong RAM đã có sự thay đổi tương đối rõ ràng, dữ liệu cho thấy một hàm số mới đã bị ép vào stack.
Stack là một cấu trúc dữ liệu tương đối đặc biệt, đặc điểm của nó là "vào sau ra trước". Ví dụ, băng đạn là một cấu trúc stack điển hình. Khi nạp đạn, viên đạn được ép vào trước, khi bắn ra, viên đạn được nạp vào đầu tiên sẽ bị bắn ra cuối cùng.
Trong chương trình, các dữ liệu và biến trong hàm số cũng được "ép vào" và "bắn ra" theo một thứ tự nhất định.
Muốn quản lý sự thay đổi của hàm số, chỉ cần quản lý cấu trúc stack ở vị trí chỉ định là được. Dữ liệu mà Lâm Hồng dump ra từ RAM chính là nội dung bên trong stack.
Kết quả này khiến sắc mặt của ba người kia đều có chút thay đổi.
Điều này có nghĩa là, lời Lâm Hồng nói là chính xác, tầng dưới của hệ thống thực sự có một chương trình ẩn đang bí mật hoạt động, mà họ trước đây lại không hề hay biết.
Từ Trực Trung còn đỡ, đã có sự chuẩn bị tâm lý, còn Tào Hưng Bình thì sắc mặt trở nên vô cùng khó coi.
"Vậy tại sao khi khởi động ban đầu lại không có vấn đề này, mà chỉ khi vào trạng thái ngủ đông mới xuất hiện?"
Lúc này, Dư Ba đột nhiên chen lời hỏi, lúc này anh ta không còn tâm trí để đối phó với Lâm Hồng nữa.
"Đó là vì khi hệ thống khởi động, chương trình xác nhận của các anh được khởi động trước, sau đó đối phương mới khởi động, như vậy sẽ không bị ảnh hưởng, cả hai đều bình an vô sự. Nhưng khi vào trạng thái ngủ đông, chương trình xác nhận sẽ tạm dừng, khi khởi động lại, chương trình ẩn đã hoàn toàn tiếp quản toàn bộ hàm số. Có lẽ đối phương xử lý chỗ này không tốt, dẫn đến hai bên xung đột, chương trình xác nhận điều phối và sử dụng hàm số đó không thể trả về giá trị hợp lệ, mà các anh lại không phán đoán và xử lý giá trị trả về này, cuối cùng dẫn đến toàn bộ chương trình xác nhận sụp đổ." Dịch độc quyền tại truyen.free