Tải bản đầy đủ (.doc) (37 trang)

tìm hiểu về an ninh mạng và kỹ thuật sql injection

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (706.3 KB, 37 trang )

Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection
LỜI CẢM ƠN
Đầu tiên, tôi xin chân thành cảm ơn ban giám hiệu, quy thầy cô trường cao
đẳng CNTT hữu nghị Việt Hàn, đặc biệt là thầy cô trong khoa Khoa học máy
tính đã tận tình giảng dạy và truyền đạt cho nhóm những kiến thức quý báu
trong những năm học vừa qua.
Xin chân thành gửi lời cảm ơn đến thầy Lê Tự Thanh giảng viên khoa
Khoa Học Máy Tính đã tận tình hướng dẫn, giúp đỡ nhóm chúng tôi trong quá
trình định hướng, nghiên cứu và hoàn thiện đồ án này.
Kết quả cuối cùng là kết quả của những tháng ngày cố gắng, nỗ lực của
nhóm, sự giúp đỡ của gia đình, nhà trường, bạn bè và đặc biệt là sự hướng dẫn
tận tình của thầy Lê Tự Thanh để tôi có thể hoàn tất một cách tốt so với những
gì đã đặt ra.
Trong quá trình thực hiện đồ án, mặc dù đã có nhiều cố gắng tuy nhiên vẫn
còn có nhiều thiếu sót và hạn chế, kính mong các thầy (cô) và các bạn đóng góp
ý kiến của mình để hệ thống được hoàn thiện hơn.
Cuối cùng, một lần nữa, tôi xin cảm ơn tất cả đã giúp đỡ để có thể hoàn
thành tốt đồ án này. Xin chân thành cảm ơn!
Đà Nẵng, tháng 03 năm 2012
Nhóm 12 thực hiện
Vương Đình Khoa
Phạm Thị Thảo
Nhóm 12 Trang i CCMM03A
Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection
MỤC LỤC
LỜI CẢM ƠN i
MỤC LỤC ii
DANH MỤC CÁC TỪ VIẾT TẮT v
CERT Computer Emegency Respornse Team v
LỜI MỞ ĐẦU vi
PHẦN 1: TỔNG QUAN AN NINH MẠNG 1


1.1 Thực trạng an ninh trên Internet 1
1.1.1 Thực trạng an ninh Internet thế giới 1
1.1.2 Thực trạng an ninh Internet tại Việt Nam 1
1.2 Các hình thức tấn công mạng hiện nay 3
1.2.1. Quá trình thăm dò tấn công 3
1.2.1.1. Thăm dò (Reconnaissace) 4
1.2.1.2. Quét hệ thống (Scanning) 4
1.2.1.3. Chiếm quyền điều khiển (Gainning access) 4
1.2.1.4. Duy trì điều khiển hệ thống (Maitaining access) 5
1.2.1.5. Xoá dấu vết (Clearning tracks) 5
1.3. Các biện pháp bảo mật mạng 5
1.3.1. Mã hoá, nhận dạng, chứng thực người dùng và phần quyền sử
dụng 5
1.3.1.1. Mã hoá 5
1.3.1.2. Các giải thuật mã hoá 6
1.3.1.3. Chứng thực người dùng 8
1.3.2. Bảo mật máy trạm 10
1.3.3. Bảo mật truyền thông 11
1.3.4. Các công nghệ và kỹ thuật bảo mật 12
Nhóm 12 Trang ii CCMM03A
Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection
1.3.5. Bảo mật ứng dụng 13
1.3.6. Thống kê tài nguyên 14
PHẦN 2: GIỚI THIỆU VỀ KỸ THUẬT SQL INJECTION VÀ MỘT SỐ
VÍ DỤ CÁC KỸ THUẬT CỦA SQL INJECTION 16
2.1 Giới thiệu 16
2.2 Định nghĩa SQL Injection là gì? 16
2.3 Các dạng tấn công SQL Injection 17
2.3.1 Dạng tấn công vượt qua kiểm tra đăng nhập 17
2.3.2 Tấn công sử dụng câu lệnh SELECT 19

2.3.3 Tấn công sử dụng câu lệnh INSERT 20
PHẦN 3: PHÒNG TRÁNH TẤN CÔNG SQL INJECTION 23
3.1 Đối với website (dành cho lập trình viên): 24
3.2 Đối với web server (dành cho quản trị mạng): 24
3.3 Đối với database server (dành cho quản trị mạng): 24
3.4 Hạn chế bị phát hiện lỗi 24
3.5 Phòng chống từ bên ngoài 25
3.6 Cải thiện dữ liệu nhập vào 26
3.7 Một số lời khuyên khác: 27
3.8 Một số công cụ quét và kiểm tra lỗi SQL Injection hiệu quả 27
KẾT LUẬN 29
TÀI LIỆU THAM KHẢO 30
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN 31
Nhóm 12 Trang iii CCMM03A
Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection
Hình 1.1 Quá trình thăm dò vào một hệ thống mạng 3
Hình 1.2 Quét trộm đối với cổng không hoạt động 4
Hình 1.3 Đối với cổng hoạt động 4
Hình 1.4 Quá trình mã hoá 5
Hình 1.5 Mô hình giải thuật băm 6
Hình 1.6 Giải thuật mã hoá đồng bộ/đối xứng 7
Hình 1.7 Giải thuật mã hóa không đồng bộ/không đối xứng 8
Hình 1.8 Chứng thực bằng user và password 8
Hình 1.9 Hoạt động của CHAP 9
Hình 1.10 Mô hình tổng quát firewall 12
Hình 1.11 Bảo mật bằng VPN 13
Hình 1.12 Thống kê tài nguyên bằng Monitoring 15
Hình 2.1 Mô hình tấn công SQL Injection 16
Hình 2.2 Tấn công SQL Injection 17
Hình 2.3 Tấn công vượt qua kiểm tra đăng nhập 18

