Rate this post

CORS là viết tắt của Cross-Origin Resource Sharing.

Là một tính năng cung cấp khả năng:

  • Một ứng dụng web để hiển thị tài nguyên cho tất cả hoặc domain hạn chế,
  • Một ứng dụng khách web để yêu cầu AJAX đối với tài nguyên trên domain khác không phải là domain nguồn.

Bài viết này sẽ tập trung vào vai trò của tiêu đề Nguồn gốc trong việc trao đổi giữa ứng dụng web và ứng dụng web.

Các bài viết liên quan:

Khái niệm về Origin Header Security attack

Origin Header Security attack là một loại tấn công trong lĩnh vực bảo mật web nhằm xâm phạm tính toàn vẹn và bảo mật của trường “Origin” trong tiêu đề HTTP request. Trường “Origin” chứa thông tin về nguồn gốc của yêu cầu HTTP, bao gồm giao thức, tên miền và cổng.

Trong một Origin Header Security attack, kẻ tấn công sẽ thay đổi hoặc giả mạo trường “Origin” trong yêu cầu HTTP. Điều này có thể được thực hiện bằng cách thay đổi giá trị của trường “Origin” trong tiêu đề request hoặc thông qua các phương thức khác như JavaScript hoặc các công cụ tùy chỉnh.

Tấn công này có thể dẫn đến những hậu quả nghiêm trọng. Kẻ tấn công có thể xâm nhập và kiểm soát tài khoản của người dùng khác, lợi dụng các quyền truy cập và kiểm soát hệ thống, thực hiện các hành động độc hại như thay đổi dữ liệu, xóa dữ liệu hoặc thực hiện các tương tác không hợp lệ.

Để phòng ngừa Origin Header Security attack, cần thực hiện các biện pháp bảo mật như kiểm tra và kiểm soát trường “Origin” để đảm bảo chỉ chấp nhận các giá trị hợp lệ. Ngoài ra, cần cập nhật và bảo mật hệ thống đảm bảo sự an toàn và tính toàn vẹn của ứng dụng web.

Công cụ phát hiện tấn công Origin Header Security attack giúp phát hiện các yêu cầu HTTP có chứa thông tin “Origin” không hợp lệ hoặc có dấu hiệu tấn công. Công cụ ngăn chặn và bảo vệ khỏi Origin Header Security attack giúp chặn và xử lý các yêu cầu độc hại hoặc không hợp lệ trước khi chúng tác động đến hệ thống.

Xem thêm Edge Server là gì

Cách hoạt động của Origin Header Security attack

Trong tấn công Origin Header Security, kẻ tấn công thực hiện các hành động để thay đổi hoặc giả mạo trường “Origin” trong yêu cầu HTTP. Điều này có thể được thực hiện thông qua các phương thức sau:

  1. Thay đổi trường “Origin” trong tiêu đề request: Kẻ tấn công có thể thay đổi giá trị của trường “Origin” trong tiêu đề của yêu cầu HTTP. Bằng cách này, họ có thể giả mạo thông tin về nguồn gốc của yêu cầu và tạo ra một giá trị “Origin” không hợp lệ hoặc gian lận.
  2. Sử dụng mã JavaScript: Kẻ tấn công có thể sử dụng mã JavaScript để thay đổi giá trị trường “Origin” trên trình duyệt của người dùng. Điều này có thể được thực hiện bằng cách thêm mã JavaScript độc hại vào trang web hoặc chèn mã thông qua các phương thức tương tác với trình duyệt, chẳng hạn như JavaScript injection.
  3. Các công cụ tùy chỉnh: Kẻ tấn công có thể sử dụng các công cụ tùy chỉnh hoặc công cụ mạng để thay đổi trường “Origin” trong yêu cầu HTTP. Các công cụ này cho phép kẻ tấn công thay đổi giá trị “Origin” theo ý muốn và gửi yêu cầu đã được sửa đổi đến máy chủ.

Mục tiêu của tấn công Origin Header Security là thay đổi hoặc giả mạo trường “Origin” để xâm nhập và kiểm soát các tài khoản người dùng khác, lợi dụng quyền truy cập không hợp lệ, hoặc thực hiện các hành động độc hại trên hệ thống.

Quy trình cơ bản bao gồm các bước bên dưới (yêu cầu / phản hồi HTTP mẫu đã được lấy từ Mozilla Wiki):

Bước 1: Máy khách web gửi yêu cầu lấy tài nguyên từ một Domain khác.

GET /resources/public-data/ HTTP/1.1
Host: bar.other
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1b3pre) Gecko/20081130 Minefield/3.1b3pre
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Referer: http://foo.example/examples/access-control/simpleXSInvocation.html
Origin: http://foo.example

[Request Body]

Máy khách web cho máy chủ biết miền nguồn của nó bằng cách sử dụng tiêu đề yêu cầu HTTP “Origin”.

Bước 2: Ứng dụng web phản hồi yêu cầu.

