Code Injection là gì ?

Code Injection là gì ? 

Code Injection hay còn gọi là thực hành mã code từ xa (RCE) cho phép các kẻ tấn công giải phóng một mã độc nào đó là hệ quả của Code Injection. Tấn công bằng cách tiêm mã độc khác hoàn toàn so với Command Injection thông thường. Những kẻ tấn công có khả năng phụ thuộc vào sự giới hạn của phiên dịch viên cho server-side (ví dụ, PHP, Python…). Trong một số trường hợp, kẻ tấn công có khả năng leo thang từ Code Injection sang Command Injection.

Thông thường, Code Injection xảy ra khi mà ứng dụng đánh giá code mà không thông qua xác minh trước. Dưới đây là một ví dụ có lỗi Code Injection :

.picturemessage_lhyjjqt4.jn3

Dựa trên ví dụ trên, kẻ tấn công có thể sử dụng cấu trúc sau để thực thi mã PHP tùy ý. Kết quả là trang thông tin PHP sẽ được hiển thị như sau :

http://example.com/?code=phpinfo();

Thc hành lnh OS

Kẻ tấn công có thể làm leo thang lỗ hổng code injection thậm chí là xa hơn nhờ vào hoạt động hệ thống lệnh trên server một cách có chủ đích. Dựa vào ví dụ minh hoạ, kẻ tấn công có thể thực hành mã lệnh whoam1 shell bằng hàm system() trong PHP

Một khi kể tấn công có khả năng thực hành mã lệnh OS, hắn có thể cố gắng để sử dụng web shell hoặc cài đặt các phần mềm độc hại khác. Bắt nguồn từ đó, hắn thậm chí có khả năng tấn công các hệ thống khác từ bên trong.

Tìm li và cách phòng tránh Code Injection

May mắn thay, nó dễ dàng kiểm tra xem trang web hoặc ứng dụng web của bạn có dễ bị tấn công mã và các lỗ hổng khác hay không bằng cách chạy quét web tự động bằng trình quét lỗ hổng Acunetix. Hãy tải một bản demo và tìm hiểu thêm về việc chạy quét đối với trang web hoặc ứng dụng web của bạn.

Nếu bạn tìm ra các lỗ hổng Code injection, phương thức hiệu quả nhất để xoá bỏ chúng là tránh các phương thức đánh giá code bằng mọi giá trừ khi đó là điều thật sự cần thiết (giả sử khi mà bạn không nhận được cùng một kết quả mà không cần đánh giá code). Thông thường, đánh giá code mà chưa “user input” là cách nguy rất nguy hiểm và hầu như bạn luôn luôn gặp các rắc rối với nó. Có một mã lệnh mà giới chuyên môn gọi là “thần chú” cho ngôn ngữ PHP  là: “hàm eval() luôn là hàm chứa mã độc ”. Nếu đánh giá code là điều cần thiết, bạn nhất định phải dùng  “strong user input validation”. Điều đó yêu cầu càng nhiều sự hạn chế trong các dữ liệu không đáng tin cậy càng tốt. Hãy nhớ rằng những kẻ tấn công có thể sử dụng rất nhiều phương pháp để đi vòng qua các điều khoản “input validation”.