Understanding the Buffer OverrunIt would be impossible in one chapter, dịch - Understanding the Buffer OverrunIt would be impossible in one chapter, Việt làm thế nào để nói

Understanding the Buffer OverrunIt

Understanding the Buffer Overrun
It would be impossible in one chapter, or even one book, to adequately cover all the possible means of attacking a software product. After all, a spreadsheet shared over your home's wireless network is very different from a multiplayer video game played over the Web or a distributed Department of Defense computer system. The operating systems and the technologies are unique and therefore will usually have different security vulnerabilities. There is one common problem, however, that is a security issue in any software productthe buffer overrun.

In the Generic Code Review Checklist in Chapter 6, you learned about Data Reference Errorsbugs caused by using a variable, constant, array, string, or record that hasn't been properly declared or initialized for how it's being used and referenced." A buffer overrun is such an error. It is the result of poor programming, enabled by many languages such as C and C++, that lack safe string handling functions. Consider the sample C code in Listing 13.1.

Listing 13.1. Example of a Simple Buffer Overflow
1: void myBufferCopy(char * pSourceStr) {
2: char pDestStr[100];
3: int nLocalVar1 = 123;
4: int nLocalVar2 = 456;
5: strcpy(pDestStr, pSourceStr);
...
6: }
7: void myValidate()
8: {
9: /*
10: Assume this function's code validates a user password
11: and grants access to millions of private customer records
12:/*
13: }



Do you see the problem? The size of the input string, pSourceStr, is unknown. The size of the destination string, pDestStr is 100 bytes. What happens if the source string's length is greater than 100? As the code is written, the source string is copied right into the destination string, no matter what the length. If it's more than 100 bytes, it will fill the destination string and then continue overwriting the values stored in the local variables.

Worse, however, is if the source string is long enough, it could also overwrite the return address of the function myBufferCopy and the contents of the executable code in the function myValidate(). In this example, a competent hacker could enter a super long password, stuffed with hand-written assembly code instead of alphanumeric ASCII characters, and override the intended password validation performed in myValidatepossibly gaining access to the system. Suddenly, those code reviews described in Chapter 6 take on a whole new meaning!

NOTE

This is a greatly simplified example of a buffer overrun to demonstrate the potential problem. Exactly what data or program code gets overwritten, or even if it will be overwritten or executed at all, depends on the compiler and the CPU. But, of course, the hackers know that.



Buffer overruns caused by improper handling of strings are by far the most common coding error that can result in a security vulnerability, but any of the error classes described in Chapter 6 are potential problems. As a software tester, your job is to find these types of bugs as early as possible. A code review would find them early in the development cycle, but there's an even better meansand that's to prevent them from happening in the first place.
0/5000
Từ: -
Sang: -
Kết quả (Việt) 1: [Sao chép]
Sao chép!
Tìm hiểu về đệm OverrunNó sẽ là không thể trong một chương, hoặc thậm chí một cuốn sách, đầy đủ bao gồm tất cả các phương tiện có thể tấn công một sản phẩm phần mềm. Sau khi tất cả, một bảng tính được chia sẻ qua mạng không dây nhà của bạn là rất khác nhau từ một trò chơi video nhiều người chơi được trên Web hay một hệ thống phân phối máy tính của bộ quốc phòng. Hệ điều hành và các công nghệ là duy nhất và do đó thường có lỗ hổng bảo mật khác nhau. Có một vấn đề phổ biến, Tuy nhiên, đó là một vấn đề an ninh trong bất kỳ phần mềm productthe bộ đệm overrun.Trong các chung mã xem xét danh sách kiểm tra trong chương 6, bạn đã học được về dữ liệu tham khảo Errorsbugs gây ra bằng cách sử dụng một biến liên tục, mảng, Chuỗi hoặc hồ sơ đã không được đúng tuyên bố hoặc khởi tạo cho làm thế nào nó đã được sử dụng và tham chiếu." Một bộ đệm overrun là một lỗi. Nó là kết quả của người nghèo lập trình, kích hoạt bởi nhiều ngôn ngữ như C và c + +, thiếu an toàn chuỗi xử lý chức năng. Xem xét mã mẫu C 13.1 danh sách.Danh sách 13.1. Ví dụ về một lỗi tràn bộ đệm đơn giản1: vô hiệu myBufferCopy(char * pSourceStr) {}2: char pDestStr [100];3: int nLocalVar1 = 123;4: int nLocalVar2 = 456;5: strcpy (pDestStr, pSourceStr);...6:}7: void myValidate()8: {}9: /*10: giả sử này chức năng mã xác nhận mật khẩu người dùng11: và cấp quyền truy cập vào hàng triệu khách hàng riêng hồ sơ12: / *13:}Bạn có thấy vấn đề? Kích thước của các chuỗi đầu vào, pSourceStr, chưa được biết. Kích thước của các điểm đến chuỗi, pDestStr là 100 byte. Điều gì xảy ra nếu chiều dài của chuỗi nguồn lớn hơn 100? Vì các mã được viết, Chuỗi mã nguồn được sao chép vào chuỗi điểm đến, không có vấn đề gì chiều dài. Nếu nó là nhiều hơn 100 byte, nó sẽ điền vào chuỗi điểm đến và sau đó tiếp tục ghi đè lên các giá trị được lưu trữ trong các biến địa phương.Tồi tệ hơn, Tuy nhiên, là nếu dây nguồn là đủ lâu, nó cũng có thể ghi đè địa chỉ trả lại của myBufferCopy chức năng và nội dung của mã thực thi trong myValidate() chức năng. Trong ví dụ này, một hacker có thẩm quyền có thể nhập mật khẩu siêu dài, nhồi với viết tay lắp ráp mã thay vì ký tự ASCII, và ghi đè lên xác nhận mật khẩu dự định thực hiện trong myValidatepossibly đạt được quyền truy cập vào hệ thống. Đột nhiên, những đánh giá mã được diễn tả trong chương 6 có một ý nghĩa hoàn toàn mới!LƯU ÝĐây là một ví dụ rất nhiều đơn giản của một bộ đệm tràn ngập để chứng minh vấn đề tiềm năng. Chính xác những gì mã dữ liệu hoặc chương trình được ghi đè, hoặc ngay cả khi nó sẽ được ghi đè hoặc thực hiện ở tất cả, phụ thuộc vào trình biên dịch và CPU. Nhưng, tất nhiên, các tin tặc biết rằng.Bộ đệm nghiêm do không đúng cách xử lý của dây là bởi đến nay lỗi mã hóa phổ biến nhất mà có thể gây ra một lỗ hổng bảo mật, nhưng bất kỳ của các lớp học lỗi được mô tả trong chương 6 vấn đề tiềm năng. Như một thử phần mềm, công việc của bạn là để tìm các loại lỗi càng sớm càng tốt. Một xem xét mã nào tìm thấy chúng sớm trong chu kỳ phát triển, nhưng có một meansand tốt hơn là để ngăn chặn chúng từ xảy ra ở nơi đầu tiên.
đang được dịch, vui lòng đợi..
Kết quả (Việt) 2:[Sao chép]
Sao chép!
Hiểu về tràn bộ đệm
Nó sẽ là không thể trong một chương, hoặc thậm chí một cuốn sách, để tương xứng với tất cả các phương tiện có thể tấn công một sản phẩm phần mềm. Sau khi tất cả, một bảng tính được chia sẻ qua mạng không dây của bạn là rất khác nhau từ một video game multiplayer chơi trên Web hoặc một cục phân Quốc phòng hệ thống máy tính. Các hệ điều hành và các công nghệ này là duy nhất và do đó thường sẽ có các lỗ hổng bảo mật khác nhau. Có một vấn đề phổ biến, tuy nhiên, đó là một vấn đề an ninh trong bất kỳ bộ đệm phần mềm productthe tràn ngập. Trong Code Review Checklist Generic trong Chương 6, bạn đã học về liệu tham khảo Errorsbugs gây ra bằng cách sử dụng một biến, hằng, mảng, chuỗi, hoặc hồ sơ mà đã không được khai báo đúng hoặc khởi tạo cho nó như thế nào đang được sử dụng và tham khảo. "Một tràn bộ đệm là một lỗi như vậy. Đó là kết quả của chương trình kém, kích hoạt bằng nhiều ngôn ngữ như C và C ++, thiếu các chức năng xử lý chuỗi an toàn . Hãy xem xét các mẫu mã C trong Liệt kê 13.1. Liệt kê 13.1 Ví dụ về một tràn bộ đệm đơn giản. 1: void myBufferCopy (char * pSourceStr) {2: char pDestStr [100]; 3: int nLocalVar1 = 123; 4: int nLocalVar2 = 456 ; 5: strcpy (pDestStr, pSourceStr); ... 6:} 7: void myValidate () 8: {9: / * 10: Giả sử mã của chức năng này xác nhận một mật khẩu người dùng 11: và cho phép truy cập tới hàng triệu hồ sơ khách hàng tin 12: / * 13:} Bạn có thấy vấn đề kích thước của chuỗi đầu vào, pSourceStr, là không rõ Các kích thước của chuỗi đích, pDestStr là 100 byte?.. Điều gì xảy ra nếu chiều dài chuỗi mã nguồn là lớn hơn 100? Theo mã được viết, các chuỗi mã nguồn được sao chép ngay vào chuỗi đích, không có vấn đề gì chiều dài. Nếu đó là hơn 100 byte, nó sẽ điền vào chuỗi đích và sau đó tiếp tục ghi đè lên các giá trị được lưu trữ trong các biến địa phương. Tệ hơn nữa, tuy nhiên, là nếu chuỗi nguồn là đủ lâu, nó cũng có thể ghi đè lên địa chỉ trả về của hàm myBufferCopy và các nội dung của mã thực thi trong hàm myValidate (). Trong ví dụ này, một hacker có thẩm quyền có thể nhập mật khẩu siêu dài, nhồi với mã lắp ráp viết tay thay vì ký tự ASCII chữ và số, và ghi đè lên các mật khẩu xác nhận dự định thực hiện trong myValidatepossibly đạt được quyền truy cập vào hệ thống. Đột nhiên, những đánh giá mã được mô tả trong Chương 6 đi trên một ý nghĩa hoàn toàn mới! Chú ý Đây là một ví dụ rất đơn giản về tràn bộ đệm để chứng minh các vấn đề tiềm năng. Chính xác những gì dữ liệu hoặc mã chương trình được ghi đè, hoặc thậm chí nếu nó sẽ được ghi đè hoặc thực hiện tại tất cả các, phụ thuộc vào trình biên dịch và CPU. Nhưng, tất nhiên, các tin tặc biết rằng. Overruns đệm do xử lý không đúng cách của dây là bởi đến nay các lỗi mã hóa phổ biến nhất mà có thể dẫn đến một lỗ hổng bảo mật, nhưng bất kỳ của các lớp lỗi được mô tả trong chương 6 là những vấn đề tiềm năng. Là một thử nghiệm phần mềm, công việc của bạn là tìm những loại lỗi càng sớm càng tốt. Một xem xét mã sẽ tìm thấy chúng sớm trong chu kỳ phát triển, nhưng có một meansand thậm chí tốt hơn đó là để ngăn chặn chúng từ xảy ra ở nơi đầu tiên.
































đang được dịch, vui lòng đợi..
 
Các ngôn ngữ khác
Hỗ trợ công cụ dịch thuật: Albania, Amharic, Anh, Armenia, Azerbaijan, Ba Lan, Ba Tư, Bantu, Basque, Belarus, Bengal, Bosnia, Bulgaria, Bồ Đào Nha, Catalan, Cebuano, Chichewa, Corsi, Creole (Haiti), Croatia, Do Thái, Estonia, Filipino, Frisia, Gael Scotland, Galicia, George, Gujarat, Hausa, Hawaii, Hindi, Hmong, Hungary, Hy Lạp, Hà Lan, Hà Lan (Nam Phi), Hàn, Iceland, Igbo, Ireland, Java, Kannada, Kazakh, Khmer, Kinyarwanda, Klingon, Kurd, Kyrgyz, Latinh, Latvia, Litva, Luxembourg, Lào, Macedonia, Malagasy, Malayalam, Malta, Maori, Marathi, Myanmar, Mã Lai, Mông Cổ, Na Uy, Nepal, Nga, Nhật, Odia (Oriya), Pashto, Pháp, Phát hiện ngôn ngữ, Phần Lan, Punjab, Quốc tế ngữ, Rumani, Samoa, Serbia, Sesotho, Shona, Sindhi, Sinhala, Slovak, Slovenia, Somali, Sunda, Swahili, Séc, Tajik, Tamil, Tatar, Telugu, Thái, Thổ Nhĩ Kỳ, Thụy Điển, Tiếng Indonesia, Tiếng Ý, Trung, Trung (Phồn thể), Turkmen, Tây Ban Nha, Ukraina, Urdu, Uyghur, Uzbek, Việt, Xứ Wales, Yiddish, Yoruba, Zulu, Đan Mạch, Đức, Ả Rập, dịch ngôn ngữ.

Copyright ©2024 I Love Translation. All reserved.

E-mail: