1 분 소요


Sensitive Data Exposure

  • 클라이언트와 서버가 통신 시 SSL(암호화 프로토콜)을 사용하여 중요한 정보를 보호하지 않을 때 발생하는 취약점.
  • 사용자가 민감한 정보를 입력할 때 암호화 저장이 이루어지지 않으면 공격자가 중간에서 정보를 탈취할 수 있다.
  • 또한, 데이터 처리와 암호화 저장이 클라이언트 측에서 이루어질 경우 공격자는 클라이언트 PC를 장악하여 정보 탈취가 가능하므로 데아터 처리와 암호화는 반드시 서버 측에서 이루어지게끔 해야 한다.



Heartbleed Vulnerability

2014.04 에 발견된 OpenSSL 라이브러리 하트비트 확장 모듈의 버그로 인한 취약점

하트비트 확장 모듈에서 클라이언트 하트비트 요청 메시지를 처리할 시 길이 검증을 수행하지 않아 버퍼오버플로우를 발생 시킴

이 결함은 최대 64Kb의 응용 프로그램 메모리 내용 요청 가능

서버의 메모리 정보를 평문으로 볼 수 있어 지속적으로 공격시 ID, PW, 기타 개인 정보 노출 가능


image-20220323035839390

  • Nginx 웹서버는 취약한 OpenSSL 버전을 사용한다고 한다.
  • 8443 포트 번호로 로그인하고 공격 스크립트를 실행하라고 한다.
  • URL : https://[bwappIP]:8443 으로 접속


원리

클라이언트 서버

  • 클라이언트가 서버에 요청시 조건을 하나 걸어서 요청하게되는데, 이 때 참값과 거짓값을 각각 1Kb라 하자.
  • 사용자는 이 조건이 참이면 거짓의 정보를 64Kb로 응답하라라고 요청을하게 됨.
  • 이 때 거짓정보는 1Kb이지만 마치 64Kb인 마냥 서버에 요청을하게 된다.
  • 한편, 서버는 이 1Kb가 64Kb인 걸로 판단하여 응답할 때 나머지 63Kb에 개인정보 노출이라던지, ID, PW를 담아서 응답하게되는 원리.


Kali

image-20220323040033612

  • 다음사이트에서 hearbleed 스크립트를 찾아주자


image-20220323040133803

  • 다운


공격 스크립트

image-20220323041430956

  • 해석 : https://jmoon.co.kr/164


image-20220323042515384

image-20220323042442887

  • 성공



대응방안

OpenSSL 버전 업데이트, 비밀번호 변경 또는 이중 인증, 인증서 재발급, IPS에서 탐지 룰 설정 등으로 하트블리드 취약점을 해결할 수 있다.

운영체제의 정식 홈페이지에서 관련 OpenSSL 업데이트 버전을 설치하고 충분히 테스트한 후 실 서비스에 반영하길 바란다.

업데이트: