INSIDE THE ATTACK BUFFER tràn: cơ chế, phương pháp, và PHÒNG Mark E. Donaldson 03 tháng 4 2002 GSEC Phiên bản 1.3 TÓM TẮT Mục tiêu của nghiên cứu này là để có một bên trong cuộc tấn công tràn bộ đệm và thu hẹp khoảng cách giữa "mô tả tài khoản" và "tài khoản kỹ thuật chuyên sâu". Mục đích là để cung cấp một hợp lý, chi tiết, và kỹ thuật. giải thích về những vấn đề và khai thác có thể được hiểu rõ tất cả, bao gồm cả những người có chút nền tảng về cơ chế và phương pháp luận của các ứng dụng lập trình. quyền Chúng tôi sẽ bắt đầu bằng cách nhìn vào "vấn đề" và problemfull "cơ chế", và sau đó điều tra "có nghĩa là" và "phương pháp". Dựa trên những gì chúng ta thấy, chúng tôi sẽ quan tâm an ninh, chắc chắn nó nằm trong khả năng realmretainsof rằng cuộc tấn công tràn bộ đệm được giảm đến một mức độ vô nghĩa thông qua đúng kết luận với các khuyến nghị, và một trình đơn cho "phòng ngừa". Hy vọng rằng đây cách tiếp cận cũng có thể giúp thu hẹp khoảng cách giữa "kiến thức" và "hiểu biết". Mặc dù nó có thể không bao giờ có thể tẩy thế giới này hiểu biết. Robert Louis StevensonAuthoronce đã viết: "Hãy nhìn vào chính mình. Bạn có thể là một bác sĩ, một người đàn ông chữa bệnh, với những điều đôi mắt đã thấy? Có rất nhiều kiến thức trong đôi mắt, nhưng không có understanding.1 "Cộng đồng công nghệ phải di chuyển từ đấu tranh chống các cuộc tấn công tràn bộ đệm phòng thủ để chiến đấu với họ tấn công. Để làm điều này, họ phải chuyển đổi kiến thức của họ vào sự hiểu biết. VẤN ĐỀ 2002, đệm có vấn đề Instituteoverruns2 liên quan đến lập trình C mô hình toàn vẹn dữ liệu ngôn ngữ lần đầu tiên được công nhận vào đầu năm 1973 cũng được biết đến đầu tiên khai thác của lỗ hổng này xảy ra vào năm 1988 khi tốt tài liệu và Internet nổi tiếng mòn tắt máy hơn 6.000 hệ thống chỉ trong vài giờ ngắn ngủi, sử dụng một bộ đệm không được kiểm soát khởi tạo bởi được () gọi chức năng trong fingerd quá trình daemon. Mặc dù có lịch sử lâu dài này và các phương pháp phòng ngừa đơn giản, lỗi tràn bộ đệm tiếp tục là một bảo mật máy tính quan trọng và nổi bật mối quan tâm ngày nay. Ví dụ, vấn đề tràn bộ đệm được liên quan đến © SANS 1 Robert Louis Stevenson từ "The Body Snatcher" được xuất bản vào năm 1881. 2 tràn bộ đệm đã giả định nhiều tên khác nhau trong những năm qua. Chúng bao gồm đệm tràn ngập, chồng bị tàn phá, và tràn stack. Trong thực tế, tất cả các điều khoản chia sẻ cùng một định nghĩa và có thể được sử dụng đồng nghĩa và thay thế cho nhau. Ngoài ra, tràn bộ đệm khai thác thường được gọi là "chồng đập" theo cách nói ngày nay. 2003/02/06 Trang 1 của 24 © SANS Institute năm 2002, Là một phần của Reading Room bảo mật thông tin. Tác giả giữ toàn quyền. năm của Sans "Top 20" vulnerabilities.3 Nếu một phiêu lưu đến SuSE Linux trang web, họ sẽ tìm thấy 22 lỗ hổng tràn bộ đệm kể từ tháng Giêng năm 2001 đòi hỏi phải vá (xem bảng I). . Ngoài ra, trong số 44 khuyến cáo CERT công bố từ năm 1997 đến năm 1999, 24 có liên quan đến các vấn đề tràn bộ đệm BẢNG tôi BUFFER lỗ hổng tràn SUSE Linux ngày dễ bị tổn thương 2002/03/12 lỗi tràn bộ đệm trong thư viện zlib. 2002/04/03 tràn bộ đệm trong mực 28.02.2002revised: tràn bộ đệm trong cupsd 2002/02/28 tràn bộ đệm trong mod_php4 và mod php 25.02.2002buffer tràn trong cupsd tràn 25.01.2002buffer trong rsync tràn bộ đệm trong rsync 16.01.2002buffer tràn tham nhũng trong / usr / bin / tại quyền 07.01.2002buffer tràn trong mutt 24,12 .2001buffer tràn trong glibc globbing functionsfull vấn đề 03.12.2001buffer tràn trong openssh 28.11.2001buffer tràn trong wuftpd 2001/10/10 tràn trong lpd / lprold 20.09.2001buffer tràn trong WindowMaker 03.09.2001daemon tràn bộ đệm (nkitb) giữ 23.08.2001signedness tràn bộ đệm trong sendmail 2001/08/17 fetchmail tràn bộ đệm 2001/07/24 (xli) tràn bộ đệm, địa phương + từ xa 18.04.2001exploitable tràn bộ đệm trong sudo 09.04.2001xntpd khai thác từ xa lỗi tràn bộ đệm 27.03.2001buffer tràn trong eperl Tác giả tràn 22.03.2001one-byte bộ đệm trong bsd- ftpd và hẹn giờ tràn 31.01.2001buffer trong bind8 (vấn đề mới; Tháng 1 năm 2001) kéo dài overruns2002 đệm, thường trú và để lại trong mã chương trình thường do lỗi tràn bộ đệm Institutevulnerability và tấn công chỉ còn lại một cách lỏng lẻo và không chính thức ghi nhận trong các tài liệu. Từ này có thể kết luận vấn đề là "lười biếng", "cẩu thả", hoặc lập trình "không quan tâm", hoặc các trình biên dịch hiện đại mà không thực hiện nguyên vẹn hoặc kiểm tra giới hạn về nguồn đầu vào hay đầu ra máy hướng dẫn. Tuy nhiên, những quan điểm này có thể là một chút quá đơn giản. Các gốc rễ của vấn đề có thể chạy sâu hơn. Ví dụ, mặc dù tỷ lệ hiện nay của họ, nói chung chưa được hiểu rõ. Điều này có thể giải thích tại sao lỗ hổng tràn tiếp tục xuất hiện trong các ứng dụng phần mềm mới. SANS là cần thiết ở đây. Thật vậy, lỗi tràn bộ đệm và khai thác Một số làm rõ © vấn đề là cũng được biết đến. Thật không may, "nổi tiếng" và "hiểu rõ" thường là hai quan điểm hoàn toàn khác nhau của cùng một điều. Ví dụ, hầu hết các cuốn sách, bài báo, hoặc giấy trắng trị giá muối của nó tập trung vào bảo mật máy tính , bao gồm 3 W2-ISAPI mở rộng tràn bộ đệm, U1-đệm tràn trong RPC dịch vụ, điểm yếu U3-Bind, U5-LPD (giao thức in ấn từ xa daemon), và U6-sadmind và mountd. 2003/02/06 Trang 2 trong 24 © SANS Institute năm 2002, Là một phần của Reading Room bảo mật thông tin. Tác giả giữ toàn quyền. đề cập đến lỗ hổng tràn bộ đệm và các yếu tố cho phép của họ. Họ thường thậm chí biện pháp can thiệp tại chỗ hoặc phòng thủ chống lại họ. Tuy nhiên, họ thường tránh thảo luận hoặc mô tả các chi tiết phức tạp hoặc các cơ chế phức tạp của sự nghiệp của họ và sử dụng thao tác của họ trong điều kiện có thể dễ dàng được hiểu bởi những người mới hoặc thiếu kinh nghiệm lập trình, quản trị hệ thống, hoặc học bảo mật máy tính hoặc hiệu trưởng. Chắc chắn, một số tài khoản chi tiết của khai thác lỗi tràn bộ đệm đã được viết. Chúng được trích dẫn bởi Nicole Larock Decker trong giấy GSEC của cô "tràn bộ đệm: Tại sao, như thế nào và phòng ngừa". Tuy nhiên, các tài khoản này. được viết bởi các lập trình đặc biệt xuất sắc, và có lẽ quanh co, đã chọn để nhảy thẳng vào các chi tiết của máy ở mức độ thấp và mã lắp ráp cần thiết để thực hiện việc khai thác tràn. Một độc giả điển hình của các tài khoản này thường trở thành quyền bị choáng ngợp bởi đoạn thứ ba, và đặt tài liệu để nghỉ ngơi. CƠ CHẾ đầy đủ 1997 nghiên cứu "Stack Smashing VulnerabilitiesretainsInThe Hệ điều hành UNIX." Tuy nhiên, lỗ hổng này không chỉ giới hạn trong C hoặc UNIX. Thật vậy, cả hai DilDog lỗ hổng tràn bộ đệm thường được cho là do ảnh hưởng kết hợp của các tính năng cho phép bảo mật của hệ điều hành UNIX và các khuyết tật trong C ngôn ngữ lập trình. Như vậy là tiền đề cho rằng Nathan Smith trong mình tràn "và" Khai thác Windows NT4 Tác giả đệm vượt. "Bài báo" Windows và David Litchfield đã chứng minh có thể được khai thác sử dụng có hiệu quả chống lại các nhân Windows NT trong các giấy tờ tương ứng của họ "The Tao của Windows đệm Bắt đầu NT tràn bộ đệm để Finish "cho thấy vấn đề hiện tại và có thể trong MFC4 là tốt. Do đó, this2002, giấy views tràn bộ đệm như một ngôn ngữ và một hệ điều hành vấn đề độc lập. Tập đoàn Microsoft xác định cuộc tấn công tràn bộ đệm như sau: Một lỗi tràn bộ đệm attackInstituteisan tấn công, trong đó một người dùng độc hại khai thác một bộ đệm không được kiểm soát trong một chương trình và ghi đè các chương trình mã với dữ liệu của mình. Nếu các mã chương trình được ghi đè bằng mã thực thi mới, hiệu quả là thay đổi hoạt động của chương trình là quyết định bởi những kẻ tấn công. Nếu ghi đè bằng các dữ liệu khác, các tác động có thể là để làm cho chương trình bị lỗi. Kể từ khi Microsoft đã sản xuất chia sẻ công bằng của họ về lỗ hổng tràn bộ đệm trong những năm qua, SANS họ cần phải thành thạo về vấn đề này và chúng ta không nên nghi ngờ về tính hợp lệ của © Mô tả này. Vì vậy, chúng tôi sẽ sử dụng như làm việc chính thức của chúng tôi định nghĩa. Nhưng chính xác điều này có nghĩa là gì? Và, làm thế nào để chúng ta đạt được điều đó? 4 MFC là viết tắt của Microsoft Foundation Class, C của Microsoft ++ thư viện OOP.
đang được dịch, vui lòng đợi..