티스토리 뷰

※ 일반적인 점검 방법이며, 양호/취약 여부는 사이트에 따라 다르게 적용,논의될 수 있습니다.

항목 고정된 인증정보 이용
대상 권한 기능 대상
항목 설명 o SMS 등 이용자 인증을 위해 생성되는 값에 대해 인증정보 탈취 방지를 위해 가변적인 데이터 사용 여부를 점검
점검 기준 - SMS, ARS 등 이용자 인증 시 매번 동일한 인증코드 생성 여부 점검 등
점검 방법 1. 세션(쿠키) 인증값 유추
1) 로그인 진행
2) 발급받은 세션 쿠키 값 분석
  A) 평문 여부 확인
  B) 인코딩(ex. Base64 등) 값, 암호화 값의 복호화 시도
3) 타 계정 및 권한으로 위변조 시도
4) 위변조한 계정 및 권한으로 동작 확인
 
2. SMS, ARS 인증값 유추
1) 인증 진행
2) 발급받은 인증번호 확인
  A) 인증번호 발급시 동일한 인증번호를 부여하는지 확인
  B) 인증번호 발급시 일정한 패턴이 있는지 확인
  C) 인증번호가 쿠키에 평문 혹은 복호화 가능한 상태로 확인되는지 확인
  D) 인증횟수 제한없이 인증가능한지 확인
3) 인증번호를 추측하여 삽입
4) 인증이 정상 처리되어 다음 과정으로 진행 가능한지 확인

 

항목 서버 인증서 무결성 검
대상 SSL/TLS 적용 대상
항목 설명 o 서버 인증서의 무결성 조건이 위배될 경우,웹브라우저에서 안전하지 않은 웹사이트로 경고하여
이용자의 신뢰를 떨어트릴 수 있음으로 서버 인증서 무결성 점검
점검 기준 - 이용자 PC 브라우저에서 서버 인증서 유효기간이 만료되어 안전하지 않은 웹사이트로 경고 여부 점검
- CN값과 서비스URL이 일치하지 않아 안전하지 않은 웹사이트로 경고 여부 점검
- 서버 인증서 발급기관(CA)이 신뢰할 수 없는 기관이거나, 자체 서명(Self-signed)된 인증서를 사용 여부 점검 등
점검 방법 1. 인증서 유효기간 확인
1) 점검 페이지 접근
2) “자물쇠마우스 오른쪽 클릭
3) “자물쇠(보안)” 클릭
4) “인증서가 유효함클릭
5) 인증 유효기간, 발급기관 확인

 

항목 취약한 HTTPS 프로토콜 이용
대상 SSL/TLS 적용 대상
항목 설명 o 취약한 버전의 암호 프로토콜 사용 시 암호화된 통신 내용이 유출될 수 있어
취약한 버전의 TLS 1.1 이하 사용 여부를 점검
점검 기준 - 취약한 버전의 TLS 1.1사용 가능 여부 점검 등
점검 방법 1. HTTPS 프로토콜 확인
1) Nmap을 이용하여 암호 알고리즘 확인
  ※ 명령어 : nmap –script ssl-enum-ciphers [Target] –p [Port]
2) TLS 1.1이하 취약함
3) 외부 인터넷과의 통신이 되는 경우, SSLLABS 서비스를 이용하여 확인 가능(https://ssllabs.com)

 

항목 취약한 HTTPS 암호 알고리즘 이용
대상 SSL/TLS 적용 대상
항목 설명 o 보안강도가 낮은 암호 알고리즘을 사용할 경우, 중간자 공격 등에 의해 암호화된 통신 내용이 유출 될 수 있는
위협이 발생될 수 있으므로, 암호 알고리즘의 보안 강도의 적절성 여부를 점검
점검 기준  - 보안 강도가 낮은 암호알고리즘 사용 여부 점검 등
점검 방법 1. HTTPS 암호 알고리즘 확인
1) Nmap을 이용하여 암호 알고리즘 확인
  ※ 명령어 : nmap –script ssl-enum-ciphers 0000.co.kr –p 443
2) 아래 암호 알고리즘을 사용하고 있을 경우 양호(사내 기준 확인 필요)
  ※ 기준 : https://ssl-config.mozilla.org/ (Intermediate 기준)
  - TLS-ECDHE-ECDSA-AES128-GCM-SHA256
  - TLS-ECDHE-RSA-AES128-GCM-SHA256
  - TLS-ECDHE-ECDSA-AES256-GCM-SHA384
  - TLS-ECDHE-RSA-AES256-GCM-SHA384
  - TLS-ECDHE-ECDSA-CHACHA20-POLY1305(Openssl 버전에 따라 설정 불가 가능성 존재)
  - TLS-ECDHE-RSA-CHACHA20-POLY1305(Openssl 버전에 따라 설정 불가 가능성 존재)
  - TLS-DHE-RSA-AES128-GCM-SHA256
  - TLS-DHE-RSA-AES256-GCM-SHA384
 
