Tài liệu Nghiên cứu các dạng tấn công ứng dụng web và giải pháp phòng chống

  • Số trang: 22 |
  • Loại file: PDF |
  • Lượt xem: 102 |
  • Lượt tải: 0
nganguyen

Đã đăng 34345 tài liệu

Mô tả:

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG --------------------------------------- Nguyễn Thu Hương NGHIÊN CỨU CÁC DẠNG TẤN CÔNG ỨNG DỤNG WEB VÀ GIẢI PHÁP PHÒNG CHỐNG Chuyên ngành: Truyền dữ liệu và mạng máy tính Mã số: 60.48.15 TÓM TẮT LUẬN VĂN THẠC SĨ HÀ NỘI - 2013 Luận văn được hoàn thành tại: HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG Người hướng dẫn khoa học: TS. TRẦN VIỆT HƯNG Phản biện 1: ………………………………………………… Phản biện 2: ………………………………………………… Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện Công nghệ Bưu chính Viễn thông Vào lúc: ....... giờ ....... ngày ....... tháng ....... .. năm ............... Có thể tìm hiểu luận văn tại: - Thư viện của Học viện Công nghệ Bưu chính Viễn thông 1 LỜI MỞ ĐẦU Việc thiếu quan tâm và đầu tư nhất định đến hệ thống an ninh, bộ phận chuyên trách dẫn đến các vụ tấn công vào các website rất dễ xảy ra. Điều này cũng đồng nghĩa với việc những nội dung dữ liệu của các đơn vị có nguy cơ bị mất là rất lớn khi an ninh mạng không được đảm bảo. Vậy chúng ta cần phải làm gì để tăng cường khả năng phòng, chống các nguy cơ tấn công vào các website và biện pháp ngăn chặn, khắc phục kịp thời các sự cố này. Việc đi sâu tìm hiểu về các dạng tấn công vào các website sẽ giúp cho chúng ta hiểu hơn về những lổ hổng trong công tác quản lý website, qua đó đưa ra những giải pháp giúp các nhà quản lý có những biện pháp khắc phục, ngăn chặn sự thâm nhập từ bên ngoài, cũng như vai trò quan trọng trong việc triển khai ứng dụng những công nghệ mới an toàn và bảo mật hơn. Chính vì vây, tôi đã chọn đề tài “Nghiên cứu các dạng tấn công ứng dụng web và giải pháp phòng chống” làm đề tài luận văn của mình. 2 Chương 1 - TỔNG QUAN VỀ WEB VÀ CÁC DẠNG TẤN CÔNG ỨNG DỤNG WEB 1.1. Tổng quan về web và an ninh web 1.1.1. Tìm hiểu về website và cách hoạt động Website là một tập hợp các trang web (web pages) bao gồm văn bản, hình ảnh, video, flashv.v... thường chỉ nằm trong một tên miền (domain name) hoặc tên miền phụ (subdomain). Trang web được lưu trữ ( web hosting) trên máy chủ web (web server) có thể truy cập thông qua Internet. 1.1.2. Tìm hiểu về ứng dụng web 1.1.2.1. Khái niệm ứng dụng web Ứng dụng Web là một ứng dụng chủ/khách sử dụng giao thức HTTP để tương tác với người dùng hay hệ thống khác. Trình khách dành cho người sử dụng thường là một trình duyệt Web như Internet Explorer hay Firefox. Cũng có thể là một chương trình đóng vai trò đại lý người dùng hoạt động như một trình duyệt tự động. Người dùng gửi và nhận các thông tin từ trình chủ thông qua việc tác động vào các trang Web. Các chương trình có thể là các trang trao đổi mua bán, các diễn đàn, gửi nhận e-mail… 3 Một ứng dụng web thường có kiến trúc gồm: Hình 1.1: Kiến trúc một số ứng dụng web thông thường  Lớp trình bày: Lớp này có nhiệm vụ hiển thị dữ liệu cho người dùng, ngoài ra còn có thể có thêm các ứng dụng tạo bố cục cho trang web.  Lớp ứng dụng: Là nơi xử lý các ứng dụng web. Nó sẽ xử lý thông tin người dùng yêu cầu, đưa ra quyết định, gửi kết quả đến “lớp trình bày” lớp này thường được cài đặt bằng các kỹ thuật lập trình như CGI, Java, NET, PHP hay ColdFusion, được triển khai trên các trình chủ như IBM WebSphere, WebLogic, Apache, IIS…  Lớp dữ liệu : thường là các hệ quản trị dữ liệu (DBMS) chịu trách nhiệm quản lý các file dữ liệu và quyền sử dụng. 4 Quá trình hoạt động bắt đầu với yêu cầu được tạo ra từ người dùng trên trình duyệt, gửi qua Internet tới trình chủ Web ứng dụng (Web application Server). Web ứng dụng truy cập máy chủ chứa cơ sở dữ liệu để thực hiện nhiệm vụ được yêu cầu: cập nhật, truy vấn thông tin đang nằm trong cơ sở dữ liệu. Sau đó ứng dụng Web gửi thông tin lại cho người dùng qua trình duyệt 1.1.2.2. Mô hình hoạt động của một ứng dụng web Hình 1.3: Mô hình hoạt động của một ứng dụng web  Trình khách ( hay còn gọi là trình duyệt): Internet Explorer, Firefox.  Trình chủ: Apache, IIS, ….  Hệ quản trị cơ sở dữ liệu: SQL Server, MySQL, DB2, Access…. 5 Hoạt động của một ứng dụng web:  Trình duyệt : gửi một yêu cầu (request) đến trình chủ thông qua các lệnh cơ bản GET, POST của giao thức HTTP.  Trình chủ :  Thực thi một chương trình được xây dựng từ nhiều ngôn ngữ như Perl, C/C++…  Yêu cầu bộ diễn dịch thực thi các trang ASP, JSP…  Trình chủ trả về cho trình khách 1 luồng dữ liệu có định dạng theo giao thức HTTP gồm 2 phần:  Header: Header mô tả các thông tin về gói dữ liệu và các thuộc tính, trạng thái trao đổi giữa trình duyệt và WebServer.  Body là phần nội dung dữ liệu mà Server gửi về Client, nó có thể là một file HTML, một hình ảnh, một đoạn phim hay một văn bản bất kì. 1.1.2.3. Một số ứng dụng web Ứng dụng dựa trên web là các chương trình được thiết kế để được sử dụng hoàn toàn trong trình duyệt. Sử 6 dụng ứng dụng, chúng ta có thể làm những việc như tạo tài liệu, chỉnh sửa ảnh và nghe nhạc… mà không phải cài đặt phần mềm phức tạp.  Calendar (lịch trình) Ưu điểm của các ứng dụng trên web Ứng dụng web có các ưu điểm sau so với ứng dụng dành cho máy tính để bàn:  Cài đặt ứng dụng dễ dàng, nhanh chóng: Nhiều ứng dụng sẵn có trên mạng chỉ bằng một cú nhấp chuột, thậm chí không phải khởi động lại trình duyệt hoặc máy tính của mình.  Ứng dụng luôn có sẵn: Dù chúng ta đang sử dụng máy tính nào, chúng ta luôn có thể truy cập vào ứng dụng của mình… 7 1.1.3. Tìm hiểu về an ninh web Theo thống kê các phương thức tấn công hiện nay (hình) chúng ta thấy các kiểu tấn công truyền thống như SQL Injection, Cross-Site Script, Brute Force... vẫn đang gây thiệt hại cho hệ thống mạng dù đã được cảnh báo từ rất lâu. Các cuộc tấn công này chủ yếu tập trung vào các ứng dụng web được phát triển trong các dịch vụ thương mại điện tử với nền tảng ứng dụng web 2.0. Vấn đề bảo mật cho các ứng dụng hiện nay nói chung và ứng dụng web nói riêng vẫn còn khá “mới mẻ” đối với các doanh nghiệp Việt Nam. Các vấn đề bảo mật Web Một cuộc nghiên cứu gần đây chỉ ra rằng 75% các cuộc tấn công mạng được thực hiện ở mức ứng dụng Web. 1.1.4. Một số thuật ngữ liên quan 1.1.4.1. Hacker 1.1.4.2. Session ID 1.1.4.3. COOKIE 1.1.4.4. IP và TCP/IP 1.1.4.5. DNS 8 1.2. Các dạng tấn công ứng dụng web 1.2.1. Tấn công từ chối dịch vụ 1.2.1.1. DoS (Denial of Service) DoS (Denial of Service) có thể mô tả như hành động ngăn cản những người dùng hợp pháp của một dịch vụ nào đó truy cập và sử dụng dịch vụ đó. Nó bao gồm cả việc làm tràn ngập mạng, làm mất kết nối với dịch vụ… mà mục đích cuối cùng là làm cho server không thể đáp ứng được các yêu cầu sử dụng dịch vụ từ các client. DoS có thể làm ngưng hoạt động của một máy tính, một mạng nội bộ, thậm chí cả một hệ thống mạng rất lớn. Thực chất của DoS là kẻ tấn công sẽ chiếm dụng một lượng lớn tài nguyên mạng như băng thông, bộ nhớ… và làm mất khả năng xử lý các yêu cầu dịch vụ đến từ các client khác. 1.2.1.2. DDoS (Distributed Denial Of Service) Distributed Denial Of Service (DDoS) là kỹ thuật tấn công làm các ISP lo âu, giới hacker chính thống thì không công nhận DDoS là kỹ thuật tấn công chính thống. Thế nhưng Black hat đang có rất nhiều ưu thế khi triển khai tấn công bằng kỹ thuật DDoS. 9 Việc phòng ngừa và ngăn chặn DDoS vẫn còn đang thực hiện ở mức độ khắc phục hậu quả và truy tìm thủ phạm 1.2.1.3. DRDoS (Distributed Reflection Denial of Service) Mục tiêu chính của DRDoS là chiếm đoạt toàn bộ băng thông của máy chủ, tức là làm tắc ngẽn hoàn toàn đường kết nối từ máy chủ vào xương sống của Internet và tiêu hao tài nguyên máy chủ. Trong suốt quá trình máy chủ bị tấn công bằng DRDoS, không một máy khách nào có thể kết nối được vào máy chủ đó. Tất cả các dịch vụ chạy trên nền TCP/IP như DNS, HTTP, FTP, POP3, ... đều bị vô hiệu hóa. 1.2.2. Chiếm hữu phiên làm việc (Session Management) 1.2.2.1. Ấn định phiên làm việc Là kỹ thuật tấn công cho phép Hacker mạo danh người dùng hợp lệ bằng cách gửi một SessionID hợp lệ đến người dùng, sau khi người dùng đăng nhập vào hệ thống thành công, hacker sẽ dùng lại SessionID đó và nghiễm nhiên trở thành người dùng hợp. Trong kiểu tấn công ấn định một phiên làm việc, hacker ấn định sẵn session ID cho nạn nhân trước khi họ 10 đăng nhập vào hệ thống. Sau đó, hacker sẽ sử dụng session ID này để buớc vào phiên làm việc của nạn nhân đó. 1.2.2.2. Đánh cắp phiên làm việc Là kỹ thuật tấn công cho phép Hacker mạo danh người dùng hợp lệ sau khi nạn nhân đã đăng nhập vào hệ thống bằng cách giải mã SessionID của họ được lưu trữ trong Cookie hay tham số URL, biến ẩn của Form. 1.2.3. Tấn công chèn câu truy vấn SQL Injection SQL injection là kĩ thuật cho phép những kẻ tấn công lợi dụng lỗ hổng trong việc kiểm tra dữ liệu nhập trong các ứng dụng web và các thông báo lỗi của hệ quản trị cơ sở dữ liệu để ”tiêm vào” (inject) và thi hành các câu lệnh SQL bất hợp pháp (không được người phát triển ứng dụng lường trước). Hậu quả của nó rất tai hại vì nó cho phép những kẻ tấn công có thể thực hiện các thao tác xóa, hiệu chỉnh…do có toàn quyền trên cơ sỡ dữ liệu của ứng dụng, thậm chí là server mà nó ứng dụng đó đang chạy. Lỗi này thường xảy ra trên các ứng dụng web có dữ liệu được quản lý bằng các hệ quản trị cơ sở dữ liệu như SQL Server, MySQL, Oracle, DB2, Sysbase. 11 Khi Hacker gửi những dữ liệu (thông qua webform), ứng dụng web sẽ thực hiện và trả về cho trình duyệt kết quả câu truy vấn hay những thông báo lỗi có liên quan đến cơ sở dữ liệu. Và nhờ những thông tin này mà haker biết được nội dung cơ sở dữ liệu và có thể điều khiển toàn bộ hệ thống ứng dụng. Các dạng tấn công SQL Injection: - Có bốn dạng thông thường bao gồm: vượt qua kiểm tra lúc đăng nhập (authorization bypass), sử dụng câu lệnh SELECT, sử dụng câu lệnh INSERT, sử dụng các storedprocedures. 1.2.4. Chèn mã lệnh thực thi trên trình duyệt Cross-Site Scripting Khái niệm về XSS là thao tác các kịch bản phía máy khách của một ứng dụng web để thực hiện theo cách mong muốn của kẻ xấu. Những kịch bản đã nhúng vào trang web sẽ được thực hiện khi người dùng tải trang hoặc có những tác vụ liên quan. Cross-site Scripting (XSS) là lỗ hổng cho phép hacker có thể chèn những đoạn mã clientscript (thường là Javascript hoặc HTML) vào trang web, 12 khi người dùng vào những trên web này, mã độc sẽ được thực thi trên máy của người dùng. Hiện tồn tại 2 hình thức:  Stored-XSS:  Reflected-XSS: 13 Chương 2: GIẢI PHÁP PHÒNG CHỐNG TẤN CÔNG ỨNG DỤNG WEB 2.1. Phương thức tấn công ứng dụng web 2.1.1. Tấn công từ chối dịch vụ 2.1.1.1. DoS (Denial of Service)  Phá hoại dựa trên tính giới hạn hoặc không thể phục hồi của tài nguyên mạng. 2.1.1.2. DDoS (Distributed Denial Of Service) Bao gồm 3 giai đoạn: Giai đoạn chuẩn bị Giai đoạn xác định mục tiêu và thời điểm Phát động tấn công và xóa dấu vết Kiểm tra xem server có bị DDOS hay không Hình 2.1. Mô hình cuộc tấn công DDoS 14 2.1.1.3. DRDoS (Distributed Reflection Denial of Service) Về cơ bản, DrDoS là sự phối hợp giữa hai kiểu DoS và DDoS. Nó có kiểu tấn công SYN với một máy tính đơn, vừa có sự kết hợp giữa nhiều máy tính để chiếm dụng băng thông như kiểu DDoS. Kẻ tấn công thực hiện bằng cách giả mạo địa chỉ của server mục tiêu rồi gửi yêu cầu SYN đến các server lớn như Yahoo, Micorosoft…,để các server này gửi các gói tin SYN/ACK đến server mục tiêu. Các server lớn, đường truyền mạnh đã vô tình đóng vai trò zoombies cho kẻ tấn công như trong DdoS. Hình 2.2. Sơ đồ mô tả kiểu tấn công DRDOS 15 2.1.2. Chiếm hữu phiên làm việc (Session Management) 2.1.2.1. Ấn định phiên làm việc Bước 1: Thiết lập session ID. Bước 2: Gởi session ID đến trình duyệt nạn nhân. Bước 3: Đột nhập vào phiên làm việc của nạn nhân. 2.1.2.2. Đánh cắp phiên làm việc  Tấn công kiểu dự đoán phiên làm việc.  Tấn công kiểu vét cạn phiên làm việc.  Tấn công kiểu dùng đoạn mã để đánh cắp phiên làm việc. 2.1.3. Tấn công chèn câu truy vấn SQL Injection 2.1.3.1. Dạng tấn công vượt qua kiểm tra đăng nhập - Với dạng tấn công này, tin tặc có thể dễ dàng vượt qua các trang đăng nhập nhờ vào lỗi khi dùng các câu lệnh SQL thao tác trên cơ sở dữ liệu của ứng dụng web. Xét một ví dụ điển hình, thông thường để cho phép người dùng truy cập vào các trang web được bảo mật, hệ thống thường xây dựng trang đăng nhập để yêu cầu người dùng nhập thông tin về tên đăng nhập và mật khẩu. Sau khi người dùng nhập thông tin vào, hệ thống sẽ kiểm tra tên đăng nhập và mật khẩu có hợp lệ hay không để quyết định cho phép hay từ chối thực hiện tiếp. 2.1.3.2. Dạng tấn công sử dụng câu lệnh SELECT 16 Để thực hiện được kiểu tấn công này, kẻ tấn công phải có khả năng hiểu và lợi dụng các sơ hở trong các thông báo lỗi từ hệ thống để dò tìm các điểm yếu khởi đầu cho việc tấn công. 2.1.3.3. Dạng tấn công sử dụng câu lệnh INSERT - Thông thường các ứng dụng web cho phép người dùng đăng kí một tài khoản để tham gia. Chức năng không thể thiếu là sau khi đăng kí thành công, người dùng có thể xem và hiệu chỉnh thông tin của mình. SQL injection có thể được dùng khi hệ thống không kiểm tra tính hợp lệ của thông tin nhập vào. 2.1.3.4. Dạng tấn công sử dụng stored-procedures - Việc tấn công bằng stored-procedures sẽ gây tác hại rất lớn nếu ứng dụng được thực thi với quyền quản trị hệ thống 'sa'. 2.1.3.5. Tấn công SQL Injection nâng cao 2.1.4. Chèn mã lệnh thực thi trên trình duyệt Cross-Site Scripting XSS là một lỗi phổ biến, có rất nhiều trang web bị mắc phải lỗi này, chính vì thế ngày càng có nhiều người quan tâm đến lỗi này. Các bước thực hiện tấn công theo phương pháp này như sau: 17 Truy tìm lỗ hổng XSS của web Tấn công 2.2. Giải pháp phòng chống tấn công ứng dụng web 2.2.1. Tấn công từ chối dịch vụ 2.2.1.1. DoS (Denial of Service) - Mô hình hệ thống phải được xây dựng hợp lý, tránh phụ thuộc lẫn nhau quá mức dễ dẫn đến một bộ phận gặp sự cố sẽ làm cả hệ thống bị trục trặc. - Thiết lập password bảo vệ các thiết bị hay các nguồn tài nguyên quan trọng. - Thiết lập các mức xác thực đối với người dùng cũng như các nguồn tin trên mạng (các thông tin cập nhật định tuyến giữa các router cũng nên thiết lập ở chế độ xác thực)… 2.2.1.2. DDoS (Distributed Denial Of Service) Cách 1: Chống iframe. Cách 2: Chống tải lại trang web có ác ý Cách 3: Giới hạn số kết nối website tại một thời điểm 2.2.1.3. DRDoS (Distributed Reflection Denial of Service) Tấn công từ chối dịch vụ DRDoS rất khó phòng chống do tính bất ngờ và thường là phòng chống trong thế bị động khi sự việc đã diễn ra. Các phương án phòng ngừa có thể: 18  Thiết lập, cài đặt mật khẩu mạnh (strong password) để bảo vệ các thiết bị mạng như máy chủ dịch vụ, các router,… và các nguồn tài nguyên quan trọng khác. Phòng ngừa các điểm yếu của ứng dụng Web, Webserver, DNS, SQL Database… Thường xuyên cập nhật các bản vá là một trong những yêu cầu quan trọng… 2.2.2. Chiếm hữu phiên làm việc Chống việc đăng nhập với một session ID có sẵn, ứng dụng phải hủy bỏ session ID được cung cấp bởi trình duyệt của người dùng khi đăng nhập và luôn tạo một session ID mới khi người dùng đăng nhập thành công sẽ khiến cho những hacker không phải là người dùng hợp lệ của hệ thống. Giới hạn phạm vi ứng dụng của session ID như kết hợp session ID với địa chỉ của trình duyệt, kết hợp session ID với chứng thực được mã hoá SSL của người dùng, xóa bỏ session khi người dùng thoát khỏi hệ thống hay hết hiệu lực, thiết lập thời gian hết hiệu lực cho session để tránh trường hợp hacker có thể duy trì session và sử dụng nó lâu dài…
- Xem thêm -