Home 팟캐스트 EP5 – 제로 데이 위협 식별 및 완화
Applications

EP5 – 제로 데이 위협 식별 및 완화

About The Author

Outline

Edgio의 Beyond the Edge Podcast 에피소드 5: Andrew Johnson, Sr. 제품 마케팅 관리자 – Edgio 보안

Andrew Johnson: Beyond the Edge에 오신 것을 환영합니다. 현대의 디지털 비즈니스에 영향을 미치는 트렌드에 대해 자세히 알아봅니다. 저는 이 에피소드의 부조종사인 앤드류 존슨입니다. 그리고 오늘 우리는 제로데이 위협에 대해 알아보고, 구체적으로 어떻게 이를 식별하고 방어하는지에 대해 알아보고 있습니다. 오늘 우리와 함께하는 것은 Dave Andrews Edgio의 엔지니어링 부사장과 Edgio의 수석 연구 과학자인 Marcel Flores입니다.

환영합니다, 데이브 그리고 마르셀, 두 분 다 여기 계시다니 대단하네요. Edgio에서 여러분과 여러분의 역할에 대해 조금 말씀해 주시겠습니까?

데이브 앤드류스: 물론이죠. 앤드류가 있어서 고마워요. 위에 있는 것은 기쁨입니다. 저는 엔지니어링 담당 부사장입니다. 저는 에드지오에 11년 넘게 머물렀습니다. 저는 엔지니어링 관점에서 에지 플랫폼과 많은 중앙 인프라를 책임지고 있습니다.

앤드류 존슨: 대단해요. 감사합니다.

마르셀 플로레스: 네. 우리를 가져 주셔서 정말 감사합니다. 말했듯이 난 마르셀 플로레스야 저는 Edgio Labs의 수석 연구 과학자입니다. 여기 Edgio의 연구 그룹이죠. 우리 팀은 엄격한 연구 개발을 수행하고 광범위한 시스템 및 네트워킹 연구 커뮤니티와 협력하여 네트워크의 성능, 신뢰성 및 운영을 개선하기 위해 노력하고 있습니다.

제로 데이란 무엇입니까?

앤드류 존슨: 대단해요. 오늘 함께 해 주셔서 다시 한 번 감사드립니다 여러분. 제로데이 위협의 주제는 제로데이 취약점과 공격이 무엇인지 청중에게 빠르게 알려주는 것이 중요하다고 생각합니다. Edgio와 고객을 보호하기 위한 몇 가지 경험을 살펴보기 전에 이 내용을 간략하게 살펴보겠습니다. 그래서 우리가 여기서 말하는 것에 대해 제로 데이는 무엇일까요? 음, 기본적으로 현대적인 앱, 현대적인 비즈니스, 현대적인 서비스는 소프트웨어, 오픈소스 코드의 소프트웨어, 상용화된 코드 기반의 다양한 프로토콜들로 이루어져 있습니다. 우리는 어떤 소프트웨어도 완벽하지 않다는 것을 알고 있으며, 때때로 그 코드에서 취약점이 탐지될 것입니다. 기본적으로 “제로 데이”는 취약점이 발견되는 기간과 패치 또는 해결 방법을 마련하는 시간을 의미합니다.

따라서 개발자는 취약점에 대해 알게 되면 가능한 한 빨리 패치를 적용하거나 고객과 사용자에게 악용 방지를 위해 할 수 있는 소프트웨어 단계를 제공하려고 합니다. 하지만 기본적으로, 제가 언급했듯이, 그것은 사라지지 않는 문제입니다. CVE 또는 일반적인 취약성 및 노출의 수는 2021년에 비해 2022년에 약 25% 증가합니다. 더 많은 취약점이 발견된다는 것은 놀라운 일이 아닙니다. 코드 베이스를 빠르게 스캔할 수 있는 AI 도구가 있습니다. 좋은 행위자와 나쁜 행위자 모두 좋은 행위자 측에서 이러한 취약점을 찾을 수있는 재정적 인센티브가 있습니다. 버그 현상금 프로그램이 있습니다.

Apple이 항상 iPhone에 대한 코드 수정을 푸시하는 것에 익숙합니다. 좋은 화이트 햇 연구자들은 이러한 개발자들에게 익스플로잇을 제출하고 있으며, 취약성을 악용하는 나쁜 공격자들도 있습니다. 그래서, 그것에 대한 약간의 배경. 아마 최근에 들어본 적이 있는 몇 가지 일반적인 것들일 것입니다. HTTP2/Rapid Reset은 최근 응용 프로그램 보안 세계에서 매우 주목할 만한 중요한 요소였습니다. 아마도 당신은 log4j, Spring4Shell, 또는 몇 년 전에 아파치 스트럿 2 취약성에 대해 들어 봤을 것입니다. 제로데이 위협에 대한 배경에 불과합니다. 그렇지만 제가 먼저 데이브에게 제로데이 위협으로부터 Edgio와 고객을 보호하기 위해 무엇을 하는지 물어보도록 하겠습니다.