Hình 2.4 website bị lỗi sau khi nhúng dấu ‘ 20
Hình 2.5 Một đoạn mã ví dụ tấn công bằng câu lệnh Insert 21
Hình 3.1 Phòng tránh tấn công SQL 23
Nhóm 12 Trang iv CCMM03A
Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection
DANH MỤC CÁC TỪ VIẾT TẮT.
Từ viết tắt. Ý nghĩa.
CERT Computer Emegency Respornse
Team
PIN Personal Identity Number
DNS Domain Name System
NIC Network Interface Card
IIS Internet Information Server
WML Wireless Markup Language.
CMS Content Management System.
SSO Single Sign On.
AOP Aspect Oriented Programming.
GUI Graphical User Interface.
CERT Computer Emegency Respornse Team
Nhóm 12 Trang v CCMM03A
Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection
LỜI MỞ ĐẦU
Cùng với sự phát triển của công nghệ thông tin, công nghệ mạng máy tính
và sự phát triển của mạng internet ngày càng phát triển đa dạng và phong phú.
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. Các thông tin trên Internet cũng đa dạng về nội dung và hình thức, trong đó
có rất nhiều thông tin cần được bảo mật cao hơn bởi tính kinh tế, tính chính xác
và tính tin cậy của nó.
Bên cạnh đó, các hình thức phá hoại mạng cũng trở nên tinh vi và phức tạp
hơn. Do đó đối với mỗi hệ thống, nhiệm vụ bảo mật được đặt ra cho người quản

trị mạng là hết sức quan trọng và cần thiết.
Những vụ tấn công nhằm vào tất cả các máy tính có mặt trên Internet, các
máy tính của công ty lớn, các trường đại học, các cơ quan nhà nước, các tổ chức
quan sự, nhà băng Một số vụ tấn công có quy mô khổng lồ (có tới 100.000
máy tính bị tấn công ). Hơn nữa, nhưng con số này chỉ là phần nổi của tảng
băng. Một phần rất lớn các vụ tấn công không được thông báo, vì nhiều lý do,
trong đó có thể kể đến nỗi lo bị mất uy tín, hoặc đơn giản những người quản trị
hệ thông không hay biết những cuộc tấn công đang nhằm vào hệ thông của họ.
Với những công cụ tự động tìm lỗi hổng tuy giúp rất nhiều cho những nhà
lập trình web nhưng vẫn không thể ngăn chặn toàn bộ vì công nghệ web đang
phát triển nhanh chóng (chủ yếu chú trọng đến yếu tố thẩm mĩ, yếu tố tốc độ )
nên dẫn đến nhiều khuyết điểm mới phát sinh. Sự tấn công không nằm trong
khuổn khổ vài kĩ thuật đã phát hiện, mà linh động và tăng lên tùy vào những sai
sót của nhà quản trị hệ thống cũng như của những người lập trình.
Chính vì vậy, thông qua việc nghiên cứu phương pháp tấn SQL Injection
nhóm chúng tôi 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.
Nhóm 12 xin chân thành cảm ơn sự hướng dẫn của ThS. Lê Tự Thanh đã
trực tiếp hướng dẫn đồ án và giúp nhóm có thể hoàn thành đồ án này.
Sau đây là nội dung đồ án:
Nhóm 12 Trang vi CCMM03A
Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection
PHẦN 1: TỔNG QUAN AN NINH MẠNG
1.1 Thực trạng an ninh trên Internet.
1.1.1 Thực trạng an ninh Internet thế giới.
Hệ thống quy mô lớn như Internet thì một khe hở hay lỗi hệ thống đều có
nguy cơ gây ra thiệt hại lớn.
Theo thống kê của CERT( Computer Emegency Respornse Team) thì các
vụ tấn công tăng gấp 2, thậm chí gấp 3 sau mỗi năm. Cụ thể như sau:
 Năm 1989: Có 200 vụ tấn công, truy nhập trên mạng được báo cáo.

 Năm 1991: 400 vụ được thống kê.
 Năm 1993: 1400 vụ.
 Năm 1994: 2241 vụ.
 Những năm hai nghìn: Con số được thống kê không chính thức là có
hang chục nghìn vụ tấn công và truy nhập Internet mỗi năm.
Số vụ tấn công ngày càng tăng, cùng với đó các phương thức tấn công cũng
biến hóa khôn lường.
1.1.2 Thực trạng an ninh Internet tại Việt Nam
Trong năm 2009, ở nước ta có hơn 1000 (1.037) website bị hacker tấn
công, tăng hơn gấp đôi so với năm 2008 (461 website ) và gấp 3 lần năm 2007
( 342 website ).
Trong 3 tháng đầu năm 2010 đã có hơn 300 website của các cá nhân tổ
chức có tên miền .vn bị hacker nước ngoài thăm dò và tấn công.
Lỗ hổng an ninh của các hệ thống ngày càng được phát hiện nhiều hơn
 Số lượng các điểm yếu an ninh trong năm 2009 là 4300 (năm 2008 là
3500) có tới 30% lỗ hổng có mức độ nguy hiểm cao.
Gần một nửa (49%) số lỗ hổng an ninh vẫn chưa có các bản vá do nhà
cung cấp dịch vụ phát hành.
 Ở nước ta vấn đề lỗ hổng của hệ thống vẫn chưa được quản trị hệ thống
