In 2002, Microsoft began an initiative to identify the common C and C+ dịch - In 2002, Microsoft began an initiative to identify the common C and C+ Việt làm thế nào để nói

In 2002, Microsoft began an initiat

In 2002, Microsoft began an initiative to identify the common C and C++ functions that were prone to buffer overrun coding errors. These functions are not "bad" by themselves, but to be used securely they require extensive error checking on the part of the programmer. If that error checking is neglected (and it often is), the code will have a security vulnerability. Given the risk of this oversight, it was decided that it would be best to develop and promote a new set of functions to replace those prone to problems with a robust, thoroughly tested, and documented set of new ones.

These new functions, called Safe String Functions, are available from Microsoft for the Windows XP SP1 and later versions of the Windows DDK and Platform SDK. Many other commercial and freeware libraries that implement "safe strings" are available for common operating systems, processors, and compilers.

The following list (adapted from the article, "Using Safe String Functions," on msdn.microsoft.com/library) explains some of the benefits of using the new functions:

Each function receives the size of the destination buffer as input. The function can thus ensure that it does not write past the end of the buffer.

The functions null-terminate all output strings, even if the operation truncates the intended result. The code performing an operation on the returned string can safely assume that it will eventually encounter a nulldenoting the string's end. The data prior to the null will be valid and the string won't run on, indefinitely.

All functions return an NTSTATUS value, with only one possible success code. The calling function can easily determine if the function succeeded in performing its operation.

Each function is available in two versions. One supports single-byte ASCII characters and the other, double-byte Unicode characters. Remember from Chapter 10, "Foreign-Language Testing," that to support all the letters and symbols in multiple foreign languages, characters need to take up more than one byte of space.

Table 13.1 shows a list of the unsafe functions and the safe functions that replace them. When you and your team are performing code reviews or white-box testing, be on the lookout for the unsafe functions and how they are used. Obviously, your team's programmers should be using the safe versions, but, if not, your code reviews will need to be performed with much more rigor to ensure that any possible security vulnerabilities are addressed.

Table 13.1. The Old "Unsecure" C String Functions and Their New "Secure" Replacements Old "Unsafe" Functions
New "Safe" Functions
Purpose

strcat
wcscat


RtlStringCbCat
RtlStringCbCatEx
RtlStringCchCat
RtlStringCchCatEx


Concatenate two strings.

strncat
wcsncat


RtlStringCbCatN
RtlStringCbCatNEx
RtlStringCchCatN
RtlStringCchCatNEx


Concatenate two byte-counted strings, while limiting the size of the appended string.

Strcpy
wcscpy


RtlStringCbCopy
RtlStringCbCopyEx
RtlStringCchCopy
RtlStringCchCopyEx


Copy a string into a buffer.

strncpy
wcsncpy


RtlStringCbCopyN
RtlStringCbCopyNEx
RtlStringCchCopyN
RtlStringCchCopyNEx


Copy a byte-counted string into a buffer, while limiting the size of the copied string.

strlen
wcslen


RtlStringCbLength
RtlStringCchLength


Determine the length of a supplied string.

sprintf
swprintf
_snprintf
_snwprintf


RtlStringCbPrintf
RtlStringCbPrintfEx
RtlStringCchPrintf
RtlStringCchPrintfEx


Create a formatted text string that is based on a format string and a set of additional function arguments.

vsprintf
vswprintf
_vsnprintf
_vsnwprintf


RtlStringCbVPrintf
RtlStringCbVPrintfEx
RtlStringCchVPrintf
RtlStringCchVPrintfEx


Create a formatted text string that is based on a format string and one additional function argument.





THE JPEG VIRUS
What could be more secure than a picture? After all, it's data, not executable code. That false assumption was broken in September of 2004 when a virus was discovered that was embedded in several pornographic JPEG images posted to an Internet newsgroup. When viewed, a virus was downloaded to the user's PC. No one thought it was possible, but it was. The problem lied in an exploitation of a buffer overflow.

The JPEG file format, besides storing the picture elements, also allows for the storing of embedded comments. Many software packages for editing and organizing pictures use this field for annotating the picture"Our family at the beach," "House for Sale," and so forth. This comment field starts with a hex value of 0xFFFE followed by a two-byte value. This value specifies the length of the comment, plus 2 bytes (for the field length). Using this encoding method, a comment of up to 65,533 bytes would be valid. If there is no comment, then the field is supposed to contain a value of 2. The problem is that if the value is an illegal entry of 0 or 1, a buffer overflow occurs.

