Verity's Daily Logs_

[Jenkins]Publish over SSH 플러그인 지원 종료 본문

GIT & Jenkins

[Jenkins]Publish over SSH 플러그인 지원 종료

johye0 2022. 2. 4. 21:55
반응형

최근 신규로 개발환경 세팅을 진행해야 하던 중, Jenkins에서 Publish Over SSH가 검색되지 않아 난감했던 경험이 있었다..

왜 더이상 검색되지 않는가, Publish Over SSH를 대체할 좋은 배포 방법은 있는 것인가에 대해 정리해 두도록 한다.

 

검색 결과가 나오지 않는다!!!

 

1. Plugin 지원 종료

기존 Plugin Docs 페이지(https://plugins.jenkins.io/publish-over-ssh/)로 접속하면 이런 문구가 표시된다.

Plugin distribution has been suspended,
see https://www.jenkins.io/security/plugins/#suspensions for details.

안내된 페이지(https://www.jenkins.io/security/plugins/#suspensions) 로 들어가 보면..

보안 취약점이 발견되어 Jenkins에서는 더 이상 제공하지 않는다는 설명과 함께 플러그인 이름이 들어가 있는 것을 볼 수 있다. 2022-01-12일 자에 나온 이슈이니, 정말 최근에 지원이 중단되었다는 것을 알 수 있다.

 

2. 지원 종료 이유

발견된 취약점의 상세 내용은 아래 주소에서 확인할 수 있다.

https://www.jenkins.io/security/advisory/2022-01-12/

 

대충 요약하자면 아래 취약점이 발견되어 제공을 중지한다는 것이다.

  • SSH 서버 이름을 이스케이프 하지 않기 때문에 XSS 취약점 발생
  • 연결 테스트 구현 시 권한 검사가 누락되어 공격자가 SSH서버에 접속 가능함
  • 파일 존재 여부를 위한 경호 순회기능을 이용한 경로탐색 취약점 발생
  • 일반 텍스트로 저장된 비밀번호, 암호화 되지 않았기 때문에 보안에 취약함

 

3. Publish Over SSH 의 대체품? - Plugin

급한 대로 유사한 기능의 SSH 접속 플러그인을 사용해 보려고 검색해 봤을 때 나오는 플러그인이 있기는 했다.

username/password로 접속하는 일반 서버에는 사용할 수 있을 것으로 보이나, 내가 배포해야 할 서버는 key를 이용해 접속하는 AWS서버였기 때문에 다른 방법을 찾아야 했다.

 

(SSH2 Easy)

 

4. Pipeline

Jenkins pipeline은 연속된 작업을 연결해놓은 젠킨스의 자동화 된 프로세스를 표현하는 말이다. Script로 작업을 직접 구현해야 하는 것이기 때문에 처음에 친숙해 지기까지는 조금 시간이 걸릴 수도 있다. 빌드 및 테스트 단계가 간단하지 않거나, SSH접속을 위해 별도의 Credential을 가져와야 하는 경우 등 좀 더 상세한 동작을 스크립트로 모두 작성할 수 있다는 장점이 있다.

파이프라인 실행 결과도 보다 직관적으로 확인할 수 있기 때문에, 이 방법을 사용해 보기로 했다.

다음 포스팅에서 Springboot 프로젝트를 pipeline으로 배포하는 과정을 정리할 것이다.

 

(Pipeline Project)

반응형
Comments