Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 37 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
37
Dung lượng
1,1 MB
Nội dung
Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection LỜI CẢM ƠN Đầu tiên, tôi xin chân thành cảm ơn ban giám hiệu, quy thầy cô trường cao đẳng CNTT hữu nghị Việt Hàn, đặc biệt là thầy cô trong khoa Khoa học máy tính đã tận tình giảng dạy và truyền đạt cho nhóm những kiến thức quý báu trong những năm học vừa qua. Xin chân thành gửi lời cảm ơn đến thầy Lê Tự Thanh giảng viên khoa Khoa Học Máy Tính đã tận tình hướng dẫn, giúp đỡ nhóm chúng tôi trong quá trình định hướng, nghiên cứu và hoàn thiện đồ án này. Kết quả cuối cùng là kết quả của những tháng ngày cố gắng, nỗ lực của nhóm, sự giúp đỡ của gia đình, nhà trường, bạn bè và đặc biệt là sự hướng dẫn tận tình của thầy Lê Tự Thanh để tôi có thể hoàn tất một cách tốt so với những gì đã đặt ra. Trong quá trình thực hiện đồ án, mặc dù đã có nhiều cố gắng tuy nhiên vẫn còn có nhiều thiếu sót và hạn chế, kính mong các thầy (cô) và các bạn đóng góp ý kiến của mình để hệ thống được hoàn thiện hơn. Cuối cùng, một lần nữa, tôi xin cảm ơn tất cả đã giúp đỡ để có thể hoàn thành tốt đồ án này. Xin chân thành cảm ơn! Đà Nẵng, tháng 03 năm 2012 Nhóm 12 thực hiện Vương Đình Khoa Phạm Thị Thảo Nhóm 12 Trang i CCMM03A Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection MỤC LỤC LỜI CẢM ƠN i MỤC LỤC ii DANH MỤC CÁC TỪ VIẾT TẮT v CERT Computer Emegency Respornse Team v LỜI MỞ ĐẦU vi PHẦN 1: TỔNG QUAN AN NINH MẠNG 1 1.1 Thực trạng an ninh trên Internet 1 1.1.1 Thực trạng an ninh Internet thế giới 1 1.1.2 Thực trạng an ninh Internet tại Việt Nam 1 1.2 Các hình thức tấn công mạng hiện nay 3 1.2.1. Quá trình thăm dò tấn công 3 1.2.1.1. Thăm dò (Reconnaissace) 4 1.2.1.2. Quét hệ thống (Scanning) 4 1.2.1.3. Chiếm quyền điều khiển (Gainning access) 4 1.2.1.4. Duy trì điều khiển hệ thống (Maitaining access) 5 1.2.1.5. Xoá dấu vết (Clearning tracks) 5 1.3. Các biện pháp bảo mật mạng 5 1.3.1. Mã hoá, nhận dạng, chứng thực người dùng và phần quyền sử dụng 5 1.3.1.1. Mã hoá 5 1.3.1.2. Các giải thuật mã hoá 6 1.3.1.3. Chứng thực người dùng 8 1.3.2. Bảo mật máy trạm 10 1.3.3. Bảo mật truyền thông 11 1.3.4. Các công nghệ và kỹ thuật bảo mật 12 Nhóm 12 Trang ii CCMM03A Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection 1.3.5. Bảo mật ứng dụng 13 1.3.6. Thống kê tài nguyên 14 PHẦN 2: GIỚI THIỆU VỀ KỸ THUẬT SQL INJECTION VÀ MỘT SỐ VÍ DỤ CÁC KỸ THUẬT CỦA SQL INJECTION 16 2.1 Giới thiệu 16 2.2 Định nghĩa SQL Injection là gì? 16 2.3 Các dạng tấn công SQL Injection 17 2.3.1 Dạng tấn công vượt qua kiểm tra đăng nhập 17 2.3.2 Tấn công sử dụng câu lệnh SELECT 19 2.3.3 Tấn công sử dụng câu lệnh INSERT 20 PHẦN 3: PHÒNG TRÁNH TẤN CÔNG SQL INJECTION 23 3.1 Đối với website (dành cho lập trình viên): 24 3.2 Đối với web server (dành cho quản trị mạng): 24 3.3 Đối với database server (dành cho quản trị mạng): 24 3.4 Hạn chế bị phát hiện lỗi 24 3.5 Phòng chống từ bên ngoài 25 3.6 Cải thiện dữ liệu nhập vào 26 3.7 Một số lời khuyên khác: 27 3.8 Một số công cụ quét và kiểm tra lỗi SQL Injection hiệu quả 27 KẾT LUẬN 29 TÀI LIỆU THAM KHẢO 30 NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN 31 Nhóm 12 Trang iii CCMM03A Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection Hình 1.1 Quá trình thăm dò vào một hệ thống mạng 3 Hình 1.2 Quét trộm đối với cổng không hoạt động 4 Hình 1.3 Đối với cổng hoạt động 4 Hình 1.4 Quá trình mã hoá 5 Hình 1.5 Mô hình giải thuật băm 6 Hình 1.6 Giải thuật mã hoá đồng bộ/đối xứng 7 Hình 1.7 Giải thuật mã hóa không đồng bộ/không đối xứng 8 Hình 1.8 Chứng thực bằng user và password 8 Hình 1.9 Hoạt động của CHAP 9 Hình 1.10 Mô hình tổng quát firewall 12 Hình 1.11 Bảo mật bằng VPN 13 Hình 1.12 Thống kê tài nguyên bằng Monitoring 15 Hình 2.1 Mô hình tấn công SQL Injection 16 Hình 2.2 Tấn công SQL Injection 17 Hình 2.3 Tấn công vượt qua kiểm tra đăng nhập 18 Hình 2.4 website bị lỗi sau khi nhúng dấu ‘ 20 Hình 2.5 Một đoạn mã ví dụ tấn công bằng câu lệnh Insert 21 Hình 3.1 Phòng tránh tấn công SQL 23 Nhóm 12 Trang iv CCMM03A Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection DANH MỤC CÁC TỪ VIẾT TẮT. Từ viết tắt. Ý nghĩa. CERT Computer Emegency Respornse Team PIN Personal Identity Number DNS Domain Name System NIC Network Interface Card IIS Internet Information Server WML Wireless Markup Language. CMS Content Management System. SSO Single Sign On. AOP Aspect Oriented Programming. GUI Graphical User Interface. CERT Computer Emegency Respornse Team Nhóm 12 Trang v CCMM03A Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection LỜI MỞ ĐẦU Cùng với sự phát triển của công nghệ thông tin, công nghệ mạng máy tính và sự phát triển của mạng internet ngày càng phát triển đa dạng và phong phú. Các dịch vụ trên mạng đã 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 thông tin trên Internet cũng đa dạng về nội dung và hình thức, trong đó có rất nhiều thông tin cần được bảo mật cao hơn bởi tính kinh tế, tính chính xác và tính tin cậy của nó. Bên cạnh đó, các hình thức phá hoại mạng cũng trở nên tinh vi và phức tạp hơn. Do đó đối với mỗi hệ thống, nhiệm vụ bảo mật được đặt ra cho người quản trị mạng là hết sức quan trọng và cần thiết. Những vụ tấn công nhằm vào tất cả các máy tính có mặt trên Internet, các máy tính của công ty lớn, các trường đại học, các cơ quan nhà nước, các tổ chức quan sự, nhà băng Một số vụ tấn công có quy mô khổng lồ (có tới 100.000 máy tính bị tấn công ). Hơn nữa, nhưng con số này chỉ là phần nổi của tảng băng. Một phần rất lớn các vụ tấn công không được thông báo, vì nhiều lý do, trong đó có thể kể đến nỗi lo bị mất uy tín, hoặc đơn giản những người quản trị hệ thông không hay biết những cuộc tấn công đang nhằm vào hệ thông của họ. Với những công cụ tự động tìm lỗi hổng tuy giúp rất nhiều cho những nhà lập trình web nhưng vẫn không thể ngăn chặn toàn bộ vì công nghệ web đang phát triển nhanh chóng (chủ yếu chú trọng đến yếu tố thẩm mĩ, yếu tố tốc độ ) nên dẫn đến nhiều khuyết điểm mới phát sinh. Sự tấn công không nằm trong khuổn khổ vài kĩ thuật đã phát hiện, mà linh động và tăng lên tùy vào những sai sót của nhà quản trị hệ thống cũng như của những người lập trình. Chính vì vậy, thông qua việc nghiên cứu phương pháp tấn SQL Injection nhóm chú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 đề an ninh mạng giúp cho việc học tập và nghiên cứu. Nhóm 12 xin chân thành cảm ơn sự hướng dẫn của ThS. Lê Tự Thanh đã trực tiếp hướng dẫn đồ án và giúp nhóm có thể hoàn thành đồ án này. Sau đây là nội dung đồ án: Nhóm 12 Trang vi CCMM03A Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection PHẦN 1: TỔNG QUAN AN NINH MẠNG 1.1 Thực trạng an ninh trên Internet. 1.1.1 Thực trạng an ninh Internet thế giới. Hệ thống quy mô lớn như Internet thì một khe hở hay lỗi hệ thống đều có nguy cơ gây ra thiệt hại lớn. Theo thống kê của CERT( Computer Emegency Respornse Team) thì các vụ tấn công tăng gấp 2, thậm chí gấp 3 sau mỗi năm. Cụ thể như sau: Năm 1989: Có 200 vụ tấn công, truy nhập trên mạng được báo cáo. Năm 1991: 400 vụ được thống kê. Năm 1993: 1400 vụ. Năm 1994: 2241 vụ. Những năm hai nghìn: Con số được thống kê không chính thức là có hang chục nghìn vụ tấn công và truy nhập Internet mỗi năm. Số vụ tấn công ngày càng tăng, cùng với đó các phương thức tấn công cũng biến hóa khôn lường. 1.1.2 Thực trạng an ninh Internet tại Việt Nam Trong năm 2009, ở nước ta có hơn 1000 (1.037) website bị hacker tấn công, tăng hơn gấp đôi so với năm 2008 (461 website ) và gấp 3 lần năm 2007 ( 342 website ). Trong 3 tháng đầu năm 2010 đã có hơn 300 website của các cá nhân tổ chức có tên miền .vn bị hacker nước ngoài thăm dò và tấn công. Lỗ hổng an ninh của các hệ thống ngày càng được phát hiện nhiều hơn Số lượng các điểm yếu an ninh trong năm 2009 là 4300 (năm 2008 là 3500) có tới 30% lỗ hổng có mức độ nguy hiểm cao. Gần một nửa (49%) số lỗ hổng an ninh vẫn chưa có các bản vá do nhà cung cấp dịch vụ phát hành. Ở nước ta vấn đề lỗ hổng của hệ thống vẫn chưa được quản trị hệ thống cập nhật các bản vá kịp thời Mạng Internet là môi trường có vô số các vụ tấn công. Nhìn chung có thể chia các mối đe dọa an ninh đó thành 4 loại: Nhóm 12 Trang 1 CCMM03A Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection Mất dữ liệu tích hợp: dữ liệu bị sửa chữa, thay thế khi truyền trên mạng. Mất dữ liệu bảo mật: những người không có quyền cũng có thể đọc được dữ liệu. Từ chối dịch vụ: dịch vụ bị ngưng trệ bởi sự tấn công của Hacker. Mất khả năng điều khiển: những người có quyền sử dụng dịch vụ không thể tương tác được với dịch vụ. Người sử dụng thường cố gắng tìm ra những lỗ hổng của phần mềm hoặc là cấu hình lại hệ thống nhằm bảo đảm an toàn thông tin. Trong một số trường hợp Hacker không muốn cho truy suất hệ thống bằng cách xây dựng một loạt các thủ tục nhằm mục đích đưa ra thông báo “từ chối dịch vụ”. Việc tấn công vào mạng sử dụng thông báo từ chối truy cập được thực hiện bằng cách khiến cho phần mềm dịch vụ bị quá tải bởi phải xử lý quá nhiều yêu cầu. Khi đó hệ thống sẽ trở nên rất bận và sẽ thiếu thời gian để làm việc khác do đó buộc phải từ chối truy cập dịch vụ. Tuy có nhiều cách để xâm nhập vào mạng nhưng một trong những cách dễ dàng nhất là chặn dòng dữ liệu trao đổi giữa các thành viên trong mạng. Do thông tin được truyền trong mạng dưới dạng văn bản thuần tuý nên việc rình bắt thông tin sẽ giúp cho Hacker lấy được mật khẩu của mạng một cách dễ dàng. Còn kiểu tấn công mạng nữa hay được sử dụng là giả dạng bằng cách giả vờ là một người sử dụng có thẩm quyền của mạng thông qua việc giả lập địa chỉ IP. Điều đáng nói ở đây là trong hầu hết các trường hợp, việc bảo đảm độ tin cậy chỉ dựa trên một phía (qua password, hoặc PIN) mà những thông tin này lại rất dễ bị sao chép. Do vậy để đảm bảo độ tin cậy, việc thiết lập độ tin cậy phải được thực hiện từ hai phía bằng việc sử dụng một thẻ thông minh (smart card) kết hợp với PIN (Personal Identity Number) nhằm tăng mức độ an toàn của mạng. Một cách khác là tạo ra những phần mềm thông minh để truy xuất đến một mạng đích nào đó thông qua việc lấy các thông tin thải loại ở trong sọt rác hoặc trong đĩa mềm bỏ đi của người quản trị mạng. Kiểu này chỉ được áp dụng khi mà Hacker liên quan khá mật thiết đến người điều hành mạng và do đó cũng rất dễ truy tìm ra Hacker khi mạng bị tấn công. Nhóm 12 Trang 2 CCMM03A Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection Còn một cách để Hacker xâm nhập vào mạng là sử dụng một tập hợp các thông tin dễ ghi nhớ. Rất nhiều mạng sử dụng tên miền rất dễ nhớ như: System01.Domain.Org. Bằng việc truy xuất qua server quản lý hệ tên miền (DNS: Domain Name System), Hacker có thể thâm nhập vào mạng rất dễ dàng bằng cách hướng yêu cầu của người sử dụng đến một server khác và lấy trộm những thông tin cần thiết. Do đó để đảm bảo rằng người sử dụng truy xuất đúng server cần phải bổ xung cả việc kiểm tra độ tin cậy đối với server. Điều này được thực hiện bằng cách sử dụng chứng chỉ số trên server. Để tránh việc gói tin bị thay thế khi truyền trên mạng, bắt buộc gói tin phải được tích hợp trước khi truyền thông qua việc bổ xung một thông điệp băm. Việc mã hoá của thông điệp này giúp cho thông điệp bảo đảm được độ chính xác. Trong hầu hết các trường hợp những cuộc tấn công vào mạng thành công không phải do kỹ thuật mà do con người. Thay cho sử dụng kỹ thuật để đột phá vào mạng, Hacker sẽ thử liên hệ với người nắm giữ thông tin mà họ cần,điều khiển họ thông qua việc khai thác những thói quen của họ và như thế những người này sẽ không thông báo về những thông tin bị rò gỉ bởi chính họ cho cấp có thẩm quyền. 1.2 Các hình thức tấn công mạng hiện nay. 1.2.1. Quá trình thăm dò tấn công Hình 1.1 Quá trình thăm dò vào một hệ thống mạng Nhóm 12 Trang 3 CCMM03A Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection 1.2.1.1. Thăm dò (Reconnaissace) Thăm dò mục tiêu là một trong những bước qua trọng để biết những thông tin trên hệ thống mục tiêu. Hacker sử dụng kỹ thuật này để khám phá hệ thống mục tiêu đang chạy trên hệ điều hành nào, có bao nhiêu dịch vụ đang chạy trên các dịch vụ đó, cổng dịch vụ nào đang đóng và cổng nào đang mở, gồm hai loại: Passive: Thu thập các thông tin chung như vị trí địa lý, điện thoại, email của các cá nhân, người điều hành trong tổ chức. Active: Thu thập các thông tin về địa chỉ IP, domain, DNS,… của hệ thống 1.2.1.2. Quét hệ thống (Scanning) Quét thăm dò hệ thống là phương pháp quan trọng mà Attacker thường dùng để tìm hiểu hệ thống và thu thập các thông tin như địa chỉ IP cụ thể, hệ điều hành hay các kiến trúc hệ thống mạng. Một vài phương pháp quét thông dụng như: quét cổng, quét mạng và quét các điểm yếu trên hệ thống. Hình 1.2 Quét trộm đối với cổng không hoạt động Hình 1.3 Đối với cổng hoạt động 1.2.1.3. Chiếm quyền điều khiển (Gainning access) o Mức hệ điều hành/ mức ứng dụng o Mức mạng o Từ chối dịch vụ Nhóm 12 Trang 4 CCMM03A [...]... tiêm vào dạng: ' ; EXEC xp_cmdshell ‘cmd.exe dir C: ' - Lúc này hệ thống sẽ thực hiện lệnh liệt kê thư mục trên ổ đĩa C:\ cài đặt server Việc phá hoại kiểu nào tuỳ thuộc vào câu lệnh đằng sau cmd.exe Nhóm 12 Trang 21 CCMM03A Đồ án môn học an ninh mạng Nhóm 12 Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection Trang 22 CCMM03A Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection. .. thống mạng Ví dụ Task manager Monitoring: Phân tích logfile để kiểm tra các tài nguyên mạng được sử dụng như thế nào Ví dụ các syslog server Nhóm 12 Trang 15 CCMM03A Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection PHẦN 2: GIỚI THIỆU VỀ KỸ THUẬT SQL INJECTION VÀ MỘT SỐ VÍ DỤ CÁC KỸ THUẬT CỦA SQL INJECTION 2.1 Giới thiệu - Khi các bạn triển khai các ứng dụng Website trên mạng. .. Trang 29 CCMM03A Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection TÀI LIỆU THAM KHẢO Tài liệu Internet [1] Danh sách các website bị lỗi SQL injection: http://www.security.com.vn/ [2] SQL Injection FAQ: http://www.sqlsecurity.com/DesktopDefault.aspx? tabindex=2&tabid=3 [3]Advanced SQL Injection : http://www.nextgenss.com/papers/advanced _sql_ injection. pdf [4]Preventing SQL. .. những Scan lỗ hổng bảo mật như: SQL Injection, Nessus, ISS Internet Scanner, Retina, SAINT và Sara, bao gồm các tính năng khác N-sealth là phiên bản chỉ dành riêng cho Windows và không thể download Source Trang chủ: http://www.nstalker.com/products/fre…d-free-edition Nhóm 12 Trang 28 CCMM03A Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection KẾT LUẬN An ninh mạng và những... kỳ ai và do đó nó giữ được tính bảo mật, với dạng mã hóa này được ứng dụng trong chữ ký điện tử Nhóm 12 Trang 7 CCMM03A Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection Hình 1.7 Giải thuật mã hóa không đồng bộ/không đối xứng Các giải thuật o RSA (Ron Rivest, Adi Shamir, and Leonard Adleman) o DSA (Digital Signature Standard) o Diffie-Hellman (W.Diffie and Dr.M.E.Hellman)... // 1 Nhóm 12 Trang 26 CCMM03A Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection Trong khi viết một cơ sở dữ liệu hướng ứng dụng, hay khi triển khai một ứng dụng mã nguồn mở cần chú ý đến các vấn đề như thế và thiết kế để xác minh đúng đầu vào Biện pháp này sẽ giúp bảo vệ bạn từ các tấn công SQL Injection không trở thành mồi ngon cho các attacker Hiểu biết về cách phòng chống... giản là như thế này: SQL Injection là 1 kỹ thuật cho phép những kẻ tấn công lợi dụng vào lổ hỏng trong việc kiểm tra các dữ liệu trong các Nhóm 12 Trang 16 CCMM03A Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection ứng dụng website 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 (do người viết phần mềm ứng... mạng, ứng dụng cụ Nhóm 12 Trang 12 CCMM03A Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection thể Khi xem xét lựa chọn một firewall cần tập trung tìm hiểu tập các chức năng của firewall như tính năng lọc địa chỉ, gói tin Bảo mật bằng VPN (Virtual Private Network) VPN là một mạng riêng ảo được kết nối thông qua mạng công cộng cung cấp cơ chế bảo mật trong một môi trường mạ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 - Một câu lệnh INSERT có thể có cú pháp dạng: INSERT INTO TableName VALUES('Value One', 'Value Two', 'Value Three') Nhóm 12 Trang 20 CCMM03A Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection - Nếu hacker nhập vào tại: Value One... ứng dụng cho việc tìm kiếm các lỗ hổng bảo mật trên máy chủ Web Phần mềm tự động update thường xuyên hơn các phần mềm miễn phí như Whisker/libwhisker hay Nikto, nhưng nhiều lỗi mới trên Web cũng không phát hiện kịp thời và nhanh chóng Phần mềm bao Nhóm 12 Trang 27 CCMM03A Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection gồm hơn 30.000 lỗ hổng có thể Scan và khai thác trực . và giúp nhóm có thể hoàn thành đồ án này. Sau đây là nội dung đồ án: Nhóm 12 Trang vi CCMM03A Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection PHẦN 1: TỔNG QUAN AN. cấu hình mạng, ứng dụng cụ Nhóm 12 Trang 12 CCMM03A Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection thể. Khi xem xét lựa chọn một firewall cần tập trung tìm hiểu tập. án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection LỜI MỞ ĐẦU Cùng với sự phát triển của công nghệ thông tin, công nghệ mạng máy tính và sự phát triển của mạng internet