Edgio는 제로 데이 위협으로부터 자신과 고객을 어떻게 보호합니까?

데이브 앤드루스: 네, 물론입니다. 보안은 심층적인 방어에 관한 것이죠? 당신이 하는 특별한 일은 절대 없습니다. 그것은 당신이 모든 묶여있는 여러 층을 가지고 있는지 확인하는 것에 관한 것입니다. 하나 또는 두 개의 층이 불완전하다면, 모두 그렇듯이, 우리는 매우 지능적인 인간이 적극적으로 그것들을 깨뜨리려고 노력하고 있기 때문에, 층의 순수한 수와 겹치는 보호와 완화는 설계되어 있습니다. 여기서 요점은, 한 가지가 실패해도 상관없다는 것입니다. 왜냐하면 거기에 당신을 보호할 다섯 가지 다른 것들이 있기 때문입니다. 그래서, 한 걸음 물러서서, 첫 번째처럼, 그리고 저는 틀림없이 가장 중요한 것들 중 하나는 일반적으로 준비의 양동이에 빠진다고 생각합니다.

여기에는 적어도 세 가지 측면이 있습니다. 가장 먼저 떠오르는 것은 위생입니다. 좋은 보안 위생을 갖는 것은 절대적으로 중요합니다. 그리고 그것은 당신의 관심 영역을 줄임으로써 크게 도움이됩니다. 그렇다면 위생은 무엇을 의미합니까? 두 가지 기본 사항이 있습니다. 하나는 소프트웨어를 최신 상태로 유지하거나 정기적인 패치를 적용하는 것입니다. 이것은 세상에서 가장 지루한 일이다. 이것은 또한 틀림없이 최고의, 가장 중요한 방어선 중 하나입니다. 이것은 여러분이 이야기했던 모든 책임 있는 공개, Andrew, 좋은, 화이트 햇 연구원, 취약점을 찾고, 벤더에 공개하고, 수정하고, 수정 사항을 롤아웃하는 것을 의미합니다.

사용 중인 소프트웨어에서 기본적으로 알려진 공격 경로를 모두 활용할 수 있습니다. 지루하다고 해서 특히 Edgio와 같은 규모로 작업할 때 쉽지 않다는 뜻은 아니지만, 모든 소프트웨어를 정기적으로 업그레이드하는 데 따르는 위험을 관리하기가 매우 어렵습니다. 그래서, 우리가 나중에 보게 될 것처럼, 우리가 더 안전하고 쉽게 할 수 있도록 운영을 위해 하는 많은 것들이 있습니다. 그러나 그것은 여전히 위생 양동이에 꽤 똑바로 떨어집니다, 당신이 원한다면. 위생에 들어가는 다음 부분은 스캔입니다. 여기서 요점은 나쁜 배우가 그것을 발견하기 전에 문제가 있다는 징후를 적극적으로 찾고 있습니다.

그래서 이것은 여러 가지 형태를 취합니다. 내부 보안 팀 또는 정보 보안 팀일 수 있습니다. 외부 당사자를 고용하여 스캔을 수행할 수 있습니다. 둘 다 될 수 있습니다. 종종 조직은 버그 현상금을 활용하여 기본적으로 사람들이 화이트 햇 루트를 사용하도록 장려하고, 취약점이 우리나 특정 당사자에게 공개되어 적극적으로 악용되기 전에 수정할 수 있습니다. 그래서 이런 것들은 여러분이 고칠 수 있는 것들의 양동이에 떨어집니다. 먼저 고치세요, 그렇죠? 예를 들어, 전체 커뮤니티가 인터넷과 소프트웨어를 일반적으로 더 안전하게 만들기 위해 하는 좋은 일을 활용하십시오. 그런 다음 자신의 애플리케이션을 적극적으로 살펴보고 취약점을 찾아내어 가능한 한 최선을 다해 사전에 해결합니다. 다음 섹션은 준비에 대해 말씀드리겠습니다. 마르셀에게 넘어가겠습니다. 관찰 가능성입니다.

마르셀 플로레스: 네, 감사합니다 데이브. 이러한 많은 경우에 할 수 있는 또 다른 중요한 일은 네트워크나 인프라에서 무슨 일이 일어나고 있는지 볼 수 있다는 것입니다. 그래서 저는 이런 종류의 것이 근본적으로 같은 두 가지 범주에 속한다고 생각합니다. 하지만 저는 강조하는 것이 중요하다고 생각합니다. 첫 번째는 애플리케이션 수준의 동작에 대해 생각해보는 것입니다. 네트워크로 들어오는 요청의 종류와 해당 요청의 기능, 요청 형태, 정상적인 모양, 특정 이벤트 중에 어떤 모습인지 이해해야 합니다. 저는 또한 중요하다고 생각합니다. 여러분이 인터넷에서 통신할 때마다, 그렇죠, 그것은 일종의 풀 스택 작업이라는 것을 명심하는 것이 중요하다고 생각합니다, 그렇죠?