HTTP/1.1 200 OK
Date: Mon, 01 Dec 2008 00:23:53 GMT
Server: Apache/2.0.61
Keep-Alive: timeout=2, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: application/xml
Access-Control-Allow-Origin: *

[Response Body]

Ứng dụng web thông báo cho máy khách web về các domain được phép sử dụng tiêu đề phản hồi HTTP Access-Control-Allow-Origin. Tiêu đề có thể chứa một dấu ‘*’ để chỉ ra rằng tất cả các miền đều được phép HOẶC một domain được chỉ định để biểu thị domain được phép đã chỉ định.

Bước 3: Ứng dụng web xử lý phản hồi ứng dụng web.

Theo thông số kỹ thuật CORS W3C, tùy thuộc vào ứng dụng web (thường là trình duyệt) để xác định bằng cách sử dụng tiêu đề HTTP phản hồi ứng dụng web Access-Control-Allow-Origin, nếu ứng dụng web được phép truy cập dữ liệu phản hồi.

Lời nhắc: Bài viết này sẽ tập trung vào phía ứng dụng web vì đây là phần duy nhất mà chúng tôi có quyền kiểm soát tối đa.

Rủi ro ở đây là máy khách web có thể đặt bất kỳ giá trị nào vào tiêu đề HTTP yêu cầu Origin để buộc ứng dụng web cung cấp cho nó nội dung tài nguyên đích. Trong trường hợp là ứng dụng web Trình duyệt, giá trị tiêu đề do trình duyệt quản lý nhưng có thể sử dụng một “ứng dụng khách web” khác (như Curl / Wget / Burp suite /…) để thay đổi / ghi đè giá trị tiêu đề “Origin”. Vì lý do này, bạn không nên sử dụng tiêu đề Origin để xác thực các yêu cầu đến từ trang web.

Xem thêm header trong PHP là gì ?

Tác hại của Origin Header Security attack

Tấn công Origin Header Security có thể gây ra những tác hại nghiêm trọng cho hệ thống và người dùng, bao gồm:

  1. Đánh cắp thông tin cá nhân: Kẻ tấn công có thể sử dụng tấn công Origin Header Security để đánh cắp thông tin cá nhân của người dùng, chẳng hạn như tên đăng nhập, mật khẩu, thông tin tài khoản ngân hàng, thông tin thẻ tín dụng và các dữ liệu quan trọng khác.
  2. Tiến hành tấn công đánh cắp danh tính (identity theft): Bằng cách giả mạo trường “Origin”, kẻ tấn công có thể xâm nhập vào các tài khoản người dùng khác, chiếm đoạt danh tính của họ và thực hiện các hành động độc hại dưới danh nghĩa của người dùng đó.
  3. Thực hiện các hành động độc hại: Kẻ tấn công có thể sử dụng tấn công Origin Header Security để thực hiện các hành động độc hại trên hệ thống, như thay đổi dữ liệu, xóa hoặc tạo mới các tài khoản, thực hiện các giao dịch gian lận hoặc tấn công khác nhằm làm suy yếu hoặc kiểm soát hệ thống.
  4. Mở cánh cửa cho các tấn công khác: Tấn công Origin Header Security có thể tạo điều kiện thuận lợi cho các tấn công khác, chẳng hạn như Cross-Site Scripting (XSS) hoặc Cross-Site Request Forgery (CSRF), bằng cách thay đổi hoặc giả mạo thông tin “Origin” để làm lừa các cơ chế bảo mật của trình duyệt và máy chủ.

Tóm lại, tấn công Origin Header Security có thể dẫn đến việc đánh cắp thông tin, chiếm đoạt danh tính, thực hiện các hành động độc hại và làm suy yếu hệ thống. Do đó, việc bảo vệ chặt chẽ và áp dụng các biện pháp phòng ngừa là rất quan trọng để đảm bảo an toàn cho hệ thống và người dùng.

Xem thêm Kiểm tra lỗ hổng bảo mật Host Header Injection

Biện pháp phòng ngừa Origin Header Security attack

