티스토리 뷰

반응형

 

 

 

가. 원인

  - 인가 사용자만 접근해야 하는 기능에 올바른 접근권한 검증을 수행하지 않을 경우

 

 

나. 영향

  - 권한없는 사용자에 의해 기능이 사용됨

  - 권한없는 사용자에 의해 데이터가 유출

 

 

다. 보안대책

  - 역할에 따라 제공되는 정보와 기능의 노출을 최소화

  - 사용자 권한 별 ACL을 적용

  - URL 조작을 통해 리소스에 직접 접근할 수 없도록 차단

  - 파라미터 조작을 통한 직접 접근을 할 수 없도록 차단

 

 

라. 안전한 코드

1. 권한검증

 

  public ModelAndView deleteUserInfo( ... ) {

     String userID = (String) session.getAttribute("LoginID");

     ...

     // 로그인 사용자가 유저정보를 삭제할 권한이 있는지 확인

     if ( checkUserAuthOfDeleteUserInfo( userID ) )

        showAlert( "Not Allowed" );

     ...

     deleteMemberInfo(request);

     ...

  }

 

 

 

마. 진단방법

<적절한 인증여부 확인>

  1. 중요기능에 대한 접근 및 변경 권한을 설정하였는지 확인

  2. 설정한 권한검증을 수행하는지 확인

  3. 권한검증을 서버측 코드에서 수행하는지 확인

 

 

바. 정/오탐 케이스

<정탐 케이스>

  1. LDAP 쿼리문에 별도의 사용자 인증에 대한 제어를 하지 않을 경우
     ( env.put( Context.SECURITY_AUTHENTICATION, "none");

 

<오탐 케이스>

  1. 삭제 액션을 수행할 권한을 확인한 뒤 기능을 수행할 경우

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