각 요청은 애플리케이션 계층뿐만 아니라 하위 레벨 프로토콜도 통과합니다. 그래서 스택 아래쪽에 무슨 일이 일어나고 있는지 계속 주시하는 것이 중요합니다. 그렇죠? 또한 하위 계층 레벨 시스템의 복잡한 동작과 응답이 애플리케이션 계층 동작에서 제대로 포착되지 않을 수 있다는 점을 이해해야 합니다. 따라서 이 두 가지 요소를 모두 추적하는 것이 중요합니다. 그리고 두 경우 모두에서 무슨 일이 일어나고 있는지 관찰할 수 있어야 합니다. 제 생각에 중요한 부분은 교통의 변화를 이해하는 것입니다. 교통이 기대를 넘어설 때, 그렇죠? 일반적으로 볼 수 없는 응용 프로그램 요청 기능을 볼 수 있습니다. 예를 들어, GETS와는 반대로 HTTP 포스트가 갑자기 증가하고, 애플리케이션 레이어를 생각하고, 프로토콜 레벨을 생각하고, 그렇죠?

이것은 HTTP2와 같은 프로토콜에서 매우 복잡하거나 더 낮은 것일 수 있습니다. 그리고 TCP 소켓에 어떤 일이 일어나고 있는지, 그리고 그 수준에서의 프로토콜 상호 작용에 어떤 일이 일어나고 있는지, 특히 특정 취약점을 악용하려는 DDoS 공격과 같은 것을 생각할 때. 제 생각에 이러한 취약성을 갖는 것은 관찰의 핵심이라고 생각합니다. 무슨 일이 일어나고 있는지 알 수 있는 지표를 갖는 것 뿐만 아니라, 이런 행동을 파헤칠 수 있는 능력을 갖는 것이죠, 그렇죠? 그리고 그것들을 적절히 분류하는 것, 맞죠? 특정 트래픽 집합을 생성하는 특정 사용자 집단이 있는지 파악하기 위해서입니다. 특정 네트워크, 특정 고객, 특정 고객의 특정 자산이 있습니다. 그래서 여러분은 어떤 일이 실제로 일어나고 있는지, 어떻게 일어나고 있는지를 이해하고 좁힐 수 있습니다.

앤드류 존슨: 흥미롭네요. 재미있네. 그래서, 여러분이 이런 다양한 유형의 행동이나 제로데이라고 생각하는 것을 관찰한 후에, 여러분이 취할 수 있는 조작 단계는 무엇일까요?

제로 데이 위협을 완화하기 위해 취할 수 있는 조치는 무엇입니까?

데이브 앤드류스: 네, 제가 가져갈 수 있어요, 앤드류. 네. 마르셀이 말한 두 가지 요소는 정말 기초입니다. 그렇죠? 첫 번째는 사물을 보는 것, 추세를 보는 것 처럼, 한 관점에서 종합적으로 보는 것으로 귀결됩니다, 그렇죠? 전체적으로 어떻게 생겼을까요? 여기서 중요한 점은 현재 진행되고 있는 상황에 대한 높은 수준의 관점을 얻을 수 있다는 것입니다. 그리고 말씀하신 대로 매우 빠르게 변화를 파악할 수 있게 해줍니다. 딥 다이빙의 두 번째 부분은 실제로 어떤 변화에 대해, 어떤 수준에서 작동하는지, 그리고 그것이 위험한지에 대한 당신의 이해를 놀리고 개발할 수 있다는 것입니다, 그렇죠? 아시다시피, 인터넷은 야생적이고 야생적인 서부죠? 모든 것이 항상 바뀝니다.

새로운 행동이 항상 일어나고 있습니다. 이 모든 것들이 보안의 문제가 아니잖아요? 예를 들어, 훨씬 더 광범위한 정보 집합을 가질 수 있지만, 파고 들어가서 질문하고 관찰하거나 훨씬 더 미묘한 질문에 대답할 수 있습니다. 무엇이 바뀌었고 왜 바뀌었는지에 대한 핵심에 도달하고 결정을 내릴 수 있습니다. 오, 세상에, 이거 괜찮아. 새로운 고객이 무언가를 하고 있는 것입니다. 아니면 이것이 실제로 문제라는 것을 알거나, 우리가 살펴볼 필요가 있습니다. 그러니까 여기서 벗어나 무슨 일이 벌어졌는지 보고 그것에 대해 좀 더 이해하는 것이 문제입니다. 당신은 같은 영역으로 들어가, 위대한, 그럼 뭐야?

