티스토리 뷰

반응형

 

 

 

가. 원인

  - 보안상 금지되었거나, 부주의하게 사용될 가능성이 많은 API를 사용하는 경우

 

 

나. 영향

  - 위험한 API를 확인하지 않고 사용 시 보안문제를 야기

  - 잘못된 방식으로 사용하여 보안문제를 야기

 

 

다. 보안대책

  - 보안문제로 금지된 함수를 대체할 수 있는 안전한 함수를 사용

 

 

라. 안전한 코드

1. 보안기능을 제공하는 프레임워크의 메소드를 사용

 

  ...

  // 보안기능을 제공받지 못하는 socket 대신 프레임워크의 메소드를 사용

  //Socket sock = new Socket( "kisa.or.kr", 8080 ); <= 취약코드

  URL url = new URL( "http://www.kisa.or.kr:8080/datasheet" );

  URLConnection conn = url.openConnection();

  ...

  

 

 

2. 잘못된 API 사용 제거

 

  try {

     ...

  } catch ( Exception e ) {

     logger.info( "Error" );

     // J2EE 환경에서 System.exit() 메서도 호출 시 웹 어플리케이션을 실행하는 컨테이너를 종료시켜버림

     // System.exit(1) ;

  }

  

 

 

마. 진단방법

<멤버변수 사용 확인>

  1. 보안에 취약한 API 리스트를 확인

  2. 취약한 API를 사용하는지 확인

  3. 대체가 가능한 API를 사용할 수 없을 경우, API의 인자와 반환값을 검사하는지 확인

 

 

바. 정/오탐 케이스

<정탐 케이스>

  1. 버퍼의 값을 복사하기 위해 strcpy() 함수를 사용할 경우

  2. J2EE 프로그램에서 System.exit() 를 사용할 경우, 웹 어플리케이션을 실행하고 있는 컨테이너를 종료할 수 있음

반응형
댓글
반응형
최근에 올라온 글
Total
Today
Yesterday