Professional Documents
Culture Documents
Mau LVTN 1
Mau LVTN 1
NIÊN LUÂN CƠ SỞ
NGÀNH TRUYỀN THÔNG VÀ MẠNG MÁY TÍNH
Đề tài
TẤN CÔNG TRÀN BỘ ĐỆM
(Buffer Overflow Attack)
1
TRƯỜNG ĐẠI HỌC CẦN THƠ
MỤC LỤC
CHƯƠNG 1: GIỚI THIỆU...............................................................................................................
1.1. Lý do chọn đề tài...............................................................................................................................
1.2. Mục tiêu của đề tài............................................................................................................................
1.3.Đối tượng nghiên cứu........................................................................................................................
1.4.Phạm vi nghiên cứu............................................................................................................................
1.5.Phương pháp nghiên cứu..................................................................................................................
1.6.Ý nghĩa khoa học và thực tiễn của đề tài...........................................................................................
1.6.1.Ý Nghĩa Khoa Học:....................................................................................................................
1.6.2.Ý Nghĩa Thực Tiễn:...................................................................................................................
CHƯƠNG 2 : CƠ SỞ LÝ THUYẾT................................................................................................................
2.1. Buffer overflow attack là gì................................................................................................................
2.2 Cơ sở lý thuyết liên quan đến buffer overflow attacks:......................................................................
2.2.1.Buffer:........................................................................................................................................
2.2.2.Overflow:...................................................................................................................................
2.2.3.Stack Overflow và Heap Overflow:............................................................................................
2.2.4.Return Address (Địa chỉ Quay Về):...........................................................................................
2.2.5.Shellcode:..................................................................................................................................
2.2.6.ASLR (Address Space Layout Randomization):........................................................................
2.2.7.DEP (Data Execution Prevention):............................................................................................
CHƯƠNG 3: PHƯƠNG PHÁP THỰC HIỆN.................................................................................................
3.1.Xác định Lỗ Hổng:..............................................................................................................................
3.2.Xây Dựng Payload:............................................................................................................................
3.3.Xác Định Điểm Tiếp Xúc:...................................................................................................................
3.4.Chuẩn Bị Dữ Liệu Tấn Công:.............................................................................................................
3.5.Chèn Payload vào Dữ Liệu Đầu Vào:................................................................................................
3.6.Thực Hiện Tấn Công:.........................................................................................................................
3.7.Kiểm Tra Hiệu Quả và Thu Thập Kết Quả:........................................................................................
CHƯƠNG 4: KẾT QUẢ THỰC NGHIỆM.......................................................................................................
4.1.Ret2win...............................................................................................................................................
4.1.1.Bước 1.......................................................................................................................................
4.1.2.Bước 2.......................................................................................................................................
4.1.3.Bước 3.......................................................................................................................................
4.1.4.Bước 4.......................................................................................................................................
4.1.5.Bước 5.......................................................................................................................................
4.1.6.Bước 6.......................................................................................................................................
4.2.Callme................................................................................................................................................
4.2.1.Bước 1.......................................................................................................................................
4.2.2.Bước 2.......................................................................................................................................
4.2.3.Bước 3.......................................................................................................................................
GVHD: TS.GVC Nguyễn Văn A SVTH: Võ Thanh B
1
4.2.4.Bước 4.......................................................................................................................................
4.2.5.Bước 5.......................................................................................................................................
4.2.6.Bước 6.......................................................................................................................................
4.2.7.Bước 7.......................................................................................................................................
4.2.8.Bước 8.......................................................................................................................................
4.3.Write4.................................................................................................................................................
4.3.1.Bước 1.......................................................................................................................................
4.3.2.Bước 2.......................................................................................................................................
4.3.3.Bước 3.......................................................................................................................................
4.3.4.Bước 4.......................................................................................................................................
4.3.5.Bước 5.......................................................................................................................................
4.3.6.Bước 6.......................................................................................................................................
4.3.7.Bước 7.......................................................................................................................................
CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN....................................................................................
5.1.Kết Luận.............................................................................................................................................
5.2.Hướng Phát Triển :.............................................................................................................................
TÀI LIỆU THAM KHẢO..................................................................................................................................
1
MỤC LỤC HÌNH ẢNH
LỜI CẢM ƠN
Để hoàn thành được bài niên luận này, em xin chân thành cảm ơn sâu sắc đến
thầy Trần Duy Quang người đã trực tiếp giảng dạy và hướng dẫn em thực hiện bài
niên luận này bằng tất cả lòng nhiệt tình và sự quan tâm sâu sắc.
Trong quá trình thực hiện bài niên luận này, do hiểu biết còn nhiều hạn chế nên
bài làm khó tránh khỏi những thiếu sót. Em rất mong nhận được những lời góp ý của
quý thầy cô để bài tiểu luận ngày càng hoàn thiện hơn.
1
Đề tài : Tấn công tràn bộ đệm
——————————————————————————————————
Phân tích cơ chế tấn công hiểu rõ về cách hoạt động của buffer overflow
attack, cách kẻ tấn công có thể tận dụng lỗ hổng bảo mật để thực hiện mã độc hại và
kiểm soát hệ thống.
Nghiên cứu về bảo mật hệ thống nắm vững các phương pháp phòng tránh và
ngăn chặn buffer overflow attacks.
Hiểu rõ về cơ chế tấn công đọc và nghiên cứu về cách buffer overflow attack
hoạt động. Nắm vững về các khái niệm như stack overflow, heap overflow, và các
biến thể khác của tấn công.
Phân tích mã nguồn kiểm tra ứng dụng mục tiêu nghiên cứu mã nguồn của
ứng dụng để xác định các lỗ hổng có thể dẫn đến buffer overflow. Phân tích các hàm
và biến tìm hiểu về cách hàm và biến được xử lý trong mã nguồn để xác định điểm
yếu có thể bị tận dụng.
Thực hiện kiểm thử để kiểm tra các kịch bản tấn công buffer overflow mà các
công cụ tự động có thể bỏ qua. Xác định và đánh giá lỗ hổng nếu có lỗ hổng , xác định
mức độ nghiêm trọng và khả năng tận dụng.
Phân tích cơ chế bảo vệ nghiên cứu về cách các cơ chế bảo vệ như DEP,
ASLR được triển khai để ngăn chặn buffer overflow attacks. Đánh giá hiệu suất của
các cơ chế bảo vệ đánh giá hiệu suất và độ hiệu quả của các cơ chế bảo vệ hiện tại.
2
Đề tài : Tấn công tràn bộ đệm
——————————————————————————————————
Cải tiến biện pháp bảo mật hiện tại dựa trên những kiến thức mới, nghiên cứu
này có thể dẫn đến việc cải tiến hoặc đề xuất các biện pháp bảo mật mới để ngăn chặn
buffer overflow attacks.
Kiến thức nền tảng cho các nghiên cứu tiếp theo nghiên cứu về buffer
overflow attacks có thể tạo ra kiến thức nền tảng cho các nghiên cứu tiếp theo trong
lĩnh vực an ninh mạng và phân tích mã độc hại.
1.6.2.Ý Nghĩa Thực Tiễn:
Nâng cao tính bảo mật của hệ thống và ứng dụng hiểu rõ về buffer overflow
attacks giúp cải thiện tính bảo mật của hệ thống và ứng dụng, giảm nguy cơ bị tấn
công thông qua các lỗ hổng này.
Phát triển biện pháp ngăn chặn và phòng tránh dựa trên kết quả nghiên cứu,
có thể phát triển các biện pháp ngăn chặn và phòng tránh buffer overflow attacks, giúp
bảo vệ thông tin và hệ thống.
3
Đề tài : Tấn công tràn bộ đệm
——————————————————————————————————
CHƯƠNG 2 : CƠ SỞ LÝ THUYẾT
Buffer overflow attack là một hình thức tấn công mạng mà kẻ tấn công cố gắng
tràn (overflow) dữ liệu vào bộ nhớ đệm (buffer) của một chương trình hoặc hệ thống
để làm cho nó thực hiện các hành động không mong muốn hoặc chạy mã độc hại.
Điều này thường xảy ra khi một chương trình không kiểm soát được lượng dữ liệu đầu
vào mà nó xử lý, và kẻ tấn công tận dụng điều này để tràn qua giới hạn của buffer và
thực hiện các hành động không an toàn.
-Text segment (Phân đoạn văn bản ) : lưu trữ mã thực thi của chương trình.
Khối bộ nhớ này thường chỉ đọc
-Data segment (Phân đoạn dữ liệu) : lưu trữ các biến tĩnh/toàn cục được người
lập trình khởi tạo.
4
Đề tài : Tấn công tràn bộ đệm
——————————————————————————————————
-BSS segment (Phân đoạn BSS) :lưu trữ các biến tĩnh/toàn cục chưa được khởi
tạo. Phân đoạn này sẽ được hệ điều hành lấp đầy bằng các số 0, vì vậy tất cả các biến
chưa được khởi tạo đều được khởi tạo bằng số 0.
-Heap : Heap được sử dụng để cung cấp không gian cho việc cấp phát bộ nhớ
động. Khu vực này được quản lý bởi malloc, calloc, realloc, free, v.v.
-Stack : được sử dụng để lưu trữ các biến cục bộ được xác định bên trong hàm,
cũng như lưu trữ dữ liệu liên quan đến lệnh gọi hàm, chẳng hạn như địa chỉ trả về, đối
số, v.v . Chúng tôi sẽ cung cấp thêm chi tiết về phân đoạn này sau.
Cơ chế hoạt động của buffer overflow attack thường liên quan đến việc gửi một
lượng dữ liệu lớn hơn kích thước được dự kiến của buffer đến chương trình. Khi dữ
liệu này được ghi vào buffer, nó có thể tràn ra các vùng bộ nhớ khác, có thể là các địa
chỉ quay về (return addresses) hoặc các biến khác trong bộ nhớ. Kẻ tấn công có thể
kiểm soát được chương trình bằng cách chèn mã độc hại và thay đổi quá trình thực thi
của nó.
Buffer overflow attacks có thể dẫn đến nhiều hậu quả nghiêm trọng, bao gồm
việc thực hiện mã độc hại, kiểm soát hệ thống, thực hiện tấn công từ chối dịch vụ
(DoS), hoặc thậm chí là kiểm soát toàn bộ máy chủ. Để ngăn chặn buffer overflow
attacks, các biện pháp như kiểm tra giới hạn dữ liệu đầu vào, sử dụng ngôn ngữ lập
trình an toàn, và triển khai các cơ chế bảo vệ như Data Execution Prevention (DEP) và
Address Space Layout Randomization (ASLR) thường được áp dụng.
2.2.1.Buffer:
Là một vùng bộ nhớ được cấp phát để lưu trữ dữ liệu tạm thời. Có thể là mảng,
chuỗi, hoặc bất kỳ cấu trúc dữ liệu nào khác.
2.2.2.Overflow:
Khi lượng dữ liệu được ghi vào buffer vượt quá dung lượng mà nó được cấp
phát, xảy ra hiện tượng overflow, và dữ liệu có thể tràn ra các vùng bộ nhớ lân cận.
5
Đề tài : Tấn công tràn bộ đệm
——————————————————————————————————
Stack Overflow: Xảy ra khi một chương trình ghi quá nhiều dữ liệu vào stack
(ngăn xếp), thường thông qua các biến địa phương, địa chỉ quay về, hoặc các giá trị
lưu trữ trên ngăn xếp.
Heap Overflow: Xảy ra khi dữ liệu được ghi vào vùng nhớ được cấp phát động
(heap), thường thông qua các hàm như ‘malloc’ hoặc ‘calloc’.
Là một giá trị trỏ đến vị trí trong bộ nhớ mà chương trình sẽ quay về sau khi
kết thúc một hàm. Khi bị thay đổi bởi buffer overflow, nó có thể dẫn đến thay đổi
luồng thực thi của chương trình.
2.2.5.Shellcode:
Là mã máy nhỏ, thường được thiết kế để thực hiện các chức năng độc hại. Khi
buffer overflow attack thành công, shellcode thường được chèn vào vùng nhớ và sau
đó được thực thi để kiểm soát chương trình.
Một kỹ thuật bảo mật để ngăn chặn buffer overflow attacks bằng cách ngẫu
nhiên đặt vị trí của các phần quan trọng trong bộ nhớ, như địa chỉ quay về và các vùng
nhớ chứa shellcode.
Một kỹ thuật bảo mật được thiết kế để ngăn chặn việc thực thi mã từ vùng bộ
nhớ chỉ chứa dữ liệu, ngăn chặn buffer overflow attacks có thể sử dụng vùng bộ nhớ
đúng mục đích.
6
Đề tài : Tấn công tràn bộ đệm
——————————————————————————————————
Tìm kiếm và xác định hệ thống có lỗ hổng buffer overflow. Điều này thường
liên quan đến việc phân tích mã nguồn hoặc thực hiện kiểm thử bảo mật.
Phát triển mã shellcode hoặc payload chứa các hành động độc hại mà bạn
muốn thực hiện trên hệ thống mục tiêu. Điều này có thể bao gồm việc kiểm soát
chương trình, thực hiện các hàm độc hại, hoặc mở cổng kết nối để tạo một lối vào từ
xa.
Xác định nơi mà buffer overflow có thể xảy ra, ví dụ như thông qua đầu vào từ
người dùng, dữ liệu từ mạng, hoặc tương tác với tệp tin.
Tạo ra dữ liệu đầu vào mà bạn sẽ sử dụng để tận dụng buffer overflow. Điều
này thường liên quan đến việc tạo ra một lượng dữ liệu lớn hơn kích thước của buffer
để khi ghi vào, nó sẽ tràn ra các vùng nhớ lân cận.
Chèn payload của bạn vào dữ liệu đầu vào mà bạn đã chuẩn bị. Payload này
thường chứa mã máy (shellcode) để thực hiện các hành động độc hại.
Gửi dữ liệu đầu vào đã được tấn công đến ứng dụng hoặc hệ thống mục tiêu và
chờ xem liệu buffer overflow attack có thành công hay không.
7
Đề tài : Tấn công tràn bộ đệm
——————————————————————————————————
Kiểm tra xem payload của bạn có thực sự được thực hiện không, và thu thập
thông tin về việc tấn công, chẳng hạn như thông tin về hệ thống hoặc quyền truy cập
mới có được.
8
Đề tài : Tấn công tràn bộ đệm
——————————————————————————————————
4.1.Ret2win
4.1.1.Bước 1
- Thu thập thêm thông tin về tệp nhị phân.
hình 2 : thu thập thông tin tệp nhị phân và chạy chương trình .
4.1.2.Bước 2
- Biết địa chỉ các chức năng của chương trình : main , sym.pwnme, sym.ret2win.
9
Đề tài : Tấn công tràn bộ đệm
——————————————————————————————————
hình 4 : main.
10
Đề tài : Tấn công tràn bộ đệm
hình 5 : Sym.ret2win
hình 6 : Sym.pwnme.
- Có thể thấy ở hàm này họ đang tạo một bộ đệm có kích thước 0x20 (32 ở
dạng thập phân)
hình 7 : Sym.pwnme.
11
Đề tài : Tấn công tràn bộ đệm
- Hàm đọc họ yêu cầu người dùng nhập một số thông tin và ghi vào bộ đệm,
vấn đề ở đây là họ viết 0x38 byte (56 ở dạng thập phân)
- Đầu vào tiêu chuẩn vào bộ đệm và rõ ràng, 56 lớn hơn 32 khiến đây trở thành
tình huống tràn bộ đệm thông thường.
4.1.3.Bước 3
12
Đề tài : Tấn công tràn bộ đệm
13
Đề tài : Tấn công tràn bộ đệm
hình 12 : Phần bù
- Phần bù là 40 byte.
4.1.4.Bước 4
4.1.5.Bước 5
14
Đề tài : Tấn công tràn bộ đệm
4.1.6.Bước 6
4.2.Callme
4.2.1.Bước 1
15
Đề tài : Tấn công tràn bộ đệm
4.2.2.Bước 2
- Có thể thấy rằng cờ canary cho phép thực hiện các cuộc tấn công tràn bộ
đệm
16
Đề tài : Tấn công tràn bộ đệm
4.2.3.Bước 3
- chạy chương trình và xem hoạt động của của chương trình
4.2.4.Bước 4
17
Đề tài : Tấn công tràn bộ đệm
- Bây giờ chúng ta có địa chỉ cho từng hàm (callme_one, callme_two và
callme_third). Để có thể khai thác, trước tiên chúng ta cần hiểu phần bù lỗi tràn bộ
đệm và chúng ta cũng cần một cách để chuyển các đối số cho các hàm, để làm được
điều đó, chúng ta cần tiện ích ROP với ba cửa sổ đăng ký theo sau là một ret. bắt đầu
bằng cách tìm phần bù tràn bộ đệm
- Sau khi phân tích callme trên radare2, phát hiện ra rằng bộ đệm được khởi tạo
trong hàm pwnme. Ngoài ra, đầu vào được yêu cầu cho người dùng trong chức năng
này và được thêm vào bộ đệm
- Hàm pwnme.
- Đây là nơi chúng ta nhận dữ liệu đầu vào từ người dùng. Cũng có thể thấy ở
hàm này họ đang tạo một bộ đệm có kích thước 0x20 (32 ở dạng thập phân) và sau
đó với hàm đọc họ yêu cầu người dùng nhập một số thông tin và ghi vào bộ đệm,
vấn đề ở đây là họ ghi 0x200 byte (512 ở dạng thập phân) từ đầu vào tiêu chuẩn vào
bộ đệm và rõ ràng, 512 lớn hơn 32 khiến đây trở thành tình huống tràn bộ đệm thông
thường.
18
Đề tài : Tấn công tràn bộ đệm
4.2.5.Bước 5
- Chèn mẫu đã tạo trước đó làm đầu vào cho chương trình
- Nó tràn ra gây ra lỗi phân đoạn (như bạn có thể thấy trong hình 23)
19
Đề tài : Tấn công tràn bộ đệm
- Nhìn vào hình ảnh có thể tìm thấy thanh ghi RSP : 0x7fffffffde18
(“AA0AAFAAbA”)
- Chúng ta đã có nội dung của thanh ghi RSP, chúng ta phải làm để có thể tìm
được phần bù.
hình 24 : phần bù
4.2.6.Bước 6
- Chúng ta cần sử dụng các thanh ghi để truyền đối số cho các hàm nên chúng
ta cần sử dụng tổ chức ROP để bật ba thanh ghi và sau đó làm một ret.
- chúng ta phải lưu ý để có thể chọn tiện ích ROP chính xác là ESP phải được
di chuyển các tháp có địa chỉ cao hơn trong tiện ích ROP, vì vậy bằng cách nhìn vào
ngăn xếp
20
Đề tài : Tấn công tràn bộ đệm
hình 25 : ROPgadgets
- Có thể thấy ở kết quả ở trên, chúng ta có pop rdi ; pop rsi ; pop rdx ; ret
tiện ích ROP trong địa chỉ: “ 0x000000000040093c “
4.2.7.Bước 7
21
Đề tài : Tấn công tràn bộ đệm
4.2.8.Bước 8
4.3.Write4
4.3.1.Bước 1
4.3.2.Bước 2
22
Đề tài : Tấn công tràn bộ đệm
4.3.3.Bước 3
- Chúng tôi có một số thông tin quan trọng. Cụ thể hiện nay chúng ta đã biết
địa chỉ các chức năng của chương trình usefulFunction ,imp.pwnme,main.
- Sym. usefulFunction.
23
Đề tài : Tấn công tràn bộ đệm
hình 31 : Sym.usefulFunction
- Có thể thấy, trong địa chỉ 0x00400620, chúng ta có lệnh gọi hàm print_file
. Tuy nhiên, đây là mục PLT nên để đảm bảo chúng ta có địa chỉ chính xác, tìm hiểu
sâu hơn một chút. Có thể thấy, địa chỉ chính xác trên thực tế là: 0x00400510 .
hình 32 : Sym.imp.print_file
4.3.4.Bước 4
24
Đề tài : Tấn công tràn bộ đệm
hình 33 : ROPgadget
- Có thể thấy, chúng ta có một động thái có thể chính xác là những gì chúng ta
cần: mov qword ptr [r14], r15 ; ret trong địa chỉ 0x0000000000400628 .
- Bây giờ chúng ta có tiện ích ROP cho phép chúng tôi lưu trữ chuỗi trong sổ
đăng ký. Bây giờ chúng ta cần một nơi (một địa chỉ) để lưu trữ chuỗi.Để làm như vậy
sử dụng lệnh sau:
25
Đề tài : Tấn công tràn bộ đệm
- Công cụ readelf hiển thị thông tin liên quan đến tệp nhị phân , nó có thể giúp
chúng ta tìm một nơi để lưu trữ chuỗi. Trong tiêu đề Phần, chúng ta có danh sách các
26
Đề tài : Tấn công tràn bộ đệm
phần được trình bày trong tệp nhị phân.Để chọn một cái mà chúng ta có thể sử dụng,
chúng ta cần một cái cho phép chúng ta viết và chúng ta cần đảm bảo rằng làm như
vậy sẽ không làm hỏng bất cứ thứ gì có liên quan.
- Chúng ta có một mục .data có the flag W bật nên chúng ta có thể viết lên đó,
chúng ta chỉ cần biết liệu viết lên đó có làm hỏng gì không.
- Bây giờ chúng ta đã có một nơi để viết chuỗi của mình vào đó. Địa chỉ là:
0x00601028 .
- Bây giờ chúng ta chuyển chuỗi đó làm đối số cho hàm print_file.Để làm như
vậy, chúng ta cần xem liệu có thể tìm thấy một tiện ích ROP tương tự như thế này hay
không: pop rdi ; ret . Điều này sẽ cho phép chúng ta chuyển rdi làm đối số cho hàm.
- Chúng ta có pop rdi ; ret tiện ích ROP trong địa chỉ
0x0000000000400693 .
4.3.5.Bước 5
27
Đề tài : Tấn công tràn bộ đệm
- Chèn mẫu đã tạo trước đó làm đầu vào cho chương trình.
- Nó tràn ra gây ra lỗi phân đoạn (như bạn có thể thấy trong hình 40).
- Biết được điều này, bây giờ chúng ta phải tìm phần bù cho lỗi tràn.
- Để làm như vậy tôi đã kiểm tra nội dung của RSP.
28
Đề tài : Tấn công tràn bộ đệm
hình 40 : RSP
- Nhìn vào hình ảnh có thể tìm thấy thanh ghi RSP : 0x7fffffffde18
(“AA0AAFAAbA”)
hình 41 : Phần bù
- Phần bù là 40 byte.
4.3.6.Bước 6
29
Đề tài : Tấn công tràn bộ đệm
4.3.7.Bước 7
30
Đề tài : Tấn công tràn bộ đệm
5.1.Kết Luận
Trong quá trình nghiên cứu về buffer overflow attack , em đã tập trung vào việc
hiểu rõ cơ chế và nguyên nhân gây ra lỗ hổng bảo mật này trong hệ thống và ứng dụng
phần mềm. Các kết quả đạt được trong nghiên cứu này mang lại cái nhìn sâu sắc về
những mối đe doạ và rủi ro mà buffer overflow attack mang lại.Em đã thành công
trong việc xác định và khai thác buffer overflow attack trong môi trường kiểm thử,
31
Đề tài : Tấn công tràn bộ đệm
giúp chúng tôi hiểu rõ hơn về cách tấn công này có thể xảy ra và ảnh hưởng đến hệ
thống.
- Phương thức tấn công: Khi dữ liệu vượt quá giới hạn của bộ đệm, nó
có thể ghi đè lên vùng nhớ lân cận.
- Phòng chống: Sử dụng toàn bộ trình lập ngôn ngữ như Rust, Ada hoặc
Java hoặc thực hiện kiểm tra giới hạn dữ liệu đầu vào và đảm bảo kiểm soát bộ đệm
luồng.
2. Shellcode Injection
- Phương thức tấn công: Ghi đè trên bộ đệm với mã shellcode để thực
thi các lệnh độc hại.
3. Return-to-Libc Attack
- Phương thức tấn công: Thay đổi địa chỉ trở về (return address) để thực
hiện các chức năng trong thư viện C chuẩn.
4. Heap Overflow
- Phương thức tấn công: Tấn công tràn bộ đệm trong vùng nhớ heap thay
vì stack.
32
Đề tài : Tấn công tràn bộ đệm
- Phòng chống: Sử dụng các hàm quản lý bộ nhớ an toàn như ‘malloc’ và
‘free’, giữ cho việc quản lý heap được kiểm soát, sử dụng kỹ thuật heap canaries
- Phương thức tấn công: Sử dụng chuỗi định dạng không an toàn để đọc
hoặc ghi dữ liệu trong bộ nhớ.
- Phòng chống: Sử dụng hàm in an toàn như ‘ printf ‘ với các định dạng
được xác định trước, tránh sử dụng chuỗi định dạng người dùng.
6. Integer Overflow
- Phương thức tấn công: Ghi giá trị vượt quá phạm vi cho kiểu dữ liệu số
nguyên.
- Phòng chống: Kiểm tra và xác thực giá trị dữ liệu đầu vào, sử dụng kiểu
dữ liệu phù hợp để đảm bảo không xảy ra tràn số nguyên.
5.2.Hướng Phát Triển :
Mở rộng nghiên cứu để áp dụng các biện pháp phòng chống vào ứng dụng và hệ
thống thực tế.
Tiếp tục theo dõi và đánh giá các phương pháp tấn công mới xuất hiện để cập nhật
biện pháp phòng chống.
Nghiên cứu chi tiết hơn về việc tích hợp công nghệ mới như machine learning để
phát hiện và ngăn chặn buffer overflow attack.
33
Đề tài : Tấn công tràn bộ đệm
https://web.ecs.syr.edu/~wedu/seed/Book/book_sample_buffer.pdf
https://pwn.college/software-exploitation/return-oriented-programming
https://ropemporium.com/
https://www.kali.org/tools/
34
Đề tài : Tấn công tràn bộ đệm
35