TaxPinTaxPin

XÁC MINH BẢO MẬT

Xây dựng để an toàn — rồi kiểm thử như kẻ tấn công

Bảo mật của TaxPin không dừng ở “chúng tôi đã xây xong”. Chúng tôi nhiều lần cố phá nó từ góc nhìn của kẻ tấn công, và nhờ một đơn vị bên ngoài đánh giá độc lập.

Cách ly tenantLeo thang đặc quyềnVượt MFAChiếm lời mờiLạm dụng đăng kýXSS · khóa bí mậtBề mặt tấn công

Hai lớp xác minh

Chúng tôi kết hợp các đợt rà soát nội bộ tự tấn công chính mình với một đánh giá độc lập từ bên ngoài.

🧪

Rà soát đối kháng nội bộ

Các nhóm độc lập thăm dò mã nguồn bằng kịch bản tấn công thực tế qua nhiều vòng, và chặn các phát hiện ở tầng cấu trúc — cơ sở dữ liệu và máy chủ.

🛰️

Rà soát bên ngoài — AEGISonar

Đánh giá độc lập từ bên ngoài về bề mặt tấn công và lỗ hổng web của chúng tôi thông qua AEGISonar của WebEASM.

Rà soát đối kháng nội bộ — chúng tôi đã làm thế nào

Không phải “chúng tôi viết mã cẩn thận” — chúng tôi thực sự đã cố xâm nhập. Các nhóm độc lập dùng phương pháp khác nhau rà soát mã song song qua nhiều vòng, và mỗi phát hiện chỉ được xác nhận sau khi đã có những nỗ lực độc lập nhằm bác bỏ khả năng khai thác của nó.

Phương pháp của chúng tôi

Nhóm đa góc nhìnRLS và phân quyền (cách ly tenant), logic máy chủ (STRIDE), client và web (OWASP), và hồi quy dữ liệu/lưu trữ — bốn hướng rà soát cùng lúc từ các góc nhìn khác nhau.
Nhiều vòng lặp lạiKhông chỉ một lần, mà nhiều vòng rà soát → sửa → rà soát lại. Mỗi tính năng mới (tự đăng ký, thanh toán, dùng thử miễn phí) đều kích hoạt thêm một lượt.
Xác minh đối khángMỗi phát hiện đều bị nhiều người rà soát phản biện độc lập, nên chỉ những vấn đề thực sự khai thác được mới được xác nhận, còn những mục bị thổi phồng thì bị loại.
Sửa ở tầng cấu trúcKhông vá tạm — các phát hiện được chặn ở tầng cấu trúc: bảo mật cấp hàng (RLS), trigger và cổng kiểm soát phía máy chủ, kèm lịch sử rà soát và sửa lỗi được theo dõi.

Các kịch bản tấn công chúng tôi đã kiểm thử

Chúng tôi đã thực sự thử các đòn tấn công sau và xác minh rằng chúng bị chặn ở cấp cơ sở dữ liệu và mã máy chủ.

✓Vượt cách ly tenant

Cố đọc hoặc ghi khách hàng, tài liệu hay yêu cầu của văn phòng khác. Không chỉ thao tác đọc — thao tác ghi (INSERT/UPDATE) cũng bị ràng buộc với quan hệ văn phòng↔khách hàng và bị chặn.

✓Leo thang đặc quyền theo chiều dọc

Cố nâng từ nhân viên→chủ sở hữu hoặc khách hàng→thành viên văn phòng. Việc xác định vai trò và nhận lời mời được thực thi tại máy chủ và cơ sở dữ liệu.

✓Chiếm liên kết mời

Cố nhận lời mời bằng email không khớp. Email đăng nhập phải trùng với email được mời.

✓Vượt MFA

Cố truy cập dữ liệu chỉ bằng mật khẩu. Khi đã đăng ký yếu tố xác thực, cơ sở dữ liệu yêu cầu phiên aal2 (hai yếu tố).

✓Lạm dụng kênh chuyển tiếp thông báo/email và chèn liên kết lừa đảo

Cố chèn liên kết đăng nhập giả qua các đường gửi thông báo. Danh tính người gửi và tên miền liên kết được cố định theo giá trị tin cậy.

✓Lạm dụng luồng đăng ký

Gọi hàng loạt ẩn danh vào API đăng ký để làm sập dịch vụ hoặc chiếm trước địa chỉ của văn phòng. Bị chặn nhờ định tuyến qua máy chủ, giới hạn tần suất và ràng buộc với phiên thanh toán.

✓Lộ khóa bí mật, XSS, chuyển hướng mở

Kiểm tra xem khóa bí mật của máy chủ có lọt ra trình duyệt không, dữ liệu người dùng nhập có bị chạy như script không, và chuyển hướng có bị lạm dụng không.

✓Giả mạo webhook SMS đến

Cố giả mạo webhook đến để thay đổi trạng thái đồng ý nhận SMS. Bị chặn nhờ bắt buộc xác minh chữ ký.

Các vấn đề thực sự đã được xác nhận đều được chặn ở cấp chính sách cơ sở dữ liệu và mã máy chủ, phần lớn trước khi có khách hàng thật sử dụng.

Một giới hạn trung thực

Bảo mật là quá trình liên tục, không có điểm “xong”. Các đợt rà soát nội bộ của chúng tôi dựa trên phân tích tĩnh và kịch bản, được bổ sung bằng đánh giá bên ngoài của AEGISonar. Khi phục vụ nhiều khách hàng hơn, chúng tôi tiếp tục mở rộng kiểm thử. Thay vì tuyên bố hoàn hảo, chúng tôi chọn minh bạch về những gì đã xác minh và cách xác minh.

Rà soát bên ngoài — WebEASM AEGISonar

Chỉ rà soát nội bộ có thể để lại điểm mù, nên chúng tôi đã nhờ đánh giá độc lập từ bên ngoài. AEGISonar của WebEASM đã kiểm tra độc lập bề mặt tấn công lộ ra bên ngoài và các lỗ hổng web của chúng tôi.

5

Kết quả kiểm toán bên ngoài · Xếp hạng tổng thể 5 (Safe)

0 phát hiện Critical/High/Medium, SSL/TLS an toàn, 0 mối đe dọa từ liên kết ngoài — xem toàn bộ kết quả

→