본 콘텐츠는 사용자의 편의를 고려해 자동 기계 번역 서비스를 사용하였습니다. 영어 원문과 다른 오류, 누락 또는 해석상의 미묘한 차이가 포함될 수 있습니다. 필요하시다면 영어 원문을 참조하시기를 바랍니다.
Cloudflare는 최근 2026년에 1,111명의 인턴을 채용하겠다는 목표 를 발표했습니다. 이는 전 세계 정규직 직원의 약 25%에 해당합니다. 이는 작동 코드를 개발하고 프로덕션으로 전달할 수 있는 수많은 기회를 의미합니다. 이는 또한 관찰하기 어렵고 더욱 이해하기 어려운 인터넷의 여러 측면을 측정할 수 있는 새로운 기회를 제공합니다.
트래픽으로 생성되는 방대한 양의 데이터(대부분 Cloudflare Radar를 통해 게시됨)에도 불구하고 Cloudflare에서는 측정하기가 어렵습니다. 우리가 자주 듣게 되는 오해는 "Cloudflare에 데이터가 너무 많으면 모든 답을 갖고 있어야 한다"는 것입니다. 엄청난 양의 데이터를 보유하는 것은 좋지만, 필터링해야 할 노이즈가 훨씬 더 많고 다른 설명을 배제하기 위해 추가 작업이 많이 필요하다는 단점도 있습니다.
Ram Sundara Raman은 2022년 Cloudflare에서 인턴으로 근무하며 박사 과정을 밟았습니다. 현재 그는 University of California, Santa Cruz의 조교로 재직하고 있으며, Cloudflare에서는 그를 다시 초대하여 Cloudflare에서의 데이터 관련 업무에 대한 인사이트를 공유하게 되었습니다.
Ram의 프로젝트는 연구원들이 대학 연구실에서 공유하고 가져온 인사이트가 연결 오류를 감지하고 고객에게 설명하는 Cloudflare의 귀중한 프로젝트의 토대를 어떻게 마련할 수 있는지를 보여주는 훌륭한 예시입니다. 예비 인턴을 위한 한 가지 팁: Cloudflare에 지원하여 데이터 및 측정 아이디어를 생각하는 경우, 본인의 아이디어가 Cloudflare에 중요할 수 있는지, 어떻게, 또는 왜 중요한지 생각해 보는 것이 좋습니다. 여러분의 아이디어를 듣고 싶습니다!
두말할 필요도 없이, 여기 램이 있습니다. 그의 인사이트가 이곳 Cloudflare에게 뿐만 아니라 미래의 인턴과 실무자에게도 정보를 제공하고 신선하게 유지되기를 바랍니다.
데이터에서 확보한 대규모 인사이트는 작은 기적일 수도 있습니다
작성자: Ram Sundara Raman, UC Santa Cruz 컴퓨터 과학 및 공학 학부 조 교수
2022년 여름에 Cloudflare에서 연구 인턴으로 합류하기 전에 저는 미시간 대학교에서 박사 과정 학생으로 여러 네트워크 보안 및 개인정보 보호 문제를 연구했습니다. 이전에는 검사를 신중하게 제작하고 전송하여 HTTPS 가로채기,연결 변조 등의 보안 문제를 감지하고 정량화하는 능동적 측정이 필요했습니다. 사용자와 인터넷 서버 사이의 강력한 네트워크 미들 장비에서 수행되는 이러한 공격으로 인해 다양한 지역의 수많은 사용자의 인터넷 콘텐츠 및 서비스가 차단될 수 있으며 보안이 약화될 수도 있습니다. 예를 들어, 2019년 카자흐스탄에서 발생한 HTTPS 가로채기 메시지 가로채기 공격은 Cloudflare가 카자흐스탄에서 수행한 모든 측정의 7~24%에서 감지되었습니다.
이러한 공격을 감지하는 것은 어렵습니다. 기본 메커니즘은 지리적, 시간적 차이를 통해 다양하며 완전히 불투명합니다. 또한 인터넷에는 트래픽이 조작되고 있을 때 사용자에게 보고할 수 있는 기술적 메커니즘이 없으며, 제3자 행위자는 영향을 받는 사용자에게 투명하게 드러나는 경우가 거의 없습니다.
Cloudflare 이전에 제가 적극적으로 측정해 왔던 것이 이러한 문제를 해결하는 데 도움이 되었습니다. 저는 미시간 대학교 PI 및 팀과 함께 200여 개 국가에서 연결 변조를 감지하여 가장 큰 규모의 인터넷 검열 관측소 중 하나인 Censored Planet의 개발을 도왔습니다. 하지만 능동 측정은 규모, 리소스, 실제 세계 보기 면에서 장벽에 직면합니다. 예를 들어, Censored Planet은 시간과 리소스의 제약 때문에 가장 인기 있는 2,000개의 웹 사이트에 대해서만 차단 및 연결 변조를 측정할 수 있습니다.
Censored Planet 같은 프로젝트를 진행하는 동안, 저는 대형 네트워크 운영자나 클라우드 공급자를 보면서 다음과 같은 생각을 자주했습니다. 이들은 거의 모든 네트워크에서 실제 트래픽을 확인할 수 있는 글로벌 뷰를 보유하고 있으며, 해당 수준의 데이터까지 분석을 확장할 수 있는 충분한 리소스와 원격 측정 기능을 보유할 수 있습니다. 예를 들어, 미들 장치가 간섭할 때 이를 감지하는 데 이 데이터를 사용하는 것이 얼마나 어려울까요?”
ACM SIGCOMM'23에 발표된 연구를 통해 알 수 있듯이 이는 매우 어려울 수 있습니다.
검열에 대한 제 관점은 Cloudflare에서의 경험을 바탕으로 진화한 것입니다. 이 경험을 통해, 저는 데이터가 대규모로 되어도 대규모 감지는 어렵다는 것을 배웠습니다. 인턴 기간 동안 수행한 연구를 통해 네트워크 미들 장비가 제한된 장소에서뿐만 아니라 전 세계 다양한 규모에서 특정 연결을 차단하거나 방해한다는 사실이 밝혀졌습니다.
프로덕션 데이터를 사용하고 실제 인사이트를 기반으로 한 인턴십 프로젝트
이 연구에서는 더 폭넓은 활성 측정 커뮤니티에서 수집한 인사이트, 즉 미들박스가 패킷을 누락하거나 RST 패킷을 삽입하여 연결을 중단시키는 방식으로 인터넷 TCP 연결을 간섭한다는 인사이트를 기반으로 구축했습니다. 동일한 인사이트로, 패킷 누락과 RST의 패턴은 결정론적이며 결과적으로 감지가 가능하다는 점이 드러났습니다. 이것이 바로 능동적 측정의 유연성입니다. 환경으로부터의 응답을 도출하는 사용자 지정 요청 또는 '프로브'를 작성하는 것입니다. 그러나 이러한 표적화된 접근 방식은 Cloudflare의 경우에도 확장하고 유지하기가 어렵습니다. 어떤 프로브를 만들어야 할까요? 어디로 전송해야 할까요? 많은 것을 놓칠 위험이 그처럼 높다면, Cloudflare는 어떤 동기로 시도를 해야 할까요?
제 인턴십의 목표는 이러한 접근 방식을 능동적이 아닌 수동적인 것으로 바꾸어 볼 수 있는지 알아보는 것이었습니다. Cloudflare의 모든 것은 확장 가능하고 지속 가능해야 합니다. 그러나 변조 이벤트를 감지할 수 있더라도 수동적 관찰에 국한되는 시스템을 구성할 수 있는지 여부는 완전히 불확실했습니다. 요구 사항은 명확했습니다. Cloudflare에 자연스럽게 나타나는 데이터만 관찰하고 사용하는 것이었습니다. 다른 데이터세트를 섞을 필요도 없고, Cloudflare에서 자체 활성 측정을 실행할 필요도 없습니다. 둘 중 하나를 수행했다면 삶이 더 쉬워졌을 것입니다. 변수를 제어할 수 있고, 관찰을 확인하는 데 도움이 될 실측 실측값을 얻을 수도 있었습니다. 하지만 그 일이 재미가 있을까요? 게다가, Cloudflare는 모든 데이터를 보유하고 있습니다… 그렇죠?
예, 아마도 — 적절하게 샘플링되면 안정적으로 티즈 아웃하고 올바르게 해석할 수 있습니다.
여기 유용한 인사이트가 있습니다. 저는 사람들이 능동적 측정 기능을 사용하여 인터넷 연결을 변조하는 미들 장비를 찾는 것은 건초더미에서 바늘을 찾는 것과 같다고 말하는 것을 자주 듣습니다. Cloudflare의 패시브 데이터 세트의 관점에서 이 문제를 살펴보기 시작했을 때, 우리가 여전히 똑같은 바늘을 찾고 있고, 어떤 면에서는 지금은 그보다 더 찾기 어려워졌다는 것을 빠르게 깨달았습니다.
수동적인 관찰자로서 우리는 어디를 볼지 선택할 능력을 잃기 때문입니다. 또한, 이제 대륙은 땅덩이처럼 펼쳐져 있습니다. 사용자 수백만 명, 연결을 만들고 끊는 방법은 수천 개에 달합니다. 과장이 아닙니다. 우리는 수백만 개의 실제 데이터 포인트에서 변조를 식별해야 했을 뿐만 아니라 장애물과 함정으로 가득한 데이터를 대상으로 이를 수행해야 했습니다. 보이지 않는 함정과 걸려 넘어지는 철사를 다루는 것처럼 느꼈습니다.
그 문제를 해결하고 나서야 진정으로 이해할 수 있는 문제가 여러 가지 있었습니다. 가장 명백한 것부터 시작해 보겠습니다. 바로 규모입니다.
첫째, 주로 Cloudflare로의 수신 연결과 관련된 대규모 데이터세트가 넘쳐났습니다. 예를 들어, 제가 인턴십에 참여하는 동안 Cloudflare에서는 전 세계 285개 이상의 데이터 센터에서 초당 4,500만 건 이상의 HTTP 요청을 처리하고 있었습니다. Cloudflare는 또한 TCP 연결을 1.1.1.1 DNS 서버. 또한 네트워크 오류 로깅(NEL) 데이터도 탐색했습니다. 일반적으로 측정 연구에서는 너무 작은 규모의 문제를 다룹니다.여기에서는 정반대의 문제가 있었습니다. 바로 좋은 것이 너무 많다는 것이었습니다. 실제로 이러한 각 데이터 세트에는 고유한 샘플링 방법이 있어 모두 함께 활용하는 것은 거의 불가능했습니다. 또한 NEL과 같은 데이터 세트는 일부 클라이언트에서만 지원하고 일부 웹 사이트에서만 활성화하므로 편향됩니다. 이러한 편향성을 평가한 결과, NEL은 최종 결정을 내리지 못했습니다.
규모를 관리하기 위해 우리는 특별한 IPTABLES 규칙 을 구성하여 285개 데이터 센터 각 내의 모든 서버를 포함한 Cloudflare의 모든 상호 접속 위치에서 들어오는 TCP 연결을 기록하고 저장합니다. 그러나 데이터의 규모가 매우 방대했기 때문에, 연결 10,000개 중 1개를 균일하게 무작위로 추출한 샘플로만 작업해야 했습니다. 각 샘플에 대해 각 연결의 첫 10개의 인바운드 패킷만 기록했습니다. 즉, 첫 10개의 패킷 후에는 드물게 발생하는 특정 유형의 변조 또는 흐름 뒷부분에서 발생하는 변조를 감지할 수 없었습니다.
그럼에도 불구하고 이러한 제약 내에서 우리는 미들 장비가 간섭할 때 나타나는 독특한 패킷 패턴인 변조 서명을 개발하는 데 성공했습니다. 그러나 이러한 서명을 개발하는 것은 두 번째 인계 도선인 노이즈 데이터로 인해 간단하지 않았습니다.
우리가 모든 소음원을 예측할 수 있었다고 상상하기는 어렵습니다. 예를 들어, 이벤트 레코드에서 시간 유지의 해상도는 밀리초였지만, 많은 패킷이 1밀리초에 도착할 수 있었습니다. 따라서 기록된 패킷의 순서를 신뢰할 수 없었습니다. 결국 저희는 포트 스캔뿐만 아니라 일부 서비스 거부 공격 트래픽이 변조 이벤트처럼 기묘해 보일 수 있으며 Happy Eyeballs와 같이 인터넷 개선에 도움이 되도록 설계된 특정 "모범 사례"가 우리의 감지를 망친 특이한 단점이 된다는 사실을 알게 되었습니다. Cloudflare에서는 이러한 노이즈의 원인을 분석하고 이를 이해하기 위해 시그니처를 반복하는 데 많은 시간을 할애했습니다. Cloudflare에서는 IP 헤더의 Time To Live(Time To Live) 필드의 일관성 없는 변경 사항을 포함하되 이에 국한되지 않는, Cloudflare에서 확인한 다른 증거 소스에 의해 뒷받침될 경우에만 이벤트를 변조로 인정했습니다.
마지막으로 고민했던 문제가 발생하게 됩니다. 실측이 부족하다는 것입니다.
적극적이고 통제된 실험이 없었다면, 감지한 것이 인터넷의 수천 가지 현상 중 하나가 아니라 실제로 조작되었는지 확인하는 것은 매우 어려웠을 것입니다. 다행히 검열 측정 분야에서 많은 연구자들의 놀라운 연구 덕분에 저희는 데이터에서 알려진 신호와 패턴을 적어도 일부 인식할 수 있었고 많은 변조 사례를 확인하는 데 도움이 되었습니다.
더 많은 인계선이 있었습니다. 하지만 제가 가장 깨달은 핵심은 이것입니다. 공급자는 여러 가지를 말해 줄 수 있는 데이터를 많이 보유하고 있지만, 어떤 것을, 얼마나 많이, 무엇에 대해 아는 것은 매우 어렵다는 것입니다. 대규모 인프라 운영자는 인터넷을 필터링하고 샘플링하며 부분적으로 보는 경우가 많습니다. 예를 들어,
Cloudflare와 같은 서비스는 어떤 연결이 영향을 받았는지, 어디에서 연결이 시작되었는지만 확인할 수 있지만, 누가 변조했는지는 확인할 수 없습니다;
때때로 어떤 도메인이 차단되었는지 파악할 수 있었지만, 항상 그런 것은 아닙니다. 필요한 패킷이 Cloudflare에 도달하기 전에 삭제될 수 있기 때문입니다.
수동적인 관찰자는 영향을 받는 사용자 활동만 볼 수 있으며 영향을 받을 수 있는 활동을 볼 수는 없습니다.
두 자릿수 인터넷 웹 사이트와 서비스를 처리하는 회사의 한계는 놀랍지만 이해할 수 있습니다.
연습이 불가능한 것처럼 보일 수 있지만, 그렇지 않습니다. 예상했던 것보다 더 까다롭습니다. 그럼에도 불구하고 우리는 혼란에서 의미를 추출하는 방법을 찾았습니다. 예를 들어, Cloudflare는 관찰 결과에서 일반적으로 사용되는 패킷 시퀀스를 모두 신중하고 꼼꼼하게 열거하고, 이전 작업을 바탕으로 변조를 나타낼 수 있는 패킷 시퀀스를 추출했습니다. 또한 우리는 위에서 언급한 Time To Live 필드와 같은 신호를 이러한 패킷 서명이 실제로 변조되었음을 뒷받침하는 증거로 사용했습니다.
이 모든 것이 단순하지만 중요한 결론으로 이어집니다. 대규모 인프라 공급자는 모든 것을 알지 못한다는 것입니다. 전역적인 관점을 갖는 것은 강력할 수 있지만, 쉽게 관찰할 수 있는 형태로 자동으로 이어지지는 않습니다. 전 세계에 있는 모든 데이터를 보유하고 있으면서도 미들 장비, 보안 필터, 혼란스러운 IoT 장치, 탭과 브라우저를 닫는 일반 사용자 간의 차이를 구분하는 데 어려움을 겪을 수 있습니다.
하지만 이러한 이분법은 문제 영역의 장점이기도 합니다. 불완전한 데이터로 작업할 때 우리는 창의성을 발휘하고, 노이즈에서 패턴을 찾으며, 누락된 부분에도 불구하고 작동하는 방법을 설계해야 합니다. 묻기 전에, 질문을 던지기 전에, 문제를 직시하려고 해도 머신 러닝을 활용하지 않아도 됩니다. 복잡하게 얽혀 있더라도 프로토콜이 엄격하게 명시되어 있어 패턴을 쉽게 열거할 수 있지만 직접 논의를 거쳐야 함을 의미합니다.
프로덕션 데이터를 사용하고 실제 인사이트를 기반으로 한 인턴십 프로젝트
Cloudflare의 패킷 수준 샘플과 19개의 변조 서명을 이용해 수백 개의 네트워크에서 독특한 변조 행동을 확인했으며, 변조 비율의 큰 폭 증가도 추적할 수 있었습니다(그림 1). 데이터의 한계에도 불구하고 Cloudflare 네트워크를 통해 변조의 실제 영향 을 확인할 수 있었기 때문입니다. 또한 Luke Valenta 와 Cloudflare Radar 팀의 끊임없는 노력 덕분에 프로젝트의 데이터가 Cloudflare Radar에 지속해서 게시되고 있습니다 (그림 2).
그림 1: 2022년 말 이란에서 전국적인 시위가 벌어진 기간 중 19개 서명 변조의 마하 비율 증가율.
그림 2: 당사의 연결 변조 연구 데이터는 Radar에서 실시간으로 확인 가능합니다.
그러나 앞으로는 이러한 문제를 해결하기 위해 Cloudflare와 같은 공급자의 규모와 표적화되고 제어된 측정을 사용하여 인터넷 변조를 전체적으로 파악하는 등 수동 및 능동 탐색의 조합이 필요하다고 생각합니다. 이 문제에 대해 UCSC RANDLab의 저희 팀과 Censored Planet의 연구 그룹에서는 계속 연구 중이며, 특히 공격이 발생하거나 네트워크가 변경될 때 자동으로 변조를 식별하는 방법을 연구하고 있습니다.
학계와 업계 간의 협력이 항상 간단하게 진행되는 것은 아니지만, 더 나은 인터넷을 구축하는 데 도움이 될 수 있는 강력한 잠재력을 지니고 있습니다. 제가 설명한 것과 같은 인턴십 모험에 관심이 있으시다면, 지금 지원하세요!