버퍼 오버 읽기

Buffer over-read

컴퓨터 보안프로그래밍에서 버퍼 오버리드[1][2] 프로그램버퍼에서 데이터를 읽으면서 버퍼의 경계를 오버런하고 인접한 메모리를 읽거나 읽으려고 하는 이상 현상이다.메모리 안전성 위반의 특례다.

하트블리드 버그에서와 같이 버퍼 오버리드는 접근하기 위해 의도되지 않은 메모리의 일부를 읽기 위해 경계 검사 부족을 이용하도록 설계된 악의적으로 조작된 입력에 의해 트리거될 수 있다.또한 프로그래밍 오류만으로 인해 발생할 수 있다.버퍼 오버리드는 메모리 액세스 오류, 잘못된 결과, 충돌 또는 시스템 보안 위반을 포함한 불규칙한 프로그램 동작을 유발할 수 있다.그러므로 그것들은 많은 소프트웨어 취약성의 기본이며, 특권 정보에 접근하기 위해 악의적으로 악용될 수 있다.

일반적으로 버퍼 오버리딩과 관련된 프로그래밍 언어로는 C와 C++가 있는데, C와 C++는 가상 메모리의 어떤 부분에 있는 데이터에 액세스하기 위해 포인터를 사용하는 것에 대해 내장된 보호 기능을 제공하지 않으며, 메모리 블록에서 데이터를 읽는 것이 안전한지 자동으로 확인하지 않는다. 각각의 예는 i가 포함된 것보다 더 많은 요소를 읽으려고 시도하고 있다.n 배열 또는 null-messages 문자열에 후행 종단기를 추가하지 못함.경계 검사는 버퍼 오버레이를 방지하는 반면 [3]솜털 테스트는 버퍼 오버레이를 탐지하는 데 도움이 될 수 있다.

참고 항목

참조

  1. ^ "CWE – CWE-126: Buffer Over-read (2.6)". Cwe.mitre.org. February 18, 2014. Retrieved April 10, 2014.
  2. ^ Strackx, Raoul; Younan, Yves; Philippaerts, Pieter; Piessens, Frank; Lachmund, Sven; Walter, Thomas (2009-01-01). "Breaking the Memory Secrecy Assumption". Proceedings of the Second European Workshop on System Security. EUROSEC '09. New York, NY, USA: ACM: 1–8. doi:10.1145/1519144.1519145. ISBN 9781605584720. S2CID 17259394.
  3. ^ Yves Younan; Wouter Joosen; Frank Piessens (2013-02-25). "Efficient protection against heap-based buffer overflows without resorting to magic" (PDF). Dept. of Computer Science, Katholieke Universiteit Leuven. Archived from the original (PDF) on 2013-09-05. Retrieved 2014-04-24.

외부 링크