예를 들어, 당신은 그것에 대해 무엇을 할 것인가? 그리고 운영 민첩성과 민첩성이라고 부르는 이 버킷을 말이죠. 운영 민첩성을 고려할 때 고려해야 할 몇 가지 고차원적인 테마가 있습니다. 다시 말하지만, 세 가지는 응답성, 안전성 및 중복성입니다. 그래서 각각의 반응성에 약간의 시간을 투자하는 것이 정확히 어떻게 들리는지, 그렇죠? 보안 관점에서 뭔가 잘못되고 있을 때 시간은 본질입니다, 그렇죠? 아시다시피, 보안 문제를 매우 신속하게 종결하여 공격자가 혼란을 일으킬 수있는 최소한의 시간을 제공하고 최대 시간을 정리 할 수 있기를 원합니다. 따라서 보안 문제뿐만 아니라 모든 종류의 운영 변경에 대해 매우 광범위한 의미에서 목표로 삼는 것은 인프라의 99.99%에 도달하는 데 약 5초를 목표로 합니다.

그게 목표야 우리는 항상 거기에 도달하는 것은 아니지만, 어떤 것들은 반드시 더 오래 걸리기 때문입니다. 하지만 그것이 목표입니다. 그리고 우리의 많은 서브시스템들이 그 목표를 달성하고 있습니다. 안전은 운영 민첩성과 관련하여 생각할 수 있는 이상한 종류의 주제입니다. 그럼 이 하나를 조금 떼어놓겠습니다. 여러분이 높은 수준의 반응성을 가지고 무언가를 하려고 할 때, 즉 매우, 매우 빠르게, 문제를 해결할 수 있다는 위험 중 하나는 여러분이 완벽한 관찰력과 정확히 무슨 일이 일어나고 있는지를 완벽하게 이해한다고 가정할 때, 여러분이 만들려는 변화에 대한 반응을 완벽하게 예측할 수 있다는 것입니다. 훌륭합니다. 그리고 많은 경우도 그렇습니다. 그러나, 그러한 것들에 대한 당신의 이해가 불완전할 가능성도 있으며, 당신은 그것을 매우, 매우 빨리 악화시킬 수도 있습니다.

아무도 그걸 원하지 않아 그래서 안전의 요점은 시스템을 설치하고, 프로세스, 자동화를 설치하고, 다른 많은 것들이 실제로 상황을 악화시키지 않도록 하는 것입니다. 이것은 몇 가지의 매우, 매우 높은 수준으로 귀결됩니다. 시작 시. 이는 사전 예방적 모델링과 같습니다. 이는 기본 용량 계획에 매우 많이 적용됩니다. 그렇죠? 예를 들어, 어떤 이유로든 서비스를 다시 시작해야 하기 때문에 패치를 적용하기 위해 어떤 이유로 시스템을 프로덕션 외부로 가져와야 하는 경우를 예로 들 수 있습니다. 매우 신속하게 작업을 수행하려고 하면 현재 발생하는 부하에 대해 너무 많은 기계를 생산에서 제외시키는 위험도 있습니다. 미리 알 수 있겠죠?

그래서 우리는 워크플로우 시스템과 통합되는 많은 모델링 시스템을 가지고 있습니다. 그래서 가능한 한 빨리 모든 것을 패치하라는 요청이 들어가더라도 모든 서버를 즉시 운영 환경에서 제외시키지는 않습니다. 따라서 발에 총을 쏘지 않도록 하기 위해 구축하고 통합할 수 있는 기본적인 안전 시스템이 있습니다. 따라서 이러한 관점에서 상황을 악화시키지 않을 것이라고 가정하고, 순수한 용량 계획 인프라스트럭처 관점에서만, 우리는 이러한 변화가 애플리케이션 수준이나 관찰 가능성 애플리케이션, 프로토콜 등 어떤 수준에서든 의도된 영향을 미친다는 것을 알고 싶습니다. 그래서 우리가 하는 일은 우리가 석탄 광산이라고 부르는 시스템을 활용하는 것입니다. 우리는 그것에 대해 블로그에 올렸고 이전에 공개적으로 이야기했지만, 기본적으로 모든 것이 우리가 카나리아 – 탄광의 카나리아라고 부르는 것으로 나옵니다.

아무리 무서운 일이라도 전 세계적으로 한꺼번에 일어나는 일은 없습니다. 무언가를 나가기 위한 최소 2단계. 그래서 우리는 그것을 인프라의 하위 집합에 배치했습니다. 일반적으로 사건이 가장 심각하게 발생하거나 가장 눈에 띄는 인프라스트럭처는 예상대로 작동하는지 검증한 다음 나중에 매우 신속하게 배포합니다. 죄송합니다. 롤아웃하고, 보다 광범위하게 롤아웃하고, 전반적인 문제가 글로벌 수준에서 해결되는지 검증하십시오. 그래서 탄광과 카나리아는 그들의 측정 지표와 관찰 가능성 시스템과 밀접하게 통합되어 있어서 한눈에 상관 관계를 맺을 수 있습니다. 이거 뭐지? 제가 보고 있는 집계된 메트릭에 대해 이 카나리아는 무엇을 하고 있을까요? 그래서 우리는 실시간으로 피드백을 받습니다. 우리가 만드는 변화는 실제로 문제를 해결하는 것입니다.

