Home 기술 문서 인증정보 스터핑 공격으로부터 OTT 서비스를 보호하는 방법
Applications

인증정보 스터핑 공격으로부터 OTT 서비스를 보호하는 방법

About The Author

Outline

OTT 스트리밍 서비스에 대한 인증정보 스터핑 공격으로 인한 위협은 최근 매우 분명해졌습니다. 인기 있는 스트리밍 서비스가 출시된 지 몇 시간 만에 사용자 계정이 해킹되어 할인된 가격으로 판매되었습니다. 수천 명의 가입자가 잠긴 계정 액세스 및 서비스 접근성 문제에 대한 불만을 해소하기 위해 소셜 미디어를 사용함에 따라 이러한 침해는 PR 과제로 변모했습니다.

이러한 경험에서 알 수 있듯이 인증정보 스터핑 공격은 OTT 보안 팀에게 새로운 과제입니다. 무료 평가판, 코드 절단 및 독점 콘텐츠로 구동되는 스트리밍 서비스 가입으로 인해 많은 사용자 정보가 생성되어 OTT 서비스가 데이터 도난의 대상이 되고 있습니다. 침해된 계정에 대한 액세스를 재판매하는 것이 해커의 유일한 동기는 아닙니다. 또한 주소, 전화 및 검색 기록, 신용 카드 데이터 등 유출된 사용자 계정에서 중요한 개인 정보를 스크래핑할 수도 있습니다. 그런 다음 해커는 다크 웹을 통해 이 정보를 판매하거나 사회 공학 및 피싱 공격을 통해 추가 피해를 입힐 수 있습니다.

인증정보 스터핑 공격의 피해 영역은 사용자의 개인 정보 및 재무에 미치는 영향을 훨씬 넘어섭니다. 인증정보 스터핑 공격은 시간당 수백만 건의 로그인 요청을 자동화할 수 있는 봇넷을 사용하므로 애플리케이션 인프라에 큰 피해를 줍니다. 성공률이 낮더라도 이와 같이 많은 요청이 발생하면 스트리밍 플랫폼 운영 비용이 증가할 수 있습니다. 추가 CPU 주기, 메모리 및 데이터 수신/송신 요금은 시간이 지남에 따라 증가합니다. 특히 클라우드에서 애플리케이션 백엔드를 관리하는 비용이 상대적으로 높다는 점을 감안할 때 백엔드 시스템에 크게 의존하는 로그인 요청이 가장 비싼 공격입니다. 결과적으로 확인되지 않은 악의적인 활동이 높은 수준으로 발생하면 콘텐츠를 인증, 탐색 및 스트리밍하려는 합법적인 사용자의 서비스 성능이 저하됩니다.

스트리밍 서비스는 어떻게 이러한 증가하는 위협을 무력화할 수 있을까요? 이 기술 기사에서는 오늘날의 봇을 관리하는 데 필요한 요소와 스트리밍 서비스가 인증정보 스터핑 공격의 영향을 최소화하고 가능성을 줄이기 위해 필요한 요소를 검토합니다.

인증정보 스터핑 공격의 구조

사이버 범죄자들은 잘못 구성된 데이터베이스 발견, 피싱 공격, 맬웨어로 사용자 디바이스 감염, 다크 웹에서 해킹된 자격 증명 구매 등 여러 가지 수단을 통해 도난당한 자격 증명을 획득하여 자격 증명 스터핑 공격을 시작할 수 있습니다. 다음으로 공격자는 분산된 프록시 서버를 통해 수많은 로그인 요청을 라우팅하여 공격의 출처를 가리고 요청을 증폭시킵니다. 범죄자들은 다크 웹 포럼의 봇 유인자로부터 시간당 저렴한 가격으로 프록시 서비스에 대한 액세스를 구매할 수 있습니다. 마지막으로, 공격자는 공격에 노출된 자격 증명 목록을 사용하여 인증 요청을 자동화하는 스크립트를 만듭니다. 일반적으로 재사용된 암호 또는 단순한 암호를 사용하여 서비스에 액세스합니다. 공격자는 CAPTCHA 솔버, 브라우저 에뮬레이터 또는 지문 스푸핑 스크립트와 같은 다크 웹에서 기존 방어를 막기 위해 툴킷을 구매할 수도 있습니다.

인증정보 스터핑 공격 방어

이러한 공격을 막으려면 봇과 인간을 구분하는 능력이 필요합니다. 안타깝게도 봇 운영자들은 봇 탐지 방법을 우회할 수 있는 새로운 방법을 끊임없이 찾고 있습니다. 최신 세대의 봇은 인간과 거의 구별할 수 없습니다.

