웹 해킹 & 보안 완벽 가이드 02장 정리

2023. 9. 27. 22:37웹 해킹 & 보안 완벽 가이드 정리

02 핵심 방어 메커니즘

사용자 접근 처리

인증

  • ? 의 신원을 확인하는것

세션 관리

  • 토큰을 발급하여 사용자를 식별하고 서비스를 제공하는 것이 가능해집니다.
  • 세션 관리는 토큰에 매우 의존하기 때문에, 공격자는 주로 집중적으로 공격을 시도하는 경향이 있습니다.

쿠키와세션의 차이점

쿠키는 클라이언트에서 저장되고, 세션은 서버에서 저장됩니다.

접근 통제

  • 특정 데이터에 대한 사용자 의 요청이 허가 여부

사용자 입력 값 처리

다양한 입력 값

  • 입력값에는 규칙이 있어야 합니다. input 값은 적당한 길이를 초과하지 말아야 하며, HTML 태그 등을 포함해서는 안 됩니다.

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

  • 위험하다고 알려진 것들은 모두 차단 : 블랙리스트를 활용하는 접근 방법이다. (사용자가 입력한 값에 대한 검증으로는 가장 비효율적인 방법이다.)

SELECT가 막힌 경우 SelEct를 시도해볼 수 있다.

or 1=1— 가 막힌 경우 or 2=2— 를 시도해볼 수 있다.

alert(’xss’)가 막힌 경우 prompt(’xss’)를 시도해볼 수 있다.

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

  • 안전하다고 알려진 것들은 모두 수용 : 화이트리스트를 사용한다. 화이트리스트 기반의 처리 방법은 효율적이지만, 사용자 입력 값을 제어하는 문제에 대해서는 완벽한 해결책이 아닙니다.
  • 불순물 제거: 불안전한 데이터를 거부하는 대신, 입력 값이 악영향을 미칠 가능성을 예방하기 위해 다양한 방법으로 검토합니다. EX) 사용자의 입력값이 삽입되기 전에 HTML 인코딩을 하는 것입니다.
  • 안전한 데이터 처리: 사용 가능한 안전한 프로그래밍 메소드
  • 의미론적 검증: 정상적인 사용자의 데이터인지 공격자의 데이터인지를 구별하는 의미적 유효성 검증 작업입니다.

경계 검증

  • 사용자가 입력한 데이터가 서버 측 애플리케이션에 의해 수신되었을 때, 이를 기반으로 신뢰할 수 있는지 여부를 확인하기 위해 광범위한 신뢰 경계를 나누어 점검합니다.

다단게 검증과 정규화

  • 다단계 검증 <script> 가 필터링이 되어있다면 <scr<script>ipt> 으로 필터를 우회할 수 있다.
  • 데이터 정규화에서도 비슷한 문제점이 발생할 수 있습니다. 이중 URL 인코딩을 사용하여 필터를 우회할 수 있습니다. (정규화란? 데이터를 일반적인 문자 조합으로 변환하거나 디코딩하는 과정입니다.)

공격자 핸들링

에러 핸들링

  • 장황한 에러 메시지는 악의적인 사용자가 애플리케이션에 대한 공격을 유발하는 데 도움이 될 수 있습니다.

감사 로그 관리

  • 감사 로그란? 침해 시도에 대한 조사가 이뤄질 떄 조사에 우선시되는 요소들이다.

관리자에게 경고

  • 대부분의 공격 시도는 실시간으로 즉각적인 조치를 취하는 것이 바람직하다.
  • 하나의 IP 주소나 한 명의 사용자로부터 비정상적으로 많은 양의 요청을 받은 경우
  • 하나의 은행 계좌로부터 평소와 다르게 많은 돈이 인출된 경우
  • 잘 알려진 공격 문자열을 포함한 경우
  • 일반 사용자들에게 숨겨진 데이터가 수정된 경우

공격에의 대응

  • 효과적인 입력 값 검증 메커니즘에서는비정상적인 입력값들을 악의적인 위험이 있다고 생각하고 입력 값을 차단한다.

애플리케이션 관리

  • 유용한 애플리케이션은 관리돼야 한다. 관리자 기능 통해서…