이것은 매우, 매우 편리합니다. 현재 우리가 실제로 작업하고 있으며 내부적으로 그리고 나중에 시작할 준비를 하고 있는 것은 기본적으로 완전 자동화된 메트릭 분석입니다. 그래서 현재 우리가 이런 변화를 일으킬 때, 인간은 거기 앉아서 그것을 바라보고, 올바른 일이 일어나고 있는지 확인하고, 그들이 염려하는 지표가 올바른 방향으로 가고 있는지 확인해야합니다. 그리고 나서 기본적으로 카나리아를 발전시키고, 시스템에 다음과 같이 말하십시오. 좋습니다. 첫 번째 단계를 통과했습니다. 모든 것이 좋아 보입니다. 그 카나리아의 글로벌 단계로 가십시오. 이를 통해 보안 운영 변경뿐만 아니라 시스템 전체에 적용되는 모든 변경에 시스템을 활용합니다.

그리고 우리가 부딪치는 것은 판매 지점에 대한 가시성이 높아지고, 가시성이 높아지고, 측정 지표가 늘어나고, 무슨 일이 일어나고 있는지에 대한 정보가 점점 더 많아짐에 따라 인간이 더 많이 볼 수 있게 되는 것입니다. 그리고 그 부하는 너무 높은 지점에 도달하고 있습니다. 그래서 인간은 실수를 하기 시작하죠, 그렇죠? 왜냐하면 단순히 너무 많은 차트를 볼 수 있고, 너무 많은 그래프를 볼 수 있기 때문에 사람들은 피곤하고 사람들은 어쨌든 불완전합니다. 그래서 우리는 Birdwatcher라고 불리는 시스템을 출시할 것입니다. 카나리아를 관찰하는 것은 기본적으로 메트릭에 대한 정교한 통계 분석을 하는 것입니다. 예를 들어, 변화가 시작되면 엄지 손가락을 위로 올리거나 아래로 내리는 것과 같은 것이죠. 그리고 그것은 석탄 광산과 통합되어 있습니다. 그래서 우리는 자동화된 방식으로 카나리아가 훌륭하다는 징후를 얻습니다. 우리가 기대하는 바를 이루고 있습니다.

그리고 별도로 우리가 기대하지 않는 나쁜 일은 일어나지 않습니다. 그리고 인간의 개입 없이도 롤아웃이 진행될 것입니다. 그것에 대해 매우 흥분했습니다. 이렇게 하면 응답성이 더욱 빠르고 안전해질 것입니다. 안전을 이야기할 때 이러한 것들이 우리가 고려해야 할 주요 사항들입니다. 문제를 빠르고 안전하게 해결할 수 있다는 것입니다. 제가 언급한 마지막 요점은 중복성이었는데, 이는 비교적 자명합니다. 우리가 활용하고 배포하는 핵심 포인트나 철학이 있습니다. 이 철학은 기본적으로 우리가 소집할 수 있는 많은 변화에 대해 이중적인 경로입니다. 따라서 이중 경로가 의미하는 바는, 우리가 생각하는 두 가지 경로는 기본적으로 빠르고, 최선의 노력과 느리고, 신뢰할 수 있는 것입니다. 그 아이디어는, 우리는 전세계의 매우, 매우, 다른 곳에서 많은 인프라를 운영한다는 것입니다.

몇 초 안에 100% 신뢰성으로 모든 것을 칠 수 있는 능력은 동화와 같습니다. 그건 실현 가능한 일이 아닙니다. 어딘가에는 항상 문제가 있습니다. 그리고 당신이 그것에 대해 할 수있는 일은 없습니다. 그래서 우리가 하는 일은 기본적으로 보안과 유사하게 이러한 것들을 함께 묶어서 심층적인 방어를 하는 것입니다. 예를 들어, 이 두 가지를 합치면, 이것이 실제로 보이는 것은 빠른 경로를 활용하는 것입니다. 가능한 한 많이 때리십시오. 그리고 여러분이 놓친 것이 있다면, 우리는 안정적인 중복된 경로를 확보하게 됩니다. 작동할 때까지 계속 재시도할 것입니다. 조금 느립니다. 그래서 몇 가지 수치를 계산하자면, 빠른 경로가 5초 이내에 약 99.9%의 인프라를 변경할 수 있습니다. 그렇죠?