cập nhật các bản vá kịp thời
Mạng Internet là môi trường có vô số các vụ tấn công. Nhìn chung có thể
chia các mối đe dọa an ninh đó thành 4 loại:
Nhóm 12 Trang 1 CCMM03A
Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection
Mất dữ liệu tích hợp: dữ liệu bị sửa chữa, thay thế khi truyền trên mạng.
Mất dữ liệu bảo mật: những người không có quyền cũng có thể đọc được
dữ liệu.
Từ chối dịch vụ: dịch vụ bị ngưng trệ bởi sự tấn công của Hacker.
Mất khả năng điều khiển: những người có quyền sử dụng dịch vụ không
thể tương tác được với dịch vụ.

Người sử dụng thường cố gắng tìm ra những lỗ hổng của phần mềm hoặc
là cấu hình lại hệ thống nhằm bảo đảm an toàn thông tin. Trong một số trường
hợp Hacker không muốn cho truy suất hệ thống bằng cách xây dựng một loạt
các thủ tục nhằm mục đích đưa ra thông báo “từ chối dịch vụ”.
Việc tấn công vào mạng sử dụng thông báo từ chối truy cập được thực hiện
bằng cách khiến cho phần mềm dịch vụ bị quá tải bởi phải xử lý quá nhiều yêu
cầu. Khi đó hệ thống sẽ trở nên rất bận và sẽ thiếu thời gian để làm việc khác do
đó buộc phải từ chối truy cập dịch vụ.
Tuy có nhiều cách để xâm nhập vào mạng nhưng một trong những cách dễ
dàng nhất là chặn dòng dữ liệu trao đổi giữa các thành viên trong mạng. Do
thông tin được truyền trong mạng dưới dạng văn bản thuần tuý nên việc rình bắt
thông tin sẽ giúp cho Hacker lấy được mật khẩu của mạng một cách dễ dàng.
Còn kiểu tấn công mạng nữa hay được sử dụng là giả dạng bằng cách giả
vờ là một người sử dụng có thẩm quyền của mạng thông qua việc giả lập địa chỉ
IP. Điều đáng nói ở đây là trong hầu hết các trường hợp, việc bảo đảm độ tin cậy
chỉ dựa trên một phía (qua password, hoặc PIN) mà những thông tin này lại rất
dễ bị sao chép. Do vậy để đảm bảo độ tin cậy, việc thiết lập độ tin cậy phải được
thực hiện từ hai phía bằng việc sử dụng một thẻ thông minh (smart card) kết hợp
với PIN (Personal Identity Number) nhằm tăng mức độ an toàn của mạng.
Một cách khác là tạo ra những phần mềm thông minh để truy xuất đến một
mạng đích nào đó thông qua việc lấy các thông tin thải loại ở trong sọt rác hoặc
trong đĩa mềm bỏ đi của người quản trị mạng. Kiểu này chỉ được áp dụng khi
mà Hacker liên quan khá mật thiết đến người điều hành mạng và do đó cũng rất
dễ truy tìm ra Hacker khi mạng bị tấn công.
Nhóm 12 Trang 2 CCMM03A
Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection
Còn một cách để Hacker xâm nhập vào mạng là sử dụng một tập hợp các
thông tin dễ ghi nhớ. Rất nhiều mạng sử dụng tên miền rất dễ nhớ như:
System01.Domain.Org. Bằng việc truy xuất qua server quản lý hệ tên miền
(DNS: Domain Name System), Hacker có thể thâm nhập vào mạng rất dễ dàng

bằng cách hướng yêu cầu của người sử dụng đến một server khác và lấy trộm
những thông tin cần thiết. Do đó để đảm bảo rằng người sử dụng truy xuất đúng
server cần phải bổ xung cả việc kiểm tra độ tin cậy đối với server. Điều này
được thực hiện bằng cách sử dụng chứng chỉ số trên server.
Để tránh việc gói tin bị thay thế khi truyền trên mạng, bắt buộc gói tin phải
được tích hợp trước khi truyền thông qua việc bổ xung một thông điệp băm.
Việc mã hoá của thông điệp này giúp cho thông điệp bảo đảm được độ chính
xác.
Trong hầu hết các trường hợp những cuộc tấn công vào mạng thành công
không phải do kỹ thuật mà do con người. Thay cho sử dụng kỹ thuật để đột phá
vào mạng, Hacker sẽ thử liên hệ với người nắm giữ thông tin mà họ cần,điều
khiển họ thông qua việc khai thác những thói quen của họ và như thế những
người này sẽ không thông báo về những thông tin bị rò gỉ bởi chính họ cho cấp
có thẩm quyền.
1.2 Các hình thức tấn công mạng hiện nay.
1.2.1. Quá trình thăm dò tấn công

Hình 1.1 Quá trình thăm dò vào một hệ thống mạng
Nhóm 12 Trang 3 CCMM03A
Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection
1.2.1.1. Thăm dò (Reconnaissace)
Thăm dò mục tiêu là một trong những bước qua trọng để biết những thông
tin trên hệ thống mục tiêu. Hacker sử dụng kỹ thuật này để khám phá hệ thống
mục tiêu đang chạy trên hệ điều hành nào, có bao nhiêu dịch vụ đang chạy trên
các dịch vụ đó, cổng dịch vụ nào đang đóng và cổng nào đang mở, gồm hai loại:
 Passive: Thu thập các thông tin chung như vị trí địa lý, điện thoại, email
