[정보 보안 개론] 웹 보안(민감한 데이터 노출)

Jin_Hahha·2024년 10월 21일
0

정보 보안 개론

목록 보기
14/17


민감한 데이터 노출(A6. Sensitive Data Exposure)

  • 민감한 데이터를 보호하려면 중요도에 따라 암호화 로직을 사용하고 데이터베이스 테이블 단위에서 암호화를 수행해야 함
  • 인터넷 뱅킹과 같이 보안성이 중요한 시스템에서는 웹 트래픽을 암호화
    • 이때 사용하는 암호화 알고리즘이 약하거나 암호화 구조에 문제가 있다면 웹 트래픽이 복호화되거나 위조 및 변조될 수 있음

공격 방어 취약점(A7. Insufficient Attack Protection)

  • 지능형 지속 공격이 일반화되면서 기존의 보안 솔루션으로 탐지하기 어려워짐
    • 웹 애플리케이션 수준에서 기본적인 입력 유효성 검사를 넘어 자동으로 탐지, 로깅, 응답 및 공격 시도 차단을 포함하도록 권고

CSRF 취약점(A8. Cross-Site Request Forgery)

  • 특정 대상이 없고 불특정 다수 대상으로 로그인된 사용자가 자신의 의지와 무관하게 공격자가 의도한 행위(수정, 삭제, 등록, 송금)를 하게 만드는 공격
  • 기본적으로 XSS 공격과 매우 유사, XSS 공격의 발전된 형태로 보기도 함
  • XSS 공격은 클라이언트에서 악성 스크립트가 동작하는데, CSRF는 사용자가 악성 스크립트를 서버에 요청하는 형태

  • 위의 그림은 CSRF 공격 구조를 나타냄

  • 예시 사례로 온라인 쇼핑몰에서 특정 물품을 장바구니에 넣어두고 결제는 다른 사용자를 통해 할 수 있음

  • wishfree라는 계정이 주문한 물품에 대해 10,000원을 결제하라는 내용을 담고 있음

  • 결과적으로 위의 내용이 작성된 게시물을 열람하는 사용자는 wishfree가 주문한 물품을 대신 결제하게 됨

  • 일반적으로 CSRF 공격이 성공하려면 사용자를 구분하는 인숫값이 존재하지 않아야 함
    • 사용자 구분 인수가 있으면 한 사용자에게만 적용되거나 인증 과정을 통해 CSRF 공격을 막을 수 있기 때문

취약점이 있는 컴포넌트 사용(A9. Using Components with Known Vulnerabilities)

  • 보안에 취약한 컴포넌트가 악용되는 경우에는 심각한 데이터 손실이 발생하거나 서버가 장악될 수 있음
  • 사용하려는 컴포넌트, 라이브러리 등의 보안 취약점이 무엇인지 충분히 검토할 필요가 있음

취약한 API(A10. Underprotected APIS)

  • 웹의 사용 환경이 다양해지면서 웹 서비스 상호 간의 연동이 많아지고 해당 활동이 API를 통해 이루어지곤 함
  • 컴포넌트, 라이브러리 사용과 마찬가지로 보안에 취약한 API는 보안 문제를 초래할 수 있으므로 충분히 검토해야 함

웹의 취약점 보완

특수 문자 필터링

  • 웹 취약점은 다양하지만 몇 가지의 보완을 통해 막을 수 있음
  • 대표적인 것은 특수 문자 필터링
  • 웹 해킹의 기본 형태 중 하나는 인수 조작
  • 예외적인 실행을 유발하기 위해 일반적으로 특수 문자를 포함하게 되어 있음

  • 위의 표는 필터링이 필요한 주요 특수 문자
  • 본문에 포함되는 주요 특수 문자를 아래와 같은 함수를 이용하여 제거, XSS 취약점 공격 방어 가능

서버 통제 적용

  • 파일 업로드 취약점이나 특수 문자 필터링 수행 중 주의사항
    • 자바스크립트 등을 사용하여 클라이언트에서 필터링하면 안 됨
    • 클라이언트 기반의 필터링은 웹 프록시를 통해 웹 브라우저에 전달
      • 이 과정에서 변조될 가능성이 있음

  • 위의 그림은 사용자 입력을 필터링하여 SQL 삽입 공격에 실패한 경우를 나타냄
    • 해당 상황을 봤을 때, 필터링 로직은 백 엔드에서 수행해야 한다는 것을 알 수 있음

지속적인 세션 관리

  • URL 접근 제한에 실패하지 않기 위해서는 모든 웹 페이지에서 세션에 대한 인증을 수행해야 함
    • 모든 웹 페이지에 대해 일관성 있는 인증 로직을 적용하려면 기업 단위 또는 웹 사이트 단위에서 세션 인증 로직을 표준화해야 함
    • 모든 웹 페이지를 개발할 때 표준을 준수하도록 해야 함

0개의 댓글