SSL/TLS 보안 정보

3928 단어 tlsssllinuxsecurity
우리는 네트워크를 통해 민감한 데이터를 전송할 때 안전하게 느끼기를 원합니다. 이를 위해 SSL/TLS를 통해 보호되는 HTTP 프로토콜인 HTTPS 트래픽을 사용합니다. 기밀성과 인증을 확인합니다. 이 마지막 확인은 . HTTP 프로토콜 전송과 관련된 취약점을 테스트하는 방법을 살펴보겠습니다. 우리는 무엇을 사용할 것입니까?

Openssl

official site에 설명된 대로 openssl은 컴퓨터 네트워크를 통한 통신을 도청으로부터 보호하거나 상대방을 식별해야 하는 응용 프로그램용 소프트웨어 라이브러리입니다. 일반적으로 Linux 시스템에 포함되지만 데비안 기반 시스템에서는 sudo apt install openssl 를 사용하여 설치할 수 있습니다.

nmap

nmap은 컴퓨터 네트워크에서 호스트와 서비스를 검색하는 데 사용되는 보안 스캐너입니다. 데비안에서는 sudo apt install nmap 를 사용하여 설치할 수 있습니다. 이것은 보안을 위해 널리 사용되는 도구이므로 가지고 있지 않고 사이버 보안에 관심이 있다면 반드시 설치해야 합니다.

좋아, 해보자. SSL/TLS 보안을 테스트할 때 무엇을 찾아야 합니까? 먼저 약한 암호나 프로토콜이 있는지 확인합니다. 이 주제에 대한 OWASP wiki에서 설명한 것처럼 익명의 Diffie-Hellmann은 인증 취약성 또는 SSLv2 프로토콜의 좋은 예입니다. nmap을 사용하면 예를 들어 nmap [target]를 사용하여 호스트를 스캔할 수 있습니다. 핑 전용 스캔 사용nmap -sn [target] ; nmap -PS [target]를 사용하는 TCP SYN 핑. 표준 서비스 스캔인 -sV를 사용하려고 합니다.

nmap -sV www.example.com

-PN , --top-ports 등과 같은 다른 사용자 지정 옵션을 사용할 수 있습니다. 어쨌든 이 마지막 명령으로 SSL 서비스를 식별할 수 있습니다. 이제 인증서 정보, 약한 암호 및 SSLv2 각 포트를 확인할 수 있습니다. 예제에서는 443,465,993,995를 확인하고 있지만 각 경우에 사용자 정의해야 합니다.

nmap --script ssl-cert,ssl-enum-ciphers -p 443,465,993,995 www.example.com


마지막으로 openssl은 openssl을 사용하여 클라이언트가 서버에 연결하여 재협상을 시작하려는 SSL/TLS를 수동으로 테스트하는 데 사용됩니다.



openssl s_client -connect www.example.com:443


기본 구성 및 사용자 정의 호스트를 사용하여 이 모든 것을 자동화하기 위해 간단한gist을 만들었습니다. 분석을 위해 출력을 세 가지 다른 파일에 저장합니다. 코드는 다음과 같습니다.

#!/bin/bash

BLUE='\033[0;36m'
RED='\033[0;31m'
NC='\033[0m' # No Color

#based in OWASP wiki

if [[ -z "$1" || -z "$2" ]]; then
   echo "./tls.sh host directory"

else

    mkdir $2
    cd $2

    echo -e "${BLUE}Checking for Client-initiated Renegotiation and Secure Renegotiation via openssl...${NC}"
    openssl s_client -connect $1:443  > negotiations

    if grep -q 'Secure Renegotiation IS NOT supported' "negotiations"; then
      echo -e "${RED}Secure Renegotiation IS NOT supported.${NC}"
    else
      echo -e "${BLUE}Certificate validity ensured.${NC}" 
    fi

    echo -e "${BLUE}Checking for Certificate information, Weak Ciphers and SSLv2 via nmap...${NC}"
    nmap --script ssl-cert,ssl-enum-ciphers -p 443,465,993,995 $1 > ciphernmap

    if grep -q SSLv2 "ciphernmap"; then
      echo -e "${RED}Weak protocol found (SSLv2).${NC}"
    else
      echo -e "${BLUE}No weak protocol found.${NC}" 
    fi

    echo -e "${BLUE}SSL service recognition via nmap...${NC}"
    nmap -sV --reason -PN -n --top-ports 100 $1 > nmapsslservice

    echo -e "${BLUE}Done.${NC}"

    echo -e "${RED}Don't forget to manually check the files created in case of doubt. Check OWASP wiki for more information.${NC}"

fi


자세한 내용은 어메이징wiki of OWASP을 참조하십시오.

좋은 웹페이지 즐겨찾기