99.9%는 반복 가능하고 신뢰할 수 있습니다. 그리고 느린 안정적인 경로는 60초 순서로 실행됩니다. 그리고 그 시스템은 기본적으로 성공할 때까지 계속 노력할 것입니다. 그래서 우리는 이 두 가지를 함께 활용함으로써 두 세계의 장점을 모두 얻을 수 있습니다. 그리고 이러한 하위 시스템 중 하나가 완전히 다운되었다고 해서 모든 것이 다운된 것은 아닙니다. 최대 5분 후에도 계속 있어야 합니다. 이 두 가지를 함께 사용하면 우리가 원하는 신뢰성과 함께 이러한 응답성과 민첩성을 얻을 수 있습니다. 우리가 약간의 중복을 가지고 있는지 확인하기 위해 다른 같은, 재미있는 작은 것들이 있습니다. 이런 시스템을 어떻게 꺼내야 할까요? 아시다시피, 챗봇이 통합되어 있어 매우 쉽습니다.

전 세계 어디서나 휴대폰으로 누구나 할 수 있습니다. 다른 많은 것들이 API를 가지고 있습니다. 많은 하위 시스템에 대한 CLI가 있습니다. 따라서 이러한 작업을 시작할 수 있는 방법이 한 가지 없도록 하는 것은 현재 어떤 일이 일어나고 있는지 또는 어떤 특정 시스템에서 문제가 발생하고 있는지에 관계없이 항상 손끝으로 운영 민첩성을 확보할 수 있도록 중복 기능을 구축하는 방법의 또 다른 예입니다. 우리는 우리가 필요한 통제력과 운영 능력을 가지고 있는지 확인합니다. 이런 것들 중 많은 것들이 모두 범용 목적이지만, 제가 말했듯이, 우리는 가능한 한 많이 활용합니다. 기계를 프로덕션에서 꺼내 패치하는 것과 같은 자체 인프라 워크플로우에서 고객 구성 변경에 이르기까지 모든 것이 가능합니다. 그것은 모두 우리가 개밥을 먹고 공격적으로 자신을 활용하는 것과 동일한 핵심 시스템을 활용합니다. 그래서 우리가 고객에게 노출시키는 제품은 믿을 수 있고 매우 견고합니다.

앤드류 존슨: 대단해요. 멋지네요. 데이브 감사합니다. Marcel, 보안 팀이 자신의 업무에 적용할 수 있는 모범 사례 또는 고려 사항에 대해 말씀하신 것 같습니다. 그 팁들을 감사드립니다. 여러분들이 Edgio와 고객을 보호하기 위해 야생에서 정말 흥미로운 제로 데이 예제를 다루었다는 것을 압니다. 이러한 모범 사례에 대한 좋은 사례와 응용 사례가 있을 것입니다. 그것에 대해 조금 이야기 할 수 있습니까?

제로 데이 예: HTTP2/빠른 리셋

데이브 앤드루스: 네, 물론입니다. 제 생각에 가장 적절하거나 가장 최근인 것 같은데, 좀 흥미로웠던 것은 앞서 언급한 HTTP2/Rapid Reset 공격입니다. 그것은 매우 흥미로운 경험이었습니다. 그래서 에디오의 관점에서 그것을 전달하기 위해, 우리가 이 사람에 대해 쓴 작은 블로그가 있습니다. HTTP2/Rapid Reset은 제로 데이 공격으로 모드 HTTP2 서버 라이브러리의 구현뿐만 아니라 HTTP2 RFC, 사양, 프로토콜 사양을 일반적인 권장 사항으로 채택하고 기본적으로 라이브러리 자체에서 이를 코드화했다는 것을 사람들이 깨달았습니다. 그리고 이것이 허용된 동시 요청의 수입니다. 죄송합니다. 특정 연결에서 전송될 수 있는 동시 스트림은 스펙에 100으로 기록되어 있습니다.

이러한 사실은 H2의 흥미로운 요소와 결합되어 있습니다. 즉, 단일 TCP 소켓에 수많은 요청을 전송하는 멀티플렉싱이라는 개념과 요청을 취소하는 기능이 매우 흥미로운 취약점이나 DDoS 취약점으로 이어졌습니다. 공격자가 찾고있는 요점은 공격자에게는 적은 비용이 들며 공격자에게는 더 많은 비용이 들며 다른 쪽 끝에있는 사람에게는 더 많은 비용이 드는 것입니다. 그리고 그들은 HTTP2 빠른 리셋에서 그것을 발견했습니다. 이것이 의미하는 바는 공격자가 매우, 매우, 매우 빠르게 단일 패킷처럼 요청을 시작하고, 단일 소켓에 있는 수백 명의 사람들처럼 반복해서 취소하고, 단일 패킷으로 서버로 보낼 수 있다는 것입니다.

