본문 바로가기

보안

[보안] 코드오류란?

코드오류란?

 

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

 

코드오류로 발생할 수 있는 보안 약점

 

보안 약점 설명
널 포인터 역참조 - 널 포인터가 가르키는 메모리에 어떠한 값을 저장할 때 발생하는 보안 약점

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

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

- 널이 될수 있는 포인터를 이용하기 전에 널 값을 갖고 있는지 검사함으로써 방지

부적절한 자원 해제 - 자원을 반환하는 코드를 누락하거나 프로그램 오류할당된 자원을 반환하지 못했을 때 발생하는 보안 약점

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

- 프로그램 내에 자원 반환 코드가 누락되었는지 확인하고, 오류로 인해 함수가 중간에 종료 되었을 때 예외처리에 관계없이 자원이 반환되도록 코딩함으로써 방지
해제된 자원 사용 - 이미 사용이 종료되어 반환된 메모리를 참조하는 경우 발생하는 보안약점

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

- 반환된 메모리에 접근 할 수 없도록 주소를 저장하고 있는 포인터를 초기화함으로써 방지
초기화되지 않은 변수 사용 - 변수 선언 후 값이 부여되지 않은 변수를 사용할 때 발생하는 보안약점

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

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

 

'보안' 카테고리의 다른 글

[보안] 공격유형(Dos, DDos, 랜섬웨어)  (0) 2020.02.18