NGHIÊN CỨU VÀ TRIỂN KHAI GIẢI PHÁP BẢO MẬT CHO ỨNG DỤNG WEB

88 266 0
NGHIÊN CỨU VÀ TRIỂN KHAI GIẢI PHÁP BẢO MẬT CHO ỨNG DỤNG WEB

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Đề tài được thực hiện với mục đích tìm hiểu, phân tích các lỗ hổng bảo mật trong các ứng dụng web (cùng với chương trình minh họa) để qua đó đề xuất các phương án sửa chữa. Song song đó, luận văn còn thực hiện một chương trình “Tự động phát hiện lỗ hổng trên ứng dụng Web” giúp ích cho những nhà lập trình Web ít kinh nghiệm tránh những sai sót trong quá trình tạo các ứng dụng.

BỘ THÔNG TIN TRUYỀN THÔNG HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THƠNG BÁO CÁO THỰC TẬP TỐT NGHIỆP ĐẠI HỌC Đề tài: “NGHIÊN CỨU TRIỂN KHAI GIẢI PHÁP BẢO MẬT CHO ỨNG DỤNG WEB” Người hướng dẫn : Sinh viên thực : Mã số sinh viên : Lớp : Khóa : Hệ : TS NGUYỄN HỒNG SƠN NGUYỄN HOÀN NAM DƯƠNG N14DCAT032 D14CQAT01-N 2014 – 2019 ĐẠI HỌC CHÍNH QUY TP.HCM, tháng 08/2018 BỘ THÔNG TIN TRUYỀN THÔNG HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG BÁO CÁO THỰC TẬP TỐT NGHIỆP ĐẠI HỌC Đề tài: “NGHIÊN CỨU TRIỂN KHAI GIẢI PHÁP BẢO MẬT CHO ỨNG DỤNG WEB” Người hướng dẫn Sinh viên thực Mã số sinh viên Lớp Khóa Hệ : : : : : : TS NGUYỄN HỒNG SƠN NGUYỄN HOÀN NAM DƯƠNG N14DCAT032 D14CQAT01-N 2014 – 2019 ĐẠI HỌC CHÍNH QUY TP.HCM, tháng 08 / 2018 LỜI CẢM ƠN Với lòng biết ơn sâu sắc, em xin chân thành cảm ơn thầy, cô Học viện Công nghệ Bưu Viễn thơng nói chung thầy khoa Cơng Nghệ Thơng Tin II nói riêng, người tận tụy dạy dỗ truyền đạt cho em kiến thức vô quý báo Thầy cô truyền dạy cho em không riêng lĩnh vực chuyên môn vơ hữu ích mà gương tận tụy, nhiệt tình việc giảng dạy chia cho em nhiều học quan trọng đạo đức, văn hóa, cách sống cách làm người nhờ kinh nghiệm, kiến thức truyền dạy mà em cảm thấy tự tin vững bước đường tương lai Đặc biệt em xin cảm ơn TS Nguyễn Hồng Sơn, người trực tiếp hướng dẫn bảo tận tình góp phần lớn việc bổ sung kiến thức hạn hẹp mà em có để hoàn thành tốt việc nghiên cứu thực đề tài Em xin gửi lời cảm ơn đến Ban Giám Đốc, anh chị phòng Cơng nghệ thơng tin công ty TNHH Công Nghệ Thông Minh Smart Era tận tình hướng dẫn, truyền đạt kinh nghiệm thực tế công việc, giúp đỡ tạo nhiều điều kiện thuận lợi, quý báo giúp em hoàn thành tốt cơng việc Mặc dù q trình nghiên cứu thực đề tài, thân em cố gắng nhiều, song trình độ thời gian hạn chế nên đề tài không tránh khỏi thiếu sót Vậy kính mong thầy giáo bạn đóng góp ý kiến để đề tài em hoàn thiện mong nghiên cứu em trở thành nghiên cứu có ích cho sau TP.Hồ Chí Minh, tháng 08 năm 2018 Sinh viên NGUYỄN HỒN NAM DƯƠNG i CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập- Tự do- Hạnh phúc TP Hồ Chí Minh, ngày tháng năm 2018 NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN THỰC TẬP TỐT NGHIỆP ĐẠI HỌC Tên đề tài: “NGHIÊN CỨU TRIỂN KHAI GIẢI PHÁP BẢO MẬT CHO ỨNG DỤNG WEB.” Sinh viên: NGUYỄN HOÀN NAM DƯƠNG Lớp: D14CQAT01-N Giáo viên hướng dẫn: TS NGUYỄN HỒNG SƠN Nơi thực tập: CÔNG TY TNHH CÔNG NGHỆ THÔNG MINH SMART ERA NỘI DUNG NHẬN XÉT Đánh giá chung: Đánh giá chi tiết: Nhận xét tinh thần, thái độ làm việc: Kết luận: Điểm hướng dẫn: GIẢNG VIÊN HƯỚNG DẪN (Ký, ghi rõ họ tên) ii MỤC LỤC LỜI CẢM ƠN i MỤC LỤC iii DANH MỤC TỪ VIẾT TẮT vi DANH MỤC HÌNH ẢNH vii LỜI MỞ ĐẦU CHƯƠNG 1: SƠ LƯỢC VỀ ỨNG DỤNG WEB 1.1 Ứng dụng web gì? 1.2 Tại cần quan tâm đến vấn đề bảo mật cho ứng dụng web? 1.3 Thành phần, chức nguyên tắc hoạt động ứng dụng web 1.3.1 Cấu trúc ứng dụng web theo mơ hình MVC 1.3.2 Chức ứng dụng web 1.2.3 Nguyên tắc hoạt động ứng dụng web CHƯƠNG 2: CÁC THUẬT NGỮ KHÁI NIỆM LIÊN QUAN 2.1 Document Object Model 2.2 ASP.NET ASP.NET core 2.3 WEB RESTFUL API gì? 2.4 HTTP 10 2.5 Session 13 2.6 Cookie 14 2.7 JSON 14 CHƯƠNG 3: SƠ LƯỢC VỀ TIÊU CHUẨN OWASP 16 3.1 Tiêu chuẩn OWASP 16 3.2 Những rủi ro an ninh ứng dụng web theo OWASP 16 CHƯƠNG 4: CÁC PHƯƠNG THỨC TẤN CÔNG ỨNG DỤNG WEB 20 4.1 Sơ lược phương thức công 20 4.1.1 Kiểm soát truy cập (Web Access Control) 20 4.1.2 Chiếm hữu phiên làm việc (Session Management) 20 4.1.3 Lợi dụng thiếu sót việc kiểm tra liệu hợp lệ (InputValidation) 20 4.1.4 Liệt kê thư mục (Directory indexing) 22 4.2 Một số cách công biện pháp bảo mật cho ứng dụng web 22 4.2.1 Các thao tác tham số 23 4.2.2 Thao tác URL 23 4.2.3 Thao tác biến ẩn form 23 4.2.4 Kỹ thuật công SQL Injection 24 iii 4.2.5 Kỹ thuật công gây tràn đệm từ chối dịch vụ (Buffer overflow DdoS) 27 CHƯƠNG 5: CÁC GIẢI PHÁP BẢO MẬT ỨNG DỤNG WEB 30 5.1 Các nguy ứng dụng web 30 5.2 Các nguy phổ biến ảnh hưởng đến ứng dụng web 30 5.3 Các phương pháp kiểm tra 31 5.4 Điểm yếu ứng dụng web 31 5.5 Các giải pháp giúp bảo vệ ứng dụng web 32 CHƯƠNG 6: GIẢI PHÁP AN TOÀN CHO WEB SERVER 37 6.1 Tổng quan web server 37 6.2 Internet Information Services (IIS) 38 6.3 Tường lửa ứng dụng web 38 6.4 Giao thức HTTPS 40 CHƯƠNG 7: MỘT SỐ GIẢI PHÁP BẢO MẬT TRONG LẬP TRÌNH ỨNG DỤNG WEB 42 7.1 Bảo mật lập trình web sử dụng ngôn ngữ php 42 7.1.1 Sơ lược ngôn ngữ lập trình PHP 42 7.1.2 Các phương thức nâng cao bảo mật cho PHP 42 7.2 Bảo mật lập trình ứng dụng web sử dụng ngôn ngữ ASP.NET 45 7.2.1 Sơ lược ASP.NET 45 7.2.2 Các phương thức nâng cao bảo mật cho ASP.NET 45 7.3 CORS - Cross-Origin Resource Sharing 47 7.3.1 CORS gì? 47 7.4 Một số Framework hỗ trợ phòng chống lổ hổng bảo mật 49 7.4.1 ORM (Object Relational Mapping) Entity Framework 49 7.4.2 Angular 52 7.4.3 React 52 7.4.4 Django 53 7.4.5 CodeIgniter 53 7.4.6 Spring Security 53 CHƯƠNG 8: XÂY DỰNG TRIỂN KHAI CÁC GIẢI PHÁP BẢO MẬT CHO ỨNG DỤNG WEB 54 8.1 Chuẩn bị 54 8.2 Ứng dụng SmartEra Email 54 8.3 Phòng chống công Cross-site scripting 55 8.3.1 Sơ lược Cross-site scripting (XSS) 55 8.3.2 Bảo mật XSS với Angular 56 iv 8.3.3 Chống XSS phía back-end 58 8.3.4 Kiểm thử công XSS 58 8.4 Phòng chống SQL Injection 60 8.4.1 SQL Injection với Web API 60 8.4.2 Kiểm thử SQL Injection 62 8.5 Phòng chống CSRF ( Cross Site Request Forgery) 66 8.5.1 Nguy CSRF 66 8.5.2 Phòng chống CSRF với CORS (Cross-Origin Resource Sharing) 66 8.5.3 Phòng chống CORS với Google ReCaptcha 66 8.5.4 Kiểm thử CSRF 68 8.6 Phòng chống Broken Authentication 70 8.6.1 Nguy lỗ hỗng Broken Authentication 70 8.6.2 Sơ lược JWT ( JSON WEB TOKEN) 70 8.6.3 Phòng chống Broken Authentication với JWT token 72 8.6.4 Kiểm thử Broken Authentication 75 CHƯƠNG 9: KẾT LUẬN 77 9.1 ĐÁNH GIÁ 77 9.1 HƯỚNG MỞ RỘNG 77 TÀI LIỆU THAM KHẢO 78 v DANH MỤC TỪ VIẾT TẮT RAM Random Access Memory SQL Structured Query Language URI Uniform Resource Identifier HTML XHTML URL Hyper Text Markup Language Extensible HyperText Markup Language Uniform Resource Locator vi DANH MỤC HÌNH ẢNH Hình 1.1 Mơ hình thể mối quan hệ lớp ứng dụng web Hình 1.2 Mơ hình hoạt động ứng dụng Web Hình 2.3 Hoạt động HTTP 10 Hình 2.4 Thành phần HTTP Request 11 Hình 2.5 Cấu trúc HTTP response 12 Hình 2.6 Json trả từ web api 14 Hình 2.7 Cấu trúc đoạn JSON 15 Hình 2.8 Json key value dãy key value 15 Hình 8.6 Kiểm thử công XSS 59 Hình 8.7 Dữ liệu hiển thị chuẩn hóa 60 Hình 8.8 Dữ liệu lọc trước đưa vào truy vấn 61 Hình 8.9 Thơng tin việc lọc liệu franmework 62 Hình 8.10 Thơng tin phương thức POST phần đăng nhập 62 Hình 8.11 Thông tin đăng nhập bắt từ burp suite 63 Hình 8.12 Trang đăng nhập 63 Hình 8.13 Mã lệnh mục tiêu công SQL Injection 64 Hình 8.14 Dữ liệu trả với truy vấn hợp lệ 64 Hình 8.15 Mã lệnh chạy SQLMAP 65 Hình 8.16 SQLMap khởi chạy thành công 65 Hình 8.17 Thơng báo kết thúc SQLMAP 65 Hình 8.18 Dịch vụ Google ReCaptcha v2 67 Hình 8.19 reCAPTCHA cài đặt phía front-end 68 Hình 8.20 reCAPTCHA cài đặt phía back-end 68 Hình 8.21 Khởi chạy Angular port 4201 68 Hình 8.23 Thơng báo lỗi sách CORS 69 Hình 8.26 Dữ liệu hiển thị chưa dùng JWT 70 Hình 8.27 Lệnh xóa mail Angular 70 Hình 8.28 Cơ chế hoạt động JWT 71 Hình 8.29 Đoạn lệnh mã hóa liệu với JWT 72 Hình 8.30 HTTP intercept nhầm chèn Authorization Bearer request 73 Hình 8.31 Đoạn token chèn theo request cung cấp server 73 Hình 8.32 Yêu cầu GET mail .74 Hình 8.33 Dữ liệu user duong hiển thị 74 Hình 8.34 Kiểm tra hợp lệ user thao tác tương ứng 75 Hình 8.35 Lổi 404 token không hợp lệ 75 Hình 8.36 Yêu cầu gửi đến server chỉnh sửa .75 Hình 8.37 Thơng báo lổi quyền người dùng 76 vii Báo cáo TTTN đại học Chương 8: Xây dựng triển khai giải pháp bảo mật cho ứng dụng web Ứng dụng có sữ dụng xác thực với token gửi yêu cầu gửi đến server phần tập trung vào SQL Injection nên cố tình bỏ qua việc xác thực cách bỏ lệnh [Authorize] phía server tiến hành kiểm thử lại với SQLMAP CO2 Burp Suite Hình 8.8 Mã lệnh mục tiêu cơng SQL Injection Phía phần mã lệnh có sữ dụng Ienumerable Linq khơng sữ dụng thêm chế khác Khi truy cập đường dẫn http://localhost:52045/api/get/duong thấy có kết trả hình bên dưới: Hình 8.9 Dữ liệu trả với truy vấn hợp lệ Tiến hành chạy lệnh SQLMap sau: NGUYỄN HOÀN NAM DƯƠNG D14CQAT01-N 64 Báo cáo TTTN đại học Chương 8: Xây dựng triển khai giải pháp bảo mật cho ứng dụng web Hình 8.10 Mã lệnh chạy SQLMAP Trong đó: -u : đường dẫn cần khai thác level=5 level khó tùy chọn chạy sqlmap dbms: phiên database server giúp cho việc công diễn nhanh bỏ qua bước dò tìm phiên sỡ liệu dbs: khai thác database dựa đường dẫn Hình 8.11 SQLMap khởi chạy thành cơng Hình 8.12 Thơng báo kết thúc SQLMAP NGUYỄN HỒN NAM DƯƠNG D14CQAT01-N 65 Báo cáo TTTN đại học Chương 8: Xây dựng triển khai giải pháp bảo mật cho ứng dụng web Sau SQLmap thực hàng loạt truy vấn không khai thác lổ hỏng Có thể nói với Linq SQL Injection bảo mật cách an tồn 8.5 Phòng chống CSRF ( Cross Site Request Forgery) 8.5.1 Nguy CSRF CSRF ( Cross Site Request Forgery) kỹ thuật công cách sử dụng quyền chứng thực người dùng website dựa vào tin tặc thực thi thao tác phải yêu cầu chứng thực Hiểu cách nôm na, kỹ thuật công dựa vào mượn quyền trái phép Giả sử hệ thống có trang gửi thư điện tử tin tặc lợi dụng cookie lưu trình duyệt lừa người dùng vào trang web họ đoạn mã lệnh chèn sẳn trang web gửi người dùng tải trang Như email độc hại gửi lưu lại vào sỡ liệu người dùng 8.5.2 Phòng chống CSRF với CORS (Cross-Origin Resource Sharing) Như đề cập phần 7.3, CORS là kĩ thuật sinh để làm cho việc tương tác client server dễ dàng dù khác tên miền Việc phòng chống CSRF dựa CORS kĩ thuật mạnh mẽ gây khó khăn cho tin tặc q trình cơng Phía server sữ dụng sách CORS để hạn chế việc nhận yêu cầu, nghĩa địa tin cậy nằm danh sách có quyền gửi yêu cầu services.AddCors(options => { options.AddPolicy("CorsPolicy", builder => builder.WithOrigins("http://localhost:4200") WithMethods("GET", "PUT", "POST", "DELETE") AllowAnyHeader() AllowCredentials()); }); Chính sách thêm vào phía server chấp nhận Origin từ http://localhost:4200 domain khác truy cập Đây cách phòng chống đơn giản hiệu thấp, tin tặc thay đổi phần header phức tạp với lổ hỏng CSRF cần phải có tác động từ phía người dùng nên cần phải sữ dụng thêm phương thức khác nhầm tăng độ bảo mật ứng dụng web 8.5.3 Phòng chống CORS với Google ReCaptcha 8.5.3.a Sơ lược reCAPTCHA v2 NGUYỄN HOÀN NAM DƯƠNG D14CQAT01-N 66 Báo cáo TTTN đại học Chương 8: Xây dựng triển khai giải pháp bảo mật cho ứng dụng web reCAPTCHA dịch vụ CAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart) miễn phí giúp website chống lại SPAM, đăng ký độc hại, hình thức cơng Brute force, phần CSRF , 8.5.3.b Mơ hình hoạt động áp dụng giải pháp reCAPTCHA Hình 8.13 Dịch vụ Google ReCaptcha v2 Trên form nhập liệu, có chứa Google reCAPTCHA Khi người dùng check vào "I'm not a robot", client tự động nhận đoạn mã code gửi tới dịch vụ Google reCAPTCHA nhận mã số xác thực lưu trữ Hidden field (g-recaptcha-response) form Tất người dùng phải làm check vào nút "I'm not a robot" thay phải đọc dòng chữ khó đọc tạo CAPTCHA truyền thống Người dùng nhấn nút Submit form, Server xử lý liệu người dùng gửi tới, chương trình tạo request có chứa thơng tin mã xác thực bước để gửi tới dịch vụ Google reCAPTCHA để kiểm chứng lại mã Dịch vụ Google reCAPTCHA gửi lại kết xác minh Tin tặc thường nhắm vào nơi có sữ dụng phương thức POST để tiến hành cơng xem xét áp dụng reCAPTCHA tính gửi thư điện tử ứng dụng web sau: NGUYỄN HOÀN NAM DƯƠNG D14CQAT01-N 67 Báo cáo TTTN đại học Chương 8: Xây dựng triển khai giải pháp bảo mật cho ứng dụng web Hình 8.14 reCAPTCHA cài đặt phía front-end Trong yêu cầu gửi thư điện tử lấy giá trị recaptcha từ phía client để gửi server tiến hành kiểm tra, q trình kiểm tra thành cơng server cho client thực thao tác kế tiếp, ngược lại việc kiểm tra không server phản hồi lỗi khơng tiếp nhận thao tác sau Hình 8.15 reCAPTCHA cài đặt phía back-end Như kẻ cơng có cố tình gửi u cầu dù biết cấu trúc http header gửi việc giả mạo captcha khó khăn tốn nhiều cơng sức lừa người dùng làm theo 8.5.4 Kiểm thử CSRF Kiểm tra hoạt động sách CORS Chúng ta cho client chạy port 4201 thay 4200 ( cấp phép) Hình 8.16 Khởi chạy Angular port 4201 NGUYỄN HOÀN NAM DƯƠNG D14CQAT01-N 68 Báo cáo TTTN đại học Chương 8: Xây dựng triển khai giải pháp bảo mật cho ứng dụng web Kết gửi Preflight request (OPTION) địa khơng phù hợp sách thiết lập nên u cầu sau khơng thực Hình 8.17 Thơng báo lỗi sách CORS Tuy nhiên tin tặc có phương thức để giả mạo phần http header nhiều phương thức mà cơng đến server Hình 8.24 Header u cầu gửi mail Hình 8.25 Thơng báo lỗi việc giả mạo reCAPTCHA Cố gắng bỏ qua tạo re reCAPTCHA ảo khơng có hiệu người dùng phải trực tiếp thao tác tạo captcha hợp lệ Như lổ hỏng XSRF cơng nghệ tin tặc vượt qua Những trường hợp phải dựa vào hiểu biết cẩn trọng người dùng cơng nghệ khó thật đảm bảo an toàn cho website NGUYỄN HOÀN NAM DƯƠNG D14CQAT01-N 69 Báo cáo TTTN đại học Chương 8: Xây dựng triển khai giải pháp bảo mật cho ứng dụng web 8.6 Phòng chống Broken Authentication 8.6.1 Nguy lỗ hỗng Broken Authentication Đây lỗ hỏng nghiêm trọng đoạn chương trình kiểm tra danh tính quản lý phiên làm việc người sử dụng thường hay làm qua loa khơng cách, tin tặc dễ dàng xâm nhập, ăn cắp thông tin tài khoản, mật khai thác lỗ hổng khác Đối với riêng ứng dụng phía server dạng API lỗ hổng lại nghiêm trọng URL phía server cơng khai dễ dàng khai thác khơng có sách, phương pháp hợp lệ Một ví dụ đơn giản việc lấy danh sách mail người dùng thơng qua URL có dạng: http://localhost:52045/api/get/{username} truy vấn sau: Hình 8.26 Dữ liệu hiển thị chưa dùng JWT Từ URL hacker tìm hiểu chế dùng phương thức từ ứng dụng client để quét đoạn URL thay username user từ khai thác thông tin cần thiết 8.6.2 Sơ lược JWT ( JSON WEB TOKEN) Đối với Web API Client giao tiếp gửi yêu cầu đến Server thông qua URL giao thức HTTP , ví dụ ta có u cầu xóa email danh sách mail Hình 8.27 Lệnh xóa mail Angular NGUYỄN HỒN NAM DƯƠNG D14CQAT01-N 70 Báo cáo TTTN đại học Chương 8: Xây dựng triển khai giải pháp bảo mật cho ứng dụng web Ví dụ ta u cầu Server xóa Email có Id sau: [DELETE] http://localhost:52045/api/del/1 Ở khơng sử dụng phương thức để bảo mật API tất User khác điều gọi tới Request để xoá Email Server thực yêu cầu mà khơng cần biết u cầu có phải User hợp lệ hay không Điều nguy hiểm , hacker xóa hết liệu đánh cắp thông tin người dùng cách truy cập vào URL , ta cần phương pháp để Server xác định u cầu User Server thực , ta sử dụng JWT Trong việc xác thực, user đăng nhập thành cơng (trình gửi tên tài khoản mật Server), Server trả chuỗi JWT trình duyệt, JWT cần lưu lại Browser người dùng (thường LocalStorage Cookies), thay cách truyền thống tạo session Server trả Cookie Bất mà User muốn truy cập vào Route bảo vệ (mà có User đăng nhập phép), Browser gửi token JWT Header Authorization, Bearer schema request gửi Authorization: Bearer Đây cách mà stateless (phi trạng thái) authentication làm việc, trạng thái user không lưu nhớ Server mà đóng gói hẳn vào HTTP Request Server kiểm tra Token JWT có hợp lệ hay khơng (Bởi JWT có tính chất selfcontained, thơng tin cần thiết để kiểm tra JWT chứa Token JWT) Cơ chế hoạt động Json web token sau: Hình 8.28 Cơ chế hoạt động JWT NGUYỄN HOÀN NAM DƯƠNG D14CQAT01-N 71 Báo cáo TTTN đại học Chương 8: Xây dựng triển khai giải pháp bảo mật cho ứng dụng web  Bước : Người dùng yêu cầu đăng nhập với Username , Password  Bước + : Server nhận yêu cầu kiểm tra Username , Password gửi cho người dùng chuỗi JWT  Bước : Người dùng dùng JWT kèm theo yêu cầu  Bước + : Server nhận yêu cầu kiểm tra chuổi JWT , chuỗi hợp lệ thực yêu cầu JSON Web Token bao gồm phần header, payload chữ kí, ngăn cách dấu chấm (.) mã hóa thành chuổi với thuật toán riêng biệt cụ thể sau: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3OD kwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKx wRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c 8.6.3 Phòng chống Broken Authentication với JWT token Để phòng chống lỗ hổng điều quan trọng phải kiểm tra người dùng ai, thao tác hệ thống, ngăn chặn việc leo thang quyền đánh cắp liệu người khác Khi người dùng cung cấp tên tài khoản mật tiến hành kiểm tra thông tin người dùng tồn người dùng với xác mật sau so sánh với thuật tốn mã hóa Bcrypt sau Server trả cho người dùng đoạn token để xác thực Token đặt vào HTTP yêu cầu gửi đến Server Hình 8.29 Đoạn lệnh mã hóa liệu với JWT NGUYỄN HOÀN NAM DƯƠNG D14CQAT01-N 72 Báo cáo TTTN đại học Chương 8: Xây dựng triển khai giải pháp bảo mật cho ứng dụng web Hình 8.30 HTTP intercept nhầm chèn Authorization Bearer request Hình 8.31 Đoạn token chèn theo request cung cấp server Nhưng chưa đủ user đăng nhập khơng kiểm tra kĩ thao tác user thực lỗ hỏng chưa thể khắc phục.Cụ thể tiến hành công với token duong1234 lấy mail user duong cách gửi yêu cầu đến server dạng http://localhost:52045/api/getmail/{username} Trường hợp token hợp lệ user duong1234 khơng có quyền xem email gửi user duong Kiểm thử với BurpSuit sau: NGUYỄN HOÀN NAM DƯƠNG D14CQAT01-N 73 Báo cáo TTTN đại học Chương 8: Xây dựng triển khai giải pháp bảo mật cho ứng dụng web Hình 8.32 Yêu cầu GET mail Thay gửi yêu cầu đến /api/getmail/duong1234 thay đổi thành /api/getmail/duong toàn liệu user duong thể Hình 8.33 Dữ liệu user duong hiển thị Như để phòng chống lổ hỗng cần phải kiểm tra lại user đính kèm đoạn token mã hóa thơng tin user có hợp lệ hay khơng sau trả liệu Như sau : NGUYỄN HOÀN NAM DƯƠNG D14CQAT01-N 74 Báo cáo TTTN đại học Chương 8: Xây dựng triển khai giải pháp bảo mật cho ứng dụng web Hình 8.34 Kiểm tra hợp lệ user thao tác tương ứng 8.6.4 Kiểm thử Broken Authentication Tiến hành thử nghiệm với việc lấy liệu khơng có đoạn token hợp lệ Ứng dụng trả lỗi 401 thơng báo user khơng có quyền với thao tác request khơng chứa đoạn Authorization: Bearer với token hợp lệ cấp từ server Hình 8.35 Lổi 404 token không hợp lệ Ở mức độ phức tạp tiến hành công cách thay đổi yêu cầu đến server để lấy thơng tin từ user khác http://localhost:52045/api/getmail/duong Hình 8.36 u cầu gửi đến server chỉnh sửa NGUYỄN HOÀN NAM DƯƠNG D14CQAT01-N 75 Báo cáo TTTN đại học Chương 8: Xây dựng triển khai giải pháp bảo mật cho ứng dụng web Hình 8.37 Thơng báo lổi quyền người dùng Như server trả thơng báo khơng có quyền, lỗ hổng hạn chế NGUYỄN HOÀN NAM DƯƠNG D14CQAT01-N 76 Báo cáo TTTN đại học Chương 9: Kết luận CHƯƠNG 9: KẾT LUẬN 9.1 ĐÁNH GIÁ Khi làm nghiên cứu đề tài “Nghiên cứu triển khai giải pháp bảo mật cho ứng dụng web Web” tác giả tự trang bị cho số kiến thức thực tế hành trang kỹ sư trước trường, điều mang lại nhiều thuận lợi cho việc tiếp xúc trải nghiệm với thực tế sau Sau thời gian nghiên cứu tìm hiểu, đồ án thực số việc sau:  Tìm hiểu chế hoạt động ứng dụng web Web  Tìm hiểu chế cơng phòng chống ứng dụng Web  Tìm hiểu chế cơng phòng chống Web Server chạy Apache, IIS  Tìm hiểu ngơn ngữ lập Trình ASP.NET Angular Framework cách xây dựng ứng dụng RESTFUL API dựa Framework  Áp dụng số biện pháp bảo mật cho ứng dụng API  Tìm hiểu OWASP giải pháp gợi ý OWASP Tuy nhiên thời gian làm đồ án có hạn kiến thức chưa đủ nên số vấn đề chưa giải được:  Chưa tìm hiểu kỹ chế chống XSS, SQL Injection,… cách vượt chế cơng khó  Chưa tìm hiểu áp dụng hết tính bảo mật sẳn có ASP.NET Angular  Chưa nghiên cứu giải pháp tồn diện chống lại cơng  Chưa tìm hiểu kỹ giải pháp bảo mật cao cho liệu JSON token 9.1 HƯỚNG MỞ RỘNG Với đề tài có nhiều hướng để mở rộng đề tài, tạo sản phẩm giúp cho Web Application Web Server trở nên an toàn đồng thời phát triển ứng dụng với nhiều chức bảo mật mạnh mẽ giúp chống lại lỗ hổng phổ biến OWASP Chúng ta xây dựng hệ thống tường lửa ứng dụng bảo mật để chống lại cơng từ bên ngồi NGUYỄN HỒN NAM DƯƠNG D14CQAT01-N 77 Báo cáo TTTN đại học Tài liệu tham khảo TÀI LIỆU THAM KHẢO Tiếng Anh: ASP.NET Web API 2: Building a REST Service from Start to Finish - Kurtz, Jamie, Wortman, Brian Pro ASP.NET Web API Security - Lakshmiraghavan, Badrinarayanan ng-book: The Complete Book on Angular Danh mục Website tham khảo: https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project https://www.owasp.org/index.php/OWASP_Risk_Rating_Methodology https://www.owasp.org/index.php/Cross-site_Scripting_(XSS) https://www.owasp.org/index.php/SQL_Injection https://dotnetcoretutorials.com/2017/10/11/owasp-top-10-asp-net-core-sqlinjection https://dotnetcoretutorials.com/2017/10/25/owasp-top-10-asp-net-core-cross-sitescripting-xss/ https://cystack.net/news/owasp-top-10-rui-ro-bao-mat-ung-dung-2017 NGUYỄN HOÀN NAM DƯƠNG D14CQAT01-N 78 ... ỨNG DỤNG WEB 1.1 Ứng dụng web gì? 1.2 Tại cần quan tâm đến vấn đề bảo mật cho ứng dụng web? 1.3 Thành phần, chức nguyên tắc hoạt động ứng dụng web 1.3.1 Cấu trúc ứng. .. quan trọng việc triển khai ứng dụng cơng nghệ an tồn bảo mật 1.3 Thành phần, chức nguyên tắc hoạt động ứng dụng web 1.3.1 Cấu trúc ứng dụng web theo mơ hình MVC Đối với ứng dụng web thường xây... DdoS) 27 CHƯƠNG 5: CÁC GIẢI PHÁP BẢO MẬT ỨNG DỤNG WEB 30 5.1 Các nguy ứng dụng web 30 5.2 Các nguy phổ biến ảnh hưởng đến ứng dụng web 30 5.3 Các phương pháp kiểm tra

Ngày đăng: 18/08/2018, 09:42

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan