Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

불충분한 인증/인가 본문

Study/WEB

불충분한 인증/인가

awakerrday 2020. 3. 18. 20:58

□ 인증(Authentication)

○ 시스템 접근 시, 등록된 사용자인지 여부를 확인하는 것

○ 사용자가 자기 자신이 어떤(등급을 가진) 사용자라고 주장하는 사실을 확인하는 것

○ 로그인, 사용자 식별

 

□ 인가(Authorization)

○ 접근(로그인) 후, 인증된(식별된) 사용자에게 권한을 부여하는 것

○ 권한에따라 사용 가능한 기능, 접근 가능한 페이지가 제한됨

○ 사용자 등급(일반/담당자/관리자)에 따라 권한 식별

○ 인증된 사용자의 요청이 권한에 따라 허가되는지 아닌지를 결정(접근통제)하기 위해 사용자에게 권한 부여

 

 

불충분한 인증(IA)

  • 취약점 설명

민감한 데이터에 취약한 인증 메커니즘이 구현되어 있을 경우 발생하는 취약점으로 인증 기능(로그인, 중요 페이지에 대한 2차 인증 등)은 구현하였으나 추측 가능한 패스워드, 취약한 인증 프로세스로 구현되어 우회하거나 무력화하여 접근할 수 있다.

 

  • 취약점 점검 방법

① 추측 가능한 아이디/패스워드를 입력하여 로그인 가능한지, 초기 패스워드를 사용하는지, 2차 인증을 수행하는지 확인한다.

② 개인정보 수정 및 패스워드 수정 기능의 페이지에 접근 전에 본인인증에 대한 재인증을 하고 있는 것을 확인한다

 

  • 취약점 조치 방안

사용자로 하여금 패스워드 정책 기준에 맞는 패스워드를 사용하게끔 구현하고, 취약한 아이디, 패스워드 찾기, 초기화 기능 사용을 자제한다.

개인정보 및 패스워드 수정 페이지와 같은 중요정보를 표시하는 페이지에서는 본인 인증을 재확인하는 로직을 구현하고, 인증 후에 이용 가능한 페이지에 사용자가 접근할 때마다 승인을 얻은 사용자인지를 페이지 마다 검증하여야 한다.

접근 통제 정책을 구현하고 있는 코드는 구조화, 모듈화가 되어 있어야 한다.

접근제어가 필요한 모든 페이지에 통제수단(로그인 체크 및 권한 체크)을 구현해야 한다. 특히, 하나의 프로세스가 여러 개의 페이지 또는 모듈로 이루어져 있을 때 권한 체크가 누락되는 경우를 방지하기 위해서 공통 모듈을 사용하는 것을 권장한다.

인증 과정을 처리하는 부분에 Client Side Script(Javascript, VBScript 등)을 사용하면 사용자가 임의로 수정할 수 있으므로 Server Side Script(PHP, ASP, JSP 등)를 통하여 인증 및 필터링 과정이 수행되어야 한다.

 

 

불충분한 인가(IN)

  • 취약점 설명

중요 기능 또는 데이터에 접근시 사용자 권한에 따른 접근 통제를 두지 않은 취약점. 접근 권한에 대한 인증 프로세스 및 올바른 접근 통제 로직이 구현되지 않아 다른 사용자의 민감한 정보나 인가되지 않은 페이지에 접근할 수 있다.

 

  • 취약점 점검 방법

① 개인정보 수정 및 패스워드 수정 기능의 페이지에서 다른 사용자와의 구분을 아이디, 일련번호 등의 단순한 값을 사용하는지 조사한다.

② 다른 사용자와 구분하는 값을 변경하는 것만으로 다른 사용자의 개인정보, 패스워드에 접근이 가능한지 확인한다.

 

  • 취약점 조치 방안

 중요 기능 또는 데이터 접근 시 2차 인증 프로세스를 구현하고, 사용자 접근 통제 로직이 구현되지 않았다면 세션관리 메커니즘을 통해 사용자 권한을 식별하고 인가된 사용자 요청을 관리한다. 페이지 별 권한 매트릭스를 작성하여, 페이지에 부여된 권한의 타당성을 체크 후에 권한 매트릭스를 기준으로 하여 전 페이지에서 권한 체크가 이뤄지도록 구현 하여야 한다.

'Study > WEB' 카테고리의 다른 글

AJAX 요청 방법  (0) 2020.09.01
JSP 업로드 우회  (0) 2020.09.01
SQLi 기록  (0) 2019.07.11
XSS(Cross-Site Scripting) 종류 및 특징  (0) 2019.03.14
Chrome DevTools (크롬 개발자 도구)  (0) 2019.02.15
Comments