핵심 방어 메커니즘
- 권한 없는 사용자, 데이터와 기능에 대한 사용자 접근 처리
- 의도하지 않은 행동을 유발하는 사용자 입력 값 처리
- 공격자에 대한 처리
- 실시간 모니터링 기능을 사용한 애플리케이션 관리
사용자 접근 처리
웹 애플리케이션 통제 3가지 보안 메커니즘
- 인증
- 세션관리
- 접근통제
# 인증
: 사용자가 자기 자신에 대해 어떤 사용자라고 주장하는 사실을 확인하는 것이다.
: 로그인 프로세스가 기본적으로 사용된다.
문제점
:다른 사용자의 아이디와 비밀번호를 추측하거나, 로직에 있는 결함을 악용함으로써 인증 과정을 우회할 가능성이 있다.
# 세션 관리
:인가된 사용자의 세션을 효과적으로 관리하는 것이다.
:애플리케이션은 각 사용자를 위한 세션을 만들어 주거나 사용자에게 세션을 확인하게 하는 토큰을 발행한다.
:세션은 서버에 할당되어 있는 데이터 집합의 구조이다.
:토큰은 애플리케이션이 세션에 나타내는 독특한 문자열이다.
:세션 토큰을 전송하는 표준 방법은 쿠키(Cookie)이다.
문제점
토큰에 대해 매우 의존도가 높기 때문에 공격자의 입장에서는 다른 사용자에게 발행한 토큰에 대해 집중적으로 공격이 이뤄지는 경향이 있다.
# 접근 통제
:애플리케이션에서 사용자의 요청이 허가되는지 아닌지 결정을 내리고 실행하는 것이다.
:항상 강력하게 설계되고, 다양한 요소를 고려해 구현해야 한다.
:사용자에 대한 식별을 통해 적절하게 수행되어야 한다.
사용자 입력 값 처리
:사용자가 입력한 값이 안전한 상태로 처리되어야 한다는 점
:공격자가 입력한 값을 안전한 방식으로 처리하는 것을 '입력 값 검증'이라 부른다.
:'입력 값 검증'은 공격자가 악의적으로 입력한 값에 대한 필수적인 방어 요소이다.
다양한 입력 값
:사용자가 입력한 값뿐만 아니라 브라우저를 통해 전달되는 다양한 데이터 항목을 받아들이기도 한다.
입력 값 조작에 대한 처리 방법
- 위험하다고 알려진 것들은 모두 차단
유효성 검증 메커니즘 : 블랙리스트(비효율적 방법)
:블랙리스트에 매칭되는 데이터를 차단하고 그 외의 값들은 허용한다.
문제점
:블랙리스트 기반 필터는 NULL 바이트 공격에 대한 취약점이 있다.
:차단된 표현식 전에 NULL 바이트를 입력하면 필터는 입력된 값들을 프로세스하지 않기 때문에 표현식을 인식하지 않는다.
- 안전하다고 알려진 것들은 모두 수용
유효성 검증 메커니즘 : 화이트리스트(효과적인 방법)
:화이트리스트에 일치하는 데이터를 허용하고 그 이외의 값은 차단한다.
문제점
사용자 입력 값을 제어하는 문제에 대해서는 완벽한 해결책은 아니다.
불순물 제거
:불안전한 문자를 안전한 상태로 바꾸는 것
경계 검증
:악의적인 입력 값으로부터 애플리케이션을 보호하기 위한 가장 효과적인 접근 방식
다단계 검증과 정규화
:입력 값의 한 부분이라도 수정이 일어나지 않을 때까지 계속 재귀적으로 불순물 제거 작업을 수행하는 것이다.
공격자 핸들링
:공격자가 공격을 실패하게 하기 위해 구현된 방법
- 에러 핸들링
- 감사 로그 관리
- 관리자에게 경고
- 공격에 대응
에러 핸들링
:시스템 기반 메시지나 디버깅 정보를 노출시켜서는 안 된다.
:대부분 웹 개발 언어는 try-catch 구문과 예외 검사를 통해 에러를 다룬다.
:서버에서 처리할 수 없는 에러를 특별한 정보가 없는 임의의 에러 메시지로 설정할 수 있다.
감사 로그 관리
:침해시도에 대한 조사가 이뤄질 때 조사에 우선시되는 요소
:각 이벤트의 시간과 요청이 들어온 곳의 IP 주소, 세션 토큰, 사용자의 계정 등을 기록
- 로그인 성공, 로그인 실패, 비밀번호 변경과 같은 인증 기능과 관련된 모든 이벤트
- 시용카드 결제와 자금 이체 같은 주요 거래
- 접근 통제 메커니즘에 의해 막혀진 접근 시도
- 잘 알려진 공격 문자열을 포함하고 있는 악의적인 의도를 명확하게 표시하는 요청
관리자에게 경고
경고 메커니즘
- 하나의 IP 주소나 한 명의 사용자로부터 비정상적으로 많은 양의 요청을 받은 경우
- 하나의 은행 계좌로부터 평소와 다르게 많은 돈이 인출된 경우
- 잘 알려진 공격 문자열을 포함하는 경우
- 일반 사용자들에게 숨겨진 데이터가 수정된 경우
공격에 대응
:비정상적인 작동을 유발시키는 입력 값을 차단 -> 필터를 우회하는 기법이 있기 때문에 취약점 존재
:공격자의 행동을 무력화하기 위한 자동 대응 조치
ex) 요청에 점차적으로 늦게 대응, 공격자의 세션 종료시키고 다음 공격으로 이어지기 전에 로그인이나 다른 단계를 수행
애플리케이션 관리
:관리란 관리자에게 사용자 계정과 역할 관리, 감시와 감사 기능에 접근, 진단 작업 수행, 애플리케이션의 기능을 설정하는 방법 등 제공하는 애플리케이션 보안 메커니즘의 주요한 부분이다.
- 인증 메커니즘의 약점은 공격자가 전체 애플리케이션을 위험에 빠지게 할 수 있는 관리적인 접근 획득이 가능할 수 있다.
'보안서적 > 웹 해킹&보안 완벽 가이드' 카테고리의 다른 글
웹 애플리케이션 기술 -1 (0) | 2017.05.02 |
---|---|
용어정리 (0) | 2017.04.21 |