본문 바로가기
[보안 Archive] ~2017/<인터넷 해킹과 보안> 정리

웹 보안의 기본 요소 - 인증, 접근 통제, 입력값 검증

by Joy L. 2020. 3. 28.
반응형

01 사용자 인증

  • 패스워드
  • 공인인증서
    • 공인인증서는 전자 서명의 검증에 필요한 공개키에 소유자 정보를 추가하여 만든 일종의 전자 신분증이다.
    • 비밀번호처럼 단순한 한개의 정보가 아닌 공개키와 비밀키의 을 이용하여 사용자를 인증하는 공개키 기반 구조(PKI : Public Key Infrastructure) 매커니즘을 사용한다.
    • 공개키 기반 구조는 공개키와 비밀키 쌍을 생성하여 공개키는 와부에 공개하고 비밀키는 소유자 자신만 가지고 있으면서 다른 사람이 공개키로 암호화한 내용을 자신의 비밀키로 복호화하는 방식이기 때문에 사용자의 신원 인증을 강화할 수 있다.
  • 생체인증 (Biometric authentiication)
    사용자 인증을 위한 가장 강력한 방안이다. 사람 그 자체를 인증수단으로 사용한다.
  • 생체인증 예시:
    1. 지문
    2. 손 모양손을 폈을때 손가락의 길이와 굵기 등의 요소들이 인증에 쓰인다. 비교적 간편하고 인증 데이터의 크기도 작아서 빠른 인증을 수행할수 있다. 하지만 손 모양은 완벽히 다르지 않고, 비슷한 사람이 많이 때문에 조작이 가능하다.
    3. 망막눈 뒷부분에 있는 모세혈관의 형태를 이용하여 인증을 수행한다. 정확도가 매우 높지만 검사 시간이 10~15초 정도 걸린다. 눈병에 걸리면 인식률이 떨어지고, 피의 흐름이 멎으면 인식이 불가능해진다.
    4. 홍채홍채의 패턴을 사용해서 인증을 한다. 망막을 이용한 인증보다 정확도가 높기 때문에 망막 인식 기술을 대체하고 있다.
    5. 서명
    6. 목소리
    7. 얼굴
    8. 뇌파
  • 생체인증 성능의 측정
    • 생체인증 성능의 첫번째 기준 : “얼마나 정확하게 그 사람의 신분을 탐지할 수 있는지”
    • FRR(False Rejection Rate / Type I Error)인증 권한이 있는 사람이 인증을 시도했을때 인증에 실패하는 비율. (낮을수록 좋다.)
    • FAR(False Acceptance Rate / Type II Error)인증 권한이 없는 사람이 인증을 시도했을때 성공하는 비율.
    • EER(Error Equal Rate)
    • FAR은 정확도가 놓아짐에 따라 에러율이 내려가고, FRR은 정확도가 올라감에 따라 에러율도 올라간다. EER 또는 CER(Crossover Error Rate)FARFRR그리는 곡선의 교차점을 말한다.
    • 좋은 생체인증 방식은 EER의 에러률이 낮은것이다.

02 접근 통제

접근 통제는 보안을 위한 첫 번째 단계다. 보호해야 할 정보의 가치를 파악하고 그에 따른 적절한 보안 수준을 부여해야한다.

  • 접근통제 모델
  1. DAC(Discretionary Access Control) 임의적 접근 통제.정보의 소유자가 정보의 보안 수준을 결정하고 이에 대한 접근 통제까지 설정하는 모델.eg. Unix file access control
  2. 정보의 소유자가 정보의 보안 수준과 접근 통제를 설정하기 때문에 중앙 집중화된 관리가 어렵다. (central management is difficult)
  3. MAC(Mandatory Access Control) 강제적 접근 통제.중앙 집중화된 정보 관리를 위한 몇가지 모델이 포함된다.
  4. Bell-LaPadula 모델: (정보의 기밀성에 집중)
    • 읽기 - 낮은 보안 수준의 권한을 가진 사람이 높은 수준을 가진 문서를 읽을 수 없다. 자신의 권한보다 낮은 권한의 문서는 다 읽을 수 있다.
    • 쓰기 - 자신보다 높은 수준의 문서에는 쓰기 가능. 낮은 수준의 문서에는 불가능.
  5. Biba 모델: (정보의 신뢰도에 집중)
    • 읽기 - 무결성 수준2를 가진 사람은 수준1의 문서를 읽을 수 있고, 수준3의 정보를 읽을 수 없다.
    • 쓰기 - 2가 1에 쓰기 불가. 3에는 가능.
  6. RBAC(Role-Based Access Control)
    사람이 아닌, 직책에 따라 권한을 부여한다. 각 직책에 대한 권한 세트를 미리 만들어 두고, 새로운 사람이 오면 권한을 할당한다.
  • 접근통제 구현

3가지 방법:

1. Administrative Access Control (관리적 접근 통제)

보안 정책을 구성하고, 절차와 지침(가이드라인)을 개발하는것이 포함된다.

이러한 정책과 지침 내에 어떤 통제가 사용되어야하는지 결정해야한다.

2가지 : 1. 정책 및 절차 수립 2. 직원 통제

2. Logical Access Control (논리적 접근 통제)

기술적 통제라고도 불림.보호해야하는 정보에 접근하는것을 제한하는데 사용되는 하드웨어와 소프트웨어 도구들을 말한다.

3. Physical Access Control (물리적 접근 통제)

네트워크 분리(망 분리), 경계선 보안, 전산실 통제, 데이터 백업 등이 있다.


03 입력 값 검증

  • 취약점 입력 값 검증
    • SQL injection 공격 코드 입력 값 검증
      SQL injection은 입력값을 제대로 검증하지 않았을때 발생한다. SQL injection을 제거하는 가장 효과적인 방법은 prepared statement 객체를 사용해 DB컴파일된 쿼리문을 전달하는 방법이다.
    • XSS 공격 코드 입력 검증
      스크립트 코드를 입력하지 못하도록 방어하는 방법이 가장 효과적이다.
    • <, >, &, 등을 &lt, &gt, &amp, &quot으로 치환한다.
    • Malicious file upload 공격 입력 검증
      필요한 파일 확장자만 업로드를 허용한다. 저장할때에는 확장자를 추측할 수 없도록 문자열 값을 변형하여 저장하는 방법이 안전하다.
  • 입력 값 검증 코드 구현 방법

입력 값 검증을 위한 코드는 클라이언트 측 필터링의 경우 프로그래밍 언어에 포함시키면 burp suite와 같은 웹 프록시를 사용해서 무력화시킬수 있기 때문에 반드시 JSP, ASP와 같은 서버 측 프로그래밍 언어 내에 구현해야한다.

  • 화이트 리스트 필터링: 특정 입력값만 받아드리고 그 외의 값들을 다 필터링하는 방법
  • 블랙 리스트 필터링: 알려진 악성 패턴들에 한해서만 필터링을 구현하는 방법. 대부분의 입력 값은 허용하고 일부 특정 입력 값만 차단할때 사용한다.

웹 어플리케이션은 블랙리스트보다 화이트리스트 필터링 방식을 선호한다

반응형

댓글