MỤC LỤC
1
LỜI MỞ ĐẦU
Trong hệ thống ứng dụng web, trình duyệt web là một trong các thành
phần rất quan trọng, trong đó trình duyệt thay mặt người dùng gửi u cầu truy
nhập đến máy chủ web, tải và biểu diễn kết quả trả về từ máy chủ cho người
dùng. Vì vậy, trình duyệt web được sử dụng rất rộng rãi trong các cơ quan, tổ
chức và cá nhân. Theo thống kê của trang internetlivestats.com, số lượng
website hoạt động trên mạng web tồn cầu là hơn 1,3 tỷ, tính đến cuối năm 2017
và được dự báo tiếp tục tăng nhanh trong những năm tới. Đi kèm với sự phổ
biến và các tiện ích mà các ứng dụng web nói chung và trình duyệt Web nói
riêng thì các nguy cơ mất an tồn và các dạng tấn cơng vào các trình duyệt web,
các website và các hệ thống đi kèm cũng tăng trưởng ở mức đáng lo ngại.
Việc nghiên cứu các mối đe dọa đối với trình duyệt web và các giải pháp
bảo mật trình duyệt web là vơ cùng cấp thiết trong tình hình hiện nay. Xuất phát
từ lý do trên, nhóm 6 chọn đề tài “Giải pháp bảo mật trình duyệt web” làm đề tài
bài tìm hiểu. Ngồi phần mở đầu, kết luận, bài tìm hiểu của nhóm gồm 5 phần:
Phần 1: Tổng quan về trình duyệt Web.
Phần 2: Các vấn đề về bảo mật trình duyệt Web.
Phần 3: Đánh giá độ bảo mật một số trình duyệt thơng dụng.
Phần 4: Demo các kiểu tấn cơng và cách phịng chống.
Phần 5: Giải pháp bảo đảm an tồn trình duyệt Web.
2
Phần 1: Tổng quan về trình duyệt Web
1.1.
Khái niệm về trình duyệt Web
– Trong hệ thống ứng dụng web, trình duyệt web là một trong các thành
phần rất quan trọng, trong đó trình duyệt thay mặt người dùng gửi u cầu
truy nhập đến máy chủ web, tải và biểu diễn kết quả trả về từ máy chủ cho
người dùng.
– Trình duyệt cũng hỗ trợ hệ thống giao diện phức tạp, ngôn ngữ kịch bản
JavaScript, mẫu định định dạng CSS và các trình cắm (plug-in) nhằm bổ
sung tính năng cho trình duyệt.
1.2.
Cơng dụng của trình duyệt Web
– Trình duyệt web là các loại công cụ giúp gửi đi các yêu cầu từ người
dùng, nhận dữ liệu từ trên mạng và cuối cùng hiển thị dữ liệu đó trên màn
hình máy tính người dùng
– Như vậy, mỗi khi người dùng cung cấp cho trình duyệt web một địa chỉ
nào đó, phần mềm này sẽ liên kết với server của website, gửi đi yêu cầu
truy cập của người dùng. Tiếp đó, sau khi server nhận phản hổi và gửi lại
dữ liệu, trình duyệt sẽ đọc các thông tin này ở định dạng HTML rồi hiển
thị lên màn hình những nội dung của website đó.
– Để hỗ trợ trải nghiệm và sử dụng internet của người dùng được tốt hơn,
các trình duyệt cũng phát triển thêm các tùy chỉnh để cá nhân hóa giao
diện, lưu trữ địa chỉ duyệt web và cung cấp thêm cả các tiện ích
3
1.3.
Các trình duyệt Web phổ biến
4
1.4.
Kiến trúc của trình duyệt Web
- Trình duyệt thay mặt người dùng gửi yêu cầu truy nhập đến máy chủ web,
tải và biểu diễn kết quả trả về từ máy chủ cho người dùng. Trình duyệt
cũng hỗ trợ hệ thống giao diện phức tạp, ngôn ngữ kịch bản JavaScript,
mẫu định định dạng CSS và các trình cắm (plug-in) nhằm bổ sung tính
năng cho trình duyệt.
- Hình trên biểu diễn kiến trúc của trình duyệt web. Theo kiến trúc này, các
thành phần chính của trình duyệt web gồm User Interface (Giao diện
người dùng), Browser Engine (Mơ tơ trình duyệt), Redering Engine (Mơ
tơ trình diễn), Networking (Giao tiếp mạng), JavaScript Interpreter (Bộ
diễn dịch và thực hiện JavaScript), UI Backend (Giao diện người dùng
phía sau) và Data Persistence (Kho chứa dữ liệu cho trình duyệt và người
dùng).
- User Interface là giao diện tương tác giữa trình duyệt và người dùng.
Thành phần này thường gồm: Menu, Thanh địa chỉ (Address bar), Thanh
công cụ (Home, Back, Forward, Refresh, Stop,…), Bookmarks hoặc
Favourites (những trang được định vị sử dụng thường xuyên) và các Tabs
5
(với các trình duyệt mới).
- Browser Engine là trung gian chuyển các đầu vào từ User Interface đến
Redering Engine. Nó chịu trách nhiệm truy vấn và xử lý Redering Engine
theo các đầu vào từ các User Interface khác nhau.
- Redering Engine chịu trách nhiệm hiển thị nội dung được yêu cầu lên màn
hình. Trình tự hoạt động của mơ đun này gồm 3 bước: (1) Phân tích cú
pháp các thẻ HTML, (2) Sử dụng các thẻ định dạng (styles) để xây dựng
cây trình diễn và (3) Xây dựng các sắp đặt trình diễn.
- Networking là mơ đun chịu trách nhiệm thực hiện các lời gọi dịch vụ
mạng, như gửi yêu cầu HTTP đến máy chủ web và tiếp nhận phản hồi từ
máy chủ web.
- JavaScript Interpreter chịu trách nhiệm diễn dịch và thực hiện mã
JavaScript nhúng trong trang web.
- UI Backend là mơ đun có nhiệm vụ vẽ các đối tượng trên trình duyệt như
cửa sổ, hộp combo, danh sách,...
- Data Persistence hỗ trợ các cơ chế lưu trữ như localStorage, IndexedDB,
WebSQL và FileSystem. Nó là một cơ sở dữ liệu nhỏ được tạo trên ổ đĩa
cục bộ của máy tính nơi trình duyệt được cài đặt. Nó quản lý dữ liệu
người dùng như bộ nhớ cache, cookie, dấu trang và tùy chọn.
6
Phần 2: Các vấn đề về bảo mật trình duyệt Web
Có 3 nhóm vấn đề liên quan đến bảo mật các trình duyệt web, bao gồm: (1) các
phương thức tấn cơng trình duyệt web, (2) mục đích tấn cơng trình duyệt và (3)
các tính năng cung cấp bởi trình duyệt chứa đựng nhiều nguy cơ bảo mật.
2.1.
Các phương thức tấn cơng trình duyệt web
• Hệ điều hành nền bị tấn cơng và mã độc có thể đọc, hoặc sửa đổi
khơng gian nhớ của trình duyệt trong chế độ đặc quyền;
• Hệ điều hành nhiễm mã độc chạy như một tiến trình nền và mã độc
có thể đọc, hoặc sửa đổi khơng gian nhớ của trình duyệt trong chế
•
•
•
•
độ đặc quyền;
Các thành phần của trình duyệt bị tấn cơng;
Các trình cắm (plug-in/add-on) của trình duyệt bị tấn cơng;
Giao tiếp mạng của trình duyệt có thể bị chặn bắt ở bên ngồi máy.
Cài đặt và sử dụng các công cụ: Clickjacking (nhấp chuột lừa đảo),
Likejacking (like lừa đảo),...
• Cài đặt các phần mềm quảng cáo, virus, phần mềm gián điệp và
trojan,...
• Tự động tải về file thực thi: Các trang web độc có thể sẽ tự động tải
về máy người dùng các file thực thi dạng .exe, .msi hoặc .bin. Hãy
từ chối không tải về file này nếu được hỏi. Nếu người dùng đã lỡ
7
tải về các file này, hãy xóa chúng ngay lập tức. Các file mã độc
dạng thực thi sẽ không bị kích hoạt cho tới khi người dùng mở
chúng ra.
• Các đường link giả mạo: Các dịch vụ quảng cáo chứa mã độc
thường có các nút download giả mạo và cố gắng bắt chước theo các
nút tải về thực sự. Rất có thể, khi người dùng click vào các mẩu
quảng cáo giả này, và các phần mềm độc hại từ đó sẽ được tải về
máy.
• Thơng báo u cầu tải về plugin để xem đoạn video: Các trang web
chứa mã độc có thể hiển thị các thơng báo cho biết người dùng cần
một plugin hiện thời chưa được cài đặt hoặc một dạng codec cho
phép đọc các định dạng file mới. Thực tế, người dùng sẽ cần một số
plugin nhất định để đọc các nội dung web ít phổ biến, ví dụ như
Netflix sẽ yêu cầu người dùng phải có plugin Silverlight do
Microsoft phát triển. Tuy vậy, các trang web lạ, ít tên tuổi rất có thể
sẽ ẩn giấu các đoạn mã độc dưới lớp vỏ plugin/codec. Trong khi đó,
các trang web uy tín lại sử dụng các plugin/codec phổ biến hoặc
được phát triển bởi các công ty lớn.
8
• Cảnh báo máy vi tính bị nhiễm virus hoặc bị lỗi: Thực tế, việc quét
virus hay kiểm tra tình trạng máy vi tính qua nền web khơng phải là
giải pháp tối ưu nhất. Bởi một số quảng cáo sẽ lừa người dùng tải
về các phần mềm sửa lỗi hoặc quét virus cho máy vi tính. Chính
các phần mềm này mới là các phần mềm chứa mã độc.
- Có nhiều mục đích tấn cơng trình duyệt người dùng. Các mục đích tiêu
biểu bao gồm:
• Hiển thị quảng cáo (pop-up);
• Thu thập, hoặc đánh cắp thơng tin cá nhân;
• Theo dõi, hoặc phân tích sử dụng web của người dùng;
2.2.
Các tính năng của trình duyệt chứa đựng nhiều nguy cơ bảo mật
• Hỗ trợ ActiveX: Microsoft đã thiết kế ra một chuẩn giao tiếp có tên gọi
ActiveX cho phép Internet Explorer giao tiếp và sử dụng dữ liệu, dịch vụ
từ các phần mềm khác. Khi sử dụng Internet Explorer, bất kì trang web
nào cũng có thể yêu cầu người dùng cho phép kích hoạt tính năng
ActiveX tại địa chỉ đó. Một số u cầu ActiveX là hồn tồn đáng tin cậy,
ví dụ khi người dùng mở video dạng flash trên Internet Explorer, phần
mềm Flash Player của Adobe có thể yêu cầu người dùng bật ActiveX. Tuy
vậy, ActiveX có mức độ nguy hiểm tiềm tàng khơng kém gì các phần
9
mềm độc lập. Các trang web lừa đảo yêu cầu bật ActiveX để mở ra một số
nội dung nhất định, nhưng thực tế khi được chấp thuận các trang web này
sẽ lây lan mã độc vào máy tính của người dùng.
• Hỗ trợ Java: Nhiều trang web chạy các ứng dụng hỗ trợ Java. Đồng nghĩa
đi kèm với đó là mối hiểm họa từ các lỗ hổng bảo mật. Cách đây không
lâu, hơn 600.000 máy Mac đã bị nhiễm Trojan do một lỗ hổng bảo mật từ
ứng dụng hỗ trợ Java, và sau đó Oracle đã phải khắc phục bằng một bản
vá lỗi
• Hỗ trợ trình cắm (Plug-in/Add-on/Extension): Các trình cắm (plug-in/adon) và mở rộng (extensions) của trình duyệt là các mơ đun ngồi được cài
bổ sung vào trình duyệt để cung cấp thêm nhiều tính năng mới, hoặc tiện
ích cho người dùng. Một số trình cắm thơng dụng bao gồm: Adobe Flash
Player, Adobe (Acrobat) Reader, Java plugin, ActiveX... Các trình cắm và
mở rộng cũng tiềm ẩn nhiều nguy cơ an ninh cho trình duyệt do trình cắm
10
làm tăng thêm giao diện tấn công và một số mã độc được viết dưới dạng
trình cắm hữu ích lừa người dùng tài và cài đặt vào hệ thống.
• Các Cookie: Cookie có thể chứa dữ liệu cá nhân và nhiều thơng tin khác
quan trọng khác và cookie có thể bị đánh cắp thơng qua tấn cơng XSS...
• JavaScript, VBScript: Đây là các ngơn ngữ lập trình với mã chạy nhúng
trong trình duyệt, giúp các trang web tăng tính tương tác, nhưng cũng tạo
điều kiện cho mã tấn công như XSS có thể thực hiện
11
Phần 3: Đánh giá độ bảo mật một số trình duyệt thơng dụng
Đánh giá độ bảo mật các trình duyệt là việc làm cần thiết nhằm định hướng cho
người dùng lựa chọn sử dụng các trình duyệt có tính năng và độ an tồn phù
hợp. Một số trình duyệt chú trọng cung cấp nhiều tính năng cho người dùng,
nhưng lại coi nhẹ vấn đề an toàn và ngược lại. Các tiêu chí đánh giá bao gồm:
tần suất cập nhật, số lượng lỗ hổng bị khai thác, tính năng sandbox và khả năng
chặn mã độc sử dụng kỹ thuật xã hội. Các so sánh đánh giá được thực hiện trên
các trình duyệt phổ biến nhất, bao gồm Google Chrome, Microsoft Internet
Explorer, Mozilla Firefox, Apple Safari và Opera. Cần lưu ý rằng, các số liệu về
kết quả đánh giá trong mục này chỉ đúng trong thời điểm đánh giá và chỉ có giá
trị tham khảo
Hình trên cung cấp thơng tin so sánh về tần suất cung cấp các bản vá an ninh.
Theo đó, Google Chrome có tần suất cập nhật nhanh nhất với 15 ngày, tiếp theo
là Firefox (28 ngày) và Internet Explorer (30 ngày). Apple Safari có tần suất cập
nhật chậm nhất là 54 ngày.
12
Hình trên cho biết số lượng các lỗ hổng bị khai thác và lỗ hổng chưa biết (zero
day) bị khai thác. Theo đó, Mozilla Firefox có tổng số lỗ hổng bị khai thác lớn
nhất, nhưng Internet Explorer là trình duyệt có số lượng lỗ hổng chưa biết bị
khai thác lớn nhất.
Hình trên cung cấp thơng tin so sánh tính năng sandbox giữa 3 trình duyệt
13
Google Chrome, Internet Explorer và Mozilla Firefox. Có thể thấy Google
Chrome có tính năng sandbox tốt nhất và Firefox có tính năng sandbox kém
nhất.
Hình trên so sánh khả năng chặn mã độc sử dụng kỹ thuật xã hội giữa 5 trình
duyệt. Theo đó, Internet Explorer có khả năng chặn các mã độc dạng này tốt
nhất và Opera kém nhất.
Hình trên cung cấp bảng so sánh tổng thể độ bảo mật các trình duyệt. Theo đó,
Google Chrome xếp cao nhất về độ an tồn (Security), cịn Mozilla Firefox xếp
cao nhất về tính riêng tư (Privacy). Google Chrome có điểm đánh giá tổng thể
về bảo mật cao nhất (16/17) và Opera có điểm đánh giá tổng thể về bảo mật thấp
14
nhất (8/17).
15
Phần 4: Demo các kiểu tấn cơng và cách phịng chống
4.1.
Tấn cơng điều khiển trình duyệt đối tượng
- Sử dụng beef xss framework trên Kali Linux tạo trang web để đối tượng
truy cập đến.
- Trên máy khách truy cập tới trang web.
- Hiện tại máy tấn công đã điều khiển được phiên làm việc của trình duyệt
máy khách. Ta có thể thực thi rất nhiều cách để khai thác như: Đánh cắp
cookie, Hijacking, Clickjacking, Social Engineering,…
16
Cách phòng chống:
- Cài đặt extension Block site trên Google Chrome: Khi truy cập tới trang
web có chứa mã độc. Tiện ích mở rộng này sẽ ngăn chặn khơng cho người
dùng truy cập tới.
17
4.2.
Tấn công thông qua lỗ hổng bảo mật của Google Chrome
Phương thức tấn công sử dụng lỗ hổng CVE-2019-5786 của Google Chrome.
- Sử dụng metasploit framework trên Kali để tấn công:
18
- Sau khi tấn cơng thành cơng ta có tốn quyền thực thi lệnh trên máy đối
phương như: tạo mới, sửa, xóa tệp tin; upload, download file; thực thi
command line…
Cách phòng chống:
- Update Google Chrome lên phiên bản mới nhất để cập nhật các bản vá từ
nhà phát hành trình duyệt.
19
20
Phần 5: Giải pháp bảo đảm an tồn trình duyệt Web
Trình duyệt web đang bị đặt dưới các cuộc tấn cơng mạng. Ngồi việc đơn giản
như lừa người dùng tải và chạy các phần mềm độc hại thì những kẻ tấn cơng chủ
yếu nhắm vào các lỗ hổng trên trình duyệt và phần bổ trợ của nó để xâm nhập
vào máy tính. Thơng qua các mã độc được cài cắm trên máy, kẻ tấn công không
chỉ phát động những cuộc tấn cơng mạng mà cịn có thể ăn cắp thơng tin cá
nhân, phá hoại dữ liệu và thực hiện nhiều hành động nguy hiểm khác.
Để đảm bảo an toàn cho trình duyệt web, cần kết hợp giữa việc đào tạo, nâng
cao ý thức người dùng và việc áp dụng các biện pháp, hoặc hướng dẫn kỹ thuật.
Dưới góc độ kỹ thuật, các biện pháp tăng cường an tồn cho trình duyệt web bao
gồm:
5.1.
Giải pháp bảo mật chung cho trình duyệt Web
Ln cập nhật cho trình duyệt
Sử dụng trình duyệt mới nhất hiện nay và kích hoạt chế độ tự động cập nhật cho
nó. Ngừng sử dụng các trình duyệt cũ như Safari cho MacOS hoặc là các bản
Internet Explorer cũ trên Windows. Thay vào đó, hãy sử dụng Google Chrome,
Firefox và để chúng tự động cập nhật còn nếu người dùng đang cài Windows 10
thì hãy dùng Microsoft Edge.
21
Giữ cho các phần bổ trợ cũng được cập nhật
Bất kỳ phần bổ trợ nào mà người dùng cần nên được tự động cập nhật
như Adobe Flash chẳng hạn. Google Chrome và Windows 10 có thể tự động cập
nhật bản Flash riêng của nó nhưng với các phiên bản Flash khác, người dùng
phải cập nhật tự động cho nó.
Thiết lập an ninh và bảo mật cho trình duyệt
Sử dụng trình duyệt web 64 bit
Các chương trình 64-bit thường được bảo vệ tốt hơn trước các cuộc tấn công
mạng. Giả sử người dùng đang cài bản Windows 64-bit thì người dùng nên sử
dụng trình duyệt 64-bit. Cách bố trí khơng gian địa chỉ ngẫu nhiên sẽ hiệu quả
22
hơn với các chương trình 64-bit.
Google Chrome có cả bản 32 lẫn 64-bit, hãy kiểm tra xem người dùng đang
dùng bản nào. Nếu đang dùng bản 32-bit thì người dùng nên tải bản 64-bit về
dùng.
Bản 64-bit ổn định của Firefox vẫn chưa có sẵn, mặc dù người dùng có thể sử
dụng bản của các nhà phát triển. Mozilar có kế hoạch phát triển bản 64-bit của
Firefox thông qua kênh ổn định trong Firefox 41.
Chạy một chương trình chống khai thác lỗ hổng bảo mật
Các chương trình chống khai thác lỗ hổng bảo mật làm cho trình duyệt web của
người dùng cứng cáp hơn trước các cuộc tấn cơng, thay vì dựa vào danh sách
các kiểu diệt virus của 1 phần mềm và hành vi cụ thể, các chương trình này sẽ
ngăn các hành vi bất thường xảy ra.
Có 2 lựa chọn cho người dùng là Microsoft's Emet và Malwarebytes AntiExploit. Cả 2 đều miễn phí nhưng Anti Exploit dễ sử dụng hơn.
Người dùng vẫn có thể sử dụng phần mềm diệt virus. Bộ chương trình rà quét
virus cần được cấu hình làm việc ở chế độ bảo vệ theo thời gian thực và được
cập nhật cơ sở dữ liệu mã độc thường xuyên để đảm bảo hiệu quả rà quét.
23
Đăng ký tiện ích cảnh báo
Đăng ký tiện ích cảnh báo từ các nhà cung cấp dịch vụ, như Google Alerts giúp
người dùng nhận được các cảnh báo an ninh cần thiết khi có những thay đổi, cập
nhật quan trọng trên tài khoản của họ, như việc đổi mật khẩu, thay đổi thông tin
cá nhân, hoặc truy nhập tài khoản từ một thiết bị hay vị trí lạ.
Thận trọng khi sử dụng tiện ích mở rộng
Các tiện ích trên trình duyệt thường dùng để tuỳ chỉnh trình duyệt và trang web
nhưng đồng thời, nó cũng có tác hại nhất định. Những tiện ích giả mạo có thể
24
chèn quảng cáo trên trang web người dùng truy cập hoặc theo dõi các hoạt động
trên trình duyệt của người dùng.
Khi cài đặt trình cắm, cần biết rõ tính năng và nguồn gốc, đồng thời, tránh cài
đặt các trình cắm lạ, không rõ nguồn gốc. Cố gắng sử dụng càng ít tiện ích mở
rộng càng tốt, nó sẽ giúp cho trình duyệt hoạt động tốt hơn.
Bảo vệ phần mềm trình duyệt chỉ là 1 phần, điều quan trọng nữa là người dùng
cần tránh các trang web lừa đảo và phần mềm "bẩn". Nhiều website cố gắng lừa
người dùng tải các chương trình rác thay cho phần mềm người dùng đang tìm,
thậm chí các chương trình hợp lệ cũng thường đi kèm các loại "rác" tiềm ẩn
nguy hiểm.
Cài đặt plug-in an ninh
Không phải tất cả các phần bổ trợ và plug-in đều xấu, có nhiều phần bổ trợ thậm
chí cịn giúp tăng cường bảo mật cho trình duyệt. Dưới đây là ba phần mở rộng
miễn phí và nên sử dụng để giúp trình duyệt của người dùng an tồn hơn:
• HTTPS Everywhere: Phần bổ trợ này được The Electronic Frontier
Foundation và The Tor Project tạo ra, nó hoạt động trên Firefox, Chrome
và cả Opera. HTTPS là một giao thức truyền thông đảm bảo an ninh trên
mạng máy tính. Giao thức này an toàn hơn nhiều so với các giao thức
HTTP truyền thống, đã từng được sử dụng rộng rãi. Chữ S trong HTTPS
25