Trong bất kỳ hệ thống nào thì việc bảo mật là cực kỳ quan trọng, trước khi phát triển hệ thống sẽ có khâu tổng hợp phân tích requirement liên quan đến security. Dưới đây là output mẫu cho NFR’s Security.

Hoặc có thể tải trên IPA
https://www.ipa.go.jp/archive/digital/iot-en-ci/jyouryuu/hikinou/ent03-b.html
nhưng làm sao các bạn biết cái nào cần, cái nào không cho hệ thống ?

Thì câu trả lời là dùng tool gọi là thread modeling , nói nôm na nó là một phương thức, checklist , process để nhận diện các mối đe doạ ( thread) tiềm tàng xảy ra trong hệ thống của mình, nó giống như việc bạn kiểm tra nhà cửa để tìm ra những chỗ yếu có thể bị kẻ trộm tấn công. Với thread modeling, bạn sẽ biết được những điểm yếu của hệ thống để có biện pháp phòng ngừa.

Why Thread Modeling và bảo mật ?

cho nên Thread Modeling sẽ cần được thực hiện ở phase requirement ( youkenteigi ) hoặc phase development .

Các Bước Cơ Bản Trong Thread Modeling

dựa vào 4 câu hỏi sau :

Giờ ta sẽ đi vào từng chi tiết :

  1. What do we build?
    Hiểu hệ thống của bạn: Đầu tiên, bạn cần hiểu rõ hệ thống mà mình muốn bảo vệ. Gồm những phần nào, hoạt động ra sao, dữ liệu di chuyển như thế nào.
    Xác định các tài sản cần bảo vệ: Tài sản ở đây có thể là dữ liệu, thông tin cá nhân, hệ thống mạng, hoặc bất cứ thứ gì quan trọng đối với hệ thống của chúng ta.
  2. What can go wrong?
    Xác định các mối đe dọa:
    Những cách nào chúng có thể dùng để xâm nhập vào hệ thống của chúng ta ? Đó có thể là lỗ hổng phần mềm, mật khẩu yếu, hoặc các tấn công xã hội như lừa đảo…
  3. How can I mitigate that ?
    Đánh giá rủi ro: Xác định mức độ nguy hiểm của từng mối đe dọa. Cái nào dễ xảy ra nhất và gây hậu quả nghiêm trọng nhất?
    Dựa vào đánh giá rủi ro, bạn sẽ tìm ra cách để giảm thiểu hoặc loại bỏ các mối đe dọa. Có thể là cập nhật phần mềm, thay đổi mật khẩu, hoặc tăng cường đào tạo về bảo mật.
  4. Did we succeed?
    Kiểm tra bằng việc thực thi kiểm thử như Penetration Testing và Load Testing :
    – Penetration Testing giúp tìm điểm yếu, lỗ hổng trong hệ thống cho phép attacker truy cập trái phép.
    – Load Testing thì không hẳn là liên quan tới bảo mật, nó là một kiểu test giả định tải nặng trên hệ thống để kiểm tra xem hệ thống có hoạt động bình thường hay không, giúp bảo vệ disruption of service.

Giờ thì chúng ta sẽ áp dụng Thread Modeling để áp dụng vào một case-study là hệ thống HR management có những chức năng cơ bản sau đây :

1. What Do We Build:

2. What Can Go Wrong:

  1. Sensitive Data Might Leak: Dữ liệu nhạy cảm ( tiền lương ) có thể bị lộ.
  2. Unauthorized Access: Truy cập trái phép có thể dẫn tới dữ liệu bị thay đổi trái phép .
  3. Payment Data Tampering: Dữ liệu thanh toán( tài khoản, số tiền cần thanh toán ) có thể bị giả mạo khi liên kết với payment system .

3. How Can We Mitigate That:

MụcRủi roCách đối phó / Action
1Sensitive Data Might Leak– Mã hoá dữ liệu( Salary) nhạy cảm để dù có thể lộ cũng không đọc được.
– Triển khai nguyên lý đặc quyền tối thiểu ( Least-Privilege authorization) trong database
2Unauthorized Access– Strong Authentication: Triển khai xác thực mạnh mẽ cho mọi quyền truy cập vào dữ liệu
– Logging & Monitoring để phát hiện hành vi gian lận một cách kịp thời.
3Payment Data Tampering– Mã hoá dữ liệu nhạy cảm để dù có thể lộ cũng không đọc được ( hệ thống gửi account id của nhân viên + số tiền thanh toán )
– Sử dụng phương thức giao tiếp bảo mật
Implementation :

4. Did we succeed?

Để trả lời cho câu hỏi hệ thống đã đáp ứng bảo mật chưa thì verify lại thông qua kiểm thử, cụ thể là Penetration Testing.

Các mục cần kiểm thử ví dụ :

Xong những bước này thì sẽ tổng hợp lại thành output của Non Functional Requirement( 非機能要件) ở phase requirement(youkenteigi) cho security và kế hoạch kiểm thử ( testing ).

Dựa vào các yêu cầu này mà SA hay SE sẽ thiết kế ra Security Architecture cho hệ thống.

Tổng kết lại :
Thread Modeling là một công cụ quan trọng giúp bảo vệ hệ thống của bạn khỏi các mối đe dọa tiềm ẩn. Bằng cách hiểu rõ hệ thống, xác định tài sản cần bảo vệ, nhận diện mối đe dọa, đánh giá rủi ro, và đưa ra biện pháp phòng ngừa, bạn có thể đảm bảo an toàn cho dữ liệu và dịch vụ của mình. Hãy nhớ, bảo mật không bao giờ là thừa thãi,nên luôn đảm bảo hệ thống luôn cần có requirement cho security , và được thực thi chuẩn chỉ, phòng bệnh thì bao giờ cũng tốt hơn chữa bệnh.

Hy vọng qua bài viết này, bạn đã có cái nhìn rõ hơn và dễ hiểu hơn về mô hình Thread Modeling và bảo mật .


Leave a Reply

Your email address will not be published. Required fields are marked *