Chuẩn bị gì trước Website Security Audit? Checklist trước khi bắt đầu

Chuẩn bị trước Website Security Audit với checklist scope, tài khoản test, backup, môi trường và liên hệ

Một Website Security Audit có thể bị chậm hoặc giảm coverage chỉ vì khâu chuẩn bị thiếu: asset chưa rõ, account test không hoạt động, staging khác production quá nhiều, không có emergency contact hoặc tester không biết kỹ thuật nào bị cấm.

Chuẩn bị trước Website Security Audit là quá trình làm sạch đầu vào của assessment để tester biết chính xác cần kiểm tra gì, ở đâu, với quyền nào và trong giới hạn nào.

Bài này tập trung vào checklist chuẩn bị trước audit. Việc xác định phạm vi chi tiết được giải thích tại Security Audit Scope; còn tiêu chí chọn nhà cung cấp được tách riêng tại Cách chọn đơn vị Security Audit website.

Vì sao cần chuẩn bị trước Security Audit?

Preparation tốt giúp:

  • giảm thời gian discovery lặp lại;
  • tránh bỏ sót asset quan trọng;
  • giảm rủi ro tester vượt scope;
  • có account/context cần cho authenticated testing;
  • giảm nguy cơ ảnh hưởng production;
  • giúp evidence và finding traceable hơn;
  • rút ngắn thời gian từ report đến remediation.

Preparation không phải để “dọn sạch website trước khi audit” đến mức che mất trạng thái thật. Mục tiêu là cung cấp context, không phải làm đẹp kết quả.

Checklist tổng quan trước Website Security Audit

  1. Xác định mục tiêu assessment.
  2. Lập asset inventory.
  3. Khóa in-scope / out-of-scope.
  4. Xác định environment.
  5. Chuẩn bị test account và role.
  6. Chuẩn bị architecture overview.
  7. Kiểm tra backup/rollback readiness.
  8. Thống nhất Rules of Engagement.
  9. Xác định data handling.
  10. Chuẩn bị emergency contact.
  11. Ghi known issue và limitation.
  12. Xác định remediation owner.

18 hạng mục cần chuẩn bị trước khi Audit bắt đầu

1. Xác định mục tiêu Audit trước

Đừng bắt đầu bằng câu “scan toàn bộ website”.

Cần xác định assessment đang phục vụ mục tiêu nào:

  • pre-launch;
  • baseline security review;
  • post-migration;
  • post-incident control review;
  • handover vendor;
  • customer assurance;
  • review một application/API cụ thể.

Mục tiêu quyết định scope, methodology và mức access cần chuẩn bị.

2. Chuẩn bị Asset Inventory

Asset inventory nên đủ để tester hiểu attack surface cơ bản.

Có thể gồm:

  • domain chính;
  • subdomain;
  • public IP;
  • origin server;
  • CDN/WAF;
  • CMS/framework;
  • plugin/theme/component;
  • API;
  • admin portal;
  • database;
  • DNS/registrar;
  • backup storage;
  • third-party integration.

Không nhất thiết tất cả asset đều in-scope. Nhưng việc biết chúng tồn tại giúp tránh blind spot và scope creep.

3. Khóa In-Scope và Out-of-Scope

Danh sách in-scope nên dùng định danh cụ thể.

Ví dụ:

  • https://example.com/ – production;
  • https://staging.example.com/ – staging;
  • https://api.example.com/v1/ – API v1;
  • origin server cụ thể;
  • WordPress admin workflow.

Out-of-scope cũng cần ghi rõ, ví dụ:

  • third-party payment provider;
  • corporate email;
  • ERP;
  • social engineering;
  • DoS/load testing;
  • physical security.

4. Chọn Production, Staging hay cả hai

Production phản ánh trạng thái thật nhưng có risk vận hành cao hơn. Staging an toàn hơn cho state-changing test nhưng chỉ hữu ích nếu đủ tương đồng.

Trước audit nên xác nhận:

  • staging có cùng code/config quan trọng không;
  • có dùng dữ liệu thật không;
  • WAF/CDN có giống production không;
  • authentication/role có tương đương không;
  • test nào chỉ được phép trên staging.

Nếu staging khác production đáng kể, limitation phải được ghi trước.

5. Chuẩn bị Test Account theo Role

Nhiều control không thể đánh giá tốt nếu chỉ có unauthenticated access.

