디지털 경쟁 시대에 모든 기업은 기술 기업이고, 현대적 혁신은 금융부터 식료품, 운송에 이르기까지 산업을 파괴했습니다. 현대 기술 기업으로 성공하려면 경쟁사보다 빠르게 혁신해야 하며, 신속한 혁신에는 DevOps가 필요합니다. DevOps는 개발자와 IT 운영 간의 협업으로, 소프트웨어 제공에 린 원칙을 적용하여 제품 출시 속도에서 획기적인 발전을 이루었습니다. DevOps의 약속에도 불구하고, 봇 공격과 기타 보안 문제가 적절히 해결되지 않으면 조직이 그 혜택을 누리지 못할 수도 있습니다. 다행히도 DevOps에서 DevSecOps가 생겨났습니다. 이는 빠르게 변화하는 DevOps 세계에서 보안 문제, 특히 봇 관리를 해결하는 데 적합한 역할입니다.
DevOps 문화에서 DevSecOps는 보안을 지속적인 통합/지속적인 개발(CI/CD) 파이프라인에 통합하고, 개발자에게 보안 버그에 대한 신속한 피드백을 보장하고, 보안을 기술 가치 스트림에 지속적으로 통합하는 데 대한 책임을 맡습니다.
린 제조 관행을 기반으로 하는 DevOps는 재작업 비용이 더 큰 다운스트림에서 실패를 줄이기 위해 가치 스트림의 초기 단계에서 품질 고려 사항을 이동하는 데 중점을 둡니다. 검사를 통해 결함을 발견하는 것보다 품질을 제품에 설계하는 것이 더 낫습니다. 보안은 품질의 중요한 요소이므로 DevSecOps 역시 보안을 우선시하여 작업 스트림의 초기 단계에서 보안 격차를 계획합니다. 정적 분석 보안 테스트, 동적 분석 보안 테스트 및 취약성 검사와 같은 도구를 더 빨리 실행할수록 개발자는 더 빨리 피드백을 받고 버그를 더 빨리 수정할 수 있습니다.
그리고 요구 사항 수집, 설계, 코딩 과정에서 보안 문제가 더 많이 다루어질수록 보안 통제가 더욱 효과적일 것입니다. 이것들은 안전한 코딩과 소프트웨어 개발 수명 주기(SDLC)의 기본 개념이지만, 이러한 관행은 DevOps 환경에서 점점 더 중요해지고 있습니다. 왜냐하면 나중에 보안 문제를 해결하면 신속한 배포를 방해하거나 보안 위험이 발생하기 때문입니다.
현대 기업 보안에 있어 DevSecOps의 역할이 매우 중요하기 때문에, 봇 관리도 해당 분야의 책임에 포함되어야 합니다. 봇 관리가 보안에 필수적일 뿐만 아니라 DevSecOps의 사명의 핵심이기도 합니다. 또한 DevSecOps는 조직이 악의적인 봇으로부터 안전하게 보호되도록 하는 데 이상적인 위치에 있습니다. 약속대로 DevSecOps가 봇 관리를 다루어야 하는 6가지 이유를 소개합니다.
봇은 애플리케이션과 API에 HTTP 요청을 자동으로 전송하는 스크립트입니다. 범죄자들은 다양한 유형의 공격에서 봇을 사용하여 웹 및 모바일 앱을 공격합니다.
봇 공격에 대한 포괄적인 분류법은 OWASP 자동 위협 핸드북 이나 Kyle Roberts의 요약을 참조하세요.
모든 봇 공격 중에서 신임장 정보 유출은 특히 치명적입니다. 글로벌 프라이버시 총회(GPA)는 신임장 정보 유출을 데이터 프라이버시에 대한 전 세계적 위협으로 선언했습니다. 130개 이상의 데이터 보호 및 개인정보 보호 규제 기관과 집행 기관을 대표하는 GPA는 봇 관리가 이제 데이터 개인정보 보호를 위한 필요한 조치이며, 따라서 온라인에서 사업을 하는 모든 B2C 기업에 필수적이라고 주장합니다.
DevSecOps가 조직과 고객을 보호하는 사명을 달성하려면 악의적인 봇 문제를 해결하는 것이 중요합니다.
DevOps 핸드북 에 따르면 원격 측정은 복잡한 시스템에서 문제를 예측, 진단 및 해결하는 데 필수적입니다. 즉, 모든 부분이 어떻게 연결되는지 한 사람이 이해하기에는 너무 크고 복잡하게 얽힌 시스템을 말합니다. DevOps가 성공하려면 원격 측정이 비즈니스 지표, 기능 사용, 네트워크 성능, 인프라 부하를 포함한 여러 계층을 포괄해야 하므로 한 계층의 문제를 스택 전반에서 추적하여 근본 원인을 빠르게 파악할 수 있습니다.
봇은 원격 측정 데이터를 크게 왜곡합니다. F5 Distributed Cloud Bot Defense를 이용하던 많은 고객은 대부분의 사용자 계정이 가짜였고, 로그인 트래픽의 95% 이상이 봇으로 이뤄졌다는 사실을 발견했습니다. 어떤 경우에는 조직의 인프라 대부분이 스크래핑 봇을 지원하는 데 그치곤 했습니다.
인간과 봇을 구별하는 능력이 없다면 원격 측정은 무의미해질 것입니다. 기능이 실패하는 이유는 실제 사용자 때문인가, 봇 때문인가? 로그인 성공률이 왜 이렇게 다양한가요? 특정 애플리케이션 경로에 대한 트래픽이 갑자기 급증한 원인은 무엇입니까? 봇은 온갖 소음으로 신호를 가린다.
DevOps가 성공하려면 의미 있는 원격 측정이 필요하며, 원격 측정을 의미 있게 만들려면 봇을 감지하는 기능이 필요합니다. DevSecOps는 봇 관리에 참여하고 DevOps에 매우 중요한 데이터 무결성을 보장함으로써 DevOps 성공에 크게 기여할 수 있습니다.
개발자가 코딩 모범 사례와 취약성 테스트를 통해 해결할 수 있는 기존의 취약성과 달리, 봇 공격은 주로 로그인, 비밀번호 분실, 제품 결제, 제품 가격 정보 등 앱이 노출해야 하는 합법적인 기능을 대상으로 합니다. (F5의 댄 우즈는 Pirate Radio 인터뷰 에서 이를 본질적인 취약점이라고 언급했습니다.) 봇 보호가 앱 보안에 필수적이기는 하지만, 이는 안전한 코딩과는 관련이 없으며 개발자만으로는 해결할 수 없습니다. 봇 보호는 개발자와 정보 보안 사이의 공간에 속하며, 바로 DevSecOps가 차지하는 공간입니다.
범죄 조직은 감지를 우회하는 봇을 개발할 동기가 충분하기 때문에 악의적인 봇으로부터 보호하는 것이 놀라울 정도로 어렵습니다. CAPTCHA가 더 이상 작동하지 않습니다. ML과 휴먼 클릭 팜을 활용한 CAPTCHA 해결 서비스를 이용하면 CAPTCHA를 빠르고 저렴하게 해결할 수 있습니다. (댄 우드의 인간 CAPTCHA 솔버 이야기를 참조하세요.) 봇은 작업 증명을 충족시키기 위해 JavaScript를 실행하고, 실제 인간의 행동을 모방하고, 미묘한 무작위성을 도입하고, 프록시 네트워크를 악용하여 수백만 개의 유효한 주거용 IP 주소를 통해 출처를 위장합니다. 그리고 범죄자들은 탐지 후 몇 시간 만에 봇을 개조합니다. 봇의 정교함과 빠른 발전으로 인해 WAF 규칙을 수동으로 업데이트하여 봇을 차단하던 시대는 오래 전에 끝났습니다.
개발 인력에게 이런 수준의 노력을 강요하면 그들은 어떤 기능도 출시할 수 없게 됩니다. WAF 규칙을 업데이트하라고 운영 팀에 압력을 가하면 모든 리소스가 소진될 것입니다. 조직에서는 봇 관리 솔루션을 기술 가치 스트림에 통합하기 위해 DevSecOps가 필요합니다.
봇으로부터 보호하는 것은 순전히 개발 작업은 아니지만, 전통적인 의미의 운영 작업도 아닙니다. 봇 보호를 구성하려면 애플리케이션, 요구 사항, 설계 및 구현에 대한 자세한 지식이 필요합니다.
위에 나열된 봇 공격 유형을 살펴보면, 이 중 어떤 것이 귀하의 애플리케이션에 적용됩니까? 이러한 각 공격 유형에 대해 봇은 어떤 경로나 API를 추적할까요? 각 경로에 대해 봇과 사람을 구별하는 데 필요한 데이터를 수집하기 위한 신호 수집을 어디에서 수행할 수 있을까요?
F5에서는 웹에서 봇 보호를 구성할 때 보호된 경로를 엔드포인트라고 하며, 계측이 필요한 페이지를 진입점이라고 합니다. 로그인을 상상해보세요. 한 웹 페이지는 로그인 양식을 호스팅할 수 있는데, 이를 진입점이라고 합니다. 그리고 그 양식은 우리가 엔드포인트라고 부르는 특정 경로에 게시될 수 있습니다. 물론, 항상 그렇게 간단한 것은 아닙니다. 로그인 양식은 여러 페이지에 존재할 수 있으며, 이러한 양식은 서로 다른 경로에 게시될 수 있습니다.
모바일의 경우도 비슷합니다. 모바일 앱을 봇으로부터 보호하려면 일반적으로 원격 측정 계측을 위한 SDK를 통합해야 합니다. 어떤 네트워크 요청에 이 원격 측정을 포함해야 하는지 확인하려면 앱에 대한 지식이 필요합니다.
구성에 필요한 이러한 앱 지식을 감안할 때 봇 관리가 DevSecOps에 적합합니다. 특히 요구 사항 및 설계 단계에서 봇 관리를 고려할 때 이 단계를 왼쪽으로 옮기는 것이 합리적이기 때문입니다.
봇으로부터 보호하려면 네트워크 인프라에 대한 이해도 필요합니다. 일반적으로 봇 보호는 네트워크의 계층, 즉 CDN, 로드 밸런서, API 게이트웨이, 인그레스 컨트롤러 또는 애플리케이션 플랫폼에서 호출되는 API를 통해 제공됩니다. 이러한 계층 중 하나는 요청이 인간으로부터 왔는지 봇으로부터 왔는지 판별하기 위해 관련 트래픽을 봇 관리 API로 전송하도록 구성됩니다.
DevSecOps 팀은 개발자 및 운영팀과 협력하여 CI/CD 파이프라인의 일부로 완전히 자동화되고 최적의 성능을 제공하는 방식으로 이러한 API 호출을 구현할 위치를 결정하는 방법에 대한 가장 광범위한 관점을 갖게 됩니다.
기업이 기술 가치 스트림을 통해 새로운 기능을 출시함에 따라 WAF와 같은 다른 보안 구성 요소와 마찬가지로 봇 방어에도 구성 업데이트가 필요합니다. DevSecOps 팀은 CI/CD 파이프라인의 어느 부분에서 이 자동화된 구성 업데이트를 수행해야 하는지 판단하는 데 유리한 입장에 있습니다.
이 문제는 처음에 생각했던 것보다 훨씬 더 복잡합니다. 봇 보호 기능이 자동화된 QA 테스트를 방해할 수 있고, 해당 테스트가 봇으로 감지될 수 있기 때문입니다. 문제를 해결하는 방법은 여러 가지가 있습니다. 예를 들어 헤더나 IP 주소를 통해 테스트 도구를 허용 목록에 추가하거나 자동화된 QA 테스트가 완료된 후에만 봇 보호 기능을 구현하는 것입니다.
가장 중요한 점은 DevSecOps가 개발 및 정보 보안과 협력하여 봇 보호가 필요한 곳을 파악하고 관련 기능이 출시됨에 따라 봇 보호가 구현되도록 하는 방법을 제공해야 한다는 것입니다.
소비자용 애플리케이션을 제공하는 조직은 고객의 데이터 프라이버시와 재정적 안정을 보호하여 온라인에서 고객을 안전하게 보호해야 합니다. DevOps를 통해 빠른 혁신이 가능해져 경쟁 우위를 추구하는 모든 조직에서 고객을 보호하려면 보안을 릴리스 속도에 맞춰 유지해야 하는 DevSecOps가 필요합니다. DevSecOps의 책임 중 가장 중요한 것은 봇 관리입니다. 봇 공격은 고객 보안을 심각한 위험에 빠뜨리고 DevSecOps는 악의적인 봇으로부터 방어하고 조직이 빠르게 혁신을 안전하게 수용할 수 있도록 하는 데 매우 귀중한 기술을 제공합니다.
봇 보호의 ROI에 대한 자세한 내용은 Forrester Total Economic Impact Report를 참조하세요. 자세한 내용을 알아보고 f5.com/bot-defense 에서 F5 봇 전문가와 상담 일정을 잡으세요.