- Sản phẩm & Dịch vụSản phẩm & Dịch vụ
- Giải phápGiải pháp
- Bảng giáBảng giá
- Công tyCông ty
- Tài liệuTài liệu
vi
vi
Chuyên mục với các bài viết hướng dẫn, nghiên cứu và phân tích chi tiết về kỹ thuật, các xu hướng công nghệ mới nhất dành cho lập trình viên.
Senior Cybersecurity Expert
My passion is hunting down the latest attack trends—ransomware, APTs, you name it—while passing on knowledge to help businesses forge ironclad defenses. I’ve left my mark on data encryption projects and intrusion detection tools now widely used across Vietnam. I’m the shadow that strikes before the enemy does. @#@ Đam mê của tôi là nghiên cứu các xu hướng tấn công mới nhất như ransomware và APTs, đồng thời chia sẻ kiến thức để giúp doanh nghiệp xây dựng chiến lược phòng thủ hiệu quả. Tôi từng đóng góp vào các dự án mã hóa dữ liệu và phát triển công cụ phát hiện xâm nhập được sử dụng rộng rãi tại Việt Nam.
Thảo luận (0)
Đăng nhập để thảo luận
Remote Code Execution (RCE) vẫn luôn là chủ đề nóng của các anh em trong ngành bảo mật. Từ trải nghiệm cá nhân, mình cũng muốn “góp vui” chia sẻ 1 chút để những ai đang bắt đầu tìm hiểu về RCE sẽ có được cái nhìn đúng đắn. Trong bài viết này, mình sẽ nói về:
Mời anh em cùng đi vào tìm hiểu!

