Chủ đề thịnh hành
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.

kepano
Làm @obsdmd
Kể từ khi bắt đầu, chúng tôi đã cố gắng tránh các phụ thuộc trong Obsidian. Việc thêm một số tính năng sẽ mất nhiều thời gian hơn, nhưng điều này giảm thiểu rủi ro về các cuộc tấn công chuỗi cung ứng và mang lại cho chúng tôi nhiều quyền kiểm soát hơn về hiệu suất.

Obsidian00:51 20 thg 9
Ít hơn là an toàn hơn: cách Obsidian giảm thiểu rủi ro từ các cuộc tấn công chuỗi cung ứng
Các cuộc tấn công chuỗi cung ứng là những bản cập nhật độc hại lén lút xâm nhập vào mã nguồn mở được sử dụng bởi nhiều ứng dụng. Đây là cách chúng tôi thiết kế Obsidian để đảm bảo rằng ứng dụng là một môi trường an toàn và riêng tư cho những suy nghĩ của bạn.
Ít hơn là an toàn hơn
Có thể nghe có vẻ hiển nhiên nhưng cách chính mà chúng tôi giảm thiểu rủi ro từ các cuộc tấn công chuỗi cung ứng là tránh phụ thuộc vào mã của bên thứ ba. Obsidian có số lượng phụ thuộc thấp hơn so với các ứng dụng khác trong danh mục của chúng tôi. Xem danh sách các thư viện mã nguồn mở trên trang Credits của chúng tôi.
Các tính năng như Bases và Canvas được triển khai từ đầu thay vì nhập khẩu các thư viện có sẵn. Điều này cho phép chúng tôi kiểm soát hoàn toàn những gì chạy trong Obsidian.
- Đối với các chức năng tiện ích nhỏ, chúng tôi gần như luôn tái triển khai chúng trong mã của mình.
- Đối với các mô-đun trung bình, chúng tôi phân nhánh chúng và giữ chúng trong mã nguồn của mình nếu giấy phép cho phép.
- Đối với các thư viện lớn như pdf.js, Mermaid và MathJax, chúng tôi bao gồm các tệp đã biết tốt, khóa phiên bản và chỉ nâng cấp thỉnh thoảng, hoặc khi có bản sửa lỗi bảo mật. Chúng tôi đọc ghi chú phát hành, xem các thay đổi từ upstream và kiểm tra kỹ lưỡng trước khi chuyển đổi.
Cách tiếp cận này giữ cho đồ thị phụ thuộc của chúng tôi nông với ít phụ thuộc con. Một diện tích bề mặt nhỏ hơn làm giảm khả năng một bản cập nhật độc hại lọt qua.
Những gì thực sự được phát hành trong ứng dụng
Chỉ một vài gói là một phần của ứng dụng bạn chạy, ví dụ: Electron, CodeMirror, moment.js. Các gói khác giúp chúng tôi xây dựng ứng dụng và không bao giờ được phát hành cho người dùng, ví dụ: esbuild hoặc eslint.
Khóa phiên bản và tệp khóa
Tất cả các phụ thuộc đều được khóa phiên bản nghiêm ngặt và cam kết với một tệp khóa. Tệp khóa là nguồn thông tin chính xác cho các bản dựng để chúng tôi có được các cài đặt xác định. Điều này cung cấp cho chúng tôi một dấu vết kiểm toán đơn giản khi xem xét các thay đổi.
Chúng tôi không chạy các kịch bản postinstall. Điều này ngăn các gói thực thi mã tùy ý trong quá trình cài đặt.
Nâng cấp chậm, có chủ đích
Khi chúng tôi thực hiện cập nhật phụ thuộc, chúng tôi:
1. Đọc nhật ký thay đổi của phụ thuộc từng dòng một.
2. Kiểm tra các phụ thuộc con được giới thiệu bởi phiên bản mới.
3. So sánh upstream khi tập hợp thay đổi lớn hoặc rủi ro.
4. Chạy các bài kiểm tra tự động và thủ công trên các nền tảng và đường dẫn người dùng quan trọng.
5. Cam kết tệp khóa mới chỉ sau khi các đánh giá này vượt qua.
Trên thực tế, chúng tôi hiếm khi cập nhật các phụ thuộc vì chúng thường hoạt động và không yêu cầu thay đổi thường xuyên. Khi chúng tôi làm, chúng tôi coi mỗi thay đổi như thể chúng tôi đang lấy một phụ thuộc mới.
Thời gian là một khoảng đệm
Chúng tôi không vội vàng nâng cấp. Có một khoảng thời gian giữa việc nâng cấp bất kỳ phụ thuộc nào và phát hành. Khoảng cách đó hoạt động như một cửa sổ cảnh báo sớm: cộng đồng và các nhà nghiên cứu bảo mật thường phát hiện các phiên bản độc hại nhanh chóng. Khi chúng tôi sẵn sàng phát hành, hệ sinh thái thường đã đánh dấu bất kỳ bản phát hành nào có vấn đề.
—
Không có biện pháp nào có thể loại bỏ rủi ro chuỗi cung ứng. Nhưng việc chọn ít phụ thuộc hơn, đồ thị nông, khóa phiên bản chính xác, không có postinstall, và một nhịp độ nâng cấp chậm, nhiều đánh giá cùng nhau làm cho Obsidian ít có khả năng bị ảnh hưởng hơn, và cho chúng tôi một khoảng thời gian dài để phát hiện các vấn đề trước khi mã đến tay người dùng.
Nếu bạn tò mò về cách tiếp cận bảo mật rộng hơn của chúng tôi, hãy xem trang bảo mật và các cuộc kiểm toán trước đây của chúng tôi.

23,71K
Hàng đầu
Thứ hạng
Yêu thích