i
I HC QUI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN THỊ THU HIỀN
XÂY DỰNG CÁC CA KIỂM THỬ
AN TOÀN THÔNG TIN CHO ỨNG DỤNG WEB
LUẬN VĂN THẠC SỸ CÔNG NGHỆ THÔNG TIN
Hà Nội - 2014
ii
I HC QUI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN THỊ THU HIỀN
XÂY DỰNG CÁC CA KIỂM THỬ
AN TOÀN THÔNG TIN CHO ỨNG DỤNG WEB
Ngành: Công nghệ thông tin
Chuyên ngành: Kỹ thuật phần mềm
Mã số: 60480103
LUẬN VĂN THẠC SỸ CÔNG NGHỆ THÔNG TIN
NGƢỜI HƢỚNG DẪN KHOA HỌC: TS. ĐẶNG ĐỨC HẠNH
Hà Nội - 2014
i
LỜI CẢM ƠN
c hi li cc bin TS. c Hnh, B
ngh phn mm, Khoa ng i hc ,
i hc Qu
ng dn ch bc hin lu
c gi li cc t
i hc i hc Qung
dt nhng kin thc, nhng kinh nghi
cm t trong sut thc Cao hc.
Cum bi, b
ng nghip, nh c
sut thi gian hc Cao hc hin luc.
H05 4
Nguyn Th Thu Hin
ii
LỜI CAM ĐOAN
n lum th cho
ng dng webi s ng dn khoa hc ca TS. c
Hnh. Ni dung ca lu bt k u
.
05 4
H
Nguyn Th Thu Hin
iii
MỤC LỤC
LI C i
L ii
MC LC iii
DANH MU, T VIT TT vi
DANH MC BNG vii
DANH M viii
M U 1
N 2
1.1. n trong kim th phn mm 2
1.1.1. m v kim th phn mm 2
1.1.2. m th 2
1.1.3. c kim th 3
1.2. Kim th ng dng web 4
1.2.1. m ng dng web 4
1.2.2. Hong ca mt ng dng Web 6
1.2.3. Kim th ATTT cho ng dng web 7
1.2.4. m th 7
T K CA KIM TH ATTT CHO NG DNG WEB 8
2.1. t k ca kim th ATTT 9
2.2. Tng h ATTT cho ng dng web 10
d liu t hng SQL Injection 10
R2. X li hng XSS 10
iv
R3. S dnh l hng CSRF 11
R4. Kim tra quyn truy cp c 12
R5. Session Hijacking 12
R6. Session fixation 12
R7. Kii file 13
liu nhy cm 14
R9. User enumeration 15
R10. HTTP Only cookie 15
R11. Chuyuyn tip thiu thm tra 15
R12. Th 16
R13. S d 16
R14. Mt khu mnh 16
2.3. m th ATTT 17
F1. Ca kim th mc chung 19
F2. Ca kim th cho chp t 24
F3. Ca kim th cho chm 28
F4. Ca kim th cho chi 35
F5. Ca kim th cho cha 44
F6. Ca kim th cho ch 60
F7. Ca kim th cho ch 66
F8. Ca kim th cho ch 71
F9. Ca kim th cho ch 78
F10. Ca kim th cho ch 84
F11. Ca kim th cho chng 93
v
F12. Ca kim th n d liu nhy cm 94
F13. Ca kim th cho chn mt khu 96
N D H TR 98
3.1. Minh hm th 98
3.2. h tr 100
3.2.1. Qum th 100
3.2.2. m th vi tng cha h thng website 101
KT LUN 102
U THAM KHO 103
vi
DANH MỤC KÝ HIỆU, TỪ VIẾT TẮT
Từ viết tắt
Tiếng Anh
Tiếng Việt
XSS
Cross-site script
L hng XSS
CSRF
Cross-site request forgery
L hng CSRF
URL
Uniform Resource Locator
nh v ng nht
ATTT
Information security
HTTP
HyperText Transfer Protocol
Giao thc truyn tn
HTTPS
Hypertext Transfer Protocol
Secure
Giao thc truyn tn
HTML
HyperText Markup Language
n
DB
Database
d liu
SQL
Structured Query Language
truy vu
HQL
Hibernate Query Language
truy v i
ng
IP
Internet Protocol
Giao thng
ID
identification
nh danh
MAC
Media Access Control
u khin truy nhng
VD
Example
DL
Data
D liu
vii
DANH MỤC BẢNG
B c bi hng XSS 11
Bng 2.2. Bng tng hng vi tng cha mt ng
dng web 18
Bm th ch cn kim tra mt l h thng 19
Bm th vp t 24
Bm th vm 28
Bm th vi 35
Bm th va 44
Bm th v 60
Bm th vt 1 bn ghi 66
Bm th v 71
Bm th vng Upload 78
Bm th v 84
Bm th v Chuyng 93
Bm th vi ch liu nhy cm 94
Bm th vc n mt khu 96
viii
DANH MỤC HÌNH VẼ
ng d 5
ng ca mt ng dng Web 5
m th ATTT 8
kin 98
m th ng dng web 100
3.3. Chm th cho tng chng dng web 101
1
MỞ ĐẦU
Trong th n nay, phn mi
a cuc s ng ng to l n i sng ca con
i. Bi v ht, vic kim th m bo chng phn mm
ng. Gi c kim th phn m n
m th ng t m bo bo mt phn
mm. Bi nhng n hng v bo mt nguy hi dn
nhng hu qu ng.
i ti ph cao, an ninh mng v thuc an ninh
phi truyn th bing, n an ninh quc
gia. Theo t i ph t hc
M khong 67,2 t u khong 400 t USD, ch ng sau ti phm ma
USD) [1].
Thc trng ti Vim n nhi
mng vc s p. Theo nhnh
c [2], hu hp ca Vit Nam
ph ng hon thc ci
ng vc t. V n
hu, , kinh t c
gia. Vim bo bo mt phn m u cp thit t buc i
vi bt k phn my, vic kim th bo m u bt
bum th phn mm ca rt nhi nhu cu
thc t u v i vng
dng web m th hng v bo mt ca ng
dng web. Sau mi s ng dn ca TS. c Hnh,
uM TH
TIN CHO NG D. Luc c
- : nibn
- : Thit k kim th ATTT cho ng dng web
- Vn dng h tr
2
CHƢƠNG 1. KHÁI NIỆM CƠ BẢN
Trong nhn trong kim th
phn mm th
1.1. Các khái niệm cơ bản trong kiểm thử phần mềm
c li nhn v kim th phn m
c kim th.
1.1.1. Khái niệm về kiểm thử phần mềm
Kiểm thử phần mềm [5] t h th n
i nhu kit qu
ca h th
Mục đích của kiểm thử phần mềm i hay khim khuyt phn
mm nhm bo hiu qu hong ta phn mm trong nhiu u kin
.
hiKiểm thử phần mềm [6] t
tit tp hc thit k m bc
hin th c thit k c hin bt c th
t pha quan tr n h thng,
ng h thc h thng mng
t ra hay ch.
1.1.2. Các phương pháp kiểm thử
Trong thc tm th phn mm [6c s dng
m th m th ng (dynamic testing).
Kiểm thử tĩnh (static testing): kim th phn mi
phi duyt lc t bc s dng gi
kim tra logic, ln tng chi tin ch
ch y kin cnh, thuc t.
k thut.
Kim th c thc hin m ng lp
n mch kin c
m th c thc hin t ng.
3
Kiểm thử động (dynamic testing): m th c
u tra trng c
kim th dn m th nh bng s thc hin cng kim th
hay chy m th c hong cnh,
tm tra s phn ng v h thng ti theo thi gian.
Trong kim th ng, phn mm phi thc s y. Kim th ng
bao gc vi phn mm, nh m tra xem liu ra
1.1.3. Các chiến lược kiểm thử
Trong chic kim thchiến lược kiểm thử [6]
nh m th h m th hp tr kim th h Chi ti
phi.
1.1.3.1. Kiểm thử hộp đen – Black box
Mt trong nhng chic kim th quan trm th hng
d lim th h
Ma b
c ng h
c hic t c mc kim th , kim th xem
d li u ra ng vi mong mun n
phh th n. Kim
th dc t n thi n nhng ri ro chc chn.
Kim th hm th
rm ninh phi. S d
bn s c nhng kim th ng l
m th hi
m th n mc kim tra
thc s hing ht kim
th t rt nhiu ca kim th kim tra mt th
th ch cn kim tra bng 1 ca kim th duy nht mt s phn ca
l c ki Do vy, kim th hm
, lm t ki.
1.1.3.2. Kiểm thử hộp trắng – White box
t chic kim th i kim th h
kim th hp trng hay kim th n kh
c d liu kim th bng s kim th
4
logic cm th truy c lii thut
nh thc hi m th hp
tr c kt hp vi m th h to ra b
kim th nhm gim thiu ri ro.
1.1.3.3. Kiểm thử hộp xám – Gray box testing
Kim th hi ph truy cp ti c lii thut
ng m t k m th m th mc
i s dng hay mc hi d linh dng d
lit chic “hộp xám”, bu ra
“hộp đen” n gi v h thc kim tra. S
c bit quan trng khi qum th p Intergartion testing
gic vit bt k
giao di kim th. Kim th h m c thit
k i chi quy i.
1.2. Kiểm thử an toàn thông tin cho ứng dụng web
nh kim th chn mm, vic kim th ng tin
cho mi ng dt v rt quan trngc bing dng
web, loi ng dc tp. ng dng web
hia nhiu hacker. Bi vy, vim b
ting du cp thi u k v
u t hi m th
ng dng web.
1.2.1. Khái niệm ứng dụng web
ng dt ng dng ch s dng giao th
thi s d
m
h duyt t i
Web.
T thu ng ng d n rt
ng ng dng bng CGI (Common
c ch kt n
d ling dc vit bng
t nn nhiu
ngun d liu.
5
Mt ng dm:
.1. : King d
- Lm v hin th d li
ng dng to b cc cho trang web.
- Lp ng dx a ng d x i
nh, gi kt qu
t b thut l, PHP hay
c tri M WebSphere,
WebLogic, Apache, IIS
- Lp d li qun tr d liu (DBMS) chm qu
lin s dng.
ng ca mt ng dng Web g, h
qun tr d liu:
1.2. ng ca mt ng dng Web
T t) c s d Internet
6
Explorer, Netscap Navigator, Firefox
H qun tr d liu ph bi SQL Server, MySQL, DB2, Access
Mt gi bo v mt h thng mc s dng
la (firewall)t h thng mc
xem
t b lc
truy xun mt mc truy xun
m
- c cm nhng dch v truy xu
- c cm nhng dch v t
- Kia ch truy nhp, ca ch truy nhp
Firewall hong dc truy nhp ci s
dng
Trong k thut phn mm, mt Ứng dụng web [7] ng d
th tip cng dng web ph
bin nh t c a m p nht
ng d t phn m
ph bin cng d
hin thc tuyc tuyn, wiki, dio lun,
weblog, MMORPG, h qun tr ni dung, phn mm quc u
ch
.
1.2.2. Hoạt động của một ứng dụng Web
t s gi m
a giao th cho thc
thi mng t nhi
ch u b din dch thu c
c t nn
d lin v
1 lung d linh dng theo giao thm 2 phn:
- lii
gi
7
- n ni dung d lii v t file
HTML, mnh, mn phim hay mn b
Vi firewall, lu
hp l, nu k t hng trong ng d
u dng trong vin k t t tn
t h thng mn tt (hay l
ho ng dng ca nhc
ti thng mng, h k t li d
l h m rng s t th.
1.2.3. Kiểm thử ATTT cho ứng dụng web
Kiểm thử bảo mật web [3] m tra s m b lio v
a h thc s t h thng hoc s d
a mt s x
kin thc v bo mt, kinh nghim thc t v n
thng website.
Vic thit lp bo mt cho mt h thng website ph thuu yu t:
bo mt v thit k, bo mt v n, bo mt v t lp c
duyt, bo mng la.
lu cn v bo
mn. bo mt ca ng d
n ch y nh s a thu
ng dng. Da ng dng web, vic kim th nh
c b tm quyn ki th
ng ng dng k thut kim th hp trng.
1.2.4. Quy trình kiểm thử an toàn thông tin
m th ch u h th
u thit k h th m th
i vi h
thng. T m th thc hin kim th i.
8
m th 1.3 [3]:
3m th ATTT
Bu
K
t
i vi h thng
m th ATTT
Thc hin kim th ATTT
N li
Sai
Tài liệu giải pháp
9
CHƢƠNG 2. THIẾT KẾ CA KIỂM THỬ ATTT
CHO ỨNG DỤNG WEB
ng dc rt nhi vic m
gim thiu nhn xut phn mm c nhng
c v l m b t
nn phn mu phc: lm
th. Vim b l hng v n tri
m bo thc hi u
c kim tra m ATTT ca mt h thng web.
2.1. Phƣơng pháp thiết kế ca kiểm thử ATTT
thit k m th ng d c
hic sau.
Bước 1: li ATTT.
, 2
,
.
"SQL Injection".
.
.
Bước 2:
hng bo m xut hin
nhau ca mt h thng. Bi v t ng d
ng ch c
c phi.
V,
,
, li "SQL Injection" :
,
,
,
,
Bước 3:
m th ng vi cp
, vi l
.
, .
10
.
select * from user where user = „Tên đăng nhâ
̣
p ngươ
̀
i
dng nhp‟ and pass = „Mâ
̣
t khâ
̉
u ngươ
̀
i du
̀
ng nhâ
̣
p‟ .
Tên đăng nhâ
̣
p = abc‟ or „a‟=‟a
.
select * from user where user = „abc‟ or „a‟=‟a‟ and
pass = „Mâ
̣
t khâ
̉
u ngươ
̀
i du
̀
ng nhâ
̣
p‟ , .
,
.
,
.
.
n ca ca kim th m bo c 3. Trong
phm vi lu
n c kim th m nhn mnh xut
m th ATTT cho ng dng Web.
Trong phn tip theo c c 2.2. s tng h
ATTT, mm th
2.2. Tổng hợp nguy cơ về ATTT cho ứng dụng web
Ph tng hp nhng v dn mi vi ng dng
web. Mi v m 3 ph v mt ATTT ca
v ng.
R1. Tương tác với cơ sở dữ liệu tránh lỗ hổng SQL Injection
Mô tả: D liu t c truyi dng tham s,
c s dn t d liu.
Nguy cơ: Khi truy vn t d liu, lng s d
cd lit b mc li SQL
Injection hoc HQL Injection (nu s dng Hibernate). Bng vic li d
k t liu trong database t
khon admin, ly c
Phòng chống: ruy vn SQL ph
PrepareStatement, tt c tham s phc add b (setParamc x
dn. Vi truy vn HQL, tt c tham s phc add
b (setParamc x dn [8].
R2. Xử lý dữ liệu đầu vào tránh lỗ hổng XSS
11
Mô tả: X d li h mi dng
c bi c bit trong
d lic khi gi t
Nguy cơ: Kt qu server tr v yi dng HTML.
Ni dung tr v ng bao gm c nh . H thng
b mc li XSS n li -Site
t tng (ASP, PHP,
CGI, JSP ) nhng th HTML hay nh
hi cho nhng ni s d
u hc vit b-
HTML.
Phòng chống: hn mi d
t c bit do client gn bao g. Vin
thc hin ng hp: d liu ly ra t database khi tr v cho client. Bn cht
ca vi ng chung trong bng 2.1.
thng thm [4].
Bng 2.1 c bi hng XSS
STT
Ký tự
HTML
1
"
"
2
&
&
3
'
'
4
/
/
5
<
<
6
>
>
R3. Sử dụng Token trong phương thức GET và POST tránh lỗ hổng CSRF
Mô tả: d li
t, s dc to ra mp ci
t tham s c GET hom token
Nguy cơ: CSRF (Cross-n quyn ca
thc hin m
mt me n tay ca m
ch quy ch quy thc hi
K ta admin truy ct
u
bit. M nn tin
ng:
12
/>000. Tsender i gi tin, receiver i nhn tiamount
tin chuyn. Hi i A th i
m tra sender i thng link. Tuy vy, bng
mc A ch t iframe
tt trong m
th chuyn tin t n bt k
Phòng chốngi vu quan trng, s d
server s kiu g client, np l
u s c thc hin [9].
R4. Kiểm tra quyền truy cập của người dùng
Mô tả: Kin c.
Nguy cơ: thn, m
truy c liu vic kim tra quy
c ki truy c lic quyn
(leo quyn).
Phòng chống: Kim tra quyn trong tng request g [10].
R5. Session Hijacking
Mô tả: m bo ATTT, h thng kng
th ses
IP, User-Agent hoa ch MAC.
Nguy cơ: K thut tp l sau
khi n thng bh gia h c
trong cookie hay tham s URL, bin n ca form [11].
Phòng chống: Gii hn phm vi ng dng ca session ID
o Kt hp Session ID va ch ct
o Kt hp session ID vng thi
o i h thng hay ht hiu l
thc hi hot (cookie)
o i s dng ph i h th session
hin th nh thng khi h
ng lc
o Thit lp thi gian ht hiu lng h
d
R6. Session fixation
13
Mô tả: m bn phn mm cn to session mi sau
t khi h thng
ng hp session ca ng di. Hacker
s dng l h n bit n/ Mt khu.
Nguy cơ: K thut t p l
bi mt sesion ID hp l p
th
p l [12].
Phòng chống:
- Biện pháp 1: Phn mm cp vi mn.
Theo kiu t th
mt session ID do hacker to s to m
ng, ng dng phi hy b c cung cp bi
t co mt session ID
m
- Biện pháp 2ng nh thng. Vic to
ng d thng gii hn (ch to mt session ID mi
khin cho nhng hacker
p l ca h th s dng
[12].
- Biện pháp 3: Gii hn phm vi ng dng ca session ID
o Kt hp session ID va ch ct.
o Kt hp session ID vng th
c
o i h thng hay ht hiu
l thc hi hot (cookie).
o i s dng ph ch i h th
session hin th nh
thng khi h ng lc.
o Thit lp thi gian ht hiu l ng hp
dng
R7. Kiểm soát các thao tác với file
Mi ng di file cn v bo mt. Th nht, file
thng cm b, hp l c c
. Th hai, vch
Vi mi lo
[10].
File upload:
14
Mô tả: Gii hn ch nh du ca ng dng
. Kim so
upload ti mc web hop,
th Ch \m tra phn m rng ca file
khi x .
Nguy cơ: ng s dng dc
g client, nu ng d c kii
c thc hi dn vic download ho
hp l.
Phòng chống: m b m
vi file upload, cn ki file upload:
- Kin m rng ca file, ch c hin v
nh du
- Ki v uan n c ghi file, bi ng dn file
phc lc /, \ null
File download:
Mô tả: u tt c d li th khi
xut h thng xut ra hoc tc chia s (share). vic
thc hin ti (download) d li trong URI
request phi v th liu
nhy ct web server.
Nguy cơ: thng tn tt xut d liu truy
vn, kt qu i d. T, ch
h d liu ca h thng:
o c con cc webapp.
o i v
o p trc tic.
o : Nhng link sau s i m th
xu c:
o :8080/ams/share/report_out/exportDMHangHoa20121022090
909.xls
Phòng chống: lit
t c share. Vic thc hi liu
i qua ph
R8. Mã hóa dữ liệu nhạy cảm
Mô tả: Cn n vic th liu nhy cm trong
d liu hong truyn.
15
Nguy cơ: Khi h thng b t t
s d liu hong truyn liu nhy cm s b l n
Phòng chống: gim thit ATTT vi d li
ng truyn ng dng cn m liu nhy c
s d liu dng giao thc HTTPS vng (
thng giao dch trc tuyp) [10,13].
R9. User enumeration
Mô tả: S di cho c ng hp nh
nht kh thng. Nhng h
t gia nht khu.
D th thng.
Nguy cơ: ng ht gia nhp
t khu. D th
thng.
Phòng chống: S di cho c ng hp nh
t kh thng [14].
R10. HTTP Only cookie
Mô tả: u thit lp thuu
c set thu h s d
p cookie c
Nguy cơ: s d p cookie c i
Phòng chống: u thit lp thu
c set thu c
[15].
R11. Chuyển hướng và chuyển tiếp thiếu thẩm tra
Mô tả: can thi
t ng dng du cn s dc kim tra,
m bn na ng dng. Nu
c kim tra, k t t
phn mc hi, hoc la nt khu, hoc nhny
c
Nguy cơ: n mm
c hi, hoc la nt khu, hoc nhy c