Đồ án : PHƯƠNG PHÁP TẤN CÔNG VÀO TRANG WEB VÀ CÁCH PHỒNG CHỐNG, XÂY DỰNG ỨNG DỤNG DEMO SQL INJECTION

Chia sẻ: Ngô Thanh Lưu | Ngày: | Loại File: DOC | Số trang:64

1
493
lượt xem
197
download

Đồ án : PHƯƠNG PHÁP TẤN CÔNG VÀO TRANG WEB VÀ CÁCH PHỒNG CHỐNG, XÂY DỰNG ỨNG DỤNG DEMO SQL INJECTION

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Ngày nay, khi Internet được phổ biến rộng rãi ,các tổ chức đề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à vi phạm ứ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....

Chủ đề:
Lưu

Nội dung Text: Đồ án : PHƯƠNG PHÁP TẤN CÔNG VÀO TRANG WEB VÀ CÁCH PHỒNG CHỐNG, XÂY DỰNG ỨNG DỤNG DEMO SQL INJECTION

  1. MỞ ĐẦU Ngày nay, khi Internet được phổ biến rộng rãi ,các tổ chức đề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à vi phạm ứ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 kh i 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 dịch 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 cập thông tin của Internet, thì các tài liệu chuyên môn bắt đầu đề cập đến nhiều vấn đề bảo đảm và an toàn dữ liệu cho các máy tính kết nối vào mạng Internet. Vì thế 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 là cần thiết nhằm mục đích bảo vệ dữ liệu, bảo vệ thông tin doanh nghiệp, người dùng và bảo vệ hệ thống. Tuy đã có nhiều cố gắng từ các nhà lập trình Web nhưng vẫn không thể đảm bảo 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 một vài khuôn khổ 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 ứng dụng. Vì vậy, đề tài này được thực hiện với mục đích tìm hiểu, phân tích các l ỗ hổng bảo mật trong các ứng dụng Web. * Mục tiêu và nhiệm vụ - Tìm hiểu các vấn đề liên quan đến hoạt động của một ứng dụng Web. - Tìm hiểu các kỹ thuật tấn công ứng dụng Web cơ bản như: XSS, Session, DOS. - Tìm hiểu và nghiên cứu cụ thể kỹ thuật tấn công chèn câu truy vấn SQL Injection và các giải pháp phòng ngừa. - Xây dựng ứng dụng Web Demo thể hiện các cách tấn công của kỹ thuật SQL Injection và đưa ra giải pháp fix các lỗ hổng trong chương trình. - Kết quả thực hiện: nắm rõ bản chất và cách thức tấn công vào ứng dụng Web, áp dụng vào thực tế để hạn chế thấp nhất khả năng bị tấn công các ứng dụng Web sẽ triển khai. * Đối tượng và phạm vi nghiên cứu - Cở sở lý thuyết liên quan của hoạt động ứng dụng Web. - Các mô hình tấn công đặc trưng vào ứng dụng Web. -1-
  2. - Kỹ thuật vượt qua cửa sổ đăng nhập. - Kỹ thuật lợi dụng các câu lệnh Select, Insert. - Kỹ thuật dựa vào các Stored Procedure. - Các giải pháp phòng ngừa ở mức quản trị và người lập trình ứng dụng. - Ngôn ngữ ASP.NET, SQL Server 2005. * Phương pháp nghiên cứu - Tổng hợp tìm hiểu, nghiên cứu từ các tư liệu liên quan. - Phân tích, đánh giá các kỹ thuật tấn công. Đưa ra các giải pháp phòng ngừa ở các mức. - Thiết kế table cơ sở dữ liệu, xây dựng ứng dụng Web Demo thể hiện các cách tấn công của SQL Injection. * Ý nghĩa thực tiễn của đề tài - Về mặt lý thuyết, đề tài thể hiện rõ các cách tấn công cơ bản thường đ ược hacker sử dụng để tấn công vào các ứng dụng Web từ trước đến nay, và có thể sử dụng tiếp trong thời gian dài trong tương lai. - Về mặt thực tiển, với các cách tấn công của hacker như đã tìm hiểu, nghiên cứu trong báo cáo này, nếu áp dụng tốt các phương pháp phòng ngừa trong đề tài nêu ra sẽ góp phần nâng cao khả năng bảo vệ các ứng dụng Web trước nguy cơ tấn công của kẽ xấu. * Bố cục của báo cáo đồ án tốt nghiệp Báo cáo tốt nghiệp được chia thành 3 chương: - Chương 1: TỔNG QUAN VỀ WEB VÀ CÁC NGUY CƠ TẤN CÔNG ỨNG DỤNG WEB - Chương 2: MỘT SỐ PHƯƠNG PHÁP TẤN CÔNG VÀO TRANG WEB VÀ CÁCH PHỒNG CHỐNG - Chương 3: XÂY DỰNG ỨNG DỤNG DEMO SQL INJECTION -2-
  3. CHƯƠNG 1 TỔNG QUAN VỀ WEB VÀ CÁC NGUY CƠ TẤN CÔNG ỨNG DỤNG WEB 1.1 TỔNG QUAN VỀ WEB 1.1.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 Netscape Navigator. 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-mial… Tốc độ phát triển của các kỹ thuật xây dựng ứng dụng web cũng phát triển rất nhanh. Trước đây những ứng dụng web thường được xây dựng bằng CGI (Common Gateway Interface) được chạy trên các trình chủ Web và có thể kết nối vào các cơ sở dữ liệu đơn giản trên cùng máy chủ. Ngày nay, ứng dụng web thường được viết bằng Java và chạy trên máy chủ phân tán, kết nối đến nhiều nguồn dữ liệu. Dù có nhiều biến thể, một ứng dụng Web thông thường được cấu trúc như một ứng dụng ba lớp: Hình 1.1 Một số ứng dụng web thường có kiến trúc -3-
  4. • 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. Hình 1.2 Mô hình hoạt động của một ứng dụng Web Kiến trúc một ứng dụng Web Trong đó : Trình duyệt: Internet Explorer, Nétcap Navigator - Trình chủ : Apache, IIS…. - Hệ quản trị cơ sỡ dữ liệu : SQL, Server, MySQL, DB2, Access… - Bên cạnh đó, một gải pháp dùng để bảo vệ một hệ thống mạng thường được sử dụng là bức tường lửa, nó có vai trò như là lớp rào chắn bên ngoài một hệ thống mạng vì chức năng chính của firewall là kiểm soát luồng thông tinh giữa các máy tính. Có thể xem là firewall như một bộ lộc thông tin, nó xác đ ịnh cho phép -4-
  5. một máy tính này được truy xuất đến một máy tính khác hay không, hay một mạng này có được truy xuất đến mạng kia hay không. Người ta thường dùng firewall vào mục đích: • Cho phép hoặc cấm những dịch vụ truy xuất ra ngoài. • Cho phép hoặc cấm những dịch vụ từ ngoài truy nhập vào trong. • Kiểm soát địa chỉ truy nhập, cấm địa chỉ truy nhập. 1.1.2 Các vấn đề liên quan đến ứng dụng Web 1.1.2.1 Nguồn gốc phát triển ứng dụng Web Các ứng dụng Web được phát triển từ nhiều nguồn khác nhau, nên các lỗ hổng, các lỗi bảo mật cũng rất đa dạng. Tuy vậy, các ứng dụng Web chủ yếu được phát triển từ các nguồn chính sau đây: • Người lập trình tự phát triển ứng dụng Web (Sử dụng các ngôn ngữ kịch bản để tạo ứng dụng, phát triển rộng rãi mà ít quan tâm đến quá trình phát triển ứng dụng an toàn. Thiếu đội ngũ lập trình với kỹ năng nhận biết phát triển ứng dụng tránh các lỗi bảo mật). • Sử dụng ứng dụng Web từ mã nguồn mở (Thường không theo dõi và cập nhật các bản vá lỗi bảo mật). • Phát triển ứng dụng Web từ một ứng dụng mở khác (Trường hợp này thường không kiểm tra lỗi bảo mật ứng dụng củ trước khi phát triển tiếp, nên vẫn tồn tại các lỗi bảo mật). 1.2.1.2 Sự phát triển đa dạng của ứng dụng Web Ngày nay với sự phát triển không ngừng của Internet, các ứng dụng Web cũng phát triển đa dạng trên nhiều lĩnh vực: Cổng thông tin điện tử, báo tin tức điện tử, giao dịch tài chính ngân hàng, thị trường chứng khoán, trang thông tin điện tử doanh nghiệp,… 1.1.3 Mô tả hoạt động của ứng dụng Web Đầu tiên trình duyệt sẽ gửi một yêu cầu (request) đến trình chủ Web thông qua các lệnh cơ bản GET, POST….của giao thức HTTP, trình chủ lúc này có thể cho thực thi một chương trình được xây dựng từ nhiều ngôn ngữ như: C,C+ +,java… hoặc trình chủ yêu cầu bộ diển dịc thực thi các trang ASP, JSP…theo yêu cầu của trình khách. -5-
  6. Tùy theo các tác vụ của chương trình được cài đặt mà nó xử lý, tính toán kết nối đến cơ sở dữ liệu, lưu các thông tin do trình khách gữi đến… và từ đó tr ả về cho trình khách 1 luồng dữ liệu cố định dạng theo giao thức HTTP nó gồm 2 phần: • Header mô tả các thông tin về gói dữ liệu và 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ì. Theo mô hình ở hình với firewall, luồng thông tin giữa trình chủ và trình khách là luồng thông tin hợp lệ. Vì thế, nếu hacker tìm thấy vài lỗ hổng trong ứng dụng Web thì firewall không còn hữu dụng trong việc ngăn chặn hacker này. Do đó, các kĩ thuật tấn công vào một hệ thống mạng ngày nay đang dần tập trung vào những sơ suất (hay lổ hổng) trong quá trình tạo ứng dụng của những nhà phát triển Web hơn là tấn công trực tiếp và hệ thống mạng, hệ điều hành. Tuy nhiên, hacker cũng có thể lợi dụng các lổ hổng Web để mở rộng sự tấn công của mình vào các hệ thống không liên quan khác. 1.2 CÁC KHÁI NIỆM THUẬT NGỮ LIÊN QUAN 1.2.1 Hacker Hacker là một thuật ngữ dùng để chỉ những chuyên gia về máy tính. Hacker không tạo ra các kẻ hở cho hệ thống, nhưng hacker lại là những người am hiểu về hệ điều hành, hệ quản trị dữ liệu, các ngôn ngữ lập trình…. Họ sử dụng kiến thức của mình trong việc tìm tòi và khai thác các lỗ hổng của hệ thống mạng. Một số hacker chỉ dừng lại việc phát hiện và thông báo lổi tìm đ ược cho những nhà bảo mật hay người phát triển chương trình, họ được xem như là WhiteHat (Hacker mũ trắng). Một số Hacker dựa vào lỗ hổng thực hiện việc khai thác trái phép nhằm mục đích phá hoại hay mưu lợi riêng, những người này bị xem như là BlackHat (Hacker mũ đen). 1.2.2 Giao thức HTTP và HTTPS HTTP là chữ viết tắt từ HyperText Transfer Protocol (giao thức truyền tải siêu văn bản). Nó là giao thức cơ bản mà World Wide Web sử dụng. HTTP xác định cách các thông điệp (các file văn bản, hình ảnh đồ hoạ, âm thanh, video,…) đ ược định dạng và truyền tải ra sao, và những hành động nào mà các Web server và các trình duyệt Web phải làm để đáp ứng các lệnh. Khi gõ một địa chỉ Web URL vào trình duyệt Web, một lệnh HTTP sẽ được gửi tới Web server để ra lệnh và hướng dẫn nó tìm đúng trang Web được yêu cầu và kéo về mở trên trình duyệt Web. -6-
  7. Tóm lại, HTTP là giao thức truyền tải các file từ một Web server vào một trình duyệt Web để người dùng có thể xem một trang Web đang hiện diện trên Internet. HTTP là một giao thức ứng dụng của bộ giao thức TCP/IP (các giao thức nền tảng cho Internet). HTTP header là phần đầu (header) của thông tin mà trình khách và trình chủ gữi cho nhau. Những thông tin của trình khách gữi cho trình chủ được gọi là HTTP requests (yêu cầu) còn trình chủ gữi cho trình là HTTP responses (trả lời). Thông thường một HTTP header gồm nhiều dòng, mỗi dòng dựa trên tham số và giá trị. Một số tham số có thể dùng trong cả header yêu cầu và header trả lời, còn số khác chỉ được dùng riêng trong từng loại. GET /tintuc/homnay.asp HTTP/1.1 Accept: */* Accept-Language: en-us Connection: Keep-Alive Host: localhost Referer: http://localhost/lienket.asp User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) Accept-Encoding: gzip, deflate Dòng đầu là dòng yêu cầu cho biết phương thức yêu cầu (GET hoặc POST), địa chỉ yêu cầu (/tintuc/homnay.asp) và phiên bản HTTP . Tiếp theo là các tham số. Chẳng hạn như : Accept Language: cho biết ngôn ngữ dùng trong trang web. • • Host: cho biết địa chỉ của máy chủ. • Referer: Cho biết địa chỉ của trang web tham chiếu tới. • Header của HTTP request sẽ kết thúc bằng một dòng trống. HTTP/1.1 200 OK Server: Microsoft-IIS/5.0 Date: Thu, 13 Jul 2000 05:46:53 GMT Content-Length: 2291 Content-Type: text/html -7-
  8. Set-Cookie: ASPSESSIONIDQQGGGNCG=LKLDFFKCINFLDMFHCBCBMFLJ; path=/ Cache-control: private ... Dòng đầu là dòng trạng thái, để cho biết phiên bản HTTP được dùng, mã trạng thái (200) và trạng thái (OK) Tiếp theo là các tham số. Tiếp theo là một dòng trống để báo hiệu kết thúc header, tiếp theo là phần thân của HTTP response. HTTPS (Securety HTTP), là một sự kết hợp giữa giao thức HTTP và giao thức bảo mật SSL hay TLS cho phép trao đổi thông tin một cách bảo mật trên Internet. Các kết nối HTTPS thường được sử dụng cho các giao dịch thanh toán trên World Wide Web và cho các giao dịch nhạy cảm trong các hệ thống thông tin công ty, trong đó dữ liệu cần phải được an toàn. HTTPS không nên nhầm lẫn với Secure HTTP (S-HTTP) quy định trong RFC 2660. Theo hai khái niệm ở trên, ta có thể thấy nếu trang Web có địa chỉ bắt đ ầu bằng “ http:// ” thì có nghĩa rằng trang Web không an toàn. Nói cách khác, một người nào đó có thể nghe lén những gì trao đổi với trang Web và có thể lấy những dữ kiện gửi đi từ máy của bạn đến trang Web như tên tuổi, địa chỉ, số thẻ tín dụng,… Nhưng nếu địa chỉ của trang Web bắt đầu bằng “ https:// ” thì điều này có nghĩa là liên lạc an toàn với server của trang Web và người ta không thể nghe lén và trộm những thông tin gửi đi. 1.2.3 Session HTTP là giao thức hướng đối tượng tổng quát, phi trạng thái, nghĩa là HTTP không lưu trạng thái làm việc giữa trình duyệt với trình chủ. Sự thiếu sót này đã gây khó khăn cho một số ứng dụng Web, bởi vì trình chủ không biết được trước đó trình duyệt đã có những trạng thái nào. Vì thế để giải quyết vấn đề này, ứng dụng web đưa ra một khái niệm phiên làm việc(Session). Còn SessionID là một chuỗi để chứng thực phiên làm việc. Một số trình chủ sẽ cung cấp một SessionID cho người dùng khi họ xem trang web trên trình chủ. Để duy trì phiên làm việc thì SesionID thường được lưu vào: • Biến trên URL -8-
  9. • Biến ẩn form • Cookie Phiên làm việc chỉ tồn tại trong một khoảng thời gian cho phép, thời gian này được cấu hình quy định tại trình chủ hay với ứng dụng thực thi. Trình chủ sẽ tự động giải phóng phiên làm việc để khôi phục lại tài nguyên của hệ thống. 1.2.4 Cookie Cookie là những phần dữ liệu nhỏ có cấu trúc được chia sẻ giữa trình chủ và trình duyệt giữa người dùng. Các Cookie được lưu trữ dưới dạng file dữ liệu nhỏ dạng text, được ứng dụng tạo ra để lưu trữ, truy tìm, nhận biết các thông tin về người dùng đã ghé thăm trang web và những vùng họ đi qua trong trang. Những thông tin này có thể bao gồm tên, định dạng người dùng, mật khẩu, sở thích, thói quen.. cookie đ ược trình duyệt của người dùng chấp nhận lưu trên đĩa cứng của máy mình, tuy nhiên không phải lúc nào trình duyệt cũng hỗ trợ cookie, mà còn tùy thuộc vào người dùng có chấp nhận chuyện lưu trữ đó hay không. Ở những lần truy cập sau đến trang web đó, ứng dụng có thể dùng l ại những thông tin trong cookie (như thông tin liên quan đến việc đăng nhập vào Yahoo Messenger..) mà người dùng không phải làm lại những thao tác đăng nhập hay phải cung cấp lại các thông tin khác. • Persistent và Secure • Persistent và Non-Secure • Non-Persistent và Secure • Non-Persistent và Non-Secure Persistent cookie được lưu trữ dưới dạng tập tin.txt (ví dụ trình duyệt Nestcape Navigator sẽ lưu các cookie thành một tập tin cookie.txt còn Internet Explorer s ẽ lưu thành nhiều tập tin *.txt trong đó mỗi tập tin là một cookie) trên máy khách trong một khoảng thời gian xác định. Non-persistent cookie thì được lưu trữ trên bộ nhớ RAM của máy khách và sẽ bị hủy khi đóng trang Web hay nhận được lệnh từ trang web. Secure cookie chỉ có thể được gửi thông tin qua HTTPS (SSL). Non-Secure cookie có thể được gữi bằng hai giao thức HTTPS hay HTTP. Thực chất là đố với sercure cookie thì trình chủ sẻ cung cấp chế độ truyền bảo mật. -9-
  10. Các thành phần của một cookie gồm : Domain Flag Path Secure Expiration Name Value 64.3.40.151.16 www.redhat.com FALSE FALSE 1154029490 Apache 018996349247 409  Domain: Tên miền của trang web đã tạo cookie (ví dụ trên là www.redhat.com)  Flag: Mang giá trị TRUE/FALSE-Xác định các máy khác với cùng tên miền có được truy xuất đến cookie hay không.  Path: Phạm vị các địa chỉ có thể truy xuất cookie. Ví dụ : Nếu path là”/tracuu”thì các địa chỉ trong thư mục /tracuu cũng như tất cả các thư mục con của nó như /tracuu/baomat có thể truy xuất đến cookie này. Còn nếu giá trị là “/” thì cookie có thể truy xuất đến tất cả địa chỉ thuộc miền trang web tạo cookie.  Secure: Mang giá trị TRUE/FALSE. Xác định đây là một secure cookie hay không nghĩa là kết nối có sử dụng SSL hay không.  Expiration: Thời gian hết hạn của cookie, đực tính bằng giây kể từ 00:00:00 giờ GMT ngày 01/01/1970. Nếu giá trị này không được thiết lập thì trình duyệ sẽ hiểu đây là non-persistent cookie và chỉ lưu trong bộ nhớ RAM và sẽ xóa nó khi trình duyệt bị đóng.  Name: Tên biến (trong trường hợp này là Apache)  Value: Với cookie được tạo ở trên thì giá trị của Apache là 64.3.40.151. 16018996349247480 và ngày hết hạn là 27/07/2006, của tên miền http://www.redhat.com. Máy trạm có thể lưu tối đa là 300 cookies. Kích thước tối đa của cookie là 4kb. Số cookie tối đa cho một tên miền là 20 cookie. Các máy chủ không mong máy trạm vượt quá những giới hạn này. Khi giới hạn 300 cookie hoặc 20 cookie mỗi tên miền của máy chủ bị vượt quá, máy trạm sẽ xoá cookie được sử dụng ít nhất. 1.2.5 Proxy -10-
  11. Proxy cung cấp cho người sử dụng truy xuất Internet những nghi thức đặc biệt hoặc một tập những nghi thức thực thi trên dual_homed host hoặc basion host. Những chương trình client của người sử dụng sẽ qua trung gian proxy server thay thế cho server thật sự mà người sử dụng cần giao tiếp. Proxy server cần xác định những yêu cầu từ client và quyết định đáp ứng hay không đáp ứng, nếu yêu cầu được đáp ứng, proxy server sẽ kết nối với server thật thay cho client và tiếp tục chuyển tiếp những yêu cầu từ client đến server, cũng như trả lời server đến client. Vì vậy proxy server giống cầu nối trung gian giữa server và client. 1.2.6 Firewall Một giải pháp dùng để bảo vệ một hệ thống mạng thường được sử dụng là bức tường lửa - Firewall (hoạt động dựa trên gói IP do đó kiểm soát việc truy nhập của máy người sử dụng). Nó có vai trò như là lớp rào chắn bên ngoài một hệ thống mạng, vì chức năng chính của firewall là kiểm soát luồng thông tin giữa các máy tính. Có thể xem firewall như một bộ lọc thông tin, nó xác định và cho phép một máy tính này có được truy xuất đến một máy tính khác hay không, hay một mạng này có được truy xuất đến mạng kia hay không. Người ta thường dùng firewall vào mục đích: • Cho phép hoặc cấm những dịch vụ truy xuất ra ngoài. • Cho phép hoặc cấm những dịch vụ từ bên ngoài truy nhập vào trong. • Kiểm soát địa chỉ truy nhập, cấm địa chỉ truy nhập. 1.3 SƠ LƯỢC VỀ QUÁ TRÌNH TẤN CÔNG CỦA HACKER 1.3.1 Các giai đoạn tấn công Quá trình tấn công của một hacker có thể được khái quát qua 3 giai đoạn: • Thu thập thông tin. • Phân tích và hành động. • Dừng và xoá dấu vết. -11-
  12. FootPrinting Pilfering Creating Backdoors (Tạo cổng hậu) (In dấu ấn) (Khai thác hệ thống) Scanning Privilege Escalation Covering Tracks (Xoá dấu vết) (Quét mạng) (Nâng quyền hệ thống) Enumeration Gaining Access (Điểm danh mạng) (Đột nhập hệ thống) Hình 1.3 Quá trình tấn công của hacker  Giai đoạn 1: Thu thập thông tin Gồm 3 bước chính FootPrinting, Scanning, Enumeration. FootPrinting (In dấu chân): Là bước mà kẻ tấn công thu thập thông tin về đ ối tượng, người dùng, doanh nghiệp, các chi nhánh của công ty, máy chủ,… bao gồm các chi tiết Domain Name, Địa chỉ IP, Networking Prototcols, thông tin về người quản trị,…Đây là một bước quan trọng cho hacker ,đôi khi với những thông tin này hacker đã có thể làm chủ hệ thống. Công cụ hỗ trợ: Nslookup, Smart Whois, cụ kiếm), UseNet, Google Earth, Search engines (công tìm http://www.networksolution.com http:// www. archive. org Sanning (Quét thăm dò mạng): Phần lớn thông tin quan trọng từ server có được từ bước này. Xác định hệ điều hành, xác định hệ thống có đang chạy không, tìm hiểu các dịch vụ đang chạy hay đang lắng nghe, tìm hiểu các lỗ hổng, kiểm tra các cổng, xác định các dịch vụ sử dụng giao thức TCP và UDP,... Công cụ hổ trợ như LANGuard, xScan, NetScanToolsiNetToolsNmap. Enumeration (Điểm danh mạng - liệt kê tìm lỗ hổng): Đến đây, các attacker bắt đầu kiểm soát server sơ bộ. Bước này là tìm kiếm những tài nguyên được bảo vệ kém, hoặc tài khoản người dùng mà có thể sử dụng để xâm nhập, bao gồm các mật khẩu mặc định, các script và dịch vụ mặc định. Rất nhiều người quản tr ị mạng không biết đến hoặc không sửa đổi lại các giá trị này của thiết bị. Công cụ hỗ trợ: DumpSec, NbtScan, SuperScan, NetviewX, UserInfo,…  Giai đoạn 2: Phân tích và hành động -12-
  13. Gaining Access (Đột nhập hệ thống): Hacker sẽ tìm cách truy cập vào mạng bằng những thông tin có được ở ba bước trên. Phương pháp đ ược s ử dụng ở đây có thể là tấn công vào lỗi tràn bộ đệm, lấy và giải mã file password, hay brute force (kiểm tra tất cả các trường hợp) password, đột nhập qua các cổng mở,… Công cụ hỗ trợ: Password eavesdropping, Tcpdump, L0phtcrack, NAT, Pwdump2 (NT), Remote Buffer Overflows, Brute-force password attacks,… Privilege Escalation (Nâng quyền hệ thống): Trong trường hợp hacker xâm nhập đựợc vào mạng với một tài khoản nào đó, 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. Kẻ xâm nhập có thể truy cập vào các files hay folder d ữ liệu mà tài khoản người sử dụng ban đầu không được cho phép truy cập. Khi hacker đạt được mức độ quyền truy cập đủ cao, họ có thể cài đặt phần mềm như là Backdoors và Trojan horses, cũng như cho phép truy cập sâu hơn và thăm dò. Mục đích chung của hacker là chiếm được quyền truy cập ở mức độ quản trị. Khi đã đạt được mục đích đó, họ có toàn quyền điều khiển hệ thống mạng. Công cụ hỗ trợ: L0phtcrack, Password cracking, BUG, Exploits. John và Riper là hai chương trình crack password rất hay được sử dụng. Có thể sử dụng Sniffer để bắt các gói tin, từ đó phân tích tìm ra mật khẩu. Pilfering (Khai thác hệ thống): Thông tin lấy từ bước trên đủ để hacker định vị server và điều khiển server. Nếu bước này không thành công, hãy đến bước DoS (Denial of Service). Công cụ hỗ trợ: Rhost, Configuration files, Registry, Telnet, Ftp,…  Giai đoạn 3: Dừng và xoá dấu vết Creating Backdoors (Tạo cổng hậu): Để chuẩn bị cho lần xâm nhập tiếp theo được dễ dàng hơn. Hacker để lại Backdoors, tức là một cơ chế cho phép hacker truy nhập trở lại bằng con đường bí mật không phải tốn nhiều công sức khai phá, bằng việc cài đặt Trojan hay tạo user mới. Công cụ hỗ trợ: Ở đây là các loại Trojan, keylog, creat rogue user accounts, schedule batch jobs, replace apps with Trojan. VNC, BO2K, … Covering Tracks (Xoá dấu vết): Sau khi đã có những thông tin cần thiết, hacker tìm cách xoá dấu vết, xoá các file LOG của hệ điều hành (vì hệ thống luôn ghi nhận những hành động của người dùng) làm cho người quản lý không nhận ra hệ thống đã bị xâm nhập hoặc có biết cũng không tìm ra kẻ xâm nhập là ai. Công cụ hỗ trợ: Clear logs, Zap, Event log GUI, rootkits, file streaming, ... 1.3.2 Khảo sát ứng dụng Web -13-
  14. Khi phạm vi ứng dụng của các Web application ngày càng phổ biến thì khả năng xuất hiện lỗi và bị tấn công càng cao. Trong các lĩnh vực hacking, hack Web application luôn là một công việc được hacker nhắm đến nhằm mục đích phục vụ một yêu cầu nào đó của họ hay để phá hoại. Trước hết hacker tiến hành thu thập thông tin ở mức trên về hạ tầng của mục tiêu. Thu thập một số thông tin quan trọng như có bao nhiêu server, mô hình c ủa các Web server, các client nào sẽ tương tác với ứng dụng Web, kiểu giao tiếp thông tin (transport) và thông qua các cổng (port) nào, những site liên quan đến việc thực hiện chức năng của site mục tiêu, ...  Tiếp đó hacker khảo sát ứng dụng Web: Một trong những phương pháp khảo sát khá phổ biến từ trước đến giờ, đó là xem mã nguồn và lợi dụng các lỗi cho phép xem mã nguồn các ngôn ngữ Web thông dụng hiện nay như Active Server Pages (ASP), Common Gateway Interface (CGI), ColdFusion Server (CFM), Hypertext Preprocessor (PHP). Sử dụng một số phép thử như thêm dấu ’ vào các url theo khuôn dạng truy ền vào giá trị rất phổ biến, đưa vào những mẫu thử cơ bản của form xác thực đăng nhập để khảo sát các lỗi SQL Injection.  Đưa vào các thông tin “lạ” ở các form ứng dụng Web hay trên url để xem các thông điệp chuyển xuống cho người dùng khi ứng dụng có lỗi. Các thông báo lỗi thông thường tiết lộ các chi tiết kỹ thuật có thể cho phép kẻ tấn công biết được điểm yếu của hệ thống.  Sử dụng các công cụ để đưa các trang Web mục tiêu vào dò tìm các lỗi của người phát triển ứng dụng để từ đó xây dựng nên kịch bản tấn công và chọn cách tấn công cụ thể.  Tìm hiểu sâu về các chức năng của ứng dụng Web. Tìm hiểu cách thực hiện của các phần trong ứng dụng, đặc biệt như các order input, confirmation, order tracking.  Tìm hiểu luồng di chuyển của thông tin. Các thông tin tương tác giữa client và server, các thông tin tương tác với database. Hiện nay việc viết mã đ ể thực hiện việc giao tiếp thông tin thường phải đảm bảo được tính hiệu quả (nhanh) và bảo mật (có thể sẽ chậm hơn). Thường thì tính hiệu quả đ ược ưu tiên hơn do đó có thể sẽ phát sinh lỗi trong quá trình đó và giúp hacker có thể lợi dụng các lỗi để đoạt quyền điều khiển hệ thống. -14-
  15. 1.3.3 Tấn công mục tiêu Việc thu thập thông tin là vấn đề quan trọng cho việc tấn công vào một hệ thống máy mục tiêu. Cho dù hacker tấn công theo phương diện phần cứng hay qua ứng dụng thì việc thu thập vẫn là cần thiết. Sau khi đã khảo sát và thu thập thông tin mục tiêu, hacker bắt đầu thực hiện tấn công nhằm xâm nhập vào hệ thống lấy thông tin, đưa thông tin xấu vào, dành quyền kiểm soát,… Có thể trong những bước đã nêu hacker không cần phải đi qua theo thứ tự hay qua hết, nhưng việc nắm rõ thông tin của máy mục tiêu luôn là điều kiện tiên quyết để dẫn đến thành công trong việc tấn công. Tùy vào thông tin thu thập được mà hacker sẽ quyết định tấn công theo kỹ thuật nào, xây dựng một kịch bản tấn công phù hợp.  Một số kịch bản tấn công: Tấn công đồng loạt vào các trang tin điện tử thuộc Chính phủ, thành phố, bộ, sở ban ngành,… làm thay đổi nội dung, đưa thông tin sai lệch,… Tấn công vào các ứng dụng Web mua bán, giao dịch trực tuyến để đánh cắp thông tin cá nhân, thẻ tín dụng,… Tấn công ứng dụng Web, đặt mã độc tại trang Web, sử dụng máy chủ bị lỗi để thực hiện hành vi tấn công khác.  Mục đích tấn công cơ bản của hacker trên các ứng dụng Web như sau: Tấn công với mục đích chính trị (tấn công các trang tin điện tử thuộc chính phủ, thành phố, các sở ban ngành,…). Tấn công với mục đích lợi nhuận (các trang thương mại điện tử, tài chính, ngân hàng, các doanh nghiệp, …). Tấn công với mục đích cá nhân.  Hậu quả tấn công của hacker trên các ứng dụng Web: Dù tấn công dưới bất kỳ với mục đích gì thì hậu quả ảnh hưởng đều rất đáng kể, thiệt hại to lớn về uy tín, kinh tế, gây thiệt hại cho người dùng mạng, bị đánh cắp thông tin, có thể bị hacker lợi dụng để tấn công một tổ chức khác, tận dụng phát tán lừa đảo,… Nếu không thành công trong việc xâm nhập bằng các kỹ thuật phổ biến, thì Dos là cách thức mà hacker thường lựa chọn để làm cho hệ thống không thể hoạt động được. -15-
  16. Do đó, việc bảo mật cho một hệ thống cần đòi hỏi sự kết hợp không chỉ của riêng nhà quản trị hệ thống mà còn của nhà thiết kế ứng dụng và sự hợp tác của cả những khách hàng sử dụng ứng dụng. CHƯƠNG 2 KỸ THUẬT TẤN CÔNG VÀO CÁC LỖ HỔNG TRÊN WEBSITE VÀ CÁCH PHÒNG CHỐNG 2.1 THỰC TRẠNG AN NINH MẠNG TẠI VIỆT NAM HIỆN NAY VÀ DỰ BÁO XU HƯỚNG AN NINH MẠNG NĂM 2011 2.1.1 Tình hình phát triển Internet tới Việt Nam đến tháng 1/2011 Tại Việt Nam, nhiều doanh nghiệp phải đối mặt với việc hình thành và lan tràn nhiều biến thể virut mới, tấn công trên mạng ngày càng nở rộ với mục đích vụ lợi cá nhân cũng như mục đích kinh tế, thậm chí ảnh hưởng đ ến hoạt động kinh doanh và an ninh quốc gia. Các website trong nước liên tiếp bị tấn công với mức độ phức tạp gia tăng mà điển hình là việc báo điện tử Vietnamnet bị tấn công nhiều lần và đánh sập vào ngày 22/11/2010. Hình thức lừa đảo trực tuyến các email bằng tiếng việt đã bắt đầu xuất hiện và phát tán rộng…đã đ ặt ra yêu c ầu đối với sự nhận thức đúng đắn về mức độ cấp thiết, tối quan trọng của an ninh mạng, bảo mật thông tin. Mạng Internet Việt Nam còn tiềm ẩn rất nhiều những nguy cơ về mặt an ninh an toan thông tin. Hang loat website lớn bị tân công với mức độ phức tap ngay ̀ ̀ ̣ ́ ̣ ̀ cang gia tăng. Rât nhiêu cac website cua cac tổ chức, doanh nghiêp con tồn tai cac lỗ ̀ ́ ̀ ́ ̉ ́ ̣ ̀ ̣́ hông an toan thông tin. Nhiêu lỗ hông an toan thông tin mới được phat hiên. Tội ̉ ̀ ̀ ̉ ̀ ́ ̣ phạm mạng đang diễn ra với tốc độ nhanh hơn, quy mô hơn, tính chuyên nghiệp, trình độ kỹ thuật ngay cang cao hơn ̀ ̀ Số lượng các cuộc tấn công web tăng gấp đôi:  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 ba lần so với 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 và t ổ chức có tên miền .vn bị các hacker nước ngoài thăm dò, tấn công.  Tính đến cuối quý I/2011, số người sử dụng Internet tại Việt Nam đạt 27.559.006 người, chiểm 31,9 % dân số; số thuê bao internet trên cả -16-
  17. nước ước tính đạt 3,8 triệu thuê bao. Đa số các doanh nghiệp và các tổ chức có hệ thống mạng và website giới thiệu, quảng bá thương hiệu (191.667 tên miền .vn và hàng triệu tên miền thương mại). Có rất nhiều doanh nghiệp đã ứng dụng thanh toán trực tuyến vào công việc kinh doanh, giao dịch,…  Các website bị tấn công chủ yếu là các website kinh doanh trực tuyến, ngân hàng, các tổ chức cung cấp dịch vụ ,…( Nguyên nhân: chủ yếu là sự yếu kém trong quản trị website và không thường xuyên kiểm soát lỗ hổng, ít quan tâm đếncác cảnh báo an ninh của các cơ quan, tổ chức có chức năng đảm bảo an ninh an toàn thông tin quốc gia Rât nhiêu website trong nước tôn tai cac lỗ hông an toan thông tin ở mức độ ́ ̀ ̀ ̣ ́ ̉ ̀ nguy hiêm cao. Đa số các trang web lớn của Việt Nam đều có lỗ hổng bảo mật và ̉ có thể bị chiếm quyền điều khiển. Hiên nay, trên mang Internet Viêt Nam có đên ̣ ̣ ̣ ́ 90% cac website được xây dựng trên công nghệ ASP.NET và sử dung dich vụ IIS ́ ̣ ̣ 6.0, đây là lỗ hông lớn nhât và vân chưa được khăc phuc. Trong năm 2010 đã ghi ̉ ́ ̃ ́ ̣ nhân hơn 1000 website ở nước ta bị tân công từ cac lỗ hông đang tôn tai trên cac ̣ ́ ́ ̉ ̀ ̣ ́ website và cac lỗ hông trên cac may chủ hệ thông. Cac website cua cac tổ chức tai ́ ̉ ́ ́ ́ ́ ̉ ́ ̀ chinh, ngân hang, chứng khoan vân tôn tai rât nhiêu lỗ hông. ́ ̀ ́ ̣̃̀́ ̀ ̉ Các hành vi phạm tội vẫn là:  Dùng thủ đoạn Phishing, trojan horse, spyware để lấy cắp địa chỉ email, thông tin thẻ tín dụng và thông tin cá nhân như tên, địa chỉ,số điện thoại, số thẻ an ninh xã hội, thông tin giấy phép lái xe…  Mua bán thông tin thẻ tín dụng trên mạng internet.  Trộm cắp tiền từ thẻ tín dụng và tài khoản, làm thẻ tín dụng giả rút tiền từ máy ATM.  Rửa tiền: chuyển tiền từ tài khoản trộm cắp được sang tài khoản e-money tại e-gold, e-passport.  Lừa đảo qua quảng cáo, bán hàng trực tuyến trên mạng internet, trong hoạt động thương mại điện tử,trong mua bán ngoại tệ,cổ phiếu qua mạng, đánh bạc và rửa tiền, thực hiện hành vi trốn thuế.  Buôn bán ma túy, mại dâm qua mạng internet, truyền bá khiêu dâm trên mạng, thực hiện các hoạt động khủng bố, phá hoại, ... -17-
  18. 2.1.2 Các cuộc tấn công của hacker và những thiệt hại mà nó gây ra hiện nay tại Việt Nam Trong hai năm trở lại đây, khủng hoảng kinh tế nên bọn tội phạm vẫn nhằm vào các hệ thống Công Nghệ Thông Tin của lĩnh vực tài chính ngân hàng, với mục tiêu kiếm được nhiều tiền hơn, nên chúng có xu hướng hoàn thiện kỹ thuật tấn công để tấn công các mục tiêu này và chúng đã thành công ở một số hệ thống. Trong năm 2009, chỉ tính riêng hơn 40 vụ án công nghệ cao bị phanh phui, thiệt hại mà loại tội phạm này gây ra đã lên đến hàng ngàn tỉ đồng. Thiệt hại do lộ thông tin bí mật của các doanh nghiệp, tổ chức không có thể ước tính được. Các cơ quan chức năng đã phối hợp điều tra,truy tố xét xử một số vụ tấn công nghiêm trọng Vụ 2 đối tượng người Malaysia là Cham Tack Choi và Tan Wei Hong sử dụng thẻ tín dụng Visa, Master giả để thanh toán tại khách sạn Metropol (thanh toán số tiền hơn 500 triệu đồng). Ngày 8/01/2009, TAND Hà Nội đã tuyên phạt Cham Tack Choi (SN 1984) và Tan Wei Hong (SN 1981), quốc tịch Malaysia mỗi người 7 năm tù giamvề tội Trộm cắp tài sản. Tháng 10/2009: Vụ Nguyen Hoawrd quốctịch Mỹ, ArialFradin quốc tịch Canada vào Việt Nam đi du lịch đã dùng thẻ AMEX hết hạn, báo mất, khóa giao dịch ở ngân hàng phát hành rút tiền tại các máy ATM để chiếm đoạt. Nguyen Howard và đồng bọn đã rút 1,4 tỷ đồng, Arial Fardin đã rút 800 triệu Điều tra, khám phá những vụ án TPCNC Vụ Công ty Golden Rock: Trưởng Văn phòng đại diện của Công ty này tại mạng năm 2010 vẫn tiếp tục nóng bỏng, xuất hiện việc các cá nhân, tổ chức thuê hăcker điều hành mạng máy tính “Ma” để tấn công nhằm phá hủy hệ thống Công Nghệ Thông Tin của đối thủ cạnh tranh Và vụ mới đây nhất, Ngay 22/11/2010 là ngay đâu tiên hacker băt đâu tân công ̀ ̀ ̀ ́̀́ vao hệ thông website cua bao Vietnamnet. Đây là cuôc tân công với quy mô lớn, liên ̀ ́ ̉ ́ ̣́ tuc và keo dai. Nó đã phá huy hâu như gân hêt cơ sở dữ liệu đã lưu trữ 10 năm cua ̣ ́ ̀ ̉ ̀ ̀ ́ ̉ ́ bao VietNamNet. -18-
  19. Hình 2.1 Giao diện báo điện tử VietNamNet bị 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 2010 là 4.300 (năm 2009 là 3.500) 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. Lỗ hông liên quan ̉ đên phân mêm Adobe Acrobat PDF được phat hiên nhiêu nhât. Ở nước ta vấn đề ́ ̀ ̀ ́ ̣ ̀ ́ lỗ hổng của hệ thống, ứng dụng vẫn chưa được các quản trị hệ thống cập nhật các bản vá kịp thời. Thực trạng tân công vao cac website cua hacker không mới so với những năm ́ ̀ ́ ̉ trước tuy nhiên đến nay các website tại Việt Nam vẫn chưa được đầu tư về nhân lực, kinh phí để được bảo vệ một cách tốt nhất. Nguyên nhân chủ yếu là sự yếu kém trong quản trị website và không thường xuyên kiểm soát lỗ hổng, khoan trăng ́ ́ vân đề bao đam ATTT cho nơi đăt website, ít quan tâm đến các cảnh báo an ninh ́ ̉ ̉ ̣ của các cơ quan, tổ chức có chức năng đảm bảo an ninh an toàn thông tin quốc gia. Tại Việt Nam, năm 2010, đã có gân 60 triệu lượt máy tính bị nhiễm virus. ̀ Trung bình một ngày có hơn 160.000 lượt máy tính bị nhiễm virus. Đây là con số đáng báo động về tình hình máy tính bị nhiễm virus nước ta. Đã có hơn 57.000 dòng virus mới xuất hiện. Virus lây lan nhiều nhất qua các máy tính vân là virus ̃ Conficker. Trong năm 2010, đã có tới 6,5 triệu lượt máy tính bị nhiễm loai virus ̣ -19-
  20. nay. Có hơn 1,4 triệu lượt máy tính đã bị nhiễm dòng virus giả mạo thư mục, giả ̀ mạo file ảnh, file word, excel... Các virus siêu đa hình tiếp tục đứng trong top 3 những virus lây nhiễm nhiều nhất trong năm và là nỗi ám ảnh với người sử dụng máy tính tại Việt Nam. Với khả năng “thay hình đổi dạng” để lẩn trốn, 2 dòng virus Vetor và Sality đã lan truyền trên 5,9 triệu lượt máy tính. Có thể nói, chính sự chủ quan, hạn chế trong nhận thức, thiếu hụt về đ ầu t ư an ninh thông tin (ANTT) của các doanh nghiệp, người sử dụng đã tạo tiền đề cho sự gia tăng các mối đe dọa và nguy cơ bảo mật. Vấn đề ANTT có tầm quan trọng sống còn đối với các doanh nghiệp, đặc biệt khi các giao dịch trực tuy ến đã trở nên ngày càng phổ biến hơn tại Việt Nam. Lời khuyên của tôi là không nên cắt giảm ngân sách cho an ninh bảo mật mà thay vì đó cần phải đầu tư vào đó một cách khôn ngoan hơn. 2.1.3 Dự báo xu hướng an ninh mạng năm 2011 An ninh mạng năm 2011 vẫn tiếp tục nóng bỏng, xuất hiện việc các cá nhân, tổ chức thuê hacker điều hành mạng máy tính “Ma” để tấn công nhằm phá hủy hệ thống CNTT của đối thủ cạnh tranh.  Kỹ thuật tấn công tinh vi hơn, hoàn hảohơn; mã độc ngày càng “độc” hơn… sẽ tiếp tục đặ tra những thách đố mới cho năm 2010.  Kinh tế càng khủng hoảng, tin tặc càng tìm cách xoay sở kiếm tiền, hoạt động cuả gới tội phậm công nghệ cao sẽ tinh vi hơn, thủ đoạn hơn để làm sao kiếm được nhiều tiền.  Mạng xã hội (Twiter, spacebook,..) đang phát triển mạnh mẽ không chỉ là trào lưu nhất thời, đã trở thành một nền tảng mới rất hiệu quả giúp con người giao tiếp, liên lạcvới nhau. Đây chính là một môi trường thuậnlợi để giới tội phạm công nghệ cao thử nghiệm các thủ đoạn, kỹ thuật tấn công đe dọa an ninh mạng.  Tiếp tục xuất hiện nhiều chương trình diệt virus giả.  Hình thành nhiều mạng máy tính Ma (bootnet) được điều khiển bởi các hăcker có chuyên môn cao, có nguy cơ xuất hiện các cuộc chiến lớn trên mạng (chiến tranh mạng).  Điện toán đám mây sẽ là đích nhắm mới của giới tội phạm, đặc biệt là khi mạng 3G bắt đầu được đưa vào hoạt động tại ViệtNam. -20-

CÓ THỂ BẠN MUỐN DOWNLOAD

Đồng bộ tài khoản