T
Trinh Digital
Giải pháp Công nghệ

Security Audit: Phát hiện 23 lỗ hổng trong hệ thống fintech trước khi hacker tìm thấy

Trinh Digital · · 8 phút đọc

Case study kiểm toán bảo mật này chia sẻ quá trình security audit cho một công ty fintech Việt Nam — phát hiện 23 lỗ hổng bảo mật, trong đó 5 lỗ hổng nghiêm trọng có thể cho phép hacker truy cập dữ liệu 200,000 người dùng. Tất cả được tìm thấy và vá trước khi hacker kịp khai thác.

Bối cảnh

Về doanh nghiệp

  • Ngành: Fintech — ví điện tử và cho vay trực tuyến
  • Quy mô: 60 nhân viên, 15 developers
  • Users: 200,000 người dùng active
  • Transactions: 50,000 giao dịch/ngày, tổng 500 tỉ VND/tháng
  • Tech stack: Node.js + React + PostgreSQL + Redis, chạy trên AWS

Lý do thực hiện security audit

  1. Chuẩn bị gọi vốn Series A — nhà đầu tư yêu cầu báo cáo bảo mật
  2. Compliance: Cần đáp ứng yêu cầu NHNN về bảo mật fintech
  3. Growth nhanh: Code viết nhanh trong 18 tháng, chưa bao giờ audit bảo mật
  4. Sự cố nhỏ: Phát hiện 1 API endpoint bị leak data → lo ngại có thêm lỗ hổng

Phạm vi audit

Hạng mụcChi tiết
Web applicationFrontend (React) + Backend (Node.js API)
Mobile appiOS + Android (React Native)
InfrastructureAWS setup, network, IAM
DatabasePostgreSQL + Redis
Third-party integrationsPayment gateway, banking API, KYC provider
CI/CD pipelineGitHub + Jenkins

Quy trình Security Audit

Phương pháp

Kết hợp 3 phương pháp:

  1. Automated scanning: Dùng tool scan tự động (OWASP ZAP, Burp Suite, AWS Inspector)
  2. Manual penetration testing: Ethical hacker thử xâm nhập thủ công
  3. Code review: Đọc source code tìm lỗ hổng logic

Timeline: 3 tuần

Tuần 1: Reconnaissance + Automated Scanning

  • Thu thập thông tin về hệ thống
  • Chạy automated scanners
  • Map tất cả API endpoints
  • Phân tích attack surface

Tuần 2: Manual Penetration Testing

  • Test authentication/authorization
  • Test API security
  • Test business logic
  • Test infrastructure
  • Attempt privilege escalation

Tuần 3: Code Review + Report

  • Review source code các module critical
  • Viết báo cáo chi tiết
  • Xếp hạng lỗ hổng theo severity
  • Đề xuất remediation

Kết quả: 23 lỗ hổng

Tổng quan

SeveritySố lượngThời gian fix khuyến nghị
Critical2Ngay lập tức (< 24 giờ)
High31-3 ngày
Medium81-2 tuần
Low71 tháng
Informational3Khi có thời gian
Tổng23

5 lỗ hổng nghiêm trọng nhất

Lỗ hổng 1: IDOR — Xem thông tin tài khoản người khác (Critical)

Vấn đề: API endpoint /api/users/{id}/balance không kiểm tra quyền. Bất kỳ user đăng nhập nào cũng có thể thay đổi {id} để xem số dư tài khoản của user khác.

Ảnh hưởng: 200,000 users — hacker có thể xem số dư, lịch sử giao dịch, thông tin cá nhân của bất kỳ ai.

Cách tìm thấy: Thay đổi user ID trong request từ “12345” thành “12346” → trả về data user khác.

Fix: Thêm authorization check — chỉ cho phép user xem data của chính mình.

Lỗ hổng 2: SQL Injection trong search function (Critical)

Vấn đề: Chức năng tìm kiếm giao dịch không sanitize input. Có thể inject SQL để đọc toàn bộ database.

Ảnh hưởng: Toàn bộ database — thông tin cá nhân, số tài khoản ngân hàng, lịch sử giao dịch.

Fix: Sử dụng parameterized queries, input validation.

Lỗ hổng 3: JWT Secret quá yếu (High)

Vấn đề: JWT signing secret là “secretkey123” — có thể brute force trong vài giây. Hacker tạo JWT token giả, đăng nhập bằng bất kỳ tài khoản nào.

Fix: Dùng random secret 256-bit, rotate định kỳ.

Lỗ hổng 4: AWS S3 bucket public (High)

Vấn đề: S3 bucket chứa KYC documents (CMND, CCCD scan) được set public — bất kỳ ai có URL đều access được.

Ảnh hưởng: 50,000+ ảnh CMND/CCCD của users.

Fix: Set bucket private, sử dụng pre-signed URLs.

Lỗ hổng 5: Admin panel không có 2FA (High)

Vấn đề: Admin panel quản lý 200,000 users + 500 tỉ giao dịch/tháng chỉ bảo vệ bằng username/password. Mật khẩu admin có trong data breach cũ.

Fix: Bắt buộc 2FA cho tất cả admin, implement IP whitelist.

