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

Đồ á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

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

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.

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

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á

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

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.

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

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ố

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.

- 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

Trích đoạn Cải thiện dữ liệu nhập vào Một số công cụ quét và kiểm tra lỗi SQL Injection hiệu quả
Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status