MỞ ĐẦ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.
II. 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 />Công cụ khai thác lỗ hổng trên website />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ác
hacker 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,
cá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 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 bằng
công cụ Havij.
MỤ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 1
2.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 2
CHƯƠ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 3
DANH 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 4
Hì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 5
DANH MỤC TỪ VIẾT TẮT
SỐ HIỆU
1
2
TỪ VIẾT TẮT
DNS
DOS
CỤM TỪ
Domain Name Services
Denial of Service
3
FTP
File Transfer Protocol
4
HTML
HyperText Markup Language
5
HTTP
Hyper Text Transfer Protocol
6
ICMP
Internet Control Message Protocol
7
IDS
Intrusion Detection System
8
IP
Internet Protocol
9
SMTP
Simple Message Transfer Protocol
10
SNMP
Simple Network Management Protocol
11
TCP
Transmission Control Protocol
12
UDP
User Datagram Protocol
13
URL
Uniform Resource Locator
14
WWW
World Wide Web
Trang 6
CHƯƠ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 7
mộ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 8
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
Tính đến hết tháng 3 năm 2014 tình hình an ninh các website của Việt Nam
vẫn diễn rất căng thẳng.
• 559 website .vn bị tấn công
• 22 website .gov.vn - Các website của các tổ chức liên quan tới chính phủ
Việt.
• 108 website .edu.vn - Các website của trường học hoặc các tổ chức giáo dục
bị tấn công.
Trang 9
Biểu đồ thống kê các cuộc tấn công:
.edu.vn
15,7%
.gov.vn
3.7%
.vn
81.1%
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
Trang 10
duyệ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 11
ngườ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àng
tiề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ách
hà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êu
cầ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 12
cà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ững
designer đã 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 tin
phá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 13
chí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
khoảng 3->5 từ khóa là tốt nhất.
1.3.4 Các thành phần trong website
Hai thành phần quan trọng nhất của website hiện nay là:
Trình duyệt Web.
Ứng dụng Web.
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ười
dù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 14
b. 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ư 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 15
bộ. 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 hay
intranet 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 trong
mộ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).
URL
Products Controller
List.aspx
(Controller)
(View)
Detail.aspx
(View)
Product
(Model)
SQL
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
Trang 16
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 trong
cá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:
• Chạy lệnh hệ thống tự chọn.
• Cross site scripting.
• Lỗi tràn bộ đệm.
• Tấn công format string.
• Cookie poisoning.
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 17
Quả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 trang
web. 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 18
phá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ác
giao 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ập
trì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 19
Thay đổ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 plugin 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 20
truy 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 21
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
2.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…
2.2 Các loại lỗ hổng an ninh
Ta có 3 loại lỗ hổng hacker thường tấn công:
• Lỗ hổng từ chối dịch vụ.
• Lỗ hổng cho phép người dùng bên trong mạng với quyền hạn chế có thể tăng
quyền mà không cần xác thực.
• Lỗ hổng cho phép những người không được ủy quyền có thể xâm nhập từ xa
không xác thực.
2.2.1 Lỗ hổng từ chối dịch vụ
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 22