8 lỗ hổng Medium

#Lỗ hổngImpact
1Rate limiting yếu cho API loginBrute force password
2Thiếu CSRF protectionCross-site request forgery
3Sensitive data trong logsPassword, token bị log
4Outdated dependencies (12 packages)Known vulnerabilities
5Error messages tiết lộ thông tin hệ thốngStack trace, DB schema
6Không encrypt data at restData trên disk không mã hóa
7Weak password policyCho phép password “123456”
8Session không timeoutToken không hết hạn

Quy trình vá lỗ hổng

Tuần 1: Critical fixes (2 ngày)

  • Vá IDOR vulnerability — thêm authorization middleware
  • Fix SQL Injection — refactor toàn bộ queries sang parameterized
  • Thay JWT secret — deploy ngay, force logout tất cả sessions

Tuần 2: High fixes (5 ngày)

  • Set S3 bucket private + implement pre-signed URLs
  • Deploy 2FA cho admin panel
  • Update rate limiting

Tuần 3-4: Medium fixes (10 ngày)

  • Update 12 outdated packages
  • Implement CSRF tokens
  • Add data encryption at rest
  • Clean sensitive data from logs
  • Enforce password policy
  • Add session timeout

Tuần 5: Verification

  • Re-scan toàn bộ hệ thống
  • Re-test các lỗ hổng đã vá
  • Confirm 100% critical/high đã fix
  • Document remaining low/info items

Chi phí và ROI

Chi phí audit

Hạng mụcChi phí
Security audit (3 tuần)120 triệu VND
Remediation support30 triệu VND
Re-testing sau fix20 triệu VND
Tổng170 triệu VND

Thiệt hại nếu KHÔNG audit (ước tính)

Kịch bảnThiệt hại ước tính
IDOR exploit → data breach 200K users2-5 tỉ VND (phạt + bồi thường + mất user)
SQL Injection → database stolen3-10 tỉ VND (mất dữ liệu tài chính)
S3 leak → 50K CMND/CCCD lộ1-3 tỉ VND (phạt PDPA + kiện tụng)
Admin hack → unauthorized transactions5-50 tỉ VND (mất tiền trực tiếp)
Worst case tổng10-60 tỉ VND

ROI: Đầu tư 170 triệu, phòng tránh thiệt hại 10-60 tỉ → ROI 5,800% - 35,000%.

Bài học cho SME

1. “Code nhanh” để lại security debt

Startup/SME thường ưu tiên tốc độ phát triển → bỏ qua security → tích lũy “nợ bảo mật”. Nên audit bảo mật sau mỗi milestone lớn (launch, major feature, pre-fundraising).

2. Automated scan chỉ tìm được 40% lỗ hổng

Tool tự động giỏi tìm lỗ hổng kỹ thuật (outdated software, missing headers). Nhưng lỗ hổng logic (IDOR, business logic bypass) cần manual testing bởi chuyên gia.

3. Developer giỏi không bằng security expert

Dev team 15 người không phát hiện IDOR vì họ test “happy path”. Security expert test “unhappy path” — cố tình phá, cố tình vượt quyền, cố tình inject.

4. Chi phí phòng ngừa << Chi phí khắc phục

170 triệu cho audit << 10-60 tỉ cho data breach. Quy tắc: chi phí bảo mật nên là 5-10% ngân sách IT.

Trinh Digital Security Audit Services

Tại Trinh Digital, chúng tôi cung cấp:

  1. Web Application Security Audit — Từ 30 triệu VND
  2. Infrastructure Security Assessment — Từ 50 triệu VND
  3. Full Penetration Testing — Từ 80 triệu VND
  4. Code Security Review — Từ 40 triệu VND
  5. Compliance Assessment (PCI DSS, ISO 27001) — Từ 100 triệu VND

FAQ — Câu hỏi thường gặp

1. SME không phải fintech có cần security audit không?

Có. Bất kỳ website nào chứa dữ liệu khách hàng (tên, email, SĐT, địa chỉ) đều cần. E-commerce càng cần vì có thông tin thanh toán. Chi phí audit cho website đơn giản từ 10-30 triệu.

2. Security audit mất bao lâu?

Website/app đơn giản: 1 tuần. Hệ thống trung bình: 2-3 tuần. Enterprise complex: 4-8 tuần. Phụ thuộc vào scope và số lượng endpoints/features.

3. Có thể tự audit không?

Phần automated scanning có thể tự làm (dùng OWASP ZAP, Nikto). Nhưng manual penetration testing và code review cần chuyên gia — lý do giống bạn không tự khám bệnh cho mình dù có sách y khoa.


Muốn kiểm tra bảo mật hệ thống trước khi hacker tìm thấy lỗ hổng? Liên hệ Trinh Digital để đặt lịch Security Audit.

#fintech#lỗ hổng#case study#security audit
Chia sẻ: Z

Sẵn sàng chuyển đổi số cùng Trinh Digital?

Liên hệ ngay để nhận tư vấn miễn phí. Đội ngũ chuyên gia sẽ phân tích nhu cầu và đề xuất giải pháp tối ưu.

Zalo