Remote Code Execution (RCE) là lỗ hổng bảo mật cho phép kẻ tấn công thực thi mã độc từ xa trên máy chủ hoặc ứng dụng. Nói dễ hiểu là, nếu hệ thống của anh em có lỗ hổng, attacker có thể đi lại, thực hiện hành động trong hệ thống mà không cần phải có mặt trực tiếp – như cài đặt phần mềm độc hại, khai thác dữ liệu nhạy cảm hay chiếm quyền điều khiển toàn bộ hệ thống.
RCE là nguyên nhân của nhiều vụ tấn công toàn cầu như WannaCry, NotPetya và các cuộc tấn công liên quan đến Log4Shell.
Có thể bạn quan tâm: Leo thang đặc quyền Linux
Anh em hãy hình dung như sau: attacker bắt đầu với reconnaissance (khảo sát toàn bộ bề mặt tấn công) để tìm ra các điểm yếu như API không được bảo vệ, các trường input không kiểm tra kỹ càng, hay các dịch vụ xử lý dữ liệu không an toàn. Quá trình này thường bao gồm:
Bài viết liên quan: SQL Injection testing
Các phương pháp khai thác Remote Code Execution phổ biến hiện nay có thể kể đến như:
| Phương pháp Khai Thác | Cơ chế hoạt động | Ví dụ / Công cụ / Kỹ thuật | Nhận xét / Ưu nhược điểm |
|---|---|---|---|
| 1. Injection Attacks (Command Injection) | Khi ứng dụng không thực hiện kiểm tra đầu vào chặt chẽ, attacker có thể chèn các lệnh hệ thống vào tham số truyền vào (ví dụ như trong URL hoặc form input) để thực thi. | Ví dụ: Sử dụng dấu chấm phẩy (;) để phân tách các lệnh, như ; rm -rf / trong lệnh shell. Công cụ hỗ trợ: Burp Suite (để thao tác và thử nghiệm injection). | Ưu điểm: Tấn công đơn giản, dễ thực hiện nếu thiếu kiểm tra đầu vào. Nhược điểm: Phụ thuộc vào lỗi kiểm soát input, có thể bị ngăn chặn nếu áp dụng whitelist và input sanitization. |
| 2. Deserialization Attacks | Khi ứng dụng deserialize dữ liệu mà không xác thực đầy đủ, attacker có thể gửi payload chứa các đối tượng độc hại, khiến mã độc được thực thi khi dữ liệu được giải mã. | Ví dụ: Sử dụng công cụ Ysoserial để tạo payload cho các ứng dụng Java hoặc PHP, từ đó kích hoạt reverse shell. | Ưu điểm: Có thể khai thác các hệ thống phụ thuộc vào quá trình serialization/deserialization. Nhược điểm: Phụ thuộc vào việc thiếu kiểm tra dữ liệu đầu vào và các biện pháp bảo vệ khi deserialize. |
| 3. Memory Corruption & Buffer Overflow | Lỗi bộ nhớ (như buffer overflow) cho phép attacker ghi đè lên vùng nhớ, từ đó chuyển hướng luồng điều khiển của chương trình. | Kỹ thuật: Sử dụng Return Oriented Programming (ROP) để vượt qua các biện pháp bảo vệ như DEP (Data Execution Prevention) và ASLR (Address Space Layout Randomization). Ví dụ: Exploiting một ứng dụng C/C++ để thực hiện buffer overflow. | Ưu điểm: Cho phép attacker chiếm quyền điều khiển hệ thống nếu không có biện pháp bảo vệ bộ nhớ hiệu quả. Nhược điểm: Phức tạp trong việc triển khai và phụ thuộc vào chất lượng của biện pháp bảo vệ bộ nhớ. |
| 4. Exploiting Dependencies | Khai thác lỗ hổng trong các thư viện bên thứ ba hoặc thành phần phần mềm đã được tích hợp sẵn trong hệ thống, từ đó lan truyền payload độc hại vào hệ thống của người dùng. | Ví dụ: Lỗ hổng Log4Shell trong thư viện Log4j, khi attacker chèn mã độc vào phiên bản phần mềm bị lỗi và người dùng cập nhật bản mới đã bị nhiễm payload. | Ưu điểm: Ảnh hưởng rộng rãi nếu nhiều hệ thống sử dụng cùng một thư viện bị lỗi. Nhược điểm: Kiểm soát khó khăn nếu phụ thuộc vào các nhà cung cấp bên ngoài và quy trình quản lý phụ thuộc không chặt chẽ. |
Mình từng sử dụng Metasploit để khai thác một lỗ hổng RCE trên môi trường lab. Payload reverse shell được tạo ra chỉ trong vài giây, cho thấy sự “điều khiển từ xa” thực sự có thể xảy ra nếu không có các biện pháp bảo vệ phù hợp.
Các cụ thường có câu “Phòng thủ tốt hơn chữa bệnh”, việc phòng ngừa và vá lỗ hổng kịp thời chắc chắn rất quan trọng. Chúng ta không thể chờ đến khi hacker thâm nhập vào hệ thống mới xử lý thì có thể đã có thiệt hại xảy ra rồi.
Không có giải pháp nào tuyệt đối, chỉ có sự chủ động và linh hoạt mới giúp chúng ta chống lại kẻ xâm nhập. Hãy luôn cập nhật kiến thức, kiểm tra bảo mật và chuẩn bị sẵn sàng các biện pháp phản ứng khi hệ thống có dấu hiệu bất thường.
Bối cảnh
Hậu quả
Bài học rút ra
Mình cho rằng nếu một thứ được cài đặt trong hệ thống mà bạn không thể kiểm soát hoàn toàn, đó luôn là một điểm yếu tiềm tàng.” Vụ Log4Shell là minh chứng rằng sự chủ động trong quản lý phụ thuộc và cập nhật bảo mật chính là chìa khóa để giảm thiểu rủi ro.

Bối cảnh
Hậu quả
Bài học rút ra
Việc duy trì một quy trình quản lý cập nhật chặt chẽ chính là lớp phòng thủ đầu tiên chống lại các cuộc tấn công tự động và lan rộng.

Kết luận
2 case study Log4Shell và EternalBlue & WannaCry đều minh họa cho mức độ nguy hiểm của lỗ hổng RCE và tầm quan trọng của việc quản lý phụ thuộc cũng như vá lỗi kịp thời. Qua đó, chúng ta càng phải quan tâm tới:
Hy vọng những chia sẻ này sẽ giúp anh em có thêm động lực và kiến thức để đối phó với các mối đe dọa RCE. Nếu anh em có thắc mắc hoặc kinh nghiệm nào muốn trao đổi, đừng ngần ngại chia sẻ nhé!
Mời bạn đọc thêm các bài viết trong series về Remote Execution của tôi: