[캡쳐 1] https://owasp.org/Top10/A02_2021-Cryptographic_Failures/

암호화(Crypto)란 알고리즘을 이용해 평문 데이터를 인증 키를 가진 사람만이 볼 수 없도록 암호문으로 변환하는 것이다. 즉, 전송하고, 수신하고, 저장하는 정보를 다른 사람이 해독할 수 없도록 하는 것이다. 암호화가 적절히 수행되지 않거나 미수행된 경우 외부의 사용자에게 중요하거나 민감한 데이터가 노출될 수 있다.

OWASP TOP 10 2017에서는 A03 민감한 데이터 노출(Sensitive Data Exposure)로 소개되었으며, 2021에서는 한단계 상승한 A02로 선정되었다.

대응책으로는, 최신 버전의 암호 프로토콜 및 암호 알고리즘을 사용하며, 암호화 키를 고정된 길이 또는 재사용 하지 않도록 한다. 금융 정보와 개인정보의 경우 법과 규정에 따라 안전히 보호하기 위한 추가조치를 수행해야 한다. 국내에 관련된 규정으로는 개인정보보호법, 정보통신망법, 신용정보법, ISMS-P 인증, ISO 27001 인증 등이 있다.

 

취약점 유형

데이터가 평문 전송되는 경우(HTTP, FTP, TELNET 등)
취약한 암호 프로토콜을 사용하는 경우(SSL v2.0, SSL v3.0, TLS v1.0, TLS v1.1)
취약한 암호 알고리즘을 사용하는 경우(DES, RC4, MD5 등)
고정된 암호 키나 암호키를 재사용하는 경우(Salt와 같은 일회용 난수 미사용)
미흡한 암호화 키 관리(하드코딩 등)

 

공격 시나리오

[캡쳐 2] bwapp 민감 정보 노출

공격자가 네트워크를 스니핑하고 있는 상태에서 중요 정보(계정정보, 세션ID 등)가 포함된 데이터를 평문 전송하는 경우, 공격자는 평문으로 노출된 중요 정보를 통해 해당 시스템에 로그인할 수 있다.

 

대응방안

레거시 프로토콜 미사용
최신 버전의 암호 프로토콜, 알고리즘 사용
보안 헤더 설정을 통한 HSTS(HTTP Strict Transport Security_HTTP를 HTTPS로 강제 리다이렉트) 설정
의사 난수 생성기 등을 통해 일회용 난수를 생성해 암호키 또는 암호문 생성시에 적용
신뢰할 수 있는 기관에서 발행한 인증서 사용

+ Recent posts