정수 오버플로 및 언더플로우 소개
정수 오버플로 및 언더플로우 취약점은 2019 년 상위 25 개 목록에서 8 번째로 가장 위험한 취약점으로 간주됩니다. 이러한 유형의 취약점은 변수 유형의 오용에 의해 생성되며 버퍼 오버 플로우와 같은 다른 유형의 취약점에 대한 보호를 우회하기 위해 악용 될 수 있습니다.
변수 유형 및 크기
모든 프로그래밍 언어에는 다양한 유형의 변수 개념이 있습니다. 텍스트 데이터를 포함할 수 있는 문자는 정수 또는 부동 소수점과 매우 다릅니다. 그러나 이러한 일반적인 유형 외에도 변수 간의 추가 구분이 있으며 이러한 구분은 정수 오버플로 및 언더 플로우 취약점을 가능하게합니다.
대부분의 프로그래밍 언어는 부호있는 정수와 부호없는 정수의 개념을 가지고 있습니다. 부호있는 정수(이름에서 알 수 있듯이)에는 부호가있어 양수 값과 음수 값을 모두 저장할 수 있습니다. 반면에 부호없는 변수는 양수 만 저장할 수 있습니다.
위의 이미지와 같이 주어진 크기의 부호있는 변수와 부호없는 변수는 컴퓨터의 메모리에 동일하게 기록됩니다. 유일한 차이점은 값을 해석하는 방법입니다. 부호있는 값에서 선행 값은 음수를 의미하고 부호없는 값에서는 첫 번째 자리에있는 값이 큰 숫자를 의미합니다.
다른”정수”변수 유형 간의 다른 주요 차이점은 포함 할 수있는 값의 크기입니다. 프로그래밍 언어는 짧은,정수,긴 및 그 이상의 개념을 가지고 있으며,각각은 해당 변수에 할당 된 메모리 공간의 크기와 포함 할 수있는 값의 범위를 정의합니다.
정수 오버플로 및 언더플로
정수 오버플로 및 언더플로 취약점은 부호있는 변수와 부호없는 변수와 크기가 다른 정수 변수 유형 간의 안전하지 않은 변환으로 이어집니다. 그것은 일반적으로 많은 경우에,(자세히보기…)