Tùy website, có thể cần:

  • 1 account user thường;
  • 1 account role khác để kiểm tra authorization;
  • 1 admin test account;
  • account đối tác/vendor nếu workflow có role riêng.

Nên dùng account riêng cho audit, không dùng credential cá nhân của nhân viên nếu không cần thiết.

6. Xác nhận Account hoạt động trước khi bắt đầu

Một lỗi vận hành rất phổ biến là đến ngày audit mới phát hiện:

  • password hết hạn;
  • MFA không provision;
  • IP tester chưa allowlist;
  • role bị sai;
  • account staging không đồng bộ;
  • captcha hoặc SSO chặn testing.

Kiểm tra account trước engagement giúp tránh mất thời gian assessment window.

7. Chuẩn bị Architecture Overview

Không cần sơ đồ hoàn hảo. Một sơ đồ đủ tốt nên thể hiện:

User → DNS/CDN/WAF → Origin → Application → Database → Third-party services

Nên bổ sung:

  • authentication provider;
  • admin access path;
  • API/webhook;
  • storage;
  • backup;
  • logging/monitoring;
  • trust relationship quan trọng.

Architecture context giúp tester phân biệt edge response với origin behavior và hiểu boundary.

8. Chuẩn bị Component / Dependency Inventory

Với CMS hoặc application, nên có danh sách:

  • CMS/framework version;
  • plugin/module/theme;
  • runtime như PHP/Node/Java nếu liên quan;
  • web server;
  • package/dependency chính;
  • component custom.

Không nên cố “update tất cả” ngay trước audit chỉ để có báo cáo đẹp. Nếu update là hoạt động maintenance bình thường thì thực hiện có kiểm soát; nếu không, audit nên phản ánh trạng thái thực tế.

9. Kiểm tra Backup và Rollback Readiness

Dù Rules of Engagement giới hạn destructive testing, production assessment vẫn có thể trùng với sự cố vận hành không liên quan.

Trước audit nên biết:

  • backup gần nhất ở đâu;
  • backup có độc lập với server không;
  • ai có quyền restore;
  • rollback deployment như thế nào;
  • restore đã từng được test chưa.

Không nên tuyên bố “đã có backup” nếu chưa biết khả năng recovery thực tế.

10. Xác định Rules of Engagement

RoE nên thống nhất trước khi testing bắt đầu.

Có thể gồm:

  • assessment window;
  • tester IP;
  • request rate;
  • có được tạo account/test data không;
  • có được upload file không;
  • có được thay đổi state không;
  • có được controlled exploitation không;
  • kỹ thuật bị cấm;
  • stop condition;
  • emergency contact.

RoE càng rõ, tester càng dễ validation mà không vượt authorization.

11. Xác định Emergency Contact

Phải có ít nhất một contact có thể phản hồi khi:

  • website bất ổn;
  • WAF block tester;
  • phát hiện dấu hiệu compromise thật;
  • finding nghiêm trọng cần escalation;
  • scope cần thay đổi;
  • account bị lock.

Contact nên có quyền quyết định hoặc biết ai có quyền quyết định.

12. Thống nhất Data Handling

Audit có thể chạm vào PII, token, log hoặc dữ liệu thật.

Cần thống nhất:

  • evidence được lưu ở đâu;
  • dữ liệu nào phải redact;
  • có được chụp screenshot dữ liệu thật không;
  • retention bao lâu;
  • ai được nhận report/evidence;
  • cleanup test data/account thế nào.

Nguyên tắc tốt là thu đủ bằng chứng để chứng minh finding nhưng không nhiều hơn mức cần thiết.

13. Chuẩn bị Known Issues và Known Constraints

Đừng giấu known issue khỏi tester.

Nên cung cấp:

  • component đang chờ patch;
  • legacy integration;
  • staging khác production;
  • planned migration;
  • WAF rule tạm;
  • account đặc biệt;
  • known outage window.

Known issue không nên mặc định bị loại khỏi audit; nó giúp tester tránh mất thời gian rediscovery và có thể kiểm tra control/impact sâu hơn.

14. Chuẩn bị Previous Audit / Incident Context

Nếu có assessment cũ, nên cung cấp:

  • finding ID;
  • status;
  • remediation;
  • finding đã retest chưa;
  • residual risk;
  • systemic pattern.

Điều này giúp tester nhận diện regression và finding tái diễn.

15. Xác định Business-Critical Flow

