일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- PYTHON
- ubuntu
- hackerrank
- 프로그래머스 파이썬
- 코로나19
- 더현대서울 맛집
- 금융문자분석경진대회
- gs25
- Real or Not? NLP with Disaster Tweets
- 편스토랑
- 편스토랑 우승상품
- 맥북
- Baekjoon
- SW Expert Academy
- leetcode
- 프로그래머스
- AI 경진대회
- Kaggle
- Docker
- ChatGPT
- 자연어처리
- Git
- 파이썬
- github
- 백준
- dacon
- 데이콘
- 우분투
- 캐치카페
- programmers
- Today
- Total
솜씨좋은장씨
Elasticsearch 보안 관련 주의 사항! 본문
최근 프로젝트를 진행하면서 개발하는 서버에 Elasticsearch를 설치해두고
편하게 사용하기 위하여 Elasticsearch의 9200 포트, Kibana의 5601 포트에 대해서 외부의 모든 접근을 허용하도록
인바운드 규칙을 설정해 두었었습니다.
설치를 하고 테스트로 제대로 동작하는지 인덱스를 생성해보고 더미 데이터를 인덱싱 해두었다가
이제 실제로 사용하려고 다시 Kibana를 켜서 인덱스 목록을 보았는데
????????????????????????????????????????????
테스트를 하면서 만들었던 인덱스는 사라져있고 그 자리에
인덱스 이름부터 날좀보소 하는 인덱스 하나만 남아 있었습니다.
뭐지? 하고 궁금해서 확인해보니
확인에 사용한 검색식
GET /read_me/_search
{
"query": {
"match_all": {}
}
}
결과
{
"took" : 0,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 1,
"relation" : "eq"
},
"max_score" : 1.0,
"hits" : [
{
"_index" : "read_me",
"_type" : "_doc",
"_id" : "1",
"_score" : 1.0,
"_source" : {
"message" : "All your data is a backed up. You must pay 0.0175 BTC to 1PZgpMGU5Eg1TBhid7P1fmMYN79QAvyttK 48 hours for recover it. After 48 hours expiration we will leaked and exposed all your data. In case of refusal to pay, we will contact the General Data Protection Regulation, GDPR and notify them that you store user data in an open form and is not safe. Under the rules of the law, you face a heavy fine or arrest and your base dump will be dropped from our server! You can buy bitcoin here, does not take much time to buy https://localbitcoins.com with this guide https://localbitcoins.com/guides/how-to-buy-bitcoins After paying write to me in the mail with your DB IP: recoverme@mailnesia.com and you will receive a link to download your database dump."
}
}
]
}
}
대충 48시간안에 0.175 비트코인을 보내지 않으면 데이터를 유출시키겠다는 말이었습니다.
요즘 비트코인 시세도 계속 가파르게 상승하고 있어 0.175 비트코인이 얼마인가 하고 찾아보니
무려... 73만원에 달하는 금액이었습니다.
확인하자마자 서버는 접근이 필요한 IP만 접근을 허용하도록 설정을 바꿨습니다.
앞으로 개발하면서 이런 부분도 잘 신경써서 개발해야겠다는 생각이 들었습니다.
데이터베이스나 Elasticsearch 접근 관련 포트는 항상 모든 접근을 허용하지 않아야하겠다는 교훈을 얻었습니다.
이 글을 읽으시는 분들 중에 모든 접근을 허용으로 설정해 놓으신 분들은 지금 바로 설정을 변경하시는 것을 추천드립니다.
저는 다행히 중요한 데이터가 아니었지만 중요한 데이터가 있는 상태에서 당하면 정말 당황 스러울 것 같습니다.
모두 그럼 잘 설정해서 사전에 이런 일을 방지하면 좋을 것 같습니다~
읽어주셔서 감사합니다.