본문 바로가기

old/Cyber Security

사이버 보안: 인증과 인가 취약점이란?

반응형

정의

인증

사용자의 신분을 확인하는 절차, 그 사람이 맞는지 확인 하는 작업

인증(Authentication)은 사용자나 시스템이 신원을 확인하는 프로세스를 말합니다. 이는 사용자가 자신이 주장하는 신원을 증명하거나, 시스템이 자원에 접근하려는 주체의 신원을 확인하는 것을 포함합니다. 인증은 사용자가 올바른 자격 증명(예: 사용자 이름과 암호)을 제공하여 자신의 신원을 확인함으로써 이루어집니다. 인증은 로그인 프로세스에서 자주 사용되며, 사용자가 시스템에 액세스할 수 있는 권한을 얻기 위해 필요한 첫 번째 단계입니다.

인가

허락된 사람에게 어떤 권한을 부여하는 작업

인가(Authorization)는 인증된 주체가 특정 자원이나 기능에 대한 액세스 권한을 가지고 있는지 확인하는 프로세스를 말합니다. 인가는 인증 이후에 이루어지며, 인증된 주체가 어떤 작업을 수행할 수 있는지 결정하는 것을 포함합니다. 예를 들어, 웹 애플리케이션에서 특정 페이지에 접근하려는 사용자의 권한을 확인하여 접근을 허용하거나 거부하는 것이 인가의 일부입니다.

취약점 발생 지점 리스트

  • 인증 혹은 인가가 필요한 모든 페이지

취약점 검증 방법

  • 단순하게 페이지 번호 변경(http 주소 변경)으로 접근할수 없는 게시글에 접근이 가능한지 확인
  • 클라이언트 사이드에서 리디렉션을 하는지 확인(이런경우 응답변조 가능)
  • 주석 처리 확인
  • 자바스크립트 파일(.js)를 사용해서 리디렉션을 하는지 확인
  • 피라미터 변경

공격법

인증 우회 발생 과정

세부 과정 설명

  1. 페이지 1은 누구든지 볼수 있는 페이지 입니다.
  2. 페이지 2는 로그인을 할수 있는 페이지 입니다. 로그인시도를 하지만 로그인을 하지 못합니다.
  3. 페이지 2에서 로그인에 성공을 하면 페이지3으로 이동되어 게시판을 사용할수 있습니다.
  4. 하지만 페이지3에서는 로그인을 성공했는지 여부를 인증하지 않습니다.
  5. 공격자는 페이지2를 통하지 않고 페이지3에 접속합니다.
  6. 서버에서는 페이지 3을 제공합니다.

인가 우회 발생 과정

세부 과정 설명

  1. Attacker는 "user 마이페이지 요청"을 웹 서버에 보냅니다.
  2. 웹 서버는 "user 마이페이지"를 Attacker에게 제공합니다.
  3. 그런 다음, Attacker는 "admin 마이페이지 요청"을 웹 서버에 보냅니다.
  4. 웹 서버는 거절하고, 쿠키 파라미터가 잘못되었다는 응답을 Attacker에게 보냅니다.
  5. 이에 대해 Attacker는 스스로 추론하여 웹 서버에서 쿠키 파라미터를 확인한다고 추측합니다.
  6. Attacker는 "쿠키변조된 마이페이지 요청"을 웹 서버에 보냅니다. 이 요청에는 조작된 쿠키 파라미터가 포함되어 있습니다.
  7. 웹 서버는 "admin 마이페이지"를 Attacker에게 제공합니다.

대응방법

  • 궁극적인 대응방법은 서버에서 세션을 통한 검증
    • 반드시 서버에서 세션을 통한 검증을 해야함
    • 클라이언트측 코드는 사용자의 편의기능만 구현
  • 추가적인 대응방법:
    • 강력한 암호 정책 적용: 길이, 복잡성, 변경 주기 등을 강제로 설정
    • 이중 인증 (Two-Factor Authentication) 도입: 비밀번호 외에 추가 인증 요소 도입
  • 최소 권한 원칙 적용: 사용자에게 필요한 최소한의 권한만 부여
반응형