It turns out that the code used to interpret the JPEG data and turn it into a viewable picture normalized the length by subtracting off the 2 bytes before it read out the actual comment. If the length byte was set to 0, subtracting off 2 yielded a length of -2. The code was written to handle positive integers and interpreted the negative 2 as a positive 4GB. The next 4GB of "comment" data was then loaded, improperly overwriting valid data and program. If that "comment" data was carefully crafted, hand coded, assembly, it could be used to gain access to the viewer's PC. Microsoft had to issue a critical update to all the components that loaded and viewed JPEG images.





Software vulnerabilities can occur where you never expect them. For this reason, it's imperative to consider software security in all aspects of a software product or system. From a user perspective, security is measure of quality. They may not ask for it, but they know they want it, and will consider lack of software security a bug (a huge one) if they don't have it. We'll close out this chapter with a brief visit to another aspect of computer security, one that's related to privacy, computer forensics.

0/5000
Từ: -
Sang: -
Kết quả (Việt) 1: [Sao chép]
Sao chép!
Năm 2002, Microsoft đã bắt đầu một sáng kiến để xác định phổ biến C và chức năng C++ được dễ bị để đệm tràn ngập mã lỗi. Các chức năng này không phải là "xấu" của mình, nhưng được sử dụng một cách an toàn mà họ yêu cầu kiểm tra trên một phần của các lập trình viên lỗi rộng rãi. Nếu kiểm tra lỗi đó là bỏ rơi (và đó thường là), mã sẽ có một lỗ hổng bảo mật. Do nguy cơ này giám sát, nó đã được quyết định nó sẽ là tốt nhất để phát triển và thúc đẩy một tập mới của các chức năng để thay thế những dễ bị các vấn đề với một mạnh mẽ, kiểm tra kỹ lưỡng, và ghi lại các thiết lập của những cái mới.Những chức năng mới, được gọi là an toàn chuỗi chức năng, có sẵn từ Microsoft cho Windows XP SP1 và các phiên bản mới hơn của Windows DDK và nền tảng SDK. Nhiều thương mại và phần mềm miễn phí thư viện khác mà thực hiện "dây an toàn" có sẵn cho hệ điều hành phổ biến, bộ vi xử lý, và trình biên dịch.Danh sách sau đây (chuyển thể từ bài viết, "Bằng cách sử dụng an toàn chuỗi chức năng," trên msdn.microsoft.com/library) giải thích một số những lợi ích của việc sử dụng các chức năng mới:Mỗi chức năng nhận được kích thước của bộ đệm điểm đến như đầu vào. Các chức năng như vậy có thể đảm bảo rằng nó không phải viết qua kết thúc của bộ đệm.Các chức năng null-chấm dứt tất cả các chuỗi sản lượng, ngay cả khi các hoạt động truncates kết quả dự định. Mã thực hiện một chiến dịch trên chuỗi trả lại một cách an toàn có thể giả định rằng nó sẽ cuối cùng gặp phải một nulldenoting kết thúc của chuỗi. Dữ liệu trước khi null sẽ được hợp lệ và chuỗi sẽ không chạy trên, vô thời hạn.Tất cả chức năng trả về một giá trị NTSTATUS, với một trong những chỉ có thể thành công mã. Chức năng gọi điện thoại có thể dễ dàng xác định nếu các chức năng thành công trong việc thực hiện các hoạt động.Mỗi chức năng có sẵn trong hai phiên bản. Một trong những hỗ trợ ký tự ASCII đơn-byte và khác, đôi-byte ký tự Unicode. Nhớ từ chương 10, "Ngôn ngữ nước ngoài thử," để hỗ trợ tất cả các chữ cái và các ký hiệu bằng nhiều ngôn ngữ nước ngoài, ký tự cần phải mất nhiều hơn một byte của không gian.Bảng 13.1 cho thấy một danh sách các chức năng không an toàn và các chức năng an toàn thay thế chúng. Khi bạn và nhóm của bạn đang thực hiện mã giá hoặc trắng-hộp kiểm tra, trên lookout cho các chức năng không an toàn và cách họ sử dụng. Rõ ràng, lập trình viên của nhóm của bạn nên sử dụng các phiên bản an toàn, Tuy nhiên, nếu không, nhận xét mã của bạn sẽ cần phải được thực hiện với nhiều hơn nữa sự chặt chẽ để đảm bảo rằng bất kỳ lỗ hổng bảo mật có thể được giải quyết.Bảng 13.1. Cũ "Unsecure" C chuỗi chức năng và của họ mới thay thế "An toàn" cũ "Không an toàn" chức năng Chức năng mới "An toàn" Mục đích strcatwcscat RtlStringCbCatRtlStringCbCatExRtlStringCchCatRtlStringCchCatEx Tiếp nhau hai dây. strncatwcsncat RtlStringCbCatNRtlStringCbCatNExRtlStringCchCatNRtlStringCchCatNEx Tiếp nhau hai tính byte chuỗi, trong khi hạn chế kích thước của chuỗi gắn. Strcpywcscpy RtlStringCbCopyRtlStringCbCopyExRtlStringCchCopyRtlStringCchCopyEx Sao chép một chuỗi thành một bộ đệm. strncpywcsncpy RtlStringCbCopyNRtlStringCbCopyNExRtlStringCchCopyNRtlStringCchCopyNEx Sao chép một chuỗi byte tính vào một bộ đệm, trong khi hạn chế kích thước của chuỗi sao chép. strlenwcslen RtlStringCbLengthRtlStringCchLength Xác định chiều dài của một chuỗi cung cấp. sprintfswprintf_snprintf_snwprintf RtlStringCbPrintfRtlStringCbPrintfExRtlStringCchPrintfRtlStringCchPrintfEx Tạo ra một chuỗi định dạng văn bản mà dựa trên một chuỗi định dạng và một tập hợp các đối số bổ sung chức năng. vsprintfvswprintf_vsnprintf_vsnwprintf RtlStringCbVPrintfRtlStringCbVPrintfExRtlStringCchVPrintfRtlStringCchVPrintfEx Tạo ra một chuỗi định dạng văn bản mà dựa trên một chuỗi định dạng và một bổ sung chức năng lý luận. JPEG VIRUSNhững gì có thể an toàn hơn so với một hình ảnh? Sau khi tất cả, nó là dữ liệu, không thực thi mã. Giả định sai rằng đã bị phá vỡ trong tháng chín năm 2004 khi một virus được khám phá được nhúng trong một vài hình ảnh JPEG khiêu dâm đăng lên một nhóm tin Internet. Khi xem, một loại virus đã được tải xuống máy tính của người dùng. Không ai nghĩ rằng nó là có thể, nhưng nó đã. Vấn đề khi ở một khai thác lỗi tràn bộ đệm.Các định dạng tập tin JPEG, bên cạnh việc lưu trữ các yếu tố hình ảnh, cũng cho phép để lưu trữ các nhúng ý kiến. Nhiều phần mềm gói để chỉnh sửa và tổ chức hình ảnh sử dụng lĩnh vực này cho annotating hình ảnh "Của chúng tôi gia đình tại bãi biển", "nhà bán", và vv. Lĩnh vực bình luận này bắt đầu với một giá trị hex của 0xFFFE theo sau là một giá trị hai byte. Giá trị này chỉ định chiều dài của các bình luận, cộng thêm 2 byte (cho chiều dài của lĩnh vực). Sử dụng phương pháp mã hóa này, một bình luận về lên đến 65,533 byte sẽ là hợp lệ. Nếu không có không có bình luận, sau đó các lĩnh vực là nghĩa vụ phải chứa một giá trị của 2. Vấn đề là nếu giá trị là một mục nhập bất hợp pháp của 0 hoặc 1, xảy ra một lỗi tràn bộ đệm.Nó chỉ ra rằng mã được sử dụng để giải thích các dữ liệu JPEG và biến nó thành một hình ảnh có thể xem được chuẩn hoá chiều dài bằng cách trừ ra 2 byte trước khi nó đọc những nhận xét thực tế. Nếu các byte chiều dài được đặt thành 0, trừ ra 2 mang lại một chiều dài của -2. Các mã được viết để xử lý các số nguyên dương và hiểu 2 tiêu cực là một 4GB tích cực. 4GB tiếp theo "bình luận" dữ liệu đã sau đó được nạp, không đúng cách ghi đè lên các chương trình và dữ liệu hợp lệ. Nếu mà "bình luận" dữ liệu một cách cẩn thận crafted, tay mã hoá, lắp ráp, nó có thể được sử dụng để truy cập vào máy tính của người xem. Microsoft đã phát hành một Cập Nhật quan trọng cho tất cả các thành phần được tải và xem hình ảnh JPEG. Lỗ hổng phần mềm có thể xảy ra mà bạn không bao giờ mong đợi họ. Vì lý do này, nó là bắt buộc để xem xét phần mềm bảo mật trong tất cả các khía cạnh của một sản phẩm phần mềm hoặc hệ thống. Từ góc độ người dùng, bảo mật là thước đo chất lượng. Họ có thể không yêu cầu cho nó, nhưng họ biết họ muốn nó, và sẽ xem xét việc thiếu an ninh phần mềm một lỗi (một lớn một) nếu họ không có nó. Chúng tôi sẽ đóng cửa trong chương này với một chuyến thăm ngắn một khía cạnh của bảo mật máy tính, một trong đó liên quan đến bảo mật, Pháp y máy tính.
đang được dịch, vui lòng đợi..
Kết quả (Việt) 2:[Sao chép]
Sao chép!
Trong năm 2002, Microsoft đã bắt đầu một sáng kiến để xác định C và C ++ phổ biến các chức năng mà là dễ bị lỗi mã hoá đệm tràn ngập. Các chức năng này không phải là "xấu" của mình, nhưng sẽ được sử dụng một cách an toàn mà họ yêu cầu kiểm tra trên một phần của các lập trình lỗi sâu rộng. Nếu đó kiểm tra lỗi được bỏ qua (và nó thường là), mã sẽ có một lỗ hổng bảo mật. Với những nguy cơ của việc giám sát này, nó đã được quyết định rằng nó sẽ là tốt nhất để phát triển và thúc đẩy một tập mới của các chức năng để thay thế những người dễ bị vấn đề với một mạnh mẽ, kiểm tra kỹ lưỡng, và tài liệu tập hợp của những người mới. Những chức năng mới, được gọi là an toàn Chức năng String, có sẵn từ Microsoft cho Windows XP SP1 và các phiên bản sau của Windows DDK và Platform SDK. Nhiều thư viện thương mại và phần mềm miễn phí khác mà thực hiện "dây an toàn" có sẵn cho các hệ điều hành phổ biến, xử lý, và trình biên dịch. Sau đây danh sách (chuyển thể từ các bài báo, "Sử dụng các hàm chuỗi an toàn," trên msdn.microsoft.com/library) giải thích một số lợi ích của việc sử dụng các chức năng mới: Mỗi chức năng nhận được các kích thước của bộ đệm đích như đầu vào. Do đó các chức năng có thể đảm bảo rằng nó không viết qua cuối của bộ đệm. Các chức năng null-chấm dứt tất cả các chuỗi đầu ra, thậm chí nếu các hoạt động cắt các kết quả dự định. Các mã thực hiện thao tác trên chuỗi trả lại có thể giả định rằng nó cuối cùng sẽ gặp phải một kết thúc của chuỗi nulldenoting. Các dữ liệu trước khi null sẽ có giá trị và chuỗi sẽ không chạy trên, vô hạn định. Tất cả các hàm trả về một giá trị NTSTATUS, với chỉ một mã thành công có thể. Các chức năng gọi điện thoại có thể dễ dàng xác định các chức năng thành công trong việc thực hiện các hoạt động của nó. Mỗi chức năng có sẵn trong hai phiên bản. Một hỗ trợ các ký tự ASCII single-byte và các khác, double-byte ký tự Unicode. Ghi từ Chương 10, "Ngoại Ngữ Testing," đó để hỗ trợ tất cả các chữ cái và các ký hiệu trong nhiều ngôn ngữ nước ngoài, nhân vật cần phải mất nhiều hơn một byte của không gian. Bảng 13.1 cho thấy một danh sách các chức năng không an toàn và các chức năng an toàn mà thay thế chúng. Khi bạn và nhóm của bạn đang hoạt động mã số nhận xét ​​hoặc kiểm tra hộp trắng, được trên Lookout cho các chức năng không an toàn và cách chúng được sử dụng. Rõ ràng, các lập trình viên của nhóm của bạn nên sử dụng các phiên bản an toàn, nhưng, nếu không, bạn đánh mã sẽ cần phải được thực hiện với sự chặt chẽ hơn để đảm bảo rằng bất kỳ lỗ hổng bảo mật có thể được giải quyết. Bảng 13.1. Cựu "không an toàn" Chức năng C String và họ mới "Secure" Thay Thế Cũ "không an toàn" Chức năng mới "an toàn" hai chuỗi. strncat wcsncat RtlStringCbCatN RtlStringCbCatNEx RtlStringCchCatN RtlStringCchCatNEx nối hai chuỗi byte-tính, trong khi hạn chế kích thước của chuỗi nối. strcpy wcscpy RtlStringCbCopy RtlStringCbCopyEx RtlStringCchCopy RtlStringCchCopyEx Sao chép một chuỗi thành một bộ đệm. strncpy wcsncpy RtlStringCbCopyN RtlStringCbCopyNEx RtlStringCchCopyN RtlStringCchCopyNEx Sao chép một chuỗi byte-tính vào một bộ đệm, trong khi hạn chế kích thước của chuỗi sao chép. strlen wcslen RtlStringCbLength RtlStringCchLength Xác định chiều dài của một cung cấp một chuỗi văn bản được định dạng đó là dựa trên một chuỗi định dạng và một loạt các tính năng bổ sung một chuỗi văn bản được định dạng đó là dựa trên một chuỗi định dạng và một bổ sung tham số của hàm. THE JPEG VIRUS gì có thể an toàn hơn một hình ảnh? Sau khi tất cả, nó là dữ liệu, không mã thực thi. Đó là giả thuyết sai lầm đã bị hỏng vào tháng Chín năm 2004, khi một virus đã được phát hiện đã được nhúng vào trong một số hình ảnh JPEG khiêu dâm được đưa lên một nhóm tin Internet. Khi xem, một loại virus đã được tải về máy tính của người dùng. Không ai nghĩ rằng nó là có thể, nhưng nó được. Vấn đề nói dối trong khai thác một lỗi tràn bộ đệm. Các định dạng tập tin JPEG, bên cạnh việc lưu trữ các yếu tố hình ảnh, cũng cho phép chứa các bình luận nhúng. Nhiều gói phần mềm để chỉnh sửa hình ảnh và tổ chức sử dụng trường này để chú thích hình ảnh "Gia đình chúng tôi ở bãi biển," "Nhà Bán," và vv. Lĩnh vực bình luận này bắt đầu với một giá trị hex của 0xFFFE theo sau là một giá trị hai-byte. Giá trị này xác định độ dài của bình luận, cộng với 2 byte (đối với các lĩnh vực chiều dài). Sử dụng phương pháp mã hóa này, một bình luận lên đến 65.533 byte sẽ là hợp lệ. Nếu không có lời bình, sau đó lĩnh vực được cho là có chứa một giá trị 2. Vấn đề là nếu giá trị là một mục bất hợp pháp từ 0 hoặc 1, một lỗi tràn bộ đệm xảy ra. Nó chỉ ra rằng các mã được sử dụng để giải thích các JPEG dữ liệu và biến nó thành một hình ảnh có thể xem được bình thường hóa chiều dài bằng cách trừ đi 2 byte trước khi nó đọc ra những nhận xét ​​thực tế. Nếu byte chiều dài đã được thiết lập là 0, trừ đi off 2 mang lại một chiều dài -2. Mã này đã được viết để xử lý các số nguyên dương và giải thích các tiêu cực 2 như một 4GB tích cực. 4GB tiếp theo của "bình luận" dữ liệu sau đó đã được nạp, không đúng cách ghi đè lên dữ liệu và chương trình hợp lệ. Nếu mà "bình luận" dữ liệu đã được chế tác một cách cẩn thận, tay mã hóa, lắp ráp, nó có thể được sử dụng để truy cập vào máy tính của người xem. Microsoft đã phát hành một bản cập nhật quan trọng cho tất cả các thành phần được tải và xem hình ảnh JPEG. Lỗ hổng phần mềm có thể xảy ra khi bạn không bao giờ mong đợi họ. Vì lý do này, nó bắt buộc phải xem xét phần mềm bảo mật trong tất cả các khía cạnh của một sản phẩm phần mềm hay hệ thống. Từ góc độ người dùng, bảo mật là thước đo chất lượng. Họ có thể không yêu cầu nó, nhưng họ biết họ muốn, và sẽ xem xét thiếu phần mềm bảo mật một lỗi (một lớn) nếu họ không có nó. Chúng tôi sẽ đóng chương này với một chuyến thăm ngắn tới một khía cạnh khác của bảo mật máy tính, một trong đó là liên quan đến sự riêng tư, pháp y máy tính.


























































































































đ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 ©2025 I Love Translation. All reserved.

E-mail: