핵심 방어 메커니즘


- 권한 없는 사용자, 데이터와 기능에 대한 사용자 접근 처리

- 의도하지 않은 행동을 유발하는 사용자 입력 값 처리

공격자에 대한 처리

실시간 모니터링 기능을 사용한 애플리케이션 관리




사용자 접근 처리


웹 애플리케이션 통제 3가지 보안 메커니즘

인증

세션관리

접근통제


인증

: 사용자가 자기 자신에 대해 어떤 사용자라고 주장하는 사실을 확인하는 것이다.

: 로그인 프로세스가 기본적으로 사용된다.

문제점

:다른 사용자의 아이디와 비밀번호를 추측하거나, 로직에 있는 결함을 악용함으로써 인증 과정을 우회할 가능성이 있다.


세션 관리
:인가된 사용자의 세션을 효과적으로 관리하는 것이다.

:애플리케이션은 각 사용자를 위한 세션을 만들어 주거나 사용자에게 세션을 확인하게 하는 토큰을 발행한다.

:세션은 서버에 할당되어 있는 데이터 집합의 구조이다.

:토큰은 애플리케이션이 세션에 나타내는 독특한 문자열이다.

:세션 토큰을 전송하는 표준 방법은 쿠키(Cookie)이다.

문제점

토큰에 대해 매우 의존도가 높기 때문에 공격자의 입장에서는 다른 사용자에게 발행한 토큰에 대해 집중적으로 공격이 이뤄지는 경향이 있다.


# 접근 통제

:애플리케이션에서 사용자의 요청이 허가되는지 아닌지 결정을 내리고 실행하는 것이다.

:항상 강력하게 설계되고, 다양한 요소를 고려해 구현해야 한다.

:사용자에 대한 식별을 통해 적절하게 수행되어야 한다.




사용자 입력 값 처리

:사용자가 입력한 값이 안전한 상태로 처리되어야 한다는 점

:공격자가 입력한 값을 안전한 방식으로 처리하는 것을 '입력 값 검증'이라 부른다.

:'입력 값 검증'은 공격자가 악의적으로 입력한 값에 대한 필수적인 방어 요소이다.


다양한 입력 값

:사용자가 입력한 값뿐만 아니라 브라우저를 통해 전달되는 다양한 데이터 항목을 받아들이기도 한다.


입력 값 조작에 대한 처리 방법

- 위험하다고 알려진 것들은 모두 차단

유효성 검증 메커니즘 : 블랙리스트(비효율적 방법)

:블랙리스트에 매칭되는 데이터를 차단하고 그 외의 값들은 허용한다.


문제점

:블랙리스트 기반 필터는 NULL 바이트 공격에 대한 취약점이 있다.

:차단된 표현식 전에 NULL 바이트를 입력하면 필터는 입력된 값들을 프로세스하지 않기 때문에 표현식을 인식하지 않는다.


- 안전하다고 알려진 것들은 모두 수용

유효성 검증 메커니즘 : 화이트리스트(효과적인 방법)

:화이트리스트에 일치하는 데이터를 허용하고 그 이외의 값은 차단한다.


문제점

사용자 입력 값을 제어하는 문제에 대해서는 완벽한 해결책은 아니다.


불순물 제거

:불안전한 문자를 안전한 상태로 바꾸는 것


경계 검증

:악의적인 입력 값으로부터 애플리케이션을 보호하기 위한 가장 효과적인 접근 방식


다단계 검증과 정규화

:입력 값의 한 부분이라도 수정이 일어나지 않을 때까지 계속 재귀적으로 불순물 제거 작업을 수행하는 것이다.




공격자 핸들링

:공격자가 공격을 실패하게 하기 위해 구현된 방법

- 에러 핸들링

- 감사 로그 관리

- 관리자에게 경고

- 공격에 대응


에러 핸들링

:시스템 기반 메시지나 디버깅 정보를 노출시켜서는 안 된다.

:대부분 웹 개발 언어는 try-catch 구문예외 검사를 통해 에러를 다룬다.

:서버에서 처리할 수 없는 에러를 특별한 정보가 없는 임의의 에러 메시지로 설정할 수 있다.


감사 로그 관리

:침해시도에 대한 조사가 이뤄질 때 조사에 우선시되는 요소

:각 이벤트의 시간과 요청이 들어온 곳의 IP 주소, 세션 토큰, 사용자의 계정 등을 기록

- 로그인 성공, 로그인 실패, 비밀번호 변경과 같은 인증 기능과 관련된 모든 이벤트

- 시용카드 결제와 자금 이체 같은 주요 거래

- 접근 통제 메커니즘에 의해 막혀진 접근 시도

- 잘 알려진 공격 문자열을 포함하고 있는 악의적인 의도를 명확하게 표시하는 요청


관리자에게 경고

경고 메커니즘

- 하나의 IP 주소나 한 명의 사용자로부터 비정상적으로 많은 양의 요청을 받은 경우

- 하나의 은행 계좌로부터 평소와 다르게 많은 돈이 인출된 경우

- 잘 알려진 공격 문자열을 포함하는 경우

- 일반 사용자들에게 숨겨진 데이터가 수정된 경우


공격에 대응

:비정상적인 작동을 유발시키는 입력 값을 차단 -> 필터를 우회하는 기법이 있기 때문에 취약점 존재

:공격자의 행동을 무력화하기 위한 자동 대응 조치 

ex) 요청에 점차적으로 늦게 대응, 공격자의 세션 종료시키고 다음 공격으로 이어지기 전에 로그인이나 다른 단계를 수행




애플리케이션 관리

:관리란 관리자에게 사용자 계정과 역할 관리, 감시와 감사 기능에 접근, 진단 작업 수행, 애플리케이션의 기능을 설정하는 방법 등 제공하는 애플리케이션 보안 메커니즘의 주요한 부분이다.

인증 메커니즘의 약점은 공격자가 전체 애플리케이션을 위험에 빠지게 할 수 있는 관리적인 접근 획득이 가능할 수 있다.

- 다수의 애플리케이션은 관리자 기능에 효과적인 접근 제어를 수행하지 않는다.
관리자 기능은 데이터를 표현하는 사항에 대한 기능을 포함 하는데 XSS 공격은 높은 수준의 권한을 가지고 있는 사용자 세션을 위협하기도 한다.
관리자 기능신뢰되는 사용자에 의해 사용된다고 생각되기 때문에 가끔 다른 기능성 검사보다 덜 엄격한 보안 검사를 받음으로 공격자가 관리자 기능을 탈취해 전체 서버를 장악 할수도 있다.


'보안서적 > 웹 해킹&보안 완벽 가이드' 카테고리의 다른 글

웹 애플리케이션 기술 -1  (0) 2017.05.02
용어정리  (0) 2017.04.21

+ Recent posts