- 인쇄
- 어두운빛
문제 파악하기
Autify를 처음 시작하는 사용자가 자주 직면하는 문제는 인터넷을 통해 공개적으로 액세스할 수 없는 애플리케이션을 테스트하는 방법을 알아내는 것입니다.
Autify는 앱을 테스트할 때 클라우드 기반 브라우저에서 사용자 행동을 시뮬레이션하여 테스트합니다. 해당 브라우저에서 요청을 하면 다른 공개 출처 요청이 처리되는 것과 동일한 방식으로 보안 계층에서 처리됩니다. 따라서 비공개 네트워크 외부의 사용자가 애플리케이션에 액세스하는 것을 차단하는 보안 조치가 있는 경우 이러한 조치는 Autify의 연결도 차단합니다. 사내 팀만 액세스할 수 있도록 설계된 QA 또는 스테이징 서버가 이에 해당할 수 있습니다.
또는 로컬 컴퓨터에서 개발 중이거나 임시 컨테이너에서 애플리케이션을 실행하는 경우처럼 외부 서비스에서 애플리케이션에 연결할 수 없는 경우가 많을 수 있습니다. 이 경우 제3자가 컴퓨터의 로컬 서버에 액세스할 수 없는 것과 마찬가지로 Autify도 필요한 요청을 할 수 없습니다.
이러한 경우 테스트가 실패할 뿐만 아니라 근본 원인을 진단하기 어려울 수 있습니다. 테스트 도중에 Autify가 실패한 것처럼 보일 수 있지만 그 이유를 제대로 알 수 없습니다. 때로는 Autify가 "작동을 중지"한 후 시간이 초과된 것처럼 보일 수도 있습니다.
녹화 중에 가끔 작동하는 이유는 무엇인가요?
더 혼란스러운 것은 녹화 단계에서는 이러한 시나리오가 전혀 문제 없이 작동하는 것처럼 보이지만 실행 중에 중단되는 경우가 종종 있다는 것입니다.
이는 일반적으로 녹화가 진행되는 시점에 보안 계층 내부에 있거나 일부 예외가 허용된 워크스테이션(예: VPN을 통해)에서 녹화가 이루어지기 때문입니다. 시나리오를 녹화할 때 대부분의 무거운 작업은 로컬 머신에 설치된 Chrome 플러그인이 수행합니다. 로컬 컴퓨터가 테스트 중인 애플리케이션에 액세스할 수 있는 한 플러그인은 예상대로 작동하며, 로컬 워크스테이션이 보안 계층 외부에서 나가는 연결에 제한이 없는 한 플러그인은 모든 상호 작용 데이터를 Autify 서버로 보낼 수 있습니다. 이러한 경우 시나리오 녹화는 알람을 발생시키지 않고 완료될 수 있으며 성공적으로 저장됩니다.
그러나 테스트를 실행할 때 Autify는 보안 계층 외부에서 사용자 작업을 재생하고 연결이 실패합니다.
비공개 애플리케이션을 테스트하는 방법
다행히도 테스트하려는 애플리케이션이 보안 계층 뒤에 있더라도 공개적으로 액세스할 수 있는 애플리케이션을 테스트하는 것만큼 간단하지는 않지만 여전히 테스트할 수 있습니다. Autify는 보안 계층 뒤에 있는 애플리케이션을 테스트하기 위한 두 가지 접근 방식을 제공하지만, 두 가지 모두 약간의 추가 작업과 구성이 필요합니다.
1. 고정 IP를 통해 애플리케이션에 액세스하기
첫 번째 접근 방식은 정적 IP 주소 할당을 Autify에 지정한 다음 보안 계층에 보안 예외를 제공하여 해당 주소에서 네트워크로의 트래픽을 허용하는 것입니다.
IP 주소는 인터넷에서 서버의 위치를 설명하는 숫자 문자열입니다. 현재 널리 사용되는 서버 주소 지정 수단인 IP4의 경우 네 개의 숫자로 조합됩니다. 예를 들어, 203.0.113.0
또는 198.51.100.0
입니다. http 요청이 이루어질 때마다 요청을 받은 서버는 요청을 한 서버의 IP 주소를 볼 수 있습니다.
일반적으로 Autify가 애플리케이션에 연결할 때 사용하는 정확한 IP 주소는 요청마다 달라집니다. 이는 Autify가 여러 다른 서버에서 연결하기 때문에 이러한 서버의 IP 주소가 예고 없이 변경될 수 있기 때문입니다. 그러나 Autify에서 보내는 요청을 소수의 특정 IP 주소로 제한할 수도 있습니다. 즉, Autify가 애플리케이션에 요청을 보내는 횟수에 상관없이 IP 주소는 항상 동일하게 유지됩니다.
따라서 해당 주소에서 이루어진 모든 요청이 Autify에서 비롯된 것이라고 확신할 수 있습니다. 따라서 보안 계층에서 예외를 구성하여 특정 주소에서 요청이 이루어진 경우 요청을 허용하고 다른 모든 요청을 차단할 수 있습니다. 이렇게 하면 악의적인 공격자에 대한 액세스를 허용하지 않고도 Autify가 애플리케이션에 연결할 수 있습니다.
이 접근 방식의 장점은 구현이 비교적 간단하다는 것입니다. 보안 계층에서 예외를 만들어야 하지만 일반적으로 이 절차는 간단합니다. 또한 기본 애플리케이션을 변경할 필요가 없으며 네트워크 계층에서 전적으로 액세스 권한을 부여할 수 있습니다. 이 방법은 불안정한 서버 환경을 변경하지 않고도 테스트를 수행할 수 있으므로 오래된 애플리케이션이나 레거시 애플리케이션의 경우 특히 유용할 수 있습니다. 마찬가지로 기존 Autify 시나리오나 테스트 계획을 크게 변경할 필요도 없습니다. 공개적으로 액세스할 수 있는 애플리케이션 버전에서 작동하는 경우 비공개 네트워크에서 작동합니다.
반대로 이 접근 방식의 가장 큰 단점은 애플리케이션이 최소한 인터넷을 통해 연결될 수 있어야 한다는 것입니다. 즉, 보안 계층에서 트래픽이 거부되더라도 네트워크의 서버에서 트래픽을 확인할 수 있어야 합니다. 예를 들어 Google Cloud 또는 AWS에서 실행되는 스테이징 서버가 좋은 후보가 될 수 있지만 로컬 개발 환경은 테스트하기가 훨씬 더 어렵습니다.
또한 서버 환경의 복잡성에 따라 테스트하려는 애플리케이션에 대한 전체 액세스 권한을 부여하기에 고정 IP 주소가 충분하지 않을 수 있습니다. 예를 들어 프록시로 보호되는 네트워크는 일관된 IP 주소를 사용하더라도 Autify에서 액세스하면 문제가 발생할 수 있습니다.
마지막으로, "절대적으로 확신"이 아니라 "상당히 확신"할 수 있다는 점을 명심하세요. Autify에 고정 IP 주소를 할당하면 Autify 서버의 요청이 항상 동일한 주소를 사용하게 되지만, 해당 주소에서 왔다고 주장하는 모든 요청이 실제로 Autify에서 보낸 것이라고 보장할 수는 없습니다. IP 주소는 이론상 고유하지만, IP 스푸핑이라는 프로세스를 통해 요청에 '가짜' IP 주소를 할당하는 것도 가능합니다. 따라서 고정 IP 주소가 노출되지 않도록 주의해야 합니다. 또한 일반적인 테스트 보안의 문제로서 테스트 서버에 민감한 데이터를 저장해서는 안 됩니다.
2. Autify Connect를 사용하여 애플리케이션에 액세스하기
두 번째 접근 방식은 Autify에서 제공하는 Autify Connect라는 메커니즘을 사용하는 것입니다. 이 시스템을 사용하면 테스트가 실행될 때 Autify Connect 클라이언트라는 작은 프로그램(Autify에서 액세스할 수 있어야 하는 서버에 설치)을 사용하여 테스트 서버와 Autify 서버 간에 직접 연결을 열 수 있습니다. 인터넷을 통해 직접 http 요청을 보내는 대신, Autify는 해당 연결을 통해 직접 서버로 요청을 보내고, 서버는 필요에 따라 요청을 전달할 수 있습니다.
고정 IP 접근 방식과 마찬가지로 보안 계층에서 예외를 만들어야 하지만 이 경우 예외는 발신 트래픽에 대해서만 적용됩니다. 서버와 Autify 간에 연결이 설정되면 보안 계층을 완전히 우회하여 Autify Connect 소프트웨어를 실행하는 서버에서 직접 발생한 것처럼 http 요청을 수행할 수 있습니다. 들어오는 예외가 발생하지 않으므로 보안 계층은 다른 모든 요청에 대해 평소와 같이 계속 작동합니다.
또한 Autify Connect 프로그램을 실행하는 서버에는 제한이 없으므로 로컬 개발 머신이나 다른 방법으로는 액세스할 수 없는 Docker 컨테이너에서 실행되는 애플리케이션과 같이 고정 IP 주소를 사용하는 경우에도 일반적으로 액세스할 수 없는 장치 간에 연결을 설정하는 데 사용할 수 있습니다.
이 접근 방식은 자동화된 테스트를 실행할 수 있는 범위를 크게 확장하지만, 고정 IP를 할당하는 것보다 훨씬 높은 구성 비용이 든다는 점에 유의해야 합니다. Autify 연결 프로그램이 Autify에 연결을 설정할 서버에 설치 및 실행되도록 구성하는 것 외에도, 테스트가 실행될 때 프로그램을 실행하고 성공적인 연결을 확인하고 테스트가 실행되는 동안 발생하는 연결 끊김을 처리하기 위한 메커니즘이 있어야 합니다. 또한 Autify 웹 플랫폼에서 액세스 토큰을 수동으로 생성하여 서버의 Autify Connect 프로그램에서 사용할 수 있도록 해야 합니다. 여기에는 값이 주기적으로 순환되도록 하고 공개적으로 볼 수 있는 채널을 통해 액세스할 수 없도록 하는 등 모든 비밀 토큰에 사용해야 하는 것과 동일한 고려 사항이 적용됩니다.
마지막으로, 일반적으로는 문제가 되지 않지만 웹 애플리케이션의 모든 트래픽이 터널을 통해 실행되므로 테스트에 약간의 성능 저하가 발생할 수 있다는 점에 유의해야 합니다.
어떤 방법을 사용해야 하나요?
접근 방식은 네트워크 설정의 정확한 특성에 따라 달라집니다. 일반적으로 매우 특별한 서버 요구 사항이 없는 한, 고정 IP를 사용하는 것이 비공개 테스트를 시작하는 가장 쉬운 방법입니다. 특히 보안 계층이 비교적 간단하고 이미 인터넷을 통해 액세스할 수 있는 애플리케이션의 경우 고정 IP를 사용하는 것이 좋습니다. 또는 애플리케이션을 실행하는 서버를 쉽게 구성할 수 없지만 네트워크 계층에서 변경할 수 있는 경우 이 방법을 선택하는 것이 좋습니다.
또는 Autify Connect를 사용하면 해결에 더 많은 엔지니어링 리소스가 필요할 수 있는 많은 복잡성이 수반되므로 보안 계층이 더 복잡하거나 애플리케이션 환경에 인터넷을 통해 쉽게 액세스할 수 없는 경우에만 이 접근 방식을 사용하는 것이 좋습니다. 또한 로컬 개발 컴퓨터에서 애플리케이션을 테스트하려는 경우에도 이 접근 방식을 권장합니다.
요약
Autify는 모든 퍼블릭 웹 애플리케이션을 쉽게 테스트할 수 있지만, 악의적인 공격자가 비공개 네트워크에 액세스하는 것을 차단하는 제한 사항도 적용됩니다. 따라서 보안 계층 뒤에 있는 애플리케이션을 테스트하려면 반드시 어느 정도의 추가 구성이 필요합니다. 네트워크 설정이 다양하고 보안 구현이 매우 독특할 수 있으므로 모든 상황에서 작동하는 특정 접근 방식을 제안하기는 어렵습니다. 하지만 Autify는 비공개로 액세스하는 애플리케이션에서 테스트를 쉽게 실행할 수 있는 다양한 솔루션을 제공합니다.
이 문서에서는 Autify에서 제안하고 보증하는 비공개 네트워크 테스트에 대한 두 가지 접근 방식을 소개했으며, 테스트 솔루션을 설계하는 데 도움이 되는 배경 정보를 제공했기를 바랍니다. 하지만 좀 더 구체적인 조언이 필요하거나 특정 서버 구성에서 Autify 테스트를 실행하는 방법에 대해 논의하고 싶다면 주저하지 말고 지원팀에 문의하여 도움을 받으시기 바랍니다.