của các cá nhân, người điều hành trong tổ chức.
 Active: Thu thập các thông tin về địa chỉ IP, domain, DNS,… của hệ
thống
1.2.1.2. Quét hệ thống (Scanning)

Quét thăm dò hệ thống là phương pháp quan trọng mà Attacker thường
dùng để tìm hiểu hệ thống và thu thập các thông tin như địa chỉ IP cụ thể, hệ
điều hành hay các kiến trúc hệ thống mạng. Một vài phương pháp quét thông
dụng như: quét cổng, quét mạng và quét các điểm yếu trên hệ thống.

Hình 1.2 Quét trộm đối với cổng không hoạt động

Hình 1.3 Đối với cổng hoạt động
1.2.1.3. Chiếm quyền điều khiển (Gainning access)
o Mức hệ điều hành/ mức ứng dụng
o Mức mạng
o Từ chối dịch vụ
Nhóm 12 Trang 4 CCMM03A
Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection
1.2.1.4. Duy trì điều khiển hệ thống (Maitaining access)
Upload/download biến đổi thông tin
1.2.1.5. Xoá dấu vết (Clearning tracks)
Sau khi bị tấn công thì hệ thống sẽ lưu lại những vết do attacker để lại.
Attacker cần xoá chúng đi nhằm tránh bị phát hiện.
1.3. Các biện pháp bảo mật mạng
1.3.1. Mã hoá, nhận dạng, chứng thực người dùng và phần quyền sử dụng
1.3.1.1. Mã hoá
Mã hoá là cơ chế chính cho việc bảo mật thông tin. Nó bảo vệ chắc chắn
thông tin trong quá trình truyền dữ liệu, mã hoá có thể bảo vệ thông tin trong
quá trình lưu trữ bằng mã hoá tập tin. Tuy nhiên người sử dụng phải có quyền
truy cập vào tập tin này, hệ thống mã hoá sẽ không phân biệt giữa người sử dụng
hợp pháp và bất hợp pháp nếu cả hai cùng sử dụng một key giống nhau. Do đó
mã hoá chính nó sẽ không cung cấp bảo mật, chúng phải được điều khiển bởi
key mã hoá và toàn bộ hệ thống.
Hình 1.4 Quá trình mã hoá

Mã hoá nhằm đảm bảo các yêu cầu sau:
o Tính bí mật (confidentiality): dữ liệu không bị xem bởi “bên thứ 3”.
o Tính toàn vẹn (Integrity): dữ liệu không bị thay đổi trong quá trình
truyền.
Nhóm 12 Trang 5 CCMM03A
Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection
Tính không từ chối (Non-repudiation): là cơ chế người thực hiện hành động
không thể chối bỏ những gì mình đã làm, có thể kiểm chứng được nguồn gốc
hoặc người đưa tin.
1.3.1.2. Các giải thuật mã hoá
 Giải thuật băm (Hashing Encryption)
Là cách thức mã hoá một chiều tiến hành biến đổi văn bản nhận dạng
(cleartext) trở thành hình thái mã hoá mà không bao giờ có thể giải mã. Kết quả
của tiến trình hashing còn được gọi là một hash (xử lý băm), giá trị hash (hash
value), hay thông điệp đã được mã hoá (message digest) và tất nhiên không thể
tái tạo lại dạng ban đầu.
Trong xử lý hàm băm dữ liệu đầu vào có thể khác nhau về độ dài, thế
nhưng độ dài của xử lý Hash lại là cố định. Hashing được sử dụng trong một số
mô hình xác thực password. Một giá trị hash có thể được gắn với một thông điệp
điện tử (electronic message) nhằm hỗ trợ tính tích hợp của dữ liệu hoặc hỗ trợ
xác định trách nhiệm không thể chối từ (non-repudiation).
Hình 1.5 Mô hình giải thuật băm
Một số giải thuật băm
o MD5 (Message Digest 5): giá trị băm 128 bit.
o SHA-1 (Secure Hash Algorithm): giá trị băm 160 bit.
 Giải thuật mã hoá đồng bộ/đối xứng (Symmetric)
Mã hoá đối xứng hay mã hoá chia sẻ khoá (shared-key encryption) là mô
hình mã hoá hai chiều có nghĩa là tiến trình mã hoá và giải mã đều dùng chung
một khoá. Khoá này phải được chuyển giao bí mật giữa hai đối tượng tham gia
giao tiếp. Có thể bẻ khoá bằng tấn công vét cạn (Brute Force).

Nhóm 12 Trang 6 CCMM03A
Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection
Hình 1.6 Giải thuật mã hoá đồng bộ/đối xứng
Cách thức mã hoá như sau:
o Hai bên chia sẻ chung 1 khoá (được giữ bí mật).
o Trước khi bắt đầu liên lạc hai bên phải trao đổi khoá bí mật cho nhau.
o Mỗi phía của thành phần liên lạc yêu cầu một khoá chia sẻ duy nhất,
khoá này không chia sẻ với các liên lạc khác.
Bảng dưới đây cho thấy chi tiết các phương pháp mã hóa đối xứng thông dụng.
Giải thuật mã hóa không đồng bộ/không đối xứng (Asymmetric)
Mã hóa bất đối xứng, hay mã hóa khóa công khai(public-key encryption),
là mô hình mã hóa 2 chiều sử dụng một cặp khóa là khóa riêng (private key) và
khóa công (public keys). Thông thường, một thông điệp được mã hóa với
private key, và chắc chắn rằng key này là của người gửi thông điệp (message
sender). Nó sẽ được giải mã với public key, bất cứ người nhận nào cũng có thể
truy cập nếu họ có key này. Chú ý, chỉ có public key trong cùng một cặp khóa
mới có thể giải mã dữ liệu đã mã hóa với private key tương ứng. Và private key
thì không bao giờ được chia sẻ với bất kỳ ai và do đó nó giữ được tính bảo mật,
với dạng mã hóa này được ứng dụng trong chữ ký điện tử.
Nhóm 12 Trang 7 CCMM03A
Các loại mã hóa Đặc tính
Data Encryption Standard
(DES)
- Sử dụng một khối 64 bit hoặc một
khóa 56 bit.
- Có thể dễ dàng bị bẻ khóa.
Triple DES (3DES) - Áp dụng DES 3 lần.
- Sử dụng một khóa 168bit.
- Bị thay thế bởi AES.
Advanced Encryption Standard

