tìm hiểu sự tràn bộ nhớ đệm

43 220 0
tìm hiểu sự tràn bộ nhớ đệm

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

SỰ  TRÀN  BỘ  NHỚ  ĐỆM                         TIN  TỨC  BẢO  MẬT THÔNG  TIN  TRONG  TUẦN Lỗi  ngày  trở  về  0  vượt  qua  sự  kiểm  soát  của  Người  sử  dụng  Windows.   !"  #$  %  &'  ()(  #$  *  !+  !,!  &-  *.  '  &/    (+ 0("112  &3  '  !4  (56  7/  8  9)  "  (1  :;  !5  (<=   !"#$%&'%()'*+)(, +-(%./ #(!,)0'1(2 (2)34 567 )(896&:'/);)<(%$= %(%>?$@ABCD4)E$F226)G !>?$@'HA6I)E&(,++1-JK  +L,)2MN,$@0LN(G;'H O;P0QL,)&R2)226)$ ,HJK0!>2R@NPSTUVQ, F4 5677V66W6BOX&(%./  +1?Y(G+$,HSTUV:1(O 0&'+,))8Z HO/2 Z0WB[4 >?>  >@  AB  CD  0DEF Sự  tràn  bộ  nhớ  đệm  (BoF). Tràn  bộ  nhớ  đệm  trên  stack  (ngăn  xếp) Tràn  bộ  nhớ  đệm  trên  heap Điều  khiển  stack Các  bước  tràn  bộ  nhớ  đệm Cách  thức  tấn  công  một  chương  trình thực Sự  phá  vỡ  stack Ví  dụ  của  tràn  bộ  nhớ  đệm Làm  cách  nào  khai  thác  sự  biến  đổi của  việc  tràn  bộ  nhớ  đệm Xác  định  tràn  bộ  nhớ  đệm Điều  kiện  kiểm  tra  tràn  bộ  nhớ  đệm trên  heap:  heap.exe Các  bước  kiểm  tra  việc  tràn  bộ  nhớ đệm  trên  stack  trong  chương  trình  sửa lỗi  OllyDbg Công  cụ  phát  hiện  tràn  bộ  nhớ  đệm Phòng  chống  tràn  bộ  nhớ  đệm Công  cụ  đối  phó  với  việc  tràn  bộ  nhớ đệm Bút  kiểm  tra  tràn  bộ  nhớ  đệm GHIE  AJ  0DEF Khái  niệm tràn  bộ  nhớ đệm Phương pháp  luận tràn  bộ  nhớ đệm Công  cụ bảo  mật tràn  bộ  nhớ Bút  kiểm tra  tràn  bộ nhớ  đệm Ví  dụ  tràn bộ  nhớ  đệm Biện  pháp đối  phó tràn  bộ đệm Phát  hiện tràn  bộ  nhớ đệm Lỗi  tràn  bộ  đệm  tổng  quát  xảy  ra  khi  một  bộ  nhớ  đệm  đã  được  phân  chia  cho  một  không  gian  lưu  trữ  cụ  thể  có chứa  nhiều  dữ  liệu  được  sao  chép  vào  lớn  hơn  mức  mà  nó  có  thể  xử  lý. Khi  chương  trình  được  biên  dịch  và  chạy,  nó  sẽ  chỉ  định  một  phần  của  bộ  nhớ  có  độ  dài  11  bytes  để  chứa  chuỗi tấn  công. Hàm  Strcpy  sẽ  sao  chép  chuỗi  “DDDDDDDDDDDDDD”  vào  chuỗi  tấn  công,  lúc  này  bộ  đệm  sẽ  vượt  quá  kích thước  11  bytes,  dẫn  tới  tràn  bộ  đệm. Đây  là  loại  dễ  bị  tổn thương  trong  hệ  thống dựa  trên  UNIX  và  NT. Tại  Sao  Các  Chương  Trình  Và  Ứng Dụng  Dễ  Bị  Tổn  Thương  ? Phương  thức  kiểm  tra  biên  không  được  thực hiện  đầy  đủ  hoặc,  trong  nhiều  trường  hợp, chúng  bị  bỏ  qua  hoàn  toàn. Ngôn  ngữ  lập  trình,  chẳng  hạn  như  C,  có  các lỗ  hổng  bảo  mật  trong  chính  chúng. Chương  trình  và  các  ứng  dụng  không  tuân  thủ đúng  các  hoạt  động  mà  chúng  được  lập  trình. Các  chức  năng  trong  ngôn  ngữ  lập  trình  C  như  strcat(),  strcpy(),  sprintf(), vsprintf(),  bcopy(),  gets()  và  scanf()  có  thể  bị  khai  thác  như  việc  chúng  không kiểm  tra  kích  thước  của  bộ  đệm. Tìm  Hiểu  Về  Stack Stack  sử  dụng  cơ  chế  Last-In- First-Out  (vào  sau  ra  trước)  để truyền  hàm  tham  số  và  tham chiếu  với  các  biến  cục  bộ. Nó  hoạt  động  như  một  bộ  đệm, giữ  tất  cả  các  thông  tin  mà  hàm cần. Được  tạo  ra  vào  thời  điểm  bắt đầu  của  hàm  và  giải  phóng  lúc kết  thúc  hàm. Phần dưới của  bộ nhớ BP  tại các  nơi bên trong khung stack Phần trên của  bộ \%](D P#Y%DQ \%](^ P#Y%^Q ]1(,)< ' V7_` 200 Các  điểm  SP  ở đây Hướng  đi vào Hướng  tăng của  stack nhớ K  9%  (+  !(: K  9%  (+  !(: UF$O 4 K  9%  (+  !(: UF$O 4 %0F$ +1a AL  (M  7  N/ AL  (M  7  N/  % >-(  9O  *'  :-( !"  &1  !(: O  *' O  *'  #L    &P !"  &1  !(: % K  (4  (+  !(: K  (4  (+  !(: $!  (Q(  R !(:    :  #L  $!  (Q( R  6-  1= Tìm  Hiểu  Về  Heap Heap  là  một  khu  vực  của  bộ  nhớ  được  sử  dụng  bởi  một  ứng  dụng  và  được cấp  phát  động  tại  thời  gian  chạy  của  các  hàm,  chẳng  hạn  như  malloc(). Các  biến  tĩnh  được  lưu  trữ  trên  stack  cùng  với  dữ  liệu  được  giao,  sử  dụng giao  diện  malloc. Heap  lưu  trữ  tất  cả  các  trường  hoặc  thuộc  tính,  hàm  tạo  và  phương  thức  của 4 UF  $    O 0$!  !(:  #S  !T !(:  :  #L  :;  !5  (<  U một  lớp  hoặc  một  đối  tượng.   *V #$  % "T  &/   *V #$  %   *V #$  % "T  &/ :3 :3   *V  W6  &X   "T  &/ :3   "  G$  %  A'  "  W6 Nếu  một  ứng  dụng  sao  chép  dữ  liệu  mà  không  kiểm  tra  dù  nó  phù  hợp  với  nơi  được  sao  chép  tới,  thì  kẻ  tấn công  có  thể  cung  cấp  một  lượng  lớn  dữ  liệu  cho  ứng  dụng  đó,  thực  hiện  ghi  đè  lên  thông  tin  quản  lý  của  heap. Kẻ  tấn  công  làm  một  bộ  nhớ  đệm  bị  tràn  trên  phần  dưới  của  heap,  ghi  đè  lên  các  biến  động  khác  gây  nên  các biến  đổi  bất  ngờ  và  không  mong  muốn.   Y  !"1  K  Z!  (-(  <  !"T[  &/    \  (1  6]6  :;  !5  (<  :3  1-!  &V(  N'(  !(  !  (+ (X  !"S= Hoạt  Aộng  >ủa  Stack "Hủybỏ"một mụctrên cùngcủangăn xếp b  ,`% _>#4 b ]L(%(Y $c _>#4 <%M$ PSdbQ SdbM#O(G(O N4e O  ` (%(&fg!$ F    _  >#  1  ? Y4 hO%b'b i)<'%!c<M ')M4 <%MX PSXbQ V2O  SXbM#'jO_ >#'-'7!( '  '  $O  M  k  _  >#  R 2  ?  Y  O  %    ' L2N"#M _>#4 <%M PS\bQ V2(2)S\b(%1( l17 " _>#02#' F$(%(?Y 204 W**(19W  *  $!  ^  _  &V(  8  9)  !"1  N'(  :  !-(  *`  a (+  $!  6K  /= G$  &'  *  )(  b    !c(  (+  (-(  :;  !5  (<  NS  (d  "5!  9  !" Z  e  "  &/  :'  6f  V6= W**(19W    !"  #$  &'[  NZ!  #g  V6  O[  :  !-(  (-(  *`  a !"1  R  eZ6  N  #$  %  7  *c  W6= h<  8  i  jDk hZ#2VbT+(% $m6"Pe  O%Qn+ $( ofp)$ M4 5 J&O+1 L(%0f HoO P=Q4 hZ#2>;(8 [...]... năng tương đương (đa hình) BIỂU ĐỒ MODULE Khái niệm tràn bộ nhớ đệm Phương pháp luận tràn bộ nhớ đệm Công cụ bảo mật tràn bộ nhớ đệm Bút kiểm tra tràn bộ nhớ đệm Biện pháp đối phó tràn bộ đệm Ví dụ tràn bộ nhớ đệm Phát hiện tràn bộ nhớ đệm Kiến Thức Cần Thiết Để Khai Thác Lỗi Tràn Bộ Đệm Trong Chương Trình Hiểu biết về hoạt động của bộ nhớ stack và heap Hiểu biết về cách hệ thống gọi công việc ở cấp độ... lười biếng Berkeley) BOON Stack Shield (Lá chắn ngăn xếp) BIỂU ĐỒ MODULE Khái niệm tràn bộ nhớ đệm Công cụ bảo mật tràn bộ nhớ đệm Bút kiểm tra tràn bộ nhớ đệm Biện pháp đối phó tràn bộ đệm Phòng Chống Tràn Bộ Đệm Phương pháp luận tràn bộ nhớ đệm Ví dụ tràn bộ nhớ đệm Phát hiện tràn bộ nhớ đệm Hướng dẫn sử dụng kiểm soát bộ mã Trình biên dịch kỹ thuật Hỗ trợ thư viện an toàn hơn C Vô hiệu hóa thực thi... hiểu được trong thời gian chạy chương trình giải mã.Bởi thế, bộ giải mã trở thành đa hình và rất khó để phát hiện BIỂU ĐỒ MODULE Khái niệm tràn bộ nhớ đệm phương pháp luận tràn bộ nhớ đệm Ngẫu nhiên chỉnh sửa LSB của con trỏ hướng tới khu vực của NOP công cụ bảo mật tràn bộ nhớ đệm bút kiểm tra tràn bộ nhớ đệm biện pháp đối phó tràn bộ đệm ví dụ tràn bộ nhớ đệm phát hiện tràn bộ nhớ đệm Xác Định Tràn. .. bị biên dịch (bởi nhà cung cấp gốc) với các biện pháp bảo mật cụ thể Khái niệm trà Phương pháp luận tràn bộ n nhớ đệm bộ nhớ đệm Công cụ bảo mật Bút kiểm tra tràn bộ nhớ tràn bộ nhớ đệm đệm Ví dụ tràn bộ nhớ đệm Biện pháp đối phó tràn b ộ đệm phát hiện tràn bộPhát hiệmtràn bộ nhớ đệm Tấn công tràn bộ đệm tận dụng các bài tập áp dụng mã hóa kém của các lập trình viên khi viết và xử lý các hàm chuỗi C... bảo mật Bút kiểmbtranhớ tràn bộ nhớ bộ nhớ mệm đệm Ví dụ tràn bộ nhớ đệm Biện pháp đối phó tràn bộ đệm Phát hiện tràn bộ nhớ đệm Lỗi Tràn Bộ Đệm Không Thể Kiểm Soát Đơn Giản Ví dụ của việc tràn ngăn xếp không thể kiểm soát /*Đây là một chương trình cho thấy một lỗi tràn không thể kiểm soát đơn giản trên ngăn xếp*/ Ví dụ của việc tràn heap không thể kiểm soát /*đơn giản nhất của việc tràn heap*/ /*sao... lỗi tràn bộ đệm cục bộ để đạt được quyền truy cập của siêu người dùng Sử dụng Netcat Tạo một cửa sau Sử dụng (UNIX cụ thể) inetd Sử dụng FTP ít quan trọng (TFTP) bao gồm cả Windows 2000 và một số UNIX đặc thù BIỂU ĐỒ MODULE Sử dụng Netcat để làm thô và kết nối tương tác Giao diện UNIX cụ thể Chụp lại một kết nối đầu cuối X tràn ộ tràn đ đ Khái niệm tràn bộ nhớ đệm Phương pháp luận tràn bộ nhớ đệm. .. trình nào là khai báo hai chuỗi biến và cấp phát bộ nhớ cho chúng “Tên” biến sẽ lấy 10 byte của bộ nhớ (mà sẽ cho phép nó giữ một chuỗi 10 ký tự) lệnh này trong Linux Mã Phân Tích “Các lệnh nguy hiểm tới hệ thống” có biến dài Trànbyte.ra bộ đệm 128 đầu Bạn phải hiểu rằng trong C, khối bộ nhớ cho các biến sẽ được đặt trực tiếp bên cạnh nhau trong không gian bộ nhớ ảo dành cho chương trình “Mã nhận được”,... với các công cụ biên dịch và sửa lỗi như gdb Kiến thức về lắp ráp và ngôn ngữ máy Kiến thức ngôn ngữ lập trình C và Perl Các Bước Tràn Bộ Đệm Bước 1 Tìm sự hiện diện và vị trí của lỗ hổng tràn bộ đệm Bước 3 Ghi đè lên địa chỉ quay về của hàm Bước 2 Ghi nhiều dữ liệu vào bộ đệm hơn mức mà nó có thể xử lý Bước 4 Thay đổi luồng thực hiện hàm bằng các mã hacker Tấn Công Một Chương Trình Thực Giả sử rằng... dung bộ nhớ Lỗi toàn diện xảy ra bằng cách sử dụng người dùng =“%n” Hình thức đúng Int func (char *user) { Fprint ( stdout, “%s”, user) ; } Gây Tràn Bộ Đệm Bằng Cách Sử Dụng Chuỗi Định Dạng Trong C, xét ví dụ của BoF sử dụng chuỗi định dạng có vấn đề Như thế nào nếu người dùng = “%500d ” Sẽ bỏ qua giới hạn “%400s” Sẽ tràn biến outbuf Phá Vỡ Stack Ý tưởng chung là gây ra tràn bộ đệm. ..thống phát hiện (IDSs) bằng cách tìm kiếm chữ ký trượt của NOP Kẻ tấn công các miếng đệm nhằm mục đích bắt đầu lỗi tràn bộ đệm bằng các lệnh dài hạn của NOP (một NOP chuyển động hoặc trượt) vi thế CPU sẽ không làm gì cả cho tới khi nó nhận được sự kiện chính” (trước “con trỏ quay về) ADMutate (bởi K2) chấp nhận một lỗi tràn bộ đệm nhằm khai thác như là đầu vào và ngẫu nhiên tạo . HO/2 Z0WB[4 >?>  >@  AB  CD  0DEF Sự  tràn  bộ  nhớ  đệm  (BoF). Tràn  bộ  nhớ  đệm  trên  stack  (ngăn  xếp) Tràn  bộ  nhớ  đệm  trên  heap Điều  khiển  stack Các  bước  tràn  bộ  nhớ  đệm Cách  thức  tấn  công  một  chương  trình thực Sự  phá  vỡ  stack Ví  dụ  của  tràn  bộ  nhớ  đệm Làm  cách  nào  khai  thác  sự  biến  đổi của  việc  tràn  bộ  nhớ  đệm Xác  định  tràn  bộ  nhớ  đệm Điều  kiện  kiểm  tra  tràn  bộ  nhớ  đệm trên  heap:  heap.exe Các  bước  kiểm  tra  việc  tràn  bộ  nhớ đệm  trên  stack  trong  chương  trình  sửa lỗi  OllyDbg Công  cụ  phát  hiện  tràn  bộ  nhớ  đệm Phòng  chống  tràn  bộ  nhớ  đệm Công  cụ  đối  phó  với  việc  tràn  bộ  nhớ đệm Bút  kiểm  tra  tràn  bộ  nhớ  đệm GHIE  AJ  0DEF Khái  niệm tràn  bộ  nhớ đệm Phương pháp  luận tràn  bộ  nhớ đệm Công  cụ bảo  mật tràn  bộ  nhớ Bút  kiểm tra  tràn  bộ nhớ  đệm Ví  dụ  tràn bộ  nhớ  đệm Biện  pháp đối  phó tràn  bộ đệm Phát  hiện tràn  bộ  nhớ đệm Lỗi  tràn  bộ  đệm  tổng  quát  xảy  ra  khi  một  bộ  nhớ  đệm  đã  được  phân  chia  cho  một  không  gian  lưu  trữ  cụ  thể  có chứa  nhiều  dữ  liệu  được  sao  chép  vào  lớn  hơn  mức  mà  nó  có  thể  xử  lý. Khi  chương  trình  được  biên  dịch  và  chạy,  nó  sẽ  chỉ  định  một  phần  của  bộ  nhớ  có  độ  dài  11  bytes  để  chứa  chuỗi tấn  công. Hàm  Strcpy  sẽ  sao  chép  chuỗi  “DDDDDDDDDDDDDD”  vào  chuỗi  tấn  công,  lúc  này  bộ  đệm  sẽ  vượt  quá  kích thước  11  bytes,  dẫn  tới  tràn  bộ  đệm. Đây  là  loại  dễ  bị  tổn thương  trong  hệ  thống dựa  trên  UNIX  và  NT. Tại  Sao  Các  Chương  Trình  Và  Ứng Dụng  Dễ  Bị  Tổn  Thương  ? Phương  thức  kiểm  tra  biên  không  được  thực hiện  đầy  đủ  hoặc,  trong  nhiều  trường  hợp, chúng  bị  bỏ  qua  hoàn  toàn. Ngôn  ngữ  lập  trình,  chẳng  hạn  như  C,  có  các lỗ  hổng  bảo  mật  trong  chính  chúng. Chương  trình  và  các  ứng  dụng  không  tuân  thủ đúng  các  hoạt  động  mà  chúng  được  lập  trình. Các  chức  năng  trong  ngôn  ngữ  lập  trình  C  như  strcat(),  strcpy(),  sprintf(), vsprintf(),  bcopy(),  gets()  và  scanf()  có  thể  bị  khai  thác  như  việc  chúng  không kiểm  tra  kích  thước  của  bộ  đệm. Tìm  Hiểu  Về  Stack Stack  sử  dụng  cơ  chế  Last-In- First-Out  (vào  sau  ra  trước)  để truyền  hàm  tham  số  và  tham chiếu  với  các  biến  cục  bộ. Nó  hoạt  động  như  một  bộ  đệm, giữ  tất  cả  các  thông  tin  mà  hàm cần. Được  tạo  ra  vào  thời  điểm  bắt đầu  của  hàm  và  giải  phóng  lúc kết  thúc  hàm. Phần dưới của  bộ nhớ BP  tại các  nơi bên trong khung stack Phần trên của  bộ \%](D P#Y%DQ \%](^ P#Y%^Q ]1(,)< ' V7_` 200 Các  điểm  SP  ở đây Hướng  đi vào Hướng  tăng của  stack nhớ K  9%  (+  . HO/2 Z0WB[4 >?>  >@  AB  CD  0DEF Sự  tràn  bộ  nhớ  đệm  (BoF). Tràn  bộ  nhớ  đệm  trên  stack  (ngăn  xếp) Tràn  bộ  nhớ  đệm  trên  heap Điều  khiển  stack Các  bước  tràn  bộ  nhớ  đệm Cách  thức  tấn  công  một  chương  trình thực Sự  phá  vỡ  stack Ví  dụ  của  tràn  bộ  nhớ  đệm Làm  cách  nào  khai  thác  sự  biến  đổi của  việc  tràn  bộ  nhớ  đệm Xác  định  tràn  bộ  nhớ  đệm Điều  kiện  kiểm  tra  tràn  bộ  nhớ  đệm trên  heap:  heap.exe Các  bước  kiểm  tra  việc  tràn  bộ  nhớ đệm  trên  stack  trong  chương  trình  sửa lỗi  OllyDbg Công  cụ  phát  hiện  tràn  bộ  nhớ  đệm Phòng  chống  tràn  bộ  nhớ  đệm Công  cụ  đối  phó  với  việc  tràn  bộ  nhớ đệm Bút  kiểm  tra  tràn  bộ  nhớ  đệm GHIE  AJ  0DEF Khái  niệm tràn  bộ  nhớ đệm Phương pháp  luận tràn  bộ  nhớ đệm Công  cụ bảo  mật tràn  bộ  nhớ Bút  kiểm tra  tràn  bộ nhớ  đệm Ví  dụ  tràn bộ  nhớ  đệm Biện  pháp đối  phó tràn  bộ đệm Phát  hiện tràn  bộ  nhớ đệm Lỗi  tràn  bộ  đệm  tổng  quát  xảy  ra  khi  một  bộ  nhớ  đệm  đã  được  phân  chia  cho  một  không  gian  lưu  trữ  cụ  thể  có chứa  nhiều  dữ  liệu  được  sao  chép  vào  lớn  hơn  mức  mà  nó  có  thể  xử  lý. Khi  chương  trình  được  biên  dịch  và  chạy,  nó  sẽ  chỉ  định  một  phần  của  bộ  nhớ  có  độ  dài  11  bytes  để  chứa  chuỗi tấn  công. Hàm  Strcpy  sẽ  sao  chép  chuỗi  “DDDDDDDDDDDDDD”  vào  chuỗi  tấn  công,  lúc  này  bộ  đệm  sẽ  vượt  quá  kích thước  11  bytes,  dẫn  tới  tràn  bộ  đệm. Đây  là  loại  dễ  bị  tổn thương  trong  hệ  thống dựa  trên  UNIX  và  NT. Tại  Sao  Các  Chương  Trình  Và  Ứng Dụng  Dễ  Bị  Tổn  Thương  ? Phương  thức  kiểm  tra  biên  không  được  thực hiện  đầy  đủ  hoặc,  trong  nhiều  trường  hợp, chúng  bị  bỏ  qua  hoàn  toàn. Ngôn  ngữ  lập  trình,  chẳng  hạn  như  C,  có  các lỗ  hổng  bảo  mật  trong  chính  chúng. Chương  trình  và  các  ứng  dụng  không  tuân  thủ đúng  các  hoạt  động  mà  chúng  được  lập  trình. Các  chức  năng  trong  ngôn  ngữ  lập  trình  C  như  strcat(),  strcpy(),  sprintf(), vsprintf(),  bcopy(),  gets()  và  scanf()  có  thể  bị  khai  thác  như  việc  chúng  không kiểm  tra  kích  thước  của  bộ  đệm. Tìm  Hiểu  Về  Stack Stack  sử  dụng  cơ  chế  Last-In- First-Out  (vào  sau  ra  trước)  để truyền  hàm  tham  số  và  tham chiếu  với  các  biến  cục  bộ. Nó  hoạt  động  như  một  bộ  đệm, giữ  tất  cả  các  thông  tin  mà  hàm cần. Được  tạo  ra  vào  thời  điểm  bắt đầu  của  hàm  và  giải  phóng  lúc kết  thúc  hàm. Phần dưới của  bộ nhớ BP  tại các  nơi bên trong khung stack Phần trên của  bộ \%](D P#Y%DQ \%](^ P#Y%^Q ]1(,)< ' V7_` 200 Các  điểm  SP  ở đây Hướng  đi vào Hướng  tăng của  stack nhớ K  9%  (+  . HO/2 Z0WB[4 >?>  >@  AB  CD  0DEF Sự  tràn  bộ  nhớ  đệm  (BoF). Tràn  bộ  nhớ  đệm  trên  stack  (ngăn  xếp) Tràn  bộ  nhớ  đệm  trên  heap Điều  khiển  stack Các  bước  tràn  bộ  nhớ  đệm Cách  thức  tấn  công  một  chương  trình thực Sự  phá  vỡ  stack Ví  dụ  của  tràn  bộ  nhớ  đệm Làm  cách  nào  khai  thác  sự  biến  đổi của  việc  tràn  bộ  nhớ  đệm Xác  định  tràn  bộ  nhớ  đệm Điều  kiện  kiểm  tra  tràn  bộ  nhớ  đệm trên  heap:  heap.exe Các  bước  kiểm  tra  việc  tràn  bộ  nhớ đệm  trên  stack  trong  chương  trình  sửa lỗi  OllyDbg Công  cụ  phát  hiện  tràn  bộ  nhớ  đệm Phòng  chống  tràn  bộ  nhớ  đệm Công  cụ  đối  phó  với  việc  tràn  bộ  nhớ đệm Bút  kiểm  tra  tràn  bộ  nhớ  đệm GHIE  AJ  0DEF Khái  niệm tràn  bộ  nhớ đệm Phương pháp  luận tràn  bộ  nhớ đệm Công  cụ bảo  mật tràn  bộ  nhớ Bút  kiểm tra  tràn  bộ nhớ  đệm Ví  dụ  tràn bộ  nhớ  đệm Biện  pháp đối  phó tràn  bộ đệm Phát  hiện tràn  bộ  nhớ đệm Lỗi  tràn  bộ  đệm  tổng  quát  xảy  ra  khi  một  bộ  nhớ  đệm  đã  được  phân  chia  cho  một  không  gian  lưu  trữ  cụ  thể  có chứa  nhiều  dữ  liệu  được  sao  chép  vào  lớn  hơn  mức  mà  nó  có  thể  xử  lý. Khi  chương  trình  được  biên  dịch  và  chạy,  nó  sẽ  chỉ  định  một  phần  của  bộ  nhớ  có  độ  dài  11  bytes  để  chứa  chuỗi tấn  công. Hàm  Strcpy  sẽ  sao  chép  chuỗi  “DDDDDDDDDDDDDD”  vào  chuỗi  tấn  công,  lúc  này  bộ  đệm  sẽ  vượt  quá  kích thước  11  bytes,  dẫn  tới  tràn  bộ  đệm. Đây  là  loại  dễ  bị  tổn thương  trong  hệ  thống dựa  trên  UNIX  và  NT. Tại  Sao  Các  Chương  Trình  Và  Ứng Dụng  Dễ  Bị  Tổn  Thương  ? Phương  thức  kiểm  tra  biên  không  được  thực hiện  đầy  đủ  hoặc,  trong  nhiều  trường  hợp, chúng  bị  bỏ  qua  hoàn  toàn. Ngôn  ngữ  lập  trình,  chẳng  hạn  như  C,  có  các lỗ  hổng  bảo  mật  trong  chính  chúng. Chương  trình  và  các  ứng  dụng  không  tuân  thủ đúng  các  hoạt  động  mà  chúng  được  lập  trình. Các  chức  năng  trong  ngôn  ngữ  lập  trình  C  như  strcat(),  strcpy(),  sprintf(), vsprintf(),  bcopy(),  gets()  và  scanf()  có  thể  bị  khai  thác  như  việc  chúng  không kiểm  tra  kích  thước  của  bộ  đệm. Tìm  Hiểu  Về  Stack Stack  sử  dụng  cơ  chế  Last-In- First-Out  (vào  sau  ra  trước)  để truyền  hàm  tham  số  và  tham chiếu  với  các  biến  cục  bộ. Nó  hoạt  động  như  một  bộ  đệm, giữ  tất  cả  các  thông  tin  mà  hàm cần. Được  tạo  ra  vào  thời  điểm  bắt đầu  của  hàm  và  giải  phóng  lúc kết  thúc  hàm. Phần dưới của  bộ nhớ BP  tại các  nơi bên trong khung stack Phần trên của  bộ \%](D P#Y%DQ \%](^ P#Y%^Q ]1(,)< ' V7_` 200 Các  điểm  SP  ở đây Hướng  đi vào Hướng  tăng của  stack nhớ K  9%  (+ 

Ngày đăng: 23/10/2014, 07:50

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan