Thuật toán duyệt cây như sau:
Với tổ chức của AST cần phải duyệt từ trên xuống dưới. Trong quá trình duyệt từ trên xuống nếu nhận được những hàm tác động đến mô hình RBAC hay dữ liệu nhạy cảm cần quan tâm. Ví dụ, có một đoạn mã nguồn mà ảnh hưởng trực tiếp đến dữ liệu nhạy
ifStatement
Expression
cảm “write (“RBAC.TXT”)” sau khi xác định được node này (thuộc loại node gì?) Sau đó, đi ngược lên trên để tìm điều kiện tương ứng.
Phần này chỉ tìm hiểu một số Statement đơn giản là các Statement chứa các điều
kiện liên quan đến vấn đề cần kiểm chứng. Khi xác định điều kiện cần xem node ảnh
hưởng đến dữ liệu nằm trong các Statement nào? Với Statement là if cần xem xét biểu
thức điều kiện của if. Nếu điều kiện của if thuộc một trong những điều kiện đã giới hạn
cũng như đã quy định từ trước khi đó bắt đầu xét sâu đến Statement này. Khi kiểm
chứng, nếu Statement có điều kiện thỏa mãn với yêu cầu kiểm chứng tiếp tục đi lên trên nếu không thỏa mãn in ra thông báo lỗi luôn. Sau khi đi lên trên, kiểm tra xem tiếp các
Statement với các điều kiện đã quy định và cứ tiếp tục như vậy cho đến khi đi đến Statement ngoài cùng thì thôi.
Thuật toán sẽ duyệt cây từ dưới lên, lấy cha của node xác định là tác động đến dữ
liệu sau khi đi lên trên xác định đâu là các Statement mới khai thác chi tiết.
CDT là một công cụ rất quan trọng để kiểm chứng thuật toán. Thuật toán được xây
dựng dựa trên kiến trúc của AST. CDT sinh ra AST để có cái nhìn rõ ràng nhất về cấu
trúc tổ chức của một mã nguồn C/C++. Trong tương lai, nếu muốn cải tiến thuật toán với công cụ khác là JDT thì tìm hiểu và sử dụng thành thạo công cụ CDT sẽ làm cho công
Mô hình dùng để mô tả cách triển khai thuật toán dựa trên AST như sau:
Hình 4.2: Mô tả thuật toán kiểm chứng cơ chế bảo mật
Với mô hình này, thuật toán được triển khai dựa trên hai thành phần chính là AST
và RBAC. Với một cơ chế bảo mật được xây dựng sẵn dựa trên các mô hình của RBAC, một đoạn mã nguồn đưa vào với đặc trưng các mô hình RBAC. Thuật toán được xây
dựng phải làm nổi bật rõ ràng nhất những ưu điểm của các mô hình RBAC và có sự kiểm soát mã nguồn một cách chi tiết và toàn diện nhất.