-
Thông tin
-
Quiz
Báo cáo "Các phương thức tấn công và phòng thủ web server "
Báo cáo "Các phương thức tấn công và phòng thủ web server "
Trường Cao đẳng Du lịch Huế 14 tài liệu
Báo cáo "Các phương thức tấn công và phòng thủ web server "
Báo cáo "Các phương thức tấn công và phòng thủ web server "
Môn: Kinh doanh điện tử trong du lịch và khách sạn 3 tài liệu
Trường: Trường Cao đẳng Du lịch Huế 14 tài liệu
Thông tin:
Tác giả:
Tài liệu khác của Trường Cao đẳng Du lịch Huế
Preview text:
lOMoARcPSD|36212343 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. Xu t phát từ những thực t đó, chúng ta s tìm hi u v các
cách t n công ph bi n nh t hi n nay và các phòng chống các lo i t n công này.
Chính vì v y, thông qua vi c nghiên c u m t số ph ng pháp t n công và cách b o
m t các lọa t n công này,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.
Tôi xin chân thành c m n sự h ng d n c a Thầy Đặng Ngọc C ng là thầy trực
ti p h ng d n đ án chuyên ngành cho tôi, giúp tôi có th hoƠn thƠnh đ án này. 1. Lý do chọn đ tài
Trong những năm gần đơy, Vi t Nam ngày càng phát tri n và nh t là v mặt công
ngh thông tin. Đặc bi t là v ng d ng web, hầu nh mọi ng i ai cũng từng nghe và
làm vi c trên ng d ng web. Website tr nên ph bi n và tr thành m t phần quan
trọng c a mọi ng i và nh t là các doanh nghi p, công ty. Bên c nh đó lỦ do an toƠn
b o m t cho ng d ng web luôn là v n đ nan gi i c a mọi ng i.Vì v y chúng ta s
đi tìm hi u ng d ng web và cách th c t n công và b o m t web. 2. M c tiêu
Giúp chúng ta có th hi u h n v các ng d ng website, các mối đe dọa v v n đ
an toàn thông tin khi chúng ta làm vi c trên ng d ng web hàng ngày, hi u rõ h n v
các kỹ thu t t n công và b o m t web. 3. Ph m vi
Tìm hi u các kỹ thu t t n công ph bi n nh t hi n nay nh SQL Injection, Denial
Of Service, Local Attack,…Cách b o m t, phòng th các lo i t n công ph bi n trên m t cách t ng quan nh t
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER M C L C CH
NG 1......................................................................................................... 4
T NG QUAN V WEBSITE, CÁC D CH V C A WEBSITE VÀ L I B O M T
THÔNG D NG ................................................................................................... 4
1.1. Mô t Website và cách ho t đ ng ................................................................. 4
1.2. Các d ch v và ng d ng trên n n web .......................................................... 5 CH
NG 2......................................................................................................... 6
CÁC LO I T N CÔNG VÀ B O M T NG D NG WEB PH BI N ................ 6
2.1. LOCAL ATTACK ...................................................................................... 6
2.1.1. Tìm hi u v Local Attack ....................................................................... 6
2.1.2. Cách t n công Local Attack ................................................................... 6
2.1.3. Cách b o m t cho Local Attack ............................................................ 10
2.1.4. Các công c h tr .............................................................................. 14
2.2. T n công từ chối d ch v - (Denial Of Service) ............................................ 15
2.2.1. DOS(Denial Of Service) ...................................................................... 15
2.2.2. Ddos(Distributed Denial of Service) ..................................................... 18
2.2.3. T n công từ chối d ch v ph n x nhi u vùng DRDoS (Distributed
Reflection Denial of Service) ........................................................................ 30
2.3. SQL Injection ........................................................................................... 32
2.3.1. T n công SQL injection ....................................................................... 32
2.3.2.Cách Phòng Tránh SQL Injection .......................................................... 41
2.4. Cross Site Scripting (XSS) ......................................................................... 46
2.4.1. T n công XSS ..................................................................................... 46
2.4.2. Phòng chống. ...................................................................................... 49 CH
NG 3....................................................................................................... 50 DEMO, ĐÁNH GIÁ VÀ H
NG PHÁT TRI N Đ TÀI .................................... 50 NGUY N V NG NGH Trang 2
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
3.1. Demo ....................................................................................................... 50
3.2. K t lu n ................................................................................................... 51
3.2.1. Các v n đ đ t đ c ............................................................................ 51
3.2.2. H n ch .............................................................................................. 52
3.2.3. H ng phát tri n đ tài ........................................................................ 52 NH N XÉT C A GI NG VIểN H
NG D N ................................................. 54
NH N XÉT C A GI NG VIÊN PH N BI N .................................................... 55 NGUY N V NG NGH Trang 3
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER CH NG 1
TỔNG QUAN V WEBSITE, CÁC D CH V C A WEBSITE VÀ L I B O M T THÔNG D NG
1.1. Mô t Website vƠ cách ho t đ ng
Website là m t “trang web” trên m ng Internet, đơy lƠ n i gi i thi u những
thông tin, hình nh v doanh nghi p và s n ph m, d ch v c a doanh nghi p (hay gi i
thi u b t c thông tin gì) đ khách hàng có th truy c p b t kỳ n i đơu, b t c lúc nào.
Website là t p h p nhi u trang [web page]. Khi doanh nghi p xây dựng website
nghĩa lƠ đang xơy dựng nhi u trang thông tin, catalog s n ph m, d ch v ....Đ t o nên
m t website cần ph i có 3 y u tố c b n:
Cần ph i có tên mi n (domain).
N i l u trữ website (hosting).
N i dung các trang thông tin [web page]. M t số thu t ngữ c b n:
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 nh brochure,
không có c s dữ li u và không có công c qu n lý thông tin trên website. Thông
th ng website tĩnh đ c thi t k bằng các phần m m nh FrontPage, Dreamwaver,...
Đặ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.
- 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ó 2 lo i tên mi n:
- Tên mi n Quốc t : là tên mi n có d ng .com; .net; .org; .biz; .name ... NGUY N V NG NGH Trang 4
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
- Tên mi n Vi t Nam: là tên mi n có d ng .vn; .com.vn; .net.vn; org.vn; .gov.vn;...
- 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
(máy ch - server) luôn ho t đ ng và k t nối v i m ng Internet. M t server có th l u
trữ nhi u website, n u server 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ó th truy c p đ c những website l u trữ trên server 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 [thuê dung l ng host].
- Dung l ng host: LƠ n i đ l u c s trữ dữ li u c a website (hình nh, thông tin
…), đ n v đo dung l ng th ng là Mb hoặc Gb.
- Băng thông hay dung l ng đ ng truy n 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 (download, upload) 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 word (xử lỦ văn b n), Google
spreadsheets (xử lý b ng tính), 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 server Luôn sẵn sàng 24/7
D dàng backup 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 nh IPhone mà không cần đ n m t chi c máy tính. NGUY N V NG NGH Trang 5
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER CH NG 2
CÁC LO I T N CÔNG VÀ B O M T NG D NG WEB PHỔ BI N 2.1. LOCAL ATTACK
2.1.1. Tìm hi u v Local Attack
- Local attack là m t trong những ki u hack r t ph bi n vƠ không đ c khuyên
dùng.Đối m t web server thông th ng khi b n đăng kỦ m t tài kho n trên server nào
đó b n s đ c c p m t tài kho n trên server đó vƠ m t th m c đ qu n lý site c a
mình. Ví d : tenserver/tentaikhoancuaban. VƠ nh v y cũng có m t tài kho n c a
ng i dùng khác t ng tự nh : tenserver/taikhoan1.Gi sử taikhoan1 b hacker chi m
đ c thì hacker có th dùng các th thu t,các đo n scrip,các đo n mã l nh đ truy c p
sang th m c ch a site c a b n lƠ tenserver/taikhoancuaban. VƠ cũng theo cách nƠy
hacker có th t n công sang các site c a ng i dùng khác và có th l y thông tin
admin,database,các thông tin b o m t khác hoặc chèn các đo n mư đ c vào trang index
c a site b n. D ng t n công trên gọi là Local Attack
- Thông th ng nh t, Local Attack đ c sử d ng đ đọc l y thông tin config từ
victim, sau đó dựa vào thông tin config và m c đích c a hacker đ phá ho i website
2.1.2. Cách t n công Local Attack
- Đ thực hi n t n công Local Attack, tùy theo cách th c c a hacker mà có những
cách Local khác nhau. Thông th ng thì các hacker th ng sử d ng các đo n l nh đ t n công vào database.
2.1.2.1. Chuẩn bị
- Tr c tiên ph i có m t con PHP/ASP/CGI backdoor trên server. Backdoor thì có
r t nhi u lo i khác nhau nh ng ph bi n nh t lƠ phpRemoteView (th ng đ c gọi là
remview) R57Shell, CGITelnet,C99,…Ti n hành upload các công c trên lên,
th ng lƠ các con shell nh R57,C99,…
- Upload m t trong những công c đó lên host (Th ng thì chúng ta sử d ng các con
shell R57,C99,.. vì nó m nh và d sử d ng)
- Đ có host chúng ta có nhi u cách: NGUY N V NG NGH Trang 6
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
+ Mua m t cái host(cách này hacker ít sử d ng vì nhi u lỦ do nh ng lỦ do c b n v n
là tốn ti n mà khi up shell lên n u b admin c a server phát hi n s b del host,..V i
cách này thì sau khi Local xong thì nên xóa các con shell ngay l p t c.
+ Hack m t trang b l i vƠ upload shell lên (th ng thì hacker sử d ng SQL Injection
đ hack m t trang web và chi m tài kho n admin c a trang web đó vƠ upload các con
shell lên)hoặc khai thác l i inclusion
+ Search backdoor (Vào google.com search keyword: <?phpRemoteView?> , r57Shell
...). Vói cách này thì hầu h t các con shell là c a các hacker đư sử d ng vƠ ch a b xóa,
n u đ c thì chúng ta nên upload cho chúng ta m t con shell khác
2.1.2.2.Tiến hành Attack
- Sau khi chúng ta chu n b xong, t c lƠ đư upload đ c con shell lên 1 server nào
đó. Chúng ta bắt đầu tìm các website cùng server mà b n đư up shell lên, thông th ng
các hacker th ng sử d ng Reverse Ip domain mƠ hacker đư upload shell đ xem các website cùng server
- Sau khi tìm đ c danh sách website ,lần l t check xem site nào b l i và có th local sang đ c
- Các l nh th ng dùng trong shell đ Local Attack
Xem tên domain trên cùng 1 host ls -la /etc/valiases
cd /etc/vdomainaliases;ls –lia
- Tr ng h p đặc bi t khi không th xem user nằm cùng host thì ta thêm && vào
cd /etc/vdomainaliases && ls –lia
- Muốn bi t tên user thì dùng l nh : cat /etc/passwd/ Hoặc less /etc/passwd
+ local sang victim, t c là local sang site khác
ví d hi n t i con shell chúng ta đang : /home/abcd/public_html/
thì chúng ta s local sang nh sau : NGUY N V NG NGH Trang 7
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
dir home/tên user cần local/public_html
- Muốn bi t tên user cần local sang thì chúng ta sử d ng Reverse Ip đ l y danh sách
user trên cùng m t server.Muốn bi t user đó có t n t i hay không chúng ta m trình
duy t web lên vƠ đánh đo n : Ip c a server/~ tên user (Ví d :
203.166.222.121/~doanchuyennganh). N u trình duy t hi n lên trang index c a
website thì t c lƠ user đó t n t i +Xem n i dung c a file
cat /home/tên user cần local/public_html/index.php Hoặc
Chúng ta muốn xem config c a 1 forum thì dùng
ln -s /home/tên user cần local/public_html/forum/includes/config.php doanchuyennganh.txt
V i doanchuyennganh.txt đơy lƠ file chúng ta t o ra trên host c a chúng ta đ xem
file c a ng i khác ! N u không sử d ng đ c các l nh trên t c lƠ server đư disable ch c năng đó.
Thêm 1 số l nh shell trong linux :
- pwd: đ a ra ngoƠi mƠn hình th m c đang ho t đ ng (ví d : /etc/ssh).
- cd: thay đ i th m c (ví d : cd .. ậ ra m t c p th m c hi n t i; cd vidu ậ vƠo th m c /vidu).
- ls: đ a ra danh sách n i dung th m c.
- mkdir: t o th m c m i (mkdir tên_thumuc).
- touch: t o file m i (touch ten_file).
- rmdir: bỏ m t th m c (rmdir ten_thumuc).
- cp: copy file hoặc th m c (cp file_ngu n file_đích).
- mv: di chuy n file hoặc th m c; cũng đ c dùng đ đặt l i tên file hoặc th m c
(mv v _trí_cũ v _trí_m i hoặc mv tên_cũ tên_m i).
- rm: lo i bỏ file (rm tên_file).
- Đ tìm ki m file, b n có th dùng: - find : dùng cho các tên file. - grep <>: đ tìm n i dung trong file.
Đ xem m t file, b n có th dùng:
- more : hi n th file theo từng trang. NGUY N V NG NGH Trang 8
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
- cat <>: hi n th t t c file.
- N u muốn k t nối t i m t host từ xa, sử d ng l nh ssh. Cú pháp là ssh . Qu n lý h thống:
- ps: hi n th các ch ng trình hi n th i đang ch y (r t hữu ích: ps là cái nhìn toàn b v t t c các ch ng trình).
- Trong danh sách đ a ra khi thực hi n l nh ps, b n s th y có số PID (Process
identification - nhân d ng ti n trình).
Con số này s đ c hỏi đ n khi muốn ngừng m t d ch v hay ng d ng, dùng l nh kill
- top: ho t đ ng khá giống nh Task Manager trong Windows. Nó đ a ra thông tin v
t t c tài nguyên h thống, các ti n trình đang ch y, tốc đ load trung bình… L nh top
-d thi t l p kho ng th i gian lƠm t i l i h thống. B n có th đặt b t kỳ giá
tr nào, từ .1 (t c 10 mili giây) t i 100 (t c 100 giây) hoặc th m chí l n h n.
- uptime: th hi n th i gian c a h thống và tốc đ load trung bình trong kho ng th i
gian đó, tr c đơy lƠ 5 phút vƠ 15 phút.
Thông th ng tốc đ load trung bình đ c tính toán theo phần trăm tƠi
nguyên h thống (vi xử lý, RAM, c ng vào/ra, tốc đ load m ng) đ c dùng
t i m t th i đi m. N u tốc đ đ c tính toán là 0.37, t c có 37% tài nguyên
đ c sử d ng. Giá tr l n h n nh 2.35 nghĩa lƠ h thống ph i đ i m t số dữ
li u, khi đó nó s tính toán nhanh h n 235% mƠ không gặp ph i v n đ gì.
Nh ng giữa các phân phối có th khác nhau m t chút.
- free: hi n th thông tin trên b nh h thống.
- ifconfig : đ xem thông tin chi ti t v các giao di n m ng; thông
th ng giao di n m ng ethernet có tên là eth(). B n có th cƠi đặt các thi t l p m ng
nh đ a ch IP hoặc bằng cách dùng l nh này (xem man ifconfig). N u có đi u gì đó
ch a chính xác, b n có th stop hoặc start (t c ngừng hoặc kh i_đ ng) giao di n bằng
cách dùng l nh ifconfig up/down.
- passwd: cho phép b n thay đ i m t kh u (passwd ng i_dùng_s _hữu_m t_kh u
hoặc tên ng i dùng khác n u b n đăng nh p h thống v i vai trò root).
- useradd: cho phép b n thêm ng i dùng m i (xem man useradd).
Dù phân phối nào, b n cũng có th dùng phím TAB đ tự đ ng hoàn ch nh m t l nh
hoặc tên file. Đi u này r t hữu ích khi b n quen v i các l nh. B n cũng có th sử d ng NGUY N V NG NGH Trang 9
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
các phím lên, xuống đ cu n xem các l nh đư nh p. B n có th dùng l nh đa dòng trên
m t dòng. Ví d nh , n u muốn t o ba th m c ch trên m t dòng, cú pháp có th là:
mkdir th _m c_1 ; mkdir th _m c_2 ; mkdir th _m c_3.
M t đi u thú v khác nữa là các l nh d ng pipe. B n có th xu t m t l nh thông
qua l nh khác. Ví d : man mkdir | tail s đ a ra thông tin các dòng cuối cùng trong
trang xem "th công" c a l nh mkdir.
N u lúc nƠo đó đ c yêu cầu ph i đăng nh p v i tài kho n gốc (t c "siêu"
admin c a h thống), b n có th đăng nh p t m th i bằng cách dùng l nh su. Tham số
-1 (su-1) dùng đ thay đ i th m c ch và cho các l nh đư hoặc đang dùng. Chú Ủ lƠ
b n cũng s đ c nhắc m t m t kh u. Đ thoát hay đóng : gõ exit hoặc logout.
2.1.3. Cách b o m t cho Local Attack
Đ h n ch Local Attack, chúng ta nên Chmod filemanager ,di chuy n file
config.php và sửa đ i file htaccess và nh t lƠ th ng xuyên backup dữ li u. -Chmod File Manager:
+ CHMOD th m c Public_html thành 710 thay vì 750 mặc đ nh vi c này s giúp b n
b o v đ c c u trúc Website c a mình.
+ CHMOD ti p các th m c con (diendan (http://diendan.doanchuyennganh.com),
CHMOD th m c diendan (http://diendan.doanchuyennganh.com) thành 701, r i
CHMOD ti p các th m c con trong th m c diendan
(http://diendan.doanchuyennganh.com) thành 701
+ CHMOD toàn b file thành 404
V i CHMOD chắc chắn khi run shell s hi n ra thông báo l i:
Not Acceptable An appropriate representation of the requested resource
/test.php could not be found on this server.
Additionally, a 404 Not Found error was encountered while trying to use an
ErrorDocument to handle the request. Attacker s không view đ c. NGUY N V NG NGH Trang 10
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
- Ngoài ra , m t số site thì b n truy c p bằng subdomain c a nó mà không là d ng
doanchuyenganh.com/diendan (http://diendan.doanchuyennganh.com), cái này có
nhi u Ủ nghĩa, nh ng trong b o m t thì nó s r t khác.
+ CHMOD th m c là 701 và cố gắng đừng bao gi CHMOD 777, có m t số folder
ko quan trọng, b n có th CHMOD 755 đ có th hi n th đúng vƠ đầy đ m t số n i
dung trong Folder đó. Chú ý th này, m t số Server h tr CHMOD th m c đ c
101, n u Server c a b n h tr cái này thì hãy sử d ng nó, vì bi n pháp CHMOD này
r t an toƠn, đ n ngay c Owner cũng ko th xem đ c c u trúc Folder ngay c khi vào
FTP. Hi n ch có Server c a Eshockhost.net là h tr cái này.
+ CHMOD File lƠ 604 vƠ đừng bao gi đ là 666 n u có vi c cần 666 thì chúng ta
CHMOD t m đ sử d ng lúc đó, sau đó hưy CHMOD l i ngay. Đối v i các Server h
tr CHMOD file 404 chúng ta hưy CHMOD nh v y, ví d Server Eshockhost.net
- Thay đ i c u trúc, tên file mặc đ nh có ch a các thông tin quan trọng . N u có th
hưy thay đ i c c u trúc CSDL n u b n lƠm đ c .
-Chống local bằng cách b t safe-mode (dành cho root):
Nh chúng ta đư bi t, đối v i các webshell - PHP, trong PHP
Configuration có những option đ h n ch tính năng c a nó (đặc bi t là r57 - tự
đ ng by pass) nên công vi c đầu tiên c a các root account là ph i c p nh t các
phiên b n PHP m i nh t và config l i php.ini : [i]PHP safe mode lƠ ph ng
pháp đ gi i quy t v n đ b o m t cho nh ng n i server chia sẻ hosting cho
nhi u accounts (shared-server). Nó là do thi t k 1 cách sai l c c a từng c p
PHP. Hi n nay, nhi u ng i đư chọn ph ng pháp b t safe-mode đ b o m t, đặc bi t là các ISP
- Các h ng d n v c u hình Security and Safe Mode : Code:
safe_mode: mặc định : "0" sửa dưới phân quyền : PHP_INI_SYSTEM
safe_mode_gid: mặc định :"0"sửa dưới phân quyền : PHP_INI_SYSTEM
safe_mode_include_dir: mặc định :NULL sửa dưới phân quyền : PHP_INI_SYSTEM
safe_mode_exec_dir: mặc định :""sửa dưới PHP_INI_SYSTEM
safe_mode_allowed_env_vars: mặc định :"PHP_"sửa dưới PHP_INI_SYSTEM
safe_mode_protected_env_vars: mặc định :"LD_LIBRARY_PATH"sửa dưới NGUY N V NG NGH Trang 11
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER PHP_INI_SYSTEM
open_basedir: mặc định :NULL sửa dưới PHP_INI_SYSTEM
disable_functions: mặc định :"" sửa dưới php.ini
disable_classes : mặc định : ""sửa dưới php.ini
- Sau đơy lƠ cách đ đặc chính c u hình server đ b t ch đ safe mode : Trong file php.ini :
safe_mode = Off chuyển thành safe_mode = On
- disabled_functions nên ch a những function sau : PHP Code:
readfile,system, exec, shell_exec, passthru, pcntl_exec, putenv, proc_close,
proc_get_status, proc_nice, proc_open, proc_terminate, popen, pclose, set_time_limit,
escapeshellcmd, escapeshellarg, dl, curl_exec, parse_ini_file, show_source,ini_alter, virtual, openlog - Khi đó, ta ví d : PHP Code:
-rw-rw-r-- 1 doanchuyennganh doanchuyennganh 33 Jul 1 19:20 script.php
-rw-r--r-- 1 root root 1116 May 26 18:01 /etc/passwd - Trong script.php là : PHP Code: <?php
readfile('/etc/passwd'); ?> - K t qu : PHP Code:
Warning: readfile() has been disabled for security reasons in /docroot/script.php on line 2
- Vài l i đi m c a vi c b t safe mode:
- Th ng khi upload file, file s vào /tmp/ v i những ng i có quy n không ph i là owner.
- B t safe-mode s có những b t l i v i ng i l p trình code PHP, do đó, họ th ng có: PHP Code: NGUY N V NG NGH Trang 12
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER <?php
// Kiểm tra safe mode
if( ini_get('safe_mode') ){
// Code theo bật safe_mode }else{
// Code theo tắt safe_mode } ?>
-B o m t server apache :
Bây gi , xin gi i thích tầm quan trọng c a apache :
Client (Hacker using local attack) ------> Shared server
Shared Server --------------------------> Apache
Apache ---------------------------------> PHP/Perl ... xử lý ...
PHP/Perl (gửi k t qu ) -----------------> Apache
Apache (gửi k t qu ) ------------------>Client
Do đó quy n chính apache set .. ch 0 h ph thu c nhi u vào các application nh PHP/CGI ... CƠi đặt apache : Code: pw groupadd apache
pw useradd apache -c "Apache Server" -d /dev/null -g apache -s /sbin/nologin
Theo mặc đ nh, các process thu c Apache ch y v i ch quy n c a ng i
dùng nobody (ngo i trừ process chính ph i ch y v i ch quy n root) và GID
thu c nhóm nogroup. Ði u này có th d n đ n những đe dọa b o m t nghiêm
trọng. Trong tr ng h p đ t nh p thành công, tin tặc có th l y đ c quy n truy
d ng đ n những process khác ch y cùng UID/GID. B i th , gi i pháp tối u lƠ
cho Apache ch y bằng UID/GID từ nhóm riêng bi t, chuyên chú đ n software y thôi.
Ðối v i những ai quen dùng *nix hẳn không l gì v i khái ni m
UID/GID thu c ch đ "file permission". Tuy nhiên, chi ti t này nên m r ng
m t tí cho những b n đọc ch a quen thu c v i UID/GID. Phần t o nhóm NGUY N V NG NGH Trang 13
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
(group) vƠ ng i dùng (user) riêng cho Apache trên có hai chi ti t cần chú ý là:
-d /dev/null: không cho phép user Apache có th m c $HOME nh ng những user bình th ng khác
-s /sbin/nologin: không cho user Apache dùng b t c m t shell nào c . Có m t số
tr ng h p dùng -s /bin/true thay vì nologin trên, true là m t l nh không thực thi gì c và hoàn toàn vô h i.
LỦ do không cho phép user Apache có th m c $HOME vƠ không đ c c p
m t "shell" nào c vì n u account Apache này b đ c cho phép, tin tặc cũng không có
c h i ti p c n v i system m c đ cần thi t cho th thu t "leo thang đặc quy n".
Trên môi tr ng *nix nói chung, "shell" là giao di n giữa ng i dùng và h thống,
không có shell thì không có c h i ti p c n. N u phần thi t l p trên cung c p user
Apache m t $HOME và cho phép dùng m t shell nƠo đó thì đư không mang giá tr gì trên quan đi m "b o m t".
VƠo http://httpd.apache.org/ cƠi đặt phi n b n m i nh t (hi n gi 2.2)
Khi đó ta nên set quy n c a php shell riêng, nó không có quy n đ c nh y sang các user khác .
- Chmod trong /usr/bin nh sau :
-rwxr--r-x root nobody wget cho -rwxr-x--- root compiler gcc
- Chặn biên d ch gcc, tránh đ user dùng nh ng exploit sẵn biên d ch get root. Trong /bin/: -rwxr-xr-x root root cp
- T ng tự v i rm, mv, tar, chmod, chown, chgrp... -rwsr-x--- root wheel su -rwxr-x--- root root ln
2.1.4. Các công c h tr
-Công c h tr Local Attack ph bi n và hay dùng nh t là các con shell.Các lo i shell
th ng sử d ng là R57,C99,.. NGUY N V NG NGH Trang 14
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
Hình 1. Hình ảnh của 1 dạng shell
2.2. T n công từ chối d ch v - (Denial Of Service)
2.2.1. DOS(Denial Of Service)
2.2.1.1. Giới thiệu khái quát về DoS:
- DoS (Denial of Service) có th mô t nh hƠnh đ ng ngăn c n những ng i dùng
h p pháp c a m t d ch v nƠo đó truy c p vƠ sử d ng d ch v đó. Nó bao g m c vi c
lƠm trƠn ng p m ng, lƠm m t k t nối v i d ch v … mƠ m c đích cuối cùng lƠ lƠm cho
server không th đáp ng đ c các yêu cầu sử d ng d ch v từ các client. DoS có th
lƠm ng ng ho t đ ng c a m t máy tính, m t m ng n i b , th m chí c m t h thống
m ng r t l n. Thực ch t c a DoS lƠ kẻ t n công s chi m d ng m t l ng l n tƠi
nguyên m ng nh băng thông, b nh … vƠ lƠm m t kh năng xử lỦ các yêu cầu d ch
v đ n từ các client khác.
2.2.1.2. Các cách thức tấn công:
+ Phá ho i dựa trên tính gi i h n hoặc không th ph c h i c a tƠi nguyên m ng. - Thông qua k t nối: T n công ki u SYN flood: FPRIVATE "TYPE=PICT;ALT="
L i d ng các th c ho t đ ng c a k t nối TCP/IP, hacker bắt đầu quá trình thi t l p m t
k t nối TPC/IP v i m c tiêu muốn t n công nh ng s phá vỡ k t nối ngay sau khi quá
trình SYN vƠ SYN ACK hoƠn t t, khi n cho m c tiêu r i vƠo tr ng thái ch (đ i gói NGUY N V NG NGH Trang 15
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
tin ACK từ phía yêu cầu thi t l p k t nối) vƠ liên t c gửi gói tin SYN ACK đ thi t l p
k t nối . M t cách khác lƠ gi m o đ a ch IP ngu n c a gói tin yêu cầu thi t l p k t
nối SYN vƠ cũng nh tr ng h p trên, máy tính đích cũng r i vƠo tr ng thái ch vì các
gói tin SYN ACK không th đi đ n đích do đ a ch IP ngu n lƠ không có th t. Cách
th c nƠy có th đ c các hacker áp d ng đ t n công m t h thống m ng có băng
thông l n h n h thống c a hacker.
- L i d ng ngu n tƠi nguyên c a chính n n nhơn đ t n công:
T n công ki u Land Attack: cũng t ng tự nh SYN flood nh ng hacker sử d ng
chính IP c a m c tiêu cần t n công đ dùng lƠm đ a ch IP ngu n trong gói tin, đ y
m c tiêu vƠo m t vòng lặp vô t n khi cố gắng thi t l p k t nối v i chính nó.
T n công ki u UDP flood: hacker gửi gói tin UDP echo v i đ a ch IP ngu n lƠ c ng
loopback c a chính m c tiêu cần t n công hoặc c a m t máy tính trong cùng m ng v i
m c tiêu qua c ng UDP echo (port 7) đ thi t l p vi c gửi vƠ nh n các gói tin echo
trên 2 máy tính (hoặc giữa m c tiêu v i chính nó n u m c tiêu có c u hình c ng
loopback) khi n cho 2 máy tính nƠy dần dần sử d ng h t băng thông c a chúng vƠ c n
tr ho t đ ng chia sẻ tƠi nguyên m ng c a các máy tính khác trong m ng. -Sử d ng băng thông:
T n công ki u DDoS (Distributed Denial of Service): đơy lƠ cách th c t n công r t
nguy hi m. Hacker xơm nh p vƠo các h thống máy tính, cƠi đặt các ch ng trình đi u
ki n từ xa vƠ s kích ho t đ ng th i các ch ng trình nƠy vƠo cùng m t th i đi m đ
đ ng lo t t n công vƠo m t m c tiêu. Cách th c nƠy có th huy đ ng t i hƠng trăm
th m chí hƠng ngƠn máy tính cùng tham gia t n công m t lúc (tùy vƠo sự chu n b
tr c đó c a hacher) vƠ có th ngốn h t băng thông c a m c tiêu trong nháy mắt.
-Sử d ng các ngu n tƠi nguyên khác:
Kẻ t n công l i d ng các ngu n tƠi nguyên mƠ n n nhơn cần đ n đ t n công. Những
kẻ t n công có th thay đ i dữ li u vƠ tự sao chép dữ li u mƠ n n nhơn cần lên nhi u
lần lƠm CPU b quá t i vƠ các quá trình xử lỦ dữ li u b đình tr .
- T n công ki u Smurf Attack: ki u t n công nƠy cần m t h thống r t quan trọng, đó
lƠ m ng khuy ch đ i. Hacker dùng đ a ch c a máy tính cần t n công gửi broadcast gói
tin ICMP echo cho toƠn b m ng. Các máy tính trong m ng s đ ng lo t gửi gói tin NGUY N V NG NGH Trang 16
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
ICMP reply cho máy tính mƠ hacker muốn t n công. K t qu lƠ máy tính nƠy s không
th xử lỦ k p th i m t l ng l n thông tin nh v y vƠ r t d b treo.
- T n công ki u Tear Drop: trong m ng chuy n m ch gói, dữ li u đ c chia nhỏ lƠm
nhi u gói tin, mối gói tin có m t giá tr offset riêng vƠ có th truy n đi theo nhi u
đ ng đ t i đích. T i đích, nh vƠo giá tr offset c a từng gói tin mƠ dữ li u l i đ c
k t h p l i nh ban đầu. L i d ng đi u nƠy, hacker có th t o ra nhi u gói tin có giá tr
offset trùng lặp nhau gửi đ n m c tiêu muốn t n công. K t qu lƠ máy tính đích không
th sắp x p đ c những gói tin nƠy vƠ có th b treo do đư dùng h t năng lực xử lỦ c a h thống.
+.Phá ho i hoặc ch nh sửa thông tin c u hình.
L i d ng vi c c u hình thi u an toƠn (ví d nh vi c không xác thực thông tin trong
vi c gửi vƠ nh n b n tin update c a các router) mƠ kẻ t n công s thay đ i từ xa hoặc
trực ti p các thông tin quan trọng khi n cho những ng i dùng h p pháp không th sử
d ng d ch v . Ví d : hacker có th xơm nh p vƠo DNS đ thay đôi thông tin, d n đ n
quá trình biên d ch domain name sang IP c a DNS b sai l ch. K t qu lƠ các yêu cầu
c a client đ n m t domain nƠo đó s bi n thƠnh m t domain khác.
+.Phá ho i hoặc ch nh sửa v t lỦ phần c ng.
L i d ng quy n h n c a chính b n thơn kẻ t n công đối v i các thi t b trong h thống
m ng đ ti p c n phá ho i (các router, switch…)
2.2.1.3 Các cách phòng chống
- DoS có th lƠm tiêu tốn r t nhi u th i gian cũng nh ti n b c, vì v y, cần ph i có
những bi n pháp đ phòng chống:
- Mô hình h thống ph i đ c xơy dựng h p lỦ, tránh ph thu c l n nhau quá m c d
d n đ n m t b ph n gặp sự cố s lƠm c h thống b tr c trặc.
- Thi t l p password b o v các thi t b hay các ngu n tƠi nguyên quan trọng.
- Thi t l p các m c xác thực đối v i ng i dùng cũng nh các ngu n tin trên m ng
(các thông tin c p nh t đ nh tuy n giữa các router cũng nên thi t l p ch đ xác thực)
- Xơy dựng h thống lọc thông tin trên router, firewall… vƠ h thống b o v chống l i SYN flood.
- Ch ch p nh n các d ch v cần thi t, t m th i dừng các d ch v ch a có yêu cầu cung c p hoặc không sử d ng. NGUY N V NG NGH Trang 17
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
- Xơy dựng h thống đ nh m c, gi i h n cho ng i sử d ng đ ngăn ngừa tr ng h p
ng i dùng có ác Ủ muốn l i d ng các tƠi nguyên trên server đ t n công chính server hay m ng, server khác.
- Liên t c c p nh t, nghiên c u, ki m tra đ phát hi n các l h ng b o m t vƠ có bi n pháp khắc ph c k p th i.
- Sử d ng các bi n pháp ki m tra ho t đ ng c a h thống m t cách liên t c đ phát
hi n ngay những hƠnh đ ng b t bình th ng.
- Xơy dựng h thống dự phòng.
2.2.2. Ddos(Distributed Denial of Service)
- Distributed Denial Of Service (DDoS) là kỹ thu t t n công làm các ISP lo âu, gi i
hacker chính thống thì không công nh n DdoS là kỹ thu t t n công chính thống. Th
nh ng Black hat đang có r t nhi u u th khi tri n khai t n công bằng kỹ thu t DdoS.
Vi c phòng ngừa vƠ ngăn chặn DdoS v n còn đang thực hi n m c đ khắc ph c h u qu và truy tìm th ph m
2.2.2.1. Các giai đoạn của một cuộc tấn công kiểu DdoS: Bao g m 3 giai đo n: i. Giai đo n chu n b :
- Chu n b công c quan trọng c a cu c t n công, công c nƠy thông th ng ho t
đ ng theo mô hình client-server. Hacker có th vi t phần m m này hay down load m t
cách d dàng, theo thống kê t m th i có kho ng h n 10 công c DDoS đ c cung c p
mi n phí trên m ng (các công c này s phân tích chi ti t vào phần sau)
- K ti p, dùng các kỹ thu t hack khác đ nắm trọn quy n m t số host trên m ng.
ti n hƠnh cƠi đặt các software cần thi t trên các host này, vi c c u hình và thử nghi m
toàn b attack-netword (bao g m m ng l i các máy đư b l i d ng cùng v i các
software đư đ c thi t l p trên đó, máy c a hacker hoặc m t số máy khác đư đ c
thi t l p nh đi m phát đ ng t n công) cũng s đ c thực hi n trong giai đo n này.
ii. Giai đo n xác đ nh m c tiêu và th i đi m:
- Sau khi xác đ nh m c tiêu l n cuối, hacker s có ho t đ ng đi u ch nh attack-
netword chuy n h ng t n công v phía m c tiêu. NGUY N V NG NGH Trang 18
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
- Y u tố th i đi m s quy t đ nh m c đ thi t h i và tốc đ đáp ng c a m c tiêu đối v i cu c t n công.
iii. Phát đ ng t n công và xóa d u v t:
- Đúng th i đi m đư đ nh, hacker phát đ ng t n công từ máy c a mình, l nh t n công
này có th đi qua nhi u c p mói đ n host thực sự t n công. Toàn b attack-network (có
th lên đ n hàng ngàn máy), s vắt c n năng lực c a server m c tiêu liên t c, ngăn
chặn không cho nó ho t đ ng nh thi t k .
- Sau m t kho ng th i gian t n công thích h p, hacker ti n hành xóa mọi d u v t có
th truy ng c đ n mình, vi c nƠy đòi hỏi trình đ khác cao và không tuy t đối cần thi t.
2.2.2.2. Kiến trúc tổng quan của DDoS attack-network
Nhìn chung DDoS attack-network có hai mô hình chính: Mô hình Agent ậ Handler Mô hình IRC ậ Based DDoS attack-network Agent -Handler IRC - Based Client – Handler Client – Handler Secret/private Public channel channel Communication Communication TCP UD ICMP TCP UD ICMP P P
Hình 2. Sơ đồ chính phân loại các kiểu tấn công DDoS
i. Mô hình Agent ậ Handler:
Theo mô hình này, attack-network g m 3 thành phần: Agent, Client và Handler
Client : lƠ software c s đ hacker đi u khi n mọi ho t đ ng c a attack-network
Handler : là m t thành phần software trung gian giữa Agent và Client
Agent : là thành phần software thực hi n sự t n công m c tiêu, nh n đi u khi n từ
Client thông qua các Handler NGUY N V NG NGH Trang 19
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER Attacker Attacker Handler Handler Handler Handler Agent Agent Agent Agent Agent Victim
Hình 3. Kiến trúc attack-network kiểu Agent – Handler
- Attacker s từ Client giao ti p v i cc1 Handler đ xác đ nh số l ng Agent đang
online, đi u ch nh th i đi m t n công và c p nh t các Agent. Tùy theo cách attacker
c u hình attack-network, các Agent s ch u sự qu n lý c a m t hay nhi u Handler.
- Thông th ng Attacker s đặt Handler software trên m t Router hay m t server có
l ng traffic l u thông nhi u. Vi c này nhằm làm cho các giao ti p giữa Client,
handler và Agent khó b phát hi n. Các gia ti p nƠy thông th ng x y ra trên các
protocol TCP, UDP hay ICMP. Ch nhân thực sự c a các Agent thông th ng không
h hay bi t họ b l i d ng vào cu c t n công ki u DDoS, do họ không đ ki n th c
hoặc các ch ng trình Backdoor Agent ch sử d ng r t ít tài nguyên h thống làm cho
hầu nh không th th y nh h ng gì đ n hi u năng c a h thống.
ii. Mô hình IRC ậ Based:
- Internet Relay Chat (IRC) là m t h thống online chat multiuser, IRC cho phép
User t o m t k t nối đ n multipoint đ n nhi u user khác và chat th i gian thực. Ki n
trúc c IRC network bao g m nhi u IRC server trên khắp internet, giao ti p v i nhau
trên nhi u kênh (channel). IRC network cho phép user t o ba lo i channel: public, private và serect.
Public channel: Cho phép user c a channel đó th y IRC name và nh n đ c
message c a mọi user khác trên cùng channel NGUY N V NG NGH Trang 20
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
Private channel: đ c thi t k đ giao ti p v i các đối t ng cho phép. Không cho
phép các user không cùng channel th y IRC name và message trên channel. Tuy nhiên,
n u user ngoài channel dùng m t số l nh channel locator thì có th bi t đ c sự t n t i c a private channel đó.
Secrect channel : t ng tự private channel nh ng không th xác đ nh bằng channel locator. Attacker Attacker IRC NETWORK Agent Agent Agent Agent Agent Victim
Hình 4. Kiến trúc attack-network của kiểu IRC-Base
- IRC ậ Based net work cũng t ng tự nh Agent ậ Handler network nh ng mô hình
này sử d ng các kênh giao ti p IRC lƠm ph ng ti n giao ti p giữa Client và Agent
(không sử d ng Handler). Sử d ng mô hình này, attacker còn có thêm m t số l i th khác nh :
Các giao ti p d i d ng chat message làm cho vi c phát hi n chúng là vô cùng khó khăn
IRC traffic có th di chuy n trên m ng v i số l ng l n mà không b nghi ng
Không cần ph i duy trì danh sách các Agent, hacker ch cần logon vào IRC server là
đư có th nh n đ c report v tr ng thái các Agent do các channel gửi v .
Sau cùng: IRC cũng lƠ m t môi tr ng file sharing t o đi u ki n phát tán các Agent code lên nhi u máy khác. NGUY N V NG NGH Trang 21
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
2.2.2.3. Phân loại tấn công kiểu DDOS
- Nhìn chung, có r t nhi u bi n th c a kỹ thu t t n công DDoS nh ng n u nhìn d i
góc đ chuyên môn thì có th chia các bi n th này thành hai lo i dựa trên m ch đích
t n công: Làm c n ki t băng thông vƠ lƠm c n ki t tài nguyên h thống DDoS Bandwith Resource Deleption Protoc Amplification ol Malformed Flood Attack Paclket Exploit UDP ICMP Smuft Flaggle TCP SYS PUSH IP @ IP Packet Options +ACK Random Static Spoof Direct Loop Port Port Sourc Spoof Spoof Spoof Spoof source source source source
Hình 5. Phân loại các kiểu tấn công DDoS
i. Những ki u t n công làm c n ki t băng thông c a m ng (BandWith Depletion Attack)
- BandWith Depletion Attack đ c thi t k nhằm làm tràng ng p m ng m c tiêu v i
những traffic không cần thi t, v i m c đ ch làm gi m tối thi u kh năng c a các traffic
h p l đ n đ c h thống cung c p d ch v c a m c tiêu.
- Có hai lo i BandWith Depletion Attack:
+ Flood attack: Đi u khi n các Agent g i m t l ng l n traffic đ n h thống d ch v
c a m c tiêu, làm d ch v này b h t kh năng v băng thông.
+ Amplification attack: Đi u khi n các agent hay Client tự gửi message đ n m t đ a
ch IP broadcast, làm cho t t c các máy trong subnet này gửi message đ n h thống
d ch v c a m c tiêu. Ph ng pháp nƠy lƠm gia tăng traffic không cần thi t, làm suy
gi m băng thông c a m c tiêu. NGUY N V NG NGH Trang 22
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER Flood attack:
Trong ph ng pháp nƠy, các Agent s gửi m t l ng l n IP traffic làm h thống d ch
v c a m c tiêu b ch m l i, h thống b treo hay đ t đ n tr ng thái ho t đ ng bão hòa.
Làm cho các User thực sự c a h thống không sử d ng đ c d ch v .
Ta có th chia Flood Attack thành hai lo i:
+ UDP Flood Attack: do tính ch t connectionless c a UDP, h thống nh n UDP
message ch đ n gi n nh n vào t t c các packet mình cần ph i xử lý. M t l ng l n
các UDP packet đ c g i đ n h thống d ch v c a m c tiêu s đ y toàn b h thống đ n ng ỡng t i h n.
+ Các UDP packet này có th đ c gửi đ n nhi u port tùy ý hay ch duy nh t m t port.
Thông th ng là s gửi đ n nhi u port làm cho h thống m c tiêu ph i căng ra đ xử
lỦ phơn h ng cho các packet này. N u port b t n công không sẵn sàng thì h thống
m c tiêu s gửi ra m t ICMP packet lo i “destination port unreachable”. Thông
th ng các Agent software s dùng đ a ch IP gi đ che gi u hành tung, cho nên các
message tr v do không có port xử lý s d n đ n m t đ i ch Ip khác. UDP Flood
attack cũng có th làm nh h ng đ n các k t nối xung quanh m c tiêu do sự h i t c a packet di n ra r t m nh.
+ ICMP Flood Attack: đ c thi t k nhằm m c đích qu n lý m ng cũng nh đ nh v
thi t b m ng. Khi các Agent g i m t l ng l n ICMP_ECHO_REPLY đ n h thống
m c tiêu thì h thống này ph i reply m t l ng t ng ng Packet đ tr l i, s d n đ n
ngh n đ ng truy n. T ng tự tr ng h p trên, đ a ch IP c a cá Agent có th b gi m o. +Amplification Attack:
- Amplification Attack nhắm đ n vi c sử d ng các ch c năng h tr đ a ch IP
broadcast c a các router nhằm khuy ch đ i và h i chuy n cu c t n công. Ch c năng
này cho phép bên gửi ch đ nh m t đ a ch IP broadcast cho toàn subnet bên nh n thay
vì nhi u đ a ch . Router s có nhi m v gửi đ n t t c đ a ch IP trong subnet đó packet broadcast mà nó nh n đ c.
- Attacker có th gửi broadcast message trực ti p hay thông qua m t số Agent nhằm
lƠm gia tăng c ng đ c a cu c t n công. N u attacker trực ti p gửi message, thì có
th l i d ng các h thống bên trong broadcast network nh m t Agent. NGUY N V NG NGH Trang 23
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER Attacker/Agent VICTIM Amplifier
Amplifier Network System
Hình 6. Sơ đồ tấn công kiểu Amplification Attack
Có th chia amplification attack thành hai lo i, Smuft va Fraggle attack:
+ Smuft attack: trong ki u t n công này attacker g i packet đ n network amplifier
(router hay thi t b m ng khác h tr broadcast), v i đ a ch c a n n nhân. Thông
th ng những packet đ c dùng là ICMP ECHO REQUEST, các packet này yêu cầu
yêu cầu bên nh n ph i tr l i bằng m t ICMP ECHO REPLY packet. Network
amplifier s gửi đ n ICMP ECHO REQUEST packet đ n t t c các h thống thu c đ a
ch broadcast và t t c các h thống này s REPLY packet v đ a ch IP c a m c tiêu t n công Smuft Attack.
+ Fraggle Attack: t ng tự nh Smuft attack nh ng thay vì dùng ICMP ECHO
REQUEST packet thì s dùng UDP ECHO packet g i đ m m c tiêu. Th t ra còn m t
bi n th khác c a Fraggle attack s gửi đ n UDP ECHO packet đ n chargen port (port
19/UNIX) c a m c tiêu, v i đ a ch bên gửi là echo port (port 7/UNIX) c a m c tiêu,
t o nên m t vòng lặp vô h n. Attacker phát đ ng cu c t n công bằng m t ECHO
REQUEST v i đ a ch bên nh n là m t đ a ch broadcast, toàn b h thống thu c đ a NGUY N V NG NGH Trang 24
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
ch này l p t c gửi REPLY đ n port echo c a n n nhơn, sau đó từ n n nhân m t
ECHO REPLY l i gửi tr v đ a ch broadcast, quá trình c th ti p di n. Đơy chính lƠ
nguyên nhân Flaggle Attack nguy hi m h n Smuft Attack r t nhi u.
ii. Những ki u t n công làm c n ki t tài nguyên: (Resource Deleption Attack)
- Theo đ nh nghĩa: Resource Deleption Attack lƠ ki u t n công trong đó Attacker g i
những packet dùng các protocol sai ch c năng thi t k , hay gửi những packet v i d ng
ý làm tắt ngh n tài nguyên m ng làm cho các tài nguyên này không ph c v user thông th ng khác đ c.
ii.a/ Protocol Exploit Attack:
+ TCP SYS Attack: Transfer Control Protocol h tr truy n nh n v i đ tin c y cao
nên sử d ng ph ng th c bắt tay giữa bên g i và bên nh n tr c khi truy n dữ li u.
B c đầu tiên, bên gửi g i m t SYN REQUEST packet (Synchronize). Bên nh n n u
nh n đ c SYN REQUEST s tr l i bằng SYN/ACK REPLY packet. B c cuối
cùng, bên gửi s truyên packet cuối cùng ACK và bắt đầu truy n dữ li u. SYS TCP TCP SYN/ACK Client ACK Server 80 Client Port
Hình 7. Kiểu tấn công TCP SYS Attack
- N u bên server đư tr l i m t yêu cầu SYN bằng m t SYN/ACK REPLY nh ng
không nh n đ c ACK packet cuối cùng sau m t kho ng th i gian quy đ nh thì nó s
resend l i SYN/ACK REPLY cho đ n h t th i gian timeout. Toàn b tài nguyên h
thống “dự trữ” đ xử lý phiên giao ti p n u nh n đ c ACK packet cuối cùng s b
“phong tỏa” cho đ n h t th i gian timeout.
- Nắm đ c đi m y u này, attacker g i m t SYN packet đ n n n nhân v i đ a ch
bên g i là gi m o, k t qu là n n nhân g i SYN/ACK REPLY đ n m t đ a ch khá và
s không bao gi nh n đ c ACK packet cuối cùng, cho đ n h t th i gian timeout n n NGUY N V NG NGH Trang 25
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
nhân m i nh n ra đ c đi u này và gi i phóng các tài nguyên h thống. Tuy nhiên,
n u l ng SYN packet gi m o đ n v i số l ng nhi u và d n d p, h thống c a n n
nhân có th b h t tài nguyên. Client Server Attacker/Agent Server SYN SYN SYN/ACK SYN/ACK SYN/ACK ACK
Hình 8. Attacker giả mạo Ip
+ PUSH = ACK Attack: Trong TCP protocol, các packet đ c ch a trong buffer, khi
buffer đầy thì các packet này s đ c chuy n đ n n i cần thi t. Tuy nhiên, bên g i có
th yêu cầu h thống unload buffer tr c khi buffer đầy bằng cách g i m t packet v i
PUSH và ACK mang giá tr là 1. Những packet này làm cho h thống c a n n nhân
unload t t c dữ li u trong TCP buffer ngay l p t c và gửi m t ACK packet tr v khi
thực hi n xong đi u này, n u quá trình đ c di n ra liên t c v i nhi u Agent, h thống
s không th xử lỦ đ c l ng l n packet gửi đ n và s b treo.
ii.b/ Malformed Packet Attack:
- Malformed Packet Attack là cách t n công dùng các Agent đ g i các packet có
c u trúc không đúng chu n nhằm làm cho h thống c a n n nhân b treo.
Có hai lo i Malformed Packet Attack:
+ IP address attack: dùng packet có đ a ch g i và nh n giống nhau làm cho h đi u
hành c a n n nhân không xử lý n i và b treo.
+ IP packet options attack ng u nhiên hóa vùng OPTION trong IP packet và thi t l p
t t c các bit QoS lên 1, đi u này làm cho h thống c a n n nhân ph i tốn th i gian
phân tích, n u sử d ng số l ng l n Agent có th làm h thống n n nhân h t kh năng xử lý. NGUY N V NG NGH Trang 26
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
ii.c/ M t số đặc tính c a công c DdoS attack: DDoS software Tool Attack Agent Setup OS supported Network Instalation Hide with rootkit Protocol Encruption Agent Unix Solaris Linux Windows Activation Methods Active Passive Yes No Actively Live&wait Poll TCP UDP ICMP YES Bugged Corrupted Agent IRC No Client Agent None Backdoor Trojan Buffer Overlfow
Hình 9. Một số đặc tính của công cụ DdoS attack
- Có r t nhi u đi m chung v mặt software c a các công c DDoS attack. Có th k
ra m t số đi m chung nh : cách cƠi Agent software, ph ng pháp giao ti p giữa các
attacker, handler vƠ Agent, đi m chung v lo i h đi u hành h tr các công c này.
S đ trên mô t sự so sánh t ng quan giữa các công c t n công DDoS này.
* Cách th c cƠi đặt DDoS Agent:
- Attacker có th dùng ph ng pháp active vƠ passive đ cƠi đặt agent software lên
các máy khác nhằm thi t l p attack-network ki u Agent-Handler hay IRC-based. - Cách cƠi đặt Active:
+ Scaning: dùng các công c nh Nmap, Nessus đ tìm những s h trên các h thống
đang online nhằm cƠi đặt Agentsoftware. Chú ý, Nmap s tr v những thông tin v
m t h thống đư đ c ch đ nh bằng đ a ch IP, Nessus tìm ki m từ những đ a ch IP
b t kỳ v m t đi m y u bi t tr c nƠo đó.
+ Backdoor: sau khi tìm th y đ c danh sách các h thống có th l i d ng, attacker s
ti n hành xâm nh p và cài Agentsoftware lên các h thống này. Có r t nhi u thông tin
sẵn có v cách th c xâm nh p trên m ng, nh site c a t ch c Common NGUY N V NG NGH Trang 27
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
Vulnerabilities and Exposures (CVE), đơy li t kê và phân lo i trên 4.000 lo i l i c a
t t c các h thống hi n có. Thông tin này luôn sẵn sàng cho c gi i qu n tr m ng l n hacker.
+ Trojan: là m t ch ng trình thực hi n m t ch c năng thông th ng nƠo đó, nh ng
l i có m t số ch c năng ti m n ph c v cho m c đích riêng c a ng i vi t mƠ ng i
dùng không th bi t đ c. Có th dùng trojan nh m t Agent software.
+ buffer Overflow: t n d ng l i buffer overflow, attacker có th làm cho chu trình thực
thi ch ng trình thông th ng b chuy n sang chu trình thực thi ch ng trình c a
hacker (nằm trong vùng dữ li u ghi đè). Có th dùng cách nƠy đ t n công vào m t
ch ng trình có đi m y u buffer overflow đ ch y ch ng trình Agent software. - Cách cƠi đặt passive:
+ Bug Website: attacker có th l i d ng m t số l i c a web brower đ cài Agent
software vào máy c a user truy c p. Attaker s t o m t website mang n i dung ti m n
những code và l nh đ đặt b y user. Khi user truy c p n i dung c a website, thì
website download vƠ cƠi đặt Agent software m t cách bí m t. Microsoft Internet
Explorer web browser th ng là m c tiêu c a cách cƠi đặt này, v i các l i c a
ActiveX có th cho phép IE brower tự đ ng download vƠ cƠi đặt code trên máy c a user duy t web.
+ Corrupted file: m t ph ng pháp khác lƠ nhúng code vƠo trong các file thông
th ng. Khi user đọc hay thực thi các file này, máy c a họ l p t c b nhi m Agent
software. M t trong những kỹ thu t ph bi n lƠ đặt tên file r t dài, do default c a các
h đi u hành ch hi n th phần đầu c a tên file nên attacker có th gửi kèm theo email
cho n n nhơn file nh sau: iloveyou.txt_hiiiiiii_NO_this_is_DDoS.exe, do ch th y
phần “Iloveyou.txt” hi n th nên user s m file nƠy đ đọc và l p t c file nƠy đ c
thực thi vƠ Agent code đ c cài vào máy n n nhân. Ngoài ra còn nhi u cách khác nh
ng y trang file, ghép file…
- Rootkit: là những ch ng trình dùng đ xóa d u v t v sự hi n di n c a Agent hay
Handler trên máy c a n n nhơn. Rootkit th ng đ c dùng trên Hander software đư
đ c cƠi, đóng vai trò xung y u cho sự ho t đ ng c a attack-network hay trên các môi
tr ng mà kh năng b phát hi n c a Handler là r t cao. Rootkit r t ít khi dùng trên các NGUY N V NG NGH Trang 28
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
Agent do m c đ quan trọng c a Agent không cao và n u có m t m t số Agent cũng
không nh h ng nhi u đ n attack-network.
* Giao ti p trên Attack-Network:
- Protocol: giao ti p trên attack-network có th thực hi n trên n n các protocol TCP, UDP, ICMP.
- Mã hóa các giao ti p: m t vài công c DDoS h tr mã hóa giao ti p trên toàn b
attack-network. Tùy theo protocol đ c sử d ng đ giao ti p s có các ph ng pháp
mã hóa thích h p. N u attack-network d ng IRC-based thì private và secrect channel đư h tr mã hóa giao ti p.
- Cách kích ho t Agent: có hai ph ng pháp ch y u đ kích ho t Agent. Cách th
nh t là Agent s th ng xuyên quét thăm dó Handler hay IRC channel đ nh n ch th
(active Agent). Cách th hai là Agent ch đ n gi n lƠ “nằm vùng” ch ch th từ Handler hay IRC Channel.
ii.d. M t số công c DDoS:
Dựa trên n n t ng chung c a phần trên, đư có nhi u công c đ c vi t ra, thông
th ng các công c này là mã ngu n m nên m c đ ph c t p ngày càng cao và có nhi u bi n th m i l .
* Công c DDoS d ng Agent ậ Handler:
- TrinOO: là m t trong các công c DDoS đầu tiên đ c phát tán r ng rãi.
TrinOO có ki n trúc Agent ậ Handler, là công c DDoS ki u Bandwidth Depletion
Attack, sử d ng kỹ thu t UDP flood. Các version đầu tiên c a TrinOO không h tr
gi m o đ a ch IP. TrinOO Agent đ c cƠi đặt l i d ng l i remote buffer overrun.
Ho t đ ng trên h đi u hành Solaris 2.5.1 à Red Hat Linux 6.0. Attack ậ network giao
ti p dùng TCP (attacker client và handler) và UDP (Handler và Agent). Mã hóa giao
ti p dùng ph ng pháp mư hóa đối x ng giữa Client, handler và Agent.
- Tribe Flood Network (TFN): Ki u ki n trúc Agent ậ Handler, công c DDoS ho
tr ki u Bandwidth Deleption Attack và Resourse Deleption Attack. Sử d ng kỹ thu t
UDP flood, ICMP Flood, TCP SYN vƠ Smurf Attack. Các version đầu tiên không h
tr gi m o đ a ch IP, TFN Agent đ c cƠi đặt l i d ng l i buffer overflow. Ho t
đ ng trên h đi u hành Solaris 2.x và Red Hat Linux 6.0. Attack ậ Network giao ti p NGUY N V NG NGH Trang 29
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
dùng ICMP ECHO REPLY packet (TFN2K h tr thêm TCP/UDP v i tính năng chọn
protocol tùy ý), không mã hóa giao ti p (TFN2K h tr mã hóa)
- Stacheldraht: là bi n th c a TFN có thêm kh năng updat Agent tự đ ng. Giao ti p
telnet mư hóa đối x ng giữa Attacker và Handler.
- Shaft: là bi n th c a TrinOO, giao ti p Handler ậ Agent trên UDP, Attacker ậ
Hendle trên Internet. T n công dùng kỹ thu t UDP, ICMP và TCP flood. Có th t n
công phối h p nhi u ki u cùng lúc. Có thống kê chi ti t cho phép attacker bi t tình
tr ng t n th t c a n n nhân, m c đ quy mô c a cu c t n công đ đi u ch nh số l ng Agent.
* Công c DDoS d ng IRC ậ Based:
Công c DDoS d ng IRC-based đ c phát tri n sau các công c d ng Agent ậ
Handler. Tuy nhiên, công c DDoS d ng IRC ph c t p h n r t nhi u, do tích h p r t
nhi u đặc tính c a các công c DDoS d ng Agent ậ Handler.
- Trinity: là m t đi n hình c a công c d ng này. Trinity có hầu h t các kỹ thu t t n
công bao g m: UDP, TCP SYS, TCP ACK, TCP fragment, TCP NULL, TCP RST,
TCP random flag, TCP ESTABLISHED packet flood. Nó có sẵn kh năng ng u nhiên
hóa đ a ch bên g i. Trinity cũng h tr TCP flood packet v i kh năng ng u nhân t p
CONTROL FLAG. Trinity có th nói là m t trong số các công c DDoS nguy hi m nh t.
- Ngoài ra có th nhắc thêm v m t số công c DDoS khác nh Knight, đ c thi t k
ch y trên Windows, sử d ng kỹ thu t cƠi đặt c a troijan back Orifice. Knight dùng các
kỹ thu t t n công nh SYV, UDP Flood vƠ Urgent Pointer Flooder.
- Sau cùng là Kaiten, là bi n th c a Knight, h tr r t nhi u kỹ thu t t n công nh :
UDP, TCP flood, SYN, PUSH + ACK attack. Kaiten cũng thừa h ng kh năng ng u
nhiên hóa đ a ch gi m o c a Trinity.
2.2.3. T n công từ chối d ch v ph n x nhi u vùng DRDoS (Distributed
Reflection Denial of Service)
Xu t hi n vƠo đầu năm 2002, lƠ ki u t n công m i nh t, m nh nh t trong họ DoS.
N u đ c thực hi n b i kẻ t n công có tay ngh thì có th h g c b t c h thống phút chốc NGUY N V NG NGH Trang 30
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
- M c tiêu chính c a DDDoS là chi m đo t toàn b băng thông c a máy ch , t c là
làm tắc ng n hoƠn toƠn đ ng k t nối từ máy ch vƠo x ng sống c a Internet và tiêu
hao tài nguyên máy ch . Trong suốt quá trình máy ch b t n công bằng DrDoS, không
m t máy khách nào ch th k t nối đ c vào máy ch đó. T t c các d ch v ch y trên
n n TCP/IP nh DNS, HTTP, FTP, POP3, ... đ u b vô hi u hóa.
- V c b n, DrDoS là sự phối h p giữa hai ki u DoS và DDoS. Nó có ki u t n
công SYN v i m t máy tính đ n, vừa có sự k t h p giữa nhi u máy tính đ chi m
d ng băng thông nh ki u DDoS. Kẻ t n công thực hi n bằng cách gi m o đ a ch c a
server m c tiêu r i gửi yêu cầu SYN đ n các server l n nh Yahoo,Micorosoft…,đ
các server này gửi các gói tin SYN/ACK đ n server m c tiêu. Các server l n, đ ng
truy n m nh đư vô tình đóng vai trò zoombies cho kẻ t n công nh trong DdoS
Hình 10. Sơ đồ mô tả kiểu tấn công DRDOS
- Quá trình gửi c lặp l i liên t c v i nhi u đ a ch IP gi p từ kẻ t n công, v i nhi u
server l n tham gia nên server m c tiêu nhanh chóng b quá t i, bandwidth b chi m
d ng b i server l n. Tính ngh thu t là ch ch cần v i m t máy tính v i modem
56kbps, m t hacker lành ngh có th đánh b i b t c máy ch nào trong giây lát mà
không cần chi m đo t b t c máy nƠo đ làm ph ng ti n thực hi n t n công. NGUY N V NG NGH Trang 31
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER 2.3. SQL Injection
2.3.1. T n công SQL injection
2.3.1.1. SQL Injection là gì?
- Khi tri n khai các ng d ng web trên Internet, nhi u ng i v n 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 t p trung vào các v n đ nh chọn h đi u hành, h qu n tr c s dữ li u,
webserver s ch y ng d ng, ... mà quên m t ằng ngay c b n thân ng d ng ch y trên
đó cũng ti m n m t l h ng b o m t r t l n. M t trong số các l h ng nƠy đó lƠ SQL
injection. T i Vi t Nam, đư qua th i kì các qu n tr website l lƠ vi c quét virus, c p
nh t các b n vá l i từ các phần m m h thống, nh ng vi c chăm sóc các l i c a các
ng d ng l i r t ít đ c quan tơm. Đó lƠ lí do t i sao trong th i gian vừa qua, không ít
website t i Vi t Nam b t n công vƠ đa số đ u là l i SQL injection. V y SQL injection là gì ?
- SQL injection là m t kĩ thu t cho phép những kẻ t n công l i d ng l h ng trong
vi c ki m tra dữ li u nh p trong các ng d ng web 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 (không
đ c ng i phát tri n ng d 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, … 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 web 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.1.2. Các Dạng Tấn Công SQL Injection
- Có bốn d ng thông th ng bao g m: v t qua ki m tra lúc đăng nh p
(authorization bypass), sử d ng câu l n SELECT, sử d ng câu l nh INSERT, sử d ng các stored-procedures.
- Đ bi t các website bán hàng sử d ng CSDL SQL ta sử d ng các soft hoặc các
công c tìm l i.Hoặc các công c tìm ki m nh Google.VƠ dùng các Dork tìm ki m
nh : inurl : product.php?id= NGUY N V NG NGH Trang 32
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
Hình 11. Một tools tìm site lỗi Online
- Đ bi t website nào dính l i SQL Injection ta thêm d u “ ’ ” vƠo sau thanh đ a ch .
Ví d : http://www.doanchuyenganh.com/product.php?id=123’
Hình 12. Một site bị lỗi SQL Injection NGUY N V NG NGH Trang 33
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
i. 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.
Xét m t ví d đi n hình, thông th ng đ cho phép ng i dùng truy c p vào các trang
web đ c b o m t, h thống th ng xây dựng trang đăng nh p đ yêu cầu ng i dùng
nh p thông tin v tên đăng nh p và m t kh u. 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. Trong tr ng h p nƠy, ng i ta có th dùng hai trang,
m t trang HTML đ hi n th form nh p li u và m t trang ASP dùng đ xử lí thông tin
nh p từ phía ng i dùng. Ví d : login.htm Username: Password: execlogin.asp <%
Dim vUsrName, vPassword, objRS, strSQL
vUsrName = Request.Form("fUSRNAME")
vPassword = Request.Form("fPASSWORD")
strSQL = "SELECT * FROM T_USERS " & _
"WHERE USR_NAME=' " & vUsrName & _
" ' and USR_PASSWORD=' " & vPassword & " ' "
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open strSQL, "DSN=..." If (objRS.EOF) Then
Response.Write "Invalid login." Else
Response.Write "You are logged in as " & objRS("USR_NAME") End If Set objRS = Nothing NGUY N V NG NGH Trang 34
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER %>
- 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. Ví d , n u ng i dùng nh p
chu i sau vào trong c 2 ô nh p li u username/password c a trang login.htm là: ' OR ' '
= ' '. Lúc này, câu truy v n s đ c gọi thực hi n là: SELECT * FROM T_USERS WHERE
USR_NAME ='' OR ''='' and
USR_PASSWORD= '' OR ''=''
- 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 .
ii. D ng 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 : http://www.doanchuyennganh.com/product.asp?ID=123 . Mã ngu n cho
ch c năng nƠy th ng đ c vi t khá đ n gi n theo d ng <%
Dim vNewsID, objRS, strSQL
vNewsID = Request("ID")
strSQL = "SELECT * FROM T_NEWS WHERE NEWS_ID =" & vNewsID
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open strSQL, "DSN=..." Set objRS = Nothing %> NGUY N V NG NGH Trang 35
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
- Trong các tình huống thông th ng, đo n mã này hi n th n i dung c a tin có ID
trùng v i ID đư ch đ nh và hầu nh không th y có l i. Tuy nhiên, giống nh ví d
đăng nh p tr c, đo n mư nƠy đ l s h cho m t l i SQL injection khác. Kẻ t n
công có th thay th m t ID h p l bằng cách gán ID cho m t giá tr khác, và từ đó,
kh i đầu cho m t cu c t n công b t h p pháp, ví d nh : 0
OR 1=1 (nghĩa là, http://www.doanchuyennganh.com/product.asp?ID=0 or 1=1).
- Câu truy v n SQL lúc này s tr v t t c các article từ b ng dữ li u vì nó s thực hi n câu l nh:
SELECT * FROM T_NEWS WHERE NEWS_ID=0 or 1=1
- M t tr ng h p khác, ví d nh trang tìm ki m. Trang nƠy cho phép ng i dùng
nh p vào các thông tin tìm ki m nh Họ, Tên, … Đo n mư th ng gặp là: <%
Dim vAuthorName, objRS, strSQL
vAuthorName = Request("fAUTHOR_NAME")
strSQL = "SELECT * FROM T_AUTHORS WHERE AUTHOR_NAME =' " & _
vAuthorName & " ' "
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open strSQL, "DSN=..." … Set objRS = Nothing %>
- T ng tự nh trên, tin tặc có th l i d ng s h trong câu truy v n SQL đ nh p
vƠo tr ng tên tác gi bằng chu i giá tr :
' UNION SELECT ALL SELECT OtherField FROM OtherTable WHERE ' '='
- Lúc này, ngoài câu truy v n đầu không thƠnh công, ch ng trình s thực hi n thêm
l nh ti p theo sau từ khóa UNION nữa.
- T t nhiên các ví d nói trên, d ng nh không có gì nguy hi m, nh ng hưy thử
t ng t ng kẻ t n công có th xóa toàn b c s dữ li u bằng cách chèn vƠo các đo n
l nh nguy hi m nh l nh DROP TABLE.
Ví d nh : ' DROP TABLE T_AUTHORS -- NGUY N V NG NGH Trang 36
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
- Chắc các b n s thắc mắc là làm sao bi t đ c ng d ng web b l i d ng nƠy đ c.
R t đ n gi n, hãy nh p vào chu i (*) nh trên, n u h thống báo l i v cú pháp d ng:
Invalid object name “OtherTable”; ta có th bi t chắc là h thống đư thực hi n câu
SELECT sau từ khóa UNION, vì nh v y m i có th tr v l i mƠ ta đư cố tình t o ra trong câu l nh SELECT.
- Cũng s có thắc mắc là làm th nào có th bi t đ c tên c a các b ng dữ li u mà
thực hi n các thao tác phá ho i khi ng d ng web b l i SQL injection. Cũng r t đ n
gi n, b i vì trong SQL Server, có hai đối t ng là sysobjects và syscolumns cho phép
li t kê t t c các tên b ng và c t có trong h thống. Ta ch cần ch nh l i câu l nh SELECT, ví d nh :
' UNION SELECT name FROM sysobjects WHERE xtype = 'U' là có th li t kê đ c
tên t t c các b ng dữ li u.
iii. D ng t n công sử d ng câu l nh INSERT
- Thông th ng các ng d ng web cho phép ng i dùng đăng kí m t tài kho n đ
tham gia. Ch c năng không th thi u lƠ sau khi đăng kí thƠnh công, ng i dùng có th
xem và hi u ch nh thông tin c a mình. SQL injection có th đ c dùng khi h thống
không ki m tra tính h p l c a thông tin nh p vào.
Ví d , m t câu l nh INSERT có th có cú pháp d ng:
INSERT INTO TableName VALUES('Value One', 'Value Two', 'Value Three').
N u đo n mã xây dựng câu l nh SQL có d ng : <%
strSQL = "INSERT INTO TableName VALUES(' " & strValueOne & " ', ' " _
& strValueTwo & " ', ' " & strValueThree & " ') "
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open strSQL, "DSN=..." … Set objRS = Nothing %>
- Thì chắc chắn s b l i SQL injection, b i vì n u ta nh p vƠo tr ng th nh t ví d
nh : ' + (SELECT TOP 1 FieldName FROM TableName) + '. Lúc này câu truy v n s
là: INSERT INTO TableName VALUES(' ' + (SELECT TOP 1 FieldName FROM NGUY N V NG NGH Trang 37
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
TableName) + ' ', 'abc', 'def'). Khi đó, lúc thực hi n l nh xem thông tin, xem nh b n
đư yêu cầu thực hi n thêm m t l nh nữa đó lƠ: SELECT TOP 1 FieldName FROM TableName
iiii. D ng t n công sử d ng stored-procedures
- Vi c t n công bằng stored-procedures s gây tác h i r t l n n u ng d ng đ c
thực thi v i quy n qu n tr h thống 'sa'.
- Ví d : n u ta thay đo n mã tiêm vào d ng: ' ; EXEC xp_cmdshell ‘cmd.exe dir C: '.
- Lúc này h thống s thực hi n l nh li t kê th m c trên đĩa C:\ cƠi đặt server.
- Vi c phá ho i ki u nào tuỳ thu c vào câu l nh đằng sau cmd.exe. N u cài SQL
Server ch đ mặc đ nh thì SQL Server ch y trên n n SYSTEM, t ng đ ng m c
truy c p Windows. Có th dùng master..xp_cmdshell đ thi hành l nh từ xa:
; exec master..xp_cmdshell 'ping 10.10.1.2'--
Thử dùng d u nháy đôi (") n u d u nháy đ n (') không làm vi c.
D i đơy lƠ m t số extended stored procedure mƠ hacker th ng hay sử d ng đ thực
thi những câu l nh xem n i dung thông tin trong máy n n nhân:
Xp_availablemedia: Hi n th những đĩa hi n hành trên máy
Xp_dirtree: Hi n th t t c các th m c k c th m c con
Xp_loginconfig: L y thông tin v ch đ b o m t trên server
Xp_makecab: Cho phép ng i sử d ng t o các t p tin l u trữ trên Server (hay b t c
t p tin nào mà server có th truy xu t
Xp_ntsec_enumdomain: li t kê những domain mà server có th truy v n.
Xp_terminate_process: ch m d t m t ti n trình v i tham số PID c a nó.
iiiii. T n công SQL Injection nâng cao.
• Chu i kí tự không có d u nháy đ n:
- Những nhà l p trình có th b o v ng d ng c a họ bằng cách lo i bỏ t t c d u
nháy, thông th ng lo i bỏ d u nháy bằng cách thay m t d u nháy thành 2 d u nháy. NGUY N V NG NGH Trang 38
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER Ví d a.1 :
function escape( input )
input = replace(input, "'", "''") escape = input end function
Rõ rƠng lƠ, nó ngăn chặn đ c t t c những ki u t n công trên. Tuy nhiên n u muốn
t o ra m t chu i giá tr mà không dùng các d u nháy, có th dùng hƠm “char()” nh ví d sau: Ví d a.2:
INSERT into User VALUES(666, char(0x63) +char(0x68)
+char(0x72) char(0x69) +char(0x73) ,char(0x63) +char(0x68)
+char(0x72) +char(0x69) +char(0x73),0xffff)
Ví d a.2 trên tuy là m t câu truy v n không có d u nháy đ n nƠo nh ng nó v n có
th insert chu i vào b ng, vƠ t ng đ ng v i:
INSERT into User VALUES( 666,’chris’,’chris’,255)
Hacker cũng có th chọn username , password là sốđ tránh d u nháy nh ví d sau: Ví d a.3:
INSERT into User VALUES( 667,123,123,0xffff)
SQL server s tự đ ng chuy n từ số sang chu i. • T n công 2 t ng:
- Mặc dù ng d ng đư thay th d u nháy đ n nh ng v n còn kh năng b chèn đo n mã SQL .
Ví d b.1: Đ đăng kí account trong ng d ng, nh p username nh sau: Username: admin'— Password: passofadmin
- ng d ng s thay th d u nháy, k t qu trong câu insert s nh sau:
INSERT into User VALUES(123, 'admin''--', 'password',0xffff) (nh ng
trong c s dữ li u s l u lƠ “admin’--“) NGUY N V NG NGH Trang 39
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
- Gi sử rằng ng d ng cho phép ng i dùng thay đ i m t kh u. Các đo n mã ASP
đ c thi t k đ m b o rằng ng i sử d ng ph i nh p đúng m t kh u cũ tr c khi nh p
m t kh u m i. Đo n mư nh sau:
username = escape( Request.form("username") );
oldpassword = escape( Request.form("oldpassword") );
newpassword = escape( Request.form("newpassword") );
var rso = Server.CreateObject("ADODB.Recordset");
var sql = "select * from users where username = '" + username
+ "' and password = '" + oldpassword + "'"; rso.open( sql, cn ); if (rso.EOF) {…
- Câu truy v n thi t l p m t kh u m i nh sau:
sql = "update users set password = '" + newpassword + "' where username= '" + rso("username") + "'"
rso(“username”) chính lƠ giá tr username có đ c câu truy v n login và nó là admin’--
Câu truy v n lúc nƠy nh sau:
update users set password = 'password' where username = 'admin'--'
- Nh đó hacker có th thay đ i m t kh u c a admin bằng giá tr c a mình. Đơy lƠ 1
tr ng h p còn t n t i trong hầu h t những ng d ng l n ngày nay có sử d ng c ch
lo i bỏ dữ li u. Gi i pháp tốt nh t là lo i bỏ những giá tr l i h n lƠ ch nh sửa l i.
Nh ng có m t v n đ là có m t số ô nh p dữ li u (nh ô nh p tên) cho phép những kí tự này. Ví d : O’Brien.
- Cách tốt nh t đ gi i quy t v n đ này là không cho phép nh p d u nháy đ n. N u
đi u này không th thựchi n đ c , thì lo i bỏ và thay th nh trên. Trong tr ng h p
này, cách tốt nh t lƠ đ m b o t t c dữ li u đ c đ a vƠo câu truy v n SQL (k c
những giá tr trong c s dữ li u) ph i đ c ki m soát m t cách chặt ch .
M t số ng d ng phòng chống vi c thêm câu truy v n từ ng i dùng bằng cách gi i
h n chi u dài c a ô nh p. Tuy nhiên, v i gi i h n này thì m t số ki u t n công không
th thực hi n đ c nh ng v n có ch h đ hacker l i d ng. NGUY N V NG NGH Trang 40
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER Ví d b.2:
Gi sử c username và password đ u b gi ih n tối đa lƠ 16 kí tự.Nh p:
Username: aaaaaaaaaaaaaaa’ Password :‘; shutdown--
ng d ng s thay th m t d u nháy đ n bằng hai d u nháy đ n nh ng do chi u dài
chu i b gi i h n ch là 16 kí tự nên d u nháy đ n vừa đ c thêm s b xoá m t. Câu l nh SQL nh sau:
Select * from users where username=’aaaaaaaaaaaaaaa’’ and
password=’’’; shutdown—‘
k t qu là username trong câu l nh có giá tr là:
aaaaaaaaaaaaaaa’ and password=’
iiiii.3. Tránh sự ki m soát:
- SQL server có m t giao th c ki m soát chặt ch bằng họ hàm sp_traceXXX, cho
phép ghi nhân nhi u sự ki n x y ra trong c s dữ li u. Đặc bi t là các sự ki n T-SQL,
ghi nh n l i t t c các câu l nh SQL thực hi n trên Server. N u ch đ ki m soát đ c
b t thì t t c các câu truy v n SQL c a hacker cũng b ghi nh n và nh đó mƠ m t
ng i qu n tr có th ki m soát những gì đang x y ra vƠ nhanh chóng tìm ra đ c gi i
pháp. Nh ng cũng có m t cách đ chống l i đi u này, bằng cách thêm dòng
“sp_password” vƠo cơu l nh T-SQL, vì khi gặp chu i này thì vi c ki m tra s ghi nh nnh sau:
-- ‘sp_password’ was found in the text of this event.
-- The text has benn replaced with this comment for security reasons.
ngay c khi “sp_password” xu t hi n trong phần chú thích. Vì th đ d u t t c câu
truy v n t n công, ch cần đ n gi n là thêm sp_password vƠo sau ‘--’ nh sau:
2.3.2.Cách Phòng Tránh SQL Injection
- Nh v y, có th th y l i SQL injection khai thác những b t c n c a các l p trình
viên phát tri n ng d ng web khi xử lí các dữ li u nh p vƠo đ xây dựng câu l nh
SQL. Tác h i từ l i SQL injection tùy thu c vƠo môi tr ng và cách c u hình h
thống. N u ng d ng sử d ng quy n dbo (quy n c a ng i s hữu c s dữ li u -
owner) khi thao tác dữ li u, nó có th xóa toàn b các b ng dữ li u, t o các b ng dữ NGUY N V NG NGH Trang 41
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
li u m i, … N u ng d ng sử d ng quy n sa (quy n qu n tr h thống), nó có th đi u
khi n toàn b h qu n tr c s dữ li u và v i quy n h n r ng l n nh v y nó có th
t o ra các tài kho n ng i dùng b t h p pháp đ đi u khi n h thống c a b n.
• Trong hầu h t trình duy t, những kí tự nên đ c mư hoá trên đ a ch URL tr c khi đ c sử d ng.
• Vi c t n công theo SQL Injection dựa vào những câu thông báo l i do đó vi c
phòng chống hay nh t v n là không cho hi n th những thông đi p l i cho ng i dùng
bằng cách thay th những l i thông báo bằng 1 trang do ng i phát tri n thi t k m i khi l i x y ra trên ng d ng.
• Ki m tra kĩ giá tr nh p vào c a ng i dùng, thay th những kí tự nh ‘ ; v..v.. Hưy
lo i bỏ các kí tự meta nh “',",/,\,;“ vƠ các kí tự extend nh NULL, CR, LF, ... trong các string nh n đ c từ:
o dữ li u nh p do ng i dùng đ trình o các tham số từ URL o các giá tr từ cookie
• Đối v i các giá tr numeric, hãy chuy n nó sang integer tr c khi thực hi n câu
truy v nSQL, hoặc dùng ISNUMERIC đ chắc chắn nó là m t số integer.
• Dùng thu t toán đ mã hoá dữ li u i. Ki m tra dữ li u
- Ki m tra tính đúng đắn c a dữ li u là 1 v n đ ph c t p vƠ th ng ch a đ c quan
tơm đúng m c trong các ng d ng. Khuynh h ng c a vi c ki m tra tính đúng đắn c a
dữ li u không ph i là ch cần thêm m t số ch c năng vƠo ng d ng, mà ph i ki m tra
m t cách t ng quát nhanh chóng đ đ t đ c m c đích.
- Những tóm tắt sau đơy s bàn v vi c ki m tra tính đúng đắn c a dữ li u, cùng v i
ví d m u đ minh ho cho v n đ này.
Có ba gi i pháp ti p c n v n đ này:
1) Cố gắng ki m tra và ch nh sửa đ làm cho dữ li u h p l .
2) Lo i bỏ những dữ li u b t h p l .
3) Ch ch p nh n những dữ li u h p l
• Gi i pháp 1: khó thực hi n NGUY N V NG NGH Trang 42
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
- Th nh t, ng i l p trình không cần thi t ph i bi t t t c dữ li u b t h p l , b i vì
những d ng dữ li u b t h pl r t đa d ng.
- Th hai, là v n đ c a tr ng h p b t n công 2 tầng (second-oder SQL
injection) trong vi c l y dữ li u từ h thống ra.
• Gi i pháp 2: b vô hi u trong các tr ng h p nh gi i pháp 1 là do :
- Dữ li u b t h p l luôn luôn thay đ i và cùng v i vi c phát tri n các ki u t n công m i.
• Gi i pháp 3: tốt h n hai gi i pháp kia, nh ng s gặp m t số h n ch khi cƠi đặt.
- Cách b o m t tốt nh t là k t h p c gi i pháp 2 và 3. M t ví d cho sự cần thi t
k t h p 2-3 là d u nối giữa họ vƠ tên “Quentin Bassington-Bassington” ph i cho phép
d u g ch ngang trong b đ nh nghĩa dữ li u h p l , nh ng chu i kí tự “--“ lƠ m t chu i
kí tự đặc bi t trong SQL server. - Ví d n u có b lọc đ :
+ Lọc bỏ những dữ li u b t h p l nh ‘--‘,’select’ vƠ ‘union’
+ M t hàm ki m soát đ lo i bỏ d u nháy đ n thì có th đối phó nh sau.
uni’on se’lect @@version-‘-
- M t số cách cƠi đặt các ch c năng ki m tra dữ li u c b n
• Cách 1: Từ chối dữ li u b t h p l
function validate_string( input )
known_bad = array("select","insert", "update", "delete", "drop","--", "'" ) validate_string = true
for i = lbound( known_bad ) to ubound( known_bad )
if ( instr( 1, input, known_bad(i), vbtextcompare ) <> 0 ) then
validate_string = false exit function end if next end function NGUY N V NG NGH Trang 43
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
• Cách 2: Thay th d u nháy đ n:
function escape( input )
input = replace(input, "'", "''") escape = input end function
• Cách 3: Ch ch p nh n dữ li u h p l function validate password( input ) good_pass word_chars = "abcdefghijkl
mnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123 456789" validatepassword = true for i = 1 to len( input ) c = mid( input, i, 1 )
if ( InStr( good_password_chars, c ) = 0 ) then validatepassword = false exit function end if next end function
ii. Khoá chặt SQL Server (SQL Server Lockdown)
Đơy lƠ m t danh sách các công vi c cần lƠm đ b o v SQL server:
• Xác đ nh các ph ng pháp k t nối đ n server:
o Dùng ti n ích Network Utility đ ki m tra rằng ch có các th vi n m ng đang dùng lƠ hoat đ ng.
• Ki m tra t t c các tài kho n có trong SQL Server
o Ch t o tài kho n có quy n th p cho các ng d ng
o Lo i bỏ những tài kho n không cần thi t NGUY N V NG NGH Trang 44
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
o Đ m b o rằng t t c tài kho n có m t m t kh u h p l , …
• Ki m tra các đối t ng t n t i
o Nhi u extended stored procedure có th đ c xoá bỏ m t cách an toàn.
N u đi u nƠy đ c thực hi n, thì cũng nên xem xét vi c lo i bỏ luôn những t p tin
.dll ch a mã c a các extended stored procedure
o Xoá bỏ t t c c s dữ li u m u nh “northwind” vƠ “pubs”
o Xóa các stored procedure không dùng nh : master..xp_cmdshell, xp_startmail, xp_sendmail, sp_makewebtask
• Ki m tra những tài kho n nào có th truy xu t đ n những đối t ng nào
o Đối v i những tài kho n c a m t ng d ng nƠo đó dùng đ truy xu t c s dữ
li u thì ch đ c c p những quy n h n cần thi t tối thi u đ truy xu t đ n những đối
t ng nó cần dùng. Ki m tra l p sửa chữa c a server
o Có m t số cách t n công nh “buffer overflow”, “format string” th ng chú ý đ n l p b o v này.
• Ki m tra các phiên làm vi c trên server
• Thay đ i "Startup và ch y SQL Server" m c ng i dùng quy n h n th p trong SQL Server Security. - Nh n xét:
+ Qua phần tìm hi u v SQL Injection,càng th y rằng vi c ki m tra dữ li u
tr c khi xử lý là cần thi t.
+ ng d ng ngoài vi cki m tra tính đúng đắn c a dữ li u, cần mã hóa dữ li u
ngay bên trong c s dữ li u và không cho xu t trang Web l i, báo n i dung l i cú
pháp SQL đ hacker không th thu th p thông tin c s dữ li u.
- Song song đó lƠ công vi c c a ng i qu n tr m ng.
iii. Thi t l p c u hình an toàn cho h qu n tr c s dữ li u
- Cần có c ch ki m soát chặt ch và gi i h n quy n xử lí dữ li u đ n tài kho n
ng i dùng mà ng d ng web đang sử d ng. Các ng d ng thông th ng nên tránh
dùng đ n các quy n nh dbo hay sa. Quy n càng b h n ch , thi t h i càng ít.
NgoƠi ra đ tránh các nguy c từ SQL Injection attack, nên chú ý lo i bỏ b t kì thông
tin kĩ thu t nào ch a trong thông đi p chuy n xuống cho ng i dùng khi ng d ng có NGUY N V NG NGH Trang 45
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
l i. Các thông báo l i thông th ng ti t l các chi ti t kĩ thu t có th cho phép kẻ t n
công bi t đ c đi m y u c a h thống.
2.4. Cross Site Scripting (XSS) 2.4.1. T n công XSS
- Cross-Site Scripting (XSS) là m t trong những kĩ thu t t n công ph bi n nh t hiên
nay, đ ng th i nó cũng lƠ m t trong những v n đ b o m t quan trọng đối v i các nhà
phát tri n web và c những ng i sử d ng web. B t kì m t website nào cho phép
ng i sử d ng đăng thông tin mƠ không có sự ki m tra chặt ch các đo n mã nguy
hi m thì đ u có th ti m n các l i XSS.
- Cross-Site Scripting hay còn đ c gọi tắt là XSS (thay vì gọi tắt lƠ CSS đ tránh
nhầm l n v i CSS-Cascading Style Sheet c a HTML) là m t kĩ thu t t n công bằng
cách chèn vƠo các website đ ng (ASP, PHP, CGI, JSP ...) những thẻ HTML hay
những đo n mã script nguy hi m có th gây nguy h i cho những ng i sử d ng khác.
Trong đó, những đo n mã nguy hi m đự c chèn vƠo hầu h t đ c vi t bằng các
Client-Site Script nh JavaScript, JScript, DHTML vƠ cũng có th là c các thẻ
HTML.Kĩ thu t t n công XSS đư nhanh chóng tr thành m t trong những l i ph bi n
nh t c a Web Applications và mối đe do c a chúng đối v i ng i sử d ng ngày càng
l n. Ng i chi n thắng trong cu c thi eWeek OpenHack 2002 lƠ ng i đư tìm ra 2
XSS m i. Ph i chăng mối nguy hi m từ XSS đư ngƠy cƠng đ c mọi ng i chú Ủ h n.
2.4.1.1. Hoạt động của XSS:
- V c b n XSS cũng nh SQL Injection hay Source Injection, nó cũng lƠ các yêu
cầu (request) đ c gửi từ các máy client t i server nhằm chèn vƠo đó các thông tin
v t quá tầm ki m soát c a server. Nó có th là m t request đ c gửi từ các form dữ
li u hoặc cũng có th đó ch lƠ các URL nh lƠ
http://www.example.com/search.cgi?query= was found !');
- Và r t có th trình duy t c a b n s hi n lên m t thông báo "XSS was found !". Các
đo n mã trong thẻ script không h b gi i h n b i chúng hoàn toàn có th thay th
bằng m t file ngu n trên m t server khác thông qua thu c tính src c a thẻ script. Cũng
chính vì l đó mƠ chúng ta ch a th l ng h t đ c đ nguy hi m c a các l i XSS. NGUY N V NG NGH Trang 46
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
- Nh ng n u nh các kĩ thu t t n công khác có th lƠm thay đ i đ c dữ li u ngu n
c a web server (mã ngu n, c u trúc, c s dữ li u) thì XSS ch gây t n h i đối v i
website phía client mà n n nhân trực ti p là những ng i khách duy t site đó. T t
nhiên đôi khi các hacker cũng sử d ng kĩ thu t nƠy đ deface các website nh ng đó
v n ch t n công vào b mặt c a website. Th t v y, XSS là những Client-Side Script,
những đo n mã này s ch ch y b i trình duy t phía client do đó XSS không lƠm nh
h ng đ n h thống website nằm trên server. M c tiêu t n công c a XSS không ai
khác chính là những ng i sử d ng khác c a website, khi họ vô tình vào các trang có
ch a các đo n mã nguy hi m do các hacker đ l i họ có th b chuy n t i các website
khác, đặt l i homepage, hay nặng h n lƠ m t m t kh u, m t cookie th m chí máy tính
b n có th s b cài các lo i virus, backdoor, worm
2.4.1.2. Cách tấn công
i. Scan l h ng XSS cua ng d ng web
- Cách 1: Sử d ng nhi u ch ng trình dò quét l i c a ng d ng web, ví d nh
ch ng trình Web Vulnerability Scanner đ dò quét l i XSS.
- Cách 2: Thực hi n 5 b c:
• B c 1: M website cần ki m tra
• B c 2: Xác đ nh các ch (phần) cần ki m tra XSS. 1 Site b t kỳ bao gi cũng có các phần:
Search, error message, web form. Ch y u l i XSS nằm phần này, nói chung
XSS có th x y ra ch nƠo mƠ ng i dùng có th nh p dữ li u vƠo vƠ sau đó nh n
đ c m t cái gì đó. Ví d chúng ta nh p vào chu i ‘XSS’
• B c 3: Xác minh kh năng site có b l i XSS hay không bằng cách xem các
thông tin tr v . Ví d chúng ta th y th nƠy: ‘Không tìm th y XSS…’ , hay lƠ ‘TƠi
kho n XSS không chính xác’, ‘Đăng nh p v i XSS không thƠnh công’… thì khi đó
kh năng ch đó b dính XSS là r t cao.
• B c 4: Khi đư xác đ nh ch có kh năng b dính l i XSS thì chúng ta s chèn
những đo n code c a chúng ta vƠo đ thử ti p, ví d nh sau:
Chèn đo n code này: < script>alert('XSS')< /script> vào ô b l i và nh n nút
Login, n u chúng ta nh n đ c m t popup có chữ ‘XSS’ thì 100% b dính XSS.
Nh ng xin chú Ủ , th nh tho ng v n có tr ng h p website đó b dính XSS nh ng v n NGUY N V NG NGH Trang 47
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
không xu t hi n cái popup thì bu c lòng b n ph i VIEW SOURCES (m b ng) nó ra
đ xem . Khi view sources nh ki m dòng này < script>alert('XSS)< /script> , n u có
thì h t ch y , XSS đơy r i.
Gọi http://doannguyennganh.com/index.php là site b dính l i XSS và ta tìm
đ c n i b l i nh th này : http://doannguyennganh.com/index.php?page=script> , nghĩa lƠ ta có th chèn code ngay trên thanh ADDRESS.
• B c 5: Lên k ho ch k ch b n t n công ii. T n công
- Th t ra thì có r t nhi u kỹ thu t t n công dựa trên l i XSS này, ch y u là sau khi
đư bi t cách tìm l h ng thì m i ng i s có m t m u mô cho cách t n công c a mình.
đơy mình xin gi i thi u đ n các b n m t kỹ thu t mƠ mình đư thực hi n thành công
trên trang moodle c a khoa công ngh thông tin KHTN. Kỹ thu t ăn cắp password.
- Sau khi đư xác minh m t đi u chắc chắn rằng trang moodle b l i XSS ch đăng nh p
- Tôi l p t c vi t ngay m t ng d ng nhỏ r i up lên m t cái host free, ng d ng này
s có nhi m v nh n thông tin v mssv và password gửi v và ghi xuống file txt. Còn
nh n th nào thì m i các b n xem ti p... Sau đó:
• B c 1: Tôi t o m t mail gi d ng nói là: Di n đƠn tuy n d ng c a Intel, m i
các b n nào quan tâm thì tham gia.R i t o ra m t cái đ ng link gi :
http://doannguyennganhgia.com/index.php nh ng tôi lƠ reference nó t i m t cái trang
gi c a tui. Trong tích tắc trang này s gắn m t cái đo n script đ c có nhi m v l y v
username vƠ password sau khi đăng nh p và gắn vào cái trang th t(Vì trang th t b l i
XSS nên cho phép chúng ta gắn mư đ c lên, gắn đơy có nghĩa lƠ khi chúng ta view
source code c a trang lên, chúng ta s th y có m t đo n script c a chúng ta nằm đơu
đó), r i sau đó redirect sang trang th t ngay l p t c đ khỏi b nghi ng .
• B c 2: Ng i dùng vƠo mail, t ng th t, click vào link và th y ch y đúng
trang moodle (Họ đơu ng rằng, trang th t đư b gắn mư đ c lên, trong th i gian quá
nhanh nên họ không nghi ng gì c , nh ng n u ai đ ý s th y link không đúng).
• B c 3: Họ đăng nh p, khi đó ng d ng s ch y biên d ch từ trên xuống, và t t NGUY N V NG NGH Trang 48
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
nhiên s ch y luôn c script mƠ chúng ta đư cƠi, khi đó MSSV vƠ password s đ c l y
v đ gửi cho m t cái trang trên server mƠ chúng ta đư dựng ra.
• B c 4: ng d ng server c a ta nh n đ c mssv và password, ghi ra file txt.
• B c 5: K t thúc quá trình t n công, chúng ta có m t danh sách các tài kho n c a sinh viên. 2.4.2. Phòng chống.
- Nh đư đ c p trên, m t t n công XSS ch thực hi n đ c khi gửi m t trang web
cho trình duy t web c a n n nhơn có kèm theo mư script đ c c a kẻ t n công. Vì v y
những ng i phát tri n web có th b o v website c a mình khỏi b l i d ng thông qua
những t n công XSS nƠy, đ m b o những trang phát sinh đ ng không ch a các tag c a
script bằng cách lọc và xác nh n h p lý các dữ li u đầu vào từ phía ng i dùng hoặc
mã hóa(endcoding) và lọc các giá tr xu t cho ng i dùng. 2.4.2.1. Lọc
- Luôn luôn lọc các dữ li u nh p từ phía ng i dùng bằng cách lọc các kí tự meta (kí
tự đặc bi t) đ c đ nh nghĩa trong đặc t c a HTML. M i tr ng nh p li u bao g m
c tham số liên k t s đ c ki m tra đ phát hi n các thẻ script. 2.4.2.2. Mã hóa
- L i XSS có th tránh đ c khi máy ch Web đ m b o những trang phát sinh đ c
mã hóa (encoding) thích h p đ ngăn ch y ch y các script không mong muốn.
- Mã hóa phía máy ch là m t ti n trình mà t t c n i dung phát sinh đ ng s đi qua
m t hƠm mư hóa n i mƠ các thẻ script s đ c thay th b i mã c a nó.
- Nói chung, vi c mư hóa(encoding) đ c khuy n khích sử d ng vì nó không yêu
cầu b n ph i đ a ra quy t đ nh những kí tự nào là h p l hoặc không h p l .Tuy nhiên
vi c mã hóa t t c dữ li u không đáng tin c y có th tốn tài nguyên và nh h ng đ n
kh năng thực thi c a m t số máy ch NGUY N V NG NGH Trang 49
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER CH NG 3
DEMO, ĐỄNH GIỄ VÀ H NG PHÁT TRI N Đ TÀI 3.1. Demo
- Tr c tiên ta sử d ng m t th thu t tìm ki m nhỏ trên google đ có th tìm ki m
site b l i SQL Injecton. đơy tôi dùng từ khóa: inurl:keywords
Ví d : inurl:sanpham.php?id=3
- Sử d ng từ khóa trên google.com tôi chọn đ c m t website thi t k s sƠi lƠ
http://nhanquynhphat.com/sanpham.php?id=3 ; tôi đoán nó b dính l i SQL Injetion và ti n hành khai thác l i.
- Tôi ti n hành ki m tra l i và th y website này b l i SQL Injection, tôi ti p t c l y
các thông tin v website nh version MySQL đ vi c khai thác tr nên rõ rƠng h n.
đơy website sử d ng version MySQL >=5 nên tôi có th d dàng khai thác l i thông
qua information_shema.tables mà không cần ph i đoán table c a nó là gì.
Hình 13. Thông tin các table lấy được.
- Bỏ qua các table không liên quan ta l y đ c các table nh sau: khuyenmai, lienhe,
loaispcon, online, sanpham, tbl_gioithieu, tbl_lienhe, tbl_lienket, tbl_tintuc, thanhtoan, tintuc, user
- Sau đó tôi ti n hành l y thông tin column và data và k t qu nh hình 14. NGUY N V NG NGH Trang 50
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
Hình 14. Dữ liệu ta khai thác được ở dạng mã hóa
- Theo hình 14. dữ li u l y đ c đang d ng mã hóa. Vi c khai thác SQL Injection
đ n đơy còn 1 b c nữa lƠ tìm đ ng d n đăng nh p qu n tr và n u m t kh u nằm
d ng mã hóa thì ta cần ph i ti n hành gi i mã. 3.2. K t lu n
3.2.1. Các v n đ đ t đ c
- Theo yêu cầu đặt ra ban đầu thì cho đ n th i đi m hi n t i, đ án đư đ t đ c các n i dung sau:
• Tìm hi u các kĩ thu t t n công ng d ng Web bao g m các kĩ thu t
o Chèn mã l nh thực thi trên trình khách Cross-site Scripting.
o Chèn câu truy v n SQL và T n công SQL Injection nâng cao o T n công Local Acttack. o Từ chối d ch v .
• Các bi n pháp b o m t từ sự k t h p giữa nhà qu n tr m ng, nhà thi t k ng d ng Web vƠ ng i dùng
o Ki m tra m t trang Web có kh năng b t n công bằng những kĩ thu t
chèn câu l nh SQL, thay đ i tham số hay không. NGUY N V NG NGH Trang 51
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
o Có th phòng chống đ c các l i t n công thông d ng hi n nay, nh các v n đ đư tìm hi u trên. 3.2.2. H n ch
Trong quá trình lƠm đ án có r t nhi u tài li u tôi tìm ki m tuy có m c đích lƠ giống
nhau song l i có ph ng pháp khác nhau hoƠn toƠn.Tôi đư cố gắng tìm hi u thêm v
chúng nh ng không khỏi có nhi u sai sót
3.2.3. H ng phát tri n đ tƠi
Trong ph m vi đ án chuyên ngƠnh, đư đ t đ c các yêu cầu đặt ra.
B n thơn cá nhơn em xin đ xu t h ng phát tri n đ án m r ng h n vƠ s cố gắng
phát tri n thêm những n i dung sau:
• Tìm hi u thêm v các kĩ thu t t n công đ đ a ra ph ng pháp b o m t ng d ng Web m c đ sơu h n.
• Tìm hi u v v n đ b o m t sơu h n, không ch dừng m c đ m t ng d ng
Web mà phát tri n h n vần đ b o m t các h thống m ng và d ch v .
• Khai tri n ch ng trình phát hi n l h ng tốt h n, trên nhi u ph ng di n kĩ thu t. NGUY N V NG NGH Trang 52
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER TÀI LI U THAM KH O
A. Tài li u Ti ng Vi t:
[1] T n công từ chối d ch v Dos,Ddos,DRDos. Tác gi Ng.Ng.Thanh Ngh -HVA
[2] Bài gi ng An Ninh M ng.Tác gi GV.Nguy n Anh Tu n-Trung tâm TH-NN Trí Đ c
[3] L i b o m t trên ng d ng web và cách khắc ph c.Tác gi Đặng H i S n-Trung
tâm ng c u kh n c p máy tính Vi t Nam
[4] T n công ki u SQL Injection-Tác h i và phòng tránh. Tác gi Lê Đình Duy-Khoa
CNTT-Tr ng ĐH Khoa Học Tự Nhiên TP.HCM
[5] Web Application Attack & Defense. Tác gi Võ Đ Thắng-Trung tâm An ninh m ng Athena
[6] XSS c b n. Tác gi Mask-NBTA
B. Tài li u Ti ng Anh:
[7] SQL Injection-Are you web Applications vulnerable. Author Kevin Spett
[8] An Introduction to SQL Injection Attacks For Oracle Developers.Author Stephen Kost
[9] How to Attack and fix Local File Disclosure. Author Sangteamtham C. Tài li u internet:
[10]http://thuvienkhoahoc.com/wiki/K%C4%A9_thu%E1%BA%ADt_t%E1%BA%A
5n_c%C3%B4ng_CROSS-SITE_SCRIPTING »
[11]http://vi.wikipedia.org/w/index.php?title=Th%E1%BB%83_lo%E1%BA%A1i:T
%E1%BA%A5n_c%C3%B4ng_t%E1%BB%AB_ch%E1%BB%91i_d%E1%BB%8B
ch_v%E1%BB%A5&action=edit&redlink=1
[12]http://www.hvaonline.net/hvaonline/posts/list/6720.hva;jsessionid=38F900726E07 641F712734A3B2A6F2EC
[13]http://www.ddcntt.vn/forum/showthread.php?t=14
[14]http://ttgtc.com/forum/showthread.php?1385-T%C3%ACm-hi%E1%BB%83u-
v%E1%BB%81-t%E1%BA%A5n-c%C3%B4ng-t%E1%BB%AB-ch%E1%BB%91i-
d%E1%BB%8Bch-v%E1%BB%A5-DoS&s=c580b874a6ea05d220258132c9cef9e3 NGUY N V NG NGH Trang 53
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
NH N XÉT C A GI NG VIểN H NG D N
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
............................................................................................................................. NGUY N V NG NGH Trang 54
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn) lOMoARcPSD|36212343 CÁC PH
NG TH C T N CÔNG & PHÒNG TH WEB SERVER
NH N XÉT C A GI NG VIÊN PH N BI N
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
............................................................................................................................. NGUY N V NG NGH Trang 55
Downloaded by Di?p DN - Chuyên Viên R&D (diepdn@bibabo.vn)