LỜI CẢM ƠN
Lời đầu tiên em xin chân thành cảm ơn sự hướng dẫn tận tình của thầy
Trần Tuấn Vinh, khoa Công nghệ Thông tin, trường Đại học Sư phạm Hà Nội 2.
Trong suốt thời gian thực hiện khóa luận, mặc dù rất bận rộn trong công việc
nhưng thầy vẫn giành nhiều thời gian và tâm huyết trong việc hướng dẫn em.
Thầy cung cấp cho em rất nhiều hiểu biết về một lĩnh vực mới khi em mới bắt
đầu bước vào thực hiện khóa luận.
Em cũng xin chân thành cảm ơn các thầy, cô giáo trong khoa Công nghệ
Thông tin, cũng như các thầy cô trong trường đã giảng dạy và giúp đỡ em trong
4 năm học vừa qua. Chính các thầy cô đã xây dựng cho chúng em những kiến
thức nền tảng và kiến thức chuyên môn để em có thể hoàn thành khóa luận tốt
nghiệp và chuẩn bị cho những công việc của mình sau này.
Em gửi lời cảm ơn đến tất cả bạn bè, những người đã luôn bên em, động
viên và khuyến khích em trong quá trình thực hiện khóa luận tốt nghiệp.
Và cuối cùng, em xin bày tỏ lòng biết ơn sâu sắc đến gia đình đã nuôi
nấng và luôn là chỗ dựa vững chắc cho em.
Hà Nội, ngày 05 tháng 05 năm 2013
Sinh viên thực hiện
Nguyễn Thị Thanh Vân
1
LỜI CAM ĐOAN
Tôi xin cam đoan kết quả đạt được trong khóa luận là kết quả tìm hiểu của
bản thân. Trong toàn bộ nội dung của khóa luận, những điều được trình bày hoặc
là của cá nhân tôi hoặc là được tổng hợp từ nhiều nguồn tài liệu. Tất cả các tài
liệu tham khảo đều có xuất xứ rõ ràng và được trích dẫn hợp pháp.
Tôi xin chịu trách nhiệm về khóa luận của mình!
Hà Nội, tháng 05 năm 2013
Sinh viên
Nguyễn Thị Thanh Vân
2
MỤC LỤC
LỜI CẢM ƠN ........................................................................................................ 1
LỜI CAM ĐOAN .................................................................................................. 2
CÁC KÝ HIỆU VIẾT TẮT ................................................................................... 6
MỞ ĐẦU ............................................................................................................... 6
CHƯƠNG 1: TỔNG QUAN VỀ WEBSITE ....................................................... 10
1.1. Tổng quan .................................................................................................. 10
1.2. Các dịch vụ và ứng dụng trên nền web ...................................................... 12
CHƯƠNG 2: KHẢO SÁT HIỆN TRẠNG .......................................................... 13
2.1. Tình hình an ninh mạng thế giới ................................................................ 13
2.2. Tình hình bảo mật ở Việt Nam .................................................................. 15
CHƯƠNG 3: CÁC PHƯƠNG PHÁP TẤN CÔNG VÀ MỘT SỐ GIẢI PHÁP
BẢO MẬT............................................................................................................ 18
3.1. Giới thiệu chung về các phương pháp tấn công website ........................... 18
3.2. Broken Authentication and Session Management ..................................... 20
3.2.1. Giới thiệu ............................................................................................. 20
3.2.2. Hoạt động............................................................................................. 21
3.2.3. Cách phát hiện lỗi ................................................................................ 22
3.2.4. Phòng chống ........................................................................................ 22
3.3. Insecure Direct Object References............................................................. 22
3.3.1. Giới thiệu ............................................................................................. 22
3.3.2. Hoạt động............................................................................................. 23
3.3.3. Cách phát hiện lỗi ................................................................................ 24
3.3.4. Phòng chống ........................................................................................ 24
3.4. Cross Site Request Forgery........................................................................ 25
3.5. Security Misconfiguration ......................................................................... 25
3.6. Insecure Cryptographic Storage................................................................. 25
3
3.7. Failure to Restrict URL Access ................................................................. 26
3.8. Insufficient Transport Layer Protection ..................................................... 27
3.8.1. Giới thiệu ............................................................................................. 27
3.8.2. Hoạt động............................................................................................. 27
3.8.3. Phòng chống ........................................................................................ 28
3.9. Unvalidated Redirects and Forwards ......................................................... 28
3.9.1. Giới thiệu ............................................................................................. 28
3.9.2. Hoạt động............................................................................................. 29
3.9.3. Phòng chống ........................................................................................ 30
3.10. Local Attack ............................................................................................. 30
3.10.1. Tìm hiểu về Local Attack ................................................................... 30
3.10.2. Các bước thực hiện trong Local Attack ............................................. 31
3.10.4. Các kỹ thuật Local Attack .................................................................. 32
3.10.5. Cách phòng chống ............................................................................. 35
3.10.6. Các công cụ hỗ trợ............................................................................. 36
3.11. Tấn công từ chối dịch vụ (Denial of Sever)............................................. 37
3.11.1. DOS .................................................................................................... 37
3.11.2. DDOS (Distributed Denial of Service) .............................................. 43
3.12. SQL Injection ........................................................................................... 47
3.12.1. Định nghĩa ......................................................................................... 47
3.12.2. Các dạng tấn công SQL Injection ...................................................... 47
3.12.3. Tránh sự kiểm soát ............................................................................. 52
3.12.4. Các phòng tránh SQL Injeciton ......................................................... 52
3.13. Cross Site Scripting (XSS)....................................................................... 53
3.13.1. Tấn công XSS ..................................................................................... 53
3.13.2. Hoạt động của XSS ............................................................................ 53
3.13.3. Cách tấn công .................................................................................... 53
4
3.13.4. Phân loại ............................................................................................ 54
3.14. Phishing .................................................................................................... 58
3.14.1. Giới thiệu về Phishing ....................................................................... 58
3.14.2. Những yếu tố để một cuộc tấn công Phishing thành công ............... 58
3.14.3. Những phương thức hoạt động của Phishing .................................... 59
3.14.4. Quá trình hoạt động........................................................................... 61
3.14.5. Các kiểu lừa đảo ................................................................................ 62
3.14.6. Phòng chống ...................................................................................... 63
3.15. AutoComplete .......................................................................................... 64
3.16. Xây dựng chương trình ứng dụng ............................................................ 66
3.16.1. Đặc tả, yêu cầu ..................................................................................... 66
3.16.2. Chức năng hệ thống .............................................................................. 68
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ........................................................... 69
TÀI LIỆU THAM KHẢO ............................................................................................. 71
5
CÁC KÝ HIỆU VIẾT TẮT
Ký hiệu
ACK
CPU
DDOS
DOS
DNS
IMCP
Viết đầy đủ
Acknowledgement
Center Processing Unit
Distributed Denial Of Server
Denial Of Server
Domain Name System
Internet Control Message Protocol
ID
IP
HTTP
Identification
Internet Protocol
HyperText Transfer Protocol
HTML
PHP
Hypertext Markup Language
Hypertext Preprocessor
SMTP
Simple Mail Transfer Protocol
SQL
Structured Query Language
SSL
Secure Socket Layer
SSN
SYN
TCP
TLS
UDP
Social Security Number
The Synchronous Idle Character
Transmission Control Protoco
Transport Layer Security
User Datagram Protocol
URL
XSS
Uniform Resource Locator
Cross Site Scripting
6
Ý nghĩa
Gói tin báo nhận
Bộ xử lý trung tâm
Từ chối dịch vụ
Từ chối dịch vụ
Hệ thống tên miền
Giao thức xử lý các thông báo
trạng thái cho IP
Nhận dạng cá nhân
Giao thức internet
Giao thức truyền tải siêu văn
bản
Ngôn ngữ liên kết siêu văn bản
Ngôn ngữ tiền xử lý các siêu
văn bản
Giao thức truyền tải thư tín đơn
giản
Ngôn ngữ truy vấn mang tính
cấu trúc
Giao thức an ninh giao thông
mạng
Số an sinh xã hội
Ký tự đồng bộ hóa
Giao thức điều khiển
Giao thức bảo mật
Các gói tin biết điểm xuất phát
và đích
Tài nguyên trên internet
Tấn công website
MỞ ĐẦU
Lý do chọn đề tài
Trong thời đại ngày nay internet trở nên quen thuộc và là một công cụ hữu
ích để một đất nước giới thiệu hình ảnh hay đơn giản chỉ là một trang web cá
nhân của một ai đó giới thiệu về mình. Các dịch vụ trên mạng đã thâm nhập vào
hầu hết các lĩnh vực trong đời sống xã hội. Khi mà sự phát triển của mạng
internet ngày càng phát triển đa dạng và phong phú thì các cuộc tấn công website
cũng phát triển hết sức phức tạp. Điều này đặt ra vấn đề cấp thiết là làm thế nào
để đảm bảo an toàn thông tin cho ứng dụng web, thông tin của người sử dụng.
Xuất phát từ thực tế đó, khóa luận này em sẽ tìm hiểu về các cách tấn công
Website và cách phòng chống các loại tấn công này.
Thông qua việc tìm hiểu, em mong muốn góp một phần nhỏ vào việc
nghiên cứu và tìm hiểu về các vấn đề an ninh mạng giúp cho việc học tập và
nghiên cứu.
Mục đích và nhiệm vụ nghiên cứu
- 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 website như: Cross Site Scripting, SQL
Injection, Broken Authentication and Session Management, Insecure
Direct Object References, Insecure Cryptographic Storage, Failfure to
Restrict URL Access, Insufficient Transport Layer Protection, Unvalidates
Redirects and Forwards, Phishing, Local Attack, Autocomplete, DOS.
- Xây dựng website tìm kiếm và phát hiện các kỹ thuật tấn công website như
Reflected Cross Site Scripting, Stored Cross Site Scripting, SQL Injection,
Broken Authentication using SQL Injection, Autocomplete enabled on
sentisive input fields, Direct Object References, Unvalidated Redirects.
7
- Kết quả thực hiện: nắm rõ bản chất và cách thức tấn công website, áp dụng
vào thực tế để hạn chế thấp nhất khả năng bị tấn công website.
Đối tượng và phạm vi nghiên cứu
- Cơ sở lý thuyết liên quan của hoạt động website.
- Các kỹ thuật tấn công website.
- 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ữ PHP, My SQL.
Ý nghĩa khoa học và thực tiễn của đề tài
- Về mặt lý thuyết, đề tài thể hiện rõ các phương pháp tấn công cơ bản mà
kẻ tấn công thường sử dụng để tấn công website 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 kĩ thuật tấn công được tìm hiểu, nghiên cứu
trong bản báo cáo này, nếu áp dụng tốt các biện pháp phòng ngừa trong khóa
luận nêu ra sẽ góp phần nâng cao khả năng bảo vệ website trước những nguy cơ
tấn công của kẻ xấu.
Phương pháp nghiên cứu
- Tổng hợp tìm hiểu và 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
chống ở các mức.
- Thiết kế bảng cơ sở dữ liệu, xây dựng Web demo để tìm kiếm và phát hiện
các lỗi bảo mật, từ đó ngăn ngừa kẻ tấn công lợi dụng các lỗi bảo mật để
tấn công website.
Cấu trúc khóa luận
8
Khóa luận tốt nghiệp được chia làm 3 chương:
Chương 1: Tổng quan về website
Chương 2: Khảo sát hiện trạng
Chương 3: Các phương pháp tấn công website và cách phòng chống
9
CHƯƠNG 1:
TỔNG QUAN VỀ WEBSITE
1.1. Tổng quan
World Wide Web đã được tạo ra vào năm 1990 của CERN bởi kỹ sư Tim
Berners - Lee. Ngày 30 tháng 4 năm 1993, CERN thông báo rằng World Wide
Web sẽ được miễn phí để sử dụng cho bất cứ ai.
Website là một tập hợp các trang web (web pages) bao gồm văn bản, hình
ảnh, video, flash,… thường chỉ nằm trong một tên miền (domain name) hoặc tên
miền phụ (subdomain). Website được lưu trữ (web hosting) trên webserver có
thể truy cập thông tin.
Website đóng vai trò là một văn phòng hay một cửa hàng trên mạng internet –
nơi giới thiệu thông tin về doanh nghiệp, sản phẩm hoặc dịch vụ do doanh
nghiệp cung cấp… Có thể coi website chính là bộ mặt của doanh nghiệp, là nơi
để đón tiếp và giao dịch với các khách hàng, đối tác trên internet.
Website động (Dynamic website) là website có cơ sở dữ liệu, được cung cấp
công cụ quản lý website (admin tool). Đặc điểm của website động là tính linh
hoạt và có thể cập nhật thông tin thường xuyên, quản lý các thành phần trên
website dễ dàng. Loại website này thường được viết bằng các ngôn ngữ lập trình
như PHP, ASP.NET, JSP, Perl,…, quản trị cơ sở dữ liệu bằng SQL hoặc
MYSQL…
Website tĩnh do lập trình bằng ngôn ngữ HTML theo từng trang, không có cơ
sở dữ liệu và không có các công cụ quản lý thông tin website. Thông thường
website tĩnh được thiết kế bằng các phần mềm như FrontPage, Dreamwaver…
10
Đặc điểm của website tĩnh là ít thay đổi nội dung, sự thay đổi nội dung này
thường liên quan đến sự thay đổi các văn bản đi kèm thể hiện nội dung trên đó.
Hiện nay, hầu hết các doanh nghiệp đều sử dụng website động, thế hệ công
nghệ website được mọi người biết đến là web 2.0, web 3.0 và công nghệ mới
nhất hiện nay là web office.
Tên miền (domain): tên miền chính là địa chỉ website, trên internet chỉ tồn tại
duy nhất một địa chỉ (tức là tồn tại duy nhất một tên miền). Có hai loại tên miền:
Tên miền Quốc tế: do Trung tâm quản lý tên miền quốc tế cấp: thường có
đuôi .com, .net, .biz, .info,…Tên miền loại này dễ mua, giá rẻ nhưng
cũng dễ bị kẻ tấn công ăn cắp tên miền.
Tên miền của các quốc gia: do Trung tâm quản lý tên miền của mỗi quốc
gia quản lý. Tên miền Việt Nam có đuôi vn, com.vn, edu.vn, gov.vn,…
do VNNIC quản lý. Muốn sử dụng tên miền này cần làm hồ sơ đăng ký
và thanh toán phí khá cao gồm phí đăng kí đóng 1 lần và phí duy trì hàng
năm. Tuy nhiên tên miền này được cho là thể hiện sự nghiêm túc và
chuyên nghiệp cho doanh nghiệp và không bị ăn cắp tên miền.
Lưu trữ website: dữ liệu thông tin của website phải được lưu trữ trên một máy
tính luôn hoạt động và kết nối với mạng Internet. Một máy chủ có thể lưu trữ
nhiều website, nếu máy chủ này bị sự cố chẳng hạn tắt trong một thời điểm nào
đó thì không ai có khả năng truy cập được những website lưu trữ trên máy chủ
tại thời điểm bị sự cố.
Tùy theo nhu cầu lưu trữ thông tin mà doanh nghiệp có thể thuê dung lượng
thích hợp cho website.
11
Dung lượng host: là nơi để lưu trữ cơ sở dữ liệu của website (hình ảnh, thông
tin,…), đơn vị dung lượng là MB hoặc GB.
Băng thông hay dung lượng đường truyền là tổng số MB dữ liệu tải lên máy
chủ hoặc tải về từ máy chủ nơi đặt website, đơn vị đo thông thường là MB/tháng.
1.2. Các dịch vụ và ứng dụng trên nền web
- Với công nghệ hiện nay, website không chỉ đơn giản là một trang tin cung
cấp các tin bài đơn giản. Những ứng dụng viết trên nền web không chỉ
được gọi là một phần của website nữa, giờ đây chúng được gọi là phần
mềm viết trên nền web.
- Có rất nhiều phần mềm chạy trên nền web như google documents,
email,…
- Một số ưu điểm của phần mềm hay ứng dụng chạy trên nền web:
Mọi người đều có trình duyệt và bạn chỉ cần trình duyệt để chạy phần
mềm.
Phần mềm luôn luôn được cập nhật vì chúng chạy trên máy chủ.
Luôn sẵn sàng 24/7.
Dễ dàng sao lưu dữ liệu thường xuyên.
Có thể truy cập mọi lúc, mọi nơi, miễn là bạn có mạng.
Chi phí triển khai cực rẻ so với phần mềm chạy trên desktop.
Hãy hình dung bạn có một phần mềm quản lý bán hàng hay quản lý công
việc ở công ty. Không phải lúc nào bạn cũng ở công ty, với phần mềm viết trên
nền web, bạn có thể vào kiểm tra, điều hành ở bất cứ đâu, thậm chí bạn chỉ cần
một chiếc điện thoại chạy được trình duyệt mà không phải cần đến một chiếc
máy tính.
12
CHƯƠNG 2:
KHẢO SÁT HIỆN TRẠNG
2.1. Tình hình an ninh mạng thế giới
Năm 2012, Kaspersky đã làm cuộc khảo sát về tình hình an ninh mạng 2012
với giám đốc điều hành của 3.300 công ty thuộc 22 quốc gia trên thế giới: trong
đó có 30% là doanh nghiệp nhỏ, 41% doanh nghiệp vừa và 29% là doanh nghiệp
lớn. Kết quả cho thấy 50% rủi ro kinh doanh của các doanh nghiệp là từ các mối
đe dọa qua mạng, 26% là các vấn đề liên quan đến an ninh mạng. Những báo cáo
trên chỉ ra rằng, các đợt tấn công của kẻ tấn công nhằm vào các doanh nghiệp
hiện đang ngày càng gia tăng.
Với sự xuất hiện của hàng loạt các cuộc tấn công trực tuyến trong thời
gian qua, báo hiệu thời kì khó khăn cho các ngân hàng trực tuyến trên toàn thế
giới. Năm 2012, một cuộc tấn công nhằm vào các ngân hàng Mỹ, khiến cho các
website của các ngân hàng này ngừng trệ hoặc dừng hẳn. Theo Prolexic, một
công ty về hạn chế các cuộc tấn công từ chối dịch vụ phân tán (DDOS), đã đưa
ra ý kiến về các cuộc tấn công này. Cụ thể là một loại virus mới có tên
Itsoknoproblembro, có khả năng gây lây nhiễm cho các máy chủ tại các trung
tâm dữ liệu, các nhà cung cấp dịch vụ đám mây, biến các máy chủ đó thành các
“bRobots” mà hầu như không chương trình chống virus nào hiện nay dò tìm ra
được chúng. Bằng việc lây nhiễm cho các trung tâm dữ liệu thay vì các máy tính
đơn lẻ, những kẻ tấn công đã giành lấy sức mạnh tính toán để dựng lên vô số các
cuộc tấn công từ chối dịch vụ.
Từ những nỗ lực của mình, Mỹ đã tìm ra những kẻ đứng sau những cuộc
tấn công này là từ Iran nhằm trả thù vì những hình phạt kinh tế và các cuộc tấn
công trực tuyến của Mỹ.
13
Ông Lewis đã nói lưu lượng mạng làm nghẽn băng thông các site ngân
hàng Mỹ nhiều gấp nhiều lần so với lưu lượng mà Nga đã nhằm vào Estonia
trong cuộc tấn công trực tuyến dài cả tháng vào năm 2007, gần như đánh sập hệ
thống mạng tại quốc gia Baltic này.
Hình thức tấn công này làm tăng sự lo ngại về làn sóng các cuộc tấn công
trực tuyến vào các ngân hàng Mỹ trong các tuần gần đây. Các nhà nghiên cứu an
ninh nói rằng thay vì việc khai thác các máy tính riêng lẻ, những kẻ tấn công đã
chiếm quyền điều khiển các mạng máy tính tại các trung tâm dữ liệu. “Phạm vi,
mức độ và hiệu quả của các cuộc tấn công đó là chưa từng có từ trước đến nay”,
Carl Herberger, phó chủ tịch các giải pháp an ninh tại Radware, một hãng an
ninh từng nghiên cứu các cuộc tấn công vào các ngân hàng và các nhà cung cấp
dịch vụ đám mây.
Kể từ tháng 9 năm 2012, những kẻ xâm nhập trái phép đã gây ra những vụ
phá hoại chính cho các site ngân hàng trực tuyến của Bank of America,
Citigroup, Wells Fargp, U.S.Bancrop, PNC, Captital One,…
Họ đã sử dụng các trung tâm dữ liệu cho công việc kinh doanh của các
công ty hiện nay, nhưng kẻ tấn công có thể tận dụng các hệ thống hàng trăm,
hàng ngàn máy chủ từ những hệ thống này cho các cuộc tấn công của mình.
John Kindervag, một nhà phân tích tại Forrester Research nói: “Các tin tặc
tấn công bằng việc tạo ra các mạng máy tính cá nhân hoặc bằng việc ăn cắp toàn
bộ các tài nguyên từ các hệ thống đám mây quản lý kém”.
Các nhà nghiên cứu tại Radware đã nghiên cứu các cuộc tấn công vào vài
ngân hàng và đã thấy rằng cuộc tấn công này tới từ các trung tâm dữ liệu thế
giới. Họ đã phát hiện nhiều dịch vụ đám mây và dịch vụ thuê đặt chỗ web
14
(hosting) khác nhau bị lây nhiễm bởi một dạng phần mềm độc hại đặc biệt phức
tạp, gọi là Itsoknoproblembro, đã được thiết kế để tránh bị dò tìm ra từ những
chương trình diệt virus. Các botnet, hoặc các mạng máy tính cá nhân bị lây
nhiễm với Itsoknoproblembro: họ gọi chúng là các bRobots.
Ông Herberger đã từ chối nêu tên các nhà cung cấp dịch vụ đám mây nào đã
khai thác, nhưng ông đã nói rằng mỗi cuộc tấn công vào một ngân hàng mới đã
cung cấp bằng chứng ngày càng nhiều hơn các trung tâm dữ liệu đã bị lây nhiễm
và khai thác.
2.2. Tình hình bảo mật ở Việt Nam
Theo khảo sát mới nhất của Chi hội an toàn thông tin phía Nam (VNISA), tình
hình an toàn thông tin năm 2012 vẫn ghi nhận xu hướng gia tăng của các cuộc
tấn công, nhất là tấn công có chủ đích đối với các tổ chức, doanh nghiệp trong
nước. Và mặc dù ý thức bảo mật của các đơn vị có phần tiến triển nhưng vẫn còn
chưa đủ.
Năm 2012, ghi nhận của Microsoft cho biết, có hơn 2.500 website của
Việt Nam bị tin tặc tấn công, so với 300 website của năm 2011.
Khảo sát của Chi hội an toàn thông tin phía Nam công bố: tấn công theo
hình thức quấy phá, dò tìm và tấn công DOS đang gia tăng mạnh và gây thiệt hại
tài chính nhất.
Ông Trịnh Ngọc Minh – Phó chủ tịch an toàn thông tin VNISA phía Nam
nhận định, tình hình an ninh mạng trong năm 2012 diễn biến theo xu hướng
không có những vụ tấn công nổi cộm nhưng tấn công nhỏ lẻ dưới nhiều hình
thức vẫn tăng.
15
Bên cạnh đó sự bùng nổ của mã độc (malware) đang là điều đáng ngai
nhất. Theo thống kê của PandaLab, có 80 ngàn mã độc mới xuất hiện mỗi ngày.
Buôn bán mã độc trở thành một thị trưởng ngầm nguy hiểm. Vòng đời của mã
độc từ khi được phát triển đến khi thành thương phẩm và hết tác dụng khoảng 2
năm. Sau một năm được rao bán, giá một mã độc có thể hạ từ 1.000 USD xuống
còn 25 USD. Với mức giá này, bất cứ doanh nghiệp ở quy mô nào cũng có thể bị
đe dọa.
VNISA cho biết, trong các hình thức tấn công bằng mã độc đã phát hiện,
có 30% tấn công do Trojan hay Rootkit, 30% là do virut và worm. Tỷ lệ các hình
thức tấn công này trong năm 2012 đều tăng so với năm 2011.
Ở Việt Nam, với sự đầu tư cho an toàn thông tin chưa nhiều, sẽ có nguy cơ
chịu không ít rủi ro. Đặc biệt, trong năm 2012, không chỉ các website của doanh
nghiệp, Chính phủ, mà cả những website của các công ty bảo mật hàng đầu của
Việt Nam cũng bị tấn công.
Tình trạng tấn công các website của doanh nghiệp bằng hình thức sử dụng
nhiều máy tính truy cập gây tắc nghẽn hệ thống – DDOS hay thay đổi toàn bộ
nội dung website. Các kiểu tấn công này làm tê liệt mọi giao dịch, thông tin
tương tác với khách hàng, ảnh hưởng lớn đến hoạt động kinh doanh và uy tín của
chủ website. Đây là hiện tượng báo động mà Doanh nghiệp cần lưu ý và có giải
pháp phòng vệ.
Đầu tháng 7 năm 2012, trang web của Trung tâm Đào tạo lập trình viên
Aprotrain Aptech (AA) bị nhiều phụ huynh và học sinh phàn nàn vì truy cập khó
khăn và hầu như không được vào trang web. Bộ phận kỹ thuật kiểm tra hồ sơ
nhật ký thấy số lượng kết nối vào máy chủ tăng bất thường (chỉ trong thời gian
16
ngắn, số kết nối tăng thêm 2.000 lượt), hiệu năng sử dụng RAM, CPU đều trên
90%...
Giữa tháng 7 năm 2012, trang tin tức dành cho giới trẻ kenh14.vn cũng bị
tấn công tương tự. Suốt từ 19 đến 22 giờ, người dùng rất khó truy cập vào trang
web. Truy cập được thì giao diện bị thay đổi, các bài viết bị chèn vào những câu
nói có ý đe dọa ban biên tập. Vụ tấn công cũng để lại những thắc mắc trong lòng
độc giả kenh14.vn về độ tin cậy của các bài viết trên trang web này.
Theo thống kê của Công Ty An ninh mạng Bkav, trung bình một tháng có
đến 2.000 trang web của Việt Nam bị tấn công như trang web của Liên đoàn
Bóng Đá Việt Nam, báo điện tử Vietnamnet, Unikey…
17
CHƯƠNG 3:
CÁC PHƯƠNG PHÁP TẤN CÔNG VÀ MỘT SỐ GIẢI PHÁP BẢO MẬT
3.1. Giới thiệu chung về các phương pháp tấn công website
Diện mạo những mối nguy về ứng dụng internet thay đổi một cách liên
tục. Nguyên nhân chính về sự phát triển này là sự tiến bộ của kẻ tấn công, sự ra
đời của những công nghệ mới và sự thiết lập của những hệ thống ngày càng phức
tạp. Để theo kịp tiến độ này buộc người dùng web phải cập nhật thông tin hằng
ngày. Các cuộc tấn công được thực hiện một cách tự động với nguyên nhân đa số
là các lỗ hổng bảo mật. Đặc trưng của các cuộc tấn công là lưu lượng truy cập dữ
liệu thay đổi nhanh chóng rồi tiếp theo là khoảng thời gian hoạt động nhẹ hơn.
Con số thống kê dưới đây từ kết quả kiểm tra các ứng dụng web trong suốt từ
năm 2007 đến năm 2011 cho thấy phần trăm các ứng dụng được tìm thấy bị ảnh
hưởng bởi những nhóm lỗ hổng bảo mật thông dụng:
Broken Authentication (62%): nhóm lỗ hổng này gồm nhiều khuyết điểm
khác nhau trong cơ chế đăng nhập của ứng dụng có thể cho phép kẻ tấn
công đoán biết những mật khẩu kém, thực hiện tấn công brute-force (kiểu
tấn công dùng cho tất cả các loại mã hóa) hoặc vượt qua phần đăng nhập.
Broken Access Control (71%): lỗ hổng này liên quan đến những trường
hợp ứng dụng mắc lỗi bảo vệ quyền truy cập vào dữ liệu và tính năng của
nó, nghiêm trọng hơn là cho phép kẻ tấn công thấy dữ liệu nhạy cảm của
người dùng khác được lưu trữ trên máy chủ.
SQL Injection (32%): lỗ hổng này cho phép kẻ tấn công gửi mã độc để
can thiệp vào phần tương tác của ứng dụng với cơ sở dữ liệu. Kẻ tấn công
có thể lấy dữ liệu tùy ý từ ứng dụng, can thiệp vào phần logic của nó,
hoặc thực thi lệnh trên máy chủ cơ sở dữ liệu.
18
Cross Site Scripting
cripting (94%): lỗ hổng này cho phép kẻẻ tấn công nhằm vvào
những người dùng
ùng khác của
c ứng dụng, nghiêm trọng làà có th
thể tăng quyền
truy cập vào dữ
ữ liệu của họ, thực hiện các hành
h
động
ộng không đđược chứng
thực,
ực, hoặc thực hiện các tấn công khác với họ.
Information Leakage
eakage (78%): lỗ hổng này liên quan đến
ến các tr
trường hợp
ứng dụng làm
àm lộ
lộ thông tin nhạy cảm giúp cho kẻ tấn công có thể phát
triển
ển một đợt tấn công vào
v ứng dụng thông qua việc xử lý lỗi không triệt
để hoặc các hành
ành vi khác.
Cross Site Request
Requ Forgery (92%): người dùng của
ủa ứng dụng có thể bị
thực
ực thi những hành
h
động không được định hướng trên
ên ứng dụng trong
ngữ cảnh và mức
ức độ quyền hạn của họ. Lỗ hổng
hổng cho phép m
một trang web
độc hại được
ợc ghé thăm bởi nạn nhân nhằm tương
ương tác vvới ứng dụng để
thực
ực hiện những hành
h
động mà người dùng không có định
ịnh hhướng.
Hình 1: Các lỗi
l bảo mật thông dụng nhất
Tuy nhiên, các lỗi
ỗi bảo mật này
n đã được sửa chữa và có nhi
hiều công cụ, phần
mềm phòng chống vàà ngăn chặn.
ch Do đó, đến năm 2012 đã xuất
ất hiện th
thêm nhiều
kĩ thuật tấn công mới.
19
Hội đồng các chuyên gia bảo mật đã xếp hạng những kĩ thuật tấn công trên
web trong năm 2012 và các chuyên gia cũng đã liệt kê danh sách 10 kĩ thuật tấn
công web hàng đầu sau quá trình đánh giá và ghi nhận. Dưới đây là 10 kĩ thuật
tấn công web được các chuyên gia về bảo mật bầu chọn:
- SQL Injection
- Cross Site Scripting
- Broken Authentication and Session Management
- Cross Site Resquest Forquery (CSRF)
- Security Misconfiguration
- Insecure Direct Object References
- Insecure Cryptographic Storage
- Failfure to Restrict URL Access.
- Insufficient Transport Layer Protection.
- Unvalidated Redirects and Forwards.
3.2. Broken Authentication and Session Management
3.2.1. Giới thiệu
Broken Authentication and Session Management bao gồm tất cả các khía
cạnh xử lý xác thực và quản lý phiên làm việc. Xác thực là một khía cạnh quan
trọng của quá trình này nhưng ngay cả các cơ chế xác thực vững chắc cũng có
thể bị suy yếu do chức năng quản lý có khe hở, bao gồm thay đổi mật khẩu, ghi
nhớ mật khẩu, thay đổi tài khoản và nhiều chức năng khác. Vì các cuộc tấn công
có thể xảy ra với nhiều ứng dụng web nên chức năng quản lý tài khoản phải yêu
cầu xác thực lại ngay cả khi người sử dụng có phiên làm việc hợp lệ.
Các ứng dụng web thường phải thiết lập phiên để theo dõi luồng các yêu
cầu từ người dùng, giao thức HTTP không hỗ trợ khả năng này vì vậy các ứng
20
dụng web phải tự tạo ra nó. Thông thường môi trường ứng dụng web cung cấp
khả năng phiên nhưng nhiều nhà phát triển thích tự họ tạo ra một thẻ phiên riêng
cho họ. Tuy nhiên, chức năng ứng dụng liên quan đến quản lý xác thực và quản
lý phiên làm việc thường thực hiện một cách chính xác, điều này cho phép kẻ tấn
công lấy được mật khẩu, khóa, thẻ phiên hoặc khai thác lỗi để thực hiện các giả
mạo danh tính người dùng.
Ví dụ: Thời gian chờ của ứng dụng không được chỉnh hợp lý. Người dùng sử
dụng một máy công cộng để truy cập vào trang web. Thay vì chọn đăng xuất
người dùng chỉ đóng trình duyệt đó, vài giờ sau vẫn có thể sử dụng phiên làm
việc đó.
3.2.2. Hoạt động
- Tác nhân đe dọa: những kẻ tấn công nặc danh từ phía ngoài hoặc người
dùng sở hữu tài khoản muốn ăn cắp thông tin từ tài khoản khác.
- Hướng tấn công: kẻ tấn công lợi dụng những sơ hở trong các đoạn mã
kiểm tra định danh (xem tài khoản, mật khẩu, thứ tự phiên làm việc) để giả
mạo người dùng.
- Điểm yếu bảo mật: người phát triển thường xuyên tự xây dựng những mô
hình chứng thực và quản lý các phiên làm việc nhưng xây dựng đúng cách
thì không dễ. Kết quả là thường xuyên có lỗi trong nhiều phần như đăng
xuất, quản lý mật khẩu, thời gian chờ, ghi nhớ người dùng, câu hỏi bí mật,
cập nhật tài khoản,…Tìm những lỗi này rất khó khăn vì lập trình có thể
độc lập, không giống nhau.
- Ảnh hưởng kỹ thuật: Lỗi như trên có thể cho phép một vài hoặc toàn bộ tài
khoản bị tấn công. Khi thành công, kẻ tấn công có thể làm nhiều thứ dưới
quyền nạn nhân. Những tài khoản đặc quyền thường là mục tiêu chính.
21
3.2.3. Cách phát hiện lỗi
- Thông tin có thể bị đoán ra hoặc thay thế vì những điểm yếu trong các
chương trình quản lý hay không?
- Thứ tự phiên làm việc có hiển thị trong URL hay không?
- Thứ tự phiên làm việc có thể bị giả mạo bằng các phương pháp định hình
phiên làm việc hay không?
- Thứ tự phiên làm việc có thay đổi sau khi người dùng đăng nhập lại hay
không?
3.2.4. Phòng chống
Phương pháp được khuyến khích cho một tổ chức là cho phép người phát
triển ứng dụng web truy cập:
Một tập hợp những phương thức quản lý định danh mạnh. Nó cho phép
đáp ứng tất cả những yêu cầu của kiểm tra định danh. Có một giao diện
đơn giản cho người phát triển ứng dụng.
Nỗ lực nhiều để tránh bị ăn cắp phiên làm việc
3.3. Insecure Direct Object References
3.3.1. Giới thiệu
Kĩ thuật này xảy ra khi người phát triển để lộ một tham chiếu đến những
đối tượng trong hệ thống như các tệp tin, thư mục hay chìa khóa dữ liệu. Nếu
chúng ta không có một hệ thống kiểm tra truy cập, kẻ tấn công có thể lợi dụng
những tham chiếu này để truy cập dữ liệu một cách trái phép.
Ví dụ: Ứng dụng sử dụng dữ liệu chưa được kiểm tra trong một truy vấn
SQL truy cập đến thông tin tài khoản:
String query = “select * from accts where account = ?”;
22
preparedStatement pstmt = connection.prepareStatement (query,…);
pstmt.setString (1, request.getparameter(“acct”));
ResultSet results = pstmt.executeQuery ();
Kẻ tấn công có thể dễ dàng thay đổi tham số ‘acct’ trong trình duyệt để có thể
xem bất cứ thông tin tài khoản nào. Nếu không kiểm định kẻ tấn công có thể lợi
dụng để ăn cắp tài khoản của bất kì ai thay vì chỉ được truy cập vào một tài
khoản nhất định.
3.3.2. Hoạt động
- Tác nhân đe dọa: Hãy xem xét các loại người dùng trong hệ thống của
bạn. Liệu có người dùng nào chỉ có một phần quyền truy cập đến các loại
dữ liệu trong hệ thống.
- Hướng tấn công: Kẻ tấn công là một người trong hệ thống, có thể thay đổi
một tham số ứng với một đối tượng nào đó mà kẻ tấn công không có
quyền truy cập đến.
- Điểm yếu bảo mật: Ứng dụng thường xuyên sử dụng trực tiếp tên hoặc
khóa của một đối tượng khi xây dựng các trang web. Các ứng dụng
thường không kiểm tra xem người dùng này thật sự có quyền truy cập hay
không. Đây chính là mấu chốt dẫn đến các lỗi đối tượng tham chiếu.
Người kiểm tra có thể dễ dàng thay đổi các giá trị tham số để phát hiện ra
lỗi này, phân tích mã nguồn có thể giúp nhanh chóng phát hiện quyền truy
cập có được xem xét cẩn thận hay không.
- Ảnh hưởng kĩ thuật: Lỗi như trên có thể giúp kẻ tấn công nắm toàn bộ
những dữ liệu có thể được liên kết bởi các tham biến. Trừ khi không gian
truy cập rời rạc, kẻ tấn công có thể truy cập tất cả các loại dữ liệu như thế.
23
3.3.3. Cách phát hiện lỗi
Cách tốt nhất để biết xem một ứng dụng có bị lỗi này hay không là kiểm
tra nếu tất cả các đối tượng tham chiếu có được bảo vệ hợp lý không. Để đạt
được điều này cần xem xét:
- Đối với các liên kết trực tiếp tới dữ liệu cần bảo vệ, ứng dụng cần phải
kiểm tra xem người dùng đang yêu cầu có được cho phép truy cập đến
dữ liệu đó hay không.
- Nếu liên kết là một tham biến gián tiếp, việc chuyển biến đến dữ liệu
trực tiếp phải được giới hạn bởi những giá trị cho phép đối với người
dùng hiện tại.
Kiểm tra mã nguồn của ứng dụng có thể nhanh chóng phát hiện nếu một
trong hai phương pháp trên không được thiết kế cẩn thận. Chạy kiểm tra cũng có
thể hiệu quả trong việc phát hiện những đối tượng không an toàn. Những công
cụ tự động thường không thể tìm ra lỗi này vì rất khó để xác định cái nào cần
bảo vệ và như thế nào là thiếu an toàn hoặc an toàn.
3.3.4. Phòng chống
Việc ngăn chặn lỗi này yêu cầu người dùng xác định một cách bảo vệ các
đối tượng mà người dùng có thể truy cập (số/tên của đối tượng).
- Sử dụng mỗi liên kết đối tượng cho từng người dùng hoặc phiên làm
việc. Việc này ngăn chặn kẻ tấn công nhắm đến các dữ liệu không được
bảo vệ. Ví dụ, thay vì sử dụng khóa cơ sở dữ liệu, một danh sách cho
phép lựa chọn nào mà người dùng muốn truy cập. Ứng dụng sau đó sẽ
phải biến đổi từ tham biến gián tiếp đến khóa.
24
- Kiểm tra truy cập. Đối với mỗi tham chiếu trực tiếp từ một nguồn không
xác thực phải được kiểm tra điều khiển để chắc chắn rằng người dùng
được quyền truy cập đến đối tượng yêu cầu.
3.4. Cross Site Request Forgery
Kiểu tấn công giả mạo yêu cầu ép buộc trình duyệt web của một người
dùng đăng nhập gửi những yêu cầu giao thức web (HTTP) tới một trang web bị
lỗi, bao gồm cookie của phiên truy cập và những thông tin tự động khác như
thông tin đăng nhập. Cách thức này cho phép kẻ tấn công buộc trình duyệt web
tạo ra những yêu cầu cho ứng dụng lỗi mà ứng dụng này không thể biết đây là
những yêu cầu giả mạo của kẻ tấn công.
3.5. Security Misconfiguration
Một cơ chế an ninh tốt cần phải định nghĩa những hiệu chỉnh về an ninh
và triển khai nó cho các ứng dụng, khuôn mẫu, máy chủ ứng dụng, máy chủ
web, máy chủ dữ liệu và các ứng dụng nền tảng. Tất cả những thiết lập nên được
định nghĩa, thực hiện và bảo trì bởi vì rất nhiều thứ không được triển khai với
thiết lập an toàn mặc định. Các hiệu chỉnh cũng bao gồm cập nhật phần mềm và
những thư viện được sử dụng bởi ứng dụng.
Ví dụ:
Giao diện điều khiển máy chủ của quản trị viên được tự động cài đặt và
không được gỡ bỏ. Tài khoản mặc định chưa được thay đổi. Kẻ tấn công phát
hiện đăng nhập với tài khoản mặc định và chiếm quyền hệ thống.
3.6. Insecure Cryptographic Storage
Nhiều ứng dụng web không bảo vệ dữ liệu nhạy cảm như thẻ tín dụng,
SSN và những mã xác thực thông tin bằng các phương pháp mã hóa hay băm. Kẻ
25