잡다한 이야기

SSH 트랩 만들기

트리맨스 2023. 12. 3. 17:23
반응형

 

인터넷을 보다가 신기한 프로그램이 있어서 하나 가져와봤다.

 

https://github.com/shizunge/endlessh-go

 

GitHub - shizunge/endlessh-go: A golang implementation of endlessh exporting Prometheus metrics, visualized by a Grafana dashboa

A golang implementation of endlessh exporting Prometheus metrics, visualized by a Grafana dashboard. - GitHub - shizunge/endlessh-go: A golang implementation of endlessh exporting Prometheus metric...

github.com

 

endlessh 라는 프로그램인데, ssh 트랩을 만드는 것 같아 보였다.

해당 앱의 기능은 endlessh를 켜 둔 pc에 외부에서 ssh 접속을 시도하려고 하면, 무한대기하는 앱이다. 그래서 이 앱은 왜 만들어졌을까? 바로 임의로 ssh 공격을 하는 공격자들에게 소소하게 한방 먹이기 위함이라 한다.

 

아무튼 동작 구조를 보니까 endlessh 프로그램이 있고, 공격자들의 현황을 파악하기 위해서 prometheus로 메트릭을 뽑아서 grafana로 시각화 하는 과정까지 있는 것 같다. 그래서 집에서 간단하게 만들어 보았다.

 

서버는 라즈베리파이3 b+, 라즈비안 환경에서 실행했다.

 

먼저 라즈베리파이에 docker와 docker-compose를 설치했다. 설치는 다음 자료들을 참고했다.

https://docs.docker.com/engine/install/raspberry-pi-os/

 

Install Docker Engine on Raspberry Pi OS (32-bit)

Learn how to install Docker Engine on a 32-bit Raspberry Pi OS system. These instructions cover the different installation methods, how to uninstall, and next steps.

docs.docker.com

 

설치한 이후 github project의 /examples/docker-simple 폴더에 있는 docker-compose 파일을 통해 실행시켜 보았다. 여기서 미리 설정해야 되는 곳이 있는데 GF_SECURITY_ADMIN_USER, GF_SECURITY_ADMIN_PASSWORD를 자신만의 아이디와 비밀번호로 변경해야 한다. 그리고 공식 grafana 도커 이미지는 글 작성 시점에 라즈베리파이를 지원하지 않았다. 이유를 찾아보니 go 컴파일러의 ARM 관련 버그가 있어서 지금은 배포를 중단한다는 내용이였다.

https://grafana.com/blog/2023/09/29/grafana-and-grafana-enterprise-updates-for-armv6-and-armv7-will-be-temporarily-paused/

 

Grafana and Grafana Enterprise updates for ARMv6 and ARMv7 will be temporarily paused | Grafana Labs

Thank you! Your message has been received!

grafana.com

 

그래서 grafana를 이전 버전으로 사용하기 위해서 해당 버전의 도커 이미지를 사용하기로 했다.

https://hub.docker.com/layers/grafana/grafana/8.4.3-armv7/images/sha256-7e2e22d0b59157aa1483ce401ededaa60d7e122484cc410934587f8da9bc5eea?context=explore

 

Docker

 

hub.docker.com

 

이렇게 프로그램을 설정한 이후, 외부에서 22번 포트로 접속하면 내부의 2222번 포트로 트래픽을 보낼 수 있게 포트포워딩 설정을 하면 트랩이 완성된다. 트랩을 만들고 하루 뒤에 얼마나 많은 공격이 왔는지 확인해 보았다.

 

 

많이도 왔다...심지어 지금도 접속중이다.

 

반응형