OWASP Application Security Verification Standard 4.0-Vn-V1
OWASP Application Security Verification Standard 4.0-Vn-V1
0
Final
March 2019
Table of Contents
Bạn cần biết ........................................................................................................................................................... 7
Giới thiệu Tiêu chuẩn ................................................................................................................................................. 7
Copyright & License ................................................................................................................................................... 7
Project Leads.............................................................................................................................................................. 7
Contributors and Reviewers ....................................................................................................................................... 7
Preface .................................................................................................................................................................. 8
What's new in 4.0 ...................................................................................................................................................... 8
Bản quyền © 2008-2019 Quỹ OWASP. Tài liệu này được phát hành dưới
Creative Commons Attribution ShareAlike 3.0 license. Đối với bất kỳ việc
tái sử dụng hoặc phân phối nào, bạn phải nói rõ cho người khác các điều
khoản cấp phép của tác phẩm này.
Tiêu chuẩn xác minh bảo mật ứng dụng được xây dựng dựa trên ASVS 1.0 năm 2008 đến 3.0 vào năm 2016. Phần
lớn cấu trúc và mục xác minh vẫn còn trong ASVS ngày nay ban đầu được viết bởi Mike Boberski, Jeff Williams và
Dave Wichers, nhưng có nhiều người đóng góp hơn nữa. Cảm ơn tất cả những người đã tham gia trước đó. Để có
danh sách đầy đủ tất cả những người đã đóng góp cho các phiên bản trước, vui lòng tham khảo từng phiên bản
này.
Nếu thiếu một khoản tín dụng trong danh sách tín dụng 4.0 ở trên, vui lòng liên hệ [email protected] hoặc gởi
một ticket tại GitHub để được công nhận trong các bản cập nhật 4.x trong tương lai.
Sử dụng ASVS
ASVS có hai mục tiêu chính:
• giúp các tổ chức phát triển và duy trì các ứng dụng an toàn.
• cho phép các nhà cung cấp dịch vụ bảo mật, nhà cung cấp công cụ bảo mật và người tiêu dùng điều
chỉnh các yêu cầu và dịch vụ của họ.
Hình 1 - Các mức độ 4.0 của Tiêu chuẩn xác minh bảo mật ứng dụng OWASP
Người bảo vệ cần xây dựng các biện pháp kiểm soát bảo mật, bảo vệ, tìm và giải quyết tất cả các điểm yếu, đồng
thời phát hiện và phản ứng với các tác nhân độc hại trong một thời gian hợp lý. Các tác nhân độc hại về cơ bản có
thời gian vô hạn và chỉ yêu cầu một biện pháp bảo vệ xốp, một điểm yếu duy nhất hoặc phát hiện thiếu để thành
công. Kiểm tra hộp đen, thường được thực hiện ở giai đoạn cuối của quá trình phát triển, nhanh chóng, hoặc
không, hoàn toàn không thể đối phó với sự bất đối xứng đó.
Trong hơn 30 năm qua, kiểm tra hộp đen đã được chứng minh nhiều lần để bỏ sót các vấn đề bảo mật quan trọng
dẫn đến trực tiếp các vụ vi phạm lớn hơn bao giờ hết. Chúng tôi đặc biệt khuyến khích việc sử dụng nhiều loại bảo
đảm và xác minh bảo mật, bao gồm việc thay thế các bài kiểm tra thâm nhập bằng các bài kiểm tra thâm nhập do
mã nguồn dẫn đầu (kết hợp) ở Cấp độ 1, với quyền truy cập đầy đủ vào các nhà phát triển và tài liệu trong suốt
quá trình phát triển. Các cơ quan quản lý tài chính không chấp nhận các cuộc kiểm toán tài chính bên ngoài mà
không có quyền truy cập vào sổ sách, các giao dịch mẫu hoặc những người thực hiện các kiểm soát. Các ngành
công nghiệp và chính phủ phải yêu cầu cùng một tiêu chuẩn minh bạch trong lĩnh vực kỹ thuật phần mềm.
Chúng tôi đặc biệt khuyến khích việc sử dụng các công cụ bảo mật, nhưng trong chính quá trình phát triển, chẳng
hạn như các công cụ DAST và SAST được sử dụng liên tục trong quá trình xây dựng để tìm ra các vấn đề bảo mật
dễ phát hiện.
Các công cụ tự động và quét trực tuyến không thể hoàn thành hơn một nửa ASVS nếu không có sự trợ giúp của
con người. Nếu yêu cầu tự động hóa kiểm tra toàn diện cho mỗi bản dựng, thì sự kết hợp của các bài kiểm tra tích
hợp và đơn vị tùy chỉnh, cùng với việc quét trực tuyến bắt đầu bản dựng sẽ được sử dụng. Lỗi logic nghiệp vụ và
kiểm tra kiểm soát truy cập chỉ có thể thực hiện được khi sử dụng sự trợ giúp của con người. Chúng nên được
chuyển thành các bài kiểm tra đơn vị và tích hợp.
bằng cách cho phép các kiến trúc sư bảo mật chọn các biện pháp kiểm soát tốt hơn cho các vấn đề chung, chẳng
hạn như các mẫu bảo vệ dữ liệu và các chiến lược xác thực đầu vào.
As a Replacement for Off-the-shelf Secure Coding Checklists
Nhiều tổ chức có thể hưởng lợi từ việc áp dụng ASVS, bằng cách chọn một trong ba cấp độ hoặc bằng cách chuyển
đổi ASVS và thay đổi những gì được yêu cầu cho từng cấp độ rủi ro ứng dụng theo một miền cụ thể. Chúng tôi
khuyến khích loại fork này miễn là duy trì được khả năng truy xuất nguồn gốc, để nếu một ứng dụng đã vượt qua
yêu cầu 4.1, thì điều này cũng có nghĩa là đối với các bản sao được fork theo tiêu chuẩn khi nó phát triển.
As a Guide for Automated Unit and Integration Tests
ASVS được thiết kế để có thể kiểm tra được cao, với ngoại lệ duy nhất là các yêu cầu về kiến trúc và mã độc. Bằng
cách xây dựng các bài kiểm tra tích hợp và đơn vị để kiểm tra các trường hợp lạm dụng và mờ cụ thể và có liên
quan, ứng dụng gần như tự xác minh với mỗi và mọi bản dựng. Ví dụ: các thử nghiệm bổ sung có thể được tạo cho
bộ thử nghiệm cho bộ điều khiển đăng nhập, thử nghiệm tham số tên người dùng cho các tên người dùng mặc
định phổ biến, liệt kê tài khoản, ép buộc, LDAP và SQL injection và XSS. Tương tự, kiểm tra tham số mật khẩu phải
bao gồm các mật khẩu phổ biến, độ dài mật khẩu, chèn byte rỗng, xóa tham số, XSS, v.v..
For Secure Development Training
ASVS cũng có thể được sử dụng để xác định các đặc điểm của phần mềm an toàn. Nhiều khóa học "mã hóa an
toàn" chỉ đơn giản là các khóa học hack đạo đức với sự bôi nhọ nhẹ các mẹo viết mã. Điều này có thể không giúp
các nhà phát triển viết mã an toàn hơn. Thay vào đó, các khóa học phát triển an toàn nên sử dụng ASVS tập trung
mạnh vào các biện pháp kiểm soát chủ động có trong ASVS, thay vì 10 điều tiêu cực hàng đầu không nên làm.
As a Driver for Agile Application Security
ASVS có thể được sử dụng trong quy trình phát triển nhanh như một khuôn khổ để xác định các nhiệm vụ cụ thể
cần được thực hiện bởi nhóm để có một sản phẩm an toàn. Một cách tiếp cận có thể là: Bắt đầu với Cấp độ 1, xác
minh ứng dụng hoặc hệ thống cụ thể theo các yêu cầu của ASVS cho cấp độ được chỉ định, tìm những điều khiển
nào còn thiếu và nêu ra các phiếu / nhiệm vụ cụ thể trong công việc tồn đọng. Điều này giúp ưu tiên các nhiệm vụ
cụ thể (hoặc chỉnh sửa) và làm cho bảo mật có thể nhìn thấy trong quy trình nhanh. Điều này cũng có thể được sử
dụng để ưu tiên các nhiệm vụ đánh giá và xem xét trong tổ chức, trong đó một yêu cầu ASVS cụ thể có thể là động
lực để xem xét, tái cấu trúc hoặc đánh giá cho một thành viên nhóm cụ thể và có thể hiển thị là "nợ" trong công
việc tồn đọng cần được thực hiện cuối cùng.
As a Framework for Guiding the Procurement of Secure Software
ASVS là một khuôn khổ tuyệt vời để giúp mua sắm phần mềm an toàn hoặc mua sắm các dịch vụ phát triển tùy
chỉnh. Người mua có thể chỉ cần đặt ra yêu cầu rằng phần mềm họ muốn mua phải được phát triển ở ASVS cấp X
và yêu cầu người bán chứng minh rằng phần mềm đó đáp ứng ASVS cấp X. Điều này hoạt động tốt khi kết hợp với
Phụ lục Hợp đồng Phần mềm Bảo mật OWASP
1.1.1 Xác minh việc sử dụng vòng đời phát triển phần mềm an toàn nhằm giải quyết vấn ✓ ✓
đề bảo mật trong tất cả các giai đoạn phát triển. (C1)
1.1.2 Xác minh việc sử dụng mô hình mối đe dọa cho mọi thay đổi thiết kế hoặc lập ✓ ✓ 1053
kế hoạch chạy nước rút để xác định các mối đe dọa, lập kế hoạch cho các biện
pháp đối phó, tạo điều kiện cho các phản ứng rủi ro thích hợp và hướng dẫn
kiểm tra bảo mật.
1.1.3 Xác minh rằng tất cả các câu chuyện và tính năng của người dùng đều chứa các ✓ ✓ 1110
ràng buộc bảo mật chức năng, chẳng hạn như "Với tư cách là người dùng, tôi
có thể xem và chỉnh sửa hồ sơ của mình. Nhưng tôi không thể xem hoặc chỉnh
sửa hồ sơ của bất kỳ ai khác"
1.1.4 Xác minh tài liệu và giải thích về tất cả các ranh giới tin cậy, thành phần và luồng ✓ ✓ 1059
dữ liệu quan trọng của ứng dụng.
OWASP Application Security Verification Standard 4.0 16
# Description L1 L2 L3 CWE
1.1.5 Xác minh định nghĩa và phân tích bảo mật của kiến trúc cấp cao của ứng dụng và ✓ ✓ 1059
tất cả các dịch vụ từ xa được kết nối. (C1)
1.1.6 Xác minh việc triển khai các biện pháp kiểm soát bảo mật tập trung, đơn giản , đã ✓ ✓ 637
được kiểm tra, bảo mật và có thể tái sử dụng để tránh các biện pháp kiểm soát
trùng lặp, thiếu, không hiệu quả hoặc không an toàn. (C10)
1.1.7 Xác minh tính khả dụng của danh sách kiểm tra mã hóa an toàn, các yêu cầu bảo ✓ ✓ 637
mật, hướng dẫn hoặc chính sách cho tất cả các nhà phát triển và người thử
nghiệm.
# Description L1 L2 L3 CWE
1.2.1 Xác minh việc sử dụng các tài khoản hệ điều hành đặc quyền thấp hoặc duy nhất ✓ ✓ 250
cho tất cả các thành phần ứng dụng, dịch vụ và máy chủ. (C3)
1.2.2 Xác minh rằng thông tin liên lạc giữa các thành phần ứng dụng, bao gồm API, phần ✓ ✓ 306
mềm trung gian và các lớp dữ liệu, được xác thực. Các thành phần phải có các đặc
quyền cần thiết ít nhất. (C3)
1.2.3 Xác minh rằng ứng dụng sử dụng một cơ chế xác thực đã được kiểm duyệt duy nhất ✓ ✓ 306
được biết là an toàn, có thể được mở rộng để bao gồm xác thực mạnh và có đủ ghi
nhật ký và giám sát để phát hiện lạm dụng hoặc vi phạm tài khoản.
1.2.4 Xác minh rằng tất cả các đường dẫn xác thực và API quản lý danh tính triển khai ✓ ✓ 306
sức mạnh kiểm soát bảo mật xác thực nhất quán, sao cho không có lựa chọn thay
thế nào yếu hơn theo rủi ro của ứng dụng.
1.4.1 Xác minh rằng các điểm thực thi đáng tin cậy như tại các cổng kiểm soát truy cập, ✓ ✓ 602
máy chủ và các chức năng không có máy chủ thực thi các kiểm soát truy cập.
Không bao giờ thực thi các kiểm soát truy cập trên máy khách.
1.4.2 Xác minh rằng giải pháp kiểm soát truy cập đã chọn đủ linh hoạt để đáp ứng nhu ✓ ✓ 284
cầu của ứng dụng.
1.4.3 Xác minh việc thực thi nguyên tắc ít đặc quyền nhất trong các chức năng, tệp dữ ✓ ✓ 272
liệu, URL, bộ điều khiển, dịch vụ và các tài nguyên khác. Điều này ngụ ý bảo vệ
chống lại sự giả mạo và nâng cao đặc quyền.
1.4.4 Xác minh ứng dụng sử dụng một cơ chế kiểm soát truy cập duy nhất và được kiểm ✓ ✓ 284
tra kỹ lưỡng để truy cập dữ liệu và tài nguyên được bảo vệ. Tất cả các yêu cầu phải
thông qua cơ chế duy nhất này để tránh sao chép và dán hoặc các đường dẫn thay
thế không an toàn. (C7)
1.4.5 Xác minh rằng thuộc tính hoặc kiểm soát truy cập dựa trên tính năng được sử ✓ ✓ 275
dụng, theo đó mã kiểm tra ủy quyền của người dùng đối với một mục tính năng /
dữ liệu thay vì chỉ vai trò của chúng. Quyền vẫn nên được phân bổ bằng cách sử
dụng các vai trò. (C7)
# Description L1 L2 L3 CWE
1.5.1 Xác minh rằng các yêu cầu đầu vào và đầu ra xác định rõ ràng cách xử lý và xử lý ✓ ✓ 1029
dữ liệu dựa trên loại, nội dung và các luật, quy định hiện hành và việc tuân thủ
chính sách khác.
1.5.2 Xác minh rằng tuần tự hóa không được sử dụng khi giao tiếp với các máy khách ✓ ✓ 502
không đáng tin cậy. Nếu điều này là không thể, hãy đảm bảo rằng các biện pháp
kiểm soát toàn vẹn đầy đủ (và có thể mã hóa nếu dữ liệu nhạy cảm được gửi đi)
được thực thi để ngăn chặn các cuộc tấn công deserialization bao gồm cả việc chèn
đối tượng.
1.5.3 Xác minh rằng xác thực đầu vào được thực thi trên lớp dịch vụ đáng tin cậy. (C5) ✓ ✓ 602
1.5.4 Xác minh rằng mã hóa đầu ra xảy ra gần hoặc bởi trình thông dịch mà nó được ✓ ✓ 116
dự định. (C4)
# Description L1 L2 L3 CWE
1.6.1 Xác minh rằng có một chính sách rõ ràng để quản lý khóa mật mã và vòng đời ✓ ✓ 320
của khóa mật mã tuân theo tiêu chuẩn quản lý khóa như NIST SP 800-57.
1.6.3 Xác minh rằng tất cả các khóa và mật khẩu đều có thể thay thế được và là một ✓ ✓ 320
phần của quy trình được xác định rõ để mã hóa lại dữ liệu nhạy cảm.
1.6.4 Xác minh rằng các khóa đối xứng, mật khẩu hoặc bí mật API được tạo hoặc chia sẻ ✓ ✓ 320
với ứng dụng khách chỉ được sử dụng để bảo vệ các bí mật có rủi ro thấp, chẳng
hạn như mã hóa bộ nhớ cục bộ hoặc sử dụng tạm thời như làm xáo trộn tham số.
Chia sẻ bí mật với khách hàng là tương đương với văn bản rõ ràng và nên được xử
lý về mặt kiến trúc như vậy.
1.7.1 Xác minh rằng một định dạng và cách tiếp cận ghi nhật ký chung được sử dụng trên ✓ ✓ 1009
toàn hệ thống. (C9)
1.7.2 Xác minh rằng nhật ký được truyền một cách an toàn tới một hệ thống từ xa tốt ✓ ✓
hơn để phân tích, phát hiện, cảnh báo và báo cáo. (C9)
1.8.1 Xác minh rằng tất cả dữ liệu nhạy cảm được xác định và phân loại thành các cấp độ ✓ ✓
bảo vệ.
1.8.2 Xác minh rằng tất cả các cấp độ bảo vệ đều có một tập hợp các yêu cầu bảo vệ liên ✓ ✓
quan, chẳng hạn như yêu cầu mã hóa, yêu cầu toàn vẹn, lưu giữ, quyền riêng tư và
các yêu cầu bảo mật khác và những yêu cầu này được áp dụng trong kiến trúc.
1.9.1 Xác minh ứng dụng mã hóa thông tin liên lạc giữa các thành phần, đặc biệt khi ✓ ✓ 319
các thành phần này nằm trong các vùng chứa, hệ thống, trang web hoặc nhà cung
cấp đám mây khác nhau. (C3)
1.9.2 Xác minh rằng các thành phần ứng dụng xác minh tính xác thực của mỗi bên ✓ ✓ 295
trong một liên kết giao tiếp để ngăn chặn các cuộc tấn công giữa các bên.
Ví dụ: các thành phần ứng dụng phải xác thực các chứng chỉ và chuỗi TLS.
1.10.1 Xác minh rằng hệ thống kiểm soát mã nguồn đang được sử dụng, với các thủ tục ✓ ✓ 284
để đảm bảo rằng đăng ký có kèm theo các vấn đề hoặc đổi vé. Hệ thống kiểm
soát mã nguồn phải có kiểm soát truy cập và người dùng có thể nhận dạng để
cho phép truy xuất nguồn gốc của bất kỳ thay đổi nào.
1.11.1 Xác minh định nghĩa và tài liệu của tất cả các thành phần ứng dụng về chức năng ✓ ✓ 1059
kinh doanh hoặc bảo mật mà chúng cung cấp.
1.11.2 Xác minh rằng tất cả các luồng logic nghiệp vụ có giá trị cao, bao gồm xác thực, ✓ ✓ 362
quản lý phiên và kiểm soát truy cập, không chia sẻ trạng thái không đồng bộ
hóa.
1.11.3 Xác minh rằng tất cả các luồng logic nghiệp vụ có giá trị cao, bao gồm xác thực, ✓ 367
quản lý phiên và kiểm soát truy cập là luồng an toàn và chống lại các điều kiện
chạy đua thời gian sử dụng và kiểm tra thời gian.
1.12.1 Xác minh rằng các tệp do người dùng tải lên được lưu trữ bên ngoài thư mục gốc ✓ ✓ 552
của web.
1.12.2 Xác minh rằng các tệp do người dùng tải lên - nếu được yêu cầu hiển thị hoặc tải ✓ ✓ 646
xuống từ ứng dụng - được phân phối bởi tải xuống luồng octet hoặc từ một miền
không liên quan, chẳng hạn như nhóm lưu trữ tệp trên đám mây. Triển khai chính
sách bảo mật nội dung phù hợp để giảm rủi ro từ các vectơ XSS hoặc các cuộc tấn
công khác từ tệp đã tải lên.
1.14.1 Xác minh sự phân biệt của các thành phần của các mức độ tin cậy khác nhau ✓ ✓ 923
thông qua các kiểm soát bảo mật được xác định rõ ràng, quy tắc tường lửa,
cổng API, proxy ngược, nhóm bảo mật dựa trên đám mây hoặc các cơ chế
tương tự.
1.14.2 Xác minh rằng nếu việc triển khai mã nhị phân cho các thiết bị không ✓ ✓ 494
đáng tin cậy sử dụng chữ ký nhị phân, kết nối đáng tin cậy và điểm cuối
đã xác minh.
1.14.3 Xác minh rằng đường dẫn xây dựng cảnh báo các thành phần lỗi thời hoặc ✓ ✓ 1104
không an toàn và thực hiện các hành động thích hợp.
1.14.4 Xác minh rằng đường dẫn xây dựng có chứa bước xây dựng để tự động xây ✓ ✓
dựng và xác minh việc triển khai an toàn của ứng dụng, đặc biệt nếu cơ sở hạ
tầng ứng dụng là phần mềm được xác định, chẳng hạn như kịch bản xây dựng
môi trường đám mây.
1.14.5 Xác minh rằng việc triển khai ứng dụng có đầy đủ hộp cát, chứa và / hoặc cô lập ✓ ✓ 265
ở cấp mạng để trì hoãn và ngăn chặn những kẻ tấn công tấn công các ứng dụng
khác, đặc biệt là khi chúng đang thực hiện các hành động nhạy cảm hoặc nguy
hiểm như không hoạt động. (C5)
References
Để biết thêm thông tin, hãy xem thêm:
• OWASP Threat Modeling Cheat Sheet
• OWASP Attack Surface Analysis Cheat Sheet
• OWASP Threat modeling
• OWASP Secure SDLC Cheat Sheet
• Microsoft SDL
• NIST SP 800-57
Legend
Các ứng dụng luôn có thể vượt quá yêu cầu của cấp độ hiện tại, đặc biệt nếu xác thực hiện đại nằm trong lộ trình
của ứng dụng. Trước đây, ASVS đã yêu cầu MFA bắt buộc. NIST không yêu cầu MFA bắt buộc. Do đó, chúng tôi đã
sử dụng một chỉ định tùy chọn trong chương này để chỉ ra nơi ASVS khuyến khích nhưng không yêu cầu kiểm soát.
Các yếu tố sau được sử dụng xuyên suốt tiêu chuẩn này:
Mark Description
✓ Required
2.1.1 Xác minh rằng mật khẩu do người dùng đặt có độ dài ít nhất 12 ký tự. ✓ ✓ ✓ 521 5.1.1.2
(C6)
2.1.2 Xác minh rằng mật khẩu 64 ký tự trở lên được phép. (C6) ✓ ✓ ✓ 521 5.1.1.2
2.1.3 Xác minh rằng mật khẩu có thể chứa khoảng trắng và không thực hiện ✓ ✓ ✓ 521 5.1.1.2
cắt bớt. Nhiều khoảng trắng liên tiếp CÓ THỂ được kết hợp tùy ý. (C6)
2.1.4 Xác minh rằng các ký tự Unicode được cho phép trong mật khẩu. ✓ ✓ ✓ 521 5.1.1.2
Một điểm mã Unicode duy nhất được coi là một ký tự, vì vậy 12 biểu
tượng cảm xúc hoặc 64 ký tự kanji phải hợp lệ và được phép.
2.1.5 Xác minh người dùng có thể thay đổi mật khẩu của họ. ✓ ✓ ✓ 620 5.1.1.2
2.1.6 Xác minh rằng chức năng thay đổi mật khẩu yêu cầu mật khẩu hiện tại ✓ ✓ ✓ 620 5.1.1.2
và mật khẩu mới của người dùng.
2.1.7 Xác minh rằng mật khẩu được gửi trong quá trình đăng ký tài khoản, ✓ ✓ ✓ 521 5.1.1.2
đăng nhập và thay đổi mật khẩu được kiểm tra dựa trên một bộ mật
khẩu bị vi phạm cục bộ (chẳng hạn như 1.000 hoặc 10.000 mật khẩu
phổ biến nhất phù hợp với chính sách mật khẩu của hệ thống) hoặc sử
dụng API bên ngoài. Nếu sử dụng API, phải sử dụng bằng chứng không
có kiến thức hoặc cơ chế khác để đảm bảo rằng mật khẩu văn bản
thuần túy không được gửi hoặc sử dụng trong
xác minh tình trạng vi phạm của mật khẩu. Nếu mật khẩu là
OWASP Application Security Verification Standard 4.0 24
# Description L1 L2 L3 CWE NIST §
vi phạm, ứng dụng phải yêu cầu người dùng đặt một mật khẩu
mới không vi phạm. (C6)
2.1.8 Xác minh rằng máy đo độ mạnh mật khẩu được cung cấp để giúp người ✓ ✓ ✓ 521 5.1.1.2
dùng đặt mật khẩu mạnh hơn.
2.1.9 Xác minh rằng không có quy tắc cấu tạo mật khẩu nào hạn chế loại ký tự ✓ ✓ ✓ 521 5.1.1.2
được phép. Không có yêu cầu về chữ hoa, chữ thường hoặc số hoặc các
ký tự đặc biệt. (C6)
2.1.10 Xác minh rằng không có yêu cầu xoay vòng thông tin xác thực ✓ ✓ ✓ 263 5.1.1.2
định kỳ hoặc lịch sử mật khẩu.
2.1.11 Xác minh rằng chức năng "dán", trình trợ giúp mật khẩu trình ✓ ✓ ✓ 521 5.1.1.2
duyệt và trình quản lý mật khẩu bên ngoài được phép.
2.1.12 Xác minh rằng người dùng có thể chọn tạm thời xem toàn bộ mật khẩu ✓ ✓ ✓ 521 5.1.1.2
được che hoặc tạm thời xem ký tự được nhập cuối cùng của
mật khẩu trên các nền tảng không có chức năng này làm chức năng gốc.
Lưu ý: Mục tiêu của việc cho phép người dùng xem mật khẩu của họ hoặc tạm thời xem ký tự cuối cùng là để cải
thiện khả năng sử dụng của mục nhập thông tin xác thực, đặc biệt là xung quanh việc sử dụng mật khẩu dài hơn,
cụm mật khẩu và trình quản lý mật khẩu. Một lý do khác để bao gồm yêu cầu này là để ngăn chặn hoặc ngăn chặn
các báo cáo thử nghiệm yêu cầu tổ chức ghi đè hành vi trường mật khẩu nền tảng gốc để loại bỏ trải nghiệm bảo
mật thân thiện với người dùng hiện đại này một cách không cần thiết.
2.2.1 Xác minh rằng các biện pháp kiểm soát chống tự động hóa có hiệu ✓ ✓ ✓ 307 5.2.2 /
quả trong việc giảm thiểu các cuộc tấn công kiểm tra thông tin xác 5.1.1.2 /
thực bị vi phạm, bạo lực và khóa tài khoản. Các biện pháp kiểm soát 5.1.4.2 /
như vậy bao gồm chặn các mật khẩu bị vi phạm phổ biến nhất, khóa 5.1.5.2
mềm, giới hạn tốc độ, CAPTCHA, sự chậm trễ ngày càng tăng giữa
các lần thử, hạn chế địa chỉ IP hoặc các hạn chế dựa trên rủi ro như
vị trí, lần đăng nhập đầu tiên trên thiết bị, các lần thử mở khóa tài
khoản gần đây, hoặc tương tự. Xác minh rằng có thể thực hiện
không quá 100 lần thử mỗi giờ trên một tài khoản.
2.2.2Xác minh rằng việc sử dụng các trình xác thực yếu (chẳng hạn như ✓ ✓ ✓ 304 5.2.10
SMS và email) được giới hạn trong xác minh thứ cấp và phê duyệt
giao dịch chứ không phải để thay thế cho các phương pháp xác thực
an toàn hơn. Xác minh rằng các phương pháp mạnh hơn được cung
cấp trước các phương pháp yếu, người dùng nhận thức được rủi ro
hoặc có các biện pháp thích hợp để hạn chế rủi ro
xâm nhập tài khoản.
OWASP Application Security Verification Standard 4.0 25
# Description L1 L2 L3 CWE NIST §
2.2.3 Xác minh rằng các thông báo an toàn được gửi đến người dùng sau ✓ ✓ ✓ 620
khi cập nhật chi tiết xác thực, chẳng hạn như đặt lại thông tin xác
thực, thay đổi email hoặc địa chỉ, đăng nhập từ các vị trí không xác
định hoặc rủi ro. Việc sử dụng thông báo đẩy - thay vì SMS hoặc
email - được ưu tiên, nhưng trong trường hợp không có thông báo
đẩy, SMS hoặc email được chấp nhận miễn là không có thông tin
nhạy cảm nào được tiết lộ trong thông báo.
2.2.4 Xác minh khả năng chống mạo danh chống lại lừa đảo, chẳng hạn ✓ 308 5.2.5
như sử dụng xác thực đa yếu tố, các thiết bị mật mã có mục đích
(chẳng hạn như các khóa được kết nối với một lần nhấn để xác
thực) hoặc ở các cấp AAL cao hơn, chứng chỉ phía máy khách.
2.2.5 Xác minh rằng nơi nhà cung cấp dịch vụ thông tin xác thực ✓ 319 5.2.6
(CSP) và xác thực xác minh ứng dụng được tách biệt, TLS
được xác thực lẫn nhau được đặt giữa hai điểm cuối.
2.2.6 Xác minh khả năng chống phát lại thông qua việc sử dụng bắt buộc ✓ 308 5.2.8
các thiết bị OTP, trình xác thực mật mã hoặc mã tra cứu.
2.2.7 Xác minh mục đích xác thực bằng cách yêu cầu nhập mã thông báo ✓ 308 5.2.9
OTP hoặc hành động do người dùng khởi tạo, chẳng hạn như nhấn
nút trên phần cứng FIDO.
2.3.1 Xác minh mật khẩu ban đầu do hệ thống tạo hoặc mã kích hoạt NÊN ✓ ✓ ✓ 330 5.1.1.2
được tạo ngẫu nhiên một cách an toàn, NÊN dài ít nhất 6 ký tự và CÓ / A.3
THỂ chứa các chữ cái và số, và hết hạn sau một thời gian ngắn. Những
bí mật ban đầu này không được phép trở thành mật khẩu lâu dài.
2.3.2 Xác minh rằng việc đăng ký và sử dụng các thiết bị xác thực do người ✓ ✓ 308 6.1.3
đăng ký cung cấp được hỗ trợ, chẳng hạn như mã thông báo U2F hoặc
FIDO.
2.3.3 Xác minh rằng hướng dẫn gia hạn được gửi với đủ thời gian để gia hạn ✓ ✓ 287 6.1.4
trình xác thực có giới hạn thời gian.
2.4.1 Xác minh rằng mật khẩu được lưu trữ ở dạng có khả năng chống lại các ✓ ✓ 916 5.1.1.2
cuộc tấn công ngoại tuyến. Mật khẩu SẼ được ướp muối (salt) và băm
(hash) bằng cách sử dụng hàm dẫn xuất khóa một chiều hoặc hàm băm
mật khẩu đã được phê duyệt. Hàm dẫn xuất khóa và hàm băm mật khẩu
lấy mật khẩu, muối và yếu tố chi phí làm đầu vào khi tạo hàm băm mật
khẩu. (C6)
2.4.2 Xác minh rằng muối có độ dài ít nhất 32 bit và được chọn tùy ý để ✓ ✓ 916 5.1.1.2
giảm thiểu xung đột giá trị muối giữa các hàm băm được lưu trữ. Đối
với mỗi thông tin xác thực, một giá trị muối duy nhất và kết quả băm
SHALL được lưu trữ. (C6)
2.4.3 Xác minh rằng nếu PBKDF2 được sử dụng, số lần lặp NÊN lớn bằng mức ✓ ✓ 916 5.1.1.2
hiệu suất của máy chủ xác minh sẽ cho phép, thường ít nhất 100.000
lần lặp. (C6)
2.4.4 Xác minh rằng nếu bcrypt được sử dụng, hệ số công việc NÊN lớn ✓ ✓ 916 5.1.1.2
như hiệu suất máy chủ xác minh sẽ cho phép, thường ít nhất là 13.
(C6)
2.4.5 Xác minh rằng một lần lặp bổ sung của một hàm dẫn xuất khóa được ✓ ✓ 916 5.1.1.2
thực hiện, sử dụng một giá trị muối là bí mật và chỉ người xác minh mới
biết. Tạo giá trị muối bằng cách sử dụng trình tạo bit ngẫu nhiên đã
được phê duyệt [SP 800-90Ar1] và cung cấp ít nhất cường độ bảo mật
tối thiểu được chỉ định trong bản sửa đổi mới nhất của SP 800-131A. Giá
trị muối bí mật SẼ được lưu trữ riêng biệt với các mật khẩu được băm (ví
dụ: trong thiết bị chuyên dụng như mô-đun bảo mật phần cứng).
Khi các tiêu chuẩn Hoa Kỳ được đề cập, một tiêu chuẩn khu vực hoặc địa phương có thể được sử dụng thay thế hoặc
bổ sung cho tiêu chuẩn Hoa Kỳ theo yêu cầu.
2.5.1 Xác minh rằng bí mật kích hoạt hoặc khôi phục ban đầu do hệ thống ✓ ✓ ✓ 640 5.1.1.2
tạo ra không được gửi bằng văn bản rõ ràng cho người dùng. (C6)
2.5.2 Xác minh gợi ý mật khẩu hoặc xác thực dựa trên kiến thức (cái gọi là ✓ ✓ ✓ 640 5.1.1.2
"câu hỏi bí mật") không có.
2.5.3 Xác minh khôi phục thông tin xác thực mật khẩu không tiết lộ mật khẩu ✓ ✓ ✓ 640 5.1.1.2
hiện tại theo bất kỳ cách nào. (C6)
2.5.4 Xác minh tài khoản được chia sẻ hoặc mặc định không có (ví dụ: "root", ✓ ✓ ✓ 16 5.1.1.2 /
"admin" hoặc "sa "). A.3
OWASP Application Security Verification Standard 4.0 27
# Description L1 L2 L3 CWE NIST §
2.5.5 Xác minh rằng nếu một yếu tố xác thực được thay đổi hoặc thay thế, ✓ ✓ ✓ 304 6.1.2.3
người dùng sẽ được thông báo về sự kiện này.
2.5.6 Xác minh mật khẩu đã quên và các đường dẫn khôi phục khác sử ✓ ✓ ✓ 640 5.1.1.2
dụng cơ chế khôi phục an toàn, chẳng hạn như TOTP hoặc mã thông
báo mềm khác, đẩy trên thiết bị di động hoặc cơ chế khôi phục ngoại
tuyến khác. (C6)
2.5.7 Xác minh rằng nếu OTP hoặc các yếu tố xác thực đa yếu tố bị mất, thì ✓ ✓ 308 6.1.2.3
bằng chứng xác minh danh tính được thực hiện ở cấp độ giống như
trong quá trình đăng ký.
2.6.1 Xác minh rằng bí mật tra cứu chỉ có thể được sử dụng một lần. ✓ ✓ 308 5.1.2.2
2.6.2 Xác minh rằng bí mật tra cứu có đủ độ ngẫu nhiên (112 bit entropy) ✓ ✓ 330 5.1.2.2
hoặc nếu ít hơn 112 bit entropy, được ướp muối 32 bit ngẫu nhiên
và duy nhất và được băm bằng hàm băm một chiều đã được phê
duyệt.
2.6.3 Xác minh rằng bí mật tra cứu có khả năng chống lại các cuộc tấn công ✓ ✓ 310 5.1.2.2
ngoại tuyến, chẳng hạn như các giá trị có thể dự đoán được.
2.7.1 Xác minh rằng trình xác thực văn bản rõ ràng ngoài dải (NIST "bị hạn ✓ ✓ ✓ 287 5.1.3.2
chế"), chẳng hạn như SMS hoặc PSTN, không được cung cấp theo mặc
định và các lựa chọn thay thế mạnh mẽ hơn như thông báo đẩy được
cung cấp đầu tiên.
2.7.2 Xác minh rằng trình xác minh ngoài băng tần sẽ hết hạn sử dụng các yêu ✓ ✓ ✓ 287 5.1.3.2
cầu, mã hoặc mã xác thực ngoài băng sau 10 phút.
2.7.3 Xác minh rằng các yêu cầu xác thực ngoài băng tần, mã hoặc mã thông ✓ ✓ ✓ 287 5.1.3.2
báo chỉ có thể sử dụng một lần và chỉ cho yêu cầu xác thực ban đầu.
2.7.4 Xác minh rằng trình xác thực và trình xác minh ngoài băng tần giao ✓ ✓ ✓ 523 5.1.3.2
tiếp qua một kênh độc lập an toàn.
2.7.5 Xác minh rằng trình xác minh ngoài băng tần chỉ giữ lại phiên bản băm ✓ ✓ 256 5.1.3.2
của mã xác thực.
2.7.6 Xác minh rằng mã xác thực ban đầu được tạo bởi một trình tạo số ngẫu ✓ ✓ 310 5.1.3.2
nhiên an toàn, chứa ít nhất 20 bit entropy (thường là sáu số ngẫu nhiên
kỹ thuật số là đủ).
2.8.1 Xác minh rằng các OTP dựa trên thời gian có thời gian tồn tại được xác ✓ ✓ ✓ 613 5.1.4.2 /
định trước khi hết hạn. 5.1.5.2
2.8.2 Xác minh rằng các khóa đối xứng được sử dụng để xác minh OTP đã ✓ ✓ 320 5.1.4.2 /
gửi được bảo vệ cao, chẳng hạn như bằng cách sử dụng mô-đun bảo 5.1.5.2
mật phần cứng hoặc lưu trữ khóa dựa trên hệ điều hành an toàn.
2.8.3 Xác minh rằng các thuật toán mật mã đã được phê duyệt ✓ ✓ 326 5.1.4.2 /
được sử dụng trong quá trình tạo, tạo và xác minh. 5.1.5.2
2.8.4 Xác minh rằng OTP dựa trên thời gian chỉ có thể được sử dụng một lần ✓ ✓ 287 5.1.4.2 /
trong thời hạn hiệu lực. 5.1.5.2
2.8.5 Xác minh rằng nếu mã thông báo OTP đa yếu tố dựa trên thời gian ✓ ✓ 287 5.1.5.2
được sử dụng lại trong thời gian hiệu lực, nó sẽ được ghi lại và bị từ
chối với các thông báo an toàn được gửi đến chủ sở hữu thiết bị.
2.8.6 Xác minh bộ tạo OTP đơn yếu tố vật lý có thể bị thu hồi trong trường ✓ ✓ 613 5.2.1
hợp mất cắp hoặc mất mát khác. Đảm bảo rằng việc thu hồi có hiệu
lực ngay lập tức
qua các phiên đã đăng nhập, bất kể vị trí.
2.9.1 Xác minh rằng các khóa mật mã được sử dụng trong quá trình xác minh ✓ ✓ 320 5.1.7.2
được lưu trữ an toàn và được bảo vệ chống lại việc tiết lộ, chẳng hạn
như sử dụng TPM hoặc HSM hoặc một dịch vụ hệ điều hành có thể sử
dụng bộ nhớ an toàn này.
2.9.2 Xác minh rằng thử thách có độ dài ít nhất là 64 bit và duy nhất về mặt ✓ ✓ 330 5.1.7.2
thống kê hoặc duy nhất trong suốt thời gian tồn tại của thiết bị mật mã.
2.9.3 Xác minh rằng các thuật toán mật mã đã được phê duyệt được sử dụng ✓ ✓ 327 5.1.7.2
trong quá trình tạo, tạo và xác minh.
2.10.1 Xác minh rằng bí mật tích hợp không dựa vào mật khẩu OS HSM 287 5.1.1.1
không thay đổi, chẳng hạn như khóa API hoặc tài khoản assisted
đặc quyền được chia sẻ.
2.10.2 Xác minh rằng nếu mật khẩu là bắt buộc, thì thông tin đăng OS HSM 255 5.1.1.1
nhập không phải là tài khoản mặc định. assisted
2.10.3 Xác minh rằng mật khẩu được lưu trữ với khả năng bảo vệ đầy OS HSM 522 5.1.1.1
đủ để ngăn chặn các cuộc tấn công khôi phục ngoại tuyến, bao assisted
gồm cả quyền truy cập hệ thống cục bộ.
2.10.4 Xác minh mật khẩu, tích hợp với cơ sở dữ liệu và hệ thống của OS HSM 798
bên thứ ba, hạt giống và bí mật nội bộ cũng như khóa API được assisted
quản lý an toàn và không có trong mã nguồn hoặc được lưu trữ
trong kho mã nguồn. Lưu trữ như vậy NÊN chống lại các cuộc
tấn công ngoại tuyến. Việc sử dụng kho khóa phần mềm an toàn
(L1), mô-đun nền tảng phần cứng đáng tin cậy (TPM) hoặc bảo
mật phần cứng
mô-đun (L3) được khuyến nghị để lưu trữ mật khẩu.
hoặc những điều khiển có khả năng áp dụng hạn chế. Như vậy, ASVS là một tập hợp con nghiêm ngặt của NIST
800-63, đặc biệt đối với các phân loại IAL1 / 2 và AAL1 / 2, nhưng không đủ toàn diện, đặc biệt liên quan đến
phân loại IAL3 / AAL3.
Chúng tôi đặc biệt kêu gọi các cơ quan chính phủ Hoa Kỳ xem xét và triển khai toàn bộ NIST 800-63.
Glossary of terms
Term Meaning
CSP Nhà cung cấp dịch vụ thông tin xác thực còn được gọi là Nhà cung cấp danh tính
Authenticator Mã xác thực mật khẩu, mã thông báo, MFA, xác nhận liên kết, v.v..
Verifier "Một pháp nhân xác minh danh tính của người xác nhận quyền sở hữu bằng cách xác minh
quyền sở hữu và kiểm soát của người xác nhận quyền sở hữu đối với một hoặc hai trình xác
thực bằng cách sử dụng giao thức xác thực. Để thực hiện việc này, người xác minh cũng có thể
cần xác thực thông tin xác thực liên kết (các) người xác thực với số nhận dạng của người đăng
ký và kiểm tra trạng thái của họ"
OTP Mật khẩu dùng một lần
SFA Trình xác thực yếu tố đơn lẻ, chẳng hạn như thông tin bạn biết (bí mật được ghi nhớ, mật
khẩu, mật khẩu, mã PIN), thông tin bạn đang có (sinh trắc học, vân tay, quét khuôn mặt)
hoặc thông tin bạn có (mã thông báo OTP, thiết bị mật mã như thẻ thông minh),
MFA Trình xác thực đa yếu tố, bao gồm hai hoặc nhiều yếu tố đơn lẻ
References
Để biết thêm thông tin, hãy xem thêm:
• NIST 800-63 - Digital Identity Guidelines
• NIST 800-63 A - Enrollment and Identity Proofing
• NIST 800-63 B - Authentication and Lifecycle Management
• NIST 800-63 C - Federation and Assertions
• NIST 800-63 FAQ
• OWASP Testing Guide 4.0: Testing for Authentication
• OWASP Cheat Sheet - Password storage
• OWASP Cheat Sheet - Forgot password
• OWASP Cheat Sheet - Choosing and using security questions
3.1.1 Xác minh rằng ứng dụng không bao giờ tiết lộ mã thông báo phiên trong ✓ ✓ ✓ 598
các thông số URL hoặc thông báo lỗi.
3.2.1 Xác minh ứng dụng tạo mã phiên mới khi xác thực người ✓ ✓ ✓ 384 7.1
dùng. (C6)
3.2.2 Xác minh rằng mã thông báo phiên có ít nhất 64 bit entropy. (C6) ✓ ✓ ✓ 331 7.1
3.2.3 Xác minh rằng ứng dụng chỉ lưu trữ mã thông báo phiên trong trình duyệt ✓ ✓ ✓ 539 7.1
bằng các phương pháp bảo mật như cookie được bảo mật thích hợp (xem
phần 3.4) hoặc lưu trữ phiên HTML 5.
3.2.4 Xác minh rằng mã thông báo phiên được tạo bằng các thuật toán mật ✓ ✓ 331 7.1
mã đã được phê duyệt. (C6)
TLS hoặc một kênh truyền tải an toàn khác là bắt buộc để quản lý phiên. Điều này được đề cập trong chương Bảo
mật thông tin liên lạc.
NIST
# Description L1 L2 L3 CWE §
3.3.1 Xác minh rằng việc đăng xuất và hết hạn sẽ ✓ ✓ ✓ 613 7.1
làm mất hiệu lực của mã phiên, sao cho nút
quay lại hoặc bên phụ thuộc xuống không
tiếp tục phiên đã xác thực, bao gồm cả các
bên phụ thuộc. (C6)
3.3.2 Nếu trình xác thực cho phép người dùng 30 12 hours or 30 12 hours or 15 613 7.2
tiếp tục đăng nhập, hãy xác minh rằng xác days minutes of minutes of
thực lại xảy ra định kỳ cả khi được sử dụng inactivity, 2FA inactivity, with
tích cực hoặc sau một khoảng thời gian optional 2FA
không hoạt động. (C6)
3.3.3 Xác minh rằng ứng dụng chấm dứt tất cả các ✓ ✓ 613
phiên hoạt động khác sau khi thay đổi mật
khẩu thành công và điều này có hiệu lực
trên ứng dụng, đăng nhập liên kết (nếu có)
và bất kỳ bên phụ thuộc nào.
3.3.4 Xác minh rằng người dùng có thể xem và đăng ✓ ✓ 613 7.1
xuất khỏi bất kỳ hoặc tất cả các phiên và thiết
bị hiện đang hoạt động.
3.4.1 Xác minh rằng mã thông báo phiên dựa trên cookie có thuộc tính 'Bảo ✓ ✓ ✓ 614 7.1.1
mật' được đặt. (C6)
3.4.2 Xác minh rằng mã thông báo phiên dựa trên cookie có thuộc tính ✓ ✓ ✓ 1004 7.1.1
'HttpOnly' được đặt. (C6)
3.4.3 Xác minh rằng mã thông báo phiên dựa trên cookie sử dụng thuộc tính ✓ ✓ ✓ 16 7.1.1
'SameSite' để hạn chế việc tiếp xúc với các cuộc tấn công giả mạo yêu cầu
trên nhiều trang web. (C6)
3.4.4 Xác minh rằng mã thông báo phiên dựa trên cookie sử dụng tiền tố "Máy ✓ ✓ ✓ 16 7.1.1
chủ lưu trữ-" (xem tài liệu tham khảo) để cung cấp tính bảo mật cho
cookie phiên.
3.4.5 Xác minh rằng nếu ứng dụng được xuất bản dưới một tên miền với các ứng ✓ ✓ ✓ 16 7.1.1
dụng khác đặt hoặc sử dụng cookie phiên có thể ghi đè hoặc tiết lộ
cookie phiên, đặt thuộc tính đường dẫn trong mã thông báo phiên dựa
trên cookie bằng cách sử dụng đường dẫn chính xác nhất có thể. (C6)
NIST
# Description L1 L2 L3 CWE §
3.5.1 Xác minh ứng dụng không coi các mã thông báo OAuth và làm mới - là sự ✓ ✓ 290 7.1.2
hiện diện của người đăng ký và cho phép người dùng chấm dứt mối quan
hệ tin cậy với các ứng dụng được liên kết.
3.5.2 Xác minh ứng dụng sử dụng mã thông báo phiên thay vì khóa và bí mật ✓ ✓ 798
API tĩnh, ngoại trừ với các triển khai kế thừa.
3.5.3 Xác minh rằng mã thông báo phiên không trạng thái sử dụng chữ ký số, mã ✓ ✓ 345
hóa và các biện pháp đối phó khác để bảo vệ khỏi giả mạo, bao bọc, phát
lại, mật mã rỗng và các cuộc tấn công thay thế khóa.
NIST
# Description L1 L2 L3 CWE §
3.6.1 Xác minh rằng các bên phụ thuộc chỉ định thời gian xác thực tối đa cho ✓ 613 7.2.1
các CSP và các CSP xác thực lại người đăng ký nếu họ chưa sử dụng
phiên trong khoảng thời gian đó.
3.6.2 Xác minh rằng các CSP thông báo cho các bên phụ thuộc về sự kiện xác ✓ 613 7.2.1
thực cuối cùng, để cho phép RP xác định xem họ có cần xác thực lại
người dùng hay không.
NIST
# Description L1 L2 L3 CWE §
3.7.1 Xác minh ứng dụng đảm bảo một phiên đăng nhập hợp lệ hoặc yêu ✓ ✓ ✓ 778
cầu xác thực lại hoặc xác minh phụ trước khi cho phép bất kỳ giao
dịch nhạy cảm hoặc sửa đổi tài khoản nào.
References
Để biết thêm thông tin, hãy xem thêm:
• OWASP Testing Guide 4.0: Session Management Testing
• OWASP Session Management Cheat Sheet
• Set-Cookie Host- prefix details
4.1.1 Xác minh rằng ứng dụng thực thi các quy tắc kiểm soát truy cập trên lớp dịch vụ ✓ ✓ ✓ 602
đáng tin cậy, đặc biệt nếu kiểm soát truy cập phía máy khách có mặt và có thể bị
bỏ qua. (kiến thức L1 có trong các chương trình đào tạo CEH,Pentest+,CPENT)
4.1.2 Xác minh rằng tất cả các thuộc tính dữ liệu và người dùng cũng như thông tin chính ✓ ✓ ✓ 639
sách được sử dụng bởi các kiểm soát truy cập không thể bị thao túng bởi người
dùng cuối trừ khi được ủy quyền cụ thể.
4.1.3 Xác minh rằng nguyên tắc ít đặc quyền nhất tồn tại - người dùng chỉ có thể truy ✓ ✓ ✓ 285
cập các chức năng, tệp dữ liệu, URL, bộ điều khiển, dịch vụ và các tài nguyên khác
mà họ có quyền cụ thể. Điều này ngụ ý bảo vệ chống lại sự giả mạo và nâng cao
đặc quyền. (CEH,Pentest+,CPENT)
4.1.4 Xác minh rằng nguyên tắc từ chối theo mặc định tồn tại, theo đó người dùng / ✓ ✓ ✓ 276
vai trò mới bắt đầu với quyền tối thiểu hoặc không có và người dùng / vai trò
không nhận được quyền truy cập vào các tính năng mới cho đến khi quyền truy
cập được chỉ định rõ ràng. (CEH,Pentest+,CPENT)
4.1.5 Xác minh rằng kiểm soát truy cập không thành công một cách an toàn bao gồm cả ✓ ✓ ✓ 285
khi một ngoại lệ xảy ra. (CEH,Pentest+,CPENT)
4.2.1 Xác minh rằng dữ liệu nhạy cảm và API được bảo vệ chống lại các cuộc tấn công ✓ ✓ ✓ 639
đối tượng trực tiếp nhắm vào việc tạo, đọc, cập nhật và xóa bản ghi, chẳng hạn
như tạo hoặc cập nhật bản ghi của người khác, xem bản ghi của mọi người hoặc
xóa tất cả bản ghi.
4.2.2 Xác minh rằng ứng dụng hoặc khung thực thi cơ chế chống CSRF mạnh mẽ ✓ ✓ ✓ 352
để bảo vệ chức năng đã được xác thực và chống tự động hóa hiệu quả hoặc
chống CSRF bảo vệ chức năng chưa được xác thực. (CEH,Pentest+,CPENT)
4.3.1Xác minh giao diện quản trị sử dụng xác thực đa yếu tố thích hợp để ngăn ✓ ✓ ✓ 419
chặn việc sử dụng trái phép.
OWASP Application Security Verification Standard 4.0 36
# Description L1 L2 L3 CWE
4.3.2 Xác minh rằng duyệt thư mục bị vô hiệu hóa trừ khi có chủ ý muốn. Ngoài ra, các ✓ ✓ ✓ 548
ứng dụng không được phép khám phá hoặc tiết lộ siêu dữ liệu tệp hoặc thư mục,
chẳng hạn như thư mục Thumbs.db, .DS_Store, .git hoặc .svn.
4.3.3 Xác minh rằng ứng dụng có ủy quyền bổ sung (chẳng hạn như nâng cấp hoặc xác ✓ ✓ 732
thực thích ứng) cho các hệ thống có giá trị thấp hơn và / hoặc phân tách nhiệm
vụ đối với các ứng dụng giá trị cao để thực thi các biện pháp kiểm soát chống
gian lận theo rủi ro của ứng dụng và
gian lận trong quá khứ.
References
For more information, see also:
• OWASP Testing Guide 4.0: Authorization
• OWASP Cheat Sheet: Access Control
• OWASP CSRF Cheat Sheet
• OWASP REST Cheat Sheet
• CEH VIETNAM
# Description L1 L2 L3 CWE
5.1.1 Xác minh rằng ứng dụng có khả năng bảo vệ chống lại các cuộc tấn công ô nhiễm ✓ ✓ ✓ 235
tham số HTTP, đặc biệt nếu khung ứng dụng không phân biệt nguồn của các tham
số yêu cầu (GET, POST, cookie, tiêu đề hoặc các biến môi trường).
5.1.2 Xác minh rằng các khuôn khổ bảo vệ khỏi các cuộc tấn công gán tham số hàng ✓ ✓ ✓ 915
loạt hoặc ứng dụng có các biện pháp đối phó để bảo vệ chống lại việc gán tham
số không an toàn, chẳng hạn như đánh dấu các trường riêng tư hoặc tương tự.
(CEH,Pentest+,CPENT)
5.1.3 Xác minh rằng tất cả đầu vào (trường biểu mẫu HTML, yêu cầu REST, tham số URL, ✓ ✓ ✓ 20
tiêu đề HTTP, cookie, tệp lô, nguồn cấp dữ liệu RSS, v.v.) được xác thực bằng cách
sử dụng xác thực tích cực (danh sách trắng). (CEH,Pentest+,CPENT)
5.1.4 Xác minh rằng dữ liệu có cấu trúc được nhập và xác thực chặt chẽ dựa trên một ✓ ✓ ✓ 20
lược đồ đã xác định bao gồm các ký tự, độ dài và mẫu cho phép (ví dụ: số thẻ tín
dụng hoặc số điện thoại hoặc xác thực rằng hai trường liên quan là hợp lý, chẳng
hạn như kiểm tra vùng ngoại ô và mã zip / mã bưu điện khớp nhau).
(CEH,Pentest+,CPENT)
5.1.5 Xác minh rằng chuyển hướng và chuyển tiếp URL chỉ cho phép các đích trong ✓ ✓ ✓ 601
danh sách cho phép hoặc hiển thị cảnh báo khi chuyển hướng đến nội dung
OWASP Application Security Verification Standard 4.0 38
có khả năng không đáng tin cậy.
5.2.1 Xác minh rằng tất cả đầu vào HTML không đáng tin cậy từ trình chỉnh sửa ✓ ✓ ✓ 116
WYSIWYG hoặc tương tự đã được khử trùng đúng cách bằng thư viện trình làm
sạch HTML hoặc tính năng khung. (CEH,Pentest+,CPENT)
5.2.2 Xác minh rằng dữ liệu phi cấu trúc đã được làm sạch để thực thi các biện pháp an ✓ ✓ ✓ 138
toàn như ký tự và độ dài cho phép.
5.2.3 Xác minh rằng ứng dụng làm sạch thông tin đầu vào của người dùng trước khi ✓ ✓ ✓ 147
chuyển đến hệ thống thư để bảo vệ khỏi việc đưa vào SMTP hoặc IMAP.
5.2.4 Xác minh rằng ứng dụng tránh sử dụng eval () hoặc các tính năng thực thi mã ✓ ✓ ✓ 95
động khác. Trong trường hợp không có giải pháp thay thế, bất kỳ đầu vào của
người dùng nào được đưa vào phải được làm sạch hoặc hộp cát trước khi được
thực thi.
5.2.5 Xác minh rằng ứng dụng bảo vệ khỏi các cuộc tấn công đưa vào khuôn mẫu bằng ✓ ✓ ✓ 94
cách đảm bảo rằng bất kỳ đầu vào của người dùng nào được đưa vào đều được
khử trùng hoặc hộp cát.
5.2.6 Xác minh rằng ứng dụng bảo vệ khỏi các cuộc tấn công SSRF, bằng cách xác thực ✓ ✓ ✓ 918
hoặc khử trùng dữ liệu không đáng tin cậy hoặc siêu dữ liệu tệp HTTP, chẳng hạn
như tên tệp và trường nhập URL, sử dụng danh sách trắng các giao thức, miền,
đường dẫn và cổng.
5.2.7 Xác minh rằng ứng dụng khử trùng, vô hiệu hóa hoặc hộp cát nội dung có thể ✓ ✓ ✓ 159
tập lệnh SVG do người dùng cung cấp, đặc biệt là khi chúng liên quan đến XSS
do các tập lệnh nội tuyến và ForeignObject.
5.2.8 Xác minh rằng ứng dụng khử trùng, vô hiệu hóa hoặc hộp cát nội dung ngôn ✓ ✓ ✓ 94
ngữ mẫu biểu thức hoặc tập lệnh do người dùng cung cấp, chẳng hạn như
Markdown, CSS hoặc
Biểu định kiểu XSL, BBCode hoặc tương tự.
# Description L1 L2 L3 CWE
5.3.1 Xác minh rằng mã hóa đầu ra phù hợp với trình thông dịch và ngữ cảnh được yêu ✓ ✓ ✓ 116
cầu. Ví dụ: sử dụng bộ mã hóa dành riêng cho các giá trị HTML, thuộc tính HTML,
JavaScript, Tham số URL, tiêu đề HTTP, SMTP và các bộ khác khi ngữ cảnh yêu cầu,
đặc biệt là từ các đầu vào không đáng tin cậy (ví dụ: tên có Unicode hoặc dấu
nháy đơn, chẳng hạn như ね こ hoặc O'Hara). (Security+)
5.3.2 Xác minh rằng mã hóa đầu ra bảo toàn bộ ký tự và ngôn ngữ đã chọn của người ✓ ✓ ✓ 176
dùng, sao cho bất kỳ điểm ký tự Unicode nào đều hợp lệ và được xử lý an toàn.
(Security+)
5.3.3 Xác minh rằng tính năng nhận biết ngữ cảnh, tốt nhất là tự động - hoặc tệ nhất ✓ ✓ ✓ 79
là thoát thủ công - bảo vệ chống lại XSS được phản ánh, lưu trữ và dựa trên
OWASP Application Security Verification Standard 4.0 40
DOM. (CEH,Pentest+,CPENT)
5.3.4 Xác minh rằng lựa chọn dữ liệu hoặc truy vấn cơ sở dữ liệu (ví dụ: SQL, HQL, ORM, ✓ ✓ ✓ 89
NoSQL) sử dụng truy vấn được tham số hóa, ORM, khung thực thể hoặc được bảo
vệ khỏi các cuộc tấn công đưa vào cơ sở dữ liệu. (CEH,Pentest+,CPENT)
5.3.5 Xác minh rằng nếu không có cơ chế tham số hóa hoặc cơ chế an toàn hơn, mã ✓ ✓ ✓ 89
hóa đầu ra theo ngữ cảnh cụ thể được sử dụng để bảo vệ chống lại các cuộc tấn
công chèn, chẳng hạn như sử dụng SQL thoát để bảo vệ chống lại việc đưa vào
SQL. (CEH,Pentest+,CPENT) (Security+)
5.3.6 Xác minh rằng ứng dụng dự án chống lại các cuộc tấn công chèn JavaScript hoặc ✓ ✓ ✓ 830
JSON, bao gồm cả các cuộc tấn công đối với eval, JavaScript từ xa bao gồm, bỏ
qua CSP, DOM XSS và đánh giá biểu thức JavaScript. (CEH,Pentest+,CPENT)
5.3.7 Xác minh rằng ứng dụng bảo vệ khỏi các lỗ hổng LDAP Injection hoặc các biện ✓ ✓ ✓ 943
pháp kiểm soát bảo mật cụ thể để ngăn chặn LDAP Injection đã được triển khai.
(CPENT,eCPPT)
5.3.8 Xác minh rằng ứng dụng bảo vệ khỏi việc đưa lệnh vào hệ điều hành và các lệnh ✓ ✓ ✓ 78
gọi hệ điều hành sử dụng truy vấn hệ điều hành được tham số hóa hoặc sử dụng
mã hóa đầu ra dòng lệnh theo ngữ cảnh. (CEH, GPEN,eJPT)
5.3.9 Xác minh rằng ứng dụng bảo vệ khỏi các cuộc tấn công Bao gồm tệp cục bộ (LFI) ✓ ✓ ✓ 829
hoặc Bao gồm tệp từ xa (CEH,Pentest+,CPENT).
5.3.10 Xác minh rằng ứng dụng bảo vệ khỏi các cuộc tấn công chèn XPath hoặc chèn ✓ ✓ ✓ 643
XML. (CEH,Pentest+,CPENT)
Lưu ý: Sử dụng truy vấn tham số hóa hoặc SQL thoát không phải lúc nào cũng đủ; tên bảng và cột, ORDER BY, v.v.,
không thể thoát được. Việc bao gồm dữ liệu đã thoát do người dùng cung cấp trong các trường này dẫn đến truy
vấn không thành công hoặc đưa vào SQL.
Lưu ý: Định dạng SVG rõ ràng cho phép tập lệnh ECMA trong hầu hết các ngữ cảnh, vì vậy có thể không chặn hoàn
toàn tất cả các vectơ SVG XSS. Nếu cần tải lên SVG, chúng tôi đặc biệt khuyên bạn nên phân phát các tệp đã tải lên
này dưới dạng văn bản / thuần túy hoặc sử dụng miền nội dung do người dùng cung cấp riêng biệt để ngăn XSS
thành công tiếp quản ứng dụng.
# Description L1 L2 L3 CWE
5.4.1 Xác minh rằng ứng dụng sử dụng chuỗi an toàn cho bộ nhớ, sao chép bộ ✓ ✓ 120
nhớ an toàn hơn và số học con trỏ để phát hiện hoặc ngăn chặn tràn ngăn
xếp, bộ đệm hoặc đống.
5.4.2 Xác minh rằng các chuỗi định dạng không nhận đầu vào thù địch tiềm ẩn và không ✓ ✓ 134
đổi.
5.4.3 Xác minh rằng các kỹ thuật xác thực dấu hiệu, phạm vi và đầu vào được sử ✓ ✓ 190
dụng để ngăn chặn tràn số nguyên.
5.5.1 Xác minh rằng các đối tượng được tuần tự hóa sử dụng kiểm tra tính toàn vẹn ✓ ✓ ✓ 502
hoặc được mã hóa để ngăn chặn việc tạo đối tượng thù địch hoặc giả mạo dữ
liệu. (Security+,CND)
5.5.3 Xác minh rằng việc giải mã dữ liệu không đáng tin cậy được tránh hoặc được bảo ✓ ✓ ✓ 502
vệ trong cả mã tùy chỉnh và thư viện của bên thứ ba (chẳng hạn như trình phân
tích cú pháp JSON, XML và YAML).
5.5.4 Xác minh rằng khi phân tích cú pháp JSON trong trình duyệt hoặc phần phụ trợ ✓ ✓ ✓ 95
dựa trên JavaScript, JSON.parse được sử dụng để phân tích cú pháp tài liệu JSON.
Không sử dụng eval () để phân tích cú pháp JSON.
References
Để biết thêm thông tin, hãy xem thêm:
• OWASP Testing Guide 4.0: Input Validation Testing
• OWASP Cheat Sheet: Input Validation
• OWASP Testing Guide 4.0: Testing for HTTP Parameter Pollution
• OWASP LDAP Injection Cheat Sheet
• OWASP Testing Guide 4.0: Client Side Testing
• OWASP Cross Site Scripting Prevention Cheat Sheet
• OWASP DOM Based Cross Site Scripting Prevention Cheat Sheet
• OWASP Java Encoding Project
• OWASP Mass Assignment Prevention Cheat Sheet
• DOMPurify - Client-side HTML Sanitization Library
• XML External Entity (XXE) Prevention Cheat Sheet)
Để biết thêm thông tin về tự động thoát, vui lòng
xem:
• Reducing XSS by way of Automatic Context-Aware Escaping in Template Systems
• AngularJS Strict Contextual Escaping
• AngularJS ngBind
• Angular Sanitization
• Angular Template Security
• ReactJS Escaping
• Improperly Controlled Modification of Dynamically-Determined Object Attributes
Để biết thêm thông tin về deserialization, vui lòng xem:
• OWASP Deserialization Cheat Sheet
• OWASP Deserialization of Untrusted Data Guide
• Và tham gia huấn luyện tại CEH VIETNAM
# Description L1 L2 L3 CWE
6.1.1 Xác minh rằng dữ liệu riêng tư được quản lý được lưu trữ mã hóa khi ở chế độ ✓ ✓ 311
nghỉ, chẳng hạn như thông tin nhận dạng cá nhân (PII), thông tin cá nhân nhạy cảm
hoặc dữ liệu được đánh giá có khả năng tuân theo GDPR của Liên minh Châu Âu.
6.1.2 Xác minh rằng dữ liệu sức khỏe theo quy định được lưu trữ mã hóa khi ở chế độ ✓ ✓ 311
nghỉ, chẳng hạn như hồ sơ y tế, chi tiết thiết bị y tế hoặc hồ sơ nghiên cứu ẩn
danh.
6.1.3 Xác minh rằng dữ liệu tài chính theo quy định được lưu trữ mã hóa khi ở chế độ ✓ ✓ 311
nghỉ, chẳng hạn như tài khoản tài chính, lịch sử mặc định hoặc tín dụng, hồ sơ
thuế, lịch sử thanh toán, người thụ hưởng hoặc hồ sơ nghiên cứu hoặc thị
trường ẩn danh.
V6.2 Algorithms
Những tiến bộ gần đây trong mật mã có nghĩa là các thuật toán an toàn trước đây và độ dài khóa không còn an toàn
hoặc đủ để bảo vệ dữ liệu. Do đó, có thể thay đổi thuật toán.
Mặc dù phần này không được kiểm tra khả năng thâm nhập dễ dàng, nhưng các nhà phát triển nên coi toàn bộ phần
này là bắt buộc mặc dù L1 bị thiếu trong hầu hết các mục.
# Description L1 L2 L3 CWE
6.2.1 Xác minh rằng tất cả các mô-đun mật mã bị lỗi một cách an toàn và các lỗi được ✓ ✓ ✓ 310
xử lý theo cách không kích hoạt các cuộc tấn công Padding Oracle.
6.2.2 Xác minh rằng các thuật toán, chế độ và thư viện mật mã đã được ngành công ✓ ✓ 327
nghiệp chứng minh hoặc được chính phủ phê duyệt được sử dụng, thay vì mật mã
được mã hóa tùy chỉnh. (C8)
6.2.3 Xác minh rằng vectơ khởi tạo mã hóa, cấu hình mật mã và chế độ khối được định ✓ ✓ 326
cấu hình an toàn bằng cách sử dụng lời khuyên mới nhất.
6.2.4 Xác minh rằng số ngẫu nhiên, thuật toán mã hóa hoặc băm, độ dài khóa, vòng, ✓ ✓ 326
mật mã hoặc chế độ, có thể được định cấu hình lại, nâng cấp hoặc hoán đổi bất
kỳ lúc nào, để bảo vệ chống lại sự cố mật mã. (C8)
6.2.6 Xác minh rằng các số không, vectơ khởi tạo và các số sử dụng một lần khác không ✓ ✓ 326
được sử dụng nhiều lần với một khóa mã hóa nhất định. Phương pháp tạo phải
phù hợp với thuật toán đang được sử dụng.
6.2.7 Xác minh rằng dữ liệu được mã hóa được xác thực thông qua chữ ký, chế độ mật ✓ 326
mã được xác thực hoặc HMAC để đảm bảo rằng bản mã không bị thay đổi bởi
một bên trái phép.
6.2.8 Xác minh rằng tất cả các hoạt động mật mã là thời gian không đổi, không có hoạt ✓ 385
động 'ngắn mạch' trong so sánh, tính toán hoặc trả về, để tránh rò rỉ thông tin.
# Description L1 L2 L3 CWE
6.3.1 Xác minh rằng tất cả các số ngẫu nhiên, tên tệp ngẫu nhiên, GUID ngẫu nhiên và ✓ ✓ 338
chuỗi ngẫu nhiên được tạo bằng cách sử dụng trình tạo số ngẫu nhiên an toàn
bằng mật mã đã được phê duyệt của mô-đun mật mã khi những giá trị ngẫu nhiên
này không thể đoán được bởi kẻ tấn công.
6.3.2 Xác minh rằng các GUID ngẫu nhiên được tạo bằng cách sử dụng thuật toán ✓ ✓ 338
GUID v4 và trình tạo số giả ngẫu nhiên bảo mật về mặt mật mã (CSPRNG). Các
GUID được tạo bằng cách sử dụng các trình tạo số giả ngẫu nhiên khác có thể
dự đoán được.
6.3.3 Xác minh rằng các số ngẫu nhiên được tạo bằng entropy thích hợp ngay cả khi ứng ✓ 338
dụng đang tải nặng hoặc ứng dụng đó bị giảm chất lượng trong những trường hợp
như vậy.
# Description L1 L2 L3 CWE
6.4.1 Xác minh rằng giải pháp quản lý bí mật như kho tiền khóa được sử dụng để tạo, ✓ ✓ 798
lưu trữ, kiểm soát quyền truy cập và phá hủy bí mật một cách an toàn. (C8)
6.4.2 Xác minh rằng tài liệu chính không được tiếp xúc với ứng dụng mà thay vào ✓ ✓ 320
đó sử dụng mô-đun bảo mật biệt lập như một kho tiền cho các hoạt động
mật mã. (C8)
References
Để biết thêm thông tin, hãy xem thêm:
• OWASP Testing Guide 4.0: Testing for weak Cryptography
• OWASP Cheat Sheet: Cryptographic Storage
• FIPS 140-2
OWASP Application Security Verification Standard 4.0 47
OWASP Application Security Verification Standard 4.0 48
V7: Error Handling and Logging Verification Requirements
Control Objective
Mục tiêu chính của việc ghi nhật ký và xử lý lỗi là cung cấp thông tin hữu ích cho người dùng, quản trị viên và
nhóm ứng phó sự cố. Mục tiêu không phải là tạo ra một lượng lớn nhật ký, mà là nhật ký chất lượng cao, với
nhiều tín hiệu hơn là tiếng ồn bị loại bỏ.
Nhật ký chất lượng cao thường chứa dữ liệu nhạy cảm và phải được bảo vệ theo luật hoặc chỉ thị về
quyền riêng tư dữ liệu địa phương. Điều này nên bao gồm:
• • Không thu thập hoặc ghi lại thông tin nhạy cảm trừ khi được yêu cầu cụ thể.
• • Đảm bảo tất cả thông tin đã ghi được xử lý an toàn và được bảo vệ theo phân loại dữ liệu của nó.
• • Đảm bảo rằng nhật ký không được lưu trữ mãi mãi, nhưng có thời gian tồn tại tuyệt đối càng ngắn càng tốt.
Nếu nhật ký chứa dữ liệu riêng tư hoặc nhạy cảm, định nghĩa về dữ liệu đó khác nhau giữa các quốc gia, thì nhật
ký sẽ trở thành một số thông tin nhạy cảm nhất được ứng dụng nắm giữ và do đó rất hấp dẫn đối với những kẻ
tấn công.
Điều quan trọng nữa là đảm bảo rằng ứng dụng bị lỗi một cách an toàn và các lỗi không tiết lộ thông tin không cần
thiết.
# Description L1 L2 L3 CWE
7.1.1 Xác minh rằng ứng dụng không ghi thông tin đăng nhập hoặc chi tiết thanh ✓ ✓ ✓ 532
toán. Mã thông báo phiên chỉ nên được lưu trữ trong nhật ký ở dạng băm,
không thể đảo ngược. (C9, C10)
7.1.2 Xác minh rằng ứng dụng không ghi lại các dữ liệu nhạy cảm khác như được định ✓ ✓ ✓ 532
nghĩa theo luật quyền riêng tư của địa phương hoặc chính sách bảo mật có liên
quan. (C9)
7.1.3 Xác minh rằng ứng dụng ghi nhật ký các sự kiện liên quan đến bảo mật bao gồm ✓ ✓ 778
các sự kiện xác thực thành công và không thành công, lỗi kiểm soát truy cập, lỗi
deserialization và lỗi xác thực đầu vào. (C5, C7)
7.1.4 Xác minh rằng mỗi sự kiện nhật ký bao gồm thông tin cần thiết cho phép điều tra ✓ ✓ 778
chi tiết về tiến trình khi một sự kiện xảy ra. (C9)
# Description L1 L2 L3 CWE
7.2.1 Xác minh rằng tất cả các quyết định xác thực đều được ghi lại mà không cần ✓ ✓ 778
lưu trữ mã định danh hoặc mật khẩu phiên nhạy cảm. Điều này sẽ bao gồm
các yêu cầu với siêu dữ liệu liên quan cần thiết cho các cuộc điều tra bảo
mật.
7.2.2 Xác minh rằng tất cả các quyết định kiểm soát truy cập có thể được ghi lại và tất cả ✓ ✓ 285
các quyết định không thành công đều được ghi lại. Điều này sẽ bao gồm các yêu
cầu với siêu dữ liệu liên quan cần thiết để bảo mật
điều tra.
# Description L1 L2 L3 CWE
7.3.1 Xác minh rằng ứng dụng mã hóa dữ liệu do người dùng cung cấp một cách ✓ ✓ 117
thích hợp để ngăn chặn việc đưa vào nhật ký. (C9)
7.3.2 Xác minh rằng tất cả các sự kiện được bảo vệ khỏi tiêm khi xem trong phần mềm ✓ ✓ 117
xem nhật ký. (C9)
7.3.3 Xác minh rằng nhật ký bảo mật được bảo vệ khỏi sự truy cập và sửa đổi trái phép. ✓ ✓ 200
(C9)
7.3.4 Xác minh rằng các nguồn thời gian được đồng bộ hóa với thời gian và múi giờ ✓ ✓
chính xác. Thực sự cân nhắc chỉ đăng nhập trong UTC nếu các hệ thống toàn
cầu để hỗ trợ phân tích pháp y sau sự cố. (C9)
Note: Mã hóa nhật ký (7.3.1) khó kiểm tra và xem xét bằng cách sử dụng các công cụ động tự động và kiểm tra
thâm nhập, nhưng các kiến trúc sư, nhà phát triển và người đánh giá mã nguồn nên coi đó là một yêu cầu L1.
# Description L1 L2 L3 CWE
7.4.1 Xác minh rằng một thông báo chung được hiển thị khi xảy ra lỗi không mong ✓ ✓ ✓ 210
muốn hoặc nhạy cảm về bảo mật, có thể có một ID duy nhất mà nhân viên hỗ
trợ có thể sử dụng để điều tra. (C10)
7.4.2 Xác minh rằng xử lý ngoại lệ (hoặc chức năng tương đương) được sử dụng trên cơ ✓ ✓ 544
sở mã để tính đến các điều kiện lỗi dự kiến và không mong muốn. (C10)
7.4.3 Xác minh rằng một trình xử lý lỗi "phương sách cuối cùng" được xác định sẽ bắt ✓ ✓ 460
tất cả các ngoại lệ không được xử lý. (C10)
Lưu ý: Một số ngôn ngữ nhất định, chẳng hạn như Swift và Go - và thông qua thực tiễn thiết kế thông thường - nhiều
OWASP Application Security Verification Standard 4.0 51
ngôn ngữ chức năng, không hỗ trợ các ngoại lệ hoặc các trình xử lý sự kiện cuối cùng. Trong trường hợp này, các kiến
trúc sư và nhà phát triển nên sử dụng
cách thức thân thiện với khuôn mẫu, ngôn ngữ hoặc khuôn khổ để đảm bảo rằng các ứng dụng có thể xử lý an toàn
các sự kiện đặc biệt, bất ngờ hoặc liên quan đến bảo mật.
References
Để biết thêm thông tin, hãy xem thêm:
• OWASP Testing Guide 4.0 content: Testing for Error Handling
8.1.1 Xác minh ứng dụng bảo vệ dữ liệu nhạy cảm không bị lưu vào bộ nhớ ✓ ✓ 524
đệm trong các thành phần máy chủ như bộ cân bằng tải và bộ nhớ đệm
ứng dụng.
8.1.2 Xác minh rằng tất cả các bản sao lưu trữ trong bộ nhớ cache hoặc tạm thời của ✓ ✓ 524
dữ liệu nhạy cảm được lưu trữ trên máy chủ được bảo vệ khỏi truy cập trái
phép hoặc bị xóa / làm mất hiệu lực sau khi người dùng được ủy quyền truy cập
vào dữ liệu nhạy cảm.
8.1.3 Xác minh ứng dụng giảm thiểu số lượng tham số trong một yêu cầu, chẳng hạn như ✓ ✓ 233
trường ẩn, biến Ajax, cookie và giá trị tiêu đề.
8.1.4 Xác minh ứng dụng có thể phát hiện và cảnh báo về số lượng yêu cầu bất thường, ✓ ✓ 770
chẳng hạn như theo IP, người dùng, tổng số mỗi giờ hoặc ngày hoặc bất kỳ điều gì
có ý nghĩa đối với ứng dụng.
8.1.5 Xác minh rằng việc sao lưu dữ liệu quan trọng thường xuyên được thực hiện và ✓ 19
kiểm tra việc khôi phục dữ liệu đã được thực hiện.
8.1.6 Xác minh rằng các bản sao lưu được lưu trữ an toàn để ngăn dữ liệu bị đánh cắp ✓ 19
hoặc bị hỏng.
8.2.1 Xác minh rằng ứng dụng đặt đủ tiêu đề chống bộ nhớ đệm để dữ liệu nhạy cảm ✓ ✓ ✓ 525
không được lưu vào bộ nhớ đệm trong các trình duyệt hiện đại.
8.2.2 Xác minh rằng dữ liệu được lưu trữ trong bộ nhớ phía máy khách (chẳng hạn như ✓ ✓ ✓ 922
bộ nhớ cục bộ HTML5, bộ nhớ phiên, IndexedDB, cookie thông thường hoặc cookie
Flash) không chứa dữ liệu nhạy cảm hoặc PII.
OWASP Application Security Verification Standard 4.0 53
# Description L1 L2 L3 CWE
8.2.3 Xác minh rằng dữ liệu đã xác thực bị xóa khỏi bộ nhớ máy khách, chẳng hạn như ✓ ✓ ✓ 922
DOM của trình duyệt, sau khi máy khách hoặc phiên bị chấm dứt.
# Description L1 L2 L3 CWE
8.3.1 Xác minh rằng dữ liệu nhạy cảm được gửi đến máy chủ trong tiêu đề hoặc nội ✓ ✓ ✓ 319
dung thư HTTP và các tham số chuỗi truy vấn từ bất kỳ động từ HTTP nào
không chứa dữ liệu nhạy cảm.
8.3.2 Xác minh rằng người dùng có phương pháp xóa hoặc xuất dữ liệu của họ theo yêu ✓ ✓ ✓ 212
cầu. (Security+, Nâng cao nhận thức An Toàn Thông Tin)
8.3.3 Xác minh rằng người dùng được cung cấp ngôn ngữ rõ ràng liên quan đến việc thu ✓ ✓ ✓ 285
thập và sử dụng thông tin cá nhân được cung cấp và người dùng đã đồng ý chọn
tham gia cho việc sử dụng dữ liệu đó trước khi nó được sử dụng theo bất kỳ cách
nào.
8.3.4 Xác minh rằng tất cả dữ liệu nhạy cảm do ứng dụng tạo và xử lý đã được xác ✓ ✓ ✓ 200
định và đảm bảo rằng có chính sách về cách xử lý dữ liệu nhạy cảm. ((Security+,
Nâng cao nhận thức An Toàn Thông Tin))
8.3.5 Xác minh truy cập dữ liệu nhạy cảm được kiểm tra (mà không cần ghi nhật ký ✓ ✓ 532
chính dữ liệu nhạy cảm), nếu dữ liệu được thu thập theo các chỉ thị bảo vệ dữ liệu
có liên quan hoặc nơi yêu cầu ghi nhật ký truy cập.
8.3.6 Xác minh rằng thông tin nhạy cảm có trong bộ nhớ được ghi đè ngay khi không ✓ ✓ 226
còn cần thiết để giảm thiểu các cuộc tấn công kết xuất bộ nhớ, sử dụng số 0 hoặc
dữ liệu ngẫu nhiên.
8.3.7 Xác minh rằng thông tin nhạy cảm hoặc thông tin cá nhân được yêu cầu mã hóa, ✓ ✓ 327
được mã hóa bằng các thuật toán đã được phê duyệt cung cấp cả tính bảo mật và
tính toàn vẹn. ((Security+, Nâng cao nhận thức An Toàn Thông Tin))
8.3.8 Xác minh rằng thông tin cá nhân nhạy cảm phải tuân theo phân loại lưu giữ ✓ ✓ 285
dữ liệu, chẳng hạn như dữ liệu cũ hoặc đã lỗi thời sẽ bị xóa tự động, theo
lịch trình hoặc khi tình huống yêu cầu.
Khi xem xét việc bảo vệ dữ liệu, điều cần cân nhắc chính là trích xuất hoặc sửa đổi hàng loạt hoặc sử dụng quá
mức. Ví dụ, nhiều hệ thống mạng xã hội chỉ cho phép người dùng thêm 100 người bạn mới mỗi ngày, nhưng
những yêu cầu này đến từ hệ thống nào không quan trọng. Một nền tảng ngân hàng có thể muốn chặn hơn 5 giao
OWASP Application Security Verification Standard 4.0 54
dịch mỗi giờ chuyển hơn 1000 euro tiền cho các tổ chức bên ngoài. Mỗi hệ thống
các yêu cầu có thể rất khác nhau, vì vậy quyết định "bất thường" phải xem xét mô hình đe dọa và rủi ro kinh
doanh. Tiêu chí quan trọng là khả năng phát hiện, ngăn chặn hoặc tốt nhất là ngăn chặn các hành động hàng loạt
bất thường như vậy.
References
Để biết thêm thông tin, hãy xem thêm:
• Consider using Security Headers website to check security and anti-caching headers
• OWASP Secure Headers project
• OWASP Privacy Risks Project
• OWASP User Privacy Protection Cheat Sheet
• European Union General Data Protection Regulation (GDPR) overview
• European Union Data Protection Supervisor - Internet Privacy Engineering Network
# Description L1 L2 L3 CWE
9.1.1 Xác minh rằng TLS bảo mật được sử dụng cho tất cả kết nối máy khách và không ✓ ✓ ✓ 319
rơi vào các giao thức không an toàn hoặc không được mã hóa. (C8)
9.1.2 Xác minh bằng cách sử dụng các công cụ kiểm tra TLS trực tuyến hoặc cập nhật ✓ ✓ ✓ 326
mà chỉ các thuật toán, mật mã và giao thức mạnh được kích hoạt, với các thuật
toán và mật mã mạnh nhất được đặt làm ưu tiên.
9.1.3 Xác minh rằng các phiên bản cũ của giao thức SSL và TLS, thuật toán, mật mã và ✓ ✓ ✓ 326
cấu hình bị vô hiệu hóa, chẳng hạn như SSLv2, SSLv3 hoặc TLS 1.0 và TLS 1.1. Phiên
bản mới nhất của TLS phải là bộ mật mã ưu tiên.
# Description L1 L2 L3 CWE
9.2.1 Xác minh rằng các kết nối đến và đi từ máy chủ sử dụng chứng chỉ TLS đáng tin ✓ ✓ 295
cậy. Khi các chứng chỉ được tạo nội bộ hoặc tự ký được sử dụng, máy chủ phải
được định cấu hình để chỉ tin cậy các CA nội bộ cụ thể và các chứng chỉ tự ký cụ
thể. Tất cả những người khác nên bị từ chối.
9.2.3 Xác minh rằng tất cả các kết nối được mã hóa với hệ thống bên ngoài liên ✓ ✓ 287
quan đến thông tin hoặc chức năng nhạy cảm đều được xác thực.
9.2.4 Xác minh rằng việc thu hồi chứng chỉ thích hợp, chẳng hạn như Ghim Giao thức ✓ ✓ 299
Trạng thái Chứng chỉ Trực tuyến (OCSP), được bật và định cấu hình.
9.2.5 Xác minh rằng các lỗi kết nối TLS phụ trợ đã được ghi nhật ký. ✓ 544
References
Để biết thêm thông tin, hãy xem thêm:
• OWASP – TLS Cheat Sheet
• Ghi chú về “Các chế độ TLS được phê duyệt”. Trước đây, ASVS đề cập đến tiêu chuẩn Hoa Kỳ FIPS 140-2,
nhưng là tiêu chuẩn toàn cầu, việc áp dụng các tiêu chuẩn Hoa Kỳ có thể khó khăn, mâu thuẫn hoặc khó
hiểu. Một phương pháp tốt hơn để đạt được sự tuân thủ 9.1.3 sẽ là xem xét các hướng dẫn như Mozilla's
Server Side TLS hoặc generate known good configurations, và sử dụng các công cụ đánh giá TLS đã biết,
chẳng hạn như sslyze, các trình quét lỗ hổng bảo mật khác nhau hoặc các dịch vụ đánh giá trực tuyến TLS
đáng tin cậy để có được mức độ bảo mật mong muốn. Nói chung, chúng tôi thấy việc không tuân thủ phần
này là việc sử dụng mật mã và thuật toán lỗi thời hoặc không an toàn, thiếu tính bảo mật chuyển tiếp hoàn
hảo, giao thức SSL lỗi thời hoặc không an toàn, mật mã ưu tiên yếu, v.v..
# Description L1 L2 L3 CWE
10.1.1 Xác minh rằng một công cụ phân tích mã đang được sử dụng có thể phát hiện ✓ 749
mã độc hại tiềm ẩn, chẳng hạn như chức năng thời gian, hoạt động tệp không an
toàn và kết nối mạng.
# Description L1 L2 L3 CWE
10.2.1 Xác minh rằng mã nguồn ứng dụng và thư viện của bên thứ ba không chứa khả ✓ ✓ 359
năng thu thập dữ liệu hoặc nhà riêng của điện thoại trái phép. Khi chức năng đó
tồn tại, hãy xin phép người dùng để nó hoạt động trước khi thu thập bất kỳ dữ
liệu nào.
10.2.2 Xác minh rằng ứng dụng không yêu cầu các quyền không cần thiết hoặc quá mức ✓ ✓ 272
đối với các tính năng hoặc cảm biến liên quan đến quyền riêng tư, chẳng hạn
như danh bạ, máy ảnh, micrô hoặc vị trí.
10.2.3 Xác minh rằng mã nguồn ứng dụng và thư viện của bên thứ ba không chứa các ✓ 507
cửa sau, chẳng hạn như các tài khoản hoặc khóa không có tài liệu được mã
hóa cứng hoặc bổ sung, mã làm xáo trộn mã, các blog nhị phân không có tài
liệu, rootkit hoặc chống gỡ lỗi, các tính năng gỡ lỗi không an toàn, hoặc các
tính năng khác ngày tháng, không an toàn hoặc ẩn
chức năng có thể được sử dụng độc hại nếu bị phát hiện.
10.2.4 Xác minh rằng mã nguồn ứng dụng và thư viện của bên thứ ba không chứa bom ✓ 511
hẹn giờ bằng cách tìm kiếm các chức năng liên quan đến ngày và giờ.
10.2.5 Xác minh rằng mã nguồn ứng dụng và các thư viện của bên thứ ba không chứa mã ✓ 511
độc hại, chẳng hạn như tấn công salami, bỏ qua logic hoặc bom logic.
10.2.6 Xác minh rằng mã nguồn ứng dụng và thư viện của bên thứ ba không chứa ✓ 507
trứng Phục sinh hoặc bất kỳ chức năng không mong muốn nào khác.
# Description L1 L2 L3 CWE
10.3.1 Xác minh rằng nếu ứng dụng có tính năng tự động cập nhật máy khách hoặc ✓ ✓ ✓ 16
máy chủ, thì các bản cập nhật sẽ được tải qua các kênh an toàn và được ký điện
tử. Mã cập nhật phải xác thực chữ ký số của bản cập nhật trước khi cài đặt
hoặc thực hiện cập nhật.
10.3.2 Xác minh rằng ứng dụng sử dụng các biện pháp bảo vệ toàn vẹn, chẳng hạn như ✓ ✓ ✓ 353
ký mã hoặc tính toàn vẹn của tài nguyên phụ. Ứng dụng không được tải hoặc
thực thi mã từ các nguồn không đáng tin cậy, chẳng hạn như tải bao gồm, mô-
đun, plugin, mã hoặc thư viện từ các nguồn không đáng tin cậy hoặc Internet.
10.3.3 Xác minh rằng ứng dụng có khả năng bảo vệ khỏi bị chiếm đoạt miền phụ nếu ✓ ✓ ✓ 350
ứng dụng dựa vào các mục nhập DNS hoặc miền phụ DNS, chẳng hạn như tên
miền đã hết hạn, con trỏ DNS hoặc CNAME lỗi thời, các dự án đã hết hạn tại kho
lưu trữ mã nguồn công khai hoặc API đám mây tạm thời , các chức năng không có
máy chủ hoặc nhóm lưu trữ (autogen-bucket-id.cloud.example.com) hoặc tương
tự. Các biện pháp bảo vệ có thể bao gồm việc đảm bảo rằng các tên DNS được
các ứng dụng sử dụng thường xuyên được kiểm tra xem có hết hạn hay không
hoặc
biến đổi.
References
• Hostile Sub-Domain Takeover, Detectify Labs
• Hijacking of abandoned subdomains part 2, Detectify Labs
# Description L1 L2 L3 CWE
11.1.1 Xác minh ứng dụng sẽ chỉ xử lý các luồng logic nghiệp vụ cho cùng một người ✓ ✓ ✓ 841
dùng theo thứ tự bước tuần tự và không bỏ qua các bước.
11.1.2 Xác minh ứng dụng sẽ chỉ xử lý các luồng logic nghiệp vụ với tất cả các bước ✓ ✓ ✓ 779
được xử lý trong thời gian thực tế của con người, tức là các giao dịch không
được gửi quá nhanh.
11.1.3 Xác minh rằng ứng dụng có các giới hạn thích hợp cho các hành động hoặc ✓ ✓ ✓ 770
giao dịch kinh doanh cụ thể được thực thi chính xác trên cơ sở mỗi người
dùng.
11.1.4 Xác minh rằng ứng dụng có đủ các biện pháp kiểm soát chống tự động hóa để ✓ ✓ ✓ 770
phát hiện và bảo vệ khỏi sự xâm nhập dữ liệu, yêu cầu logic nghiệp vụ quá mức,
tải lên quá nhiều tệp hoặc tấn công từ chối dịch vụ.
11.1.5 Xác minh rằng ứng dụng có các giới hạn logic kinh doanh hoặc xác thực để ✓ ✓ ✓ 841
bảo vệ khỏi các rủi ro hoặc mối đe dọa kinh doanh có thể xảy ra, được xác
định bằng cách sử dụng mô hình mối đe dọa hoặc các phương pháp tương
tự.
11.1.6 Xác minh rằng ứng dụng không bị các vấn đề về "thời gian kiểm tra đến thời điểm ✓ ✓ 367
sử dụng" (TOCTOU) hoặc các điều kiện đua khác đối với các hoạt động nhạy cảm.
11.1.7 Xác minh ứng dụng giám sát các sự kiện hoặc hoạt động bất thường từ góc ✓ ✓ 754
độ logic nghiệp vụ. Ví dụ: cố gắng thực hiện các hành động không theo thứ
tự hoặc các hành động mà người dùng bình thường sẽ không bao giờ thử.
(C9)
11.1.8 Xác minh rằng ứng dụng có cảnh báo có thể định cấu hình khi phát hiện các cuộc ✓ ✓ 390
tấn công tự động hoặc hoạt động bất thường.
# Description L1 L2 L3 CWE
12.1.1 Xác minh rằng ứng dụng sẽ không chấp nhận các tệp lớn có thể làm đầy bộ nhớ ✓ ✓ ✓ 400
hoặc gây ra cuộc tấn công từ chối dịch vụ.
12.1.2 Xác minh rằng các tệp nén được kiểm tra để tìm "bom zip" - các tệp đầu vào ✓ ✓ 409
nhỏ sẽ được giải nén thành các tệp lớn, do đó làm cạn kiệt giới hạn lưu trữ
tệp.
12.1.3 Xác minh rằng hạn ngạch kích thước tệp và số tệp tối đa cho mỗi người dùng ✓ ✓ 770
được thực thi để đảm bảo rằng một người dùng không thể lấp đầy bộ nhớ với quá
nhiều tệp hoặc tệp quá lớn.
12.2.1 Xác minh rằng các tệp thu được từ các nguồn không đáng tin cậy được xác thực ✓ ✓ 434
thuộc loại mong đợi dựa trên nội dung của tệp.
12.3.1 Xác minh rằng siêu dữ liệu tên tệp do người dùng gửi không được sử dụng trực ✓ ✓ ✓ 22
tiếp với tệp hệ thống hoặc khung và API URL để bảo vệ chống lại việc truyền qua
đường dẫn.
12.3.2 Xác minh rằng siêu dữ liệu tên tệp do người dùng gửi được xác thực hoặc bị bỏ ✓ ✓ ✓ 73
qua để ngăn việc tiết lộ, tạo, cập nhật hoặc xóa tệp cục bộ (LFI).
12.3.3 Xác minh rằng siêu dữ liệu tên tệp do người dùng gửi được xác thực hoặc bị bỏ ✓ ✓ ✓ 98
qua để ngăn việc tiết lộ hoặc thực thi các tệp từ xa (RFI), điều này cũng có thể dẫn
đến SSRF.
12.3.4 Xác minh rằng ứng dụng bảo vệ khỏi tải xuống tệp phản chiếu (RFD) bằng cách ✓ ✓ ✓ 641
xác thực hoặc bỏ qua tên tệp do người dùng gửi trong tham số JSON, JSONP hoặc
URL, tiêu đề Loại-Nội dung phản hồi phải được đặt thành văn bản / thuần túy và
tiêu đề Bố trí Nội dung nên có một tên tệp cố định.
12.3.5 Xác minh rằng siêu dữ liệu tệp không đáng tin cậy không được sử dụng trực tiếp ✓ ✓ ✓ 78
với API hệ thống hoặc thư viện để bảo vệ khỏi việc đưa lệnh vào hệ điều hành.
OWASP Application Security Verification Standard 4.0 63
# Description L1 L2 L3 CWE
12.3.6 Xác minh rằng ứng dụng không bao gồm và thực thi chức năng từ các nguồn ✓ ✓ 829
không đáng tin cậy, chẳng hạn như mạng phân phối nội dung chưa được xác
minh, thư viện JavaScript, thư viện npm nút hoặc DLL phía máy chủ.
12.4.1 Xác minh rằng các tệp thu được từ các nguồn không đáng tin cậy được lưu trữ ✓ ✓ ✓ 922
bên ngoài thư mục gốc, với các quyền hạn chế, tốt nhất là với xác thực mạnh.
12.4.2 Xác minh rằng các tệp thu được từ các nguồn không đáng tin cậy được quét bởi ✓ ✓ ✓ 509
trình quét chống vi-rút để ngăn tải lên nội dung độc hại đã biết.
12.5.1 Xác minh rằng tầng web được định cấu hình để chỉ phân phát các tệp có phần mở ✓ ✓ ✓ 552
rộng tệp cụ thể nhằm ngăn chặn rò rỉ thông tin không chủ ý và mã nguồn. Ví dụ:
các tệp sao lưu (ví dụ: .bak), tệp hoạt động tạm thời (ví dụ: .swp), tệp nén (.zip,
.tar.gz, v.v.) và các phần mở rộng khác thường được người chỉnh sửa sử dụng sẽ
bị chặn trừ khi được yêu cầu.
12.5.2 Xác minh rằng các yêu cầu trực tiếp đến các tệp đã tải lên sẽ không ✓ ✓ ✓ 434
bao giờ được thực thi dưới dạng nội dung HTML / JavaScript.
12.6.1 Xác minh rằng máy chủ web hoặc ứng dụng được định cấu hình với danh ✓ ✓ ✓ 918
sách trắng các tài nguyên hoặc hệ thống mà máy chủ có thể gửi yêu cầu hoặc
tải dữ liệu / tệp từ đó.
References
Để biết thêm thông tin, hãy xem thêm:
• File Extension Handling for Sensitive Information
• Reflective file download by Oren Hafif
• OWASP Third Party JavaScript Management Cheat Sheet
13.1.1 Xác minh rằng tất cả các thành phần ứng dụng sử dụng các mã hóa và trình phân ✓ ✓ ✓ 116
tích cú pháp giống nhau để tránh các cuộc tấn công phân tích cú pháp khai thác
các URI khác nhau hoặc hành vi phân tích cú pháp tệp có thể được sử dụng trong
các cuộc tấn công SSRF và RFI.
13.1.2 Xác minh rằng quyền truy cập vào các chức năng quản trị và quản lý được ✓ ✓ ✓ 419
giới hạn cho các quản trị viên được ủy quyền.
13.1.3 Xác minh URL API không để lộ thông tin nhạy cảm, chẳng hạn như khóa API, mã ✓ ✓ ✓ 598
thông báo phiên, v.v..
13.1.4 Xác minh rằng các quyết định ủy quyền được thực hiện ở cả URI, được ✓ ✓ 285
thực thi bởi bảo mật có lập trình hoặc khai báo tại bộ điều khiển hoặc bộ
định tuyến và ở cấp tài nguyên, được thực thi bởi các quyền dựa trên mô
hình.
13.1.5 Xác minh rằng các yêu cầu chứa các loại nội dung không mong muốn hoặc bị thiếu ✓ ✓ 434
sẽ bị từ chối bằng các tiêu đề thích hợp (trạng thái phản hồi HTTP 406 Không được
chấp nhận hoặc Loại phương tiện 415 Không được hỗ trợ).
13.2.1 Xác minh rằng các phương thức RESTful HTTP đã bật là lựa chọn hợp lệ cho người ✓ ✓ ✓ 650
dùng hoặc hành động, chẳng hạn như ngăn người dùng bình thường sử dụng
DELETE hoặc PUT trên tài nguyên hoặc API được bảo vệ.
13.2.2 Xác minh rằng xác thực lược đồ JSON đã sẵn sàng và được xác minh trước khi ✓ ✓ ✓ 20
chấp nhận đầu vào.
13.2.3 Xác minh rằng các dịch vụ web RESTful sử dụng cookie được bảo vệ khỏi Truy ✓ ✓ ✓ 352
vấn Yêu cầu Trên Trang web thông qua việc sử dụng ít nhất một hoặc nhiều cách
sau: mẫu cookie gửi ba lần hoặc hai lần (xem references), CSRF nonces hoặc kiểm
tra tiêu đề yêu cầu ORIGIN.
13.2.4 Xác minh rằng các dịch vụ REST có các điều khiển chống tự động hóa để ✓ ✓ 779
bảo vệ khỏi các cuộc gọi quá mức, đặc biệt nếu API chưa được xác thực.
13.2.5 Xác minh rằng các dịch vụ REST kiểm tra rõ ràng Loại nội dung đến có phải là ✓ ✓ 436
loại được mong đợi hay không, chẳng hạn như application / xml hoặc
application / JSON.
13.2.6 Xác minh rằng tiêu đề thư và trọng tải là đáng tin cậy và không bị sửa đổi khi ✓ ✓ 345
chuyển tiếp. Yêu cầu mã hóa mạnh để truyền tải (chỉ TLS) có thể là đủ trong
nhiều trường hợp vì nó cung cấp cả tính bảo mật và tính toàn vẹn. Chữ ký điện
tử trên mỗi tin nhắn có thể cung cấp sự đảm bảo bổ sung trên đầu trang của các
biện pháp bảo vệ truyền tải cho các ứng dụng bảo mật cao nhưng mang theo
chúng
sự phức tạp và rủi ro bổ sung để cân nhắc so với lợi ích.
13.3.1 Xác minh rằng xác thực lược đồ XSD diễn ra để đảm bảo tài liệu XML được định ✓ ✓ ✓ 20
dạng đúng, tiếp theo là xác nhận từng trường đầu vào trước khi bất kỳ quá trình
xử lý dữ liệu đó diễn ra.
13.3.2 Xác minh rằng tải trọng thư được ký bằng WS-Security để đảm bảo truyền tải ✓ ✓ 345
đáng tin cậy giữa máy khách và dịch vụ.
Lưu ý: Do các vấn đề với các cuộc tấn công XXE chống lại DTD, không nên sử dụng xác thực DTD và vô hiệu hóa
đánh giá DTD trong khuôn khổ theo yêu cầu đặt ra trong Cấu hình V14.
V13.4 GraphQL and other Web Service Data Layer Security Requirements
# Description L1 L2 L3 CWE
13.4.1 Xác minh rằng danh sách cho phép truy vấn hoặc sự kết hợp giữa giới hạn độ ✓ ✓ 770
sâu và giới hạn số lượng nên được sử dụng để ngăn chặn GraphQL hoặc từ
chối dịch vụ biểu thức lớp dữ liệu (DoS) do kết quả của các truy vấn lồng
nhau, đắt tiền. Đối với các tình huống nâng cao hơn, nên sử dụng phân tích
chi phí truy vấn.
13.4.2 Xác minh rằng GraphQL hoặc logic ủy quyền lớp dữ liệu khác sẽ được triển khai ✓ ✓ 285
ở lớp logic nghiệp vụ thay vì lớp GraphQL.
V14.1 Build
Xây dựng đường ống là cơ sở cho bảo mật có thể lặp lại - mỗi khi điều gì đó không an toàn được phát hiện, nó có
thể được giải quyết trong mã nguồn, tập lệnh xây dựng hoặc triển khai và được kiểm tra tự động. Chúng tôi rất
khuyến khích việc sử dụng các đường ống xây dựng có tính năng kiểm tra bảo mật và phụ thuộc tự động để cảnh
báo hoặc phá vỡ công trình để ngăn chặn các vấn đề bảo mật đã biết đang được triển khai vào sản xuất. Các bước
thủ công được thực hiện không thường xuyên trực tiếp dẫn đến các lỗi bảo mật có thể tránh được. Các đường
ống có thể là VPN, SSH ...
Khi ngành chuyển sang mô hình DevSecOps, điều quan trọng là phải đảm bảo tính khả dụng liên tục và tính toàn
vẹn của việc triển khai và cấu hình để đạt được trạng thái "tốt đã biết". Trước đây, nếu một hệ thống bị tấn công,
sẽ mất vài ngày đến vài tháng để chứng minh rằng không có sự xâm nhập nào nữa. Ngày nay, với sự ra đời của cơ
sở hạ tầng được xác định bằng phần mềm, triển khai A / B nhanh chóng với thời gian chết bằng không và các bản
dựng tự động được tích hợp sẵn, có thể tự động và liên tục xây dựng, làm cứng và triển khai một sự thay thế "tốt
đã biết" cho bất kỳ hệ thống nào bị xâm phạm.
Nếu các mô hình truyền thống vẫn còn tồn tại, thì các bước thủ công phải được thực hiện để làm cứng và sao lưu
cấu hình đó để cho phép các hệ thống bị xâm phạm nhanh chóng được thay thế bằng các hệ thống có tính toàn
vẹn cao, không bị xâm phạm kịp thời.
Việc tuân thủ phần này yêu cầu một hệ thống xây dựng tự động và quyền truy cập để xây dựng và triển khai các tập
lệnh.
# Description L1 L2 L3 CWE
14.1.1 Xác minh rằng quy trình xây dựng và triển khai ứng dụng được thực hiện theo ✓ ✓
cách an toàn và có thể lặp lại, chẳng hạn như tự động hóa CI / CD, quản lý cấu
hình tự động và tập lệnh triển khai tự động.
14.1.2 Xác minh rằng cờ trình biên dịch được định cấu hình để bật tất cả các cảnh báo và ✓ ✓ 120
bảo vệ chống tràn bộ đệm hiện có, bao gồm ngẫu nhiên hóa ngăn xếp, ngăn chặn
thực thi dữ liệu và phá vỡ bản dựng nếu tìm thấy con trỏ, bộ nhớ, chuỗi định
dạng, số nguyên hoặc chuỗi không an toàn.
14.1.3 Xác minh rằng cấu hình máy chủ được tăng cường theo khuyến nghị của máy ✓ ✓ 16
chủ ứng dụng và các khuôn khổ đang được sử dụng.
14.1.4 Xác minh rằng ứng dụng, cấu hình và tất cả các phần phụ thuộc có thể được ✓ ✓
triển khai lại bằng cách sử dụng các tập lệnh triển khai tự động, được xây dựng
từ một sổ chạy đã được kiểm tra và lập thành văn bản trong một thời gian hợp
lý hoặc được khôi phục từ các bản sao lưu kịp thời.
14.1.5 Xác minh rằng quản trị viên được ủy quyền có thể xác minh tính toàn vẹn ✓
của tất cả các cấu hình liên quan đến bảo mật để phát hiện giả mạo.
V14.2 Dependency
Quản lý sự phụ thuộc là rất quan trọng đối với hoạt động an toàn của bất kỳ ứng dụng thuộc bất kỳ loại nào. Không
cập nhật các phụ thuộc lỗi thời hoặc không an toàn là nguyên nhân gốc rễ của các cuộc tấn công lớn nhất và tốn kém
nhất cho đến nay.
Lưu ý: Ở Cấp độ 1, tuân thủ 14.2.1 liên quan đến quan sát hoặc phát hiện phía máy khách và các thư viện và thành
phần khác, chứ không phải là phân tích mã tĩnh thời gian xây dựng hoặc phân tích phụ thuộc chính xác hơn. Các kỹ
thuật chính xác hơn này có thể được khám phá bằng cách phỏng vấn theo yêu cầu.
# Description L1 L2 L3 CWE
14.2.1 Xác minh rằng tất cả các thành phần đều được cập nhật, tốt nhất là sử dụng ✓ ✓ ✓ 1026
trình kiểm tra phụ thuộc trong thời gian xây dựng hoặc biên dịch. (C2)
14.2.2 Xác minh rằng tất cả các tính năng, tài liệu, mẫu, cấu hình không cần thiết đều ✓ ✓ ✓ 1002
bị xóa, chẳng hạn như ứng dụng mẫu, tài liệu nền tảng và người dùng mặc định
hoặc ví dụ.
14.2.3 Xác minh rằng nếu nội dung ứng dụng, chẳng hạn như thư viện JavaScript, biểu ✓ ✓ ✓ 714
định kiểu CSS hoặc phông chữ web, được lưu trữ bên ngoài trên mạng phân phối
nội dung (CDN) hoặc nhà cung cấp bên ngoài, thì Tính toàn vẹn nguồn phụ (SRI)
được sử dụng để xác thực tính toàn vẹn của nội dung.
14.2.4 Xác minh rằng các thành phần của bên thứ ba đến từ các kho lưu trữ ✓ ✓ 829
được xác định trước, đáng tin cậy và được duy trì liên tục. (C2)
14.2.5 Xác minh rằng danh mục hàng tồn kho được duy trì cho tất cả các thư viện ✓ ✓
của bên thứ ba đang được sử dụng. (C2)
14.2.6 Xác minh rằng bề mặt tấn công được giảm bớt bằng cách hộp cát hoặc đóng ✓ ✓ 265
gói các thư viện của bên thứ ba để chỉ hiển thị hành vi được yêu cầu vào ứng
dụng. (C2)
# Description L1 L2 L3 CWE
14.3.1 Xác minh rằng máy chủ web hoặc ứng dụng và thông báo lỗi khung được định cấu ✓ ✓ ✓ 209
hình để cung cấp các phản hồi tùy chỉnh, có thể hành động của người dùng nhằm
loại bỏ mọi tiết lộ bảo mật ngoài ý muốn.
14.3.2 Xác minh rằng các chế độ gỡ lỗi của máy chủ web hoặc ứng dụng và khuôn khổ ✓ ✓ ✓ 497
ứng dụng bị tắt trong quá trình sản xuất để loại bỏ các tính năng gỡ lỗi, bảng
điều khiển dành cho nhà phát triển và tiết lộ bảo mật ngoài ý muốn.
OWASP Application Security Verification Standard 4.0 70
14.3.3 Xác minh rằng các tiêu đề HTTP hoặc bất kỳ phần nào của phản hồi HTTP không ✓ ✓ ✓ 200
tiết lộ thông tin phiên bản chi tiết của các thành phần hệ thống.
14.4.1 Xác minh rằng mọi phản hồi HTTP đều chứa tiêu đề loại nội dung chỉ định bộ ký tự ✓ ✓ ✓ 173
an toàn (ví dụ: UTF-8, ISO 8859-1).
14.4.2 Xác minh rằng tất cả các phản hồi API đều chứa Nội dung-Bố trí: tệp đính kèm; ✓ ✓ ✓ 116
filename = "api.json" (hoặc tên tệp thích hợp khác cho loại nội dung).
14.4.3 Xác minh rằng có chính sách bảo mật nội dung (CSPv2) giúp giảm thiểu tác động ✓ ✓ ✓ 1021
đối với các cuộc tấn công XSS như lỗ hổng chèn HTML, DOM, JSON và JavaScript.
14.4.4 Xác minh rằng tất cả các câu trả lời đều chứa X-Content-Type-Options: nosniff. ✓ ✓ ✓ 116
14.4.5 Xác minh rằng các tiêu đề Bảo mật truyền tải nghiêm ngặt HTTP được bao gồm ✓ ✓ ✓ 523
trên tất cả các phản hồi và cho tất cả các miền phụ, chẳng hạn như Nghiêm
ngặt-Vận chuyển-Bảo mật: max-age = 15724800; includeSubdomains.
14.4.6 Xác minh rằng tiêu đề "Liên kết giới thiệu-Chính sách" phù hợp được bao gồm, ✓ ✓ ✓ 116
chẳng hạn như "không có liên kết giới thiệu" hoặc "cùng nguồn gốc ".
14.4.7 Xác minh rằng tiêu đề X-Frame-Options hoặc Content-Security-Policy: frame-Tổ ✓ ✓ ✓ 346
tiên phù hợp đang được sử dụng cho các trang web không nên nhúng nội dung
vào trang web của bên thứ ba.
14.5.1 Xác minh rằng máy chủ ứng dụng chỉ chấp nhận các phương thức HTTP được ✓ ✓ ✓ 749
ứng dụng hoặc API sử dụng, bao gồm các TÙY CHỌN trước khi truyền.
14.5.2 Xác minh rằng tiêu đề Nguồn gốc được cung cấp không được sử dụng cho các ✓ ✓ ✓ 346
quyết định xác thực hoặc kiểm soát truy cập, vì tiêu đề Nguồn gốc có thể dễ
dàng bị thay đổi bởi kẻ tấn công.
14.5.3 Xác minh rằng tiêu đề Access-Control-Allow- Origin chia sẻ tài nguyên trên ✓ ✓ ✓ 346
nhiều miền (CORS) sử dụng danh sách trắng nghiêm ngặt các miền đáng tin
cậy để đối sánh và không hỗ trợ nguồn gốc "null".
14.5.4 Xác minh rằng các tiêu đề HTTP được thêm bởi proxy hoặc thiết bị SSO đáng tin ✓ ✓ 306
cậy, chẳng hạn như mã thông báo mang, được ứng dụng xác thực.
References
Để biết thêm thông tin, hãy xem thêm:
• OWASP Testing Guide 4.0: Testing for HTTP Verb Tampering
• Thêm Nội dung-Bố trí vào các phản hồi API giúp ngăn chặn nhiều cuộc tấn công dựa trên sự hiểu nhầm về
kiểu MIME giữa máy khách và máy chủ và tùy chọn "tên tệp" đặc biệt giúp ngăn chặn Reflected File
Download attacks.
• Content Security Policy Cheat Sheet
• Exploiting CORS misconfiguration for BitCoins and Bounties
• OWASP Testing Guide 4.0: Configuration and Deployment Management Testing
OWASP Application Security Verification Standard 4.0 72
• Sandboxing third party components
Appendix A: Glossary
• 2FA – Xác thực hai yếu tố (2FA) thêm cấp độ xác thực thứ hai vào đăng nhập tài khoản.
• Address Space Layout Randomization (ASLR) – Một kỹ thuật làm cho việc khai thác lỗi hỏng bộ nhớ trở
nên khó khăn hơn.
• Application Security – Bảo mật mức ứng dụng tập trung vào việc phân tích các thành phần bao gồm lớp ứng
dụng của Mô hình tham chiếu kết nối hệ thống mở (Mô hình OSI), thay vì tập trung vào ví dụ như hệ điều
hành cơ bản hoặc các mạng được kết nối.
• Application Security Verification – Đánh giá kỹ thuật của một ứng dụng chống lại OWASP ASVS.
• Application Security Verification Report – Một báo cáo ghi lại kết quả tổng thể và phân tích hỗ trợ do
người xác minh tạo ra cho một ứng dụng cụ thể.
• Authentication – Việc xác minh danh tính đã xác nhận của người dùng ứng dụng.
• Automated Verification – Việc sử dụng các công cụ tự động (công cụ phân tích động, công cụ phân tích tĩnh
hoặc cả hai) sử dụng chữ ký lỗ hổng để tìm ra sự cố.
• Black box testing – Đây là một phương pháp kiểm thử phần mềm nhằm kiểm tra chức năng của một
ứng dụng mà không cần xem xét các cấu trúc hoặc hoạt động bên trong của nó.
• Component – một đơn vị mã độc lập, với các giao diện mạng và đĩa được liên kết giao tiếp với các thành
phần khác.
• Cross-Site Scripting (XSS) - Một lỗ hổng bảo mật thường thấy trong các ứng dụng web cho phép đưa các
tập lệnh phía máy khách vào nội dung.
• Cryptographic module – Phần cứng, phần mềm và / hoặc phần sụn thực hiện các thuật toán mật mã và /
hoặc tạo khóa mật mã.
• CWE - Danh sách điểm yếu chung (CWE) là danh sách các điểm yếu bảo mật phần mềm phổ biến do cộng
đồng phát triển. Nó đóng vai trò là ngôn ngữ chung, thước đo cho các công cụ bảo mật phần mềm và là cơ
sở cho các nỗ lực xác định, giảm thiểu và ngăn chặn điểm yếu.
• DAST – Công nghệ kiểm tra bảo mật ứng dụng động (DAST) được thiết kế để phát hiện các điều kiện cho
thấy lỗ hổng bảo mật trong ứng dụng ở trạng thái đang chạy.
• Design Verification – Đánh giá kỹ thuật về kiến trúc bảo mật của một ứng dụng.
• Dynamic Verification – Việc sử dụng các công cụ tự động sử dụng chữ ký lỗ hổng để tìm ra các vấn đề trong
quá trình thực thi ứng dụng.
• Globally Unique Identifier (GUID) - một số tham chiếu duy nhất được sử dụng làm số nhận dạng trong phần
mềm.
• Hyper Text Transfer Protocol (HTTPS) - Một giao thức ứng dụng cho hệ thống thông tin siêu phương tiện
phân tán, cộng tác. Nó là nền tảng của giao tiếp dữ liệu cho World Wide Web.
• Hardcoded keys – Các khóa mật mã được lưu trữ trên hệ thống tệp, có thể là mã, nhận xét hoặc tệp.
• Input Validation – Việc chuẩn hóa và xác thực thông tin đầu vào của người dùng không đáng tin cậy.
• Malicious Code – Mã được đưa vào ứng dụng trong quá trình phát triển mà chủ sở hữu ứng dụng không
hề hay biết, điều này làm sai lệch chính sách bảo mật dự kiến của ứng dụng. Không giống với phần mềm
độc hại như vi-rút hoặc sâu!
• Malware – Mã thực thi được đưa vào ứng dụng trong thời gian chạy mà người dùng hoặc quản trị viên ứng
Others
Tương tự, các trang web sau đây có nhiều khả năng hữu ích nhất cho người dùng / người chấp nhận tiêu chuẩn này
1. SecLists Github: https://github.com/danielmiessler/SecLists
2. Liệt kê điểm yếu chung của MITER: https://cwe.mitre.org/
3. Hội đồng tiêu chuẩn bảo mật PCI: https://www.pcisecuritystandards.org
4. Tiêu chuẩn bảo mật dữ liệu PCI (DSS) v3.2.1 Các yêu cầu và quy trình đánh giá bảo mật:
https://www.pcisecuritystandards.org/documents/PCI_DSS_v3-2-1.pdf
5. Khung bảo mật phần mềm PCI - Quy trình đánh giá và yêu cầu phần mềm an toàn:
https://www.pcisecuritystandards.org/documents/PCI-Secure-Software-Standard-v1_0.pdf
6. Quy trình đánh giá và yêu cầu của vòng đời phần mềm bảo mật PCI (Secure SLC):
https://www.pcisecuritystandards.org/documents/PCI-Secure-SLC-Standard-v1_0.pdf
Control Objective
Các thiết bị nhúng / IoT phải:
• Có cùng mức độ kiểm soát bảo mật trong thiết bị như được tìm thấy trong máy chủ, bằng cách thực
thi các biện pháp kiểm soát bảo mật trong môi trường đáng tin cậy.
• Dữ liệu nhạy cảm được lưu trữ trên thiết bị phải được thực hiện một cách an toàn bằng cách sử dụng bộ
nhớ được hỗ trợ bởi phần cứng, chẳng hạn như các phần tử an toàn.
• Tất cả dữ liệu nhạy cảm được truyền từ thiết bị phải sử dụng bảo mật lớp truyền tải.
C.1 Xác minh rằng các giao diện gỡ lỗi lớp ứng dụng như USB, UART và các biến thể nối ✓ ✓ ✓ 4.0
tiếp khác bị vô hiệu hóa hoặc được bảo vệ bằng mật khẩu phức tạp.
C.2 Xác minh rằng các khóa và chứng chỉ mật mã là duy nhất cho từng thiết bị ✓ ✓ ✓ 4.0
riêng lẻ.
C.3 Xác minh rằng các điều khiển bảo vệ bộ nhớ như ASLR và DEP được bật bởi hệ ✓ ✓ ✓ 4.0
điều hành nhúng / IoT, nếu có.
C.4 Xác minh rằng các giao diện gỡ lỗi trên chip như JTAG hoặc SWD bị tắt hoặc cơ chế ✓ ✓ ✓ 4.0
bảo vệ có sẵn được bật và định cấu hình thích hợp.
C.5 Xác minh rằng thực thi đáng tin cậy được triển khai và kích hoạt, nếu có trên SoC ✓ ✓ ✓ 4.0
hoặc CPU của thiết bị.
C.6 Xác minh rằng dữ liệu nhạy cảm, khóa cá nhân và chứng chỉ được lưu trữ an toàn ✓ ✓ ✓ 4.0
trong Phần tử bảo mật, TPM, TEE (Môi trường thực thi đáng tin cậy) hoặc được bảo
vệ bằng mật mã mạnh.
C.7 Xác minh rằng các ứng dụng chương trình cơ sở bảo vệ dữ liệu trong quá trình ✓ ✓ ✓ 4.0
truyền bằng cách sử dụng bảo mật lớp truyền tải.
C.8 Xác minh rằng các ứng dụng phần sụn xác thực chữ ký số của các kết nối máy chủ. ✓ ✓ ✓ 4.0
C.9 Xác minh rằng thông tin liên lạc không dây được xác thực lẫn nhau. ✓ ✓ ✓ 4.0
C.10 Xác minh rằng thông tin liên lạc không dây được gửi qua một kênh được mã hóa. ✓ ✓ ✓ 4.0
C.11 Xác minh rằng mọi việc sử dụng các chức năng C bị cấm đều được thay thế bằng các ✓ ✓ ✓ 4.0
chức năng tương đương an toàn thích hợp.
C.12 Xác minh rằng mỗi chương trình cơ sở duy trì một hóa đơn phần mềm gồm các ✓ ✓ ✓ 4.0
tài liệu liệt kê các thành phần của bên thứ ba, cách lập phiên bản và các lỗ hổng
đã xuất bản.
C.13 Xác minh tất cả mã bao gồm mã nhị phân, thư viện, khuôn khổ của bên thứ ba ✓ ✓ ✓ 4.0
được xem xét để tìm thông tin xác thực được mã hóa cứng (backdoor).
OWASP Application Security Verification Standard 4.0 77
C.14 Xác minh rằng ứng dụng và các thành phần chương trình cơ sở không dễ bị OS ✓ ✓ ✓ 4.0
Command Injection bằng cách gọi trình bao bọc lệnh shell, tập lệnh hoặc các kiểm
soát bảo mật ngăn OS Command Injection.
C.15 Xác minh rằng các ứng dụng chương trình cơ sở ghim chữ ký số vào (các máy chủ ✓ ✓ 4.0
đáng tin cậy).
C.16 Xác minh sự hiện diện của các tính năng chống giả mạo và / hoặc phát hiện giả ✓ ✓ 4.0
mạo.
C.17 Xác minh rằng mọi công nghệ bảo vệ Sở hữu trí tuệ hiện có do nhà sản xuất chip ✓ ✓ 4.0
cung cấp đều được bật.
C.18 Xác minh các biện pháp kiểm soát bảo mật được áp dụng để cản trở quá trình thiết ✓ ✓ 4.0
kế ngược chương trình cơ sở (ví dụ: loại bỏ các ký hiệu gỡ lỗi dài dòng).
C.19 Xác minh thiết bị xác thực chữ ký hình ảnh khởi động trước khi tải. ✓ ✓ 4.0
C.20 Xác minh rằng quá trình cập nhật chương trình cơ sở không dễ bị tấn công ✓ ✓ 4.0
bởi thời gian kiểm tra và thời gian sử dụng.
C.21 Xác minh thiết bị sử dụng ký mã và xác thực các tệp nâng cấp chương trình cơ sở ✓ ✓ 4.0
trước khi cài đặt.
C.22 Xác minh rằng thiết bị không thể bị hạ cấp xuống các phiên bản cũ (chống ✓ ✓ 4.0
khôi phục) của chương trình cơ sở hợp lệ.
C.23 Xác minh việc sử dụng trình tạo số giả ngẫu nhiên an toàn bằng mật mã trên ✓ ✓ 4.0
thiết bị nhúng (ví dụ: sử dụng trình tạo số ngẫu nhiên do chip cung cấp).
C.24 Xác minh rằng chương trình cơ sở có thể thực hiện cập nhật chương trình cơ sở tự ✓ ✓ 4.0
động theo lịch trình xác định trước.
C.25 Xác minh rằng thiết bị sẽ xóa phần mềm cơ sở và dữ liệu nhạy cảm khi phát hiện giả ✓ 4.0
mạo hoặc nhận được thông báo không hợp lệ.
C.26 Xác minh rằng chỉ những bộ điều khiển vi mô hỗ trợ tắt giao diện gỡ lỗi (ví dụ: ✓ 4.0
JTAG, SWD) mới được sử dụng.
C.27 Xác minh rằng chỉ các bộ điều khiển vi mô cung cấp khả năng bảo vệ đáng kể ✓ 4.0
khỏi các cuộc tấn công kênh bên và phá giới hạn mới được sử dụng.
C.28 Xác minh rằng các dấu vết nhạy cảm không tiếp xúc với các lớp bên ngoài của bảng ✓ 4.0
mạch in.
C.29 Xác minh rằng giao tiếp giữa các chip đã được mã hóa (ví dụ: giao tiếp từ bo ✓ 4.0
mạch chính với bo mạch con).
C.30 Xác minh thiết bị sử dụng ký mã và xác thực mã trước khi thực thi. ✓ 4.0
C.31 Xác minh rằng thông tin nhạy cảm được duy trì trong bộ nhớ được ghi đè bằng ✓ 4.0
các số không ngay khi không còn cần thiết.
C.32 Xác minh rằng các ứng dụng chương trình cơ sở sử dụng vùng chứa hạt nhân để ✓ 4.0
cách ly giữa các ứng dụng.
C.33 Xác minh rằng các cờ trình biên dịch an toàn như -fPIE, -fstack- ✓ 4.0
protectionor-all, -Wl, - z, noexecstack, -Wl, -z, noexecheap được định
OWASP Application Security Verification Standard 4.0 78
cấu hình cho các bản dựng chương trình cơ sở.
References
Để biết thêm thông tin, hãy xem thêm:
• OWASP Internet of Things Top 10
• OWASP Embedded Application Security Project
• OWASP Internet of Things Project
• Trudy TCP Proxy Tool