(AES)
- Sử dụng Rhine doll có khả năng đề
kháng với tất cả tấn công đã biết.
- Dùng một khóa và khóa chiều dài có
thể thay đổi (128-192 hoặc 256 bit).
Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection
Hình 1.7 Giải thuật mã hóa không đồng bộ/không đối xứng
Các giải thuật
o RSA (Ron Rivest, Adi Shamir, and Leonard Adleman).
o DSA (Digital Signature Standard).
o Diffie-Hellman (W.Diffie and Dr.M.E.Hellman).
1.3.1.3. Chứng thực người dùng
Là quá trình thiết lập tính hợp lệ của người dùng trước khi truy cập thông
tin trong hệ thống. Các loại chứng thực như:
 Username/password: Là loại chứng thực phổ biến nhất và yếu nhất của
chứng thực, username/password được giữ nguyên dạng chuyển đến Server.
Hình 1.8 Chứng thực bằng user và password
- Tuy nhiên phương pháp này xuất hiện những vấn đề như dễ bị đánh cắp
trong quá trình đến server.
- Giải pháp
o Đặt mật khẩu dài tối thiểu là tám kí tự, bao gồm chữ cái, số, biểu tượng.
o Thay đổi password: 01 tháng/lần.
 Không nên đặt cùng password ở nhiều nơi.
 Xem xét việc cung cấp password cho ai.
CHAP (Challenge Hanshake Authentication Protocol): Dùng để mã hóa
mật khẩu khi đăng nhập, dùng phương pháp chứng thực thử thách/hồi đáp. Định
Nhóm 12 Trang 8 CCMM03A
Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection
kỳ kiểm tra lại các định danh của kết nối sử dụng cơ chế bắt tay 3 bước và thông
tin bí mật được mã hóa sử dụng MD5. Hoạt động của CHAP như sau:

Hình 1.9 Hoạt động của CHAP
Kerberos
Kerberos là một giao thức mật mã dùng để xác thực trong các mạng máy
tính hoạt động trên những đường truyền không an toàn. Giao thức Kerberos có
khả năng chống lại việc nghe lén hay gửi lại các gói tin cũ và đảm bảo tính toàn
vẹn của dữ liệu. Mục tiêu khi thiết kế giao thức này là nhằm vào mô hình máy
chủ-máy khách (client-server) và đảm bảo nhận thực cho cả hai chiều.
Kerberos hoạt động sử dụng một bên thứ ba tham gia vào quá trình nhận
thực gọi là key distribution center – KDC (KDC bao gồm hai chức năng: "máy
chủ xác thực" (authentication server - AS) và "máy chủ cung cấp vé" (ticket
granting server - TGS). "Vé" trong hệ thống Kerberos chính là các chứng thực
chứng minh nhận dạng của người sử dụng.). Mỗi người sử dụng trong hệ thống
chia sẻ một khóa chung với máy chủ Kerberos. Việc sở hữu thông tin về khóa
chính là bằng chứng để chứng minh nhận dạng của một người sử dụng. Trong
mỗi giao dịch giữa hai người sử dụng trong hệ thống, máy chủ Kerberos sẽ tạo
ra một khóa phiên dùng cho phiên giao dịch đó.
Chứng chỉ (Certificates)
Một Server (Certificates Authority - CA) tạo ra các certificates.
Có thể là vật lý: smartcard
Có thể là logic: chữ ký điện tử
Nhóm 12 Trang 9 CCMM03A
Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection
Sử dụng public/private key (bất cứ dữ liệu nào được mã hóa bằng public
key chỉ có thể giải mã bằng private key). Sử dụng “công ty thứ 3” để chứng
thực. Được sử dụng phổ biến trong chứng thực web, smart cards, chữ ký điện tử
cho email và mã hóa email.
- Nhược điểm
 Triển khai PKI (Public Key Infrastructure) kéo dài và tốn kém.
 Smart cards làm tăng giá triển khai và bảo trì.
 Dịch vụ CA tốn kém.

 Sinh trắc học
