Bảo mật Odoo
Với Odoo, không gì quan trọng hơn sự an toàn của bạn! Dưới đây là tóm tắt những gì chúng tôi thực hiện mỗi ngày để đảm bảo rằng dữ liệu của bạn được bảo mật với Odoo và chúng tôi áp dụng các biện pháp bảo mật tối ưu nhất trên phiên bản lưu trữ của mình: Odoo Đám mây.
CSA STAR Cấp 1
Odoo tham gia Chương trình Đảm bảo An ninh và Rủi ro (STAR) của CSA.
Xem câu trả lời của chúng tôi cho bảng câu hỏi CAIQv3.1
— Odoo Đám mây (nền tảng) —
Sao lưu/Khôi phục sau Thảm họa
- Chúng tôi giữ 14 bản sao lưu đầy đủ của mỗi cơ sở dữ liệu Odoo trong ít nhất 3 tháng: 1/ngày trong 7 ngày, 1/tuần trong 4 tuần, 1/tháng trong 3 tháng.
- Các bản sao lưu được sao chép tại ít nhất 3 trung tâm dữ liệu khác nhau, trên ít nhất 2 lục địa khác nhau.
- Vị trí thực tế của các trung tâm dữ liệu được nêu trong Chính sách bảo mật.
- Bạn cũng có thể tải xuống các bản sao lưu thủ công dữ liệu hiện tại của mình bất kỳ lúc nào bằng bảng điều khiển.
- Bạn có thể liên hệ với Bộ phận Hỗ trợ của chúng tôi để khôi phục bất kỳ bản sao lưu nào trong số đó trên cơ sở dữ liệu đang hoạt động của bạn (hoặc trên nhánh).
- Chuyển đổi dự phòng phần cứng: đối với các dịch vụ được triển khai trên kim loại trần, nơi có thể xảy ra lỗi phần cứng, chúng tôi tiến hành sao chép dự phòng nóng cục bộ, với quy trình giám sát và chuyển đổi dự phòng thủ công chỉ mất chưa đầy 5 phút.
- Phục hồi sau thảm họa: trong trường hợp thảm họa có ảnh hưởng toàn diện, với một trung tâm dữ liệu ngừng hoạt động hoàn toàn trong một thời gian dài, ngăn chặn việc chuyển đổi dự phòng sang chế độ dự phòng nóng cục bộ của chúng tôi (chưa từng xảy ra cho đến nay, đây là kế hoạch cho trường hợp xấu nhất), chúng tôi có các mục tiêu sau:
- RPO (Mục tiêu Điểm Phục hồi) = 24h. Điều này có nghĩa là bạn có thể mất tối đa 24 giờ làm việc nếu không thể khôi phục dữ liệu và chúng tôi cần khôi phục bản sao lưu hàng ngày gần nhất của bạn.
- RTO (Mục tiêu Thời gian Khôi phục) = 24 giờ đối với gói đăng ký trả phí, 48 giờ đối với bản dùng thử miễn phí, ưu đãi giáo dục, người dùng freemium,... Đây là thời gian để khôi phục dịch vụ ở trung tâm dữ liệu khác nếu xảy ra thảm họa và trung tâm dữ liệu ngừng hoạt động hoàn toàn.
- Điều này được thực hiện như thế nào: chúng tôi theo dõi sát sao các bản sao lưu hàng ngày và chúng được sao chép ở nhiều địa điểm trên các lục địa khác nhau. Chúng tôi đã tự động hóa quá trình cung cấp để triển khai các dịch vụ của mình ở một vị trí lưu trữ mới. Sau đó, việc khôi phục dữ liệu dựa trên các bản sao lưu của ngày hôm trước có thể được thực hiện sau vài giờ (đối với các cụm lớn nhất), các gói đăng ký trả phí được ưu tiên.
Chúng tôi thường xuyên sử dụng cả bản sao lưu và tập lệnh cung cấp hàng ngày cho các hoạt động hàng ngày, vì vậy cả hai phần của quy trình khắc phục thảm họa luôn được kiểm thử.
Bảo mật Cơ sở dữ liệu
- Dữ liệu khách hàng được lưu trữ trong cơ sở dữ liệu riêng - không chia sẻ dữ liệu giữa các khách hàng.
- Quy tắc kiểm soát truy cập dữ liệu quy định cách ly hoàn toàn giữa các cơ sở dữ liệu khách hàng chạy trên cùng một cụm, không thể truy cập từ cơ sở dữ liệu này sang cơ sở dữ liệu khác.
Bảo mật Mật khẩu
- Mật khẩu của khách hàng được bảo vệ bằng mã hóa PBKDF2+SHA512 theo tiêu chuẩn ngành (được thêm chuỗi ký tự ngẫu nhiên + kéo dài hàng nghìn vòng).
- Nhân viên Odoo không có quyền truy cập vào mật khẩu của bạn và không thể lấy lại mật khẩu cho bạn, tùy chọn duy nhất nếu bạn làm mất mật khẩu là đặt lại mật khẩu.
- Thông tin đăng nhập luôn được truyền an toàn qua HTTPS.
- Quản trị viên cơ sở dữ liệu khách hàng thậm chí còn có tùy chọn cấu hình giới hạn tốc độ và thời gian hồi chiêu cho các lần đăng nhập lặp lại.
- Chính sách mật khẩu: quản trị viên cơ sở dữ liệu có cài đặt tích hợp để yêu cầu độ dài mật khẩu người dùng tối thiểu. Theo mặc định, các chính sách mật khẩu khác như lớp ký tự bắt buộc không được hỗ trợ vì chúng đã được chứng minh là phản tác dụng. Xem ví dụ [Shay et al. 2016]), cũng như NIST SP 800-63b.
Quyền truy cập Nhân viên
- Nhân viên bộ phận hỗ trợ của Odoo có thể đăng nhập vào tài khoản của bạn để truy cập các cài đặt liên quan đến vấn đề hỗ trợ. Trong trường hợp này, họ sử dụng thông tin đăng nhập nhân viên đặc biệt của riêng họ, không phải mật khẩu của bạn (chỉ bạn biết mật khẩu của mình).
- Quyền truy cập nhân viên đặc biệt này giúp cải thiện tính hiệu quả và bảo mật: họ có thể tái tạo ngay vấn đề mà bạn đang gặp phải, bạn không bao giờ phải chia sẻ mật khẩu của mình, đồng thời chúng tôi có thể kiểm tra và kiểm soát các hành động của nhân viên một cách riêng biệt!
- Nhân viên Bộ phận Hỗ trợ của chúng tôi luôn cố gắng tôn trọng quyền riêng tư của bạn hết mức có thể và chỉ truy cập các tệp cũng như cài đặt cần thiết để chẩn đoán và giải quyết vấn đề của bạn.
Bảo mật Hệ thống
- Tất cả máy chủ Odoo Đám mây đang chạy các bản phân phối Linux cứng với những bản vá bảo mật mới nhất.
- Cài đặt chỉ được thực hiện khi cần thiết và ở mức tối thiểu để hạn chế số lượng dịch vụ có thể chứa lỗ hổng (ví dụ: không có ngăn xếp PHP/MySQL).
- Chỉ một số lập trình viên đáng tin cậy của Odoo mới có quyền quản lý máy chủ từ xa - và chỉ có thể truy cập bằng cách sử dụng cặp khóa SSH cá nhân được mã hóa, từ một máy tính có mã hóa đĩa toàn bộ.
Bảo mật Vật lý
Các máy chủ của Odoo Đám mây được lưu trữ tại những trung tâm dữ liệu đáng tin cậy ở nhiều khu vực khác nhau trên thế giới (ví dụ: OVH, Google Cloud) và tất cả trung tâm này phải vượt qua các tiêu chí bảo mật vật lý của chúng tôi:
- Phạm vi hạn chế, chỉ những nhân viên được ủy quyền của trung tâm dữ liệu mới có thể truy cập vật lý.
- Kiểm soát truy cập vật lý bằng huy hiệu bảo mật hoặc bảo mật sinh trắc học.
- Camera an ninh giám sát các vị trí trung tâm dữ liệu 24/7.
- Nhân viên an ninh túc trực 24/7.
An toàn Thẻ
- Chúng tôi không bao giờ lưu thông tin thẻ trên hệ thống của mình.
- Thông tin thẻ của bạn luôn được truyền trực tiếp và an toàn giữa bạn với công ty dịch vụ nhận thanh toán Tuân thủ-PCI của chúng tôi (xem danh sách trên Chính sách bảo mật ).
Mã hóa Dữ liệu
Dữ liệu của khách hàng luôn được truyền và lưu trữ ở dạng mã hóa (mã hóa khi truyền và khi lưu trữ).- Tất cả việc truyền thông dữ liệu với các phiên bản máy khách đều được bảo vệ bằng mã hóa SSL 256 bit (HTTPS) tiên tiến nhất.
- Tất cả việc truyền thông dữ liệu nội bộ giữa các máy chủ của chúng tôi cũng được bảo vệ bằng mã hóa (SSH) tiên tiến nhất.
- Các máy chủ của chúng tôi được theo dõi bảo mật nghiêm ngặt và luôn được vá các lỗ hổng SSL mới nhất, luôn được xếp hạng SSL Hạng A .
- Tất cả chứng chỉ SSL của chúng tôi đều sử dụng phân hệ 2048-bit mạnh mẽ với chuỗi chứng chỉ SHA-2 đầy đủ.
- Toàn bộ dữ liệu khách hàng (nội dung cơ sở dữ liệu và tập tin được lưu trữ) được mã hóa khi lưu trữ, cả trong production và các bản sao lưu (AES-128 hoặc AES-256)
Bảo vệ Mạng
- Tất cả các nhà cung cấp trung tâm dữ liệu mà Odoo Đám mây sử dụng đều có dung lượng mạng rất lớn và đã thiết kế cơ sở hạ tầng của họ để chống lại các cuộc tấn công Từ chối Dịch vụ Phân tán (DDoS) lớn nhất. Các hệ thống giảm thiểu tự động và thủ công có thể phát hiện và chuyển hướng lưu lượng tấn công ở rìa mạng đa lục địa của họ, trước khi có cơ hội làm gián đoạn tính khả dụng của dịch vụ.
- Tường lửa và hệ thống ngăn chặn xâm nhập trên máy chủ Odoo Đám mây giúp phát hiện và ngăn chặn các mối đe dọa như tấn công mật khẩu brute-force.
- Quản trị viên cơ sở dữ liệu khách hàng thậm chí còn có tùy chọn cấu hình giới hạn tốc độ và thời gian hồi chiêu cho các lần đăng nhập lặp lại.
— Odoo (phần mềm) —
Bảo mật Phần mềm
Odoo là phần mềm mã nguồn mở, vì vậy toàn bộ cơ sở mã liên tục được người dùng và cộng tác viên Odoo trên toàn thế giới kiểm tra. Các báo cáo lỗi của cộng đồng là một nguồn phản hồi quan trọng liên quan đến bảo mật. Chúng tôi khuyến khích các nhà phát triển kiểm tra mã và báo cáo các vấn đề bảo mật.
Quy trình Nghiên cứu & Phát triển của Odoo có các bước xem xét mã bao gồm những khía cạnh bảo mật, dành cho các đoạn mã mới và mã được đóng góp.
Thiết kế cho Bảo mật
Odoo được thiết kế để ngăn chặn hầu hết các lỗ hổng bảo mật phổ biến:
- Việc chèn SQL được ngăn chặn bằng cách sử dụng API cấp cao hơn không yêu cầu truy vấn SQL thủ công.
- Các cuộc tấn công XSS được ngăn chặn bằng cách sử dụng hệ thống tạo mẫu cấp cao tự động thoát khỏi dữ liệu được chèn.
- Khung ngăn chặn quyền truy cập RPC vào các phương thức riêng tư, khiến việc tạo ra các lỗ hổng có thể xâm nhập trở nên khó khăn hơn.
Xem thêm phần Các Lỗ hổng Hàng đầu OWASP để tìm hiểu cách Odoo được thiết kế ngay từ đầu để ngăn chặn các lỗ hổng như vậy xuất hiện.
Kiểm tra Bảo mật Độc lập
Odoo thường xuyên được kiểm tra bởi các công ty độc lập do khách hàng và khách hàng tiềm năng của chúng tôi thuê để tiến hành kiểm tra và kiểm thử thâm nhập. Đội ngũ Bảo mật Odoo nhận kết quả và thực hiện các biện pháp khắc phục thích hợp bất cứ khi nào cần thiết.
Tuy nhiên, chúng tôi không thể tiết lộ bất kỳ kết quả nào trong số đó, vì chúng được bảo mật và thuộc về những người được ủy quyền. Mong rằng bạn không cố gắng tìm hiểu về các kết quả này.
Odoo cũng có một cộng đồng rất tích cực gồm các nhà nghiên cứu bảo mật độc lập, những người liên tục theo dõi mã nguồn và làm việc với chúng tôi để cải thiện và tăng cường tính bảo mật của Odoo. Chương trình Bảo mật của chúng tôi được nêu tại trang Tiết lộ có Trách nhiệm .
Các Lỗ hổng Hàng đầu OWASP
Đây là cách Odoo được thiết kế để ngăn chặn các vấn đề bảo mật ứng dụng web hàng đầu, được liệt kê bởi Dự án Bảo mật Ứng dụng Web Mã nguồn Mở (OWASP):
-
Chèn Mã độc: Chèn mã độc, đặc biệt là chèn SQL, rất phổ biến trong các ứng dụng web. Quá trình chèn xảy ra khi dữ liệu do người dùng cung cấp được gửi tới trình biên dịch như một phần của câu lệnh hoặc truy vấn. Dữ liệu độc của kẻ tấn công đánh lừa trình biên dịch thực thi các lệnh ngoài ý muốn hoặc thay đổi dữ liệu.
Odoo dựa trên khung ánh xạ quan hệ đối tượng (ORM) trừu tượng hóa việc xây dựng truy vấn và ngăn chặn việc chèn SQL theo mặc định. Các nhà phát triển thường không tạo các truy vấn SQL theo cách thủ công, chúng được tạo bởi ORM và các tham số luôn được thoát đúng cách.
-
Tập lệnh Độc hại Cross Site Scripting (XSS): Lỗ hổng XSS xảy ra bất cứ khi nào một ứng dụng lấy dữ liệu do người dùng cung cấp và gửi dữ liệu này tới trình duyệt web mà không xác thực hoặc mã hóa nội dung đó trước. XSS cho phép kẻ tấn công thực thi các tập lệnh trong trình duyệt của nạn nhân, tập lệnh này có thể chiếm quyền điều khiển phiên làm việc của người dùng, đánh lừa trang web, có thể tạo ra sâu máy tính,...
Theo mặc định, khung Odoo thoát tất cả các biểu thức được hiển thị thành chế độ xem và trang, ngăn chặn XSS. Các nhà phát triển phải đặc biệt đánh dấu các biểu thức là "an toàn" để lồng thô vào các trang được hiển thị.
-
Giả mạo Yêu cầu Cross Site Request Forgery (CSRF): Một cuộc tấn công CSRF khiến trình duyệt của nạn nhân đã đăng nhập gửi một yêu cầu HTTP giả mạo, bao gồm cookie phiên làm việc của nạn nhân và mọi thông tin xác thực khác được tự động bao gồm, tới một ứng dụng web dễ bị tấn công. Điều này cho phép kẻ tấn công khiến trình duyệt của nạn nhân tạo yêu cầu mà ứng dụng dễ bị tấn công đó nhận diện đây là yêu cầu hợp pháp từ nạn nhân.
Công cụ trang web Odoo bao gồm cơ chế bảo vệ CSRF đã được tích hợp. Cơ chế này ngăn bất kỳ bộ điều khiển HTTP nào nhận yêu cầu POST mà không có token bảo mật tương ứng. Đây là kỹ thuật được đề xuất để phòng ngừa CSRF. Token bảo mật này chỉ được biết đến và hiển thị khi người dùng thực sự truy cập vào biểu mẫu trang web có liên quan và kẻ tấn công không thể giả mạo yêu cầu nếu không có token này.
-
Thực thi Tệp Độc hại: Mã dễ bị tấn công bởi quá trình bao gồm tệp từ xa (RFI) cho phép kẻ tấn công bao gồm mã và dữ liệu độc hại, dẫn đến các cuộc tấn công nghiêm trọng, chẳng hạn như xâm phạm toàn bộ máy chủ.
Odoo không hiển thị các tính năng để thực hiện quá trình bao gồm tệp từ xa. Tuy nhiên, người dùng được ưu tiên có thể tùy chỉnh tính năng bằng cách thêm các biểu thức tùy chỉnh. Hệ thống sẽ luôn đánh giá các biểu thức bằng môi trường sandbox và an toàn, chỉ cho phép truy cập vào các tính năng được phép.
-
Tham chiếu Đối tượng Trực tiếp Không an toàn: Tham chiếu đối tượng trực tiếp xảy ra khi nhà phát triển hiển thị tham chiếu đến một đối tượng triển khai nội bộ, chẳng hạn như tệp, thư mục, bản ghi cơ sở dữ liệu hoặc khóa, dưới dạng URL hoặc tham số biểu mẫu. Kẻ tấn công có thể thao túng các tham chiếu đó để truy cập các đối tượng khác một cách trái phép.
Odoo không triển khai kiểm soát quyền truy cập ở cấp độ giao diện người dùng, do đó không có rủi ro khi lộ tham chiếu đến các đối tượng nội bộ trong URL. Kẻ tấn công không thể phá vỡ lớp kiểm soát truy cập bằng cách thao túng các tham chiếu đó, vì mọi yêu cầu vẫn phải đi qua lớp xác thực quyền truy cập dữ liệu.
-
Lưu trữ Mật mã Không an toàn: Các ứng dụng web hiếm khi sử dụng đúng các tính năng mật mã để bảo vệ dữ liệu và thông tin đăng nhập. Những kẻ tấn công sử dụng dữ liệu được bảo vệ yếu để thực hiện hành vi trộm cắp danh tính và các hành vi phạm tội khác, chẳng hạn như gian lận thẻ thanh toán.
Odoo sử dụng hàm băm an toàn theo tiêu chuẩn ngành cho mật khẩu người dùng (theo mặc định là PKFDB2 + SHA-512, có kéo dài khóa) để bảo vệ mật khẩu được lưu trữ. Các hệ thống xác thực bên ngoài như OAuth 2.0 hoặc LDAP cũng có thể được sử dụng để tránh lưu trữ cục bộ mật khẩu người dùng.
-
Truyền thông Không an toàn: Các ứng dụng thường không mã hóa lưu lượng mạng khi cần bảo vệ các thông tin truyền thông nhạy cảm.
Odoo Đám mây chạy trên HTTPS theo mặc định. Đối với cài đặt tại chỗ, nên chạy Odoo sau máy chủ trang web thực hiện yêu cầu mã hóa và proxy cho Odoo, ví dụ như Apache, Lighttpd hoặc nginx. Hướng dẫn triển khai Odoo bao gồm một danh sách Bảo mật để triển khai công khai an toàn hơn.
-
Không Hạn chế Truy cập URL: · Thông thường, một ứng dụng chỉ bảo vệ chức năng nhạy cảm bằng cách ngăn hiển thị các liên kết hoặc URL cho người dùng trái phép. Kẻ tấn công có thể sử dụng điểm yếu này để truy cập và thực hiện các hoạt động trái phép bằng cách truy cập trực tiếp vào các URL đó.
Odoo không triển khai kiểm soát quyền truy cập ở cấp độ giao diện người dùng và bảo mật không dựa vào việc ẩn các URL đặc biệt. Kẻ tấn công không thể phá vỡ lớp kiểm soát truy cập bằng cách sử dụng lại hoặc thao túng bất kỳ URL nào, vì mọi yêu cầu vẫn phải đi qua lớp xác thực quyền truy cập dữ liệu. Trong một số ít trường hợp khi một URL cung cấp quyền truy cập trái phép vào dữ liệu nhạy cảm, chẳng hạn như các URL đặc biệt mà khách hàng sử dụng để xác nhận đơn đặt hàng, các URL này được ký điện tử bằng token duy nhất và chỉ được gửi qua email đến người nhận đã chỉ định.
Báo cáo Lỗ hổng Bảo mật
Nếu bạn cần báo cáo lỗ hổng bảo mật, vui lòng truy cập trang tiết lộ có trách nhiệm của chúng tôi. Các báo cáo này luôn được ưu tiên cao độ. Vấn đề sẽ được đội ngũ bảo mật của Odoo phối hợp với người báo cáo để đánh giá và giải quyết ngay lập tức, sau đó thông báo một cách có trách nhiệm cho khách hàng và người dùng của Odoo.