LOGO
C S An Toàn Thông Tin
ơ ở
i tràn b đ m,
ể
ề ỗ
ộ ệ
4. Tìm hi u v l cách khai thác, các phòng ch ng ố (Demo)...
ng
Nhóm 5 : Hoàng H i Anh ả Đoàn M nh Hùng ạ Tr n Thu L c ộ Đ Văn Tr ườ
ầ ỗ
LOGO
Tóm T t N i Dung ắ ộ
1
Gi i thi u v buffer overflow. ớ ệ ề
2
Stack overflow.
3
Heap overflow.
4
Cách khai thác buffer overflow.
5
Cách phòng tránh buffer overflow.
LOGO
I.T ng quan v buffer overflow ề
ổ
Đ nh nghia: L i tràn b đ m là m t đi u ki n b t ộ ệ
ề ng khi m t ti n trình l u d li u v ỗ ộ ế
ộ ư ữ ệ ượ ế ố ị ề ả
ữ ệ ể ồ ề ế
ng trình (program flow ộ ớ ệ ả ủ ươ ồ
ệ ấ ị t ra ngoài biên th ườ c a b nh đ m có chi u dài c đ nh. K t qu là d li u ữ ệ ủ ộ ớ ệ có th đè lên các b nh li n k . D li u bi ghi đè có th ề ộ ớ ề ề ữ ệ bao g m các b nh đ m khác,các bi n và d li u đi u khi n lu ng ch y c a ch ể control).
ề ỗ
ế i này có th đ ạ
Các l ặ ở
ế ế ặ
ạ
h ng b o m t đ i v i ph n m m và ng trình ho t ạ i tràn b ộ ỗ ề ầ ậ ố ớ
i tràn b đ m có th làm cho ti n trình b đ v ị ổ ỡ ộ ệ c kích ho t ho c cho ra k t qu sai. Các l ỗ ả ế ể ượ b i các d li u vào đ t k đ c bi t đ th c thi ữ ệ ượ ệ ể ư các đo n m phá ho i ho c đ làm cho ch ươ ạ ả đ ng không nh mong đ i. B ng cách đó các l ộ ư đ m gây ra nhi u l ề ổ ổ ệ t o c s cho nhi u th thu t khai thác. ủ ề ạ ơ ở c thi ặ ể ằ ợ ả ậ
LOGO
I.T ng quan v buffer overflow ề
ổ
ữ ậ ữ ễ
các l ỗ ể
c
v Trong các ngôn ng l p trình thì ngôn ng C d sinh ra i tràn nh mà attacker có th khai thác . v Trong ngôn ng C,các chu i (string ) hay các buffer đ ỗ
ớ ữ ượ
th hi n nh sau: ư
ể ệ ỏ ẽ ỉ ỏ ỗ ầ
ượ ế ủ ế ể ị
ị
ớ ộ ể
Con tr (pointer) s ch tr vào byte đ u tiên c a chu i hay c k t đi m k t thúc khi buffer đó,và chúng ta xác đ nh đ con tr tr đ n 1 byte null ->không xác đ nh đ dài c a đ i ủ ố ộ t ng nh p vào ->có th copy 1 buffer có đ dài l n vào 1 ượ buffer có đ dài nh h n ->gây tràn nh (buffer overflow) ỏ ỏ ế ậ ộ ỏ ơ ớ
LOGO
I.T ng quan v buffer overflow ề
ổ
v Thông th
ng có 2 cách khai thác l i buffer overflow mà ườ ỗ
Ø
attacker có th s d ng: ể ử ụ
ự
Ø
Khai thác d a vào các l ngôn ng l p trình(ph n m n vi h ng ph n m n thông qua ề ỗ ỏ t b ng ngôn ng C) ề ầ ế ằ ữ ậ ữ ầ
ng tác ng ươ ư
ng ộ ữ ệ ư i dùng nh ng ườ
Khai thác các trang web có t ườ không ràng bu c d li u nh p vào nh các tr ậ username ,password..
LOGO
ổ
ng
I.T ng quan v buffer overflow ề i buffer overflow c a các ch v Nguyên nhân gây ra các l ươ ỗ
ủ
Ø Ph
trình/ ng d ng:
c th c ự ượ
ụ ứ ươ hi n đ y đ ,ho c là đ ệ ầ ủ ể ặ
ứ ng th c ki m tra biên (boundary) không đ c b qua. ượ ỏ Ø Các ngôn ng l p trình,nh là ngôn ng C ,b n thân nó đã ư ữ ả
ti m n. các l ể ữ ậ ỗ
ươ i mà hacker có th khai thác. ng th c strcat(),strcpy(),sprintf(),bcopy(), ư
ữ
ữ
c khai thác vì các c c p phát trên ượ ấ c copy cào buffer hay ể c l n h n d li u đ ướ ớ ơ ữ ệ ượ
c l p trình không t t khi ượ ậ ụ ố
ề ẩ Ø Các ph gets() ,và canf() trong ngôn ng C có th đ ể ượ hàm này không ki m tra xem nh ng buffer đ stack có kích th không? ng trình / ng d ng đ Nh ng ch ứ ữ t o ra nó (kh năng l p trình kém). ạ ươ ả ậ
LOGO
I.T ng quan v buffer overflow ề
ổ
ệ
ữ ệ ữ
v Vd:
i buffer overflow xu t hi n khi buffer c v M t l ố ấ ộ ỗ g ng c p phát 1 không gian l u tr có d li u ấ ắ l n h n kh năng l u tr c a nó ớ ơ ư ữ ủ ư ả
LOGO
I.T ng quan v buffer overflow ề
ổ
ể ư ữ
ế ấ ế ượ ư ộ
ng trình .Bi n đ ươ c l u tr trong ữ ng trình có nhu c u s ầ ử ặ
c ữ ữ ộ
Có hai ki u buffer overflow chính: ể Ø Stack overflow Ø Heap over flow Stack và heap là đ a đi m l u tr cung c p cho các ị bi n khi ch y. m t ch ươ ạ stack ho c heap cho đ n khi ch ế d ng.ụ Stack:là n i l u tr tĩnh c a không gian b nh . ộ ớ Heap là n i l u tr đ ng c a không gian b nh ,đ ộ ớ ượ sinh ra khi ch y m t ch ủ ủ ng trình. ơ ư ơ ư ạ ươ ộ
LOGO
I.T ng quan v buffer overflow ề
ổ
v Thông th
Ø
ng có 2 cách khai thác l i buffer overflow mà ườ ỗ
ể ử ụ ự
Ø
ữ ậ ữ ầ
ư
ng ộ ữ ệ ư i dùng nh ng ườ
attacker có th s d ng: h ng ph n m n thông qua Khai thác d a vào các l ầ ề ỗ ỏ t b ng ngôn ng C) ngôn ng l p trình(ph n m n vi ế ằ ề ng tác ng Khai thác các trang web có t ườ ươ không ràng bu c d li u nh p vào nh các tr ậ username ,password..
LOGO
II.Stack overflow
i thi u v stack: ớ ệ ề
ộ ể ấ
ế
ử ụ ế ế ố ố ể
t c các thông tin mà hàm c n ầ
c Gi li u ho t đ ng theo co v Stack là m t ki u c u trúc gi ạ ộ ữ ệ ch LIFO (last in first out) đ c máy tính s d ng đ ể ượ chuy n các đ i s vào các hàm đ tham chi u đ n các ề bi n c c b . ế ụ ộ v Stack s l u gi ẽ ư v Stack đ ượ c kh i t o khi b t đ u c a m t hàm và đ ắ ầ ủ ượ ộ
t ữ ấ ả ở ạ “phóng thích” khi hàm k t thúc. ế
LOGO
II.Stack overflow
v Stack overflow xu t hi n khi buffer tràn trong stack space.
v Đo n code đ c h i s đ
ệ ấ
c push vào stack ộ ạ ẽ ượ ạ
t l ớ
i giá tr c a return pointer,vì ể ế ạ i các đo n code ạ ể ỏ ớ
v L i tràn nh có th vi ị ủ th hacker có th đi u khi n con tr t ể ề đ c h i mà h mu n th c thi. ố ọ
ỗ ế ộ ạ ự
LOGO
II.Stack overflow
M c đích chính c a stack buffer overflow: ủ ụ
Ø Ghi đè m t bi n đ a ph ộ
ươ
ng n m g n b nh đ m trong ầ ộ ớ ệ ng trình nh m ph c v ụ ụ ằ ủ
Ø Ghi đè đ a ch tr v trong khung stack (stack frame). Khi
ằ ế ị stack đê thay đ i hành vi c a ch ươ ổ cho ý đ c a hacker ồ ủ
ỉ ả ề ị
ả ề ư
ườ c ti p t c t i đ a ch mà ẽ ượ ế ụ ạ ị ng là t i m t b đ m ch a d li u ạ ộ ộ ệ ỉ ứ ữ ệ
hàm tr v th c thi s đ hacker đã ch rõ, th ỉ vào c a ng i dùng ườ ủ
LOGO
II.Stack overflow
LOGO
II.Stack overflow
LOGO
III.Heap overflow
đ ng trong hàm,nh là c c p phát t ư ự ộ
Ø Các bi n đ malloc() đ
ế ượ ấ c t o ra trong heap. ượ ạ ấ ể ế
Ø
ớ ẽ ể ẫ ế ệ ứ
ầ ế
ng ố ng ng d ng , vi c này có th ể ườ ứ ể ể ề ụ ự ươ
Ø Trong cách t n công heap overflow,attacker làm tràn b ộ nh s có th overwrite các dynamic variables,vì th có th d n đ n các hi u ng không mong mu n. Trong h u h t các môi tr ệ giúp attacker có th đi u khi n các th c thi c a ch ủ trình.
LOGO
III.Heap overflow
LOGO
III.Heap overflow
LOGO
III.Heap overflow
v Overwriting pointers(vi
t l ế ạ
ng pháp này đ vi i ươ i con tr ):attacker có th ỏ ể t l ể ế ạ
s d ng ph ử ụ filename,password ,uid..
LOGO
III.Heap overflow
ộ ấ ộ ố ề ế
ể ồ ủ ệ ộ ị
ü Cu c t n công ki u này c n m t s đi u ki n tiên quy t ầ trong mã ngu n c a vulnerable binary:m t đ nh nghĩa buffer và pointer. ü Khó khăn c a ph
ng pháp này là tìm ra hai đi u ki n ươ ủ
ế ư ề ị ệ ị
tiên quy t nh trên.M t khó khăn khác là xác đ nh đ a ch ỉ ộ c a vulnerable program. ủ
ụ
ộ ỏ ể ỏ ế ố ọ ươ ữ ố
Ø Overwriting function pointers: M c đích : attacker mu n ghi đè lên m t con tr và làm cho ng nó tr đ n nh ng gì h mu n.nó có th tr đ n 1 ch ỏ ế trình nào đó.
LOGO
III.Heap overflow
LOGO
III.Heap overflow
ư ệ
c g i là th vi n Doug Lea malloc, t tên ượ ọ
ư ệ c a nó, và cũng là malloc th vi n đ ừ c s ư ệ ượ ử ả ủ
v Exploiting the malloc library(Khai thác th vi n malloc) v Dlmalloc đ c a tác gi ủ d ng b i LIBC gnu ở ụ v DLMALLOC:c u trúc
ấ
LOGO
ộ
ầ
c tăng lên i Unix,
III.Heap overflow v Ph n bên ph i là m t ph n c a heap mà có th đ ầ ủ ả ớ ệ
ệ ố
ự
ể ượ ọ ướ
trong quá trình th c hi n (v i sbrk h th ng g i d Linux).
M i đo n b nh luôn l n h n kích th
c yêu c u c a ng
ỗ
ớ ơ
ầ ủ
ườ
ề ơ ả
ữ ả
ứ
c c a kh i và tr đ n các kh i ti p theo và tr
ố ế
ướ
ố
ạ ộ ớ dùng, vì nó cũng gi th ị nghĩa c u trúc c a 1đo n (trunk) là: struct malloc_chunk {
i ướ qu n lý thông tin .V c b n nó ch a kích c đó.Đ nh ỏ ế ạ
ướ ủ ấ
ủ
size_t prev_size; // only used when previous chunk is free size_t size; // size of chunk in bytes + 2 status-bits struct malloc_chunk *fd; // only used for free chunks: pointer
to next chunk
Struct malloc_chunk *bk; // only used for free chunks: pointer to previous chunk };
LOGO
III.Heap overflow
M c đích c a vi c làm h ng c u trúc c a
ủ
ỏ
ấ
ủ
ệ ụ DLMALLOC :
Attacker làm tràn b nh ,sau đó ghi đè d li u lên các m c ộ ớ ữ ệ ụ
t cho m t dlmalloc khai thác là có hai kh i ố
ộ c b ng malloc ệ ượ ằ
tiêu c a h . ủ ọ Yêu c u đ c bi ầ ặ b nh thu đ ộ ớ Vd: vul2.c 1 int main(void) 2 { 3 char * buf ;
LOGO
III.Heap overflow
ấ
ệ
ỏ
ủ
ủ
M c đích c a vi c làm h ng c u trúc c a DLMALLOC ụ Vd: 4 char * buffer1 = (char *)malloc(666) ; 5 char * buffer2 = (char *)malloc(2); 6 printf(Enter something: \n); 7 gets(buf); 8 strcpy (buffer1, buf); 9 free(buffer1); 10 free(buffer2); 11 return (1); 12 }
LOGO
III.Heap overflow
LOGO
IV.Các cách khai thác buffer overflow
v Có các k thu t khác nhau cho vi c khai thác l
i tràn
ệ
ậ
ỹ ộ ớ ệ
ỗ ệ ề
b nh đ m, tùy theo ki n trúc máy tính, h đi u ế hành và vùng b nh : ộ ớ
1. Khai thác l 2. Khai thác l
i tràn b đ m trên stack. i tràn b đ m trên heap.
ỗ ỗ
ộ ệ ộ ệ
LOGO
IV.Các cách khai thác buffer overflow
1. Khai thác l
i tràn b đ m trên stack.
ỗ
ộ ệ
v.
ậ ạ ỹ
i dùng th o k thu t và có ý đ x u có th ể i tràn b đ m trên stack đ thao túng ỗ ồ ấ ể ộ ệ
ng trình theo m t trong các cách sau: ươ
M t ng ườ ộ khai thác các l ch § Ghi đè m t bi n đ a ph ộ ươ ế ằ
ng n m g n b nh đ m trong ớ ệ ộ ng trình nh m t o ủ ầ ươ ạ ằ
ộ ị stack đ thay đ i hành vi c a ch ổ ể i cho k t n công. thu n l ẻ ấ ậ ợ
LOGO
IV.Các cách khai thác buffer overflow
i tràn b đ m trên stack.
ộ ệ § Ghi đè đ a ch tr v trong m t khung stack (
1. Khai thác l ỗ ị
ng là t ườ c ti p t c t ẽ ượ ế ụ ạ ị ộ ộ ệ ạ stack frame). i đ a ch mà ỉ i m t b đ m ch a d ứ ữ
ủ
i dùng cung ầ ữ ệ
ư
ụ ị
ộ ỉ ả ề Khi hàm tr v , th c thi s đ ả ề ự k t n công đã ch rõ, th ỉ ẻ ấ i dùng. li u vào c a ng ườ ệ t đ a ch c a ph n d li u ng § N u không bi ế ị ỉ ủ ế t r ng đ a ch c a nó đ c p, nh ng bi ượ ư ỉ ủ ế ằ ị ấ m t thanh ghi, thì có th ghi đè lên đ a ch tr v m t giá ộ ị ể tr là đ a ch c a m t opcode mà opcode này s có tác d ng ị làm cho th c thi nh y đ n ph n d li u ng i dùng. ườ c l u trong ỉ ả ề ộ ẽ ườ ỉ ủ ự ầ ữ ệ ộ ả ế
LOGO
IV.Các cách khai thác buffer overflow
ỗ
ỉ
ộ ạ
i tràn b đ m trên stack. ị
ạ
c ghi trong m t thanh ghi R, thì m t l nh nh y
ố ộ ệ
ộ
ộ ệ
ị
ứ ộ ệ
ươ
ả
1. Khai thác l ộ ệ v C th , n u đ a ch đo n mã đ c h i mu n ch y ạ ụ ể ế đ ả ượ đ n v trí ch a opcode cho m t l nh jump R, call ế v i hi u ng nh y đ n R (hay m t l nh t ế ự ớ đ a chi ghi trong R) s làm cho đo n mã trong ph n ầ ị d li u ng ữ ệ
ệ ứ ạ c th c thi. ự
ng t ẽ i dùng đ ượ
ườ
LOGO
IV.Các cách khai thác buffer overflow
v
M t hi n t
ộ ệ
ệ
ng tràn b đ m x y ra trong khu v c d ự ữ ng tràn heap và có th ể
ộ
i tràn
2. Khai thác l ộ ệ
ỗ
ớ
ỹ
i
v B nh heap đ ớ
ộ
ứ
ạ
ụ ạ ng trình. ươ
v Vi c khai thác đ
ộ li u heap đ khai thác đ stack. ộ ờ ệ
ữ ệ
ụ
ượ ấ th i gian ch y và th ườ c th c hi n b ng cách phá d li u ượ t đ làm cho ng d ng ghi đè ứ ặ ạ
ấ
c c p phát đ ng b i các ng d ng t ở ng ch a d li u c a ch ứ ữ ệ ủ ệ ằ ự này theo các cách đ c bi ệ ể lên các c u trúc d li u n i b ch ng h n các con ữ ệ ộ ộ ẳ tr c a danh sách liên k t. ế
ỏ ủ
ỗ ệ ượ ượ ọ ượ ằ i tràn b đ m trên heap. ả c g i là m t hi n t ệ ượ c b ng các k thu t khác v i các l ậ
LOGO
V.Cách phòng tránh buffer overflow
ỗ
ả
ướ
ệ ử
i buffer overflow: ậ c khi đ c hay th c thi nó có th ể ự i tràn b đ m nh ng
ộ ệ
ấ ạ
ỗ
ư c m t cách tuy t đ i. Vi c x ệ ử
ệ ố
ộ
ng
t và l c các xâu không ch a
ch hoa thành ch th ữ ườ ọ
ệ
ứ
C n tr đ i v i các kĩ thu t khai thác l ở ố ớ Vi c x lý b đ m tr ọ ộ ệ làm th t b i các c g ng khai thác l ố ắ v n không ngăn ch n đ ặ ượ ẫ lý bao g m:ồ + Chuy n t ể ừ ữ + Lo i b các kí t ạ ỏ kí t
đ c bi ự ặ là ch s ho c ch cái. ữ
ữ ố ặ
ự
LOGO
V.Cách phòng tránh buffer overflow
Tuy nhiên v n có các kĩ thu t đ tránh vi c l c và x lý ậ ể ệ ọ ử ẫ
này:
ồ ữ ố
s a đ i ự ữ ổ
ấ
- alphanumeric code :mã g m toàn ch và s - polumorphic code : mã đa hình - Self-modifying code : mã t - T n công ki u return-to-libc ể Vì th đ tránh các nguy c b khai thác l i buffer ế ể ỗ
ầ ử ụ ệ
ơ ị overflow chúng ta c n s d ng các bi n pháp phòng tránh hi u qu h n. ả ơ ệ
LOGO
V.Cách phòng tránh buffer overflow
ự ữ ậ
ưở ng l n đ i v i s xu t ớ ố ớ ự ấ ọ ữ ậ
i tràn b đ m: ệ ỗ
ữ ậ
ữ ậ ể ư ụ ệ ạ
ữ ệ ậ
ặ ể ộ ợ ả
1.L a ch n ngôn ng l p trình Ngôn ng l p trình có m t nh h ộ ả hi n l ộ ệ Ngôn ng l p trình C và C++ là hai ngôn ng l p trình thông d ng ,nh ng h n ch c a nó là không ki m tra vi c ế ủ truy c p ho c ghi đè d li u thông qua các con tr .C th ỏ ụ ể nó không ki m tra d li u copy vào m t m ng có phù h p kích th ữ ệ c c a mn g hay không? ả ướ ủ
LOGO
V.Cách phòng tránh buffer overflow
i tràn v Cyclone, m t bi n th c a C, giúp ngăn ch n các l ỗ ể ủ c m ng v i ớ ả ế ệ ắ ộ ằ ộ ệ ề
ặ b đ m b ng vi c g n thông tin v kích th ướ các m ng.ả
ử ụ ậ ạ
ữ ậ ầ ế ệ ử ụ ề ỏ ể
v Ngôn ng l p trình D s d ng nhi u kĩ thu t đa d ng đ ể tránh g n h t vi c s d ng con tr và ki m tra biên do ng
i dùng xác đ nh
ệ ấ ườ ề ị ữ ậ
ờ ể ộ ể ệ ạ
ấ ữ ệ ụ ư ả
v Nhi u ngôn ng l p trình khác cung c p vi c ki m tra t i ạ th i gian ch y. . Vi c ki m tra này cung c p m t ngo i l ạ ệ hay 1 c nh báo khi C hay C++ ghi đè d li u ví d nh : Pythol, Ada,Lisp,Smalltalk Ocaml
v Ngoài ra các môi tr
ng c a Java hay .NET cũng đòi h i ủ ỏ
ườ ki m tra biên đ i v i t t cà các m ng ố ớ ấ ể ả
LOGO
V.Cách phòng tránh buffer overflow
c vi ử ụ ử ụ
t và đã đ ượ ng mà các th vi n 2.S d ng các th vi n an toàn ư ệ v S d ng các th vi n đ ư ệ ượ ể ữ ệ c ki m th ử ể ư ệ
đ ng vi c qu n lý b nh , trong đó có
ộ ớ ệ ả ả
v Các th vi n an toàn g m có The Better String Library,
ng c a các hi n t ng tràn b đ m. t t ế ố dành cho các ki u d li u tr u t ừ ượ này th c hi n t ả ệ ệ ự ộ ự ki m tra biên có th làm gi m s xu t hi n và nh ự ấ ể h ộ ệ ể ưở
ủ ư ệ ệ ượ ồ
Arri Buffer API và Vstr
LOGO
V.Cách phòng tránh buffer overflow
v 3. Ch ng tràn b đ m trên stack v Stack-smashing protection là k thu t dùng đ phát hi n
ố ộ ệ
ỹ ể ệ
ộ ệ ệ ượ ậ ng tràn b đ m ph bi n nh t. K thu t này ổ ế ấ ậ ỹ
ư ộ
ng trình k t thúc ị ử ổ ươ ế
i segmentation fault. ộ ỗ
các hi n t ki m tra xem stack đã b s a đ i hay ch a khi m t hàm ể ị ử ổ tr v . N u stack đã b s a đ i, ch ả ề ế b ng m t l ằ ế ộ ư ấ
ả ệ ỏ
v Ch đ Data Execution Prevention (c m th c thi d li u) ữ ệ c a Microsoft b o v các con tr và không cho chúng b ị ủ ghi đè
v Có th b o v stack b ng cách phân tán stack thành 2
ằ
ộ
c dùng ầ ượ ướ
ph n, m t ph n dành cho d li u và m t ph n dành cho ữ ệ ầ các b ự trong ngôn ng Forth. ể ả ệ ầ ộ c trà v c a hàm. S phân chia này đ ề ủ ữ
LOGO
V.Cách phòng tránh buffer overflow
ự
i stack hay heap.
4. B o v không gian th c thi Kĩ thu t này ngăn chăn vi c th c thi mã t ệ
ả ệ ậ
ạ
ể
ạ
ộ ớ ủ
ươ
ọ ố ắ
ộ
ự Hacker có th s d ng tràn b đ m đ chèn m t đo n mã tùy ộ ệ ể ử ụ ộ ng trình, v i vi c b o v không gian ý vào b nh c a ch ớ ệ ả ệ th c thi m i c g ng ch y do n mã đó s gây ra m t ngo i l ạ ệ ẽ ặ ạ M t s CPU h tr m t tính năng có tên bit NX (No eXecute)
ỗ ợ ộ
ế ợ ớ
ề
ầ
ự ộ ố ặ
ể ượ
ể
ọ ượ
ứ
ẳ
ho c bit XD (eXecute Disable). Khi k t h p v i ph n m m các c dùng đ đánh d u các trang d li u tính năng này có th đ ữ ệ ấ (ch ng h n nh các trang ch a stack và heap) là đ c đ c ch ứ ư không th c thi đ
ạ ự
ượ
ế
c. ể ớ ủ
ớ
Các bi n th m i c a Microsoft Windows cũng h tr b o v ỗ ợ ả ệ ọ ồ
ự ắ
ề
ầ
không gian th c thi v i tên g i Data Execution Prevention và các ph n m m g ng kèm bao g m: SecureStack, OverflowGuard, BufferShield
LOGO
V.Cách phòng tránh buffer overflow
ị ẫ
ẫ ơ ồ ỉ ị
ộ
ữ ệ ị ườ
i vi c s p x p các vùng d li u quan tr ng ọ ớ ệ ắ ế ư ệ ơ ồ ị ẫ
5. Ng u nhiên hóa s đ không gian đ a ch ỉ ơ ồ Ng u nhiên hóa s đ không gian đ a ch (Address space layout randomization ASLR) là m t tín năng an ninh máy tính có liên quan t (th ng bao g m n i chúa mã th c thi và v trí các th vi n, ư heap va stack) m t cách ng u nhiên trong không gian đ a ch ỉ ộ c a m t ti n trình ộ ế ủ
LOGO
V.Cách phòng tránh buffer overflow
ể ố ớ
ể 6. Ki m tra sâu đ i v i gói tin Bi n pháp ki m tra sâu đ i v i gói tin (deep packet ố ớ
i ỗ
ệ biên gi
ữ
ứ
Vi c rà gói tin không ph i là m t ph ươ ộ
ả t và có ng pháp hi u qu vì ệ ế ộ ấ ể ỉ
ệ inspection-DPI) có th phát hi n vi c c g ng khai thác l ể ệ ố ắ xa ngay t i m ng. Các kĩ thu t trán b đ m t ừ ộ ệ ừ ậ ớ ạ này có kh năng ngăn ch n các gói tin có ch a ch ký c a ủ ặ ả ứ t ho c ch a các chu i dài các l nh m t v t n công đã bi ệ ỗ ặ ế ộ ụ ấ No-Operation (NOP- l nh r ng không làm gì) ỗ ệ ả ệ nó ch có th ngăn ch n các cu c t n công đã bi ặ nhi u cách đ mã hóa m t l nh NOP ộ ệ ề ể