Có thể dùng các phương pháp sau: mống mắt/võng mạc, vân tay, giọng nói.
Ưu điểm của phương pháp này rất chính xác, thời gian chứng thực nhanh, tuy
nhiên giá thành cao cho phần cứng và phần mềm, việc nhận diện có thể bị sai
lệch.
Kết hợp nhiều phương pháp (Multi-factor)
Sử dụng nhiều hơn một phương pháp chứng thực như: mật khẩu/ PIN, smart
card, sinh trắc học, phương pháp này nhằm tạo sự bảo vệ theo chiều sâu với
nhiều tầng bảo vệ khác nhau.
Ưu điểm: làm giảm sự phụ thuộc vào password, hệ thống chứng thực
mạnh hơn và cung cấp khả năng cho Public Key Infrastructure (PKI).
Nhược điểm: tăng chi phí triển khai, tăng chi phí duy trì, chi phí nâng
cấp
1.3.2. Bảo mật máy trạm
Sự kiểm tra đều đặn mức bảo mật được cung cấp bởi các máy chủ phụ
thuộc chủ yếu vào sự quản lý. Mọi máy chủ ở trong một công ty nên được kiểm
tra từ Internet để phát hiện lỗ hổng bảo mật. Thêm nữa, việc kiểm tra từ bên
trong và quá trình thẩm định máy chủ về căn bản là cần thiết để giảm thiểu tính
rủi ro của hệ thống, như khi firewall bị lỗi hay một máy chủ, hệ thống nào đó bị
trục trặc.
Hầu hết các hệ điều hành đều chạy trong tình trạng thấp hơn với mức bảo
mật tối thiểu và có rất nhiều lỗ hổng bảo mật. Trước khi một máy chủ khi đưa
Nhóm 12 Trang 10 CCMM03A
Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection
vào sản xuất, sẽ có một quá trình kiểm tra theo một số bước nhất định. Toàn bộ
các bản sửa lỗi phải được cài đặt trên máy chủ, và bất cứ dịch vụ không cần thiết
nào phải được loại bỏ. Điều này làm tránh độ rủi ro xuống mức thấp nhất cho hệ
thống.
Việc tiếp theo là kiểm tra các log file từ các máy chủ và các ứng dụng.
Chúng sẽ cung cấp cho ta một số thông tin tốt nhất về hệ thống, các tấn công

bảo mật. Trong rất nhiều trường hợp, đó chính là một trong những cách để xác
nhận quy mô của một tấn công vào máy chủ.
1.3.3. Bảo mật truyền thông
Tiêu biểu như bảo mật trên FTP, SSH
 Bảo mật truyền thông FTP
FTP là giao thức lớp ứng dụng trong bộ giao thức TCP/IP cho phép truyền
dữ liệu chủ yếu qua port 20 và nhận dữ liệu tại port 21, dữ liệu được truyền dưới
dạng clear-text, tuy nhiên nguy cơ bị nghe lén trong quá trình truyền file hay lấy
mật khẩu trong quá trình chứng thực là rất cao, thêm vào đó user mặc định
Anonymous không an toàn tạo điều kiện cho việc tấn công tràn bộ đệm.
Biện pháp đặt ra là sử dụng giao thức S/FTP (S/FTP = FTP + SSL/TSL) có
tính bảo mật vì những lí do sau:
o Sử dụng chứng thực RSA/DSA .
o Sử dụng cổng TCP 990 cho điều khiển, cổng TCP 989 cho dữ liệu.
o Tắt chức năng Anonymous nếu không sử dụng.
o Sử dụng IDS để phát hiện tấn công tràn bộ đệm.
o Sử dụng IPSec để mã hóa dữ liệu.
 Bảo mật truyền thông SSH
SSH là dạng mã hóa an toàn thay thế cho telnet, rlogin hoạt động theo mô
hình client/server và sử dụng kỹ thuật mã hóa public key để cung cấp phiên mã
hóa, nó chỉ cung cấp khả năng chuyển tiếp port bất kỳ qua một kết nối đã được
mã hóa. Với telnet hay rlogin quá trình truyền username và password dưới dạng
cleartext nên rất dễ bị nghe lén, bằng cách bắt đầu một phiên mã hóa.
Nhóm 12 Trang 11 CCMM03A
Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection
Khi máy client muốn kết nối phiên an toàn với một host, client phải bắt đầu
kết nối bằng cách thiết lập yêu cầu tới một phiên SSH. Một khi server nhận
dược yêu cầu từ client, hai bên thực hiện cơ chế three-way handshake trong đó
bao gồm việc xác minh các giao thức, khóa phiên sẽ được thay đổi giữa client và
server, khi khóa phiên đã trao đổi và xác minh đối với bộ nhớ cache của host

key, client lúc này có thể bắt đầu một phiên an toàn
1.3.4. Các công nghệ và kỹ thuật bảo mật
 Bảo mật bằng firewall
Là một hàng rào giữa hai mạng máy tính, nó bảo vệ mạng này tránh khỏi
sự xâm nhập từ mạng kia, đối với những doang nghiệp cỡ vừa là lớn thì việc sử
dụng firewall là rất cần thiết, chức năng chính là kiểm soát luồng thông tin giữa
mạng cần bảo vệ và Internet thông qua các chính sách truy cập đã được thiết lập.
Firewall có thể là phần cứng, phần mềm hoặc cả hai. Tất cả đều có chung
một thuộc tính là cho phép xử lý dựa trên địa chỉ nguồn, bên cạnh đó nó còn có
các tính năng như dự phòng trong trường hợp xảy ra lỗi hệ thống.
Hình 1.10 Mô hình tổng quát firewall
Do đó việc lựa chọn firewall thích hợp cho một hệ thống không phải là dễ dàng.
Các firewall đều phụ thuộc trên một môi trường, cấu hình mạng, ứng dụng cụ
Nhóm 12 Trang 12 CCMM03A
Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection
thể. Khi xem xét lựa chọn một firewall cần tập trung tìm hiểu tập các chức năng
của firewall như tính năng lọc địa chỉ, gói tin
Bảo mật bằng VPN (Virtual Private Network)
VPN là một mạng riêng ảo được kết nối thông qua mạng công cộng cung
cấp cơ chế bảo mật trong một môi trường mạng không an toàn. Đặc điểm của
VPN là dữ liệu trong quá trình truyền được mã hóa, người sử dụng đầu xa được
chứng thực, VPN sử dụng đa giao thức như IPSec, SSL nhằm tăng thêm tính
bảo mật của hệ thống, bên cạnh đó tiết kiệm được chi phí trong việc triển khai.
Hình 1.11 Bảo mật bằng VPN
 Bảo mật bằng IDS (Phát hiện tấn công)