그러면 서버는 단일 패킷을 보내는 것보다 훨씬 더 많은 작업을 수행해야 합니다. 요청을 만들어야 하고, 종종 프록시 연결을 시작해야 합니다. 이것이 CDN이 공격자가 요청한 자산을 가져오는 방법입니다. 마지막으로 요청이 발생했음을 기록해야 합니다. 따라서 공격자가 이러한 요청을 시작하고 취소할 수 있었다는 사실은 매우 빠르게 이루어집니다. 기본적으로 대부분의 경우, 그 공격을 받은 사람처럼, 그것은 더 비싸다. 그것들을 생산하는 것보다 그것들을 처리하는 것이 더 비쌌다. 그래서 DDoS 취약점이 됩니다. 그래서 우리는 업계의 다른 많은 사람들이 그것에 의해 공격 당하는 것을 좋아합니다.

그리고 모든 사람들이 동시에 공격을 받았고, 특히 흥미로웠습니다. 그것은 매우 광범위한 공격이었다. 그리고 저는 공격자들이 그 일을 시작했을 때 무슨 생각을 했는지 이해하고 싶습니다. 그들은 동시에 많은, 많은, 많은 공급자를 공격하고 있었기 때문입니다. 우리가 다른 공급자들과 이야기하기 시작했을 때 발견한 것은, 오, 언제 이걸 보셨나요? 오, 그건 우리가 봤던 때와 정확히 같은데요, 우리가 공격을 발견했기 때문에 우연히 발견한 것이죠. 우리는 마르셀이 말한 관찰 가능성 때문에 무슨 일이 일어나고 있는지 확인했습니다. 그리고 우리는 완화 조치를 만들기 시작했습니다. 그렇죠? 따라서 이러한 완화 조치는 정확히 무슨 일이 일어나고 있는지 파악하기 위해 더 많은 관찰 능력을 추가한 다음 이에 대응할 수 있는 운영 제어 기능을 구축하는 것과 같습니다.

따라서 클라이언트가 특정 소켓에서 요청을 재설정하는 횟수를 추적하고 백분율이 사전 정의된 임계값을 초과하면 연결을 종료합니다. 따라서 기본적으로 공격자가 이러한 요청을 지속적으로 전송하여 제한을 두지 못하도록 하여 공격을 완화할 수 있도록 하는 것입니다. 그래서 우리는 그 방어 조치를 구축하고 배포하고 제정하고 실제로 이러한 공격이 반복되는 것을 방지하고 있음을 확인한 후에 블로그를 게시했습니다. 그 다음에는 업계 종사자들이 연락을 취했고, 아, 블로그를 봤습니다. 우리도 사실 그 영향을 받았고 책임 있는 공개에 대해 연구하고 있습니다. 그래서 우리는 Vince와 같은 업계의 그룹과 함께 협력했습니다. Vince는 책임있는 공개 흐름을 통과하기 위해 인증서의 일부입니다. 이 경우 HTTP2 라이브러리 또는 HPD 서버를 구현한 사람들이 패치를 생성하고 패치를 배포하기 전에 취약점이 더 널리 알려졌습니다.

매우 흥미롭고 흥미로운 흐름이었습니다. 우리는 그것을 아주 빨리 되돌릴 수 있었습니다, 그렇죠? 위생, 운영, 운영 가시성 및 민첩성에 대한 작업 덕분에 아주 작은 변화도 가능했습니다. 그렇죠? 뭐, 그건 아니었어요. 오, 맙소사, 이 라이브러리를 업그레이드해야 하는데, 정기적으로 업데이트하지 않기 때문에 10가지 버전이 뒤처져 있습니다. 사실 우리는 뒤쳐진 하나의 버전이잖아요, 그렇죠? 예를 들어, 정기적으로 업그레이드를 패치하여 작은 홉이기 때문에 위험이 줄어듭니다. 즉, 낮은 위험 임계값을 유지하면서 매우 빠르게 업그레이드를 수행할 수 있습니다. 그래서 우리는 매우 빠르게 이 작업을 수행했고, 이를 배포하여 공격을 완화할 수 있었습니다. 그런 다음 블로그를 게시했습니다. 공격이 부분적으로 더 많은 사람들을 공격했다는 것을 모르고 고객뿐만 아니라 업계와 교류하기 위해서였습니다. 이봐, 이건 우리가 본 이상한 건데, 에디오에만 국한된 게 아니고 실제로 더 적용 가능할 수도 있는 것 같아. 그리고 그것이 밝혀졌습니다.

앤드류 존슨: 그건 정말 흥미롭습니다. 여러분도 아시다시피, 전 세계의 보안 커뮤니티가 함께 협력하여 모두의 결과를 개선하는 모습을 보니 정말 멋지네요. 마르셀, 이 주위에 뭔가를 추가하고 싶은가?

