Bảo mật

Trang này nói cả những gì chúng tôi bảo vệ và những gì chúng tôi không thể. Một câu chuyện bảo mật bỏ đi vế thứ hai là lời mời người đọc nhầm một bản danh sách thành một lời bảo đảm.

Điểm xuất phát

Phát hành một gói nghĩa là chạy mã trên máy của mọi kỹ sư cài nó. Mọi quyết định bảo mật trong sản phẩm này đều được cân nhắc trước hết theo một câu hỏi: thay đổi này có làm cho việc phát hành trái phép dễ hơn không?

  • Gói được ký (ECDSA P-256)

    Tệp chữ ký đi bên trong gói. Thứ được ký là một bản kê chứa giá trị băm của từng tệp, danh tính gói và phiên bản — không phải một giá trị băm trần của kho nén.

    Nếu chỉ ký giá trị băm, một kho nén có chữ ký hợp lệ vẫn có thể được niêm yết dưới một số hiệu phiên bản mới: chữ ký vẫn đúng và người dùng cài một công cụ đã biết là có lỗ hổng như thể đó là “bản cập nhật”.

  • Khóa riêng KHÔNG nằm trên máy chủ

    Máy chủ chỉ xác minh. Việc ký diễn ra trên máy của chính người phát hành, bằng một công cụ riêng.

    Nếu khóa nằm trên máy chủ thì ai chiếm được máy chủ cũng có thể sửa gói rồi ký lại — và điều đó làm cho việc ký trở thành vô nghĩa.

  • Máy trạm cũng kiểm tra

    Add-in trên máy của kỹ sư kiểm tra chữ ký một cách độc lập, và danh sách khóa tin cậy mà nó dùng không đến từ máy chủ.

    Việc ký tồn tại chính vì không thể tin lời máy chủ. Lấy danh sách tin cậy từ chính máy chủ đó sẽ lặng lẽ hủy bỏ giả định ấy.

  • Nhật ký kiểm toán không thể xóa

    Mỗi lần phát hành, mỗi thay đổi quyền và mỗi quyết định về kênh đều được ghi vĩnh viễn. Không có đường sửa hay xóa, đó là chủ ý, và việc dọn dẹp theo thời hạn lưu trữ không đụng tới nó.

    “Công cụ này từ đâu đến đây” thường chỉ được hỏi sau đó nhiều tháng. Đến ngày ấy, một bản ghi có thể xóa được là một bản ghi chưa từng tồn tại.

  • Nguyên tắc bốn mắt, nếu bạn muốn

    Việc đưa một phiên bản sang kênh rộng hơn có thể đòi phê duyệt của quản trị viên thứ hai, và người đề nghị không được tự duyệt đề nghị của mình. Việc thu hồi thì không bao giờ cần phê duyệt.

    Mặc định nó tắt. Trong một đội ba người, chỉ vài tuần là cái cổng ấy biến thành một tin nhắn được duyệt mà không ai đọc; một chốt kiểm soát được tin là có bảo vệ trong khi thực ra không, còn tệ hơn là không có gì cả.

  • Giải nén một kho nén cũng là một bề mặt tấn công

    Các kho nén tải lên đều được kiểm tra chống vượt đường dẫn (zip-slip) và bom giải nén, và kích thước sau khi giải nén bị giới hạn.

    Giải nén một kho nén trông có vẻ vô hại. Một kho nén dựng sẵn có chủ đích có thể ghi tệp ra ngoài thư mục đích hoặc làm đầy ổ đĩa của máy chủ.

  • Đăng nhập không mật khẩu

    Người dùng đăng nhập bằng mã một lần gửi tới địa chỉ thư điện tử của họ. Phiên chạy trên một token ngắn hạn; token làm mới không bao giờ lộ ra cho mã chạy trong trình duyệt.

    Không có kho mật khẩu để quản lý thì cũng không có cơ sở dữ liệu mật khẩu nào để rò rỉ. Và việc dùng lại một token làm mới đã bị thu hồi được coi là dấu hiệu bị đánh cắp: phiên đó bị ngắt.

  • Bạn thấy được thứ mình đang cài

    Thư mục cài đặt kèm danh mục thành phần đọc được bằng máy (SBOM CycloneDX) và các tập lệnh di trú cho cả hai hệ cơ sở dữ liệu.

    Đội CNTT của bạn phải xem xét được thứ sắp đưa lên máy chủ trước khi nó được đưa lên. Khi một lỗ hổng thành phần được công bố, câu “chúng ta có dùng nó không” chỉ còn là một lần tìm tệp.

Những gì chúng tôi không thể bảo vệ

Đây không phải lỗ hổng, đây là giới hạn. Chúng là hệ quả của cấu trúc, và nói khác đi thì là nói dối.

  • Hai quản trị viên bắt tay nhau. Nguyên tắc bốn mắt chặn được một người, không chặn được hai.
  • Quản trị viên hệ thống của máy chủ. Với người có quyền vào cơ sở dữ liệu và hệ thống tệp, không chốt kiểm soát nào ở tầng ứng dụng là một trở ngại.
  • Máy tính đang giữ khóa ký. Khóa không nằm trên máy chủ, nhưng nó nằm ở đâu đó; nếu máy ấy thất thủ thì chữ ký cũng thất thủ.
  • Hành vi độc hại được giấu có chủ đích. Việc soi gói của chúng tôi chỉ là suy đoán theo dấu hiệu và chúng tôi không dám nói nó sẽ bắt được đoạn mã đang cố giấu mình.
  • Việc rút dữ liệu ra ngoài. Một công cụ đã cài chạy với chính quyền hạn của kỹ sư và đọc được mọi thứ mà quyền hạn ấy với tới. Thứ giới hạn điều đó là các chốt kiểm soát của hệ điều hành và của mạng, không phải sản phẩm này.
  • Độ an toàn của các bản sao lưu. Bản sao lưu cơ sở dữ liệu nằm trong tay bạn, và mọi thứ trong đó đáng giá đúng bằng hệ thống đang chạy.

Báo lỗ hổng bảo mật

Nếu bạn tìm ra một lỗ hổng, hãy viết cho chúng tôi. Chúng tôi coi trọng các báo cáo, không gạt người báo ra khỏi tiến trình xử lý, và báo lại cho bạn khi bản vá được phát hành.

security@ypcad.com