IDS (Intrusion Detection System) là hệ thống phát hiện xâm nhập, hệ thống
bảo mật bổ sung cho firewall với công nghệ cao tương đương với hệ thống
chuông báo động được cấu hình để giám sát các điểm truy cập có thể theo dõi,
phát hiện sự xâm nhập của các attacker. Có khả năng phát hiện ra các đoạn mã
độc hại hoạt động trong hệ thống mạng và có khả năng vượt qua được firewall.

Có hai dạng chính đó là network based và host based
1.3.5. Bảo mật ứng dụng
 Hệ thống thư điện tử
Thư điện tử hay email là một hệ thống chuyển nhận thư từ qua các mạng
máy tính, là một phương tiện thông tin rất nhanh. Một mẫu thông tin (thư từ) có
thể được gửi đi ở dạng mã hoá hay dạng thông thường và được chuyển qua các
mạng máy tính đặc biệt là mạng Internet. Nó có thể chuyển mẫu thông tin từ một
máy nguồn tới một hay rất nhiều máy nhận trong cùng lúc.
Ngày nay, email chẳng những có thể truyền gửi được chữ, nó còn có thể
truyền được các dạng thông tin khác như hình ảnh, âm thanh, phim, và đặc biệt
Nhóm 12 Trang 13 CCMM03A
Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection
các phần mềm thư điện tử kiểu mới còn có thể hiển thị các email dạng sống
động tương thích với kiểu tệp HTML.
o Gửi: giao* thức SMTP (TCP 25)
- Nhận: giao thức POP3/IMAP (TCP 110/143)
Lợi ích của thư điện tử như tốc độ di chuyển cao, chi phí rẻ và tiện lợi. Tuy
nhiên có những vấn đề về bảo mật, spam mail, sự lây lan của virus, trojan
 Bảo vệ hệ thống email
 Sử dụng S/MIME nếu có thể
 Cấu hình Mail Server tốt, không bị open relay
 Ngăn chặn Spam trên Mail Server
 Cảnh giác với email lạ
 Bảo mật ứng dụng Web
o Web traffic: Sử dụng giao thức bảo mật SSL/TSL để mã hóa thông tin
giữa Client và Server, hoạt động tầng Transport, sử dụng mã hóa không đối
xứng và MD5, sử dụng Public Key để chứng thực và mã hóa giao dịch giữa
Client và Server và TSL bảo mật tốt hơn.
Vấn đề đặt ra là trong quá trình chứng thực cả Client và Server đều phải
cần triển khai PKI, ảnh hưởng đến Performance, việc triển khai tiềm tàng một số

vấn đề: phương thức triển khai, cấu hình hệ thống, lựa chọn phần mềm.
o Web Client: Trong mô hình client/server, máy client là một máy trạm
mà chỉ được sử dụng bởi 1 người dùng với để muốn thể hiện tính độc lập cho
nó. Các điểm yếu của Client như JavaScript, ActiveX, Cookies, Applets.
o Web Server: Server cung cấp và điều khiển các tiến trình truy cập vào
tài nguyên của hệ thống. Vai trò của server như là một nhà cung cấp dịch vụ cho
các clients yêu cầu tới khi cần, các dịch vụ như cơ sở dữ liệu, in ấn, truyền file,
hệ thống Các lỗi thường xảy ra trong WEB Server: lỗi tràn bộ đệm, CGI/
Server Script và HTTP, HTTPS
1.3.6. Thống kê tài nguyên
Nhóm 12 Trang 14 CCMM03A
Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection
Hình 1.12 Thống kê tài nguyên bằng Monitoring
Là khả năng kiểm soát (kiểm kê) hệ thống mạng, bao gồm:
 Logging: Ghi lại các hoạt động phục vụ cho việc thống kê các sự kiện
trên mạng. Ví dụ muốn kiểm soát xem những ai đã truy cập file server, trong
thời điểm nào, làm gì (Event Viewer).
 Scanning: Quét hệ thống để kiểm soát những dịch vụ gì đang chạy trên
mạng, phân tích các nguy cơ của hệ thống mạng. Ví dụ Task manager.
 Monitoring: Phân tích logfile để kiểm tra các tài nguyên mạng được sử
dụng như thế nào. Ví dụ các syslog server.
Nhóm 12 Trang 15 CCMM03A
Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection
PHẦN 2: GIỚI THIỆU VỀ KỸ THUẬT SQL INJECTION VÀ
MỘT SỐ VÍ DỤ CÁC KỸ THUẬT CỦA SQL INJECTION.
2.1 Giới thiệu
- Khi các bạn triển khai các ứng dụng Website trên mạng Internet, theo bạn
việc bảo mật website cần phải có là gì ? Chắc hẳn bạn sẽ nghĩ rằng việc đảm bảo
an toàn, bảo mật nhằm giảm thiểu tối đa khả năng bị tấn công từ các tin tặc chỉ
đơn thuần là việc bạn tập trung vào những việc chọn các hệ điều hành,thiết bị

