5.1. Môi trường thực nghiệm
Đề huấn luyện Deep Learning Classifier, và đánh giá các mô hình khác, chúng tôi
thực hiện trên server có câu hình được nêu trong bảng 5.1.
Bang 5.1: Cau hình máy chủ được dùng dé xây dựng và đánh giá bộ phân loại
Equipment Specifications
Name JupyterLab (iec-uit.com)
OS Ubuntu 20.04.4 LTS
Framework CUDA 11.4
Language Python 3.8.10
GPU GeForce RTX 3060
GeForce RTX 3060 Ti
RAM 65 GB
Memory 7,982 MiB (GeForce RTX 3060)
12,045 MIB (GeForce RTX 3060 Ti)
5.2. Bộ dữ liệu
Trong công trình nghiên cứu của mình, chúng tôi đã sử dụng bộ dữ liệu
CICMalDroid2020 làm bộ dữ liệu cho phân tích AndroAnalyzer của chúng tôi, nó
được thu thập từ tháng 12 năm 2017 đến tháng 12 năm 2018 bởi Mahdavifar và các
cộng sự [36]. Tập dữ liệu CICMalDroid2020 có hơn 17,341 mẫu file APK, và được
phân loại thành 5 loại: Adware, Banking Malware, SMS Malware, Mobile Riskware, Benign:
- Adware là loại mã độc thường an trong các ứng dụng chính thức, được cài
đặt từ các thị trường bên thứ ba.
45
- Banking Malware được thiết kế để truy cập vào tài khoản ngân hàng trực
tuyến của người dùng.
- SMS Malware khai thác dich vụ SMS để tiến hành tấn công.
- Mobile Riskware là các chương trình hợp lệ có thé gây thiệt hại nếu người
dùng độc hại khai thác chúng.
- Benign là các ứng dụng không có tính độc hại. Tác gia đã sử dụng
VirusTotal để xác minh tính độc hại của các ứng dụng không phải là Benign.
Trong khóa luận, chúng tôi chọn ngẫu nhiên 1000 file Adware, 1000 file SMS
Malware, 1000 file Mobile Riskware, 1000 file Banking Malware va 2000 file
Benign (chúng tôi gọi tập APKs này là MiniMalDroid) làm bộ dữ liệu đầu vào dé huấn luyện và đánh giá hiệu suất bộ phân loại trong công trình nghiên cứu của mình
và so sánh với các công trình nghiên cứu khác trong bài toán phân loại mã độc đa
lớp. Ngoài ra, trong phạm nghiên cứu của chúng tôi, chúng tôi giả sử Mobile
Riskware được thiết kế dé gây hại trực tiếp cho người dùng hoặc hệ thống, nó là độc hại. Khi đó, để huấn luyện và đánh giá hiệu suất bộ phân loại của chúng tôi trong
bài toán phát hiện ứng dụng Android độc hại, chúng tôi sử dụng các file Adware, Banking Malware, SMS Malware, Mobile Riskware vừa chọn làm nhãn Malware, như vậy chúng ta có 4000 file Malware và 2000 file Benign.
Dé tạo ra bộ dữ liệu để huấn luyện mô hình học sâu, chúng tôi đã sử dụng 6000 file APKs đã dé cập ở trên làm dif liệu đầu vào cho bộ phân tích, nhằm tạo ra file CSV chứa 6000 dòng, với mỗi dòng là số liệu được ghi lại ứng với các đặc trưng của file APK tương ứng (chúng tôi gọi tập dit liệu đã trích xuất này là AndroAnalyzer). Dé huấn luyện và đánh giá bộ phân loại của AndroAnalyzer, chúng tôi chia tập dữ liệu thành hai phan: training va validation theo tỉ lệ lần lượt là 8:2. Nhằm chứng minh hiệu quả của mô hình học sâu mà chúng tôi đề xuất, chúng tôi sử dụng tập dit liệu
Drebin-215 và Malgenome-215 được nêu trong công trình của Yerima và cộng sự
[37] và các bộ dữ liệu được trích xuất bởi công trình [38], [39] để so sánh hiệu quả
của model học sâu của chúng tôi với mô hình của họ trong bài toán phát hiện ứng
dụng Android độc hại. Trong bảng 5.2, chúng tôi mô tả chỉ tiết số lượng của các
46
mẫu theo từng class trong tập dữ liệu MiniMalDroid được sử dụng trong bài toán
phát hiện ứng dụng Android độc hại và phân loại loại ứng dụng Android độc hại của chúng tôi.
Bảng 5.2: Tông hợp các dữ liệu được sử dụng đê đánh giá và so sánh hiệu suât của
công trình của chúng tôi với các công trình khác.
Dataset Class Train Valid Total
Benign 1600 400 2000
Mobile Riskware 800 200 1000
Multi-class
Adware 800 200 1000
classification
Banking Malware 800 200 1000
SMSMal 800 200 1000
Beign 1600 400 2000 Binary classification
Malware 3200 800 4000
Beign 8543 933 9476 Drebin-215 [37]
Malware 4989 571 5560
Beign 2296 243 2539
Malgenome-215 [37]
Malware 1123 137 1260
Beign 10482 2649 13131
AndroVul [39]
Malware 2462 587 3049
Beign 10168 2551 12719
Baltaci et al [8]
Malware 3616 896 4512
5.3. Chỉ số đánh giá
Đề đánh giá hiệu suất của mô hình phát hiện phần mềm độc hại trên Android, chúng tôi sử dụng các chỉ số đánh giá phô biến cho học máy, bao gồm: accuracy, recall,
precision, Fl-score . Trong nghiên cứu của mình, chúng tôi đã thực nghiệm 2 bài
toán: phát hiện ứng dụng Android độc hại và phân loại loại ứng dụng Android độc
hại. Vì vậy, dé tính toán các chỉ số recall, precision, Fl-score của từng class, chúng tôi còn sử dụng confusion matrix cho ta biết số lượng các file APKs được dự đoán
47
vào từng class và số lượng các file APK thực sự thuộc từng class. Confusion matrix
là một ma trận kích thước NxN với các phần tử ở hàng ¡, cột j thể hiện số lượng file APK thuộc class 1 được dự đoán là class j, với N là số class của bài toán. Dé tính
precision, recall và Fl-score cua class i, ta có thé sử dụng công thức sau:
Precision; = TP;
T€CLSLOTI; = TP, + FP,
Recalli=—
“E71 TD, + EN,
F1 2 X Precision; x Recall;
-score; =———————————
r Precision; + Recall;
Trong đó:
- TP;: số lượng điểm dữ liệu thực sự thuộc class i và được dự đoán là class i.
- Fh;: sỐ lượng điểm dữ liệu không thuộc class 1 nhưng lại được dự đoán là
class 1.
- FN;: sỐ lượng điểm dữ liệu thuộc class i nhưng lại không được dự đoán là
class 1.
Trong cả bài toán phát hiện ứng dụng Android độc hại và phân loại loại ứng dụng
Android độc hại, để tính precision, recall và Fl-score cho toàn bộ các class, ta có thé tính trung bình trọng số của các giá trị này theo tỷ lệ số lượng điểm dữ liệu thuộc từng class (weighted). Dé tính Weighted Precision, Recall và Fl-score , ta có thể sử dụng công thức sau:
N ..i=1W; X Precision;
WeightedPrecision = N
¡=1 Wi
Nw, X Recall;
WeightedRecall = ———cq———————
¡=1 Wi
; 1 W; X F1score;
WeightedF1-score = ——=_—_
i=1 Wi
48
Trong đó, w; là trọng số của class i, là tỷ lệ số lượng các điểm dữ liệu thuộc class i trên tổng số lượng điểm dữ liệu
Bên cạnh đó, accuracy là một chỉ số đánh giá tong thê về độ chính xác của mô hình. Chỉ số này cho biết tỷ lệ các file APK được dự đoán đúng trên tổng số lượng file APKs. Dé tính accuracy, ta có thé sử dụng công thức sau:
iL TP;
Accuracy = =~
(TP; + FP,)
5.4. Hiệu suất phân loại
5.4.1. Phát hiện ứng dụng Android độc hại
Bảng 5.3: Mô tả confusion matrix của mô hình chúng tôi trên các tập dữ liệu trong
bài toán phát hiện ứng dụng Android độc hại
Prediction outcome
Dataset Benign Malware Total
Benign 386 14 400
Our dataset
Malware 9 791 800
Benign 927 6 933
Drebin-215
Malware 11 560 571
oO
s Benign | Malgenome- 243 0 243
8 |Malware| 2l5 3 134 137
1S)
<
Benign 2531 118 2649
AndroVul
Malware 206 381 587
Benign 2420 131 2551
Baltaci et al
Malware 580 316 896
Dựa vào confusion matrix, ta thay mô hình đã dự đoán đúng 386 trường hop Benign
và 791 trường hợp Malware. Tuy nhiên, mô hình cũng đã nhằm lẫn 14 trường hợp
49
Benign là Malware và 9 trường hợp Malware là Benign. Tức là mô hình đã phân loại đúng 0.9650 với nhãn Benign và 0.9890 với nhãn Malware.
Bảng 5.4: Mô tả classification report của mô hình chúng tôi trên các tập dữ liệu
trong bài toán phát hiện ứng dụng Android độc hại
Dataset Category Precision | Recall | Fl-score | Support
Benign 0.9772 0.965 0.9711 400
Malware 0.9826 0.9888 0.9857 800
Our dataset
Weighted avg 0.9808 0.9808 0.9808
1200 Accuracy 0.9808
Benign 0.9883 0.9936 0.9909 933
Malware 0.9894 0.9807 0.9850 571
Drebin-215
Weighted avg 0.9887 0.9887 0.9887
[ 1504
Accuracy 0.9887
Benign 0.9878 1.000 0.9939 243
Malgenome- Malware 1.000 0.9781 0.9889 137
215 Weighted avg 0.9922 0.9921 0.9921
380 Accuracy 0.9921
Benign 0.9247 0.9555 0.9398 2649
Malware 0.7635 0.6491 0.7017 587
AndroVul
Weighted avg 0.8955 0.8999 0.8966
3236 Accuracy 0.8999
Benign 0.8067 0.9486 0.8719 2551
Baltaci et al
Malware 0.7069 0.3527 0.4706 896
50
Weighted avg 0.7807 0.7937 0.7676
3447 Accuracy 0.7937
Bảng 5.4 cho thay mô hình chúng tôi có hiệu suất phát hiện tốt với accuracy trung bình và weighted average của Fl-score đều đạt giá trị là 0.9808. Đối với các lớp riêng lẻ, mô hình hoạt động tương đối tốt ở cả 2 class Benign và Malware với precision scores lần lượt là 0.9772 và 0.9826. Tuy nhiên, điểm recall có sự chênh lệch ít, cụ thể Malware là 0.9888 và Benign là 0.9650. Qua điểm Fl-score của 2 class, ta thấy độ chênh lệch của chúng tương đối nhỏ, đều cao hơn 0.97, điều này cho thay precision va recall có sự cân bằng. Nhìn chung, bộ phát hiện mã độc được
đê xuât hoạt động có hiệu suât cao
Ngoài ra, với các tập dữ liệu được công khai khác, mô hình phát hiện ứng dụng
Android độc hại của chúng tôi đạt hiệu suất cao xấp xi 0.99 trên tập dữ liệu Drebin-
215 và Malgenome-215 và có sự cân bang trên class Malware va Benign. Tuy nhiên đối với đối tập dữ liệu trong công trình [38] [39] vì có sự mất cân bằng số lượng trong 2 class nên tỉ số Fl-score không cao và mat cân bằng ở 2 class.
5.4.2. Phân loại loại ứng dụng Android độc hai
Bảng 5.5: Confusion matrix của mô hình chúng tôi trên tập dữ liệu được phân tích
của chúng tôi trong bài toán phân loại loại ứng dụng Android độc hại
Prediction outcome
Banking SMS
Benign | Adware Riskware
Malware Malware
Benign 389 2 3 6 0
ằ Adware 1 192 1 3 3
=)
5 Banking Malware 6 2 181 5 6
œ@
>
az Riskware 8 4 6 181 1
SMS Malware 0 0 3 2 195
51
Confusion matrix trong bảng 5.5 cho thấy mô hình phân loại của bạn có hiệu suất tốt trong phân loại các lớp. Trong đó, class Benign và SMS đều được phân loại
chính xác với tỷ lệ đúng cao (389/400 = 0.9725 và 195/200 = 0.9750). Tuy nhiên,
lớp Banking và Riskware có tỷ lệ đúng hơn các lớp khác với 181/200 = 0.9050. Do
vậy dé cải thiện hiệu suất bộ phân loại, chúng ta cần cần tập trung vào cải thiện tỷ lệ
đúng cho lớp Banking và Riskware.
Bang 5.6: Classification report của mô hình chúng tôi trên tập dữ liệu được phân
tích của chúng tôi trong bài toán phân loại loại ứng dụng Android độc hại
Category Precision Recall F1-score Support
Benign 0.9629 0.9725 0.9677 400
Adware 0.9826 0.9888 0.9857 200
Banking Malware 0.9330 0.9050 0.9188 200
Riskware 0.9188 0.9050 0.9118 200
SMS Malware 0.9512 0.9750 0.9630 200
Weighted avg 0.9808 0.9808 0.9808
1200
Accuracy 0.9808
Bảng 5.6 cho thay trình phân loại có hiệu suất tổng thé tốt với accuracy trung bình
có trọng số là 0.9483. Weighted average Fl-score có trọng số là 0.9840, đây là thước đo cân bằng giữa precision và recall. Đối với các lớp riêng lẻ, trình phân loại hoạt động tốt đối với Benign, SMS va Adware với precision scores lần lượt là 0.9629, 0.9512 và 0.9600. Đồng thời recall scores của chúng cũng cao hơn 0.96. Tuy nhiên, hiệu suất của class Banking và class Riskware có thể cần được cải thiện, với Fl-score là đều xấp xi 0.915. Nhìn chung, bộ phân loại cung cấp hiệu suất tốt cho hầu hết các lớp. Tuy nhiên, dé cải thiện hơn nữa dé đạt hiệu suất cao, có thé hữu ích khi tập trung vào việc tăng độ chính xác và thu hồi cho class Banking và
Riskware.
52
5.5. So sánh cơ bản
5.5.1. Phát hiện ứng dụng Android độc hai
Kịch bản 1: So sánh các mô hình học sâu đơn lớp trên AndroAnalyzer Dataset
Bảng 5.7: Hiệu suất phân loại loại ứng dụng Android độc hại ứng dụng độc hại của
các mô hình học sâu phô biên trên AndroAnalyzer Dataset
Model Accuracy | Precision | Recall | F1-
score
MLP 0.9700 0.9699 | 0.9700 | 0.9699
RNN 0.9608 0.9608 | 0.9608 | 0.9607
GRU 0.9675 0.9675 | 0.9675 | 0.9674
CNN 0.9700 0.9699 10.9700 | 0.9699
LSTM 0.9492 0.9490 | 0.9492 | 0.9489
BiLSTM 0.9592 0.9591 0.9592 | 0.9590
Our model 0.9808 0.9808 | 0.9808 | 0.9808
Dua trén két quả thực nghiệm ở bang 5.7 cho thay, trên tập dữ liệu đặc trưng được
trích xuất của chúng tôi, các mô hình học sâu phô biến hiện nay đạt được hiệu suất cao với accuracy và F1-score trên 0.9480. Với mô hình được đề xuất, chúng tôi thu được một kết quả thực nghiệm đáng mong đợi so với các mô hình học sâu khác có accuracy và Fl-score là 0.9808, cao hon mô hình tốt nhất (MLP, CNN) hơn 1% ở
cả 2 chỉ số accuracy và Fl-score .
Kịch bản 2: So sánh một số công trình khác trên MiniMalDroid Dataset
Bảng 5.8: Hiệu suất phát hiện ứng dụng Android độc hại ứng dụng độc hại của các
công trình nghiên cứu trước đây trên MiniMalDroid Dataset
Works Accuracy | Precision Recall F1-score
Freitas và cộng sự [30] 0.8152 0.8195 0.8152 0.8038
53
Daoudi và cộng sự [40] 0.9366 0.9371 0.9367 0.9368
Sun va cộng su [5] 0.9425 0.9429 0.9425 0.9426
Li va cộng su [41] 0.8901 0.8902 0.8823 0.919
Narayanan va cong su [42] 0.9639 0.9642 0.9639 0.964
Our work 0.9808 0.9808 0.9808 0.9808
Dựa trên kết quả thực nghiệm ở bảng 5.8, với các công trình phát hiện ứng dụng
Android độc hại dựa trên kỹ thuật xử lý ảnh, công trình của Sun và cộng sự [5] đạt
hiệu suất cao nhất với accuracy là 0.9425 và F1-score là 0.9426, thấp hơn công trình của chúng tôi khoảng 4% ở cả hai số liệu. Với các công trình phát hiện ứng dụng Android độc hại dựa trên kỹ thuật trích xuất đặc trưng tĩnh, công trình của Narayanan và cộng sự [42] đạt hiệu suất cao nhất với Accuracy là 0.9639 và F1- score là 0.9727, thấp hơn công trình của chúng tôi 1.69% ở chỉ số Accuracy và 1.29% ở chỉ số F1-score .
Dựa trên kết quả thực nghiệm ở bang 5.7 và bảng 5.8 cho thấy, mô hình trích xuất
đặc trưng từ file APKs của chúng tôi có hiệu quả cao hơn so với các công trình
nghiên cứu khác. Cụ thể, tập đữ liệu được trích xuất bởi AndroAnalyzer có khả năng phù hợp với nhiều mô hình học sâu phô biến như MLP, RNN, GRU, CNN. Các mô hình học sâu này đều có chỉ số accuracy và Fl-score xấp xỉ với công trình
[42] và cao hơn các công trình khác.
Kịch bản 3: So sánh Our model và Best model của các tập dữ liệu CSV khác
Bảng 5.9: So sánh hiệu suất của mô hình chúng tôi đề xuất với mô hình tốt nhất
được đê xuât trên các tập dữ liệu phát hiện mã độc Android được công khai
Zakeya và Works Yerima và cộng sự [37]
cộng sự [38] | Baltaci và cộng
Malgenome- sự [39]
Dataset Drebin-215 215 AndroVul
54
PreM 0.989 1.000 0.764 0.707
PreB 0.988 0.988 0.925 0.807 Our
RecM 0.981 0.978 0.649 0.353 Model
RecB 0.994 1.000 0.955 0.949 W-FI 0.989 0.992 0.900 0.794
PreM 0.981 0.984 - 0.550
Best
PreB 0.991 0.984 - 0.840 model
t RecM 0.984 0.968 - 0.370
0
RecB 0.989 0.992 - 0.850 work
W-F1 0.987 0.984 0.820 0.741
Đề đánh giá một cách khách quan hiệu suất phát hiện ứng dụng độc hại của mô hình, chúng tôi cũng đã tiến hành thực nghiệm mô hình của mình trên một sỐ tập liệu công khai để thực hiện so sánh hiệu suất phát hiện ứng dụng độc hại của chúng tôi với các mô hình các mô hình có hiệu suất tốt nhất được trình bày trong báo cáo. Các công trình được so sánh bao gồm: công trình của Yerima cùng cộng sự [37],
với hai tập dữ liệu phân tích mã độc Android Drebin-215 và Malgenome-215; công
trình của Zakeya cùng cộng sự [38] trên tập dữ liệu AndroVul và công trình của
Baltaci cùng cộng sự [39] với tập dữ liệu được đề cập trong nghiên cứu.
Trong Bảng 5.9, chúng tôi so sánh hiệu suất của mô hình chúng tôi với best model được đề cập trong các nghiên cứu trước đó trên các tập dữ liệu phân tích mã độc Android tương ứng; các chỉ số được dùng để so sánh hiệu suất của các model bao gồm: Precision Malware (PreM), Precision Benign (PreB), Recall Malware (PreM), Recall Benign (PreB) va Weighted Fl-score (W-FI). Tổng quan, các chỉ số Precision (PreM và PreB), Recall (RecM và RecB) va weighted-F1 của mô hình dé xuất (Our Model) đa số đều cao hơn so với mô hình tốt nhất được dé xuất trong các nghiên cứu trước đó trên các tập dữ liệu tương ứng. Cụ thé, đối với tập dữ liệu Drebin-215, mô hình đề xuất của chúng tôi đạt được độ chính xác tương đương so với mô hình tốt nhất được đề xuất bởi Yerima cùng cộng sự [37] đều đạt Weighted Fl-score xấp xi 0.988. Trong khi đó, cũng trong nghiên cứu nay, đối với tap dữ liệu
55
Malgenome-215, mô hình dé xuất của chúng tôi đạt được sự cải thiện hơn trong tất
cả các chỉ số so sánh với mô hình tốt nhất được đề xuất của bài báo này, đạt
Weighted Fl-score là 0.992 (cải thiện 0.8%). So với nghiên cứu của Baltaci cùng
cộng sự [39], mô hình dé xuất của chúng tôi cũng đạt được kết quả tốt hơn đáng kế
ở cả hai chỉ số PreB và RecM, do đó chi weighted-Fl-score cao hơn nhiều so nghiên cứu này, cụ thé Weighted F1-score đạt 0.794 (cải thiện 5%). Trong nghiên cứu của Zakeya cùng cộng sự [38] đạt được kết quả weighted-Fl-score thấp hon nhiều so với mô hình đề xuất của chúng tôi trên tập dữ liệu AndroVul, đạt 0.820 (thấp hơn 8%). Tuy nhiên, không có thông tin về các chỉ số precision và recall của
mô hình được dé xuât trong nghiên cứu này.
Qua các kết quả đạt được, chúng tôi nhận thấy rằng mô hình chúng tôi đề xuất không những đạt hiệu suất cao trên tập dữ liệu đã phân tích của mình, mà còn phù hợp và đạt hiệu suất cao trên các tập dữ liệu công khai khác.
5.5.2. Phan loại loại ứng dung Android độc hại
Kịch bản 1: So sánh các mô hình học sâu đơn lớp trên AndroAnalyzer Dataset
Bảng 5.10: Hiệu suất phân loại loại ứng dụng Android độc hại ứng dụng độc hại của
các mô hình học sâu phổ biến trên AndroAnalyzer Dataset
Model Accuracy Precision Recall F1-score
MLP 0.9325 0.9329 0.9325 0.9326
RNN 0.9275 0.9275 0.9275 0.9274
GRU 0.9333 0.9328 0.9333 0.9329 CNN 0.9350 0.9349 0.9350 0.9349
LSTM 0.8966 0.8985 0.8967 0.8968
BiLSTM 0.9158 0.9164 0.9158 0.9159
Our model 0.9483 0.9481 0.9483 0.9481
56
Bảng 5.10 là kết quả so sánh hiệu suất phân loại ứng dụng độc hại của các mô hình
học sâu phổ biến với tập dit liệu đặc trưng được AndroAnalyzer trích xuất. Kết quả
cho thấy, các model học sâu phổ biến hiện nay đều đạt hiệu suất cao, độ chính xác
trong khoảng 0.89 đến 0.93 và Fl-score trong khoảng 0.89 đến 0.94. Chỉ có một số model CNN tốt hơn hết với accuracy và Fl-score lần lượt là 0.9350 va 0.9375.Một
số mô hình khác như LSTM, BILSTM, RNN và GRU-RNN có FI-score trên 0.91.
Kịch bản 2: So sánh các công trình khác trên MiniMalDroid
Bảng 5.11: Hiệu suất phân loại loại ứng dụng Android độc hại ứng dụng độc hại của
các công trình nghiên cứu trước đây trên tập dữ liệu APKs đã đê xuât của chúng tôi
Works Accuracy | Precision | Recall F1-
score
+
Freitas et al [30] 0.5224 0.5808 0.5225 | 0.5305
Daoudi et al [33] 0.8700 0.8697 0.8700 | 0.8683
Our Work 0.9483 0.9481 0.9483 | 0.9481
Dựa trên kết qua thực nghiệm bang 5.11 cho thấy, công trình của chúng tôi đạt hiệu suất cao hơn công trình đạt hiệu suất tốt nhất [40] xấp xỉ 8% ở cả 2 chỉ số accuracy
và Fl-score . Hiệu suất của công trình [30] thấp nhất với Fl-score 0.5305.
Dựa vào bang 5.10 và bảng 5.11 cho thay, mô hình có hiệu suất thấp nhất trên dữ liệu đặc trưng được trích xuất bởi AndroAnalyzer là LSTM, có hiệu suất cao hơn công trình có hiệu suất cao nhất [40] xấp xỉ 2% ở cả hai chỉ số. Tóm lại, mô hình chúng tôi đề xuất có hiệu suất vượt trội hơn các mô hình khác trên dữ liệu được trích xuất bởi framework mà chúng tôi nghiên cứu. Và có hiệu suất cao hơn nhiều
so với một sô công trình khác.
5.6. Phát triển ứng dụng web
Dé người dùng cơ bản có thể thao tác và sử dụng hệ thống, chúng tôi thiết kế va
triên khai website với mô hình như hình sau:
57