Gói tin (Packet) là một đơn vị truyền kỹ thuật số có độ dài hữu hạn (thường là vài chục đến vài nghìn Octet) bao gồm trường tiêu đề (Header) và trường dữ liệu (Data). Trường dữ liệu có thể chứa hầu như bất kỳ loại dữ liệu kỹ thuật số nào. Các trường tiêu đề truyền tải thông tin liên quan đến việc phân phối và giải thích nội dung gói. Thông tin này có thể, xác định nguồn hoặc đích của gói, xác định giao thức được sử dụng để diễn giải gói, xác định vị trí của gói trong chuỗi các gói, cung cấp tổng kiểm tra sửa lỗi hoặc hỗ trợ kiểm soát luồng gói.
Mã hóa (Encryption) là quá trình mã hóa một tin nhắn hoặc thông tin theo cách mà chỉ các bên được ủy quyền mới có thể truy cập nó. Bản thân mã hóa không ngăn cản sự can thiệp, nhưng từ chối nội dung dễ hiểu đối với người dùng trái phép. Về cơ bản, mã hóa là một hình thức để ẩn một tin nhắn để không cung cấp nội dung thực tế/nguyên bản của nó cho một bên trung gian không được phép biết tin nhắn/nội dung thực tế.
Trong lược đồ mã hóa, tin nhắn hoặc thông tin dự định, được gọi là bản rõ (Plain-Text), được mã hóa bằng thuật toán mã hóa, tạo ra văn bản mật mã (Cipher-Text) chỉ có thể đọc được nếu được giải mã. Vì lý do kỹ thuật, lược đồ mã hóa thường sử dụng khóa mã hóa giả ngẫu nhiên do thuật toán tạo ra. Về nguyên tắc, có thể giải mã tin nhắn mà không cần sở hữu khóa, nhưng, đối với lược đồ mã hóa được thiết kế tốt, cần có các tài nguyên và kỹ năng tính toán đáng kể, đôi khi, có thể mất một khoảng thời gian dài trong nhiều năm tính toán bằng cách sử dụng máy tính rất đắt tiền và mạnh mẽ, trong nhiều trường hợp, không khả thi hoặc không khả thi về mặt kinh tế. Nhưng mặt khác, người nhận tin nhắn được ủy quyền sở hữu khóa giải mã có thể dễ dàng giải mã tin nhắn bằng cách sử dụng khóa do người khởi tạo cung cấp.
Chương trình máy tính (Computer Program) còn được gọi là Ứng dụng phần mềm (Software Application) hoặc Mã thực thi (Executable Code), được định cấu hình để thực thi trong một hệ điều hành cụ thể và mã thực thi đó có thể được thực thi trong bất kỳ máy nào chạy hệ điều hành đó. Do đó, cho phép một chương trình đơn lẻ (tức là mã thực thi), được viết một lần và được thực thi trong bất kỳ máy nào chạy cùng một hệ điều hành. Đây là cơ chế hiện đang được sử dụng nằm trong cốt lõi của công nghệ máy tính, mà chúng ta sử dụng trong cuộc sống hàng ngày.
Chiếm quyền điều khiển trình duyệt (Browser Hijacking) bao gồm bất kỳ phần mềm độc hại (Malware) nào ghi đè lên công cụ tìm kiếm mặc định của trình duyệt hoặc định tuyến lại lưu lượng truy cập Web trên máy để thu hút lưu lượng truy cập đến một trang Web cụ thể. Các bên thứ ba có thể mua lưu lượng truy cập này hoặc tìm cách lây nhiễm Bootstrap (ví dụ: bằng cách hướng lưu lượng truy cập đến các Driver-by Download) hoặc cho các luồng doanh thu khác, chẳng hạn như quảng cáo hoặc lừa đảo sản phẩm.
Tài liệu tham khảo:
1. Grier, Chris & Ballard, Lucas & Caballero, Juan & Chachra, Neha & Dietrich, Christian & Levchenko, Kirill & Mavrommatis, Panayiotis & Mccoy, Damon & Nappa, Antonio & Pitsillidis, Andreas & Provos, Niels & Rafique, M Zubair & Rajab, Moheeb & Rossow, Christian & Thomas, Kurt & Paxson, Vern & Savage, Stefan & Voelker, Geoffrey. (2012). Manufacturing compromise: The emergence of exploit-as-a-service. Proceedings of the ACM Conference on Computer and Communications Security. 821-832. 10.1145/2382196.2382283.
Keylogger hay Keystroke Logger là một phần mềm hoặc thiết bị phần cứng dùng để theo dõi các phím trên bàn phím. Không thể phát hiện sự hiện diện của nó vì nó chạy ngầm và thông tin của nó không có trong danh sách các chương trình đang chạy trong trình quản lý tác vụ hoặc bảng điều khiển. Nó có thể được sử dụng để lấy thông tin rất bí mật như tên người dùng và mật khẩu trong trường hợp bạn đăng nhập vào tài khoản ngân hàng trực tuyến của mình.
Tài liệu tham khảo
1. M. Wazid et al., "A framework for detection and prevention of novel keylogger spyware attacks," 2013 7th International Conference on Intelligent Systems and Control (ISCO), Coimbatore, India, 2013, pp. 433-438, doi: 10.1109/ISCO.2013.6481194.
Dropper là một phần mềm độc hại được thiết kế để phân phối Malware đến máy tính hoặc điện thoại của nạn nhân. Dropper thường là Trojan, phần mềm độc hại được ngụy trang thành phần mềm hợp pháp hoặc phần mềm có ích cho người dùng. Ví dụ: Key Generator, Keygen.
Trong hầu hết các trường hợp, Dropper không thực hiện bất kỳ chức năng độc hại nào. Mục đích chính của Dropper là cài đặt các công cụ độc hại khác, cái gọi là Payload, trên thiết bị mục tiêu mà nạn nhận không phát hiện. Không giống như Downloader tải nhiều nội dung độc hại từ máy chủ của kẻ tấn công và không thông báo rõ ràng cho người dùng chính xác nội dung tải xuống, Dropper đã chứa sẵn chúng. Khi khởi chạy, nó trích xuất Payload và lưu vào bộ nhớ thiết bị. Dropper cũng có thể khởi chạy trình cài đặt Malware.
Payload của Dropper có thể chỉ chứa một phần mềm độc hại, hoặc chứa nhiều Malware. Các phần mềm độc hại trong Payload không nhất thiết phải được kết nối với nhau và có thể phục vụ các mục đích khác nhau. Chúng thậm chí có thể được phát triển bởi các nhóm tin tặc khác nhau. Chúng có thể chứa các tập tin vô hại nhằm che giấu việc cài đặt Malware.
Theo quy tắc, những Dropper mang theo các Trojan đã biết mà các tính năng bảo mật của thiết bị đích sẽ không phát hiện để chặn. Chúng cản trở việc phát hiện Malware ở giai đoạn tải xuống và vô hiệu hóa hệ thống phòng thủ trước khi cài đặt Payload của chúng. Cơ chế trung hòa phụ thuộc vào loại hệ điều hành mục tiêu. Ví dụ: Dropper cho Windows thường hủy kích hoạt kiểm soát tài khoản người dùng (UAC), nó chạy ngầm và thông báo xác nhận cho người dùng nếu một ứng dụng cố gắng thực hiện một hành động ảnh hưởng đến các thành phần hệ thống quan trọng.
Tài liệu tham khảo
Giao thức truyền siêu văn bản an toàn (Hypertext Transfer Protocol Secure - HTTPS) là một giao thức bảo mật được thiết kế như một phần mở rộng của HTTP để giao tiếp an toàn. HTTPS là một triển khai SSL/TLS trên HTTP. HTTPS cho phép dữ liệu được gửi bằng giao thức mã hóa (HTTPS), điều này lần lượt đưa ra ba tầng bảo vệ, tức là tính bảo mật, tính toàn vẹn và tính xác thực dữ liệu. HTTPS thường được hiểu là bảo mật hỗ trợ và không được triển khai phổ biến. Tuy nhiên, các trang Web nên triển khai HTTPS trên tất cả các trang bất kể nội dung và mức độ nhạy cảm của nó.
Theo mặc định, nhập tên miền không có https:// vào trình duyệt sẽ chuyển hướng người đung đến HTTP. Ví dụ: www.example.com gửi yêu cầu HTTP http://www.example.com. Do đó, các trang Web phải chuyển hướng trình duyệt sang https càng sớm càng tốt. Thông thường, điều này được thực hiện bởi các chuyển hướng HTTP, ví dụ: 301 vĩnh viễn, 302, 307 tạm thời. Tuy nhiên, bạn nên triển khai vĩnh viễn 301, vì nó cho phép các trình duyệt tôn trọng vĩnh viễn chuyển hướng HTTPS và cho phép các công cụ tìm kiếm liên kết đến phiên bản HTTPS của trang Web.
Tài liệu tham khảo
1. S. Sivakorn, P. Sirawongphatsara and N. Rujiratanapat, "Web Encryption Analysis of Internet Banking Websites in Thailand," 2020 17th International Joint Conference on Computer Science and Software Engineering (JCSSE), 2020, pp. 139-144, doi: 10.1109/JCSSE49651.2020.9268302.
Đánh cắp phiên (Session Hijacking) là việc khai thác một phiên máy tính hợp lệ. HTTP là một giao thức phi trạng thái, giới thiệu phiên với Cookie, một cập giá trị khóa được lưu trữ trong máy tính người dùng hoạt động như một con trỏ đến dữ liệu tương ứng được lưu trữ trong máy chủ. Điều này làm cho Cookie trở thành một thực thể bí mật và đây là nơi bảo mật. Session Hijacking được thực hiện bằng cách đánh cắp Cookie và mạo danh nạn nhân bằng cách có các giá trị đó (Cookie) trong một yêu cầu HTTP.
Tài liệu tham khảo
1. J. Joseph and S. Bhadauria, "Cookie Based Protocol to Defend Malicious Browser Extensions," 2019 International Carnahan Conference on Security Technology (ICCST), 2019, pp. 1-6, doi: 10.1109/CCST.2019.8888425.
Tấn công phát lại (Replay Attack) còn được gọi là Playback Attack, là một dạng tấn công mạng trong đó việc truyền dữ liệu hợp lệ được lặp lại hoặc trì hoãn một cách ác ý hoặc gian lận. Nó thậm chí còn trở nên nguy hiểm khi kẻ tấn công có thể kiểm soát dữ liệu bằng cách hủy và giả mạo dữ liệu hợp lệ trong quá trình vận chuyển. Replay Attack được thực hiện bằng cách đánh cắp yêu cầu HTTP và yêu cầu lập lại yêu cầu tương tự từ máy tính của kẻ tấn công. Điều này cũng bao gồm đánh cắp dữ liệu bí mật như Username, Password và mật khẩu băm.
4 cơ chế phòng thủ cuộc tấn công Replay Attack: Cách thứ nhất là cách tiếp cận dựa trên dấu thời gian (timestamp), trong đó máy chủ chỉ chấp nhận tin nhắn nếu nó nằm trong phạm vi thời gian được chấp nhận, từ chối các tin nhắn phát lại sau phạm vi thời gian đó. Nó dễ bị tấn công trong khung thời gian cho phép đó. Số thứ tự là một cách bảo vệ khác, chỉ định số thứ tự cho mỗi yêu cầu để yêu cầu của một số thứ tự cũ hơn sẽ không được máy chủ chấp nhận. Phương pháp này cũng gặp phải vấn đề khi kẻ tấn công chặn yêu cầu hợp pháp và gửi một yêu cầu bất hợp pháp với cùng số thứ tự. Cách thứ ba là phản hồi thử thách, theo đó máy chủ gửi một thử thách mà chỉ cso máy khách hợp pháp mới có thể tính toán nó. Bằng cách này, tin nhắn sẽ được làm mới và không thể được sử dụng lại. Cách cuối cùng là ghi nhật ký tin nhắn, trong đó máy chủ lưu tất cả các tin nhắn và nó kiểm tra từng tin nhắn xem nó có đến trước hay không. Nếu nó ở đó trong các tin nhắn đã nhận, máy chủ sẽ từ chối nó. Nó chiếm nhiều bộ nhớ và không thể được sử dụng trong các tình huống thực tế.
Một số tiêu chí để kiểm tra xem liệu một giao thức có thể bảo vệ việc phát lại và các cuộc tấn công song song được đề xuất. Sau đó, nó kiểm tra nhiều giao thức theo tiêu chí mà họ đưa ra. Tiêu chí dựa trên bốn lĩnh vực - tính mới của tin nhắn, tính đối xứng của tin nhắn, tin nhắn được ký không an toàn và bắt tay phản hồi thử thách. Nếu mỗi tin nhắn không có thành phần mới (fresh), Replay Attack có thể được thực hiện bằng cách khai thác ý tưởng rằng nó có thể được sử dụng lại. Tính đối xứng của các tin nhắn nằm ở khả năng tính toán của việc chuyển đổi mật mã tiếp theo từ một tin nhắn đã gửi. Nếu mã tin nhắn tiếp theo có thể được tính toán (đối xứng) hoặc buộc người dùng hợp pháp phải tính toán, thì kẻ tấn công có thể thực hiện một cuộc tấn công Replay Attack. Tin nhắn đã ký về bản chất là an toàn, nhưng nếu nó không có bất kỳ chức năng ràng buộc người dùng nào (chữ ký chung có thể được sử dụng bởi bất kỳ ai), kẻ tấn công có thể lấy chữ ký đó và mạo danh người dùng hợp pháp bằng cách sử dụng chữ ký bị đánh cắp này. Bắt tay phản hồi thử thách thường có một số bước và ít một bước phải dựa trên chuyển đổi mật mã liên quan đến danh tính của người dùng hợp pháp (người nhận), mà chỉ có người dùng hợp pháp mới có thể thực hiện. Nếu không đúng như vậy, kẻ tấn công có thể sử dụng các tin nhắn tương tự để xác thực một hệ thống mới sử dụng Cookie một lần của máy chủ trung gian đã được đề xuất để ngăn chặn việc chiếm quyền điều khiển phiên. Nhược điểm của hệ thống là nó cung cấp thêm chi phí cho máy chủ mới mà không thực sự bảo vệ khỏi bị chiếm quyền điều khiển phiên. Nếu kẻ tấn công có thể nắm giữ yêu cầu của người dùng hợp pháp (bằng các tiện ích mở rộng trình duyệt độc hại hoặc các cuộc tấn công cấp hệ thống), thì kẻ tấn công có thể sử dụng Cookie không sử dụng đó để chiếm quyền điều khiển phiên. Một giao thức bảo mật dựa trên Cookie, họ đề xuất một cách để tìm khóa cho mỗi Cookie, đó là băm của ID khách hàng, dữ liệu, ID phiên SSL và bí mật máy chủ. Nó đã được tuyên bố rằng nó cung cấp tính bảo mật tốt và phònh thủ chống lại cuộc tấn công Replay Attack, vì nó sử dụng ID phiên SSL để tìm khóa mã hóa. Mặc dù lược đồ này cung cấp tính bảo mật tốt và bảo vệ phát lại (cho phiên), nó không thể được sử dụng cho nhiều phiên.
Tài liệu tham khảo
1. J. Joseph and S. Bhadauria, "Cookie Based Protocol to Defend Malicious Browser Extensions," 2019 International Carnahan Conference on Security Technology (ICCST), 2019, pp. 1-6, doi: 10.1109/CCST.2019.8888425.
Bảo mật truyền tải nghiêm ngặt HTTP (HTTP Strict Transport Security - HSTS) là một tiêu đề (header) phản hồi HTTP cho phép các trang Web thông báo cho trình duyệt Web chỉ nối qua HTTPS mà không dựa vào chuyển hướng HTTPS từ phía máy chủ. Khi trang Web HSTS được truy cập qua HTTP, trình duyệt biết rằng trang Web có HTTPS và chuyển hướng nội bộ đến HTTPS theo tiêu đề Strict-Transport-Security, điều này có nghĩa là không có HTTP nào được gửi đi.
Nếu không có HSTS, khách truy cập có thể giao tiếp với phiên bản HTTP (không được mã hóa) của trang Web, Ví dụ: trước khi chuyển hướng HTTPS, các yêu cầu HTTP ẩn, chẳng hạn như yêu cầu HTTP từ nội dung hỗn hợp. Điều này tạo cơ hội cho các cuộc tấn công MITM, ví dụ: SSL Strip cũng như các cuộc tấn công chiếm quyền điều khiển phiên (Session Hijacking).
Một số nghiên cứu đã chứng minh các tình huống mà kẻ tấn công có thể vượt qua cơ chế HSTS. HSTS được kích hoạt qua cấu hình tiêu đề phản hồi HTTP. Tiêu đề phải được đặt bằng phản hồi HTTPS vì nó sẽ bị trình duyệt bro qua khi trang Web được truy cập bằng HTTP. Điều này là do kẻ tấn công có thể chặn các kết nối HTTP và đưa tiêu đề vào hoặc xóa nó.
Cấu hình HSTS được đề xuất:
- Max-age: Thời gian tính bằng giây mà trình duyệt sẽ buộc trang Web chỉ được kết nối HTTPS. Đây phải là bất kỳ giá trị nguyên dương nào. Thời lượng này sẽ được cập nhật khi tiêu đề Strict-Transport-Security mới được gửi đến trình duyệt. Không có khuyến nghị chính thức nào cho khoảng thời gian của max-age. Tuy nhiên, thời lượng max-age dài hơn sẽ làm giảm số lượng kết nối HTTP. Thiết lập mặc định phổ biến nhất là trong khoảng thời gian một năm (max-age: 3156000).
- IncludeSubDomians: là một chỉ thị tiêu đề tùy chọn. HSTS được đặt dựa trên miền phụ và miền được tìm thấy trong URL của trang Web. Ví dụ: khi người dùng truy cập vào trang Web https://www.example.com/foo với HSTS được bật, HSTS được bật trên bất kỳ trang nào được truy cập qua www.example.com. Tuy nhiên, HSTS không được bật trên các trang tên miền cấp cao hơn (example.com) và các trang trên tên miền phụ, ví dụ: bar.www.example.com. Với chỉ thị includeSubdomains, trình duyệt sẽ bật HSTS trên tất cả các miền phụ bất kỳ trang nào trên *.www.example.com. IncludeSubdomains được khuyến nghị vì nó sẽ thực thi HTTPS bất kỳ trang nào trên miền phụ. Khi có thể, includeSubdomains nên được đặt ở cấp độ tên miền (ví dụ: example.com) để bảo vệ tất cả các trang trên tên miền.
- Preload: là một chỉ thị tiêu đề tùy chọn khác. Chỉ thị này hiển thị được duy trì bởi Google. Với chỉ thị tải trước, HSTS được tải trước trong trình duyệt. Do đó, các trang Web tải trước HSTS sẽ không bao giờ được kết nối với HTTP. Để triển khai chỉ thị này một cách chính xác, trang Web cần phải nằm trong danh sách tải trước bằng cách đáp ứng tất cả các yêu cầu gửi bảo gồm có chứng chỉ hợp lệ, chuyển hướng HTTPS, tất cả các miền phụ qua HTTPS và tiêu đề HSTS có max-age ít nhất một năm, includeSubdomains và preload.
Tài liệu tham khảo
1. S. Sivakorn, P. Sirawongphatsara and N. Rujiratanapat, "Web Encryption Analysis of Internet Banking Websites in Thailand," 2020 17th International Joint Conference on Computer Science and Software Engineering (JCSSE), 2020, pp. 139-144, doi: 10.1109/JCSSE49651.2020.9268302.
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