phần cứng , hệ quản trị cơ sở dữ liệu, các công cụ hỗ trợ ứng dụng webstie cho
bạn … không những bạn mà có rất nhiều người vẫn nghĩ như thế , mà quên mất
rằng bản thân của ứng dụng cũng tiềm ẩn 1 lỗ hỏng bảo mật vì không có phần
mềm nào là tuyệt đối cả
Hình 2.1 Mô hình tấn công SQL Injection.
- Tại Việt Nam, các quản trị website hay gọi là Webmaster – họ rất lơ là
trong việc quét virus webserver , cập nhập những bản vá lỗi cho phần mềm của
hệ thống hay các ứng dụng , đó cũng chính là lý do vì sao vừa qua có rất nhiều
website Việt Nam bị tấn công hầu hết đều là lỗi SQL Injection.
2.2 Định nghĩa SQL Injection là gì?
- Bạn có thể đơn giản là như thế này: SQL Injection là 1 kỹ thuật cho phép
những kẻ tấn công lợi dụng vào lổ hỏng trong việc kiểm tra các dữ liệu trong các
Nhóm 12 Trang 16 CCMM03A
Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection
ứng dụng website và các thông báo lỗi của hệ quản trị cơ sở dữ liệu để "tiêm
vào" (inject) và thi hành các câu lệnh SQL bất hợp pháp (do người viết phần
mềm ứng dụng họ không lường trước ). Hậu quả của nó rất tai hại vì nó cho
phép những kẻ tấn công có thể thực hiện các thao tác xóa, hiệu chỉnh, … trực
tiếp trên ứng dụng như là 1 người quản trị, do có toàn quyền trên cơ sở dữ liệu
của ứng dụng, thậm chí là server mà ứng dụng đó đang chạy.
- Lỗi này thường xảy ra trên các ứng dụng website có dữ liệu được quản lí
bằng các hệ quản trị cơ sở dữ liệu như SQL Server, MySQL, Oracle, DB2,
Sysbase.
2.3 Các dạng tấn công SQL Injection.
PCó bốn dạng thông thường bao gồm:
 Vượt qua kiểm tra lúc đăng nhập (Aauthorization bypass)
 Sử dụng câu lệnh SELECT
 Sử dụng câu lệnh INSERT
Sử dụng các stored-procedures
Hình 2.2 Tấn công SQL Injection.

2.3.1 Dạng tấn công vượt qua kiểm tra đăng nhập.
- Với dạng tấn công này, tin tặc có thể dễ dàng vượt qua các trang đăng
nhập nhờ vào lỗi khi dùng các câu lệnh SQL thao tác trên cơ sở dữ liệu của ứng
dụng web.
Nhóm 12 Trang 17 CCMM03A
Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection
- Sau khi người dùng nhập thông tin vào, hệ thống sẽ kiểm tra tên đăng
nhập và mật khẩu có hợp lệ hay không để quyết định cho phép hay từ chối thực
hiện tiếp.
Hình 2.3 Tấn công vượt qua kiểm tra đăng nhập
- Thoạt nhìn, đoạn mã trong trang execlogin.asp dường như không chứa bất
cứ một lỗ hổng về an toàn nào. Người dùng không thể đăng nhập mà không có
tên đăng nhập và mật khẩu hợp lệ. Tuy nhiên, đoạn mã này thực sự không an
toàn và là tiền đề cho một lỗi SQL injection. Đặc biệt, chỗ sơ hở nằm ở chỗ dữ
liệu nhập vào từ người dùng được dùng để xây dựng trực tiếp câu lệnh SQL.
Chính điều này cho phép những kẻ tấn công có thể điều khiển câu truy vấn sẽ
được thực hiện.
Nhóm 12 Trang 18 CCMM03A
Đồ án môn học an ninh mạng Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection
- Ví dụ: Nếu hacker nhập vào chuỗi ' OR 1=1 Câu truy vấn sẽ là:
SELECT * FROM T_USERS WHERE USR_NAME ='' OR 1 = 1 and
USR_PASSWORD= ‘' OR 1 = 1
1.Kiểm tra USR_NAME =‘’ đúng hay sai ? > Sai
2.Kiêm tra 1=1 đúng hay sau > Đúng
3. Kiểm tra USR_PASSWORD =‘’ đúng hay sai ? > Sai
4.Kiêm tra 1=1 đúng hay sau > Đúng
P (1) or (2) -> Đúng , (3) or (4) -> Đúng
Câu truy vấn này là hợp lệ và sẽ trả về tất cả các bản ghi của T_USERS và
đoạn mã tiếp theo xử lí người dùng đăng nhập bất hợp pháp này như là người
dùng đăng nhập hợp lệ.

- Tương tự như vậy, hacker có thể lợi dụng và làm những điều tồi tệ hơn
trên chính website của bạn …
2.3.2 Tấn công sử dụng câu lệnh SELECT.
- Dạng tấn công này phức tạp hơn. Để thực hiện được kiểu tấn công này, kẻ
tấn công phải có khả năng hiểu và lợi dụng các sơ hở trong các thông báo lỗi từ
hệ thống để dò tìm các điểm yếu khởi đầu cho việc tấn công.
- Xét một ví dụ rất thường gặp trong các website về tin tức. Thông thường,
sẽ có một trang nhận ID của tin cần hiển thị rồi sau đó truy vấn nội dung của tin
có ID này. Ví dụ:

Lúc này Hacker sẽ thêm dấu nháy đơn ‘ sau link, nếu có lỗi thì site sẽ báo
như thế này:
Nhóm 12 Trang 19 CCMM03A

×