봇이 점점 더 정교해짐에 따라 과거에는 봇의 요청 차단, IP 주소 또는 사용자 에이전트(UA)와 같은 단순한 방어 전략으로는 충분하지 않습니다. 오늘날 공격자들은 고정 IP를 공격하는 대신 저렴하고 풍부한 회전 IP 프록시 서비스 중 하나를 사용하고 있으며, 이는 속도 제한 및 ACL(Simple Access Control List) 보호를 우회하는 데 도움이 됩니다. 또한 차단은 봇 운영자에게 유용한 피드백 메커니즘으로 작용하여 탐지 방법을 무력화하기 위해 자동화를 발전시키도록 하기 때문에 바람직하지 않습니다.

봇 탐지 기술은 점점 더 정교해지는 봇 공격에 대응하기 위해 더욱 정교해져야 했습니다. 오늘날의 최첨단 봇 탐지 기법에는 서버 측과 클라이언트 측 모두에서 세 가지 형태의 분석이 포함됩니다. 그들은:

  1. 지문 요청
  2. 클라이언트 지문 인식
  3. 행동 지문 채취

정교한 인증정보 스터핑 공격을 방어하려면 이 세 가지를 모두 조합해야 합니다.

공격 탐지 방법 1: 지문 인식 요청

요청 지문은 일반적으로 서버가 클라이언트로부터 요청된 모든 정보를 받는 즉시 서버 측에서 수행됩니다. 클라이언트 요청은 일반적으로 네트워크(IP), 연결, 암호화 및 요청 지문을 생성하는 데 분석되고 사용되는 기타 HTTP 메타데이터의 조합으로 구성됩니다. 이 지문에는 IP 주소, TCP 핸드셰이크, TLS 핸드셰이크(예: TLS 프로토콜, 암호화 및 확장), HTTP 헤더 및 헤더 순서, ASN 및 장치 유형과 같은 메타데이터에서 파생된 기타 정보와 같은 핵심 세부 정보가 포함됩니다. 이러한 요청 특성을 조합하면 각 클라이언트에 대해 고유한 서명 또는 지문이 생성될 수 있습니다.

그림 1. 고유한 요청 지문을 생성하기 위해 함께 작동할 수 있는 요청 특성의 작은 샘플입니다.

지문으로부터, 우리는 변칙성을 찾기 시작할 수 있습니다. 예를 들어, 요청이 Chrome UA에서 온 것이라고 주장하는 경우, 사용자 에이전트에 표시된 것처럼 해당 Chrome 브라우저 버전에서 예상되는 순서대로 헤더를 포함합니까? 일반적인 HTTP 및 TLS 프로토콜을 사용합니까? ClientHello 메시지에 이 Chrome 버전에 일반적으로 선호하는 순서의 프로토콜 및 암호가 포함되어 있습니까? 요청 메타데이터를 분석하는 것 외에도 서버는 요청 수, 요청 빈도, 요청이 자동화되었는지 여부를 결정하는 데 도움이 되는 탐색 패턴이 있는지 여부와 같은 제한된 동작 분석을 수행할 수 있습니다.

지문 채취를 요청하는 것은 필요한 첫 단계이지만 그 자체로는 부족합니다.

공격 탐지 방법 2: 클라이언트 지문

요청 지문 채취의 문제는 공격자가 요청 지문을 스푸핑할 수 있다는 점입니다. 이 지문은 실제 클라이언트와 100% 동일해 보일 수 있습니다. 공격자가 실수를 저지르면 요청 지문 인식이 이러한 실수를 식별하지만 정기적으로 일어나는 일은 믿을 수 없습니다.

근본적으로 요청 지문은 이야기의 절반만 알려줍니다. 서버는 클라이언트 측에서 무슨 일이 일어나고 있는지 확인하고 요청 지문을 보완하기 위해 클라이언트 지문을 생성하여 더 많은 통찰력을 얻어야 합니다. 이를 통해 봇 탐지 시스템은 클라이언트에 대한 보다 완벽한 정보를 얻을 수 있으며 공격자는 탐지를 피하기 어렵습니다.

