LỜI MỞ ĐẦUTrong hệ thống ứng dụng web, trình duyệt web là một trong các thànhphần rất quan trọng, trong đó trình duyệt thay mặt người dùng gửi yêu cầu truynhập đến máy chủ web, tải và bi
Trang 1MỤC LỤC
Trang 2LỜI MỞ ĐẦU
Trong hệ thống ứng dụng web, trình duyệt web là một trong các thànhphần rất quan trọng, trong đó trình duyệt thay mặt người dùng gửi yêu cầu truynhập đến máy chủ web, tải và biểu diễn kết quả trả về từ máy chủ cho ngườidù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ượngwebsite hoạt động trên mạng web toà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óiriêng thì các nguy cơ mất an toà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ápbả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àibài tìm hiểu Ngoà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 toàn trình duyệt Web.
Trang 3Phầ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ànhphần rất quan trọng, trong đó trình duyệt thay mặt người dùng gửi yêu cầutruy nhập đến máy chủ web, tải và biểu diễn kết quả trả về từ máy chủ chongườ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ảnJavaScript, 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ườidù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ànhì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ầutruy 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ểnthị 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 giaodiện, lưu trữ địa chỉ duyệt web và cung cấp thêm cả các tiện ích
Trang 41.3 Các trình duyệt Web phổ biến
Trang 51.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ệtcũ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ínhnă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ácthành phần chính của trình duyệt web gồm User Interface (Giao diệnngườ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ùngphía sau) và Data Persistence (Kho chứa dữ liệu cho trình duyệt và ngườidù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), Thanhcông cụ (Home, Back, Forward, Refresh, Stop,…), Bookmarks hoặcFavourites (những trang được định vị sử dụng thường xuyên) và các Tabs
Trang 6(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 đếnRedering Engine Nó chịu trách nhiệm truy vấn và xử lý Redering Enginetheo 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ànhì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ựngcâ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 ổ đĩacục bộ của máy tính nơi trình duyệt được cài đặt Nó quản lý dữ liệungười dùng như bộ nhớ cache, cookie, dấu trang và tùy chọn
Trang 7Phầ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ácphươ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 đổikhô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 ngoà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ỡ
Trang 8tải về các file này, hãy xóa chúng ngay lập tức Các file mã độcdạ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ã độcthường có các nút download giả mạo và cố gắng bắt chước theo cácnút tải về thực sự Rất có thể, khi người dùng click vào các mẩuquả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 yêu cầu tải về plugin để xem đoạn video: Các trang webchứa mã độc có thể hiển thị các thông báo cho biết người dùng cầnmột plugin hiện thời chưa được cài đặt hoặc một dạng codec chophé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 doMicrosoft 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
Trang 9• Cảnh báo máy vi tính bị nhiễm virus hoặc bị lỗi: Thực tế, việc quétvirus 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ínhcá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êubiể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ọiActiveX 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 webnào cũng có thể yêu cầu người dùng cho phép kích hoạt tính năngActiveX tại địa chỉ đó Một số yêu cầu ActiveX là hoàn toàn đáng tin cậy,
ví dụ khi người dùng mở video dạng flash trên Internet Explorer, phầnmềm Flash Player của Adobe có thể yêu cầu người dùng bật ActiveX Tuyvậy, ActiveX có mức độ nguy hiểm tiềm tàng không kém gì các phần
Trang 10mề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ônglâ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 on) và mở rộng (extensions) của trình duyệt là các mô đun ngoài được cài
(plug-in/ad-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 FlashPlayer, 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
Trang 11làm tăng thêm giao diện tấn công và một số mã độc được viết dưới dạngtrì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ácquan 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úngtrong 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
Trang 12Phầ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 chongười dùng lựa chọn sử dụng các trình duyệt có tính năng và độ an toà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ăngchặ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êncác trình duyệt phổ biến nhất, bao gồm Google Chrome, Microsoft InternetExplorer, 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ậpnhật chậm nhất là 54 ngày
Trang 13Hì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 (zeroday) bị khai thác Theo đó, Mozilla Firefox có tổng số lỗ hổng bị khai thác lớnnhấ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
Trang 14Google Chrome, Internet Explorer và Mozilla Firefox Có thể thấy GoogleChrome có tính năng sandbox tốt nhất và Firefox có tính năng sandbox kémnhấ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ìnhduyệt Theo đó, Internet Explorer có khả năng chặn các mã độc dạng này tốtnhấ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 toàn (Security), còn Mozilla Firefox xếpcao 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
Trang 15nhất (8/17).
Trang 16Phầ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ượngtruy 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ệtmáy khách Ta có thể thực thi rất nhiều cách để khai thác như: Đánh cắpcookie, Hijacking, Clickjacking, Social Engineering,…
Trang 17Cách phòng chống:
- Cài đặt extension Block site trên Google Chrome: Khi truy cập tới trangweb có chứa mã độc Tiện ích mở rộng này sẽ ngăn chặn không cho ngườidùng truy cập tới
Trang 184.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:
Trang 19- Sau khi tấn công thành công ta có toán quyền thực thi lệnh trên máy đốiphương như: tạo mới, sửa, xóa tệp tin; upload, download file; thực thicommand 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
Trang 21Phần 5: Giải pháp bảo đảm an toà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 Ngoài việc đơn giảnnhư 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ậpvà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ôngchỉ 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ângcao ý 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 toàn cho trình duyệt web baogồm:
5.1 Giải pháp bảo mật chung cho trình duyệt Web
Luôn 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ảnInternet 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 10thì hãy dùng Microsoft Edge
Trang 22Giữ 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ậtnhư Adobe Flash chẳng hạn Google Chrome và Windows 10 có thể tự động cậpnhậ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ùngphả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ôngmạ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ả
Trang 23hơ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 đangdù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ủaFirefox 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ủangườ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áchcá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 Exploit Cả 2 đều miễn phí nhưng Anti Exploit dễ sử dụng hơn
Anti-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étvirus cần được cấu hình làm việc ở chế độ bảo vệ theo thời gian thực và đượccập nhật cơ sở dữ liệu mã độc thường xuyên để đảm bảo hiệu quả rà quét