CH6 : 웹보안(2)

김마사키·2022년 4월 16일
0

사이버보안개론

목록 보기
5/6

SSL/TLS

SSL/TLS

  • SSL : Secure Socket Layer

  • TLS : Transport Layer Security

  • Network를 통해 작동하는 server, system, 응용프로그램 간 인증 및 데이터 암호화를 제공하는 암호화 프로토콜

  • L4, Transport layer 에서 동작

  • SSL : Secure Socket Layer
    • TLS의 기반
    • web server <-> client 혹은 server <-> server 사이에 전송된 데이터를 암호화하여 인터넷 보안 연결을 유지하는 표준 기술
    • 1990s, netscapte 가 개발
    • IETF
      • SSL 2.0, SSL 3.0 보안상 결함으로 사용 중지
      • 1999, 표준화 TLS (SSL 3.0 기반)
  • 대칭키암호, 공개키암호, 단방향 해시함수, MAC, RNG 전자서명을 조합하여 안전한 통신 수행
  • SSL, TLS가 지속적으로 update -> SSL/TLS로 함께 묶여 분류

SSL/TLS 의 적용

  • Client-Server 통신 시, 도청, 간섭, 위조를 방지하기 위해 설계

  • 모든 종류의 Internet traffic을 암호화

  • HTTPS (Hyper Text Protocol Secure)

    • 웹사이트를 SSL/TLS 인증서로 보안하는 경우 URL창에 표시
    • HTTPS 구조
  • TLS Layer

1) Handshake : 보안 협상을 위한 프로토콜
2) Change Cipher Spec : 보안 파라미터를 변경하거나 적용할 때 사용
3) Alert : 오류 전송할 때 사용되는 프로토콜
4) Application Data : 실제 데이터가 전송될 때 사용되는 프로토콜
5) Recode : 암/복호화, 무결성 검증 등을 수행하는 프로토콜

SSL/TLS 발전 과정

  • 호환성 문제로 기존 버전들도 사용 중
    ( SSL 2.0, SSL 3.0 보안상 결함으로 사용 중지 )

SSL/TLS 보안상 취약점

  • TLS v1.2
    취약점 = 기존의 암호화 기술 사용 허용

    • MITM 공격에 특히 취약

    • 기존 암호화 기술들은 컴퓨터 발전으로 더욱 공격에 취약해짐

  • TLS v1.3 (보안성 강화)

    • 레거시 암호화 시스템에 대한 불필요한 자원 모두 제거

    • server에서 인증서를 암호화하여 전달

    • 최초 연결 시 암호화 통신 개시 절차 간소화

    • 오래된 암호 기술 폐기

SSL/TLS 과정

1. 지원 가능한 알고리즘 교환

  • 상호 간 암호 스위트 교환
  • 암호화 방법, 메시지 인증 코드 (MAC) 결정

2. 키 교환, 인증

  • 공개키 or 미리 공유된 키 사용
  • 서로 신원 인증

3. 대칭키 암호로 암호화 후 메시지 인증

  • 암호화된 통신 수행
  • HMAC 해시 함수로 메시지 인증 코드 만들기

SSL/TLS Handshake

Handshake

  • TlS에서 보안 채널을 만들기 위해, 실제 데이터를 보내기 전 서로 합의하며 준비하는 과정

  • 보안 채널 설정

    • 상대방 신원 파악
    • 암호화 방식 결정
    • 각종 파라미터 합의 및 세션키 생성

웹 서버 보안

개요

  • web server의 역할 = 각 기업들의 중요 정보를 접근하기 위한 진입점, 실제 서비스를 제공하는 서비스 주체

  • web server의 보안 취약점

    • web server 자체 약점
    • web server가 동적 콘텐츠를 만드는 부분
    • client side에서 실행되는 script (CSS)

1) Apache

  • 제조사 : 비영리 단체, apache software

2) IIS (Internet Information Services)

  • 제조사 : Microsoft

1. 계정 관리

  • web server를 실행시키는 OS 상의 사용자는 최소 권한을 가져야 함
  • web server는 그저 공격당할 가능성 존재
  • Apache = root가 아닌 다른 사용자 계정 사용 (apache)
  • IIS = 서비스 시작하는 계정을 새로 추가한 사용자로 재지정 (IIS_NOBODY)

2. 파일 관리

1) 디렉터리 검색 방지

  • 디렉터리 검색 Directory listing = web browser -> web server 디렉터리 정보 요청했을 때, 디렉터리 내의 모든 파일 목록을 보여주는 기능

  • 보안 위험성

    • 외부 공격자가 내부 디렉터리 내용 확인
    • server의 내부 구조, 백업 파일, 소스 파일 공개
  • Apache = 환경 설정 파일 httpd.conf에 설정되어 있는 '디렉터리 검색 기능' 제거
  • IIS = IIS 관리자 화면에서 ‘디렉터리 검색’ 을 ‘사용 안 함’으로 설정

2) 불필요하게 설치된 파일 제거

  • web server 설치 시, 기본적으로 제공되는 메뉴얼파일 및 예제스크립트 파일 등은 web server의 정보 및 OS에 대한 정보 제공

  • Apache = 설치 디렉터리 바로 밑에 있는 매뉴얼 파일
    - /htdocs/manual 혹은 /manual

  • IIS = 예제 스크립트 파일
    - C:\inetpubs\iissamples
    - C:\winnt\help\iishelp
    - C:\Program files\common files\system\msadc\sample

  • IIS 7.0 이상 : 예제 스크립트 파일 기본 제공 X

3. 서비스 관리

1) 파일 업로드 및 다운로드의 최대 크기 설정

  • 파일 최대 크기 설정의 필요성
    • 부주의, 악의적 사용자에 의한 서비스 중지 위험
    • 소수의 대용량 사용자로 인한 피해 (fairness)
    • 중요 자료가 대량으로 외부에 유출될 가능성
  • Apache = httpd.conf의 각 디렉터리 내에 LimitRequestBody 설정
  • IIS = 환경설정파일 applicationhost.config에 있는 속성 값 설정

2) 관리자 페이지 접근통제

  • Web server, Web page 등 접근하는 사용자를 IP 주소 등을 통해 통제

3) 메소드 제한

  • 불필요한 메소드 DELETE : server 측의 주요 자원이 삭제될 위험 존재
  • 꼭 필요한 메스드 GET, POST, HEAD 등만 허용

4) 헤더정보 숨김

  • response header 응답 헤더에 불필요한 (server에 관한 구체적인 정보)가 포함되지 X

4. 로그 관리

  • web site에 방문한 기록에 대한 관리

IIS

  • W3C format

Apache

  • NCSA format
    e.g ) LogFormat "%h %l %u %t \"%r\" %>s %b \"%{User-Agent}i\" %T" combined

0개의 댓글