클라이언트 지문 서버는 요청된 페이지에 대한 응답으로 HTML을 다시 작성하여 클라이언트 측에서 실행할 작은 JS(JavaScript)를 주입할 수 있습니다. 또는 서버는 로그인 페이지를 로드할 때 클라이언트가 다운로드할 수 있는 원격 JS를 가리키는 스크립트 태그를 삽입할 수 있습니다. JS는 클라이언트 측에서 검사를 수행하고 JS 또는 쿠키가 활성화되었는지 여부와 같은 장치 정보를 수집하고 OS, 캔버스, 렌더러, 브라우저, JS 엔진 등을 검사하여 완전한 클라이언트 지문을 생성합니다.

일반 브라우저는 쿠키를 지원하고 JS를 활성화해야 합니다(따라서 제대로 로그인하여 스트리밍 서비스를 사용할 수 있음). 활성화하지 않으면 의심이 들 수 있습니다. 클라이언트 지문 인식은 잠재적인 가짜 클라이언트를 나타낼 수 있는 광고된 장치에서 전형적이지 않은 다른 의심스러운 요소를 식별할 수 있습니다. 예를 들어, Safari 브라우저 UA(브라우저 엔진) 또는 Chrome(SpiderMonkey JS 엔진)이 있는 Chrome)이 있습니다.

이러한 세부 정보는 수집되어 추가 분석을 위한 API 호출로 원격 서버에 비컨링되거나, 암호화된 후 후속 클라이언트 요청에서 분석을 위해 서버에 전송되는 쿠키 또는 헤더로 설정될 수 있습니다. 클라이언트 지문을 수집하고 생성하는 위의 기술은 다른 SDK를 통해 iPhone/Android 앱, Roku 또는 삼성 TV와 같은 비 브라우저 스트리밍 애플리케이션에도 적용할 수 있습니다.

그림 2. 고유한 클라이언트 지문을 생성하기 위해 함께 사용할 수 있는 작은 특성 샘플입니다.

요청과 클라이언트 지문 인식의 결합은 초기 세대 봇에서 효과적이었지만, 고급 봇은 Chrome, Firefox 및 Safari를 포함하여 사람과 동일한 클라이언트를 기반으로 합니다. 그들은 또한 헤드리스 크롬과 같은 헤드리스 브라우저를 사용할 수 있습니다. JavaScript 및 쿠키 지원과 같이 기능이 부족할 수 있는 기본 봇과 달리 고급 봇은 적절한 브라우저와 JS 엔진을 활용하여 디바이스 유형과 일치하는 올바른 형식의 TCP 및 TLS 핸드셰이크 및 HTTP 요청을 수행할 수 있습니다.

저속 및 저속 공격은 수천 개의 IP 주소를 통해 요청을 분산시켜 속도 기반 탐지 방법을 무효화함으로써 수행할 수 있습니다. 이 문제를 더욱 가중시키기 위해 실제 사용자 디바이스의 실제 브라우저를 하이재킹하여 인증정보 스터핑 활동에 사용할 수 있으며 이러한 공격은 이러한 접근 방식만으로는 거의 놓칠 수 있습니다.

공격 탐지 방법 3: 행동 지문 인식

인증정보 스터핑을 진정으로 물리치려면 지능형 행동 지문을 추가해야 합니다. 사용자가 스트리밍 서비스와 상호 작용할 때 단순히 콘텐츠를 요청하는 것이 아니라 앱을 이동, 클릭, 탭하고 탐색합니다. 행동 지문 인식은 클라이언트 측에서 사용자 원격 측정 데이터를 수집하여 이러한 작업을 연구합니다. 여기에는 마우스 움직임 패턴, 키 입력, 동작 타이밍 또는 사용자의 움직임 패턴과 위치를 측정하기 위해 전화 가속도계 또는 자이로스코프와 같은 장치 센서를 두드리는 것이 포함될 수 있습니다.

수집된 데이터를 기반으로 실시간 또는 오프라인 분석을 위해 행동 지문이 생성되고 전송됩니다. 사용자가 무작위 또는 비유기적 패턴을 나타내고 있습니까? 마우스가 선형 패턴으로 움직이고 있습니까, 아니면 사람이 달성 할 수있는 것보다 스크롤 속도가 빠릅니까? 브라우징 세션 내내 휴대폰이 항상 고정된 각도로 고정되어 있습니까? 초당 로그인 요청 수가 인간적으로 가능합니까?

