자격증/정보처리기사

197~198. 코드 오류(B), 캡슐화(B)

환성 2023. 2. 8. 17:34
728x90

널 포인터 역참조

  • 널 포인터가 가리키는 메모리에 어떠한 값을 저장할 떄 발생하는 약점
  • 널 포인터는 메모리의 첫 주소를 가리킴, 해당 주소 참조 시 소프트웨어가 비정상적으로 종료
  • 스택가드 : 스택에서 발생하는 보안 약점을 막는 기술, 메모리 상에서 프로그램의 복귀 주소와 변수 사이에 특정 값을 저장한 후 그 값이 변경되었을 경우 오버플로우 상태로 판단 -> 프로그램 중단

 

부적절한 자원 해제

  • 자원을 반환하는 코드를 누락하거나 프로그램 오류로 할당된 자원을 반환 못했을 떄 생기는 약점
  • 힙 메모리, 소켓 등 계속 점유 시 자원 부족으로 새로운 입력 X

 

해제된 자원 사용

  • 이미 사용이 종료되어 반환된 메모리를 참조하는 경우 발생
  • 주소를 저장하고 있는 포인터를 초기화함으로써 방지

 

초기화되지 않은 변수 사용

  • 변수 선언 후 값이 부여되지 않은 변수를 사용할 때 발생하는 보안 약점
  • 변수 선언 시 할당된 메모리를 초기화함으로써 방지 

 

캡슐화

  • 캡슐화로 발생할 수 있는 보안 약점 : 잘못된 세션에 의한 정보 노출, 제거되지 않은 남은 디버그 코드, 시스템 데이터 정보 노출

 

잘못된 세션에 의한 정보 노출

  • 다중 스레드 환경에서 멤버 변수에 정보를 저장할 때 발생하는 보안 약점
  • 레이스컨디션으로 인해 동기화 오류 발생
  • 지역 변수를 활용하여 변수의 범위 제한함으로써 방지

 

제거되지 않고 남은 디버그 코드

  • 개발 중에 버그 수정이나 결과값 확인을 위해 남겨둔 코드들로 인해 발생하는 보안 약점
  • 소프트웨어 배포 전 코드 검사를 통해 남아있는 디버그 코드 삭제로 방지

 

시스템 데이터 정보 노출

  • 시스템의 내부 정보를 시스템 메시지 등을 통해 외부로 출력하도록 코딩했을 떄 발생하는 보안 약점
  • 노출 메시지 최소한의 정보 제공으로 방지

 

Public 메소드로부터 반환된 Private 배열

  • Public 메소드가 Private 배열로 반환하면 배열의 주소가 외부로 공개되어 외부에서 접근 가능
  • Private 배열을 별도의 메소드를 통해 조작, 동일한 형태의 복제본으로 반환받은 후 값을 전달하는 방식으로 방지

 

Private 배열에 Public 데이터 할당

  • Private 배열을 Public 데이터를 저장하면 Private 배열을 외부에서 접근 가능
  • 레퍼런스가 아닌 값을 직접 저장함으로써 방지

 

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

202. 서버 인증(B)  (0) 2023.02.08
201. 서비스 공격 유형(A)  (0) 2023.02.08
193. 입력 데이터 검증 및 표현(A)  (0) 2023.02.08
191. Secure SDLC(A)  (0) 2023.02.08
188~189. 회복/병행제어(A), 교착상태(B)  (0) 2023.02.08