msdeploy 에이전트 서비스가 서버에서 공격 경로를 열 수 있습니까?


13

프로덕션 서버에 자동 배포하기위한 msdeploy 웹 배포 에이전트 서비스 사용을 평가하고 있습니다.

우리가 알 수없는 한 가지는 잠재적 인 보안 영향입니다.

우선 우리의 웹 서버는 (방화벽과로드 밸런서 뒤에) 안전하게 보호되므로 외부에서는 http 트래픽 만 허용됩니다.

그럼에도 불구하고 웹 배포 에이전트는 http (s)를 통해 액세스 할 수 있으므로 IIS (외부로 향하는 유일한 것)와 통합되어 실행됩니다. 따라서 해당 IIS에 호스팅 된 웹을 통해 에이전트에 액세스 할 수 있으며 모든 웹에 대한 읽기 및 쓰기 액세스 권한을 얻을 수 있을지 걱정됩니다.

프로덕션 환경에서 msdeploy를 안전하게 사용할 수 있습니까?

업데이트 : 프로덕션 웹 서버에서 IIS7이 실행되고 있습니다.


msdeploy와 함께 IIS 6 또는 7을 사용하고 있습니까?
8 월

이것은 주로 IIS7입니다. 정보도 업데이트되었습니다. 문제의.
Sebastian PR Gingter

답변:


10

그것을 사용한지 오래되었지만 웹 관리 부분을 포함하지 않는 IIS 6에서만 사용했습니다. 원격 관리 URL 및 포트를 수정하여 외부 방화벽에서 차단할 수 있습니다. 원격 서비스 사용자 정의 및 보안을 참조하십시오 . 주요 보안 메커니즘은 사용자 계정 보안 인 것처럼 보이지만, 이미 말한 것처럼 IIS 내에 있기 때문에 IIS 취약점으로 인해 패치 될 때까지 보안 수단을 쓸모 없게 만들 수 있습니다. 이런 이유만으로도 인터넷에서 웹 컨텐츠를 업데이트하는 것을 주저 할 수 있지만, 이는 조직의 보안 요구 사항과 웹 개발자의 요구 사항에 따라 다릅니다.

웹 배포 서비스를 인터넷에 노출시키지 않으려면 다음을 수행하십시오.

  • NAT가 아닌 내부 전용 IP 나로드 밸런싱 IP 범위의 일부에서 기본 웹 사이트를 수신하도록합니다.
  • 기본 관리 웹 사이트가 localhost에서만 수신 한 다음 msdeploy를 사용하여 단일 지점에서 모든 호스트에 원격으로 연결하는 대신 각 호스트에서 msdeploy 실행 파일을 호출하여 로컬로 실행하는 스크립트를 작성할 수 있습니다.
  • 로드 밸런서가 웹 배포 URL에 도달하려는 외부 요청을 필터링하도록합니다 (예 : https : // server : 8081 / MSDeploy )
  • 모든 웹 배포가 제공되는 지정된 (내부) 배포 호스트가 있고 IP가 배포 URL의 웹 서버에만 연결되도록 허용 ( 단일 배포 호스트가 아닌 것은 차단 )

웹 개발자 모두 원격으로 작업하는 경우 여전히 필요가 인터넷 말하자면에서 직접 확인할 수 있습니다 웹 배포 기능이 가지고 있다면이 필요한 이유 (내가 상상할 수없는 직접VPN이 널리 사용됨에 따라 2 단계 배포 프로세스를 통해 웹 배포 가능 IIS 7 상자를 사용하여 격리 된 DMZ를 설정하고 (웹 팜의 DMZ와 별도로) 웹 개발자가 인터넷에서 DMZ에만 연결하여 변경 사항을 원격으로 배포하십시오. 그런 다음 변경 사항, 테스트 등을 검토 한 후 내부적으로 해당 호스트에 연결하고 나머지 웹 서버에 배포 할 수 있습니다.이 방법도 위험은 없지만 악의적 인 사용자가 웹 배포 기능을 손상시켜 일부를 소개 할 수 있습니다 모르는 사이에 악성 코드가 생겨 무의식적으로 프로덕션 환경에 도입 할 수 있습니다.


업데이트는 프로덕션 서버에 대한 보안 VPN 액세스를 통해서만 수행되므로 인터넷에서 액세스 할 필요가 없습니다. 웹 서버 구성을 변경할 수있는 것을 설치하는 것에 대해 여전히 기분이 좋지 않습니다. 현재 '배포 권한'을 가진 사람은 특정 웹 폴더에만 SFTP 액세스 권한을 가지며 웹 서버는 도메인에 없으며 다른 방식으로 완전히 격리됩니다.
Sebastian PR Gingter

1
일반적으로 "웹 서버 구성을 변경할 수있는 것을 설치하는 것에 대해 여전히 나쁜 감정을 가지고 있습니다."에 동의하지만이 경우 웹 팜이있는 경우 서버 중 하나에서 잘못 구성하여 서버를 열 가능성이 있습니다. 수동 업데이트 프로세스를 통한 의도하지 않은 구멍은 모든 웹 서버에서 일관된 구성을 보장하는 서비스를 사용하는 것보다 훨씬 위험합니다.

저는 "자동 배포가 더 쉬워 질 위험을 감수하기에 충분히 안전 할 것"이라고 생각합니다. 감사.
Sebastian PR Gingter

0

간단한 대답. 예, 모든 컴퓨터에서 실행중인 모든 것이 공격 경로를 엽니 다. 항상 소프트웨어에 취약점이 있다고 가정해야합니다. 완화는 네트워크, 사용자, 컴퓨터, IP 등에 대한 액세스를 제한하는 핵심 요소입니다. 또한 물리적 액세스를 확인하십시오.

방화벽이 특정 시간의 규칙을 처리 할 수있는 경우 업데이트가 허용되는 시간을 제한 할 수도 있습니다.

웹 서버의 사용자, 즉 업데이트를 수행 할 수있는 사용자를 제한하는 것이 좋습니다. (아마도 이미이 작업을 수행했을 것입니다.) 그런 다음 방화벽을 사용하여 관리 인터페이스에 액세스 할 수있는 네트워크 (IP)를 제한합니다. 그런 다음 지원되는 경우 작업 시간 동안 (방화벽 규칙을 통해) 업데이트 만 처리하도록 허용합니다. 방화벽 관리자는 항상 긴급 업데이트 규칙을 편집하도록 할 수 있습니다. 마지막으로 Web Deployment Agent의 알려진 취약점을 감시하고 추가 완화하거나 수정이 구현 될 때까지 비활성화합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.