이는 데이터 과학자와 연구자들이 끊임없이 데이터를 분석하고 요청이 자동화되었는지 여부에 대한 인텔리전스를 도출하기 위해 머신 러닝 기술을 사용해야 하는 전쟁터입니다. 이는 수집된 요청, 장치 및 동작 속성의 조합이 기하급수적으로 증가했기 때문입니다. 봇이 행동 하이재킹을 통해 인간의 행동을 모방하는 능력이 향상됨에 따라 마우스 움직임과 같은 기본적인 행동 특성에 의존하는 것은 더 이상 적합하지 않으며 오탐률을 높이고 실제 사용자의 경험에 영향을 줄 수 있습니다.

이러한 유형의 봇은 인증정보 스터핑을 방어하기 가장 어려운 과제입니다. 가장 정교한 봇을 차단하려면 세션 내내 클라이언트의 브라우징 동작과 같은 더 많은 데이터가 필요합니다. 클라이언트의 의도를 분석하여 요청이 악의적인지 식별합니다. 예를 들어, 사용자가 홈페이지를 거치지 않고 직접 스트리밍 서비스의 로그인 페이지를 방문하는 것이 정상적인 동작입니까? 사용자가 스트리밍 서비스에 로그인한 후 즉시 계정 페이지로 이동하고 다른 작업을 수행하지 않는 것이 정상입니까? 이러한 데이터 포인트는 봇의 의도를 정확하게 식별할 수 있습니다. 전체 세션에 걸쳐 스트리밍 서비스와 사용자 상호 작용을 통해 다른 행동 데이터가 풍부하고 완전한 지문을 생성하고 오탐이 발생할 가능성은 낮습니다.

봇 관리

로그인 요청을 시도하는 봇을 성공적으로 감지한 경우 올바른 응답은 무엇입니까? 봇을 차단하고 사라지기를 희망합니까? 대부분의 경우, 그것은 잘못된 행동입니다. 401 무단 응답과 같은 4xx 오류로 응답한다고 가정해 보겠습니다. 공격자는 현재 부적절한 기술을 알고 있으며 시행 착오를 통해 감지 메커니즘을 극복하기 위해 자동화 도구를 업데이트합니다. 이 경우 공격자에게 메소드를 발전시키도록 경고하는 피드백 루프를 제공함으로써 실수로 공격자를 도왔습니다.

정교한 봇 운영자는 결국에는 공격 방어를 감지하고 방식을 발전시키는 것은 불가피하지만, 이러한 노력을 피하거나 지연시킬 수 있는 몇 가지 좋은 방법이 있습니다. 탐지되면 봇 요청을 차단하는 대신 서버는 로그인 시도가 성공할 때 예상되는 표준 응답 코드(예: 200 OK)와 민감한 데이터를 노출하지 않는 정적 상용구 응답을 전송할 수 있습니다.

봇 운영자는 성공적인 응답이 현재 방법이 성공적이라고 가정하지 않을 가능성이 큽니다. 그리고 도난당한 자격 증명은 사실이 아닐지라도 유용하여 공격자를 어둠 속에서 유지합니다. 또 다른 옵션은 응답을 제공하지 않고 봇 요청이 시간 초과될 때까지 중단되도록 하여 봇 요청을 지연시키는 것입니다. 이는 CDN(콘텐츠 전송 네트워크)과 같이 서버 용량이 많은 전 세계적으로 분산된 대규모 플랫폼을 사용하는 경우에 가능합니다. 이러한 잘못된 정보 방법은 단순히 봇 요청을 차단하는 것보다 더 효과적입니다.

오탐이 발생할 경우 사용자 경험에 미치는 영향이 적은 봇을 관리하기 위한 또 다른 전략은 의심스러운 봇이 CAPTCHA를 해결해야 합니다. CAPTCHA를 완료한 후에만 로그인에 성공할 수 있습니다. 이를 통해 실제 사용자는 봇으로 잘못 식별된 경우에도 계속 사용할 수 있습니다. 또한 오탐률을 줄이기 위해 감지 방법을 조정하는 데 유용한 피드백을 제공합니다.

안전한 스트리밍 유지

인증정보 스터핑 공격은 모든 OTT 스트리밍 서비스의 중요한 우선 순위입니다. 이러한 서비스가 인기를 얻으면 보안 위험도 증가합니다. 애플리케이션 보안 및 봇 관리에 대한 멀티레이어 접근 방식은 인증정보 스터핑 공격을 가동하는 데 사용되는 가장 정교한 봇도 정확하게 식별하고 이러한 공격이 고객 경험이나 평판에 영향을 미치지 않도록 방지합니다.

Akamai의 클라우드 보안 기능이 인증정보 스터핑 공격, DDoS 공격 등으로부터 온라인 비즈니스를 보호하는 방법에 대해 자세히 알아보십시오.