Tester không thể biết workflow nào quan trọng nếu không được cung cấp.

Ví dụ:

  • đăng nhập;
  • checkout;
  • upload hồ sơ;
  • reset password;
  • admin publish;
  • API integration;
  • customer data export.

Business-critical flow giúp ưu tiên manual testing và impact analysis.

16. Xác định Remediation Owner trước khi Audit

Đừng đợi report xong mới tìm người sửa.

Nên xác định owner của:

  • application;
  • hosting/server;
  • DNS/CDN/WAF;
  • CMS/plugin;
  • IAM;
  • backup;
  • third-party integration.

Điều này giúp finding được handoff nhanh sau report.

17. Không nên “Hardening quá mức” ngay trước Audit

Nếu doanh nghiệp tạm thời bật control chỉ trong thời gian audit rồi tắt sau đó, kết quả không phản ánh trạng thái vận hành thật.

Nên:

  • thực hiện maintenance bình thường;
  • ghi lại change vừa diễn ra;
  • không tạo environment giả chỉ để pass assessment;
  • để tester biết control nào là temporary.

18. Chuẩn bị lịch làm việc và Change Freeze nếu cần

Nếu website deploy liên tục trong assessment, evidence có thể bị stale.

Có thể:

  • đặt assessment window;
  • thông báo major deployment;
  • freeze một số change quan trọng trong testing;
  • ghi version/build đang được audit.

Không nhất thiết phải freeze toàn bộ, nhưng tester cần biết khi state thay đổi.

Pre-Audit Package và kiểm tra cuối trước khi bắt đầu

Mẫu Pre-Audit Package tối thiểu

Nhóm Nội dung
Objective Mục tiêu assessment
Assets Domain, API, server, integration
Scope In / Out
Environment Production / Staging
Accounts Role + access
Architecture Sơ đồ và trust boundary
RoE Allowed / prohibited tests
Contacts Technical + emergency
Data Handling/redaction requirement
History Previous audit/incident/known issue

Checklist 24 giờ trước Audit

  1. Test account đăng nhập được.
  2. MFA/allowlist đã sẵn sàng.
  3. Asset list không thay đổi đáng kể.
  4. Backup/rollback owner đã rõ.
  5. Emergency contact online trong window.
  6. Major deploy đã được thông báo.
  7. Tester nhận đúng tài liệu qua kênh an toàn.
  8. Không gửi password/token trong kênh không phù hợp.

Những lỗi chuẩn bị thường gặp

  • Scope ghi “toàn bộ website” nhưng không có asset list.
  • Không có out-of-scope.
  • Account test không hoạt động.
  • Staging khác production nhưng không nói.
  • Không có emergency contact.
  • Không biết origin/CDN/WAF relationship.
  • Không có business flow.
  • Không có remediation owner.
  • Gửi secret trong email/chat không phù hợp.
  • Thay đổi production giữa assessment mà không báo tester.

Kết luận

Chuẩn bị tốt giúp Website Security Audit có coverage rõ, ít gián đoạn và finding dễ hành động hơn. Các đầu vào quan trọng nhất là objective, asset inventory, scope, environment, account, architecture, Rules of Engagement, data handling, emergency contact và remediation owner.

Preparation không nhằm làm website “trông an toàn hơn” trước audit. Nó nhằm giúp assessment phản ánh trạng thái thật trong phạm vi được kiểm soát.

Nếu đang chuẩn bị engagement bên ngoài, sau checklist này nên tiếp tục với checklist chọn đơn vị Security Audit. Nếu scope vẫn chưa rõ, quay lại Security Audit Scope.

Nếu cần đi từ bước chuẩn bị sang scope, methodology, testing, finding và report, xem hub Website Security Audit.

Tham chiếu

◇
Cần hỗ trợ kiểm tra và xử lý website?Đội ngũ SecureWebOps sẵn sàng hỗ trợ theo phạm vi phù hợp.
Liên hệ ngay →
Đoàn Trình Dục
Về tác giả Đoàn Trình Dục TD Digital · Website Operations & Security

Đoàn Trình Dục là tác giả nội dung trên SecureWebOps. Các bài viết tập trung vào bảo mật WordPress, giám sát an ninh website, malware/backdoor, hardening, backup/recovery và Incident Response theo hướng thực hành, có bước kiểm tra, bằng chứng, validation và rollback khi phù hợp.

Xem hồ sơ tác giả →