2021-12-18 그림으로배우는 HTTP & Network (13주차)

웹 공격 기술

  • HTTP에는 보안 기능이 없다
    • 인증이나 세션관리 기능을 개발자가 설계하고 구현할 필요가 있다.
  • 리퀘스트는 클라이언트에서 변조 가능
    • 웹 애플리케이션에 대한 공격은 HTTP리퀘스트 메시지에 공격 코드를 실어서 실행된다.
    • 쿼리나, 폼, 헤더, 쿠키 등을 경유해서 보내져 취약성이 있을경우 정보를 도둑맞거나 권한을 뺐긴다.

웹 애플리케이션에 대한 공격 패턴

  • 서버를 노리는 능동적 공격
    • 공격자가 직접 웹 애플리케이션에 액세스해서 공격 코드를 보내는 타입의 공격
    • 공격자가 리소스에 액세스할 필요가 있다
    • 대표적으로 SQL인젝션과 OS커맨드 인젝션 등이 있다
  • 유저를 노리는 수동적 공격
    • 유저에게 공격 코드를 실행시키는 공격이다.
    • 공격자가 설치한 함정에 유저를 유도한다. 함정에는 HTTP 리퀘스트를 발생시키기 위한 장치가 있다.
    • 함정에 걸리면 유저의 브라우저나 메일 클라이언트에서 열게 된다.
    • 공격코드를 실행하면 유저가 가지고 있는 쿠키 등의 기밀 정보를 도둑맞거나 유저의 권한이 악용된다.

출력값의 이스케이프 미비로 인한 취약성

  • 크로스 사이트 스크립팅
    • 취약성이 있는 웹사이트를 방문한 사용자의 브라우저에서 부정한 HTML 태그나 Javascript등 을 동작시키는 공격이다.
    • 가짜 입력 폼 등에 의해 유저의 개인 정보를 도둑 맞는다.
    • 스크립트에 의해 유저의 쿠키 값이 도둑맞거나 피해자가 의도하지 않는 리퀘스트가 송신된다.
    • 가짜 문장이나 이미지 등이 표시된다.
  • SQL 인젝션
    • 데이터베이스 내의 데이터 부정 열람이나 변조
    • 인증 회피
    • 데이터베이스 서버를 경유한 프로그램 실행 등
  • OS 커맨드 인젝션
  • HTTP 헤더 인젝션
    • 임의의 쿠키 세트
    • 임의의 URL에 리다이렉트
    • 임의의 바디 표시
  • 디렉토리 접근 공격
    • 비공개 디렉토리의 파일에 대해서 부정하게 디렉토리 패스를 가로질러 액세스하는 공격
    • 상대경로를 지정하거나 절대경로를 지정해 임의의 파일에 액세스
Written on December 18, 2021