Đăng ký Đăng nhập
Trang chủ Xây dựng hệ thống giám sát và cảnh báo sự thay đổi nội dung trang web...

Tài liệu Xây dựng hệ thống giám sát và cảnh báo sự thay đổi nội dung trang web

.PDF
69
30
131

Mô tả:

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Ngọc Khánh XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ CẢNH BÁO SỰ THAY ĐỔI NỘI DUNG TRANG WEB LUẬN VĂN THẠC SĨ Hà Nội – 2018 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN NGỌC KHÁNH XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ CẢNH BÁO SỰ THAY ĐỔI NỘI DUNG TRANG WEB Ngành: Công nghệ thông tin Chuyên ngành: Kỹ thuật Phần mềm Mã số: 60480103 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Hướng dẫn khoa học: Tiến sĩ Lê Quang Minh Hà Nội – 2018 XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ CẢNH BÁO SỰ THAY ĐỔI NỘI DUNG TRANG WEB LỜI CAM ĐOAN Tôi xin cam đoan đây là công trình nghiên cứu khoa học độc lập của riêng tôi. Các số liệu sử dụng phân tích trong luận văn có nguồn gốc rõ ràng, đã công bố theo đúng quy định. Các kết quả trong luận văn do tôi tự tìm hiểu, phân tích một cách trung thực, khách quan và phù hợp với thực. Các kết quả này chưa từng được công bố trong bất kỳ nghiên cứu nào khác. Tôi xin hoàn toàn chịu trách nhiệm với lời cam đoan của mình. HỌC VIÊN Nguyễn Ngọc Khánh 3 LỜI CẢM ƠN Em xin chân thành cảm ơn Khoa Công nghệ thông tin trường Đại học Công nghệ, Đại học Quốc gia Hà Nội đã tạo điều kiện thuận lợi cho em học tập và thực hiện luận văn tốt nghiệp này. Em xin bày tỏ lòng biết ơn sâu sắc đến thầy Lê Quang Minh đã tận tình hướng dẫn, chỉ bảo em trong quá trình thực hiện luận văn này. Em xin chân thành cảm ơn quý thầy cô trong Khoa Công nghệ thông tin đã tận tình giảng dạy, trang bị cho em những kiến thức quý báu trong những năm học vừa qua. Mặc dù đã cố gắng hoàn thành luận văn trong phạm vi và khả năng cho phép nhưng chắc chắn sẽ không tránh khỏi những thiếu sót. Em rất mong nhận được sự góp ý, tận tình chỉ bảo của quý thầy cô. HỌC VIÊN Nguyễn Ngọc Khánh XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ CẢNH BÁO SỰ THAY ĐỔI NỘI DUNG TRANG WEB MỤC LỤC LỜI MỞ ĐẦU ........................................................................................... 9 CHƯƠNG 1: CÔNG NGHỆ WEB VÀ MỘT SỐ VẤN ĐỀ AN NINH 11 1.1. Tổng quan về Website ................................................................... 11 1.1.1. Khái niệm Web........................................................................ 11 1.1.2. Hoạt động của Web................................................................. 11 1.1.3. Trình duyệt Web...................................................................... 12 1.1.4. Địa chỉ URL ............................................................................ 12 1.1.5. HTML ..................................................................................... 13 1.1.6. Tên miền ................................................................................. 14 1.2. Tổng quan về Webserver ............................................................... 15 1.3. Tổng quan về an ninh mạng ........................................................... 16 1.4. Một số lỗ hổng an ninh trên Website ............................................. 16 1.5. Một số điểm yếu bảo mật và kỹ thuật tấn công Website................. 18 1.5.1. Tấn công SQL Injection .......................................................... 18 1.5.2. Tấn công XSS (Cross Site Scripting) ....................................... 25 1.5.3. Tấn công từ chối dịch vụ DOS (Denial of Service) .................. 27 CHƯƠNG 2: TẤN CÔNG THAY ĐỔI NỘI DUNG VÀ MỘT SỐ THUẬT TOÁN PHÁT HIỆN SỰ THAY ĐỔI ............................................. 32 2.1. Khái niệm Tấn công thay đổi nội dung (Deface website) ............... 32 2.2. Vì sao website bị Deface? .............................................................. 32 2.3. Thực trạng tấn công thay đổi nội dung tại Việt Nam...................... 33 2.4. Làm thế nào để phát hiện bị Deface? ............................................. 35 2.5. Các bước xử lý khi phát hiện bị Deface ......................................... 35 2.6. Một số lời khuyên để website an toàn hơn ..................................... 37 2.7. Một số thuật toán phát hiện sự thay đổi.......................................... 38 2.7.1. Hàm băm ................................................................................ 38 2.7.2. Thuật toán đối sánh chuỗi ....................................................... 41 2.7.3. Dấu vân tay tài liệu (Document Fingerprint) .......................... 42 5 2.7.4. Thuật toán Rabin Fingerprint ................................................. 43 2.7.5. Thuật toán Rabin Fingerprint cải tiến ..................................... 45 2.7.6. Thuật toán tìm sự khác nhau của hai văn bản "An O(ND) Difference Algorithm" .............................................................................. 46 2.7.7. Thuật toán tìm sự khác nhau của hai hình ảnh ........................ 47 CHƯƠNG 3: XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ CẢNH BÁO SỰ THAY ĐỔI NỘI DUNG TRANG WEB ................................................. 49 3.1. Giới thiệu....................................................................................... 49 3.2. Xác định mô hình phát triển ........................................................... 50 3.3. Khảo sát ......................................................................................... 51 3.4. Mô tả yêu cầu hệ thống .................................................................. 52 3.4.1. Các yêu cầu chức năng ........................................................... 52 3.4.2. Các yêu cầu phi chức năng ..................................................... 53 3.5. Biểu đồ usecase ............................................................................. 53 3.6. Thiết kế cơ sở dữ liệu .................................................................... 54 3.7. Công cụ và môi trường phát triển................................................... 55 3.7.1. Kiến trúc .NET framework ...................................................... 55 3.7.2. Ngôn ngữ C#........................................................................... 56 3.7.3. SQLite..................................................................................... 57 3.8. Xây dựng hệ thống......................................................................... 57 3.8.1. Hệ thống So sánh thay đổi nội dung mã nguồn web ................ 57 3.8.2. Hệ thống chuyển đổi Trang web thành hình ảnh ..................... 59 3.8.3. Hệ thống So sánh thay đổi nội dung hình ảnh trang web ........ 60 3.8.4. Hệ thống Quản lý thời gian thực ............................................. 60 3.8.5. Hệ thống Lưu dữ liệu .............................................................. 61 3.9. Thiết kế giao diện .......................................................................... 62 3.10. Thử nghiệm và những kết quả đạt được ....................................... 64 XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ CẢNH BÁO SỰ THAY ĐỔI NỘI DUNG TRANG WEB DANH MỤC HÌNH ẢNH Hình 1. Một số Webserver thông dụng ............................................................. 15 Hình 2. Mô hình tấn công SQL Injection .......................................................... 19 Hình 3. Mô hình tấn công XXS (Cross-Site Scripting) ..................................... 26 Hình 4. Một mô hình tấn công từ chối dịch vụ DOS......................................... 28 Hình 5. Mô hình tấn công SYNFlood Attack.................................................... 30 Hình 6. Giao diện Website Sở KH&CN BR- VT bị tấn công ........................... 34 Hình 7. Giao diện Website sân bay Tuy Hòa bị tấn công.................................. 34 Hình 8. Sơ đồ Merkel-Damgard ....................................................................... 40 Hình 9. Mô tả thuật toán Rabin Fingerprint ...................................................... 45 Hình 10. Minh hoạ cải tiến giải thuật ............................................................... 46 Hình 11. Mô hình thác nước ............................................................................. 51 Hình 12. Biểu đồ usecase ................................................................................. 53 Hình 13. Biểu đồ trình tự kiểm tra trang web ................................................... 54 Hình 14. Biểu đồ trình tự so sánh nội dung ...................................................... 54 Hình 15. Giao diện phần mềm .......................................................................... 62 Hình 16. Giao diện thêm trang web .................................................................. 63 Hình 17. Giao diện thêm so sánh sự khác nhau về hình ảnh ............................. 63 Hình 18. Giao diện thêm so sánh sự khác nhau của mã nguồn.......................... 64 7 DANH MỤC BẢNG Bảng 1. Lịch sử phát triển .NET framework ......................................................... 56 Bảng 2. Kết quả thử nghiệm lần 1 ........................................................................ 65 Bảng 3. Kết quả thử nghiệm lần 2 ........................................................................ 65 Bảng 4. Kết quả thử nghiệm lần 3 ........................................................................ 65 Bảng 5. Kết quả thử nghiệm tại máy tính của trường THCS Dịch Vọng Hậu ....... 66 XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ CẢNH BÁO SỰ THAY ĐỔI NỘI DUNG TRANG WEB LỜI MỞ ĐẦU 1. Lý do chọn đề tài Hiện nay, công nghệ thông tin ngày càng phát triển, kéo theo đó là sự phát triển của mạng máy tính và đặc biệt là internet ngày càng đa dạng và phong phú. Trên mạng Internet, các tiện ích và dịch vụ đã thâm nhập vào hầu hết các lĩnh vực trong đời sống xã hội. Các tiện ích và dịch vụ đó hầu hết đều rất đa dạng về nội dung và hình thức, chứa đựng rất nhiều thông tin, trong đó không ít thông tin cần được bảo mật cao bởi tính kinh tế, tính chính xác và tính tin cậy của nó. Cùng với sự đa dạng và phong phú đó, các hình thức tấn công và phá hoại mạng cũng ngày càng trở lên tinh vi và phức tạp. Từ thực tế đó, với những người quản trị mạng hệ thống, nhiệm vụ đảm bảo an toàn hệ thống là hết sức quan trọng và cần thiết. Xuất phát từ thực tế đó, đề tài sẽ tìm hiểu về một số kiểu tấn công phổ biến hiện nay và cách phòng chống các loại tấn công đó. Thông qua việc nghiên cứu một số phương pháp tấn công và cách bảo mật các loại tấn công đó, tôi mong muốn góp một phần nhỏ vào việc nghiên cứu và tìm hiểu về các vấn đề phát hiện tấn công làm thay đổi nội dung trang web và đưa ra cảnh báo sớm có ý nghĩa giúp cho việc duy trì các trang web trên hệ thống máy chủ được ổn định. 2. Mục tiêu Mục tiêu của luận văn là nghiên cứu, tìm hiểu tổng quan về website, các mối đe dọa về an toàn thông tin khi làm việc trên ứng dụng web, hiểu thêm về các kỹ thuật tấn công và bảo mật website. Từ đó có sự đánh giá một cách tổng quan, để áp dụng các chính sách về bảo mật website và an toàn dữ liệu cho hệ thống. Đồng thời xây dựng và phát triển hệ thống phát hiện sớm các tấn công làm thay đổi nội dung trang web từ đó đưa ra các cảnh báo sớm giúp cho người 9 quản trị web biết được có sự thay đổi bất thường và đưa ra các biện pháp làm cho hệ thống bảo mật tốt hơn. 3. Bố cục luận văn: Chương 1: Tổng quan về website. Trong chương 1 luận văn nêu lên một số các khái niệm cơ bản về web, thực trạng an ninh Web trên thế giới và tại Việt Nam, một số lỗ hổng an ninh trên Website, một số điểm yếu bảo mật và kỹ thuật tấn công Website. Chương 2: Tấn công thay đổi nội dung và một số thuật toán phát hiện sự thay đổi Trong chương 2 luận văn nêu khái niệm tấn công thay đổi nội dung, nguyên nhân và cách khắc phục cùng với một số thuật toán phát hiện sự thay đổi đó. Chương 3: Xây dựng hệ thống giám sát và cảnh báo sự thay đổi nội dung nội dung trang web. Trong chương này, dựa trên những kiến thức ở chương 1 và chương 2, tác giả đã mô tả các bước để xây dựng hệ thống giám sát những thay đổi về nội dung trang web và đưa ra cảnh báo kịp thời khi phát hiện có sự thay đổi. XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ CẢNH BÁO SỰ THAY ĐỔI NỘI DUNG TRANG WEB CHƯƠNG 1: CÔNG NGHỆ WEB VÀ MỘT SỐ VẤN ĐỀ AN NINH 1.1. Tổng quan về Website 1.1.1. Khái niệm Web Web là viết tắt của World Wide Web, là mạng lưới toàn cầu mà mọi người có thể truy cập (đọc và viết) qua máy tính hoặc các thiết bị kết nối với mạng Internet. Thuật ngữ này thường được hiểu nhầm là từ đồng nghĩa với chính thuật ngữ Internet, nhưng thực ra web chỉ là một trong các dịch vụ chạy trên Internet (Theo wikipedia.org). Các dữ liêu trang web được lưu trữ trong hệ thống các siêu máy chủ nối mạng Internet. Để xem được các trang web, người dùng cần sử dụng một chương trình được chuyên cho việc này gọi là trình duyệt web. Chương trình sẽ nhận dữ liệu là những đường dẫn hay còn gọi là địa chỉ URL, sau đó trình duyệt sẽ gửi những thông tin yêu cầu đến máy chủ theo địa chỉ đó và hiển thị những kết quả nhận được lên màn hình máy tính của người dùng. Ngoài ra, trong mỗi trang web đều có các liên kết siêu văn bản (hyperlink), người sử dụng có thể kết nối với các tài liệu hoặc các trang web khác theo những liên kết đó, hoạt động này được gọi là duyệt web 1.1.2. Hoạt động của Web Thông qua trình duyệt, người và máy chủ sẽ kết nối với nhau bằng địa chỉ URL. Tùy theo những yêu cầu khác nhau, ứng dụng web sẽ gửi những yêu cầu đó đến máy chủ, máy chủ sẽ xử lý và gửi dữ liệu về trình duyệt, sau đó người dùng sẽ nhận được những thông tin hiển thị trên trình duyệt. - Website tĩnh là website mà người quản trị, hay người sử dụng không thể tùy ý thay đổi nội dung và hình ảnh, muốn thay đổi cần có kiến thức về HTML cơ bản để sửa trực tiếp trong mã nguồn vì chúng được viết hoàn toàn dựa trên nền tảng HTML, CSS. 11 - Website động là website được xây dựng kèm theo một bộ công cụ để người quản trị có thể tùy biến nội dung dành cho người quản trị có thể dễ dàng thay đổi nội dung, hình ảnh. Website động thường được thiết kế bưởi những người lập trình với các công nghệ, ngôn ngữ như PHP, ASP.NET, Java,... 1.1.3. Trình duyệt Web Như đã nêu, trình duyệt Web là phần mềm cho phép người dùng truy cập các trang web, tương tác với nội dung các trang web như văn bản, hình ảnh, đoạn phim, nhạc, trò chơi và các thông tin khác. Trong một trang web có thể chứa những liên kết tới những nội dung khác hoặc những trang web khác. Để hiển thị nội dung web, các trang web phải được định dạng dưới dạng HTML. Trình duyệt web và máy chủ web thường giao tiếp với nhau bằng việc sử dụng giao thức HTTP để truyền thông tin trang web. HTTP được sử dụng rộng rãi nhất là HTTP/1.1. Các trang được định vị bằng cách thức của một URL (bộ định vị tài nguyên chung), được coi như là một địa chỉ, bắt đầu bằng cụm http: để truy cập HTTP. Định dạng của một trang web thường là file HTML (ngôn ngữ đánh dấu siêu văn bản), sử dụng giao thức HTTP và sử dụng kiểu nội dung MIME. Hầu hết các trình duyệt đều hỗ trợ nhiều định dạng file khác ngoài HTML, như các định dạng ảnh JPEG, GIF, PNG, PDF... ngoài ra nếu sử dụng các plug-in, các định dạng có thể mở rộng để hỗ trợ nhiều hơn. Một số trình duyệt web phổ biến hiện nay bao gồm Internet Explorer, Mozilla Firefox, Safari, Google Chrome, Opera,… 1.1.4. Địa chỉ URL URL là viết tắt của Uniform Resource Locator (dịch là Định vị Tài nguyên thống nhất), URL dùng trong Internet và để tham chiếu tới tài nguyên nào đó, nó mang lại khả năng liên kết cho các trang mạng. Các tài nguyên nhau sử dụng địa XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ CẢNH BÁO SỰ THAY ĐỔI NỘI DUNG TRANG WEB chỉ để tham chiếu, đó là URL, còn tên gọi nữa là địa chỉ mạng, liên kết mạng hay gọn là liên kết. Mỗi URL là một dạng của ULI, và chúng đều tuân theo tiêu chuẩn cú pháp, gồm có nhiều phần được liệt kê dưới đây: - URI scheme hay phương pháp truy cập thường là tên giao thức (ví dụ: http, ftp) nhưng cũng có thể là một cái tên khác (ví du: news, mailto). - Tên máy chủ (ví dụ: vi.wikipedia.org) - Chỉ định thêm cổng (có thể không cần) - Đường dẫn tuyệt đối của tài nguyên (ví dụ: trang/muc) - Các truy vấn (có thể không cần) - Chỉ định mục con (có thể không cần) Hiện nay trên thế giới mỗi ngày có rất nhiều tên miền (domain) (thí dụ org) mới xuất hiện. 1.1.5. HTML HTML là chữ viết tắt của cụm từ HyperText Markup Language (Ngôn ngữ đánh dấu siêu văn bản) được sử dụng để tạo một trang web, trên một website có thể sẽ chứa nhiều trang và mỗi trang được quy ra là một tài liệu HTML. Cha đẻ của HTML là Tim Berners-Lee, cũng là người khai sinh ra World Wide Web và chủ tịch của World Wide Web Consortium (W3C – tổ chức thiết lập ra các chuẩn trên môi trường Internet). Một tài liệu HTML được hình thành bởi các phần tử HTML (HTML Elements) được quy định bằng các cặp thẻ (tag), các cặp thẻ này được bao bọc bởi một dấu ngoặc ngọn (ví dụ ) và thường là sẽ được khai báo thành một cặp, bao gồm thẻ mở và thẻ đóng (ví dụ và ). Các văn bản muốn được đánh dấu bằng HTML sẽ được khai báo bên trong cặp thẻ (ví dụ Đây là chữ in đậm). Nhưng một số thẻ đặc biệt lại không có 13 thẻ đóng và dữ liệu được khai báo sẽ nằm trong các thuộc tính (ví dụ như thẻ ). Một tập tin HTML sẽ bao gồm các phần tử HTML và được lưu lại dưới đuôi mở rộng là .html hoặc .htm. Khi một tập tin HTML được hình thành, việc xử lý nó sẽ do trình duyệt web đảm nhận. Trình duyệt sẽ đóng vai trò đọc hiểu nội dung HTML từ các thẻ bên trong và sẽ chuyển sang dạng văn bản đã được đánh dấu để đọc, nghe hoặc hiểu (do các bot máy tính hiểu). 1.1.6. Tên miền Tên miền là dịch vụ có mục đích chính của là cung cấp một hình thức đại diện, dùng những tên dễ nhận biết, dễ nhớ thay cho những tài nguyên Internet mà đa số là những địa chỉ bằng số. Với cách này có thể cho phép bất kỳ tài nguyên nào nói chung, website nói riêng có thể được di chuyển đến một địa chỉ vật lý khác trong cấu trúc liên kết địa chỉ mạng, có thể là toàn cầu hoặc chỉ cục bộ trong một mạng intranet. Việc dịch từ các tên miền sang địa chỉ IP và ngược lại là do hệ thống DNS trên toàn cầu thực hiện (Theo wikipedia.org). Với việc sử dụng các địa chỉ dạng chữ cái thay cho các địa chỉ IP, tên miền cho phép người dùng Internet có thể nhớ dễ dàng và dễ dàng tìm kiếm các trang web. Ngoài ra, tính uyển chuyển của mình, trong hệ thống tên miền, nhiều địa chỉ IP có thể cùng được gán cùng vào một tên miền, và ngược lại, nhiều tên miền đều cùng chỉ đến một địa chỉ IP. Theo quy định, một tên miền chỉ có thể có tối đa 67 ký tự, các ký tự đó chỉ gồm các chữ cái, chữ số và 1 vài ký tự đặc biệt. Phân loại theo miền mở rộng, một số tên miền mở rộng thông dụng: .com: Dùng cho các tổ chức, công ty thương mại. .net: Dùng cho các tổ chức, công ty về mạng, dịch vụ mạng. .org: Dùng cho các tổ chức phi lợi nhuận. XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ CẢNH BÁO SỰ THAY ĐỔI NỘI DUNG TRANG WEB .gov: Dùng cho các tổ chức chính phủ. .edu: Dùng cho các tổ chức giáo dục, trường học. .biz: Dùng cho các công ty thương mại trực tuyến. 1.2. Tổng quan về Webserver Webserver (máy chủ web) là từ được dùng để chỉ phần mềm máy chủ, hoặc phần cứng dành riêng để chạy các phần mềm trên máy chủ, để từ đó có thể cung cấp các dịch vụ World Wide Web. Một máy chủ web xử lí các yêu cầu (request) từ các client (trong mô hình server - client) thông qua giao thức HTTP và một số giao thức liên quan khác. Chức năng cơ bản nhất của máy chủ web là lưu trữ, xử lí và phân phối nội dung các trang web đến khách hàng, cụ thể ở đây là máy tính người dùng, hay còn gọi là client trong mô hình server-client. Giao tiếp giữa của máy tính người dùng và máy chủ thực hiện thông qua giao thức HTTP. Nội dung phân phối chính từ máy chủ web là các nội dung định dạng HTML, bao gồm hình ảnh, style sheets, các đoạn mã script hỗ trợ các nội dung văn bản thô. Một số Webserver thông dụng hiện nay: Hình 1. Một số Webserver thông dụng 15 Trước đây, trong những ngày đầu phát triển, có rất nhiều ngôn ngữ lập trình cho website như JSP, ASP, PHP, ASP.NET... tuy nhiên với những ưu thế vượt trội, hiện tại có hai ngôn ngữ được dùng phổ biến nhất là PHP và ASP.NET. 1.3. Tổng quan về an ninh mạng 1.3.1. Khái niệm về an toàn và an ninh mạng Trước đây, nói đến an ninh thông tin người ta thường nói đến các biện pháp bảo mật vật lý sử dụng để bảo vệ cho những thông tin quan trọng khỏi bị truy cập trái phép và để bảo vệ nó chống lại thay đổi hoặc tiêu hủy. Các biện pháp như lưu trữ tài liệu có giá trị trong kết sắt hoặc ở những nơi an toàn à hạn chế việc truy cập vật lý đến các tài liệu đó. Ngày nay, với sự phát triển của CNTT, sự phổ biến của máy tính và internet, cách truy cập dữ liệu đã thay đổi, các phương pháp bảo vệ dữ liệu đã thay đổi đáng kể. Với một chiếc máy tính thường chỉ yêu cầu các công bảo vệ dữ liệu trên máy tính đó như phần mềm diệt virus hay phần quyền truy cập hệ thống của người dùng, nhưng với một hệ thống máy tính nối mạng thì cần đòi hỏi nhiều hơn, ví dụ như dữ liệu vào hệ thống đó được bảo vệ không chỉ từ truy cập địa phương mà còn từ các truy cập từ xa trái phép và cần phát hiện và ngăn chặn các thay đổi dữ liệu trong quá trình truyền giữa các hệ thống. An ninh mạng ở dây không phải là một quy trình, sản phẩm, hay chính sách mà là sự kết hợp của các sản phẩm và quy trình có hỗ trợ một chính sách quy định. 1.3.2. Sự cần thiết phải bảo vệ thông tin Trong thời đại công nghệ thông tin, bất cứ doanh nghiệp hay tổ chức nào cũng có các yếu tố quan trong, cần được bảo vệ như: - Tài nguyên: con người, hệ thống và đường truyền. - Dữ liệu. - Danh tiếng của công ty. XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ CẢNH BÁO SỰ THAY ĐỔI NỘI DUNG TRANG WEB Nếu không thực sự xác định được tầm quan trọng của vấn đề an toàn thông tin thì khi gặp phải sự cố, tác hại đến doanh nghiệp không nhỏ: - Tốn kém chi phí. - Tốn kém thời gian. - Ảnh hưởng đến tài nguyên hệ thống. - Ảnh hưởng đến danh dự, uy tín của doanh nghiệp. - Mất cơ hội kinh doanh. 1.4. Một số lỗ hổng an ninh trên Website Các lỗ hổng bảo mật có trên một hệ thống là các điểm yếu mà dựa vào đó, kẻ tấn công có thể tấn công hệ thống, thêm quyền hoặc cho phép các truy nhập không hợp pháp vào hệ thống. Các lỗ hổng bảo mật có thể ở nhiều nơi trong hệ thống, có thể ở ngay trong các dịch vụ, tiện ích như web, mail, file... hoặc ở ngay trong các ứng dụng, ngay trên hệ điều hành. Có nhiều tổ chức khác nhau đã tiến hành phân loại các dạng lỗ hổng. Bộ quốc phòng Mỹ đã nghiên cứu và phân loại các lỗ hổng bảo mật trên hệ thống thành các loại: - Lỗ hổng loại C: các lỗ hổng loại này cho phép thực hiện các phương thức tấn công từ chối dịch vụ theo (DoS - Dinal of Services). Loại lỗ hổng này có mức độ nguy hiểm thuộc loại thập, đa phần chỉ ảnh hưởng đến tốc độ và chất lượng của dịch vụ, nặng hơn có thể làm gián đoạn hoạt động của hệ thống, nhưng không gây mất, hỏng dữ liệu hay chiếm quyền tuy cập bất hợp pháp - Lổ hổng loại B: các lỗ hổng loại này có thể gây ra hiện tượng người sử dụng có thêm các quyền bất hợp pháp không cần kiểm tra hợp lệ. Các lỗ hổng cho phép người sử dụng hệ thống có thêm các quyền trên hệ thống mà không cần thực hiện kiểm tra tính hợp lệ. Loại lỗ hổng này có mức độ nguy hiểm trung bình, nó có thể dẫn đến mất hoặc lộ thông tin yêu cầu bảo mật. 17 - Lỗ hổng loại A: Các lỗ hổng loại này cho phép người sử dụng ở ngoài có thể truy nhập vào hệ thống bất hợp pháp, có thể thay đổi, xóa hoặc làm phá hủy toàn bộ hệ thống. 1.5. Một số điểm yếu bảo mật và kỹ thuật tấn công Website 1.5.1. Tấn công SQL Injection 1.5.1.1. SQL Injection là gì Khi thiết kế và triển khai hệ thống website trên Internet, nhiều khi người lập trình vẫn nghĩ rằng bảo đảm an ninh và bảo mật để giảm thiểu khả năng tấn công của hacker là các vấn đề như: như chọn hệ điều hành, quản lý cơ sở dữ liệu, máy chủ web sẽ chạy ứng dụng... nhưng ngay cả bản thân website đó cũng có thể có một lỗ hổng bảo mật lớn. Một trong những lỗ hổng này là SQL Injection. SQL injection có thể hiểu là một cách tấn công, khi đó những kẻ tấn công lợi dụng lỗ hổng khi xử lý dữ liệu nhập trong các trang web để "tiêm vào" (inject) các câu lênh SQL bất hợp pháp và thi hành các câu lệnh đó. Hậu quả của việc này thường rất nghiêm trọng vì những kẻ tấn công có thể dựa vào đó thực hiện các câu lệnh thêm, sửa, xóa... trên cơ sở dữ liệu (Lê Đình Duy, 2003) . XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ CẢNH BÁO SỰ THAY ĐỔI NỘI DUNG TRANG WEB Hình 2. Mô hình tấn công SQL Injection 1.5.1.2. Các dạng tấn công bằng SQL Injection SQL Injection có 4 dạng tấn công thường gặp, đó là: sử dụng câu lệnh INSERT, sử dụng câu lệnh SELECT, vượt qua kiểm tra lúc đăng nhập, sử dụng các stored-procedures. + Dạng tấn công vượt qua kiểm tra đăng nhập: Đây là dạng tấn công mà tin tặc có thể vượt qua các trang đăng nhập, làm được điều này nhờ vào việc khai thác 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. Một ví dụ điển hình, thông thường khi cho phép người dùng truy cập vào các trang web được bảo mật, 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, hệ thống sẽ tiến hành kiểm tra tên đăng nhập cùng với mật khẩu có hợp lệ hay không để quyết định cho phép thực hiện tiếp hay không. Trong trường hợp này, người ta có thể dùng hai trang, một trang HTML để hiển thị form nhập liệu và một trang ASP dùng để xử lí thông tin nhập từ phía người dùng. 19 Ví dụ: CODE
Username:
Password:
CODE <% Dim vUsrName, vPassword, objRS, strSQL vUsrName = Request.Form("fUSRNAME") vPassword = Request.Form("fPASSWORD") strSQL = "SELECT * FROM T_USERS " & _ "WHERE USR_NAME=' " & vUsrName & _ " ' and USR_PASSWORD=' " & vPassword & " ' " Set objRS = Server.CreateObject("ADODB.Recordset") objRS.Open strSQL, "DSN=..." If (objRS.EOF) Then Response.Write "Invalid login." Else Response.Write "You are logged in as " & objRS("USR_NAME") End If Set objRS = Nothing %> Thoạt nhìn, đoạn mã dường như không chứa bất cứ một lỗ hổng về an toàn nào. Người dùng không thể đăng nhập mà không có tên đăng nhập và mật khẩu hợp lệ. Tuy nhiên, đoạn mã này thực sự không an toàn và là tiền đề cho một lỗi SQL injection. Chính điều này đã cho phép những kẻ tấn công có thể điều khiển câu truy vấn tiếp theo sẽ được thực hiện. Ví dụ, nếu nhập chuỗi sau vào trong ô nhập liệu username và password của trang login.htm là: ' OR ' ' = ' '. Lúc này, câu truy vấn sẽ được gọi thực hiện là: SELECT * FROM T_USERS WHERE USR_NAME ='' OR ''='' and
- Xem thêm -

Tài liệu liên quan