실상 엘라스틱 서치에 자체적으로 존재하는 보안은 SECURE GURD만 있다고 무방하다.

 

그 외에 존재하는 LDAP, OAuth, SAML과 같이 대부분의 기업이 자체적으로 사용하는 인증 시스템을 도입하는 경우가 많다

[실제로 현재 엘라스틱 서치 최신 버전인 8.x을 보면 이런 점을 의식한 것인지 보안을 강제하는 경우도 생겼다.]

 

실상 보안의 종류가 적은 편이라 이유를 찾기 애매하지만 굳이 이유가 붙을 만한 요소는 SSL 정도가 있을 것이다. SSL/TSL은 흔히 데이터 전송 보호 및 무결성을 보장하기 위해서 존재한다. 엘라스틱 서치는 분산 환경으로 보통 구성되고 노드간의 통신이 많은 편이다. 데이터가 자주 왕래하는 만큼 데이터 네트워크 통신의 보안이 중요해 진 것이다.

 

Q. 하지만 VPN과 방화벽도 네트워크 보안을 수행해 줄 수 있을 텐데 굳이 SSL/TLS를 사용한 이유가 있는가?

A. 있다. VRN의 경우 네트워크 트래픽을 보호하는 것은 맞지만, 엘라스틱 서치 내부 노드간 트래픽 보호가 안된다. 방화벽은 특정 IP만 허용하지만 네트워크 내부 공격(내부 직원, 관리자, 감염된 내부시스템에 의한 공격)에 취약한 점은 마찬가지이다.

 

왜 SSL은 내부 공격에도 강한가?

더보기

🔍 SSL/TLS가 내부 공격을 방어하는 방식

VPN과 방화벽이 네트워크 보안을 강화해도, Elasticsearch 내부 노드 간 통신을 보호하지 못하는 문제가 있습니다.

SSL/TLS는 이러한 내부 공격을 방어하는 핵심 역할을 합니다.


1️⃣ 내부 공격(Insider Attack)이란?

VPN과 방화벽만 사용하면 발생할 수 있는 내부 공격

  • VPN은 외부 트래픽을 암호화하지만, 내부 트래픽은 보호하지 않음
  • 방화벽은 외부 접근을 차단하지만, 내부 공격(관리자, 직원, 내부 감염된 시스템)에는 취약함

🔻 내부 공격의 예시

  1. 내부 관리자가 네트워크에서 Elasticsearch 데이터 패킷을 가로채서 조회
  2. 감염된 내부 시스템(악성코드에 감염된 서버)이 네트워크에서 통신을 가로채고 데이터 유출
  3. 권한이 없는 직원이 Elasticsearch 트래픽을 감청하여 고객 정보를 탈취

VPN과 방화벽만으로는 위 공격을 방어할 수 없음!

Elasticsearch 내부 노드 간 트래픽도 안전하게 암호화해야 함


2️⃣ SSL/TLS가 내부 공격을 방어하는 방법

SSL/TLS는 Elasticsearch 내부 노드 간 통신을 암호화하여 데이터를 보호합니다.

🔹 📌 SSL/TLS의 주요 보안 기능

기능 설명
1. 데이터 암호화 (Encryption) - 노드 간 트래픽을 암호화하여 패킷 감청을 방어- 관리자가 네트워크를 감청하더라도 내용을 볼 수 없음
2. 무결성 보호 (Integrity Protection) - 트래픽이 **중간에서 변조되는 것(Man-in-the-Middle Attack, MITM)**을 방지
3. 인증(Authentication) - 서버와 클라이언트가 신뢰할 수 있는 인증서로만 통신- 공격자가 가짜 Elasticsearch 노드를 만들어도 접근 불가능

3️⃣ 예제: VPN/방화벽과 SSL 적용 차이

🚨 [방화벽 & VPN만 사용한 경우]

✅ 방화벽: 특정 IP만 허용

✅ VPN: 외부에서 내부로 오는 트래픽은 보호

내부 네트워크 공격에 취약

Elasticsearch 노드 간 통신 감청 가능

➡ 내부 직원이 네트워크 스니핑(패킷 감청) 도구(예: Wireshark)로 데이터를 가로챌 수 있음!


🛡️ [SSL/TLS를 적용한 경우]

Elasticsearch 노드 간 트래픽 암호화

내부 감청 및 변조 방지

MITM(중간자 공격) 방어

패킷 감청을 시도해도 암호화되어 해독 불가능

➡ 내부 공격자가 패킷을 가로채더라도 내용을 볼 수 없음!


4️⃣ 결론: SSL/TLS는 내부 네트워크 보안의 마지막 방어선

  • VPN, 방화벽만으로는 내부 네트워크 공격을 완벽히 방어할 수 없음
  • SSL/TLS는 노드 간 트래픽을 암호화하여 내부 패킷 감청 및 변조를 방어
  • Elasticsearch 보안의 필수 요소로 SSL/TLS 적용이 권장됨!

💡 즉, 방화벽과 VPN은 외부 위협을 막지만, SSL/TLS는 내부 공격을 방어하는 역할을 함! 🚀

위의 접은글의 내용 대로 사실 다양한 이유가 있지만, 가장 큰 이유는 SSL/TLS가 보편적인 데이터 전송 보안에 해당하는 것이 큰 이유이다. 많은 공인된 기관이 인증한 보안 표준인 점이 실상 큰 사용에 이유로서 알려져 있다.

실제로 엘라스틱 서치에 적용 가능한 보안은 한정적이기에, 다음의 보안들이 추가되었다.

  1. SSL/TLS 적용 = 데이터 전송 암호화
  2. 사용자 역할별 인증 활성화 RBAC = 역할별 인덱스 접근 제한
  3. Audit Logging(감사 로깅) = 접근자, 데이터등을 감시

사실 4번의 경우 logback을 사용해서 로그 데이터를 이미 저장하고 있는데 왜 굳이 필요하냐라고 할 수 있는데, logback에서 나오는 로그는 스프링 애플리케이션의 로그만 저장된다.

 

엘라스틱 서치의 보안에 해당하는 로그 (인증 실패, 접근 차단, 역할 변경, 수십번 로그인 시도, 계정 마다의 행동 기록)의 경우 logbackd으로는 당연히 저장이 안된다. 이를 위해서 Audit Logging 설정이 필요하다.

 

+ Recent posts