기록공간

5-3-7장. 코드 오류 - B 본문

자격증공부/정보처리기사_필기

5-3-7장. 코드 오류 - B

입코딩 2020. 9. 22. 23:22
반응형

코드 오류는 소프트웨어 구현 단계에서 개발자들이 코딩 중 실수하기 쉬운 형변환, 자원 반환 등의 오류를 예방하기 위한 보안 점검 항목들이다.

 

널 포인터(Null Pointer) 역참조

널 포인터가 가리키는 메모리에 어떤 값을 저장할 때 발생하는 보안 약점이다.

 

  • 많은 라이브러리 함수들이 오류가 발생할 경우 널 값을 반환하는데, 이 반환값을 포인터로 참조하는 경우 발생한다.

  • 대부분의 운영체제는 널 포인터는 메모리의 첫 주소를 가리키며, 해당 주소를 참조할 경우 소프트웨어가 비정상적으로 종료될 수 있다.

  • 공격자가 널 포인터 역참조로 발생하는 예외 상황을 악용할 수 있다.

  • 널이 될 수 있는 포인터를 이용하거 전에 널 값을 갖고 있는지 검사함으로써 방지할 수 있다.

부적절한 자원 해제

자원을 반환하는 코드를 누락하거나 프로그램 오류로 할당된 자원을 반환하지 못했을 때 발생하는 보안 약점이다.

 

  • 힙 메모리(Heap Memory), 소켓(Socket) 등의 유한한 시스템 자원이 계속 점유하고 있으면 자원 부족으로 인해 새로운 입력을 처리하지 못 할 수 있다.

  • 프로그램 내에 자원 반환 코드가 누락되었는지 확인하고, 오류로 인해 함수가 중간에 종료되었을 때 예외처리에 관계없이 자원이 반환되도록 코딩함으로써 방지 할 수 있다.

해제된 자원 사용

이미 사용이 종료되어 반환된 메모리를 참조하는 경우 발생하는 보안 약점이다.

 

  • 반환된 메모리를 참조하는 경우 예상하지 못한 값 또는 코드를 수행하게 되어 의도하지 않은 결과가 발생할 수 있다.

  • 반환된 메모리에 접근할 수 없도록 주소를 저장하고 있는 포인터를 초기화함으로써 방지할 수 있다.

초기화 되지 않은 변수 사용

변수 선언 후 값이 부여되지 않은 변수를 사용할 때 발생하는 보안 약점이다.

 

  • 변수가 선언되어 메모리가 할당되면 해당 메모리에 이전에 사용하던 내용이 계속 남아있어 변수가 외부에 노출되는 경우 중요정보가 악용될 수 있다.

  • 변수 선언 시 할당된 메모리를 초기화함으로써 방지할 수 있다.

 

반응형

'자격증공부 > 정보처리기사_필기' 카테고리의 다른 글

5-3-9장. API 오용 - C  (0) 2020.09.22
5-3-8장. 캡슐화 - C  (0) 2020.09.22
5-3-6장. 에러처리 - B  (0) 2020.09.22
5-3-5장. 시간 및 상태 - C  (0) 2020.09.22
5-3-4장. 보안 기능 - B  (0) 2020.09.22
Comments