티스토리 뷰
반응형
가. 원인
- C언어에서 스택 메모리에 저장하는 변수를 초기화하지 않고 사용하는 경우
나. 영향
- 초기화 하지 않은 변수는 이전 함수에 사용되었던 내용을 포함하고 있음
- 메모리에 저장되어 있는 값을 읽거나 특정코드를 실행
다. 보안대책
- 모든 변수를 사용전에 반드시 올바른 초기값을 할당
라. 안전한 코드
1. 변수에 초기값 설정
int x = 0; int y = 0; ... switch( position ) { case 0: x = 10; break; defualt: y = 10; break; } setCursorPosition( x, y );
|
마. 진단방법
<변수 초기화 확인>
1. 변수를 선언하는 코드를 확인
2. 선언 시 변수를 초기화 하는지 확인
바. 정/오탐 케이스
<정탐 케이스>
1. 별도의 변수를 초기화 하지 않는 디폴트 생성자를 호출 뒤 변수를 사용 시
반응형
'Web Analytics > SW 보안약점 진단원' 카테고리의 다른 글
[구현보안] 캡슐화 02 - 제거되지 않고 남은 디버그 코드 (0) | 2019.10.07 |
---|---|
[구현보안] 캡슐화 01 - 잘못된 세션에 의한 데이터 정보 노출 (0) | 2019.10.07 |
[구현보안] 코드오류 03 - 해제된 자원 사용 (0) | 2019.10.07 |
[구현보안] 코드오류 02 - 부적절한 자원 해제 (0) | 2019.10.07 |
[구현보안] 코드오류 01 - Null Pointer 역참조 (0) | 2019.10.07 |
댓글
반응형
최근에 올라온 글
- Total
- Today
- Yesterday