Để phòng ngừa tấn công Origin Header Security, bạn có thể áp dụng các biện pháp sau đây:

  1. Cập nhật và bảo mật hệ thống: Hãy đảm bảo rằng hệ thống và các thành phần của nó, chẳng hạn như trình duyệt, máy chủ web và ứng dụng, được cập nhật đầy đủ và áp dụng các bản vá bảo mật mới nhất. Điều này giúp giảm nguy cơ tận dụng các lỗ hổng đã biết để thực hiện tấn công.
  2. Kiểm tra và xác thực đầu vào: Đảm bảo rằng các dữ liệu người dùng được kiểm tra và xác thực cẩn thận trước khi sử dụng. Hạn chế việc chấp nhận dữ liệu không đáng tin cậy hoặc có thể gây lỗi, và áp dụng các phương pháp kiểm tra đầu vào chặt chẽ để ngăn chặn các ký tự đặc biệt và chuỗi nguy hiểm có thể tạo ra tấn công.
  3. Sử dụng các thư viện và framework an toàn: Sử dụng các thư viện và framework an toàn để xử lý các tác vụ liên quan đến dữ liệu người dùng, chẳng hạn như xác thực, xử lý và hiển thị. Đảm bảo rằng các thư viện và framework này có được cập nhật thường xuyên và tuân thủ các quy tắc bảo mật.
  4. Kiểm soát quyền truy cập: Áp dụng các biện pháp kiểm soát quyền truy cập chặt chẽ để chỉ cho phép các yêu cầu truy cập hợp lệ từ các nguồn đáng tin cậy. Sử dụng cơ chế xác thực và phân quyền để đảm bảo rằng chỉ có người dùng được ủy quyền mới có thể thực hiện các hoạt động quan trọng.
  5. Mã hóa và ký tự hóa dữ liệu: Sử dụng các phương pháp mã hóa và ký tự hóa dữ liệu quan trọng để ngăn chặn việc đọc và sửa đổi không ủy quyền từ các bên thứ ba. Sử dụng các thuật toán mã hóa mạnh mẽ và tuân thủ các tiêu chuẩn bảo mật được công nhận.
  6. Giám sát và ghi nhật ký: Thiết lập hệ thống giám sát và ghi nhật ký hoạt động để phát hiện các hoạt động bất thường và theo dõi sự kiện quan trọng. Điều này giúp phát hiện sớm các nỗ lực tấn công và đưa ra biện pháp phòng ngừa kịp thời.
  7. Đào tạo và nâng cao nhận thức bảo mật: Đào tạo nhân viên về các phương pháp tấn công phổ biến và cung cấp hướng dẫn về các biện pháp bảo mật cần thiết. Tăng cường nhận thức về bảo mật giúp nhân viên nhận ra các dấu hiệu và hành vi bất thường, từ đó thực hiện các biện pháp phòng ngừa hiệu quả.

Tóm lại, để phòng ngừa tấn công Origin Header Security, cần áp dụng các biện pháp bảo mật hệ thống, kiểm tra và xác thực đầu vào, sử dụng các thư viện và framework an toàn, kiểm soát quyền truy cập, mã hóa và ký tự hóa dữ liệu, giám sát và ghi nhật ký, đào tạo và nâng cao nhận thức bảo mật.

Xem thêm Kiểm tra bảo mật – Security Misconfiguration

Công cụ hỗ trợ phát hiện và ngăn chặn Origin Header Security attack

Dưới đây là một số công cụ hỗ trợ phát hiện và ngăn chặn tấn công Origin Header Security:

  1. OWASP ZAP (Zed Attack Proxy): OWASP ZAP là một công cụ kiểm tra bảo mật ứng dụng web miễn phí và mã nguồn mở. Nó cung cấp khả năng phát hiện các lỗ hổng bảo mật phổ biến, bao gồm cả các lỗ hổng liên quan đến Origin Header Security.
  2. Burp Suite: Burp Suite là một bộ công cụ kiểm tra bảo mật ứng dụng web phổ biến. Nó cung cấp các tính năng mạnh mẽ để phát hiện và kiểm tra các lỗ hổng bảo mật, bao gồm cả các tấn công liên quan đến Origin Header Security.
  3. ModSecurity: ModSecurity là một tường lửa ứng dụng web (WAF) mã nguồn mở và được sử dụng để ngăn chặn các tấn công web. Nó cung cấp các quy tắc và chức năng để phát hiện và ngăn chặn các tấn công liên quan đến Origin Header Security.
  4. Nmap: Nmap là một công cụ quét mạng và phát hiện lỗ hổng bảo mật. Nó có thể được sử dụng để kiểm tra cổng và phát hiện các lỗ hổng bảo mật liên quan đến Origin Header Security trên máy chủ.
  5. Security Headers: Security Headers là một trang web cung cấp công cụ kiểm tra các tiêu đề bảo mật trên một trang web cụ thể. Nó có thể được sử dụng để kiểm tra và xác định các lỗ hổng bảo mật liên quan đến Origin Header Security.
  6. Các công cụ phân tích giao thức: Các công cụ phân tích giao thức như Wireshark và tcpdump có thể được sử dụng để giám sát và phân tích lưu lượng mạng. Chúng có thể giúp phát hiện và phân tích các gói tin liên quan đến Origin Header Security.

Lưu ý rằng việc sử dụng các công cụ trên chỉ là một phần trong quá trình phát hiện và ngăn chặn tấn công Origin Header Security. Ngoài ra, cần áp dụng các biện pháp bảo mật hợp lý và tuân thủ các hướng dẫn bảo mật chung để bảo vệ hệ thống và ứng dụng của bạn khỏi các tấn công này.

Xem thêm Kiểm thử lỗ hổng bảo mật AJAX Security

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now