Elasticsearch 보안 가이드
부터엘라스틱서치2010년 Shay Bannon이 처음 출시한 이후 많은 기업이 데이터베이스와 문서를 탐색하는 데 사용하는 시장에서 가장 널리 사용되는 검색 및 분석 엔진 중 하나가 되었습니다. 그러나 보안되지 않은 데이터베이스 하루에 18번이나 해커의 공격을 받는 상황에서 Elasticsearch를 보호하는 것은 데이터 침해를 예방하는 데 매우 중요합니다.
이 Elasticsearch 보안 가이드에서는 엔진 보안을 유지하기 위한 몇 가지 모범 사례와 서비스를 모니터링하는 데 사용할 수 있는 몇 가지 모니터링 도구를 살펴보겠습니다.
해커는 어떻게 Elasticsearch에 침입하나요?
Elasticsearch는 네트워크 전체에서 문서 저장소 역할을 하며, 이를 통해 데이터를 보다 효율적으로 찾는 데 도움이 되지만 사이버 범죄자의 주요 표적이기도 합니다. 많은 해커들은 기업이 정기적으로 서비스를 적절하게 구성하지 못한다는 것을 알고 있습니다. 이로 인해 권한이 없는 사용자가 인스턴스 내에 포함된 정보에 액세스할 수 있는 취약점이 발생합니다.
한 가지 예는 올해 초에 발생했습니다. 해커 자동화된 스크립트를 사용하여 웹에서 비밀번호가 없는 보호되지 않은 ElasticSearch 시스템을 검색하고 침입하여 데이터를 삭제했습니다. 이 신비한 해킹은 Elasticsearch의 잘못된 구성을 악용하는 많은 데이터 침해 중 하나입니다.
불행히도 이러한 해킹은 공격자가 Shodan, BinaryEdge, Censys 및 ZoomEye와 같은 검색 엔진을 사용하여 취약한 IP 주소 및 포트를 찾기 위해 웹을 크롤링할 수 있기 때문에 수행하기 쉽습니다. 이러한 위반 시도를 방지하는 유일한 방법은 적절한 구성을 배포하는 것입니다.
Elasticsearch 모범 사례
열린 포트를 닫는 것부터 사용자 인증 및 액세스 제어에 이르기까지 탄력적 검색을 보호하기 위해 취할 수 있는 다양한 조치가 있습니다. 이 섹션에서는 Elasticsearch를 사용할 때 보안 위험을 최소화할 수 있는 몇 가지 방법을 살펴보겠습니다.
1. 인터넷에 연결하지 마세요
Elasticsearch를 보호하는 가장 간단한 방법 중 하나는 인터넷에 연결되어 있지 않은지 확인하는 것입니다. Elasticsearch를 노출하면 데이터가 악의적인 엔터티 및 DoS 공격에 노출될 수 있습니다. Elasticsearch의 기본 설정은 노드를 localhost에 연결하지만 Elasticsearch의 YAML 구성 파일에 있는 네트워크/호스트를 사용하여 노드를 개인 또는 보안 공용 IP에 바인딩할 수도 있습니다.
2. 열려 있는 포트를 닫습니다.
열린 포트는 공격자가 네트워크에 액세스하는 데 사용할 수 있는 보안 위험을 나타냅니다. 열린 포트를 닫으면 사이버 범죄자가 악용할 수 있는 주요 취약점이 제거됩니다. Elasticsearch는 요청에 포트 9200을 사용하고 노드 간 클러스터 통신에 9300을 사용합니다. 이러한 포트가 열려 있으면 인증되지 않은 사용자가 Elasticsearch의 API를 호출하여 데이터 복사, 삭제, 암호화 등의 작업을 수행할 수 있습니다.
공용 인터넷에서 서비스에 액세스할 수 없도록 모든 노드에 대해 포트 9200 및 9300을 차단합니다. 포트를 닫으면 해커가 귀하의 정보를 자유롭게 수집할 수 없습니다.
3. HTTP 지원 노드를 개인 IP로 제한하고 HTTP를 비활성화합니다.
탄력적 검색이 수신할 IP를 제한하는 것은 공용 IP가 액세스할 수 없도록 하는 데 필수적입니다. network.bind_host 또는 network.host를 개인 IP로 설정하여 노드를 제한할 수 있습니다. HTTP 지원 클라이언트 노드 외부에서 http/enabled를 false로 설정하여 HTTP를 비활성화합니다.
4. 데이터 암호화
사이버 범죄자가 데이터를 수집하는 것을 막기 위해서는 저장 데이터를 암호화하는 것이 필수입니다. 하지만 Elasticsearch에는 기본적으로 암호화 기능이 없으므로 외부 도구를 사용해야 합니다. DM-암호화 Linux 커널에서 데이터를 암호화하고 안전하게 유지하는 데 사용할 수 있는 훌륭한 유틸리티입니다. 완전한 보호를 보장하려면 TLS 암호화를 사용하여 모든 클러스터 트래픽을 암호화하는 것이 필수입니다.
5. 사용자 인증
사용자 인증을 설정하면 Elasticsearch에 액세스할 수 있는 사람을 제어할 수 있어 악의적인 개체가 민감한 데이터에 액세스하는 것을 방지할 수 있습니다. Elasticsearch의 사용자 인증 옵션은 사용자가 비밀번호, 자격 증명 또는 인증 토큰을 통해 자신의 신원을 확인해야 함을 의미합니다. 기본적으로 또는 LDAP나 Active Directory와 같은 타사 솔루션을 통해 사용자 인증을 설정할 수 있습니다.
6. 액세스 제어 구현
역할 기반 액세스 제어는 데이터에 대한 액세스를 제어하기 위한 또 다른 필수 도구입니다. 액세스 제어를 생성하면 문서 및 색인과 같은 리소스에 액세스할 수 있는 사람을 결정하고 조직에서 보호된 데이터에 액세스할 수 있는 사람의 수를 제한할 수 있습니다.
7. 감사 로그 사용
감사 로그를 모니터링하는 것은 악의적인 활동을 식별하는 효과적인 방법입니다. 감사 로그를 사용하면 Elasticsearch 클러스터에 연결된 사용자의 작업을 추적할 수 있습니다. 사용자 활동을 기록하면 의심스럽거나 악의적인 활동을 식별하여 즉시 대응하여 문제를 해결하고 보안 이벤트가 발생할 때 해결하는 데 걸리는 시간을 줄이는 데 도움이 됩니다.
8. Elasticsearch를 정기적으로 업데이트하세요
Elasticsearch의 새 버전이 나올 때마다 오래된 취약점을 패치하기 위해 업그레이드하는 것이 중요합니다. 소프트웨어를 패치하지 않은 채로 두면 해커가 악용할 수 있는 해결되지 않은 취약점을 갖게 됩니다. 정기적인 업데이트를 통해 방어가 항상 최신 상태로 유지되고 데이터 침해 가능성이 줄어듭니다.
9. 스크립팅 비활성화
5.x 이전 버전의 Elasticsearch를 사용하는 경우 동적 스크립팅을 비활성화하는 것이 중요합니다. 동적 스크립팅을 비활성화하면 해커가 검색 API를 통해 악의적인 스크립트를 배포하는 것을 방지할 수 있습니다. 이 스크립트는 사용자의 의지에 반하여 데이터를 파괴, 복사 또는 암호화하여 활동을 중단시킬 수 있습니다.
10. Elasticsearch 모니터링
Elasticsearch를 지속적으로 모니터링하는 것은 성능 저하와 비정상적인 동작을 탐지하는 데 매우 중요합니다. 많은 클라우드 모니터링 도구는 보안 이벤트가 발생할 때 이를 알려주는 경고를 제공합니다. 이렇게 하면 작은 문제이든 전면적인 사이버 공격이든 상관없이 문제 해결을 시작하여 문제를 해결할 수 있습니다.
Elasticsearch 모니터링을 위한 최고의 도구
ElasticSearch를 지속적으로 모니터링하면 보안 침해 또는 성능 저하의 징후를 감지할 수 있습니다. Elasticsearch의 API를 사용하여 성능을 측정할 수도 있지만, 모든 인프라를 한 곳에서 모니터링할 수 있기 때문에 외부 애플리케이션이나 클라우드 모니터링 도구를 사용하는 것이 훨씬 더 편리합니다.
이 섹션에서는 ElasticSearch 모니터링을 위한 최고의 도구 중 일부를 살펴보겠습니다. 나열된 도구에는 문제가 있는 활동에 대해 알려주는 구성 가능한 경고와 풍부한 시각화 옵션을 갖춘 고품질 대시보드가 포함된 솔루션이 포함되어 있습니다.
ElasticSearch 모니터링을 위한 상위 3가지 도구는 다음과 같습니다.
- 데이터독– 맞춤형 대시보드, 그래프, 차트, 경고, 스냅샷, 전체 API 액세스 등을 갖춘 클라우드 모니터링 소프트웨어.
- ElasticHQ– 클러스터 상태 모니터링, 분석, 권장 사항 등을 갖춘 오픈 소스 Elasticsearch 모니터링 소프트웨어입니다.
- 다이나트레이스– 자동 검색, 이상 탐지, 맞춤형 경고 등을 갖춘 애플리케이션 성능 모니터링 소프트웨어.
1. 데이터독
데이터독Elasticsearch 클러스터의 상태를 모니터링하는 데 사용할 수 있는 클라우드 모니터링 솔루션입니다. 와 함께데이터독다음과 같은 Elasticsearch 성능 지표를 수집할 수 있습니다.CPU, 메모리,그리고I/O 활용도, 그래프 및 차트와 같은 시각화 옵션이 포함된 사용자 정의 가능한 대시보드를 통해 이를 확인하세요.
주요 특징들:
- 맞춤형 대시보드
- 그래프 및 차트
- 경고
- 스냅샷
- 전체 API 액세스
경고 시스템은 클러스터 내의 모든 측정항목에 대한 경고를 제공합니다. 예를 들어, CPU 또는 메모리 사용량이 사전 정의된 임계값을 초과하면 플랫폼은 다음과 같이 경고를 보냅니다.이메일, PagerDuty,또는슬랙 메시지. 사용자는 시스템이 알림을 생성하는 시기를 결정하기 위해 복잡한 경고 조건을 만들 수 있습니다.
플랫폼은 또한 다음을 제공합니다.스냅샷, 성능 문제 또는 그래프의 이미지를 팀의 다른 구성원에게 보내 문제가 있는지 확인할 수 있습니다. 경고를 관리할 때 과거에 경고에 응답한 사람도 확인할 수 있으므로 문제를 해결하기 위해 어떤 조치가 취해졌는지 더 쉽게 알 수 있습니다.
장점:
- Elasticsearch 클러스터 모니터링을 위한 기능 템플릿
- 중소기업 및 엔터프라이즈 규모의 네트워크를 위한 탁월한 선택
- 수많은 타사 애플리케이션을 활용하는 대규모 네트워크에 적합한 방대한 양의 통합
- 템플릿은 기본적으로 매우 잘 작동하며 사용자 정의가 가능하지만 항상 필요한 것은 아닙니다.
단점:
- 30일 평가판 기간을 연장하면 이점을 얻을 수 있습니다.
데이터독다른 애플리케이션 및 서비스와 함께 Elasticsearch의 성능을 모니터링하는 솔루션을 찾고 있다면 고려해 볼 가치가 있습니다. 인프라 패키지 가격은 호스트당 월 15달러(£11.62)부터 시작됩니다. 에이전트는 Windows, macOS 및 Linux에서 사용할 수 있습니다. 당신은 할 수 있습니다 14일 무료 평가판을 시작하세요 .
2. 엘라스틱HQ
ElasticHQ다음 작업에 사용할 수 있는 오픈 소스 Elasticsearch 모니터링 도구입니다.클러스터 상태 모니터링실시간. 와 함께ElasticHQ, 단일 위치에서 모든 클러스터를 모니터링할 수 있습니다.해석학성능 추세를 파악할 수 있도록 인덱스 또는 노드 수준으로 드릴다운하는 데 사용할 수 있습니다.
주요 특징들:
- 실시간 클러스터 상태 모니터링
- 해석학
- 진단 권장사항
- JSON 편집기
- 지수 관리
환경 전체에서 수집된 성능 지표를 기반으로ElasticHQ제공하다추천성능을 최적화할 수 있는 방법에 대한 힌트를 제공합니다. 또 한있다JSON 편집기인덱스와 별칭을 쿼리하는 데 사용할 수 있습니다. 별칭 새로 고침, 최적화, 만들기, 보기 등 다양한 방법으로 별칭과 상호 작용할 수 있습니다.
의 가장 큰 장점 중 하나는ElasticHQ소프트웨어를 사용하는 광범위한 사용자 커뮤니티입니다. 당신은 또한API이를 통해 프로그램 경험을 더욱 효과적으로 제어할 수 있습니다.
장점:
- 쉽게 사용자 정의할 수 있는 간단한 인터페이스
- Elasticsearch 전용 메트릭 및 모니터 기능
- 백엔드 API로 광범위한 통합 가능
단점:
- 오픈 소스 도구는 커뮤니티 버그 수정 및 지원에 의존하는 경우가 많으며 빠르게 이동하려는 기업에게는 최선의 옵션이 아닙니다.
ElasticHQElasticsearch 클러스터의 성능과 가용성을 모니터링하기 위한 오픈 소스 솔루션을 찾고 있는 기업에게 탁월한 선택입니다. 2.x, 5.x, 6.x를 포함한 모든 버전의 Elasticsearch를 지원합니다. 당신은 할 수 있습니다 소프트웨어를 무료로 다운로드하세요 .
3. 다이나트레이스
다이나트레이스Elasticsearch 모니터링 기능을 갖춘 애플리케이션 성능 모니터링 도구입니다.다이나트레이스개별 클러스터를 자동으로 검색합니다.측정항목을 수집합니다.상태, 활성 샤드, 활성 기본 샤드, 복제 샤드, 샤드 재배치, 샤드 초기화 중, 할당되지 않은 샤드,그리고 더. 인덱싱 총계, 인덱싱 시간, 쿼리 수, 가져오기 수, 스크롤 수, 총 검색 시간, 차단기 및 인덱스와 같은 노드 측정항목도 볼 수 있습니다.
주요 특징들:
- 개별 클러스터 자동 검색
- 이상 탐지
- 근본 원인 분석
- 맞춤 알림
AI 기반이상 탐지그리고자동 근본 원인 분석성능 문제가 발생할 때 이를 감지하고 문제를 강조하기 위해 알림을 보냅니다. 알림은 다음 사항에 대한 정보를 제공합니다.근본 원인문제가 어떻게 시작되었는지 알아내느라 시간을 낭비할 필요가 없도록
또한 있다맞춤형 알림, 이를 초과하면 시스템에서 알림을 보낼 측정항목에 대한 임계값을 설정하는 데 사용할 수 있습니다. 모든 경고의 요약은 다음에서 볼 수 있습니다.피드 문제, 알아야 할 모든 최신 보안 이벤트에 대한 기록을 제공합니다.
장점:
- 탄력적 클러터를 자동으로 식별하고 모니터링을 위해 그룹화할 수 있습니다.
- 기업 NOC에 탁월한 시각적이고 사용자 정의 가능한 대시보드
- 클라우드에서 작동하므로 플랫폼에 독립적입니다.
단점:
- 대규모 네트워크용으로 특별히 설계된 소규모 조직의 경우 요구 사항에 비해 제품이 압도적일 수 있습니다.
다이나트레이스Elasticsearch와 기타 애플리케이션을 한 곳에서 모니터링하기 위한 최고의 도구 중 하나입니다. 가격 정보를 보려면 회사에 직접 견적을 요청해야 합니다. 윈도우, 리눅스, iOS, 안드로이드에서 사용 가능합니다. 당신은 할 수 있습니다 15일 무료 평가판을 시작하세요 .
비상 계획: 데이터를 백업하세요!
불행하게도 위의 모든 조치를 구현하더라도 숙련된 해커가 여전히 귀하의 데이터에 접근할 수 있는 방법을 찾을 수 있습니다. 따라서 사이버 공격을 당하더라도 비즈니스에 중요한 정보에 계속 액세스할 수 있도록 데이터를 정기적으로 백업하는 것이 중요합니다.
데이터를 백업하려면 실행 중인 Elasticsearch 클러스터의 스냅샷을 찍으면 됩니다. 클러스터의 스냅샷을 찍으면 모든 데이터 스트림과 인덱스가 기록되지만 스냅샷을 특정 데이터 스트림으로 제한하도록 선택할 수도 있습니다. 스냅샷을 찍은 후 로컬 또는 원격 저장소에 백업을 저장할 수 있습니다.
그런 다음 수집된 데이터를 Amazon S3, Microsoft Azure 또는 Google Cloud Storage와 같은 클라우드 서비스에 저장하여 시스템이 손상된 경우 복원할 복사본을 확보할 수 있습니다.
Elasticsearch: 조심하세요 결론
Elasticsearch는 기업이 신중하게 관리해야 하는 매우 가치 있는 검색 및 분석 엔진입니다.
위에 나열된 모범 사례를 적용하고 다음과 같은 성능 모니터링 도구를 사용하여 지속적인 모니터링을 구현합니다.데이터독, ElasticHQ,그리고다이나트레이스기회주의적인 사이버 범죄자에게 문을 열어두지 않고 데이터에 자유롭게 액세스할 수 있도록 보장합니다.