Nghiên cứu cơ sở lý thuyết về lỗ hổng an ninh mạng, sử dụng các công cụ dò tìm các lỗ hổng trên Website, lỗi các ứng dụng … từ đó ta có thể xác định được mức độ nguy cơ hệ thống, đề ra các biện pháp khuyến cáo người dùng, người quản trị mạng có hành động ngăn chặn, khắc phục lỗ hổng tránh các cuộc xâm nhập của hacker.
Trang 1MỞ ĐẦU
I Lý do chọn đề tài
Với sự phát triển rất nhanh của các ứng dụng trên nền Web, việc bảo mật an ninh an toàn cho các trang Web là một lĩnh vực đặc biệt quan trọng vì nó được truy cập mọi lúc mọi nơi và bất kỳ ai Tuy vậy không phải bất kỳ nhà phát triển phần mềm Web nào cũng chú tâm đến việc bảo mật an ninh, vì vậy nhiều ứng dụng Web vẫn tồn tại với các nguy cơ an ninh, an toàn, bảo mật và gây ra nhiều thiệt hại khi bị tấn công Tuy nhiên việc tìm kiếm và phát hiện ra các nguy cơ an ninh thủ công khá khó khăn trong khi đó có nhiều nguy cơ an ninh có thể phát hiện được bằng các công cụ tự động
Các lỗ hổng an ninh mạng là những lỗi phần mềm, lỗi trong thiết kế phần cứng hoặc do lỗi của người sử dụng Đấy là những lỗ hổng mà hacker tấn công các
hệ thống mạng nhằm khai thác tài nguyên hoặc dữ liệu Vì thế việc vá lỗi bảo mật, loại bỏ lỗ hổng thường xuyên được tung ra từ các nhà sản xuất để khắc phục lỗ hổng đó, đồng thời được các các chuyên gia về bảo mật khuyến cáo nhiều cách phòng tránh hacker khai thác do lỗi từ người sử dụng
Đối với Việt Nam thời gian vừa qua các cuộc tấn công có quy mô lớn xâm nhập vào hệ thống mạng, thay đổi giao diện web hay đánh cắp dữ liệu thông tin của các tổ chức, doanh nghiệp được thực hiện với tần suất tăng đột biến Đối tượng được nhắm tới bao gồm tổ chức, tập đoàn kinh tế lớn và các cơ quan cấp chính phủ Tuy nhiên, theo một nghiên cứu gần đây, xu hướng tấn công sắp tới sẽ hướng mục tiêu vào các doanh nghiệp vừa và nhỏ Đây là những đối tượng dễ bị tổn thương nhất và ít gây ra các vấn đề về pháp lý liên quan
Do đó để ngăn chặn với những thách thức về lỗ hổng bảo mật và tuân thủ tốt trong môi trường mạng ngày nay Bản thân chọn đề tài khóa luận tốt nghiệp:
“Nghiên cứu một số dạng lỗ hổng bảo mật, công cụ phát hiện và ứng dụng để kiểm thử an ninh website” Đề tài này được thực hiện nhằm mục đích tìm hiểu, phân tích
các lỗ hổng bảo mật trên website và các phương pháp phòng chống các cuộc tấn công
Trang 2II Mục tiêu
Nghiên cứu cơ sở lý thuyết về lỗ hổng an ninh mạng, sử dụng các công cụ dò tìm các lỗ hổng trên Website, lỗi các ứng dụng … từ đó ta có thể xác định được mức độ nguy cơ hệ thống, đề ra các biện pháp khuyến cáo người dùng, người quản trị mạng có hành động ngăn chặn, khắc phục lỗ hổng tránh các cuộc xâm nhập của hacker
III Phương pháp nghiên cứu
Trên cơ sở kiến thức bản thân hiểu biết được từ thầy, cô giảng dạy, qua các bài giảng, qua internet, bản thân trực tiếp đi đến các doanh nghiệp tiếp cận, khảo sát tìm hiểu thông tin bảo mật mà các doanh nghiệp hiện có
IV Đối tượng nghiên cứu
Các lỗ hổng bảo mật, một số kiểu tấn công phổ biến hiện nay như: SQL Injection, DoS, XSS
Một số công cụ hỗ trợ trong việc tìm kiếm và khai thác các lỗi bảo mật trên website như: Acunetix Web Valnerability Scanner, Netsparker, Havij, Maxisploit Scanner, Websecurity Scanner …
V Phạm vi nghiên cứu
Các lỗ hổng bảo mật, kiểu tấn công trên website http://icon.info.vn/
Công cụ khai thác lỗ hổng trên website http://icon.info.vn/
VI Ý nghĩa khoa học và thực tiễn
• Về mặt lý thuyết: đề tài làm rõ các lỗ hổng bảo mật cơ bản thường được cáchacker sử dụng để tấn công vào các website
• Về mặt thực tiễn: áp dụng các công cụ phát hiện lỗ hổng an ninh hiện nay đểtìm kiếm, từ đó đưa ra các nhận xét và phương pháp khắc phục các lỗi trên
VII Nội dung đề tài
Đề tài bao gồm 3 chương:
Chương 1: Tổng quan về an ninh website: Chương này giới thiệu về lịch
sử phát triền, các vấn đề an ninh website hiện nay và các nguy cơ gây ra bởi việc thiếu an toàn bảo mật cho ứng dụng web
Chương 2: Tổng quan về lỗ hổng bảo mật, công cụ phát hiện và các nguy cơ an ninh trên website: Chương này mô tả về các dạng lỗ hổng bảo mật,
Trang 3các dạng tấn công phổ biến hiện nay cũng như các công cụ nhằm phát hiện ra các lỗ hổng trên website.
Chương 3: Triển khai kiểm thử an ninh: Chương này sẽ sử dụng một số
công cụ Acunetix, Netsparker, Websecurity Scanner để quét lỗ hổng an ninh trên website http://icon.info.vn/ nhằm phân tích và đưa ra biện pháp khắc phục Đồng thời, thực hiện một tấn công SQL Injection trên website http://icon.info.vn/ bằng công cụ Havij
Trang 4MỤC LỤC
MỞ ĐẦU 1
MỤC LỤC 1
DANH MỤC HÌNH VẼ 4
DANH MỤC TỪ VIẾT TẮT 6
CHƯƠNG 1: TỔNG QUAN VỀ AN NINH WEBSITE 7
1.1 Lịch sử phát triển website 7
1.2 Tình hình an ninh website hiện nay 8
1.3 Tổng quan về website 10
1.3.1 Khái niệm về website 10
1.3.2 Các yếu tố tạo nên một website 10
1.3.2.1 Tên miền (Domain) 10
1.3.2.2 Nơi lưu trữ website (hosting) 11
1.3.2.3 Nội dung các trang thông tin (web page) 11
1.3.3 Các tiêu chí đánh giá một website 12
1.3.4 Các thành phần trong website 14
1.3.4.1 Trình duyệt web (Web browser) 14
1.3.4.2 Ứng dụng web (Web Application) 16
1.4 Một số nguyên nhân phổ biến làm mất an toàn ứng dụng web 19
1.5 Một số quy tắc cơ bản để bảo mật website 19
CHƯƠNG 2: TỔNG QUAN VỀ LỖ HỔNG BẢO MẬT VÀ CÔNG CỤ PHÁT HIỆN NGUY CƠ AN NINH TRÊN WEBSITE 22
2.1 Khái niệm về lỗ hổng an ninh 22
2.2 Các loại lỗ hổng an ninh 22
2.2.1 Lỗ hổng từ chối dịch vụ 22
2.2.2 Loại lỗ hổng tăng quyền truy nhập không cần xác thực 23
2.2.3 Loại lỗ hổng cho phép xâm nhập từ xa không xác thực 24
2.3 Một số cách khai thác lỗ hổng trong hệ thống bảo mật 24
2.3.1 Mật khẩu yếu 24
2.3.2 Tài khoản đăng nhập mặc định 25
Trang 52.3.3 Backdoor 25
2.3.4 Thay đổi các thiết lập về quyền sử dụng 25
2.4 Một số nguy cơ an ninh thường gặp 25
2.4.1 Tấn công DoS 25
2.4.1.1 Định nghĩa về DoS 25
2.4.1.2 Dấu hiệu khi bị tấn công DoS 26
2.4.1.3 Mục tiêu và mục đích của tấn công DoS 26
2.4.1.4 Các dạng tấn công của DoS 27
2.4.1.5 Cách phòng chống tấn công DoS 29
2.4.2 Tấn công Cross-Site Scripting (XSS) 30
2.4.2.1 Khái niệm về XSS 30
2.4.2.2 Mục đích của tấn công XSS 31
2.4.2.3 Các dạng tấn công XSS 31
2.4.2.4 Các bước thực hiện tấn công XSS 33
2.4.2.5 Cách phòng chống 33
2.4.3 Tấn công SQL Injection 34
2.4.3.1 Khái niệm SQL Injection 34
2.4.3.2 Các dạng tấn công SQL Injection 34
2.4.3.3 Cách phòng chống tấn công SQL Injection 38
2.5 Một số công cụ phát hiện nguy cơ an ninh trên website 39
2.5.1 Acunetix 39
2.5.1.1 Giới thiệu về Acunetix 39
2.5.1.2 Các tính năng của Acunetix 41
2.5.1.3 Một số lỗ hổng bảo mật được kiểm tra bởi Acunetix 41
2.5.2 Netsparker 42
2.5.3 Havij 43
2.5.3.1 Khái niệm Havij 43
2.5.3.2 Các tính năng của Havij 44
2.5.3.3 Cách sử dụng Havij 44
2.5.4 Maxisploit Scanner 44
2.5.5 Websecurity Scanner 46
Trang 6CHƯƠNG 3: TRIỂN KHAI KIỂM THỬ AN NINH 47
3.1.1 Phân tích bài toán 47
3.2 Triển khai một số công cụ phát hiện lỗ hổng 47
3.1.1 Acunetix 47
3.1.1.1 Triển khai thực nghiệm 48
3.1.1.2 Phân tích thực nghiệm 51
3.1.2 Netsparker 52
3.1.2.1 Triển khai thực nghiệm 52
3.1.2.2 Phân tích thực nghiệm 53
3.1.3 Websecurity Scanner 54
3.1.3.1 Triển khai thực nghiệm 54
3.1.3.2 Phân tích thực nghiệm 56
3.1.4 Tổng kết đánh giá 56
3.3 Triển khai công cụ Havij 57
KẾT LUẬN 63
TÀI LIỆU THAM KHẢO 64
Trang 7DANH MỤC HÌNH VẼ
Hình 1.1: Biểu đồ thống kê số lượng website của Việt Nam (.vn) bị tấn công từ năm
2011 đến 2013 9
Hình 1.2: Biểu đồ thống kê số lượng website vn bị tấn công 3 tháng đầu năm 2014 .10
Hình 1.3: Mô hình 3 tầng của một ứng dụng web 16
Hình 2.1: Hình ảnh lợi dụng cơ chế bắt tay 3 bước 23
Hình 2.2: Lỗi tràn bộ đệm 23
Hình 2.3: Tấn công tràn ngập SYN 28
Hình 2.4: Mô hình tấn công bằng Stored XSS 31
Hình 2.5: Mô hình tấn công bằng Reflected XSS 32
Hình 2.6: Website bị lỗi sau khi nhúng dấu phẩy (‘) 36
Hình 2.7: Một đoạn mã ví dụ tấn công bằng câu lệnh Insert 38
Hình 2.8: Giao diện Acunetix Web Vulnerability Scanner 39
Hình 2.9: Kết quả scan của Acunetix Web Vulnerability Scanner 41
Hình 2.10: Giao diện Netsparker 42
Hình 2.11: Giao diện Havij 1.15 43
Hình 2.12: Giao diện Maxisploit Scanner 45
Hình 2.13: Giao diện Websecurify Scanner 46
Hình 3.1: Giao diện Acunetix 48
Hình 3.2: Gõ địa chỉ website cần scan 48
Hình 3.3: Chọn các chế độ Scanning 49
Hình 3.4: Chọn các thông tin cần quét 49
Hình 3.5: Đăng nhập vào website nếu cần xác thực 50
Hình 3.6: Danh sách các thông tin khuyến nghị cần quét 50
Hình 3.7: Kết quả sau khi scan 51
Hình 3.8: Nhập địa chỉ website cần quét 52
Hình 3.9: Kết quả sau khi scan 53
Hình 3.10: Nhập địa chỉ website cần scan 55
Hình 3.11: Kết quả sau khi scan 55
Trang 8Hình 3.12: Nội dung của mục mà chúng ta cần xem 57
Hình 3.13: Nhấp dấu phẩy vào cuối đường link 58
Hình 3.14: Nội dung mục vừa chọn không hiển thị 58
Hình 3.15: Nhập địa chỉ đường link lỗi SQL Injection vào công cụ Havij 59
Hình 3.16: Kết quả sau khi scan 59
Hình 3.17: Danh sách các table của database iconvn 60
Hình 3.18: Danh sách các cột của table admin 60
Hình 3.19: Danh sách username và password của admin 61
Hình 3.20: Danh sách link đăng nhập quyền admin 61
Hình 3.21: Giao diện đăng nhập admin 62
Hình 3.22: Giao diện quản lý website 62
Trang 9DANH MỤC TỪ VIẾT TẮT
Trang 10CHƯƠNG 1: TỔNG QUAN VỀ AN NINH WEBSITE
1.1 Lịch sử phát triển website.
Website xuất hiện lần đầu tiên vào năm 1989 khi nhà vật lý học Tim Berners-Lee muốn tìm ra một cách thức giúp các nhà khoa học trao đổi tài liệu nghiên cứu thông qua Internet Berners-Lee muốn rằng đó không chỉ là cách in các văn bản trực tiếp trên Internet mà còn là cách hiển thị các đường dẫn để đưa người đọc đến các phần khác của tài liệu, hoặc thậm chí là dẫn đến các tài liệu được đặt ở một nơi khác trên mạng Internet Điều đó có nghĩa là tạo nên một hệ thống tài liệu được kết nối toàn cầu
Thực ra thì Berners-Lee không phải là người đưa ra ý tưởng này đầu tiên Ngay từ những năm 40, các nhà nghiên cứu khác cũng đã từng mô tả một hệ thống tương tự, và vào khoảng những năm 80, các ứng dụng như Ngôn ngữ đánh dấu tổng quát chuẩn (SGML) cũng đã sử dụng một tập hợp phức tạp các siêu liên kết để kết nối các tài liệu lại với nhau Nhưng Berners-Lee đã phát triển một hệ thống mà trong đó không đòi hỏi phải sử dụng các phần mềm mắc tiền hay những kỹ năng lập trình cao Ông đã phát minh ra một giao thức cơ bản cho việc chuyển tải các tài liệu lên mạng Internet, gọi là Giao thức truyền siêu văn bản (HTTP) cũng như phát minh
ra một bộ đơn giản các lệnh gọi là Ngôn ngữ đánh dấu siêu văn bản (HTML) để mô
tả cấu trúc của một tài liệu
Web đã bùng nổ vào năm 1993 khi một sinh viên tốt nghiệp trường Đại học Illinois tên là Marc Andreessen phát triển thành công một phần mềm giúp hiển thị các trang Web dưới dạng đồ họa Phần mềm của Andreessen, được gọi là một “trình duyệt”, cho phép người sử dụng có thể hiển thị hình ảnh cũng như văn bản trên các trang web Kết quả là Web đã lớn mạnh nhanh chóng, vượt ra khỏi cả phạm vi sử dụng nhỏ hẹp ban đầu của các nhà khoa học Sau đó Andreessen đã tiếp tục đồng sáng lập Netscape Communications, đánh dấu cho sự khởi đầu của cuộc Cách mạng Internet
Chỉ trong vài năm, Web đã phát triển lớn mạnh với một tốc độ theo cấp số nhân Tính đến nay, có lẽ đã có tới một triệu mũ mười số trang Web được đặt trên hàng ngàn ngàn máy vi tính khắp thế giới Sự tăng trưởng đáng kinh ngạc này đặt ra
Trang 11một câu hỏi thú vị rằng: Làm thế nào bạn có thể tổ chức được một số lượng thông tin khổng lồ đến như vậy, đặc biệt trước tốc độ thay đổi quá nhanh chóng của nó?
Đã có nhiều công cụ tìm kiếm và danh mục trực tuyến cố gắng hệ thống và tổ chức Web nhưng đến cả danh mục đồ sộ nhất cũng khó lòng trở nên nổi bật được giữa hàng khối các văn bản, hình ảnh và các nội dung khác tràn ngập khắp Web Và khi Web tiếp tục phát triển, một trong những thử thách lớn nhất sẽ là việc tìm ra một cách nào đó để thống kê hết tất cả các thông tin này và làm người đọc có thể tiếp cận được chúng
1.2 Tình hình an ninh website hiện nay
Theo thống kê của trang web Zone-H – chuyên thống kê các website bị tấn công trên toàn cầu, chỉ trong 20 ngày đầu tháng 6 năm 2013, có khoảng 446 website
".vn" đã bị hacker tấn công, trong đó có 16 trang chứa tên miền “.gov.vn” Chỉ tính riêng tuần đầu tiên của tháng 6 cũng đã có 407 website tên miền vn bị hacker tấn công
Vấn đề đáng báo động ở đây là ngoài việc tấn công đơn thuần vào các diễn đàn, trang thông tin điện tử có số lượng truy cập lớn, như rongbay.com, enbac.com, kenh14… hacker còn tấn công cả những địa chỉ có tên miền gov.vn của các cơ quan thuộc Chính phủ như website www.ntc.mofa.gov.vn của Bộ Ngoại giao Việt Nam, Caugiay.hanoi.gov.vn - cổng thông tin điện tử quận Cầu Giấy, Hà Nội, và gần đây nhất, ngày 20/6, nhóm hacker Hmei7 đã “hỏi thăm” website của Sở Thông tin – Truyền thông Hà Nội
Những cuộc tấn công này đều là những hành động đơn lẻ, mang tính chất tự phát của những hacker bán chuyên nghiệp Nguyên nhân chủ yếu là do đơn vị quản
lý của các website này chưa thực sự chú trọng đến việc đầu tư cho vấn đề bảo mật, vẫn còn nhiều lỗ hổng để các hacker dễ dàng khai thác
Trang 12Hình 1.1: Biểu đồ thống kê số lượng website của Việt Nam (.vn) bị tấn công từ năm
Trang 13Biểu đồ thống kê các cuộc tấn công:
Hình 1.2: Biểu đồ thống kê số lượng website vn bị tấn công 3 tháng đầu năm 2014
Để đề phòng những đợt tấn công sắp tới có thể xảy ra, một số biện pháp cụ thể đã được tính tới như: Kiểm định lại mức độ an toàn thông tin trên các website,
rà soát và khắc phục lại các lỗ hổng trên hệ thống Bên cạnh đó, Bộ Thông tin Truyền thông cũng sẽ có những chính sách, biện pháp quản lý để hạn chế tình trạng bảo mật kém của các trang web hiện nay
1.3 Tổng quan về website
1.3.1 Khái niệm về website
Website là một tập hợp các trang web, thường chỉ nằm trong một tên miền hoặc tên miền phụ trên World Wide Web của Internet Một trang web là tập tin HTML hoặc XHTML có thể truy nhập bằng giao thức HTTP Web có thể được xây dựng từ các tệp tin HTML (trang mạng tĩnh) hoặc vận hành bằng các CMS chạy trên máy chủ (trang mạng động) Web có thể được xây dựng bằng nhiều ngôn ngữ lập trình khác nhau (PHP, NET, Java, Ruby on Rails )
1.3.2 Các yếu tố tạo nên một website
1.3.2.1 Tên miền (Domain)
Thực chất một website không cần đến tên miền nó vẫn có thể hoạt động bình thường vì nó còn có địa chỉ IP của trang web đấy, chúng ta chỉ cần gõ vào trình
.gov.vn 3.7%
.edu.vn 15,7%
.vn 81.1%
Trang 14duyệt IP của trang web thì ngay lập tức trình duyệt sẽ load trang web đấy về trình duyệt của bạn Sỡ dĩ chúng ta cần phải có tên miền thay cho IP là vì IP là mỗi chuỗi
số thập phân, có những địa chỉ IP thì rất là dễ nhớ nhưng đa số địa chỉ IP thì rất là khó nhớ Với cái tên nó rất gần gũi với ngôn ngữ tự nhiên của con người nên rất là
dễ nhớ cũng chính vì vậy mà người ta đã thay tên miền cho IP và từ đó công nghệ DNS ra đời
Ví dụ đơn giản để hiểu thêm tính năng của tên miền: Trong danh bạ điện thoại của chúng ta nếu chúng ta lưu số điện thoại mà không gán với một tên thì chắc chắn một điều là chúng ta không thể nhớ hết được số điện thoại của từng người và cũng không thể nào biết được số điện thoại này là của ai nhưng nếu chúng ta lưu số một
ai đó với một cái tên thì sau này khi cần gọi cho người đó sẽ tìm trong danh bạ dễ dàng hơn
1.3.2.2 Nơi lưu trữ website (hosting)
Nơi lưu trữ website thì bắt buộc chúng ta phải có, nó có thể là một máy chủ để lưu trữ hay một hosting chúng ta thuê từ nhà cung cấp dịch vụ
1.3.2.3 Nội dung các trang thông tin (web page)
Nội dung trang thông tin này thì phải có rồi vì mục đích của chúng ta lập nên website nhằm đăng thông tin của chúng ta lên website hay giới thiệu các thông tin của công ty
Nói đến một website người ta thường nói website đấy là web động hay tĩnh, đa
số các website bây giờ đến là website động
Website tĩnh có thể hiểu như thế này người dùng gửi yêu cầu một tài nguyên nào đó và máy chủ sẽ trả về tài nguyên đó Các trang Web không khác gì là một văn bản được định dạng và phân tán Lúc mới đầu phát triển website thì web tĩnh được
sử dụng rất nhiều vì lúc đấy nhu cầu của việc đăng tải trên website là chưa cao như đăng thông tin về các sự kiện, địa chỉ hay lịch làm việc qua Internet mà thôi, chưa
có sự tương tác qua các trang Web
Website động là thuật ngữ được dùng để chỉ những website được hỗ trợ bởi một phần mềm cơ sở web, nói cho dễ hiểu thì web động là web có cơ sở dữ liệu Ngày nay, đa số các trang web đều có cơ sở dữ liệu vì mục đích, nhu cầu của con
Trang 15người càng ngày gia tăng Thực chất, website động có nghĩa là một website tĩnh được "ghép" với một phần mềm web (các modules ứng dụng cho Web) Với chương trình phần mềm này, người chủ website thực sự có quyền điều hành nó, chỉnh sửa và cập nhật thông tin trên website của mình mà không cần phải nhờ đến những người chuyên nghiệp.
Trước đây, năm 1995 đến 2004 thì sử dụng công nghệ web 1.0 với công nghệ này thì chỉ được đọc nội dung trang web mà người dùng không thể chỉnh sửa, bình luận hay nói cách khác website lúc bất giờ chỉ hoạt động một chiều mà thôi
Hiện nay, đã phát triển công nghệ web 2.0 hoạt động hai chiều có nghĩa là người dùng cũng có thể chỉnh sửa, bình luận hay xóa nội dung trang web Trên đà phát triển đó người ta tiếp tục nghiên cứu và phát triển web 3.0 hướng hẹn rất nhiều điều thú vị còn ở phía trước
1.3.3 Các tiêu chí đánh giá một website
• Nội dung hấp dẫn, đầy đủ, phù hợp với mục tiêu xây dựng website:
• Trước tiên bạn cần định rõ đối tượng của website Có thể là các khách hàngtiềm năng, có thể là các đối tác hiện có của công ty, các nhà đầu tư nước ngoài Một điểm rất quan trọng nữa là nội dung phải được cập nhập thường xuyên Như vậy, khi thiết kế website bạn cung cấp cho website một công cụ thuận tiện để có thể tự mình thay đổi nội dung thông tin, thậm chí cả bố cục và hình thức của website
• Sắp xếp, bố cục một cách hợp lý, tạo điều kiện cho người đọc khai thác dễđịnh hướng trong website:
• Bố cục của website cũng như một bản đồ chỉ đường đi, hướng dẫn kháchhàng đi tới bất cứ nơi nào trên trang web của bạn một cách nhanh nhất, thuận tiện nhất có như vậy mới thể hiện được phong cách làm việc chuyên nghiệp của doanh nghiệp bạn Xây dựng 1 bố cục hợp lý gồm các bước:
- Bước 1: Xác định rõ chúng ta cần gì?
- Bước 2: Bạn cần một Designer để thiết kế giao diện cho website theo yêucầu của mình Website được thiết kế cần đạt được những tiêu chuẩn Web W3C, phù hợp với lĩnh vực bạn đang kinh doanh Làm việc cùng nhà thiết kế, phát triển website Hãy cung cấp đầy đủ thông tin theo yêu cầu của người thiết kế thông tin
Trang 16càng nhiều, hình ảnh càng nhiều càng có nhiều cơ hội để tìm được những ý tưởng sáng tạo độc đáo.
- Bước 3: Website của bạn vừa được hoàn thành đừng vội đưa chúng vào hoạtđộng bằng cách đưa lên mạng Internet tiến hành quảng cáo, giới thiệu Cũng giống như sau khi khai trương một cửa hàng vậy, không có quảng cáo, giới thiệu sẽ không
có khách đến giao dịch, mua bán Ít nhất thì bạn cũng phải đăng ký tên, địa chỉ của
“cửa hàng”, các “catalog” về sản phẩm , dịch vụ Trong thế giới Internet người ta gọi là các công cụ tìm kiếm như Google, Yahoo, Altavista… Đây là một giai đoạn hết sức quan trọng và không thể bỏ qua
- Bước 4: Những công việc trên đã xong đến đây có thể nói vai trò của nhữngdesigner đã kết thúc Website của bạn có phát triển được hay không, có giữ được khách hay không là do bạn Nếu bạn luôn cập nhật, đổi mới thông tin, đưa ra những chiến dịch khuyến mãi, có những phương pháp tiếp thị độc đáo, website của bạn sẽ mang lại hiệu quả
- Bước 5: Chuẩn bị cho những thay đổi trong tương lai, công nghệ thông tinphát triển rất nhanh, những gì tưởng như không thể khi bạn đang làm website, một vài tháng hoặc vài năm sau đã trở thành hiện thực
• Hình thức đẹp, phù hợp với chủ đề nội dung:
• Mỗi một con người trong xã hội đều có những sở thích, tính cách khác nhau
do vậy quan niệm thẩm mỹ của mỗi người cũng không giống nhau Dưới những cái nhìn khác nhau của mỗi người, thực thể sẽ được đánh giá khác nhau Website cũng không phải là một trường hợp ngoại lệ Do vậy, doanh nghiệp bạn cần sở hữu một website có hình thức và nội dung phải có sự kết hợp hài hòa với nhau để khách hàng thấy được sự hợp lí và chuyên nghiệp của website mà doanh nghiệp bạn đang quản lí
• Tính năng website hoạt động tốt và đáp ứng được nhu cầu của bạn:
• Do ngành nghề kinh doanh là đa dạng nên việc phân loại website cũng trởnên phong phú hơn Ví dụ như: website bán hàng, website thương mại điện tử, website bất động sản, website giáo dục, website khách sạn… Đối với loại website cần có những chức năng quan trọng khác nhau vì vậy cần xác định rõ chức năng
Trang 17chính của website để thiết kế phù hợp với lĩnh vực bạn đang kinh doanh để đáp ứng được tối đa yêu cầu của khách hàng.
• Website của bạn phải đạt chuẩn SEO:
• Chuẩn SEO tức bạn cần đạt được những điều kiện sau:
- Domain: Website nên có domain liên quan tới lĩnh vực kinh doanh của
khách hàng, domain càng ngắn càng tốt, thời gian sử dụng (thời gian đăng ký) domain càng lâu càng được đánh giá cao nhờ độ tin cậy
- Hosting: Điều quan trọng nhất khi chọn hosting đó là độ ổn định và tốc độ
hosting đây là 2 yếu tố ảnh hướng lớn đến chất lượng một website chuẩn SEO, ngoài ra IP server nghĩa là máy chủ được đặt ở đâu cũng quyết định một phần tới SEO (nếu khách hàng của bạn nhắm đến chủ yếu là ở Việt Nam thì nên đăng ký hosting tại Việt Nam hoặc các server lân cận)
- URL trang web: Đến thời điểm hiện nay gần như quy ước chung cho tất cả
các website đó là đường dẫn (URL) phải thân thiện
- Title: tiêu đề trang web là dòng giới thiệu chung nhất về website, lĩnh vực
kinh doanh của bạn, độ dài title tốt nhất từ 40->70 kí tự , từ khóa chính nên nằm ngay đầu title (bên trái)
- Description: là dòng mô tả chung về website, độ dài tốt nhất từ 140->160 kí
tự, cũng giống như title, description nên chứa từ khóa bên trái
- Meta keywords: không nên chứa, nhồi nhét quá nhiều từ khóa trung bình
1.3.4.1 Trình duyệt web (Web browser)
a Khái niệm trình duyệt web.
Web browser (trình duyệt web) là các ứng dụng phần mềm cho phép ngườidùng truy vấn dữ liệu và tương tác với nội dung nằm trên trang Web bên trong website, ứng dụng Web là một ứng dụng chủ/khách sử dụng giao thức HTTP được tương tác với người dùng hay hệ thống khác
Trang 18b Lịch sử
Lịch sử của các trình duyệt Web bắt đầu vào cuối thập niên 1980, khi một loạt các công nghệ đặt nền móng cho các trình duyệt Web đầu tiên, World Wide Web, do Tim Berners-Lee vào năm 1991 Sự phát triển này dựa trên các công nghệ phần mềm và phần cứng hiện có, ngoài ra cũng mở ra nhiều công nghệ mới bắt đầu
từ đây
Việc giới thiệu trình duyệt Mosaic NCSA Web vào năm 1993 - một trong những trình duyệt web với giao diện đồ họa đầu tiên - đã dẫn tới sự bùng nổ trong việc dùng web Marc Andreessen, người lãnh đạo của đội Mosaic tại NCSA, sớm bắt đầu công ty riêng của mình, đặt tên là Netscape, và phát hành các phiên bản Mosaic Netscape Navigator vào năm 1994, và sau đó nhanh chóng trở thành trình duyệt phổ biến nhất thế giới, chiếm 90% của tất cả các sử dụng Web đỉnh cao của nó
Microsoft đã đáp trả bằng trình duyệt Internet Explorer của mình trong năm
1995 (cũng bị ảnh hưởng nhiều từ Mosaic), và đầu cuộc chiến trình duyệt đầu tiên Bằng việc kết hợp Internet Explorer với Windows , Microsoft đã có thể tận dụng ưu thế của nó trong thị trường hệ điều hành để quản lý thị trường trình duyệt Web; Internet Explorer sử dụng đạt vị trí trên 95% người dùng vào năm 2002 Internet Explorer chiếm 60% người sử dụng trình duyệt vào Tháng Tư năm 2010 theo thống
kê của Net Applications
c Chức năng của trình duyệt web.
Là để mang lại nguồn thông tin cho người dùng Quá trình này bắt đầu khi một người sử dụng nhập vào (URL) hay tạm gọi là một đường dẫn, Ví dụ như http://www.khkt.net/ Các tiền tố của URL sẽ xác định cho phương thức truy cập và dữ liệu nhận được sẽ được biên dịch như thế nào Các loại URIL thông dụng nhất bắt đầu với http: định một nguồn tài nguyên để được lấy dựa trên Hypertext Transfer Protocol (HTTP) (tôi tạm gọi là giao thức truyền dữ liệu cho các siêu văn bản) Nhiều trình duyệt cũng hỗ trợ một loạt các tiền tố khác, chẳng hạn như https: (cũng tương tự như HTTP nhưng dữ liệu được mã hóa và bảo mật hơn) hay ftp: cho File Transfer Protocol (giao thức truyền tải file), và file: cho các tập tin lưu trữ nội
Trang 19bộ Các trình duyệt web có thể không trực tiếp xử lý mà thường chuyển qua các úng dụng khác xử lý.
1.3.4.2 Ứng dụng web (Web Application)
a Khái niệm ứng dụng web.
Ứng dụng web là một ứng dụng khách/chủ truy cập qua mạng Internet hayintranet sử dụng giao thức HTTP/HTTPs để tương tác với người dùng hay hệ thống khác Ứng dụng web được chia thành hai loại chính: ứng dụng web Public và ứng dụng web Private
• Ứng dụng web Public: là website dùng để quảng bá thông tin, cung cấp vàtrao đổi thông tin với bên ngoài như các website thương mại điện tử, các website của các công ty chứng khoán, các ngân hàng,
• Ứng dụng web Private: là các website cung cấp và trao đổi thông tin trongmột tổ chức, doanh nghiệp và các đối tác chiến lược, Các website nảy thường dùng để cung cấp thông tin cho các văn phòng, chi nhánh, các nhân viên đi công tác hoặc làm việc tại nhà và đôi khi là cho các đối tác chiến lược kết nối qua môi trường internet
Mô hình của 1 ứng dụng web đơn giản là mô hình MVC (Model – View - Controller)
Hình 1.3: Mô hình 3 tầng của một ứng dụng web
b Các điểm yếu an ninh ứng dụng web thường gặp
URL Products Controller
(Controller)
List.aspx(View)
Detail.aspx(View)
Product
Trang 20 Dữ liệu đầu vào không được kiểm tra.
Ứng dụng web sử dụng dữ liệu đầu vào trong các truy cập HTTP (hoặc trongcác tập tin) nhằm xác định kết quả phản hồi Hacker có thể sửa đổi bất kỳ phần nào của một truy xuất HTTP, bao gồm URL, querystring, headers, cookies, form field
và thậm chí field ẩn nhằm vượt qua các cơ chế bảo mật Các tấn công phổ biến dạng này bao gồm:
Một số Website bảo vệ chống lại loại tấn công này bằng cách thiết lập bộ lọc
dữ liệu đầu vào Vấn đề nan giải là có rất nhiều cách đế mã hóa (encode) dữ liệu, và những phương cách mã hóa này không giống như các cách mã hóa thông thường khác ở chỗ là nó dễ dàng được giải mã Tuy vậy, những nhà lập trình viên thường quên giải mã tất cả các tham số trước khi sử dụng chúng Tham số cần phải được chuyển đổi đến dạng đơn giản nhất trước khi được kiểm tra, nếu không, dữ liệu xấu đầu vào có thề được mã hóa ẩn và vượt qua tầng bảo vệ của các module kiểm tra dữ liệu
Lỗi kiểm soát truy cập nguồn tài nguyên
Kiểm soát truy cập tài nguyên (authorization), là cơ chế mà ứng dụng web cho phép truy cập đến nội dung, tính năng ứng dụng cho một số người sử dụng và
từ chối truy cập cho một số người sử dụng khác Những kiểm tra này được thực hiện sau quá trình xác thực, và quản lý các quyền truy cập mà người sử dụng được phép Kiểm soát truy cập bề ngoài tưởng chừng là một vấn đề đơn giản nhưng thực
tế là một vấn đề rất khó được thi hành đầy đủ Một mô hình quản lý truy cập tài nguyên cho ứng dụng web cẩn được thiết kế theo sát các nội dung và hàm chức năng của một website cung cấp
Lỗi liên quan đến quá trình quản lý xác thực và phiên truy cập
Trang 21Quản lý xác thực và phiên truy cập bao gồm tất cả các yếu tố quản lý xác thực người sử dụng và các phiên truy cập Xác thực người dùng là một yếu tố quan trọng trong quy trình này, nhưng ngay cả những cơ chế xác thực mạnh nhất vẫn có thể bị mắc những lỗi liên quan đến các chức năng quản lý xác thực, bao gồm thay đổi password, quên password, nhớ password ở trình duyệt, cập nhật tài khoản, và những hàm chức năng khác.
Xác thực người dùng trên ứng dụng web thường bao gồm sử dụng một username và password Những phương pháp xác thực khác mạnh hơn bao gồm các giải pháp phần cứng hoặc mềm dựa trên các token mã hóa hoặc dùng phương pháp sinh trắc học Tuy nhiên những phương pháp này có phần hạn chế do giá thành cao Một số lượng lớn lỗi ứng dụng trong các hàm quản lý tài khoản và phiên truy cập có thể dẫn đến mối nguy cơ lộ tài khoản người sử dụng và thậm chí tài khoản của người quản trị
Ứng dụng web thường phải theo dõi và duy trì phiên truy cập của người dùng nhằm phân biệt các truy cập từ người dùng khác nhau Giao thức HTTP không cung cấp khả năng này và do đó ứng dụng web phải tự tạo cơ chế này Thường thì, môi trường phát triển ứng dụng cung cấp cơ chế quản lý phiên truy cập, tuy nhiên,
đa số các nhà lập trình nghiêng về phát triển cơ chế riêng của họ Trong cả hai trường hợp, nếu token quản lý phiên truy cập không được bảo vệ, tin tặc có thể ăn cắp token truy cập tài khoản của người
Quy trình quản lý báo lỗi
Quy trình quản lý báo lỗi có thể gây ra nhiều vấn đề bảo mật cho một trangweb Vấn đề thông thường nhất là khi các thông báo lỗi có chứa các thông tin nhạy cảm như stack traces, thông tin cơ sở dữ liệu và các mã lỗi được thông báo cho người dùng Những lỗi này cung cấp các thông tin về hệ thống, ứng dụng ở mức độ thấp và thông tin này phải được bảo mật Sử dụng những thông tin này, hacker có thể dò tìm ra những lỗi khác của ứng dụng
c Giải pháp bảo vệ ứng dụng web
Giải pháp về con người và quy trình thủ tục
Các tiêu chí về bảo mật phải được đặt ra ngay từ lúc thiết kế ứng dụng nhằm
Trang 22phát triển các module bảo vệ ngay từ giai đoạn đầu của quá trình phát triển ứng dung Một văn bản chính thức thiết lập chính sách bảo mật ứng dụng nên được xây dựng nhằm cung cấp một chuẩn tối thiểu về bảo mật cho toàn ứng dụng.
Giải pháp về công nghệ bảo vệ ứng dụng web
Một hệ thống web với rất nhiều dữ liệu quý mang tính chất sống còn đối với
tổ chức, doanh nghiệp, đồng thời thường xuyên diễn ra các giao dịch trực tuyến …
và phải đòi hỏi có độ an toàn, sẵn sàng cao Cần phải triển khai hệ thống với nhiều lớp bảo mật khác nhau
Giải pháp bảo vệ cho ứng dụng web-hosting
Đối với các ứng dụng web đặt trên nhà cung cấp internet, các giải pháp đượcđưa ra bao gồm:
• Dịch địa chỉ URL từ tên của DNS ngoài thành tên của DNS trong cho cácgiao dịch trên web, tạo ra một địa chỉ khác cho người dùng truy cập đến thay vì truy cập thẳng vào địa chỉ thật nhằm che giấu cấu trúc của website
• Kiểm tra URL theo danh sách điều khiển truy cập cho phép giới hạn truy cập vào một phần của website
• Kiểm tra các thông tin trong các mẫu nhập thông tin như các ô nhập văn bản,
ô lựa chọn nhằm đảm bảo người dùng nhập đúng các thông tin yêu cầu và loại bỏ các mã tấn công được đưa vào máy chủ web qua đường này
• Kiểm tra và loại bỏ các tấn công tràn vùng đệm
• Mã hóa và ký cho các thông tin Cookie
1.4 Một số nguyên nhân phổ biến làm mất an toàn ứng dụng web
• Thiếu nhận thức về an toàn cho ứng dụng Web của người dùng và người lậptrình
• Thiếu các giải pháp bảo mật sẵn có
• Sự thúc ép sản phẩm nhanh chóng, dẫn đến các nhà lập trình làm nhanh vàẩu, quên đi việc áp dụng các giải pháp cho bảo mật
1.5 Một số quy tắc cơ bản để bảo mật website
Đặt mật khẩu mạnh
Trang 23Thay đổi mật khẩu định kỳ là việc cần thực hiện trước tiên Đây là quy tắc cơ bản giúp tăng cường bảo mật cho hệ thống máy chủ Mật khẩu không chỉ bắt buộc thay đổi sau khi xảy ra sự cố mà cần phải thay đổi thường xuyên, tốt nhất là định kỳ mỗi tháng một lần Một mật khẩu mạnh và có tính an toàn cao phải được kết hợp giữa chữ, số và các ký tự đặc biệt đồng thời phải dễ nhớ để không phải ghi chú vào
sổ tay hoặc máy tính Mỗi tài khoản nên có mật khẩu riêng và nếu dùng chung thông tin đăng nhập cho nhiều trang web khác nhau, bạn phải chắc chắn thay đổi cho tất cả chúng
Sao lưu nội dung website
Ngoài việc sao lưu (backup) cơ sở dữ liệu hàng ngày thì việc sao lưu các nội dung khác của website cũng là việc cần thực hiện thường xuyên Một bản sao lưu website đầy đủ sẽ giúp bạn tiết kiệm rất nhiều thời gian và công sức để giải quyết các vấn đề phát sinh trong trường hợp máy tính hoặc website bị nhiễm malware
Chủ động kiểm tra malware
Chủ động quét kiểm tra malware ngay cả khi máy tính (dường như) vẫn hoạt động bình thường theo định kỳ Đây cũng là cách bảo vệ website và máy tính hiệu quả
Quan tâm bảo mật máy tính
Rất nhiều malware sử dụng phương thức tấn công “drive-by download” thông qua website Hầu hết các cuộc tấn công kiểu này đều “cắm” các khung nội dung ẩn trên các website hợp pháp Khi người dùng truy cập, họ sẽ bị chuyển hướng đến trang chứa malware và qua việc khai thác lỗ hổng, các thành phần plug-
in của trình duyệt để từ đó lây nhiễm vào máy tính người dùng Sử dụng phần mềm bảo mật, cập nhật các miếng vá, bản sửa lỗi hệ điều hành và các ứng dụng thông qua tính năng auto update sẽ giữ máy tính luôn “khỏe mạnh”
Tăng cường bảo mật máy chủ
Nếu đang quản trị máy chủ, bạn đọc cần chú ý đến cấu hình của máy để bảo đảm mức độ an toàn nhất có thể Chẳng hạn loại bỏ những phần mềm không dùng đến Tắt các dịch vụ (service) và module không cần thiết Thiết lập chính sách phù hợp với từng người dùng hoặc nhóm người dùng Thiết lập quyền truy cập/hạn chế
Trang 24truy cập vào các tập tin và thư mục nhất định Cấm việc duyệt thư mục trực tiếp Kiểm tra tập tin ghi nhận hoạt động và lưu ý các hành vi đáng ngờ Dùng giao thức https thay cho giao thức mặc định http để bảo mật truy cập tới website Chỉ sử dụng máy tính với tài khoản quản trị (administrator) khi cần thiết sẽ giảm thiểu thiệt hại khi có vấn đề xảy ra.
Trang 25CHƯƠNG 2: TỔNG QUAN VỀ LỖ HỔNG BẢO MẬT VÀ CÔNG CỤ
PHÁT HIỆN NGUY CƠ AN NINH TRÊN WEBSITE2.1 Khái niệm về lỗ hổng an ninh
Lỗ hổng an ninh là nơi mà đối tượng tấn công có thể khai thác để thực hiện các hành vi tấn công hệ thống Lỗ hổng hệ thống mạng có thể tồn tại trong hệ thống mạng hoặc trong thủ tục quản trị mạng
Tất cả những đặc tính của phần mềm hoặc phần cứng cho phép người dùng không hợp lệ, có thể truy cập hay tăng quyền không cần xác thực
Các lỗ hổng bảo mật trên một hệ thống là các điểm yếu có thể tạo ra sự ngưng trệ của dịch vụ, thêm quyền đối với người sử dụng hoặc cho phép các truy nhập không hợp pháp vào hệ thống Các lỗ hổng cũng có thể nằm ngay các dịch vụ cung cấp như sendmail, web, ftp … Ngoài ra các lỗ hổng còn tồn tại ngay chính tại
hệ điều hành như trong Windows XP, Windows NT, UNIX hoặc trong các ứng dụng mà người sử dụng thường xuyên sử dụng như Word processing, Các hệ databases…
Cho phép đối phương lợi dụng làm tê liệt dịch vụ của hệ thống, đối phương
có thể làm mất khả năng hoạt động của máy tính hay một mạng, ảnh hưởng tới toàn
bộ tổ chức
Một số loại tấn công từ chối dịch vụ:
• Tấn công vào băng thông (Bandwith/Throughput Attacks)
• Tấn công vào giao thức (Protocol Attacks)
Trang 26* Như dội bom thư (SMTP), ngập lụt (TCP flood).
* Lợi dụng cơ chế bắt tay 3 bước nhằm ngăn cản đồng bộ SYN/ACK
Hình 2.1: Hình ảnh lợi dụng cơ chế bắt tay 3 bước
• Tấn công vào lỗ hổng phần mềm (Software Vulnerability Attacks)
2.2.2 Loại lỗ hổng tăng quyền truy nhập không cần xác thực
Là lỗi ở những phần mềm hay hệ điều hành có sự phân cấp người dùng Cho phép loại người dùng với quyền sử dụng hạn chế có thể tăng quyền trái phép
Trang 272.2.3 Loại lỗ hổng cho phép xâm nhập từ xa không xác thực
Là lỗi chủ quan của người quản trị hệ thống hay người dùng Do không thận trọng, thiếu kinh nghiệm và không quan tâm đến vấn đề bảo mật Hay là do cấu hình sai về các thiết bị
Một số những cấu hình thiếu kinh nghiệm:
• Tài khoản có password rỗng
• Tài khoản mặc định
• Không có hệ thống bảo vệ như firewall, IDS, proxy
• Chạy những dịch vụ không cần thiết mà không an toàn: SNMP,
pcAnywhere, VNC …
2.3 Một số cách khai thác lỗ hổng trong hệ thống bảo mật
Các lỗ hổng chủ yếu của các thiết bị mạng thường liên quan đến:
bị không cho dùng lại mật khẩu cũ) Do tính bảo mật nên những mật khẩu này không thể ghi chép lại Điều này dẫn tới các nhà quản trị mạng thường sử dụng các mật khẩu dễ nhớ, đây chính là những mật khẩu yếu
Đặc điểm của các mật khẩu yếu gồm:
• Sử dụng các từ thông thường làm mật khẩu, ví dụ: tháng tư, noel Ngườitấn công có thể sử dụng từ điển điện tử để tìm ra những mật khẩu này một cách dễ dàng
• Không thay đổi mật khẩu trong thời gian dài
• Sử dụng các thông tin cá nhân để đặt mật khẩu (tên của con, con vật yêuthích trong nhà…)
Trang 28• Sử dụng cùng một mật khẩu cho nhiều tài khoản khác nhau.
• Ghi mật khẩu trên các phương tiện ghi chép
2.3.2 Tài khoản đăng nhập mặc định
Tài khoản đăng nhập mặc định là tài khoản của người dùng, được sử dụng
để đăng nhập, được tạo sẵn trên thiết bị
Tài khoản này được sử dụng để giúp thiết lập và cài đặt khởi đầu mà không cần tạo một tài khoản mới Tài khoản mặc định có toàn quyền quản trị thiết bị
Thông thường tài khoản mặc định sẽ bị xóa sau khi hoàn thành các cài đặt, tuy nhiên người dùng thường hiếm khi thực hiện điều này
Người tấn công thường nhắm tới tài khoản này để tấn công, vì mật khẩu thường đơn giản và được công bố rộng rãi
2.3.3 Backdoor
Back door là phương pháp nhằm vượt qua quá trình chứng thực của thiết bị Một Back door là một tài khoản được bí mật tạo ra giúp cho việc truy cập từ xa tới thiết bị
Có 2 cách để tạo một Back door:
• Một là, thiết bị mạng bị người tấn công xâm nhập bằng virus, worm hoặctrojan, sau đó thực hiện chèn tài khoản Back door vào thiêt bị
• Hai là, được tạo bởi các lập trình viên thông qua các phần mềm
2.3.4 Thay đổi các thiết lập về quyền sử dụng
Cũng giống như Hệ điều hành và nhiều ứng dụng khác, thiết bị mạng có thể
là mục tiêu của các tấn công theo kiểu thay đổi các thiết lập về quyền sử dụng cho một tài khoản bất kì
Các lỗ hổng của phần mềm trên thiết bị mạng sẽ bị khai thác đê người tấn công đạt được quyền truy cập tới các tài nguyên mà bình thường sẽ bị cấm
2.4 Một số nguy cơ an ninh thường gặp
2.4.1 Tấn công DoS
2.4.1.1 Định nghĩa về DoS
DoS (Denial of Service) là hình thức tấn công từ chối dịch vụ, có nhiều cách
để thực hiện tấn công kiểu này (VD: SYN Flooding, ), thực chất là Hacker tận
Trang 29dụng lỗ hổng bảo mật nào đó để yêu cầu Server làm việc nào đó, mục đính là không
để Server có khả năng đáp ứng yêu cầu dịch vụ của các Client khác, như vậy gọi là
"từ chối dịch vụ" của các Client khác Thường thì kẻ tấn công là từ một máy
DoS có thể mô tả như hành động ngăn cản những người dùng hợp pháp của một dịch vụ nào đó truy cập và sử dụng dịch vụ đó Nó bao gồm cả việc làm tràn ngập mạng, làm mất kết nối với dịch vụ… mà mục đích cuối cùng là làm cho server không thể đáp ứng được các yêu cầu sử dụng dịch vụ từ các client
Tấn công DoS là một kiểu tấn công mà một người làm cho một hệ thống không thể sử dụng, hoặc làm cho hệ thống đó chậm đi một cách đáng kể với người dùng bình thường, bằng cách làm quá tải tài nguyên của hệ thống
Nếu kẻ tấn công không có khả năng thâm nhập được vào hệ thống, thì chúng
cố gắng tìm cách làm cho hệ thống đó sụp đổ và không có khả năng phục vụ người dùng bình thường đó là tấn công Denial of Service (DoS) Mặc dù tấn công DoS không có khả năng truy cập vào dữ liệu thực của hệ thống nhưng nó có thể làm gián đoạn các dịch vụ mà hệ thống đó cung cấp
2.4.1.2 Dấu hiệu khi bị tấn công DoS
• Thông thường thì hiệu suất mạng sẽ rất chậm
• Không thể sử dụng website
• Không truy cập được bất kỳ website nào
• Tăng lượng thư rác nhanh chóng
2.4.1.3 Mục tiêu và mục đích của tấn công DoS
• Mục tiêu của tấn công DoS
• Tạo ra sự khan hiếm, những giới hạn và không đổi mới tài nguyên
• Băng thông của hệ thống mạng (Network Bandwidth), bộ nhớ, ổ đĩa, vàCPU Time hay cấu trúc dữ liệu đều là mục tiêu của tấn công DoS
• Phá hoại hoặc thay đổi các thông tin cấu hình
• Phá hoại tầng vật lý hoặc các thiết bị mạng
• Mục đích của tấn công DoS
• Cố gắng chiếm băng thông mạng và làm hệ thống mạng bị ngập (flood),khi đó hệ thống mạng sẽ không có khả năng đáp ứng những dịch vụ khác cho người dùng bình thường
Trang 30• Cố gắng làm ngắt kết nối giữa hai máy, và ngăn chặn quá trình truy cậpvào dịch vụ
• Cố gắng ngăn chặn những người dùng sử dụng một dịch vụ nào đó
• Khi tấn công DoS xảy ra người dùng có cảm giác khi truy cập vào dịch
vụ đó như bị:
- Disable Network - Tắt mạng
- Disable Organization - Tổ chức không hoạt động
- Financial Loss – Tài chính bị mất
2.4.1.4 Các dạng tấn công của DoS
a) Tấn công băng thông
Tấn công băng thông nhằm làm tràn ngập mạng mục tiêu với những traffic không cần thiết, với mục địch làm giảm tối thiểu khả năng của các traffic hợp lệ đến được hệ thống cung cấp dịch vụ của mục tiêu
Có hai loại BandWith Depletion Attack:
+ Flood attack: Điều khiển các Agent gởi một lượng lớn traffic đến hệ thống dịch vụ của mục tiêu, làm dịch vụ này bị hết khả năng về băng thông
+ Amplification attack: Điều khiển các agent hay client tự gửi message đến một địa chỉ IP broadcast, làm cho tất cả các máy trong subnet này gửi message đến
hệ thống dịch vụ của mục tiêu Phương pháp này làm gia tăng traffic không cần thiết, làm suy giảm băng thông của mục tiêu
b) Tấn công tràn ngập yêu cầu dịch vụ
Một kẻ tấn công hoặc nhóm zombie cố gắng làm cạn kiệt tài nguyên máy chủ bằng cách thiết lập và phá hủy các kết nối TCP Nó bắt đầu gửi yêu cầu trên tất
cả kết nối và nguồn gốc từ server kết nối tốc độ cao
c) Tấn công tràn ngập SYN
Transfer Control Protocol hỗ trợ truyền nhận với độ tin cậy cao nên sử dụng phương thức bắt tay giữa bên gởi và bên nhận trước khi truyền dữ liệu Bước đầu tiên, bên gửi gởi một SYN REQUEST packet (Synchronize) Bên nhận nếu nhận được SYN REQUEST sẽ trả lời bằng SYN/ACK REPLY packet Bước cuối cùng, bên gửi sẽ truyền packet cuối cùng ACK và bắt đầu truyền dữ liệu
Trang 31Nếu bên server đã trả lời một yêu cầu SYN bằng một SYN/ACK REPLY nhưng không nhận được ACK packet cuối cùng sau một khoảng thời gian quy định thì nó sẽ resend lại SYN/ACK REPLY cho đến hết thời gian timeout Toàn bộ tài nguyên hệ thống “dự trữ” để xử lý phiên giao tiếp nếu nhận được ACK packet cuối cùng sẽ bị “phong tỏa” cho đến hết thời gian timeout.
Nắm được điểm yếu này, attacker gởi một SYN packet đến nạn nhân với địa chỉ bên gởi là giả mạo, kết quả là nạn nhân gởi SYN/ACK REPLY đến một địa chỉ khác và sẽ không bao giờ nhận được ACK packet cuối cùng, cho đến hết thời gian timeout nạn nhân mới nhận ra được điều này và giải phóng các tài nguyên hệ thống Tuy nhiên, nếu lượng SYN packet giả mạo đến với số lượng nhiều và dồn dập, hệ thống của nạn nhân có thể bị hết tài nguyên
Trang 32Dùng điểm nối điểm để tấn công, kẻ tấn công chỉ đạo client của mô hình điểm nối điểm chia sẽ file trung tâm gây ngắt kết nối từ mạng của họ và kết nối tới website giả mạo của victim.
Kẻ tấn công khai thác lỗ hổng tìm thấy trên mạng dùng giao thức DC++ (kết nối trực tiếp), cho phép hoán đổi file giữa các tin nhắn client ngay lập tức
Dùng phương pháp này, kẻ tấn công chạy tấn công DoS rất lớn và làm hại website
f) Tấn công tràn ngập ở cấp độ dịch vụ
Tấn công làm tràn ở cấp độ ứng dụng là kết quả mất dịch vụ của mạng đặc biệt như là: email, tài nguyên mạng, tạm thời ngừng ứng dụng và dịch vụ Dùng kiểu tấn công này, kẻ tấn công phá hủy mã nguồn chương trình và file làm ảnh hưởng tới hệ thống máy tính
Tấn công làm tràn ngập ở cấp độ ứng dụng, kẻ tấn công cố gắng:
• Tràn ngập ứng dụng web tới lưu lượng người sử dụng hợp lệ
• Ngắt dịch vụ cụ thể của hệ thống hoặc con người
• Làm tắt nghẽn cơ sở dữ liệu của ứng dụng kết nối bằng truy vấn thủ công nguy hiểm SQL
2.4.1.5 Cách phòng chống tấn công DoS
• Phòng ngừa các điểm yếu của ứng dụng
Các điểm yếu trong tầng ứng dụng có thể bị khai thác gây ra lỗi tràn bộ
đệm dẫn đến dịch vụ bị chấm dứt Lỗi chủ yếu được tìm thấy trên các ứng dụng mạng nội bộ của Windows, trên các chương trình WebServer, DNS hay SQL Database Cập nhập bản vá là một trong những yêu cầu quan trọng cho việc phòng ngừa Ngoài ra hệ thống cần đặc biết xem xét những yêu cầu trao đổi nội dung giữa client và server, nhằm tránh cho server chịu sự tấn công qua các thành phần gián tiếp
• Ngăn ngừa kênh phát động tấn công sử dụng công cụ
Có rất nhiều các công cụ tự động tấn công DoS, chủ yếu là tấn công pháttán như TFN, tấn công dựa theo nguyên lý Smurf, UDP, SYN hay ICMP Các công
cụ này có đặc điểm cần phái có các kênh phát động để zombie thực hiện tấn công tới một mục đích cụ thể Hệ thống cần có sự giám sát và ngăn ngừa các công các kênh phát động đó
Trang 33• Ngăn chặn tấn công trên băng thông
Khi một cuộc tấn công được phát động, nó thường được phát hiện dựa
trên sự thay đổi đáng kể trong thành phần của lưu lượng hệ thống mạng Việc phân tán lưu lượng gây ra bởi các worm gây tác hại lên router, firewall, hoặc cơ sở hạ tầng mạng Hệ thống cần có những công cụ giám sát và điều phối băng thông nhằm giảm thiểu tác hại của tấn công này
• Ngăn chặn tấn công qua SYN
SYN flood là một trong những tấn công cổ nhất còn tồn tại được đến
hiện nay dù tác hại của nó không giảm Điểm căn bản đề phòng ngừa tấn công này
là khả năng kiểm soát được số lượng yêu cầu SYN-ACK tới hệ thống mạng
2.4.2 Tấn công Cross-Site Scripting (XSS)
2.4.2.1 Khái niệm về XSS
Cross-Site Scripting hay còn được gọi tắt là XSS là một kĩ thuật tấn công bằng cách chèn vào các website động (ASP, PHP, CGI, JSP ) những thẻ HTML hay những đoạn mã script nguy hiểm có khả năng đánh cắp hay thiết lập được những thông tin quan trọng như cookies, mật khẩu, username… Trong đó, những đoạn mã nguy hiểm đựơc chèn vào hầu hết đƣợc viết bằng các Client-Site Script như JavaScript, JScript, DHTML và cũng có thể là cả các thẻ HTML
Phương pháp này không nhằm vào máy chủ hệ thống mà chủ yếu tấn công trên chính máy người sử dụng Hacker sẽ lợi dụng sự kiểm tra lỏng lẻo từ ứng dụng
và hiểu biết hạn chế của người dùng cũng như biết đánh vào sự tò mò của họ dẫn đến người dùng bị mất thông tin một cách dễ dàng
Thông thường hacker lợi dụng địa chỉ URL để đưa ra những liên kết là tác nhân kích hoạt những đoạn chương trình được viết bằng ngôn ngữ máy khách như VBScript, JavaScript … được thực thi trên chính trình duyệt của nạn nhân
Hacker biết được người dùng đang sử dụng 1 ứng dụng web có lỗ hổng XSS Người dùng nhận được 1 liên kết thông qua email hay trên chính trang web
Thông thường Hacker khiến người dùng chú ý bằng những câu kích thích sự
tò mò của người dùng như “Kiểm tra tài khoản”, “Một phần thưởng hấp dẫn đang chờ bạn” … Chuyển nội dung thông tin (cookie, tên, mật khẩu …) về máy chủ của hacker Hacker tạo 1 chương trình hoặc 1 trang web để ghi nhận những thông tin đã