Skip to content

Security

Trang chủ của Security. Các control bên dưới đã tồn tại nhưng được tài liệu hoá rời rạc theo từng control. Trang này là mục lục, góc nhìn ranh giới tin cậy, bản đồ PII / PDPD, và danh sách các mục cần siết. Đây là điểm vào Security trong hướng dẫn theo vai trò.

Ranh giới tin cậy

  • Biên: TLS tại gateway; mỗi service verify token ES256 qua JWKS - identity là issuer, các service khác verify.
  • Cô lập tenant: mỗi request mang x-merchant-id; Casbin giới hạn phân quyền trong domain của merchant đó.
  • Secret: SealedSecret controller giải mã thành K8s Secret lúc chạy; config app qua APP_ENV_*.
  • Toàn vẹn HĐĐT: credential nhà cung cấp mã hoá AES-256-GCM; hoá đơn ký Ed25519 / PKCS#7.

Control - mỗi cái nằm ở đâu

MảngControlTham chiếu
Xác thựcJWKS ES256 đăng nhập, đăng ký, đổi mật khẩuidentity/authentication
Phân quyềnCasbin RBAC, domain per-merchant, role theo priorityidentity/casbin-authorization
SecretSealedSecret + env configinfrastructure/configuration
NetworkNetwork policy / Cilium, ingressinfrastructure/networking
HardeningSiết pod / clusterinfrastructure/security-hardening
CryptoMã hoá credential per-merchant, ký hoá đơninvoice/domain-model
Toàn vẹn webhookX-Webhook-Signature HMAC-SHA256Hợp đồng IPN VNPAY

Dữ liệu cá nhân (PII) & Nghị định 13/2023 (PDPD)

BANA xử lý dữ liệu cá nhân nên Nghị định 13/2023/NĐ-CP áp dụng. Kiểm kê (mục xác nhận chưa verify theo code):

Dữ liệuỞ đâuBảo vệNghĩa vụ PDPD
Tên · SĐT · email kháchidentity / customerxác nhậnđồng ý · lưu trữ · xoá
Hồ sơ nhân viênidentity / employeecó kiểm soát truy cậpđồng ý · tối thiểu quyền
Đăng nhập (username + credential)identityscheme credential - xem authenticationpolicy mạnh (xem mục cần siết)
MST người muainvoice / taxlưucăn cứ hợp pháp: thuế
Device fingerprintdevice / signalxác nhậnđồng ý · rủi ro riêng tư (đã flag)
Credential nhà cung cấp thanh toánpaymentmã hoá AES-256-GCMtối thiểu hoá dữ liệu

Lỗ hổng lớn nhất: chưa có thiết kế đồng ý / lưu trữ / xoá, chưa có luồng yêu cầu của chủ thể dữ liệu, chưa có chính sách phân loại dữ liệu theo field. Thuộc Security + Pháp lý.

Audit log

Sự kiện liên quan bảo mật cần audit được: đăng nhập / đăng xuất, cấp / thu quyền, đổi role, giải mã credential, ký & phát hành hoá đơn, vô hiệu hoá thiết bị.

Hiện trạng: mâu thuẫn giữa các trang (một trang ghi lưu 10 năm, trang khác hoãn audit sang Giai đoạn 3). Thiết kế audit-log có thẩm quyền - danh sách sự kiện, schema, lưu trữ, chống sửa - chưa được viết. Mục cần làm.

Các mục cần siết

MụcỞ đâuHành động
Độ dài mật khẩu tối thiểu là 4authentication (4-80)nâng ≥ 8-12 + kiểm tra độ phức tạp / mật khẩu bị lộ
Đăng ký cấp OWNER mặc địnhauthenticationgate OWNER (mời / duyệt); mặc định role tối thiểu quyền
/webhooks/payment nội bộ chưa xác thựcHợp đồng IPN VNPAY → vấn đề đã biếtverify X-Webhook-Signature (constant-time) + cửa sổ chống replay
So sánh checksum / chữ ký không constant-timehelper verify của mq-paydùng crypto.timingSafeEqual
Ví dụ secret trong docsinfrastructure/configurationgiữ secret là <placeholder>, không bao giờ chuỗi thật

Các fix này nằm trong code app / hạ tầng, không phải docs - liệt kê ở đây để Security có một danh sách.

Proprietary and Confidential. Unauthorized copying, distribution, or use of this software is strictly prohibited.