LendingTree는 소비자와 비즈니스의 대출자가 가장 적합한 조건의 담보 대출, 학생 대출, 비즈니스 대출, 신용카드, 예금 계좌, 보험을 찾을 수 있도록 다양한 대출 기관과 연결할 수 있도록 해주는 온라인 마켓플레이스입니다. LendingTree는 전 세계 400곳 이상의 금융 기관과 파트너십을 맺고 있습니다. 1,500만 명 이상의 사용자가 LendingTree를 활발히 이용하여 신용을 모니터링하고, 대출을 알아보며, 재무 상태를 관리하고 있습니다.
애플리케이션 보안 리드인 John Turner가 LendingTree 팀에 합류했을 때, LendingTree는 보안 벤더와의 사이에서 여러 비용 문제와 성능 문제를 겪고 있었습니다. 해당 벤더는 DDoS 방어 서비스를 계량 방식으로 제공했고, LendingTree는 엄청난 초과 비용을 내야 했습니다. 게다가 이 솔루션은 정상적인 트래픽까지 차단했습니다.
“솔루션이 지능적이지 않았습니다. 고정되어 있었죠.” Turner는 이렇게 설명합니다. “분당 요청수에 적용할 임의적인 제한을 직접 지정해야 했어요. 그 수를 넘으면 벤더가 트래픽을 오프로드하여 처리한 다음 초과한 비용을 청구하는 방식이었습니다."
LendingTree가 마케팅 캠페인을 개시할 때마다 이와 같은 제한은 큰 문제로 이어졌습니다. “새로운 TV 광고나 새 소셜 미디어 캠페인을 펼치면, 벤더의 지시에 따라 지정해 놓은 임의적인 제한을 넘어 요청이 급증했습니다. 그러면 벤더가 이러한 급증 현상을 DDoS 공격으로 해석해 정상적인 트래픽을 차단하게 되는 겁니다.” 라고 Turner는 회상합니다. “잠재 고객을 잃었을 뿐만 아니라, 고객이 사이트를 방문하면서 지출해야 했던 비용도 잃었는데, 벤더는 'DDoS 방어' 서비스 비용을 청구하는 거죠.”
이전에 Cloudflare와 일했던 경험이 있었던 Turner는 Cloudflare로 눈을 돌렸습니다. “컨설팅 일을 할 때 저는 클라이언트에게 여러 번 Cloudflare를 추천했어요. Cloudflare의 제품은 잘 작동되고 좋은 가치를 제공한다는 걸 알고 있었죠.” 그는 이렇게 말했습니다. Turner는 LendingTree에 Cloudflare의 서버리스 플랫폼인 Workers와 함께 봇 관리, WAF, DDoS 방어를 포함한 Cloudflare의 성능 및 보안 제품군을 구현하기로 결정했습니다.
Cloudflare의 DDoS 완화 서비스는 무제한이며 51Tbps의 완화 용량을 제공하므로 LendingTree는 임의적인 트래픽 제한 설정을 고민할 필요가 없습니다. LendingTree는 봇 관리 등 Cloudflare의 다양한 기타 보안 혜택까지 누리 게 되었습니다.
LendingTree의 API를 남용하는 악성 봇은 대역폭 비용 측면도 그렇지만, 기회 비용 측면에서도 회사에 커다란 비용을 초래하고 있었습니다. 봇이 정교하고, 재무 데이터를 스크래핑하고 있었기 때문에 Turner는 경쟁업체에서 일부 봇을 배포한다고까지 생각했습니다. LendingTree의 파트너가 현재 금리 정보를 이용할 수 있어야 했기 때문에 API를 완전히 제한할 수도 없었습니다.
“거의 하룻밤 사이에 한 API 서비스의 청구액이 월 10,000달러에서 75,000달러까지 늘어났습니다. 다음 달에는 150,000달러까지 올랐죠.” Turner는 이렇게 설명합니다. “팀에서는 공격을 조사하며 이를 막아보려고 사용자 설정 규칙을 작성하는 데 시간을 많이 할애해야 했습니다. 공격자가 지속적으로 전술을 바꾸고 있었기 때문에 작성했던 규칙은 짧은 기간 부분적으로만 효과가 있었습니다.”
Cloudflare 봇 관리로 LendingTree는 즉각적인 결과를 낼 수 있었습니다. Turner는 “Cloudflare 봇 관리를 활성화한 지 48시간 이내에 특정 API 엔드포인트에 대한 공격이 70% 감소했습니다.”라고 전합니다.
LendingTree에서 이전에 사용했던 솔루션과 달리, Cloudflare 봇 관리는 정상적인 자동화 트래픽을 방해하지 않습니다. “요청 수십만 건 중에서 정상적인 요청이 악의적인 것으로 표시된 경우는 단 한 번이었습니다.”라고 Turner가 말합니다.
Turner는 최소 한 곳의 경쟁업체에서 실제로 LendingTree의 API를 남용했다는 확인도 받을 수 있었습니다. “API 남용을 중단하자마자 한 경쟁업체의 금리가 바로 높아졌습니다.” 그는 이렇게 회상합니다. “그때, 이런 내용의 뉴스 기사를 보았습니다. LendingTree를 제외한 모두가 갑자기 높은 담보 대출 금리를 부르고 있다는 거였죠. 경쟁업체가 더 저가로 상품을 제공하려고 LendingTree의 API를 스크래핑해 데이터를 이용했었다고 크게 의심하고 있습니다.”
Turner는 Cloudflare Workers 서버리스 플랫폼을 이용해 네트워크 에지에서 신속하게 코딩 문제를 해결하고 있다고 말합니다. “저에게 Workers는 맥가이버 칼이에요. Workers를 이용한 다양한 사용 사례가 있어요.” 그는 이렇게 설명합니다. “덕분에 코드를 다시 써서 빠르게 패치할 수 없는 문제를 수월하게 해결할 수 있어요.” 이러한 사용 사례로는 교차 출처 리소스 공유 헤더 삽입, 매개변수 재작성, 패킷 검사, A/B 테스트 수행, 수신 TLS 트래픽 검사 및 라우팅 등이 있습니다.
“Workers는 들어오는 요청을 검사해 TLS 1.0인지 확인한 다음 요청을 라우팅합니다.”라고 Turner는 설명합니다. “Workers를 사용한 덕분에 상당 부분의 트래픽이 우리 자체 서버에서 발생한다는 사실을 알아낼 수 있었습니다. 같은 데이터 센터 내에서 서로 바로 옆에 위치해 있는데도 인터넷을 통해 통신하고 있었던 겁니다. Workers가 아니었다면 이 문제를 알 수 없었죠. 에지에서 코드를 실행할 수 있고 그에 따라 트래픽을 라우팅할 수 있어 비용과 시간을 절약할 수 있습니다.”
Turner는 최근 Workers를 사용해 교차 출처 리소스 공유(CORS) 헤더를 삽입하고 LendingTree의 시스템과 AOL에서 운영하는 파트너 사이트 중 한 곳 사이에 나타난 통신 문제를 해결했습니다. “Workers를 사용해 문제를 파악하고 몇 분 만에 서비스를 복구할 수 있었습니다. 가동 중단도 없었고 코드를 변경하지도 않았죠.” Turner는 이렇게 회상합니다. “Workers가 없었다면 코드를 리팩터링하고 서버를 바꾸어야 했을 겁니다. 몇 주는 걸렸을 거예요.”
Workers는 LendingTree가 A/B 테스트를 수행하는 방식을 바꾸었습니다. Workers를 사용하기 전 LendingTree는 NGINX 프록시를 사용해 모든 A/B 테스트를 자체적으로 수행해야 했습니다. Turner는 “전체 A/B 테스트 시스템은 내부적으로 작성되어 있었습니다.”라고 얘기합니다. 이제 LendingTree는 Cloudflare Workers를 사용해 네트워크 에지에서 A/B 테스트를 수행하기 시작했고, 복잡성은 적으면서 성능은 더 좋아졌습니다.
“LendingTree의 입장에서 Cloudflare Workers는 판도를 바꾸어 놓았습니다. 저희는 성능이나 가용성에는 영향을 미치지 않으면서 클라이언트 세션 내에서, 또는 세션과 함께 비동기식으로 JavaScript를 실행하고, 데이터를 다루며, 결정을 내릴 수 있습니다.” Turner의 설명입니다. “다른 솔루션은 이런 기능을 제공하지 않습니다.”
LendingTree는 조직 전체에 여러 Cloudflare 보안 및 성능 도구를 통합했습니다.
예를 들어, LendingTree는 봇 관리와 Cloudflare 레이트 리미팅 및 사용자 지정 WAF 규칙을 결합하여 악성 봇으로부터의 보호를 더 강화했습니다. “지난 4~5개월 동안 Cloudflare 레이트 리미팅으로 API 엔드포인트 남용을 막아 250,000달러 가량을 절감했습니다.” Turner가 말합니다.
Cloudflare WAF는 LendingTree가 구성한 보안 방어 구조의 또 다른 핵심 요소입니다. “Cloudflare WAF는 서비스 가격도 모두 적정하지만, 더욱 중요한 것은 사용하기 쉽고 매우 잘 작 동한다는 점입니다.”라고 Turner는 말합니다. "우리 회사에는 이제 WAF 규칙을 관리하거나 위협 정보 피드를 유지하기 위한 전담 팀이 필요하지 않습니다. Cloudflare WAF가 대신 모든 것을 처리하니까요."
LendingTree가 전환율이 낮아졌다는 사실을 알았을 때, Google에서는 회사에서 페이지 로드 시간을 개선할 것을 제안했습니다. Turner는 Cloudflare의 성능 최적화 도구를 사용해 몇 가지를 변경한 다음 LendingTree의 페이지 로드 시간을 다시 확인하도록 Google에 요청했습니다. Google 직원들은 크게 놀랐습니다. Turner는 “기본 제공되는 Cloudflare 성능 기능만 활용해 페이지 로드 시간을 최대 70%까지 개선했습니다.”라고 회상했습니다. “Google 직원들은 몇 가지만 바꾸어서 이렇게 빨리 사이트 성능을 높이는 사례를 본 적이 없다고 말했죠.”
LendingTree는 Cloudflare TLS 인증서를 사용해 비용을 절약하고 인증서 만료로 초래될 중단 상태를 방지했습니다. “저희에겐 서로 다른 속성 수천 개가 있습니다. 이런 규모라면 인증서 갱신을 놓치게 되는 건 시간 문제였죠.”라고 Turner는 설명합니다. “자동으로 갱신되는 Cloudflare의 TLS 인증서를 사용하면서, 관리 비용과 인증서 만료 때문에 중단을 겪어 잃게 되는 수익의 측면 모두에서 1년에 약 50,000달러를 절감하고 있습니다.”
Turner는 Cloudflare를 이용하며 LendingTree가 절감한 금액이 Cloudflare에 지불한 서비스 비용보다 크다고 얘기합니다. “Cloudflare는 저희 제품을 빠르고 안전하며 안정적으로 제공할 수 있게 지원하여, 비즈니스 속도에 따라 보안을 제공합니다.”라고 그는 말합니다.
Cloudflare 봇 관리는 API 엔드포인트를 자주 남용하여 수행한 공격을 70% 줄였습니다.
LendingTree는 Workers를 이용해 시스템과 파트너 사이트 사이의 통신 문제를 즉시 해결했고, 가동 중단이나 코드 변경이 필요하지 않았습니다.
LendingTree는 Cloudflare 레이트 리미팅으로 API 엔드포인트 남용을 중지하여 5개월 동안 250,000달러를 절감했습니다.
LendingTree는 Cloudflare의 성능 제품군을 사용하여 최대 70%까지 페이지 로드 시간을 개선했습니다.
“LendingTree의 입장에서 Cloudflare Workers는 판도를 바꾸어 놓았습니다. 저희는 성능이나 가용성에는 영향을 미치지 않으면서 클라이언트 세션 내에서, 또는 세션과 함께 비동기식으로 JavaScript를 실행하고, 데이터를 다루며, 결정을 내릴 수 있습니다. 다른 솔루션은 이런 기능을 제공하지 않습니다.”
John Turner
애플리케이션 보안 책임
“지난 4~5개월 동안 Cloudflare 레이트 리미팅으로 API 엔드포인트 남용을 막아 250,000달러 가량을 절감했습니다.”
John Turner
애플리케이션 보안 책임