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 + Biến ẩn form +
Trang 1MỤC LỤC
MỤC LỤC 1
MỤC LỤC HÌNH 6
GIỚI THIỆU 7
CHƯƠNG I: TỔNG QUAN VỀ WEB VÀ CÁC NGUY CƠ TẤN CÔNG ỨNG DỤNG WEB 9
I.1 TỔNG QUAN VỀ WEB 9
I.1.1 Khái niệm ứng dụng Web 9
I.1.2 Các vấn đề liên quan đến ứng dụng Web 11
I.1.3 Mô tả hoạt động của ứng dụng Web 11
I.2 CÁC KHÁI NIỆM THUẬT NGỮ LIÊN QUAN 12
I.2.1 Hacker 12
I.2.2 HTTP và HTTPS 12
I.2.3 Session 14
I.2.4 Cookie 15
I.2.5 Poxy 16
I.2.6 Firewall 17
I.3 GIỚI THIỆU SƠ LƯỢC VỀ CÁC KĨ THUẬT TẤN CÔNG ỨNG DỤNG WEB .17
I.3.1 Kiểm soát truy cập Web(Web Access Control) 17
I.3.2 Chiếm hữu phiên làm việc(Session Mangement) 17
I.3.2.1 Ấn định phiên làm việc (Session Fixation) 17
I.3.2.2 Đánh cắp phiên làm việc (Session Hijacking) 17
I.3.2.3 Lợi dụng các thiếu sót trong việc kiểm tra dữ liệu nhâp hợp lệ (Input validation) 18
I.3.2.3.1 Kiểm tra tính đúng đắn của dữ liệu bằng ngôn ngữ phía trình duyệt (Client-Side validation) 18
Trang 2I.3.2.3.2 Tràn bộ đệm (Buffer OverFlow) 18
I.3 SƠ LƯỢC VỀ QUÁ TRÌNH TẤN CÔNG CỦA HACKER 18
I.3.1 Các giai đoạn tấn công 18
I.3.2 Khảo sát ứng dụng Web 20
I.3.3 Tấn công mục tiêu 22
I.4 SƠ LƯỢC VỀ CÁC KĨ THUẬT TẤN CÔNG ỨNG DỤNG WEB 23
I.4.1 Kiểm soát truy cập web (Web Access Control) 23
I.4.2 Chiếm hữu phiên làm việc (Session Mangement) 23
I.4.2.1 Ấn định phiên làm việc (Session Fixation) 23
I.4.2.2 Đánh cắp phiên làm việc (Session Hijacking) 23
I.4.3 Lợi dụng các thiếu sót trong việc kiểm tra dữ liệu nhập hợp lệ (Input validation) 23
I.4.3.1 Kiểm tra tính đúng đắn của dữ liệu bằng ngôn ngữ phía trình duyệt (Client-Side validation) 23
I.4.3.2 Tràn bộ đệm (Buffer OverFlow) 23
I.4.3.3 Mã hoá URL (URL Encoding) 23
I.4.3.4 Kí tự Meta (Meta-characters) 24
I.4.3.5 Vượt qua đường dẫn (Path Traversal): 24
I.4.3.6 Chèn mã lệnh thực thi trên trình duyệt nạn nhân (Cross- Site Scripting): .24
I.4.3.7 Thêm câu lệnh hệ thống (OS Command Injection): 24
I.4.3.8 Chèn câu truy vấn SQL (SQL Injection) 24
I.4.3.9 Ngôn ngữ phía máy chủ (Server side includes) 24
I.4.3.10 Kí tự rỗng (Null Characters) 25
I.4.3.11 Thao tác trên tham số truyền (Paramet manipulation) 25
I.5 Để lộ thông tin (informational) 25
I.6 Từ chối dich vụ (Denial of service (DoS) 25
Trang 3Chương II: KỸ THUẬT TẤN CÔNG VÀO CÁC LỖ HỔNG TRÊN WEBSITE VÀ
CÁCH PHÒNG CHỐNG 27
II.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 27
II.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 28
II.1.3 Dự báo xu hướng an ninh mạng năm 2011 30
II.2 SƠ LƯỢC VỀ MỘT SỐ BIỆN PHÁP KIỂM TRA AN TOÀN WEB 31
II.2.1 Webscarab 31
II.2.2 WebGoat 34
II.2.3 Burp Suite 35
II.3 CÁC KỸ THUẬT TẤN CÔNG CỦA HACKER VÀO LỖ HỎNG TRÊN TRANG WEB VÀ BIỆN PHÁP PHÒNG CHỐNG 35
II.3.1 Tấn công chèn câu truy vấn SQL Injection và các biện pháp phòng chống 35 II.3.1.1 SQL Injection là gì? 35
II.3.1.2 Các dạng tấn công SQL Injection 36
II.3.1.2.1 Dạng tấn công vượt qua kiểm tra đăng nhập 36
II.3.1.2.2 Dạng tấn công sử dụng câu lệnh SELECT 38
II.3.1.2.3 Dạng tấn công sử dụng câu lệnh INSERT 39
II.3.1.2.4 Dạng tấn công sử dụng stored-procedures 40
II.3.1.3 Cách phòng tránh 40
II.3.1.3.1 Kiểm soát chặt chẽ dữ liệu nhập vào 41
II.3.1.3.2 Thiết lập cấu hình an toàn cho hệ quản trị cơ sở dữ liệu 42
II.3.2 Chèn mã lệnh thực thi trên trình duyệt Cross-Site Scripting 43
II.3.2.1Tấn công Cross-Site Scripting 43
II.3.2.2 Phương pháp tấn công XSS truyền thống 45
II.3.2.3 Cách phòng ngừa 46
Trang 4II.3.3 Chiếm hữu phiên làm việc (Session Management) 47
II.3.3.1 Tổng quan về Session ID 47
II.3.3.2 Ấn định phiên làm việc 48
II.3.3.3 Đánh cắp phiên làm việc 50
II.3.3.4 Cách phòng ngừa 50
II.3.4 Từ chối dịch vụ (DOS) 51
II.3.4.1 Khái niệm tấn công kiểu DoS (Denial of Service) 51
II.3.4.2 Các kỹ thuật tấn công 52
II.3.4.2.1 Khái niệm Tcp bắt tay ba chiều 52
II.3.4.2.2 Lợi dụng TCP thực hiện phương pháp SYN flood truyền thống 53
II.3.4.2.3 Tấn công vào băng thông 53
II.3.4.2.4 Kiểu tấn công vào tài nguyên hệ thống 55
II.3.4.3 Cách phòng ngừa 56
II.3.5 MỘT SỐ KĨ THUẬT TẤN CÔNG KHÁC 57
II.3.5.1 Mã Hóa URL (URL Encoding) 57
II.3.5.1.1 Khái niệm 57
II.3.5.1.2 Một số biện pháp phòng chống 58
II.3.5.2 Kiểu tấn công vượt đường dẫn 58
II.3.5.2.1 Khái niệm 58
II.3.5.2.2 Một số biện pháp phòng chống 58
II.3.5.3 TẤN CÔNG DỰA VÀO KÍ TỰ RỖNG 58
II.3.5.3.1 Khái niệm 58
II.3.5.3.2 Một số biện pháp phòng chống 58
II.3.5.4 Ngôn ngữ phía trình chủ 59
II.3.5.4.1 Khái niệm 59
II.3.5.4.3 Cách tấn công 59
Trang 5II.3.5.4.4 Biện pháp phòng chống 59
II.4 TỔNG KẾT QUÁ TRÌNH TẤN CÔNG CỦA HACKER 60
II.4.1 Thu thập thong tin ở mức hạ tầng của mục tiêu 60
II.4.2 Khảo sát ứng dụng web 61
II.4.3 Tấn công 62
II.5 TỔNG KẾT CÁC BIỆN PHÁP PHÒNG CHỐNG 63
II.5.1 Với những nhà quản trị mạng 63
II.5.2 Với những nhà thiết kế ứng dụng WEB 64
II.5.3 Với những người sừ dụng Web 66
Trang 6MỤC LỤC HÌNH
Hình I.1 Một số ứng dụng web thường có kiến trúc 9
Hình I.2 Mô hình hoạt động của một ứng dụng Web 10
Hình 1.3 Quá trình tấn công của hacker 18
Hình II.1 Giao diện báo điện tử VietNamNet bị tấn công 29
Hình II.2 Quá trình thực hiện XSS 46
Hình II.3 Quá trình tấn công người dùng bằng kỹ thuật ấn định session 48
Hình II.4 Tấn công Session ID trên tham số URL 49
Hình II.5 Cơ chế thiết lập kết nối trước khi truyền số liệu 52
Hình II.6 Tấn công DoS truyền thống 53
Hình II.7 Tấn công DDoS 54
Hình II.8 Tấn công DrDoS 55
Trang 7GIỚI THIỆ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ớithiệ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ịchtrự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ềungườ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àihoặ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ácphươ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ậpthô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àomạng Internet là cần thiết nhằm mục đích bảo vệ dữ liệu, bảo vệ thông tin doanhnghiệ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ể đảmbả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átsinh 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ùyvà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 ứngdụ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ổngbả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ư: SQL Injection,Session, DOS
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 SQLInjection 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ụngWeb sẽ triển khai
Trang 8* Đố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
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áchtấ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 đượchacker 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ứutrong 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àinê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 luận văn tốt nghiệp
Luận văn 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 VÀ DOS
Trang 9CHƯƠNG I: TỔNG QUAN VỀ WEB VÀ CÁC NGUY CƠ TẤN CÔNG
ỨNG DỤNG WEBI.1 TỔNG QUAN VỀ WEB
I.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ươngtá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 vaitrò đạ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ậncá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ươngtrì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ấtnhanh.Trước đây những ứng dụng web thường được xây dựng bằng CGI(CommonGateway 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ằngJava( hay các ngôn ngữ tương tự) và chạy trên máy chủ phân tán, kết nối đến nhiềunguồ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 I.1 Một số ứng dụng web thường có kiến trúc
- 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 racòn có thể có thêm các ứng dụng tạo bố cục cho trang web
Trang 10- Lớp ứng dụng: Là nơi xử lý các ứng dụng web Nó sẽ xử lý thông tin ngườidù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 đượccài đặt bằng các kỷ thuật lập trình như CGI, Java, NET, PHP hay ColdFusion, đượctriể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 I.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 khách (hay còn gọi là 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ốngmạ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áytính Có thể xem là firewall như một bộ lộc thông tin, nó xác định cho phép một máytí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ó đượctruy 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
Trang 11 Kiểm soát địa chỉ truy nhập, cấm địa chỉ truy nhập.
Firewall hoạt động dựa trên gói IP do đó kiểm soát việc truy nhập của máyngười sử dụng
I.1.2 Các vấn đề liên quan đến ứng dụng Web
- 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ỗibả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ậtcá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ườngkhô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áclỗi bảo mật)
- Sự phát triển đa dạng của ứng dụng Web:
Ngày nay với sự phát triển bùng nổ của Internet, các ứng dụng Web cũng pháttriển đa dạng và mạnh mẽ 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, trị trường chứng khoán, trang thông tin điện tửdoanh nghiệp,…
I.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 quacá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ựcthi một chương trình được xây dựng từ nhiều ngôn ngữ như: Perl,C/C++… hoặc trìnhchủ 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
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ìnhkhách 1 luồng dữ liệu co đị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 đổigiữa trình duyệt và WebServer
Trang 12- Body là phần nội dung dữ liệu mà Server gữi về Client,nó có thể là một fileHTML, 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 Webthì firewall không còn hữu dụng trong việc ngăn chặn hacker này Do đó, các kĩ thuậttấ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ôngtrự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
I.2 CÁC KHÁI NIỆM THUẬT NGỮ LIÊN QUAN
I.2.2 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áchcá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ệtWeb phải làm để đáp ứng các lệnh Khi gõ một địa chỉ Web URL vào trình duyệtWeb, một lệnh HTTP sẽ được gửi tới Web server để ra lệnh và hướng dẫn nó tìm đúngtrang Web được yêu cầu và kéo về mở trên trình duyệt Web
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ìnhduyệt Web để người dùng có thể xem một trang Web đang hiện diện trên Internet
Trang 13HTTP 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 choInternet).
HTTP header là phần đầu(header) của thông tin mà trình khách và trình chủ gữicho nhau Những thông tin của trình khách gữi cho trình chủ được gọi là HTTPrequests(yêu cầu) còn trình chủ gữi cho trình là HTTP responses(trả lời) Thôngthườ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ỉ đượcdùng riêng trong từng loại
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.
Cache-control: private
<HTML>
Trang 14
Dòng đầu là dòng trạng thái, để cho biết phiên bản HTTP được dùng, mã trạngthá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 (Secure 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áckết nối HTTPS thường được sử dụng cho các giao dịch thanh toán trên World WideWeb 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
I.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à HTTPkhô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âykhó khăn cho một số ứng dụng Web, bởi vì trình chủ không biết được trước đó trìnhduyệ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ựcphiê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
+ 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ự độnggiải phóng phiên làm việc để khôi phục lại tài nguyên của hệ thống
Trang 15Ở những lần truy cập sau đến trang web đó, ứng dụng có thể dùng lại nhữngthông tin trong cookie(như thông tin liên quan đến việc đăng nhập vào YahooMessenger )mà người dùng không phải làm lại những thao tác đăng nhập hay phảicung cấp lại các thông tin khác.
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.Các thành phần của một cookie gồm :
Trang 16Domain Flag Path Secure Expiration Name Value
www.redhat.com FALSE FALSE 1154029490 Apach
e
64.3.40.151.16018996349247409
Domain : Tên miền của trang web đã tạo cookie (Trong 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ácthư 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
Sereure : 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ạmvượ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ềncủa máy chủ bị vượt quá, máy trạm sẽ xoá cookie được sử dụng ít nhất
I.2.5 Poxy
Proxy cung cấp cho người sử dụng truy xuất Internet những nghi thức đặc biệthoặc một tập những nghi thức thực thi trên dual_homed host hoặc basion host Nhữngchương trình client của người sử dụng sẽ qua trung gian proxy server thay thế choserver thật sự mà người sử dụng cần giao tiếp
Trang 17Proxy server cần xác định những yếu cầu từ client và quyết định đáp ứng haykhông đáp ứng, nếu yêu cầ được đáp ứng, proxy server sẽ kết nối với server thật thaycho 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ờiserver đến client Vì vậy proxy server giống cầu nối trung gian giữa server và client.
I.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ứctườ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ủamá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 truyxuấ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
I.3 GIỚI THIỆU SƠ LƯỢC VỀ CÁC KĨ THUẬT TẤN CÔNG ỨNG DỤNG WEB
I.3.1 Kiểm soát truy cập Web(Web Access Control)
Thâm nhập hệ thống qua cửa sau (Back door) :Trong quá trình thiết kế ứngdụng, những người phát triển ứng dụng có thể cài một “cửa sau” (back door) để saunày có thể thâm nhập vào hệ thống một cách dễ dàng
I.3.2 Chiếm hữu phiên làm việc(Session Mangement)
I.3.2.1 Ấn định phiên làm việc (Session Fixation)
Là kĩ thuật tấn công cho phép hacker mạo danh người dùng hợp lệ bằng cáchgửi một session ID hợp lệ đến người dùng, sau khi người dùng đăng nhập vào hệthống thành công, hacker sẽ dùng lại session ID đó và nghiễm nhiên trở thành ngườidùng hợp lệ
I.3.2.2 Đánh cắp phiên làm việc (Session Hijacking)
Là kĩ thuật tấn công cho phép hacker mạodanhngười dùng hợp lệ sau khi nạnnhân đã đăng nhập vào hệ thống bằng cách giải mã session ID của họ được lưu trữtrong cookie hay tham số URL, biến ẩn của form
Trang 18I.3.2.3 Lợi dụng các thiếu sót trong việc kiểm tra dữ liệu nhâp hợp lệ (Input validation)
Hacker lợidụng những ô nhập dữ liệu để gửi đi một đoạn mã bất kì khiến cho
hệ thống phải thực thi đoạn lệnh đó hay bị phá vỡ hoàn toàn
I.3.2.3.1 Kiểm tra tính đúng đắn của dữ liệu bằng ngôn ngữ phía trình duyệt (Client-Side validation)
Do ngôn ngữ phía trình duyệt ( JavaScript, VBScript ) đuợc thực thi trên trìnhduyệt nên hacker có thể sửa đổi mã nguồn để có thể vô hiệu hóa sự kiểm tra
I.3.2.3.2 Tràn bộ đệm (Buffer OverFlow)
Một khối lượng dữ liệu được gửi cho ứng dụng vượt quá lượng dữ liệu đượccấp phát khiến cho ứng dụng không thực thi được câu lệnh dự định kế tiếp mà thayvào đó phải thực thi một đoạn mã bất kì do hacker đưa vào hệ thống Nghiêm trọnghơn nếu ứng dụng được cấu hình để thực thi với quyền root trên hệ thống
I.3 SƠ LƯỢC VỀ QUÁ TRÌNH TẤN CÔNG CỦA HACKER
I.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
cổng hậu)
Covering Tracks
(Xoá dấu vết)
Trang 19* Giai đoạn 1: Thu thập thông tin (Trước khi 1 hacker bắt đầu làm công việc, 3yếu tố cần thiết phải được làm đầy đủ: FootPrinting, Scanning, Enumeration).
- FootPrinting (In dấu ấn - thu thập thông tin): Là bước mà kẻ tấn công thâutóm càng nhiều thông tin càng tốt về đối tượng, người dùng, doanh nghiệp, các chinhá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 nhiều thông tin, đôi khi với nhữngthông tin này hacker đã có thể làm chủ hệ thống
Công cụ hỗ trợ: Nslookup, Smart Whois, UseNet, Google Earth, Search engines(công cụ tìm kiế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ìmhiể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áccổng, xác định các dịch vụ sử dụng giao thức TCP và UDP,
Công cụ hổ trợ : LANGuard (www.Gfi.com), xScan, NetScanTools (http://www.nwpsw ), iNetTools (http ://www.wildpackets.com), Nmap (http: //www.isecuse org/nmap)
- Enumeration (Điểm danh mạng - liệt kê tìm lỗ hổng): Đến đây, các attackerbắ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ậtkhẩ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ôngbiế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
- Gaining Access (Đột nhập hệ thống): Hacker sẽ tìm cách truy cập vào mạngbằ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 tratấ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âmnhậ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ệ
Trang 20thống Hacker sẽ tìm cách crack password của admin, hoặc sử dụng lỗ hổng để leothang đặ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àikhoản người sử dụng ban đầu không được cho phép truy cập Khi hacker đạt đượcmứ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ủahacker 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 truynhậ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ệccà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 ghinhậ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,
I.3.2 Khảo sát ứng dụng Web
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 Webapplication luôn là một công việc được hacker nhắm đến nhằm mục đích phục vụ mộtyêu cầu nào đó của họ hay để phá hoại
Trang 21Trướ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ụctiê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ácWeb 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ệnchứ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ôngdụ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ềnvà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ácthô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ôngthườ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ủangườ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ấncô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ệncủa các phần trong ứng dụng, đặc biệt như các order input, confirmation, ordertracking
- 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ệcgiao 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ỗitrong 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
Trang 22I.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 ứngdụ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ấncô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ềnkiể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ênquyế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ụ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ânhà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ậndụ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
Trang 23Do đó, 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ủariê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.
I.4 SƠ LƯỢC VỀ CÁC KĨ THUẬT TẤN CÔNG ỨNG DỤNG WEB
I.4.1 Kiểm soát truy cập web (Web Access Control)
Thâm nhập hệ thống qua cửa sau (Back door) : Trong quá trình thiết kế ứngdụng, những người phát triển ứng dụng có thể cài một “cửa sau” (back door) để saunày có thể thâm nhập vào hệ thống một cách dễ dàng
I.4.2 Chiếm hữu phiên làm việc (Session Mangement)
I.4.2.1 Ấn định phiên làm việc (Session Fixation)
Là kĩ thuật tấn công cho phép hacker mạo danh người dùng hợp lệ bằng cáchgửi một session ID hợp lệ đến người dùng, sau khi người dùng đăng nhập vào hệthống thành công, hacker sẽ dùng lại session ID đó và nghiễm nhiên trở thành ngườidùng hợp lệ
I.4.2.2 Đánh cắp phiên làm việc (Session Hijacking)
Là kĩ thuật tấn công cho phép hacker mạodanhngười dùng hợp lệ sau khi nạnnhân đã đăng nhập vào hệ thống bằng cách giải mã session ID của họ được lưu trữtrong cookie hay tham số URL, biến ẩn của form
I.4.3 Lợi dụng các thiếu sót trong việc kiểm tra dữ liệu nhập hợp lệ (Input validation)
Hacker lợidụng những ô nhập dữ liệu để gửi đi một đoạn mã bất kì khiến cho
hệ thống phải thực thi đoạn lệnh đó hay bị phá vỡ hoàn toàn
I.4.3.1 Kiểm tra tính đúng đắn của dữ liệu bằng ngôn ngữ phía trình duyệt (Client-Side validation)
Do ngôn ngữ phía trình duyệt ( JavaScript, VBScript ) đuợc thực thi trên trìnhduyệt nên hacker có thể sửa đổi mã nguồn để có thể vô hiệu hóa sự kiểm tra
I.4.3.2 Tràn bộ đệm (Buffer OverFlow)
Một khối lượng dữ liệu được gửi cho ứng dụng vượt quá lượng dữ liệu đượccấp phát khiến cho ứng dụng không thực thi được câu lệnh dự định kế tiếp mà thayvào đó phải thực thi một đoạn mã bất kì do hacker đưa vào hệ thống Nghiêm trọnghơn nếu ứng dụng được cấu hình để thực thi với quyền root trên hệ thống
I.4.3.3 Mã hoá URL (URL Encoding)
Trang 24Lợi dụng chuẩn mã hóa những kí tựđặc biệt trên URL mà hacker sẽ mã hoá tựđộng những kí tự bất hợp lệ-những kí tự bị kiểm tra bằng ngôn ngữ kịch bản-để vượtqua vòng kiểm soát này.
I.4.3.4 Kí tự Meta (Meta-characters)
Sử dụng những kí tựđặc biệt ( nói rõ hơn trong phần phụ lục) hacker có thểchèn thêm vào dữ liệu gửi những kí tự trong chuỗi câu lệnh như <script> trong kĩ thuậtXSS, ‘ trong SQL….để thực thi câu lệnh
I.4.3.5 Vượt qua đường dẫn (Path Traversal):
Là phương pháp lợi dụng đường dẫn truy xuất một tập tin trên URL để trả kếtquả về cho trình duyệt mà hacker có thể lấy được nội dung tập tin bất kì trên hệ thống
I.4.3.6 Chèn mã lệnh thực thi trên trình duyệt nạn nhân (Cross- Site Scripting):
Đây là kĩ thuật tấn công chủ yếu nhằm vào thông tin trên máy tính của ngườidùng hơn là vào hệ thống máy chủ Bằng cách thêm một đoạn mã bất kì ( thường đượclập trình bằng ngôn ngữ kịch bản như JavaScript, VBScript…), hacker có thể thựchiện việc đánh cắp thông tin quan trọng như cookie để từ đó trở thành người dùng hợp
lệ của ứng dụng…dựa trên những thông tin đánh cắp này Cross-Site scripting cũng làmột kiểu tấn công “session hijacking”
I.4.3.7 Thêm câu lệnh hệ thống (OS Command Injection):
Khả năng thực thi được những câu lệnh hệ thống hay những đoạn mã đượcthem vào trong những tham số mà không có sự kiểm tra chặt chẽ như tham số củaform, cookies, yêu cầu HTTP Header, và những dữ liệu nguy hiểm trong những tập tinđược đưa lên trình chủ
Thành công trong kĩ thuật này giúp hacker có thể thực thi được những câu lệnh
hệ thống với cùng quyền của trình chủ
I.4.3.8 Chèn câu truy vấn SQL (SQL Injection)
Trong lập trình với cơ sở dữ liệu, người lập trình đã sai sót trong vấn đề kiểmtra giá trị nhập vào để từ đó hacker lợi dụng thêm vào những câu truy vấn hay nhữnggiá trị không hợp lệ để dễ dàng đăng nhập vào hệ thống
I.4.3.9 Ngôn ngữ phía máy chủ (Server side includes)
Là khả năng thêm vào những câu lệnh thuộc hệ thống như nhúng file (includefile), truy xuất cơ sở dữ liệu (jdbc)…khiến cho hacker có cơ hội truy xuất đến file, cơ
sở dữ liệu…mà bình thường không thể xem được trên Web site
Trang 25I.4.3.10 Kí tự rỗng (Null Characters)
Lợi dụng chuỗi kí tự thường kết thúc bằng \0 mà hacker thường thêm vào đểđánh lừa ứng dụng vì với những ứng dụng sử dụng chương trình cgi như C++ thì C++cho rằng \0 là dấu kết thúc chuỗi
Ví dụ:
Hacker thêm chuỗi sau:
Ô nhập: đề tài thứ nhất\0<script> alert(document.cookie)</script> nếu ứngdụng sử dụng chương trình C++ để kiểm tra tính đúng đắn của chuỗi thì chuỗi trên hợp
lệ do C++ sẽ nhân biết “\0” là kết thúc chuỗi nên không kiểm tra đoạn sau
I.4.3.11 Thao tác trên tham số truyền (Paramet manipulation)
Những thông tin trao đổi giữa trình chủ và trình duyệt được lưu trữ trong nhữngbiến như biến trên URL, biến ẩn form, cookie…Bởi vì việc kiểm soát biến chưa đượcquan tâm đúng mức nên hacker có thể lợi dụng sửa đổi giá trị biến để đánh cắp phiênlàm việc của người dùng hay thay đổi giá trị một món hàng…
I.5 Để lộ thông tin (informational)
Những tập tin và ứng dụng trên hệ thống chứa những thông tin quan trọng như
mã nguồn một trang Web hay tập tin chứa mật khẩu của người dùng trên hệ thống luôn
là mục tiêu của hacker Ngoài ra những lời chú thích trong mã nguốn cũng là nguồnthông tin hữu ích cho hacker
Hacker sử dụng trả lời HTTP từ hệ thống để xác định một tập tin hay ứng dụng có tồntại hay không
Ví dụ :
• HTTP 200 : tập tin tồn tại
• HTTP 404: tập tin không tồn tại
I.6 Từ chối dich vụ (Denial of service (DoS)
Một khối lượng lớn yêu cầu được gửi cho ứng dụng trong một khoảng thời giannhất định khiến hệ thống không đáp ứng kịp yêu cầu dẫn đến hệ thống bị phá vỡ Vìkhuôn khổ và thời gian của luận văn là có hạn nên luận văn chỉ thực hiện tìm hiểu một
số kĩ thuật phổ biến và khả năng phá hoại một hệ thống mạng với mức độ cao Vàtrong các chương ở phần thứ hai, luận văn sẽ trình bày kĩ hơn từng kĩ thuật sau :
• Thao tác trên tham số truyền
• Chèn mã lệnh thực thi trên trình duyệt
Trang 27Chương II: KỸ THUẬT TẤN CÔNG VÀO CÁC LỖ HỔNG TRÊN
WEBSITE VÀ CÁCH PHÒNG CHỐNGII.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
II.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ànnhiề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à anninh 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 giată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ậpvà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 toàn thông tin Hàng loạt website lớn bị tấn công với mức độ phức tạp ngày cànggia tăng Rất nhiều các website của các tổ chức, doanh nghiệp còn tồn tại các lỗ hổng
an toàn thông tin Nhiều lỗ hổng an toàn thông tin mới được phát 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ậtngày càng 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 hăcker 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ả 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ụngthanh 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ânhà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
Trang 28trong 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 anninh an toàn thông tin quốcgia
Rất nhiều website trong nước tồn tại các lỗ hổng an toàn 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 mạng Internet Việt Nam có đến 90% cácwebsite được xây dựng trên công nghệ ASP.NET và sử dụng dịch vụ IIS 6.0, đây là lỗhổng lớn nhất và vẫn chưa được khắc phục Trong năm 2010 đã ghi nhận hơn 1000website ở nước ta bị tấn công từ các lỗ hổng đang tồn tại trên các website và các lỗhổng trên các máy chủ hệ thống Các website của các tổ chức tài chính, ngân hàng,chứng khoán vẫn tồn tại 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ôngtin thẻ tín dụng và thông tin cá nhân như tên, địa chỉ,số điện thoại, số thẻ anninh 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áyATM
Rửa tiền: chuyển tiền từ tài khoản trộm cắp được sang tài khoản money tại gold, e-passport
e- 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,
II.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àocác hệ thống CNTT của lĩnh vực tài chính ngân hàng, với mục tiêu kiếm được nhiềutiề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ụctiê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ệthại mà loại tội phạm này gây ra đã lên đến hàng ngàn tỉđồng
Trang 29Thiệ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ể ướctí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ấncông nghiêm trọng
Vụ 2 đối tượng người Malaysia là Cham Tack Choi và Tan Wei Hong sử dụngthẻ tín dụng Visa, Master giả để thanh toán tại khách sạn Metropol (thanh toán số tiềnhơ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ốctị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ịchCanada vào ViệtNam đ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 (tiếp)
Vụ Công ty Golden Rock:Trưởng Văn phòng đại diện của Công ty này tạimạ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 CNTT củađối thủ cạnh tranh
Và vụ mới đây nhất, Ngày 22/11/2010 là ngày đầu tiên hacker bắt đầu tấn côngvào hệ thống website của báo Vietnamnet Đây là cuộc tấn công với quy mô lớn, liêntục và kéo dài Nó đã phá hủy hầu như gần hết CSDL đã lưu trữ 10 năm của báoVietNamNet
Hình II.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%
Trang 30lỗ 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ềmAdobe Acrobat PDF được phát 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 vào các website của hacker không mới so với những nămtrướ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 trongquản trị website và không thường xuyên kiểm soát lỗ hổng, khoán trắng vấn đề bảođảm 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ố đángbá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 virusmớ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 Trongnăm 2010, đã có tới 6,5 triệu lượt máy tính bị nhiễm loại virus này Có hơn 1,4 triệulượ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ềunhấ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ên5,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ư anninh thông tin (ANTT) của các doanh nghiệp, người sử dụng đã tạo tiền đề cho sự giată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àngphổ 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
II.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ê hăcker điều hành mạng máy tính “Ma” để tấn công nhằm phá hủy hệ thốngCNTT 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
Trang 31 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 độngcuả gới tội phậm CNC sẽ tinh vi hơn, thủ đoạn hơn để làm sao kiếm được nhiềutiền.
Mạng xã hội (Twiter, spacebook, ) đang phát triển mạnh mẽ không chỉ là tràolư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 giaotiế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ạmCNC 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ếntranh 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ạng3G bắt đầu được đưa vào hoạt động tại ViệtNam
Việcsử dụng thiếtbị di động không dây Apple có dấu hiệu bùng nổ tạiViệt Nam,trong khi đó Apple chưa có giải pháp đảm bảo an toàn cho các dịch vụ của thiết
bị này, do vậy Apple có thể sẽ là mộtmục tiêu quan tâm mới của giới tội phạmmạng
Virus đa hình và Thư rác tin nhắn tức thời (IM) ngày càng phức tạp
Rootkit là một bộ công cụ phần mềm do kẻ xâm nhập đưa vào máy tính nhằmmục đích cho phép mình quay lại xâm nhập máy tính đó và dùng nó cho các mục đíchxấu mà không bị phát hiện Đây sẽ là một xu hướng mới khi đã trở thành công cụ “đạichúng hóa” chứ không còn là “đặc quyền” của một số tin tặc “biết nghề” như trước.Các dòng virus siêu đa hình sẽ kết hợp nhiều kỹ thuật mới để tạo ra những sự lây landai dẳng kéo dài trong nhiều năm
Cùng sự phổ biến của Windows 7 với khả năng đảm bảo an ninh cao và mọiquyết định thực thi quan trọng trên máy tính sẽ thuộc về người sử dụng, xu hướngvirus đánh lừa người sử dụng bằng cảm quan sẽ phát triển mạnh Trường hợp các virusgiả mạo file dữ liệu (Fake icon) là những biểu hiện đầu tiên và xu hướng này sẽ tiếptục trong năm 2011
Sẽ có nhiều cuộc tấn công, lừa đảo trên điện thoại di động trong năm 2011 Cóthể sẽ ghi nhận những cuộc phát tán mã độc đầu tiên trên điện thoại di động, với hìnhthức tấn công chủ yếu dưới dạng các trojan, ẩn náu và ăn cắp thông tin cá nhân
II.2 SƠ LƯỢC VỀ MỘT SỐ BIỆN PHÁP KIỂM TRA AN TOÀN WEB
II.2.1 Webscarab
Trang 32WebScarab là một khung cho việc phân tích các ứng dụng mà giao tiếp bằngcách sử dụng giao thức HTTP và HTTPS Nó được viết bằng Java, và vì thế xách taycho nhiều nền tảng WebScarab có nhiều chế độ hoạt động, thực hiện bởi một sốplugin Trong cách sử dụng phổ biến nhất của nó, WebScarab hoạt động như mộtproxy chặn, cho phép các nhà điều hành để xem xét và sửa đổi các yêu cầu được tạo rabởi trình duyệt này trước khi chúng được gửi đến máy chủ, và để xem xét và sửa đổicác phản hồi trở về từ máy chủ trước khi chúng được nhận bởi trình duyệt .WebScarab có khả năng đánh chặn cả HTTP và HTTPS giao tiếp Nhà hệ điều hànhcũng có thể xem lại các cuộc đàm thoại (yêu cầu và trả lời) có đi qua WebScarab.
Một khuôn khổ mà không có bất kỳ chức năng là vô giá trị, tất nhiên, và do đóWebScarab cung cấp một số bổ sung, chủ yếu nhằm vào các chức năng bảo mật chothời điểm này Những bổ sung bao gồm:
- Những mảnh vỡ, chất chiết xuất từ kịch bản và HTML ý kiến từ các trangHTML khi chúng được nhìn thấy thông qua proxy, hoặc bổ sung khác
- Proxy quan sát giao thông giữa trình duyệt và máy chủ web Các proxyWebScarab có thể quan sát cả hai HTTP và HTTPS giao thông được mã hóa, bằngcách đàm phán kết nối SSL giữa WebScarab và trình duyệt thay vì chỉ đơn giản là kếtnối các trình duyệt đến máy chủ và cho phép một dòng mã hóa để đi qua nó pluginsproxy khác nhau cũng đã được phát triển để cho phép các nhà điều hành để kiểm soátcác yêu cầu và trả lời rằng đi qua proxy
- Hướng dẫn đánh chặn cho phép người dùng thay đổi HTTPS và HTTPS yêucầu và trả lời trên bay, trước khi chúng đến máy chủ hoặc trình duyệt
- Beanshell cho phép để thực hiện các hoạt động tùy tiện phức tạp trên các yêucầu và câu trả lời Bất cứ điều gì có thể được thể hiện trong Java có thể được thựchiện Bất cứ điều gì có thể được thể hiện trong Java có thể được thực thi
- Tiết lộ các trường ẩn đôi khi nó được dễ dàng hơn để sửa đổi một trường ẩntrong trang đó, hơn là ngăn chặn các yêu cầu sau khi nó đã được gửi đi This pluginsimply changes all hidden fields found in HTML pages to text fields, making themvisible, and editable Plugin này chỉ đơn giản là thay đổi tất cả các lĩnh vực ẩn đượctìm thấy trong các trang HTML vào các trường văn bản, làm cho chúng nhìn thấy, và
có thể chỉnh sửa
Trang 33- Bandwidth giả lập cho phép người sử dụng để giả lập một mạng chậm hơn,
để quan sát trang web của họ sẽ thực hiện khi truy cập qua, nói rằng, một modem.Spider - xác định các URL mới trên trang web mục tiêu, và nạp chúng vào lệnh
-Hướng dẫn yêu cầu cho phép chỉnh sửa và phát lại các yêu cầu trước đó, hoặctạo ra các yêu cầu hoàn toàn mới
Sessionid phân tích thu thập và phân tích một số cookie để trực quan xác địnhmức độ ngẫu nhiên và không thể tiên đoán Note that this analysis is rather trivial, anddoes not do any serious checks, such as FIPS, etc Lưu ý rằng phân tích này là khá tầmthường, và không làm bất cứ kiểm tra nghiêm trọng, ví dụ như FIPS, vv
Kịch bản nhà khai thác có thể sử dụng BeanShell (hoặc bất kỳ ngôn ngữ khácđược hỗ trợ BSF được tìm thấy trên classpath) để viết một kịch bản để tạo ra các yêucầu và lấy chúng từ máy chủ The script can then perform some analysis on theresponses, with all the power of the WebScarab Request and Response object model tosimplify things Các kịch bản sau đó có thể thực hiện một số phân tích về những phảnhồi, với sức mạnh của tất cả các yêu cầu và đáp ứng WebScarab mô hình đối tượng đểđơn giản hóa mọi thứ
Thông số fuzzer thực hiện tự động thay thế các giá trị tham số có khả năngphơi bày xác nhận tham số không đầy đủ, dẫn đến lỗ hổng giống như Cross SiteScripting (XSS) và SQL Injection
Tìm kiếm cho phép người dùng tùy tiện nghề BeanShell biểu thức để xác địnhcác cuộc đàm thoại đó sẽ được hiển thị trong danh sách
So sánh tính toán hiệu chỉnh khoảng cách giữa các cơ quan phản ứng của cáccuộc đàm thoại quan sát, và điều tra cơ bản một cuộc trò chuyện chọn The editdistance is "the number of edits required to transform one document into another".Khoảng cách chỉnh sửa là "số chỉnh sửa cần thiết để chuyển đổi một tài liệu vào mộtmạng khác" For performance reasons, edits are calculated using word tokens, ratherthan byte by byte Vì lý do thực hiện, sửa đổi được tính bằng cách sử dụng thẻ từ, chứkhông phải byte bằng byte
SOAP có một plugin mà phân tích WSDL, và trình bày các chức năng khácnhau và các thông số cần thiết, cho phép họ được biên tập trước khi được gửi đến máychủ trong tương lai Chú ý: plugin này bị phản đối, và có thể được gỡ bỏ trong