Đề 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.
NGHIÊN CỨU VÀ TRIỂN KHAI GIẢI PHÁP BẢO MẬT CHO ỨNG DỤNG WEB GVHD: GVPB: Thực hiện: TS Nguyễn Hồng Sơn Th.s Huỳnh Thanh Tâm Nguyễn Hoàn Nam Dương – N14DCAT032 Nơi thực tập: CTY TNHH Công Nghệ Thông Minh Smart Era Nội dung Phần 1: LÝ THUYẾT Tiêu chuẩn OWASP Một số phương thức công ứng dụng web Các giải pháp bảo mật ứng dụng web Phần 2: THỰC HÀNH Sơ lược ứng dụng SQL Injection Broken Access Control XSS Phần 1: LÝ THUYẾT Tiêu chuẩn OWASP OWASP Top 10 năm 2017 phát hành cơng khai, dựa thăm dò, kiểm tra 2,3 triệu lỗ hổng tác động đến 50000 ứng dụng, bao gồm cập nhật lỗ hổng quy mô lớn cập nhật kịch công TOP 10 OWASP - 2017 Tiêu chuẩn OWASP Injection : ( SQL injection, OS injection, LDAP injection ) Các truy vấn đầu vào ứng dụng bị chèn thêm liệu khơng an tồn dẫn đến mã lệnh gởi tới máy chủ sở liệu biên dịch phần mã lệnh Broken Authentication and Session Management: (Session Fixation ) Do đ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 cách sử dụng chứng đánh cắp Sensitive Data Exposure: (Cleartext Storage of Sensitive Information, Cleartext Transmission of Sensitive Information) Các liệu nhạy cảm không lưu trữ bảo vệ cẩn thận, dẫn đến bị kẻ công khai thác gây ảnh hưởng to lớn cho hệ thống XML External Entities: (Blind XXE Injection,Error based XXE Injection ) Khi DTD (Document Type Definition ) xử lý, ứng dụng đọc nhúng file vào tài liệu XML Nếu có khả điều khiển nội dung DTD, kẻ cơng định truy xuất tài nguyên nhạy cảm thực kiểu khai thác khác Broken Access Control: Lỗ hỏng liên quan đến trường hợp nơi ứng dụng mắc lỗi bảo vệ quyền truy cập vào liệu tính nó, nghiêm trọng cho phép “kẻ phá hoại” thấy liệu nhạy cảm người dung khác lưu trữ máy chủ Tiêu chuẩn OWASP (tt) Security Misconfiguration: (Error Codes,Insecure Configuration Management) Do việc cấu hình an ninh lỏng lẻo tầng kiến trúc web tảng, OS, máy chủ ứng dụng, webserver, database, … khiến cho kẻ cơng khai thác vào ứng dụng, ví dụ để lộ thơng tin quan trọng trao đổi gói tin Cross-site Scripting: XSS cho phép tin tặc đưa kịch phía máy khách vào trang web công cộng nhiều trường hợp, tin tặc sử dụng cơng cụ kiểm soát truy cập họ Chúng thực cách đánh lừa trình duyệt chấp nhận liệu từ nguồn không đáng tin cậy Insecure Direct Object References (đối tượng tham chiếu thiếu an toàn): Lỗ hổng xảy chương trình cho phép người dùng truy cập tài nguyên (dữ liệu, file, thư mục, database) cách bất hợp pháp, thông qua liệu người dùng cung cấp Using Components With Known Vulnerabilities: Lổi thường xảy sử dụng phần mềm, mã nguồn, hệ điều hành có lỗ hổng bảo mật public dẫn đến nhiều hậu nghiệm trọng 10 Improper Error Handling: Thường xảy trình xây dựng ứng dụng web thay hiển thị thơng báo lỗi, lại hiển thị thông tin nhạy cảm mã nguồn, sỡ liệu, Một số phương thức công ứng dụng web o Web Access Control: Thông thường hacker công vào backdoor mã độc nhầm chiếm quyền kiểm soát web o Session Management: công nhầm chiếm lợi dụng phiên làm việc người dùng nhầm mục đích khai thác, cơng vào hệ thống đánh cắp thông tin người dùng o Input Validation: lợi dụng ô nhập liệu để gửi đoạn mã khiến cho hệ thống phải thực thi đoạn lệnh o Buffer Overflow: Một khối liệu gửi cho ứng dụng vượt nhớ cấp phát khiến cho ứng dụng không thực thi câu lệnh mà thay vào thực thi đoạn lệnh hacker đưa vào o Directory indexing: Tấn công vào thư mục thể chứa nội dung quan trọng: tập tin sở liệu dự phòng, tập tin cấu hình, tập tin lưu trữ tạm thời, kịch bản… Một số giải pháp bảo mật 3.1 Bảo mật từ bên ngồi: Các ứng dụng web thơng thường dễ bị cơng cách dò qt, ddos Nhầm làm ảnh hưởng đến hoạt động bình thường ứng dụng Những thiết bị an ninh tích hợp thơng thường sữ dụng nhầm chống kiểu công phá hoại Các thiết bị thường có chức Firewall/IPS: ngăn chặn, kiểm sốt truy cập, phân tích loại bỏ liệu độc hại trước đến server Ví dụ: SandBlast, Arbor Spectrum, TRAPS Check Point UTM FortiSandbox Một số giải pháp bảo mật (tt) Web Application Firewall thiết bị phần cứng phần mềm cài lên máy chủ có chức theo dõi thơng tin truyền qua giao thức http/https trình duyệt người dùng máy chủ web lớp Một WAF có khả thực thi sách bảo mật dựa dấu hiệu công, giao thức tiêu chuẩn lưu lượng truy cập ứng dụng web bất thường Đây điều mà tường lửa mạng khác khơng làm Mơ hình WAF Một số giải pháp bảo mật (tt) ▪ ModSecurity: Đây phần mềm nguồn mở hoạt động module máy chủ Apache thành phần độc lập ModSecurity sử dụng biểu thức quy việc bảo vệ máy chủ web từ công xác định trước dựa theo dấu hiệu công bất thường khác Bên cạnh đó, ModSecurity có khả lọc siêu ký tự người dùng chèn vào ứng dụng web ▪ URLScan: Đây sản phẩm Microsoft dành riêng cho máy chủ web IIS URL scan không bảo vệ máy chủ IIS khỏi điểm yếu từ phiên cũ mà cung cấp thêm biện pháp bảo vệ khác lọc liệu mã hóa URL lọc siêu ký tự người dùng chèn vào để chống lại loại công XSS, SQL Injection,… ▪ WebKnight: Đây sản phẩm dành cho máy chủ web IIS 10 Broken Acess Control (tt) 2.3 Kiểm thử lỗ hỗng 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 24 Broken Acess Control (tt) 2.3 Kiểm thử lỗ hỗng (tt) Ở 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 25 Broken Acess Control (tt) 2.3 Kiểm thử lỗ hỗng (tt) Ở 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 26 Cross site scripting 3.1 Nguy lỗ hỗng Nếu chèn đoạn vào không dùng DomSanitizer (@angular/platform-browser ) Nguy lỗ hỗng XSS cao 27 Cross site scripting (tt) 3.3 Phòng chống lỗ hỗng Nhưng vấn đề chủ yếu cho phép hiển thị liệu HTML bên cạnh tiến hành ngăn chặn thẻ độc cách dùng “Pipe” cung cấp Angular Angular giúp ngăn chặn giá trị độc hại không cho chúng thực thi đoạn mã lệnh an toàn hiển thị, ứng dụng dùng Pipe có tên sanitizeHtml: 28 Cross site scripting (tt) 3.4 Kiểm thử lỗ hỗng 29 SQL INJECTION 4.1 Nguy lỗ hổng http://localhost:52045/api/get/duong from s in Users where s.Username==@username select s http://localhost:52045/api/get/1” or “1”=“1” 30 SQL INJECTION (tt) 4.2 Hạn chế lỗ hỗng Sữ dụng LINQ EntityFramwork Phương thức: IEnumerable hay IQueryable toán tử truy vấn liệu Where, Any, Giúp lọc giá trị không hợp lệ từ request Bên cạnh ứng dụng phía client server lọc, xác nhận lại với biểu thức quy (REX) nhầm nâng cao tính bảo mật dù việc khơng thật cần thiết gây khó khăn cho hacker "duong\" || \"1\"=\"1“ trước dấu “ chèn \ Query k hợp hệ, ko nhận, k phản hồi 31 SQL INJECTION (tt) 4.1 Kiểm thử lỗ hỗng Biểu thức mã hóa base64 dạng username:password Chúng ta thử công Authorziation Basic với đoạn mã admin:1’ or 1=1# encode base64: YWRtaW46MScgb3IgMT0xIw== Tương tự với hàng loạt câu lệnh khác: 1” or “1” = “1” 1%22%20or%20%221%22%3D%221%22 /*union*/union/*select*/select+1,2,3/* 32 SQL INJECTION (tt) 4.1 Kiểm thử lỗ hỗng (tt) Tìm cơng vào ứng dụng phía server với SQLMAP CO2 plugin Burp Suite 33 Cross-site request forgery 5.1 Nguy lỗ hỗng Lỗ hỗng thường xảy attacker cố tình lừa người dùng nhầm thực thao tác Như hình bên người dùng truy cập vào tự động xóa id 2019 34 Cross-site request forgery 5.2 Phòng chống lỗ hỗng • Lưu trữ liệu cục - HTML5 Local Storage : thông thường lỗ hỗng dựa cookie (gửi theo request) người dùng, để hạn chế lỗ hỗng lưu token Local Storage • • Sữ dụng kỹ thuật CORS nhầm chặn request từ domain không cấp phép Sữ dụng XSRF-TOKEN Captcha ( theo OWASP) nhầm thao tác quan trọng bị lừa hacker giả mạo đoạn mã tạo ngẫu nhiên 35 Cross-site request forgery 5.3 Kiểm thử lỗ hỗng • Kiểm tra hoạt động sách CORS Chúng ta cho client chạy port 4201 thay 4200 ( cấp phép) 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 36 Cross-site request forgery 5.3 Kiểm thử lỗ hỗng 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 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ệ 37 Cảm ơn thầy xem góp ý! 38 ... Phần 1: LÝ THUYẾT Tiêu chuẩn OWASP Một số phương thức công ứng dụng web Các giải pháp bảo mật ứng dụng web Phần 2: THỰC HÀNH Sơ lược ứng dụng SQL Injection Broken Access Control XSS Phần 1: LÝ THUYẾT... thời, kịch bản… Một số giải pháp bảo mật 3.1 Bảo mật từ bên ngoài: Các ứng dụng web thông thường dễ bị công cách dò quét, ddos Nhầm làm ảnh hưởng đến hoạt động bình thường ứng dụng Những thiết bị... số giải pháp bảo mật (tt) 3.2.4 Một số Framework khác tích hợp sẳn khả bảo mật cho ứng dụng web Entity Framework LINQ o o Entity Framework (EF) framework ánh xạ quan hệ đối tượng (ORM) dành cho