Content Security Policy (CSP)

0
439
Csp là gì

Csp là gì

Video Csp là gì

chính sách bảo mật nội dung là gì?

Chính sách bảo vệ nội dung (csp) là một tiêu chuẩn bảo mật cung cấp một lớp bảo vệ bổ sung chống lại các cuộc tấn công mã hóa chéo trang (xss), clickjacking và các cuộc tấn công tiêm mã khác. đó là một biện pháp phòng thủ chống lại bất kỳ cuộc tấn công nào dựa vào việc thực thi nội dung độc hại trong ngữ cảnh web đáng tin cậy hoặc các nỗ lực khác nhằm phá vỡ chính sách cùng nguồn gốc.

với csp, bạn có thể giới hạn nguồn dữ liệu được ứng dụng web cho phép bằng cách xác định lệnh csp thích hợp trong tiêu đề phản hồi http.

tại sao chính sách bảo mật nội dung lại quan trọng?

giảm thiểu tập lệnh chéo trang

mục đích chính của csp là giảm thiểu và phát hiện các cuộc tấn công xss. xss khai thác lòng tin của trình duyệt vào nội dung nhận được từ máy chủ. trình duyệt của nạn nhân có thể gặp phải việc thực thi các tập lệnh độc hại vì trình duyệt tin cậy nguồn của nội dung.

csp cho phép quản trị viên máy chủ giảm hoặc loại bỏ khả năng kích hoạt xss của kẻ tấn công bằng cách chỉ định trình duyệt miền internet nào nên coi là nguồn tập lệnh thực thi hợp pháp. trình duyệt nhận biết csp chỉ thực thi tập lệnh chứa tệp nguồn được truy xuất từ ​​miền có trong danh sách cho phép và bỏ qua tất cả tập lệnh khác (bao gồm tập lệnh nội tuyến và thuộc tính xử lý sự kiện html)

Nhận dạng gói https và giảm thiểu thực thi

Ngoài việc đưa các miền vào danh sách cho phép mà trình duyệt có thể tải nội dung từ đó, các máy chủ cũng có thể chỉ định các giao thức được phép. ví dụ: máy chủ có thể chỉ định rằng các trình duyệt sẽ tải nội dung qua https.

Chính sách bảo vệ chuyển dữ liệu toàn diện không chỉ liên quan đến việc triển khai https trong truyền dữ liệu mà còn đánh dấu tất cả các cookie bằng thuộc tính bảo mật và tự động chuyển hướng các trang http sang https. Ngoài ra, các trang web có thể sử dụng các tiêu đề bảo mật truyền tải nghiêm ngặt http để đảm bảo rằng các trình duyệt chỉ kết nối với trang web thông qua các kênh được mã hóa.

ví dụ về tiêu đề csp

Máy chủ web có thể thêm tiêu đề http được gọi là chính sách bảo mật nội dung cho mỗi phản hồi. bạn có thể đặt các thuộc tính sau trong tiêu đề csp:

  • default-src: Một phương thức tùy chọn nếu không có thuộc tính nào khác được xác định. trong hầu hết các trường hợp, giá trị của thuộc tính này là của riêng nó, nghĩa là trình duyệt chỉ có thể tải tài nguyên từ trang web hiện tại.
  • script-src—các vị trí mà từ đó có thể tải các tập lệnh bên ngoài. nếu trang web hoặc ứng dụng của bạn không sử dụng tập lệnh phía máy khách, hãy đặt giá trị thành không.
  • img-src:các vị trí có thể truy xuất hình ảnh từ đó.
  • media-src:các vị trí mà từ đó có thể truy xuất đa phương tiện như video.
  • object-src: Các vị trí có thể truy xuất plugin từ đó.
  • manifest-src:các vị trí có thể truy xuất tệp kê khai ứng dụng.
  • tổ tiên của khung: Các vị trí mà từ đó một trang web khác có thể được tải bởi một khung, iframe, đối tượng, nhúng hoặc phần tử applet.
  • form-action—urls có thể được sử dụng như một phần của tác vụ trên <form> thẻ, có nghĩa là trình duyệt hạn chế nơi có thể gửi kết quả biểu mẫu. hành động biểu mẫu không trở về default-src, vì vậy đây là thuộc tính bắt buộc nếu bạn đang sử dụng các thành phần biểu mẫu trên trang web của mình.
  • loại plugin: Tập hợp các plugin có thể được gọi thông qua các đối tượng, nhúng hoặc applet, được xác định bởi các loại mime.
  • base-uri—cho phép các url trong thuộc tính src của bất kỳ thẻ nào.
  • Xem danh sách đầy đủ và cập nhật các thuộc tính mozilla.

    csp có thể ngăn chặn những lỗ hổng nào?

    Một thách thức chính mà csp có thể tránh được là những kẻ tấn công đang cố truy cập tài nguyên của bạn thông qua một giao thức không an toàn.

    Bạn có thể sử dụng csp để áp dụng giao thức https cho bất kỳ giá trị nào được xác định trong thuộc tính *-src, bằng cách thêm tiền tố https:// vào bất kỳ url nào trong danh sách trắng của bạn. theo cách này, tài nguyên sẽ không bao giờ được tải qua kết nối http không được mã hóa. bạn có thể đạt được hiệu quả tương tự bằng cách thêm thuộc tính block-all-mixed-content.

    ngoài ra, csp có thể ngăn chặn các lỗ hổng phổ biến sau:

    • hướng dẫn css nội tuyến không dấu trong <style> thẻ
    • javascript nội tuyến không dấu trong <script> thẻ
    • css động sử dụng cssstylesheet.insertrule()
    • mã javascript động sử dụng eval()
    • tốt nhất là giữ tập lệnh và css trong các tệp riêng biệt mà trang html tham chiếu. nếu trang web của bạn cần cho phép điều này, bạn có thể kích hoạt nó bằng cách sử dụng các từ khóa không an toàn-eval và không an toàn trong dòng.

      khi nào thì sử dụng csp

      nói chung, các ứng dụng web phức tạp nhạy cảm hơn với xss, vì vậy điều quan trọng là phải sử dụng csp.

      sử dụng csp cho bất kỳ ứng dụng nào quản lý dữ liệu nhạy cảm, chẳng hạn như giao diện người dùng quản trị, bảng điều khiển quản lý thiết bị hoặc bất kỳ sản phẩm nào lưu trữ tệp, tài liệu hoặc thư do người dùng tạo. trong các khuôn khổ hiện đại, việc thêm csp rất dễ dàng và có thể mang lại ROI cao về mặt bảo mật bổ sung.

      khi nào không sử dụng csp

      csp có thể không phải là lựa chọn tốt nhất trong những trường hợp sau:

      • ứng dụng tĩnh được lưu trữ trên tên miền hoặc tên miền phụ của riêng chúng mà không cần đăng nhập và cookie.
      • các ứng dụng đã từng trải qua xss trước đây hoặc đã biết các lỗ hổng bảo mật trong các mẫu hoặc khung mà chúng đang sử dụng. Trong trường hợp này, cách tiếp cận tốt nhất là đầu tư vào việc vá hoặc sửa chữa mã dễ bị tổn thương, bởi vì csp một mình sẽ không cung cấp đủ sự bảo vệ. csp nên được thêm vào bên trên một ứng dụng an toàn không có lỗ hổng đã biết.
      • thực thi chính sách bảo mật nội dung

        Cách tốt nhất để thêm csp trở về trước vào toàn bộ trang web là xác định một danh sách trắng hoàn toàn trống, về cơ bản là chặn mọi thứ. ban đầu, hãy chạy csp ở chế độ chỉ báo cáo, nghĩa là trình duyệt đánh giá các quy tắc nhưng vẫn không chặn nội dung.

        sau đó, bạn có thể xem lại lỗi và xem lỗi nào nên được thêm vào danh sách (được phép) hay không (không được phép).

        Phần khó là quyết định mức độ chặn. Ví dụ: nếu bạn đang sử dụng tập lệnh được lưu trữ qua một cdn và bạn cho phép các địa chỉ, thì bạn chấp nhận tất cả lưu lượng truy cập đến từ các cdn đó, có thể bao gồm cả lưu lượng truy cập độc hại.

        việc chạy csp ở chế độ báo cáo trong vài tuần hoặc nhiều nhất là vài tháng sẽ cung cấp cho bạn tất cả các trường hợp lỗi có thể xảy ra. khi bạn cảm thấy bộ quy tắc của mình nắm bắt được tất cả các trường hợp sử dụng có liên quan, chỉ tắt báo cáo và bắt đầu chặn các tài nguyên không có trong danh sách cho phép.

        bảo vệ xss với bảo mật ứng dụng impeva

        imperva cung cấp tính năng bảo vệ tập lệnh trên nhiều trang web nâng cao, sử dụng tường lửa ứng dụng web (waf), một giải pháp dựa trên đám mây cho phép lưu lượng truy cập hợp pháp và ngăn chặn lưu lượng truy cập xấu, bảo vệ các ứng dụng ở vùng ngoại vi.

        Ngoài khả năng bảo vệ xss, impeva cung cấp khả năng bảo vệ nhiều lớp để đảm bảo rằng các trang web và ứng dụng luôn sẵn có, dễ truy cập và an toàn. giải pháp bảo mật ứng dụng của impeva bao gồm:

        • bảo vệ khỏi ddos: Duy trì thời gian hoạt động trong mọi tình huống. ngăn chặn mọi kiểu tấn công ddos, ở mọi quy mô, ngăn chặn truy cập vào trang web và cơ sở hạ tầng mạng của bạn.
        • cdn: Cải thiện hiệu suất trang web và giảm chi phí băng thông với cdn được thiết kế cho nhà phát triển. lưu vào bộ nhớ đệm các tài nguyên tĩnh ở biên trong khi tăng tốc các trang web động và API.
        • <quản lý bot: Phân tích lưu lượng truy cập bot để xác định điểm bất thường, thực thi hành vi sai trái của bot và xác thực các cơ chế thách thức không ảnh hưởng đến lưu lượng người dùng.
        • api security – Bảo vệ apis bằng cách chứng minh rằng chỉ lưu lượng dự định mới có thể truy cập vào thiết bị đầu cuối api của bạn, cũng như phát hiện và ngăn chặn các hoạt động khai thác lỗ hổng.
        • Bảo vệ chiếm đoạt tài khoản – Sử dụng quy trình phát hiện dựa trên ý định để xác định và bảo vệ chống lại các nỗ lực chiếm đoạt tài khoản người dùng vì mục đích xấu.
        • rasp: Giữ an toàn cho ứng dụng của bạn từ bên trong trước các cuộc tấn công đã biết và tấn công zero-day. bảo vệ nhanh chóng và chính xác mà không cần chữ ký hoặc chế độ tìm hiểu.
        • Phân tích tấn công: Giảm thiểu và ứng phó với các mối đe dọa bảo mật thực sự một cách hiệu quả và chính xác bằng thông tin tình báo có thể hành động trên tất cả các lớp phòng thủ của bạn.

LEAVE A REPLY

Please enter your comment!
Please enter your name here