[예외 사항_아래 기준을 부합하는 경우]
kx(키교환방식) = DHE, ECDHE
Au(인증서검증) = RSA, ECDSA
- PFS Ciphers  사용 : ECDHE_RSA, ECDHE_ECDSA, DHE_RSA, DHE_DSS, CECPQ1
Enc(대칭키블록암호화,운용방식) = AESGCM(128), AESGCM(256), CHACHA20
- CBC 암호화 모드는 IV와 서버의 응답을 이용한 Padding Oracle Attack에 취약할 수 있으므로 사용불가
Mac(메시지인증) = SHA256, SHA384, POLY1305

 

항목 취약한 HTTPS 컴포넌트 사용
대상 SSL/TLS 적용 대상
항목 설명 o 취약한 HTTPS 확장 모듈 사용 시 암호화된 정보 노출 등의 위협이 존재함에 따라 취약점 존재 유무 점검
점검 기준 - HTTPS 관련 주요 취약점(CVE-2014-0160:Heartbleed, CVE-2014-0224:OpenSSL, SSL Strip)의 존재 여부 점검 등
* CVE-2014-0160 : OpenSSL의 라이브러리에 버그가 존재하여 서버내 중요 메모리 데이터가 노출될 수 있는 취약점
* CVE-2014-0224 : OpenSSL 통신 상의 CCS(ChangeCipherSpec)메시지 처리과정 중 취약점이 있어 암호화된 정보의 노출 및 변조 가능성이 존재하는 취약점
* CVE-2014-3566 : SSL 3.0을 사용이 허용되어 있을 경우 취약한 SSL 3.0 암호화 통신으로 강제화하는  POODLE 취약점으로 통신 구간 암호를 해독할 수 있는 취약점
점검 방법 1. HTTPS 컴포넌트 취약점 확인
1) Nmap을 이용하여 확인(VULNERABLE 문구 확인)
  A) Nmap 명령어1(CVE-2014-0160) : nmap -p [port] --script ssl-heartbleed [target_host]
  B) Nmap 명령어2(CVE-2014-0224) : nmap -p [port] --script ssl-ccs-injection [target_host]
  C) Nmap 명령어3(CVE-2014-3566) : nmap -p [port] --script ssl-poodle [target_host]

 

항목 취약한 HTTPS 재협상 허용
대상 SSL/TLS 적용 대상
항목 설명 o 암호화된 통신내용이 노출될 가능성이 존재하는 취약한 방식의 HTTPS 재협상(Renegotiation) 허용 여부를 점검
점검 기준 - SSLTEST 결과 insecure client-initiated renegotiation 값 점검 등(ex. No - 양호, supported - 미흡)
점검 방법 1. HTTPS 재협상 허용 확인(Openssl)
1) Nmap을 이용하여 확인
  A) 명령어 : openssl [s_client] -connect [target_host:port]

 

항목 통신구간 암호화 적용 여부
대상 결제 기능 대상 (전자금융 대상)
항목 설명 이용자 개인정보, 거래, 인증정보 등 송수신 구간의 정보를 보호하기 위해
안전한 통신 프로토콜 이용 여부를 점검
점검 기준 - 이용자 개인정보, 신용정보, 인증정보를 취급하는 서비스에 통신구간 암호화 프로토콜 적용 여부를 점검
점검 방법 1. HTTPS 통신 확인
1) 페이지 접근
2) 상단 주소창 HTTPS 여부 확인
3) HTTP 통신으로 강제 접근 가능 여부 확인
4) HTTP 통신이 가능할 경우 Wireshark로 패킷 확인하여 중요정보 평문 통신 확인

  ※ 중요정보 : Password, 주민번호, 카드번호, 계좌번호, I-PIN 번호, 카드검증코드 번호(CVC), 카드 유효기간 등
(사내 중요정보의 기준에 따름)

 

항목 (2024년 기준 삭제) 데이터 평문전송
대상 모든 대상
항목 설명 o 네트워크 데이터 전송 시 중요정보 평문전송 여부를 점검
점검 기준 - 패킷 스니핑 및 웹 프록시 도구를 이용하여 중요정보 평문 노출 여부 점검 등
점검 방법 1. 데이터 평문전송 확인
1) 페이지 접근시 상단 주소창 HTTPS 여부 확인
2) HTTP 통신으로 강제 접근 가능 여부 확인
3) HTTP 통신이 가능할 경우 Wireshark로 패킷 확인하여 평문 통신 확인
    ※ 중요정보 : Password, 주민번호, 카드번호, 계좌번호, I-PIN 번호, 카드검증코드 번호(CVC), 카드 유효기간 등
(사내 중요정보의 기준에 따름)