마르셀 플로레스: 네, 제가 한 가지 언급하고 싶은 것은, 제 생각에, 이 예는 흥미로운 예시였는데, 우리가 데이브가 묘사한 것처럼 이상한 행동을 보여주었던 초기 관찰 가능성이었죠, 그렇죠? 이러한 하위 수준 프로토콜 기능과 CDN의 상위 수준 동작의 상호 작용은 정말 예상치 못한 동작을 일으켰습니다. 그리고 그 중 일부는, 여기서 무슨 일이 일어나고 있는지 알아내는 것은 이 심각한 불균형이 있다는 것을 이해하는 것이었습니다, 그렇죠? 우리가 보고 있는 요청 수와 실제로 고객에게 다시 전달하고 있는 요청 수가 왜곡되었다는 것을 알 수 있습니다. 그렇죠? 그리고 그것은 두드러졌습니다. 그리고 이 두 지표가 모두 우리가 수집한 지표였음에도 불구하고, 우리는 정확히 그렇게 비교하지 않았습니다. 그래서 그 결과의 일부는 앉아서 그것을 보면서 말하기를, 이봐, 우리가 이미 가지고 있는 가시성을 어떻게 이 문제를 감지하기 위해 만들어진 것에 결합시킬 수 있을까? 그리고 우리는 정확히 그렇게 할 수 있었고, 우리가 이미 가지고 있는 데이터를 약간 다른 렌즈를 통해 살펴봄으로써 우리의 가시성을 개선할 수 있었습니다.

앤드류 존슨: 대단해요. 멋지네요. 명심하는 것이 좋습니다. 고마워요, 마르셀 그래, 얘들아, 그래서 내 생각엔 우리가 마무리하고 있는 것 같아 공유하고 싶은 추가 추천이 있다면? 나는 우리가 높은 수준으로, 아주 좋은 것들을 다루었다고 생각한다.

보안 태세 강화를 위한 권장 사항

데이브 앤드루스: 좋은 질문입니다. 일반적인 권고는 위생이 매우 중요하다고 생각합니다. 당신의 관찰력에 초점을 맞추면, 제가 부르고 싶은 것은 도움을 줄 수 있는 사람들을 찾는 것입니다, 그렇죠? Edgio와 같은 회사가 제공하는 중요한 가치 제안의 가치의 일부처럼, 우리는 확실히 도울 수 있습니다, 그렇죠? 저와 Marcel 같은 팀원들이 이 문제를 해결하기 위해 노력하고 있으며, 모든 종류의 공격이 사람들에게 영향을 미치지 않도록 사전에 예방하기 위해 노력하고 있습니다. 도움을 줄 수 있는 사람을 찾으세요, 그렇죠? 우리가 개발하는 도구와 기술이 많고, 커뮤니티가 여러분의 일을 더 쉽게 만들어 줄 수 있는 도구와 기술이 있습니다. 우리가 인터넷상의 것들에 대해 이야기 할 때, 일반적으로 WAF는 가장 중요하고 가장 기본적인 것과도 같습니다. 저는 이런 것의 가장 중요한 예를 주장합니다.

적절하게 구현되면 민첩성과 안전 요소를 함께 결합할 수 있는 능력을 제공합니다. Edgio WAF는 듀얼 모드에서 실행됩니다. 즉, 트래픽을 관찰하는 실제 시스템에 새로운 규칙을 운영 환경에 배포할 수 있습니다. 그리고 무슨 일이 일어나고 있는지 볼 수 있습니다. 그 좋은 예는 log4j를 예로 들었습니다. 아주 조금 과거로 거슬러 올라가는 것이었습니다. 이에 대한 대응을 개발할 때, 우리는 규칙을 매우 빠르게 개발할 수 있고, 매우 빠르게 검증할 수 있습니다. 규칙 업데이트를 푸시하고 실제 시스템에 경고 모드로 배포하여 공격과 일치하는지 확인할 수 있었기 때문에 고객에게 공격을 받지 않았거나 공격을 받고 있다는 것을 보여 줍니다. 그런 다음 데이터 중심의 결정을 내려 해당 규칙을 차단 모드로 설정하고 이러한 공격이 고객에게 전달되는 것을 실제로 방지합니다. 그래서 이 모든 것들이 하나로 합쳐지죠, 그렇죠? 응답 속도, 안전성, 중복성 및 신뢰성 같은 것들이 있습니다. 도움을 줄 수 있는 사람들을 찾아라. 내 핵심 추천이 될 것 같다.

앤드류 존슨: 그것은 많은 의미가 있습니다. 고마워요, 데이브 네, 제말은, 제로데이즈에대응할때, 시간이중요하다는거죠. 따라서 이러한 전문화된 솔루션을 보유하는 것은 물론, 더 중요한 것은, 이 문제를 해결할 수 있는 사람들이 공격자들의 문을 닫는 열쇠라는 것입니다. 그래서 그 친구들과 함께 우리와 함께 주셔서 대단히 감사합니다. 청중들에게도 감사드리고 다음 에피소드에서 뵙겠습니다. 감사합니다.