# 1. Khái niệm Threat modeling là quá trình đánh giá và phân tích các mối đe dọa tiềm năng đối với hệ thống hoặc ứng dụng. Nó là một phần quan trọng của quá trình phát triển phần mềm an toàn và bảo mật thông tin. Trong quá trình threat modeling, các chuyên gia bảo mật và nhóm phát triển làm việc cùng nhau để xác định và đánh giá các mối đe dọa có thể tác động đến hệ thống. Các mối đe dọa này có thể bao gồm các lỗ hổng bảo mật, các hành vi xấu, các cuộc tấn công tiềm năng và các rủi ro khác. Từ đó đưa ra các phương án giảm thiểu, khắc phục rủi ro cùng với mức tài chính hợp lý. # 2. Các bước thực hiện với đối tượng cụ thể ## Bước 1: Phân tích ứng dụng Bước đầu tiên để thực hiện threat modeling là tìm hiểu ứng dụng, cách mà ứng dụng tương tác với thực thể bên ngoài hay tương tác giữa đối tượng với nhau trong ứng dụng, hệ thống. Trong phần này, cần xác định được các thành phần sau. + Thông tin của ứng dụng: Tên ứng dụng, phiên bản, đặc tả,... + Entry Point được thao tác bởi người dùng. + Exit Point: nơi hiển thị thông tin trả về theo yêu cầu của người dùng. + Tài sản cần được bảo vệ: thông tin người dùng, tiền mặt,... + Luồng hoạt động của ứng dụng: Sơ đồ thiết kế, tương tác giữa các thực thể trong hệ thống, ứng dụng ## Bước 2: Xác định và đánh giá rủi ro Ở bước này cần chọn 1 trong những mô hình xác định rủi ro phổ biến hiện nay, ví dụ như STRIDE của Microsoft, PASTA ... Từ đó xác định các lỗ hỗng dẫn đến rủi ro sau đó đánh giá và đưa ra các khắc phục chi tiết. Ví dụ đối với mô hình STRIDE của Microsoft, mô hình này được xác định dựa trên 6 cuộc tấn công có thể được nhắm đến là: + Spoofing (Giả mạo): Mối đe dọa liên quan đến việc giả mạo danh tính hoặc nguồn gốc của người dùng, dịch vụ hoặc thông tin. + Tampering (Sửa đổi): Mối đe dọa liên quan đến việc sửa đổi hoặc thay đổi trái phép dữ liệu hoặc tài nguyên quan trọng. + Repudiation (Từ chối): Mối đe dọa liên quan đến khả năng từ chối việc chứng minh hoặc chịu trách nhiệm về một hành động hoặc sự kiện đã xảy ra. + Information Disclosure (Tiết lộ thông tin): Mối đe dọa liên quan đến việc tiết lộ thông tin nhạy cảm cho những người không được phép. + Denial of Service (Từ chối dịch vụ): Mối đe dọa liên quan đến việc ngăn chặn, gián đoạn hoặc làm gián đoạn dịch vụ hoặc khả năng hoạt động của một hệ thống. + Elevation of Privilege (Nâng cao đặc quyền): Mối đe dọa liên quan đến việc tấn công và nâng cao đặc quyền hoặc quyền truy cập không được phép. Sau đó ta có thể xác định các lỗ hổng, rủi ro cụ thể mà ứng dụng có thể gặp phải, ví dụ: + Spoofing (Giả mạo): Brtute force password, Fake thông tin để vượt qua cơ chế xác thực như khuôn mặt, vân tay... + Tampering (Sửa đổi): SQL Injection,... + Repudiation (Từ chối): Khách hàng từ chối chữ ký của mình trong hợp đồng,... + Information Disclosure (Tiết lộ thông tin): Error Handling, XSS đánh cắp thông tin người dùng,.... + Denial of Service (Từ chối dịch vụ): Dos, DDos, Race Condition, mất điện, thiên tai,... + Elevation of Privilege (Nâng cao đặc quyền): Hệ thống sử dụng phiên bản OS, ứng dụng có CVE cho phép leo thang đặc quyền,... Sau khi xác định được các lỗ hổng, rủi ro trên ta cần đánh giá dựa trên một tiêu chuẩn nhất định để đưa ra ưu tiên trong việc khắc phục và xử lý rủi ro, rủi ro nào cần khắc phục trước, rủi ro nào không thể không xử lý lại, rủi ro nào có thể bỏ qua... Để đánh giá rủi ro có thể sử dụng mô hình DREAD của Microsoft. Mô hình này cung cấp một qui trình chủ quan để xếp hạng, đánh giá rủi ro. Có 4 tiêu chí được đề ra là: + Damage (Mức độ tổn hại): Đánh giá mức độ tổn hại tiềm năng mà mối đe dọa có thể gây ra nếu nó được khai thác thành công. Điều này liên quan đến tác động về kinh tế, hủy hoại hệ thống, hoặc ảnh hưởng đến uy tín của tổ chức. + Reproducibility (Khả năng tái tạo): Đánh giá khả năng tái tạo mối đe dọa. Nếu mối đe dọa dễ tái tạo và khai thác lại, thì mức độ nguy hiểm cao hơn so với mối đe dọa chỉ xảy ra một lần duy nhất. + Exploitability (Khả năng khai thác): Đánh giá khả năng khai thác mối đe dọa. Nếu mối đe dọa dễ khai thác và tồn tại nhiều công cụ, kỹ thuật khai thác có sẵn, thì mức độ nguy hiểm cao hơn. + Affected users (Số lượng người dùng bị ảnh hưởng): Đánh giá số lượng người dùng hoặc hệ thống bị ảnh hưởng bởi mối đe dọa. Nếu số lượng người dùng bị ảnh hưởng lớn, thì mức độ nguy hiểm cao hơn. + Discoverability (Khả năng phát hiện): Đánh giá khả năng phát hiện mối đe dọa. Nếu mối đe dọa khó phát hiện hoặc có thể tránh được các biện pháp phát hiện, thì mức độ nguy hiểm cao hơn. Dựa vào tiêu chí trên để đánh giá mực độ rủi ro. ## Bước 3: Xác định các phương pháp phòng chống và giảm thiểu. Căn cứ vào kết quả sau khi xác định và xếp hạng được các rủi ro xảy ra với hệ thống cùng với các yếu tố bên ngoài như nhân lực, tài chính, đội ngũ bảo mật có thể đưa ra các phương án phòng chống, giảm thiểu thiệt hại đối với các rủi ro trên, ví dụ đối với các rủi ro được xác định bởi mô hình STRIDE: + Spoofing (Giả mạo): Sử dụng các phương pháp xác thực mạnh mẽ như xác thực hai yếu tố (2FA) hoặc xác thực dựa trên chứng chỉ để đảm bảo rằng người dùng được xác thực chính xác. + Tampering (Sửa đổi): Xác minh tính toàn vẹn của dữ liệu bằng cách sử dụng băm (hash) và chữ ký số. + Repudiation (Từ chối): Ghi lại các hoạt động của người dùng, giao dịch và sự kiện hệ thống để có bằng chứng đối với các hành động đã thực hiện + Information Disclosure (Tiết lộ thông tin): Xác định và loại bỏ các thông tin nhạy cảm khỏi các phiên bản phần mềm, trang web hoặc hệ thống được phát hành công khai. + Denial of Service (Từ chối dịch vụ): Áp dụng các biện pháp bảo vệ chống tấn công DDoS như sử dụng bộ cân bằng tải (load balancer), giới hạn tốc độ truy cập và đánh giá mức độ tin cậy của yêu cầu từ phía khách hàng. + Elevation of Privilege (Nâng cao đặc quyền): Giám sát và phát hiện các hành vi nghi ngờ hoặc không phù hợp để ngăn chặn việc tăng quyền trái phép. Sau khi đưa ra các phương án khắc phục, đội ngũ bảo mật cùng với nhân sự khác có thể thảo luận để đưa ra phương án tốt nhất tùy thuộc vào tình hình của công ty. # 3. Sử dụng Threat Modeling với đối tượng là máy ATM Để xây dựng mô hình đánh giá rủi ro với đối tượng là máy ATM ta cần follow theo các bước ở trên, đặc biệt là xác định các chức năng chính, tương tác giữa người dùng và máy ATM sau đó áp dụng mô hình STRIDE để xác định rủi ro đối với mỗi một chức năng cụ thể. ## Bước 1: Phân tích hệ thống ATM Xác định các thông tin cần thiết: + Tên ứng dụng: Máy ATM + Extra Point: Màn hình, khe nhận/trả thẻ, khe trả tiền,... + Entry Point: Bàn phím, khe nhận/trả thẻ, khoang chứa tiền,... + Tài sản: Tiền, thẻ, dữ liệu khách hàng, phần mềm hệ thống, hóa đơn bản cứng, hạ tầng mạng, qui trình xử lý,... + Luồng hoạt động: Các chức năng chính như đăng nhập, rút tiền, tra cứu thông tin,... Các chức năng trên được xác định qua lược đồ Use-case sau ![](https://hackmd.io/_uploads/Hy4lLiGdn.png) Đối với các chức năng, cần xác định tài sản được sử dụng tại chức năng đó là gì nếu rủi ro xảy ra tại chức năng đó. Ví dụ chức năng đăng nhập, tài sản được dùng ở chức năng này là thông tin người dùng, cụ thể là mã PIN, từ đó mọi rủi ro liên quan đến chiếm đoạt mã PIN sẽ được liệt kê ở chức năng này. ## Bước 2+3: Xác định, đánh giá rủi do và khắc phục Áp dụng mô hình STRIDE để xác định rủi ro và DREAD để đánh giá để thực hiện trên từng chức năng của máy ATM. ### Chức năng 1: Đăng nhập #### 1.1 Spoofing (Giả mạo) **Risk 1**: Brute Force mã PIN **Điểm**: 4/10 (D:10, R:4, E:3, A:1, D:2) **Mô tả**: Vì mã PIN thường có số ký tự ít (<=6) nên kẻ tấn công có thể thực hiện được tấn công vét cạn để tìm ra mã PIN đúng. **Các khắc phục**: Thêm cơ chế khóa thẻ, nuốt thẻ nếu nhập sai mã PIN quá ba lần **Risk 2**: Card Skimming **Điểm**: 4.6/10 (D:10, R:4, E:6, A:1, D:2) **Mô tả**: Kẻ tấn công có thể gắn các công cụ quay chụp mini để thu thập mã PIN của người dùng. **Các khắc phục**: Lắp đặt hệ thống giám sát như Camera, kiểm tra máy ATM định kỳ để kịp thời loại bỏ các thiết bị không thuộc hệ thống ATM. **Risk 3**: Giả mạo cây ATM **Điểm**: 6/10 (D:10, R:4, E:6, A:4, D:6) **Mô tả**: Kẻ tấn công dựng nên một cây ATM giả để thu thập mã PIN và chiếm đoạt thẻ của người dùng. **Các khắc phục**: Cảnh báo định kỳ đến khách hàng nếu bị chiếm đoạt, mất thẻ mất thẻ cần khóa thẻ lại ngay. **Risk 4**: Phising **Điểm**: 4/10 (D:4, R:4, E:6, A:4, D:2) **Mô tả**: Kẻ tấn công sử dụng email hoặc số điện thoại để lừa đảo thông tin, mã PIN người dùng. **Các khắc phục**: Cảnh báo định kỳ đến khách hàng về vấn đề mail giả, thông tin giả mạo. #### 1.2 Tampering (Sửa đổi) **Risk 1**: Sử dụng phần mềm độc hại **Điểm**: 7/10 (D:10, R:10, E:7, A:5, D:3) **Mô tả**: Kẻ tấn công có thể thông qua kết nối phần cứng, mạng nội bộ để tải phần mềm độc hại có thể bỏ qua cơ chế xác thực lên hệ thống ATM. **Các khắc phục**: Loại bỏ toàn bộ kết nối phần cứng của máy ATM như USB,... Bật Firewall hoặc WAF để chặn phần mềm độc hại tải lên máy ATM. #### 1.3 Repudiation (Từ chối) **Risk 1**: Từ chối trách nhiệm rút tiền. **Điểm**: 2/10 (D:3, R:1, E:3, A:1, D:2) **Mô tả**: Trong một số trường hợp, kẻ tấn công từ chối hoặc không nhận trách nhiệm cho giao dịch bất hợp pháp của mình khi rút tiền. **Các khắc phục**: Lưu lại các giao dịch của máy đồng lắp đặt hệ thống giám sát theo dõi tại cây ATM. #### 1.4 Information Disclosure (Tiết lộ thông tin) **Risk 1**: Error message **Điểm**: 4/10 (D:10, R:4, E:3, A:1, D:2) **Mô tả**: Trong 1 số trường hợp khi nhập mã PIN, thông báo khi nhập sai mã PIN có thể cung cấp thông tin về mã PIN đúng. **Các khắc phục**: Loại bỏ tất cả thông tin về mã PIN đúng trong thông báo, chỉ thông báo tình trạng sai đúng sau khi nhập mã PIN. **Risk 2**: Inadequate Data Encryption **Điểm**: 5/10 (D:10, R:4, E:3, A:6, D:2) **Mô tả**: Dữ liệu không được mã hóa trong quá trình giao dịch, thông tin nhạy cảm có thể bị lộ bởi tấn công Man-In-The-Middle. **Các khắc phục**: Mã hóa các qui trình gửi và nhận requests giữa các thành phần trong máy ATM. #### 1.5 Denial of Service (Từ chối dịch vụ) **Risk 1**: Brute Force Attack **Điểm**: 5/10 (D:10, R:4, E:4, A:5, D:2) **Mô tả**: Kẻ tấn công có thể spam yêu cầu mã PIN sai nhiều lần để làm tê liệt hệ thống. **Các khắc phục**: Thêm cơ chế khóa thẻ, không cho nhập mã PIN sau khi đăng nhập sai nhiều lần. **Risk 2**: Nguồn điện **Điểm**: 8/10 (D:10, R:8, E:8, A:10, D:2) **Mô tả**: Do yếu tố tự nhiên hoặc con người làm nguồn điện cung cấp ATM bị ngắt, hệ thống không thể hoạt động. **Các khắc phục**: Cung cấp nguồn điện dự phòng. #### 1.6 Elevation of Privilege (Nâng cao đặc quyền) **Risk 1**: Using Components With Known Vulnerabilities **Điểm**: 5/10 (D:10, R:2, E:1, A:10, D:2) **Mô tả**: Hệ thống ATM sử dụng ứng dụng, OS system có CVE cho phép kẻ tấn công leo thang đặc quyền. **Các khắc phục**: Update các ứng dụng trong hệ thống lên phiên bản mới nhất. **Risk 2**: Default Credential **Điểm**: 6/10 (D:10, R:4, E:4, A:10, D:2) **Mô tả**: Máy ATM có chứa tổ hợp phím, thông tin đăng nhập mặc định được công khai cho phép kẻ tấn công nâng cao đặc quyền khi sử dụng. **Các khắc phục**: Loại bỏ toàn bộ hoặc thay đổi thông tin mặc định để khác so với thông tin đã được công khai. ### Chức năng 2: Rút tiền #### 2.1 Spoofing (Giả mạo) **Risk 1**: Giả mạo thẻ ATM **Điểm**: 5/10 (D:10, R:4, E:4, A:5, D:2) **Mô tả**: Kẻ tấn công từ một phương thức nào đó (Ví dụ phising) có được mã PIN, thông tin thẻ của nạn nhân, sau đó thực hiện sao chép thẻ của nạn nhân để rút tiền. **Các khắc phục**: Áp dụng các biện pháp bảo mật về phần cứng như việc sử dụng phần mềm chống sao chép, công nghệ chống phá hoại, và phần cứng chống đột nhập. #### 2.2 Tampering (Sửa đổi) **Risk 1**: Tấn công vật lý **Điểm**: 8/10 (D:10, R:10, E:7, A:8, D:5) **Mô tả**: Kẻ tấn công có thể sử dụng phương thức vật lý để phá vỡ lớp bảo vệ và đánh cắp tiền. **Các khắc phục**: Lắp đặt hệ thống giám sát như Camera, can thiệp khi có dấu hiệu bất thường. **Risk 2**: Sử dụng phần mềm độc hại **Điểm**: 7/10 (D:10, R:10, E:7, A:5, D:3) **Mô tả**: Kẻ tấn công có thể thông qua kết nối phần cứng, mạng nội bộ để tải phần mềm độc hại có thể can thiệp lên hệ thống ATM thay đổi số tiền rút được. **Các khắc phục**: Loại bỏ toàn bộ kết nối phần cứng của máy ATM như USB,... Bật Firewall hoặc WAF để chặn phần mềm độc hại tải lên máy ATM. **Risk 3**: SQL Injection **Điểm**: 8/10 (D:10, R:10, E:7, A:10, D:3) **Mô tả**: Kẻ tấn công có thể thông qua quá trình nhập số tiền triển khai các mã khai thác SQL Injection. **Các khắc phục**: Hạn chế ký tự đầu vào khi thiết kế, không thực hiện truy vấn SQL tại máy ATM mà nên thực hiện qua trung gian khi có giao dịch. **Risk 4**: Rút quá số tiền trong tài khoản **Điểm**: 8/10 (D:10, R:10, E:7, A:10, D:3) **Mô tả**: Kẻ tấn công có thể rút được số tiền lớn hơn trong tài khoản. **Các khắc phục**: Cần thiết lập một đơn vị trung gian để kiểm tra thông tin tài khoản và khách hàng, tránh truy vấn trực tiếp đến DB để đảm bảo giao dịch đúng số tiền. #### 2.3 Repudiation (Từ chối) **Risk 1**: Từ chối trách nhiệm rút tiền. **Điểm**: 2/10 (D:3, R:1, E:3, A:1, D:2) **Mô tả**: Trong một số trường hợp, kẻ tấn công từ chối hoặc không nhận trách nhiệm cho giao dịch bất hợp pháp của mình khi rút tiền. **Các khắc phục**: Lưu lại các giao dịch của máy đồng lắp đặt hệ thống giám sát theo dõi tại cây ATM. #### 2.4 Information Disclosure (Tiết lộ thông tin) **Risk 1**: Error message **Điểm**: 4/10 (D:10, R:4, E:3, A:1, D:2) **Mô tả**: Trong 1 số trường hợp khi nhập sai hoặc quá số lượng tiền cho phép có thể trả về thông tin nhạy cảm không được công khai. **Các khắc phục**: Chỉ trả về tin nhắn báo giao dịch hợp lệ hoặc không hợp lệ khi người dùng nhập số tiền. **Risk 2**: Inadequate Data Encryption **Điểm**: 5/10 (D:10, R:4, E:3, A:6, D:2) **Mô tả**: Dữ liệu không được mã hóa trong quá trình giao dịch, thông tin nhạy cảm có thể bị lộ bởi tấn công Man-In-The-Middle. **Các khắc phục**: Mã hóa các qui trình gửi và nhận requests giữa các thành phần trong máy ATM. **Risk 3**: Thông tin nhạy cảm trong hóa đơn rút tiền **Điểm**: 4/10 (D:10, R:4, E:3, A:1, D:2) **Mô tả**: Trong hóa đơn người dùng sau khi rút tiền có thể chứa thông tin nhạy cảm của khách hàng. **Các khắc phục**: Không đính kèm bất kỳ thông tin bí mật nào của khách hàng trên hóa đơn. #### 2.5 Denial of Service (Từ chối dịch vụ) **Risk 1**: Nguồn điện **Điểm**: 8/10 (D:10, R:8, E:8, A:10, D:2) **Mô tả**: Do yếu tố tự nhiên hoặc con người làm nguồn điện cung cấp ATM bị ngắt, hệ thống không thể hoạt động. **Các khắc phục**: Cung cấp nguồn điện dự phòng. **Risk 2**: Brute Force Attack **Điểm**: 5/10 (D:10, R:4, E:4, A:5, D:2) **Mô tả**: Kẻ tấn công spam yêu cầu số tiền sai hoặc số tiền không hợp lệ nhiều lần có thể làm tê liệt hệ thống. **Các khắc phục**: Tạm dừng giao dịch nếu có quá nhiều requests không hợp lệ đến từ máy ATM. #### 2.6 Elevation of Privilege (Nâng cao đặc quyền) **Risk 1**: Using Components With Known Vulnerabilities **Điểm**: 5/10 (D:10, R:2, E:1, A:10, D:2) **Mô tả**: Hệ thống ATM sử dụng ứng dụng, OS system có CVE cho phép kẻ tấn công leo thang đặc quyền. **Các khắc phục**: Update các ứng dụng trong hệ thống lên phiên bản mới nhất. **Risk 2**: Default Credential **Điểm**: 6/10 (D:10, R:4, E:4, A:10, D:2) **Mô tả**: Máy ATM có chứa tổ hợp phím mặc định được công khai cho phép kẻ tấn công nâng cao đặc quyền khi sử dụng, thay đổi thông tin số tiền tài khoản hoặc can thiệp vào quá trình giao dịch. **Các khắc phục**: Loại bỏ toàn bộ hoặc thay đổi thông tin mặc định để khác so với thông tin đã được công khai. ### Chức năng 3: Chuyển khoản #### 3.1 Spoofing (Giả mạo) **Risk 1**: Giả mạo thẻ ATM **Điểm**: 5/10 (D:10, R:4, E:4, A:5, D:2) **Mô tả**: Kẻ tấn công từ một phương thức nào đó (Ví dụ phising) có được mã PIN, thông tin thẻ của nạn nhân, sau đó thực hiện sao chép thẻ của nạn nhân để chuyển khoản sang tài khoản của mình. **Các khắc phục**: Áp dụng các biện pháp bảo mật về phần cứng như việc sử dụng phần mềm chống sao chép, công nghệ chống phá hoại, và phần cứng chống đột nhập. **Risk 2**: Brute Force thông tin người dùng **Điểm**: 4/10 (D:10, R:4, E:3, A:1, D:2) **Mô tả**: Khi chuyển khoản qua ATM yêu cầu số thẻ, kẻ tấn công có thể thực hiện tấn công vét cạn để tìm ra thẻ hợp lệ. **Các khắc phục**: Thêm cơ chế tạm dừng giao dịch khi có quá nhiều requests không hợp lệ tại cùng thời điểm. #### 3.2 Tampering (Sửa đổi) **Risk 1**: Sử dụng phần mềm độc hại **Điểm**: 7/10 (D:10, R:10, E:7, A:5, D:3) **Mô tả**: Kẻ tấn công có thể thông qua kết nối phần cứng, mạng nội bộ để tải phần mềm độc hại có thể can thiệp lên hệ thống ATM thay đổi số tiền rút được. **Các khắc phục**: Loại bỏ toàn bộ kết nối phần cứng của máy ATM như USB,... Bật Firewall hoặc WAF để chặn phần mềm độc hại tải lên máy ATM. **Risk 2**: SQL Injection **Điểm**: 8/10 (D:10, R:10, E:7, A:10, D:3) **Mô tả**: Kẻ tấn công có thể thông qua quá trình nhập số tài khoản hoặc tên ngân hàng triển khai các mã khai thác SQL Injection. **Các khắc phục**: Hạn chế ký tự đầu vào khi thiết kế, không thực hiện truy vấn SQL tại máy ATM mà nên thực hiện qua trung gian khi có giao dịch. **Risk 3**: Chuyển quá số tiền trong tài khoản **Điểm**: 8/10 (D:10, R:10, E:7, A:10, D:3) **Mô tả**: Kẻ tấn công có thể chuyển khoản được số tiền lớn hơn trong tài khoản. **Các khắc phục**: Cần thiết lập một đơn vị trung gian để kiểm tra thông tin tài khoản và khách hàng, tránh truy vấn trực tiếp đến DB để đảm bảo giao dịch đúng số tiền. #### 3.3 Repudiation (Từ chối) **Risk 1**: Từ chối trách nhiệm rút tiền. **Điểm**: 2/10 (D:3, R:1, E:3, A:1, D:2) **Mô tả**: Trong một số trường hợp, kẻ tấn công từ chối hoặc không nhận trách nhiệm cho giao dịch bất hợp pháp của mình khi chuyển khoản. **Các khắc phục**: Lưu lại các giao dịch của máy đồng lắp đặt hệ thống giám sát theo dõi tại cây ATM. #### 3.4 Information Disclosure (Tiết lộ thông tin) **Risk 1**: Error message **Điểm**: 4/10 (D:10, R:4, E:3, A:1, D:2) **Mô tả**: Trong một số trường hợp khi nhập sai số thẻ hoặc ngân hàng của người nhận sẽ trả về một số thông tin đúng hoặc gợi ý để có thể tìm đúng thông tin. **Các khắc phục**: Chỉ trả về tin nhắn báo thông tin hợp lệ hoặc không hợp lệ khi người dùng nhập số số tài khoản và ngân hàng. **Risk 2**: Inadequate Data Encryption **Điểm**: 5/10 (D:10, R:4, E:3, A:6, D:2) **Mô tả**: Dữ liệu không được mã hóa trong quá trình giao dịch, thông tin nhạy cảm có thể bị lộ bởi tấn công Man-In-The-Middle. **Các khắc phục**: Mã hóa các qui trình gửi và nhận requests giữa các thành phần trong máy ATM. **Risk 3**: Thông tin nhạy cảm trong hóa đơn **Điểm**: 4/10 (D:10, R:4, E:3, A:1, D:2) **Mô tả**: Trong hóa đơn người dùng sau khi chuyển có thể chứa thông tin nhạy cảm của khách hàng hoặc người nhận. **Các khắc phục**: Không đính kèm bất kỳ thông tin bí mật nào của khách hàng trên hóa đơn. #### 3.5 Denial of Service (Từ chối dịch vụ) **Risk 1**: Nguồn điện **Điểm**: 8/10 (D:10, R:8, E:8, A:10, D:2) **Mô tả**: Do yếu tố tự nhiên hoặc con người làm nguồn điện cung cấp ATM bị ngắt, hệ thống không thể hoạt động. **Các khắc phục**: Cung cấp nguồn điện dự phòng. **Risk 2**: Brute Force Attack **Điểm**: 5/10 (D:10, R:4, E:4, A:5, D:2) **Mô tả**: Kẻ tấn công spam yêu cầu số tài khoản hoặc ngân hàng không hợp lệ nhiều lần có thể làm tê liệt hệ thống. **Các khắc phục**: Tạm dừng giao dịch nếu có quá nhiều requests không hợp lệ đến từ máy ATM. Tăng cường tài nguyên để có thể tải lượng dữ liệu lớn #### 3.6 Elevation of Privilege (Nâng cao đặc quyền) **Risk 1**: Using Components With Known Vulnerabilities **Điểm**: 5/10 (D:10, R:2, E:1, A:10, D:2) **Mô tả**: Hệ thống ATM sử dụng ứng dụng, OS system có CVE cho phép kẻ tấn công leo thang đặc quyền. **Các khắc phục**: Update các ứng dụng trong hệ thống lên phiên bản mới nhất. **Risk 2**: Default Credential **Điểm**: 6/10 (D:10, R:4, E:4, A:10, D:2) **Mô tả**: Máy ATM có chứa tổ hợp phím mặc định được công khai cho phép kẻ tấn công nâng cao đặc quyền khi sử dụng, thay đổi thông tin số tiền tài khoản hoặc can thiệp vào quá trình giao dịch. **Các khắc phục**: Loại bỏ toàn bộ hoặc thay đổi thông tin mặc định để khác so với thông tin đã được công khai. ### Chức năng 4: Kiểm tra thông tin tài khoản #### 4.1 Spoofing (Giả mạo) **Risk 1**: Giả mạo thẻ ATM **Điểm**: 5/10 (D:10, R:4, E:4, A:5, D:2) **Mô tả**: Kẻ tấn công từ một phương thức nào đó (Ví dụ phising) có được mã PIN, thông tin thẻ của nạn nhân, sau đó thực hiện sao chép thẻ của nạn nhân để thực hiện chức năng. **Các khắc phục**: Áp dụng các biện pháp bảo mật về phần cứng như việc sử dụng phần mềm chống sao chép, công nghệ chống phá hoại, và phần cứng chống đột nhập. #### 4.2 Tampering (Sửa đổi) **Risk 1**: Sử dụng phần mềm độc hại **Điểm**: 7/10 (D:10, R:10, E:7, A:5, D:3) **Mô tả**: Kẻ tấn công có thể thông qua kết nối phần cứng, mạng nội bộ để tải phần mềm độc hại có thể can thiệp lên hệ thống ATM thay đổi số tiền rút được. **Các khắc phục**: Loại bỏ toàn bộ kết nối phần cứng của máy ATM như USB,... Bật Firewall hoặc WAF để chặn phần mềm độc hại tải lên máy ATM. #### 4.3 Repudiation (Từ chối) **Risk 1**: Từ chối trách nhiệm rút tiền. **Điểm**: 2/10 (D:3, R:1, E:3, A:1, D:2) **Mô tả**: Trong một số trường hợp, kẻ tấn công từ chối hoặc không nhận trách nhiệm cho giao dịch bất hợp pháp của mình khi kiểm tra tài khoản của người dùng khác. **Các khắc phục**: Lưu lại các giao dịch của máy đồng lắp đặt hệ thống giám sát theo dõi tại cây ATM. #### 4.4 Information Disclosure (Tiết lộ thông tin) **Risk 1**: Thông tin nhạy cảm trong hóa đơn **Điểm**: 4/10 (D:10, R:4, E:3, A:1, D:2) **Mô tả**: Trong hóa đơn người dùng sau khi chuyển có thể chứa thông tin nhạy cảm của khách hàng hoặc người nhận. **Các khắc phục**: Không đính kèm bất kỳ thông tin bí mật nào của khách hàng trên hóa đơn. **Risk 2**: Inadequate Data Encryption **Điểm**: 5/10 (D:10, R:4, E:3, A:6, D:2) **Mô tả**: Dữ liệu không được mã hóa trong quá trình giao dịch, thông tin nhạy cảm có thể bị lộ bởi tấn công Man-In-The-Middle. **Các khắc phục**: Mã hóa các qui trình gửi và nhận requests giữa các thành phần trong máy ATM. #### 4.5 Denial of Service (Từ chối dịch vụ) **Risk 1**: Nguồn điện **Điểm**: 8/10 (D:10, R:8, E:8, A:10, D:2) **Mô tả**: Do yếu tố tự nhiên hoặc con người làm nguồn điện cung cấp ATM bị ngắt, hệ thống không thể hoạt động. **Các khắc phục**: Cung cấp nguồn điện dự phòng. #### 4.6 Elevation of Privilege (Nâng cao đặc quyền) **Risk 1**: Using Components With Known Vulnerabilities **Điểm**: 5/10 (D:10, R:2, E:1, A:10, D:2) **Mô tả**: Hệ thống ATM sử dụng ứng dụng, OS system có CVE cho phép kẻ tấn công leo thang đặc quyền. **Các khắc phục**: Update các ứng dụng trong hệ thống lên phiên bản mới nhất. **Risk 2**: Default Credential **Điểm**: 6/10 (D:10, R:4, E:4, A:10, D:2) **Mô tả**: Máy ATM có chứa tổ hợp phím mặc định được công khai cho phép kẻ tấn công nâng cao đặc quyền khi sử dụng, thay đổi thông tin số tiền tài khoản hoặc can thiệp vào quá trình giao dịch. **Các khắc phục**: Loại bỏ toàn bộ hoặc thay đổi thông tin mặc định để khác so với thông tin đã được công khai. # 4. Vai trò của Threat Modeling trong SDLC Trong quy trình Phát triển Phần mềm (Software Development Lifecycle - SDLC), threat modeling (mô hình hóa mối đe dọa) đóng vai trò quan trọng trong việc xác định và đánh giá các mối đe dọa tiềm tàng đến hệ thống hoặc ứng dụng. Threat modeling giúp các nhà phát triển và các chuyên gia bảo mật hiểu rõ hơn về những mối đe dọa có thể tác động đến hệ thống và tạo ra kế hoạch phòng ngừa hoặc giảm thiểu rủi ro. Cụ thể là + Xác định môi đe dọa sớm: Threat Modeling giúp ta xác định được các test-case, rủi ro có thể gặp phải trong các chức năng của ứng dụng ngay từ giai đoạn thiết kế. Điều này giúp ta phát triển nhận biết các vấn đề bảo mật sớm hơn và đưa ra các biện pháp phòng ngừa ngay từ đầu quá trình phát triển. + Đánh giá rủi ro: Threat modeling giúp đánh giá mức độ rủi ro của các mối đe dọa đã được xác định. Bằng cách đánh giá rủi ro, các nhà phát triển và chuyên gia bảo mật có thể xác định ưu tiên và tập trung vào những mối đe dọa quan trọng nhất và khắc phục chúng trước. + Tiết kiệm thời gian và nguồn lực: Threat modeling giúp tránh việc tìm kiếm và sửa lỗi bảo mật trong giai đoạn sau này của SDLC. Bằng cách xác định và giải quyết các mối đe dọa từ đầu, nó giúp tiết kiệm thời gian và nguồn lực vì các lỗi bảo mật đã được xử lý sớm