익명 사용자의 페이지뷰가 폭증했지만 Google Analytics에는 트래픽 증가가 나타나지 않았습니다. 증가 원인을 어떻게 파악할 수 있을까요?

최근 2주 동안 익명 사용자의 페이지뷰(PV)가 폭발적으로 증가했습니다. 그러나 Google Analytics(GA)는 다른 결과를 보여주고 있습니다. 알 수 있듯이 GA에서는 오히려 slight한 감소가 나타났습니다. 성장세를 지켜보는 것은 좋지만, 갑자기 늘어난 익명 사용자 PV의 출처에 대해 더 알고 싶습니다.

익명 사용자의 유입 사이트(referer)를 확인할 수 있는 방법이 있을까요?

이전 게시물을 찾았습니다: Is the info Top Referred Topics/ Top Traffic Sources stored in a table in the database? - #9 by simon. 이것이 올바른 접근 방식일까요?

@zhenniwu 님, 안녕하세요.

이것은 "성장"이 아닙니다. 귀하의 사이트는 robots.txt 규칙을 무시하는 악성 봇(rogue-bot)에 의해 방문되었을 가능성이 매우 높으며, 해당 봇은 이미 Google에 의해 "악성 봇"으로 지정되어 있어 그 트래픽은 통계에서 제외됩니다.

대부분의 경우, 봇 탐지 및 차단에 상당한 시간과 에너지를 투자할 의사가 없다면 이에 대해 할 수 있는 일은 거의 없습니다. 그리고 이러한 작업은 (대부분의 사람들에게는) 대부분 시간 낭비입니다.

이것은 그저 "우리가 아는 인터넷에서의 일상"일 뿐이며, 대부분은 전혀 신경 쓸 필요가 없는 것입니다.

@neounix 조언해 주셔서 정말 감사합니다! 저희 추측이 맞았다는 걸 확인할 수 있었습니다. 곧 Discourse 업데이트를 진행할 예정이며, 이를 통해 문제적인 봇들의 요청을 제한할 수 있기를 바랍니다. 익명 사용자로부터 오는 PV를 계속 모니터링하겠습니다.

참고로, 봇인지 아닌지 확인하는 방법이 있는지 아시나요? 도움을 주셔서 다시 한번 감사드립니다!

@zhenniwu 님 안녕하세요

동작을 살펴보고 이상 현상임을 인지함으로써 이미 그것이 봇임을 확인하신 것입니다.

클라이언트의 사용자 에이전트(UA) 문자열이 어떤 형태로든 "나는 봇이다"라고 주장할 때 봇을 감지하는 것은 쉽습니다. 그러나 "무단 봇(rogue bots)"은 UA 문자열에서 자신이 봇임을 명시하지 않으므로, 우리는 이러한 봇과 유사한 활동을 감지하기 위해 그들의 행동 패턴을 기반으로 해야 합니다.

원하신다면 이 과정을 자동화하는 코드를 작성할 수 있습니다. 다만, 봇에는 다양한 행동 특성이 존재하기 때문에 모든 유형의 봇을 감지하는 것은 쉽지 않습니다. 단순히 히트 레이트(방문 빈도)에만 국한되지 않습니다(현재 여러분이 보고 계신 것처럼).

감지 솔루션을 구축하기 전에, "봇을 감지함으로써 무엇을 이루고자 하는가?"라는 질문을 스스로에게 던져야 합니다.

왜 이것이 중요한가요? @zhenniwu

참고로, 이 주제에 관한 Research Gate 편집자의 2017년 7월 기사가 있습니다. 읽어보시길 권합니다!

https://www.researchgate.net/blog/post/researchers-render-cyberspace-in-3d-like-a-video-game-to-make-identifying-threats-easier

구글을 위해 우리가 변경한 robots 파일도 이거라고 생각하세요 @sam?

그럴 수도 있지만, 확실하게 알 수 있는 유일한 방법은 실제 트래픽을 확인하는 것입니다.

봇의 대부분은 robots.txt를 준수하지 않습니다.

실제로 많은 불법 봇은 robots.txt를 읽어 관리자가 봇의 방문을 원하지 않는 영역에 대한 정보를 얻은 후, 해당 영역에서 정보를 시도합니다!

즉, robots.txt는 인터넷상 봇의 99.9%(그냥 큰 비율을 선택하면 됩니다)의 동작을 제어하는 데 효과적이지 않으며, 사이트의 “민감한” 영역에 대한 정보도 노출시킬 수 있습니다.

7년간의 호스팅 비즈니스 경험에 비추어 볼 때, 이는 사실이 아닙니다. 무분별한 봇이 존재하는 것은 맞지만, 그 정도가 흔한 일은 아닙니다.

알겠습니다. 그렇다면 이번 폭발은 무분별한 봇 때문이 아닐 수도 있겠네요.

@codinghorror @sam, 분석 및 디버깅을 위해 데이터를 제공해 드릴 수 있습니다. 필요하신 것이 있으면 말씀해 주세요. 바로 보내드리겠습니다. 미리 감사드립니다!

제프, 안녕하세요!

그러면 다행이시군요! 제가 앞서 설명한 문제의 일부를 보여주는 "가상화된 사이버 공간 - 인지적 사이버 상황 인식을 위한 패턴 및 이상 징후 시각화"라는 제목의 ResearchGate 논문을 첨부했습니다.

참고로, 아래는 robots.txt를 준수하지 않는 일부 User Agent 문자열의 “짧은” 목록(최신 업데이트됨)입니다. 이 봇들은 저희 사이트를 크롤링합니다:

AddThis|OPPO A33|Mb2345Browser|UCBrowser|MQQBrowser|MicroMessenger|LieBaoFast|Clickagy|DotBot|Linespider|Applebot|Ask Jeeves|Baiduspider|ADmantX|Spinn3r|rogerbot|YesupBot|ValueClick|Twitterbot|FriendFeedBot|Squider|ContextAd|Voyager|Chattertrap|YandexBot|bingbot|Virtual Reach NewsclipCollector|FlipboardProxy|Flipboard|proximic|YahooFeedSeeker|Xenu|TwitterFeed|GrapeshotCrawler|NewsGatorOnline|Sosospider|OpenISearch|discobot|EasouSpider|FeedDemon|YottaaMonitor|CacheSystem|UnwindFetchor|JikeSpider|Konqueror|Superfeedr|Nachobot|percbotspider|WeSEE:Search|Cliqzbot|Exabot|Wget|TweetedTimes|YoudaoBot|stumbleupon|omgili|BoardReader|Gigabot|trendictionbot|InAGist|DoCoMo|PaperLiBot|YisouSpider|TweetmemeBot|libwww-perl|YandexDirect|CrystalSemanticsBot|httrack|msnbot-UDiscovery|MaxPointCrawler|CrystalSemanticsBot|W3C_Validator|magpie-crawler|Flipboard|flipboa|PostRank|Chrome-Lighthouse|Summify|Sogou|archive.org| UptimeRobot|robot|A6-Indexer|ShowyouBot|crawler|Genieo|Apache-HttpClient|curl|Technoratibot|Feedbin|SensikaBot|SiteExplorer|Digg|Yahoo Pipes|QuerySeekerSpider|Alamofire|AhrefsBot|SeznamBot|Kraken|BomboraBot

위 목록은 일부만이며 오랜 기간 업데이트되지 않아서 "완벽"하지 않고 꽤 “낡은” 상태입니다… :slight_smile:

저희는 20여 년에 걸친 직접적인 경험을 바탕으로, 봇 탐지 및 시각화 코드를 많이 작성하고 이 주제에 대한 여러 논문, 비디오, 발표 자료를 발표한 결과, robots.txt를 준수하는 봇은 손에 꼽을 정도이며, 지시를 준수하는 봇은 구글, 빙(마이크로소프트)과 같은 대기업의 봇들뿐임을 알고 있습니다.

가장 공격적인 봇들은 자신의 User Agent 문자열을 위장하여 “봇이 아닌” User Agent 문자열처럼 보이게 합니다.

또한, 가장 공격적인 위반자들은 중국, 러시아, 한국의 봇들이며, 저희는 레거시 포럼용 플러그인 코드를 통해 honeypot 기법과 기타 행동 패턴을 기반으로 이러한 무법자 봇들을 탐지합니다. 첨부된 논문에서 몇 가지 결과를 볼 수 있으며, 사이버 공간의 봇을 보여주는 멋진 컬러 이미지도 포함되어 있습니다.

예를 들어, 저희 경험과 직접적인 사이버 보안 시각화 연구에 따르면, Discourse 기본(OOTB) robots.txt에 나열된 모든 봇은 robots.txt를 준수하지 않으며, DotBot, semrushbot, ahrefsbot도 포함됩니다(ahrefsbot으로 인해 매우 큰 문제가 있었는데, 이는 다른 발표 자료에서 강조되어 있으며, 아래 일러스트를 참조하세요):

User-agent: DotBot
Disallow: /

User-agent: mauibot
Disallow: /


User-agent: semrushbot
Disallow: /


User-agent: ahrefsbot
Disallow: /


User-agent: blexbot
Disallow: /


User-agent: seo spider
Disallow: /

과거에는 robots.txt에 위 봇들(그리고 훨씬 더 많은 봇!)을 나열했고(지금도 하고 있습니다) 그 결과, 위 목록에 있는 봇 중 robots.txt 지시를 준수하는 봇은 "거의 0개"라는 것을 발견했습니다.

호스팅 사이트에서 다른 경험을 하고 있다면 매우 운이 좋은 것입니다!

저희는 광범위한 테스트를 수행하고 많은 시각화 코드를 작성했으며, 동료 검토 연구(peer-reviewed research)를 통해 대부분의 봇이 robots.txt를 준수하지 않으며, 주로 "빅테크 기업"의 봇 몇 개만 이를 준수한다는 사실을 알고 있습니다.

아래에 첨부한 저희 논문은 모든 봇을 나열하지는 않지만, 이 분야에서 얼마나 광범위하게 테스트하고 코드를 작성했는지(Unity 게임 엔진 및 LAMP 플랫폼에서) 보여줍니다:

https://www.researchgate.net/publication/320008976_Virtualized_Cyberspace_-_Visualizing_Patterns_Anomalies_for_Cognitive_Cyber_Situational_Awareness

ResearchGate에서 다운로드할 필요가 없도록 이 논문도 참고용으로 첨부했습니다.

즐기세요!

Virtualized_Cyberspace_-_Visualizing_Patterns_Anom.pdf (2.0 MB)

P.S.: 시간이 허락한다면 2021년에 레거시 LAMP 봇 탐지 코드의 상당 부분을 Rails로 이식할 계획입니다!

참고:

https://www.researchgate.net/publication/314356740_Patterns_Anomalies_in_Cyberspace

(아래에도 첨부됨)

anomalies_cyberspace_v01.pdf (3.3 MB)

발표 자료의 예시 그래픽으로, 중국 IP 주소가 아닌 브라질 IP 주소에서 사이트를 가져가는, 일반 사용자 UA 문자열("봇 문자열"이 아닌)을 사용하여 일반 사용자로 위장한 200개 이상의 중국 바이두(Baidu) 봇을 보여줍니다.

변경 사항이 궁금합니다. 커밋/CL이 있나요?

네, 만약 그런 상황이 발생했다면 우리 고객들은 정말 격렬하게 항의했을 것입니다. 왜냐하면 그들은 사실상 페이지뷰당 비용을 지불하고 있기 때문입니다. 과도한 페이지뷰를 유발하는 악성 봇은 고객에게 금전적 손실을 입히며, 결국 고객이 우리의 호스팅 플랫폼을 떠나는 원인이 됩니다. 그래서 예를 들어 Bing의 요청을 매우 엄격하게 제한했습니다. 궁금하시다면 직접 검색해 보셔도 좋습니다.

그러므로 지금까지 7년 이상의 호스팅 경험을 통해 확인한 바로는, 악성 웹크롤러/봇이 존재하긴 하지만 중요한 문제는 아니었습니다.

(100대 웹사이트 중 하나인 스택오버플로우(Stack Overflow)에 대해서도 같은 말을 할 수 있습니다. 이 사이트는 제가 공동 설립한 곳입니다.)

제프 씨, 안녕하세요!

훌륭한 대화였네요!

얼마 전 뉴욕에 본사를 둔 최대 규모의 기술 광고 네트워크 중 한 곳의 CFO와 컨퍼런스 콜을 진행했는데, 그는 그 회사와 광고주들이 봇 트래픽(무법 봇이든 그렇지 않든)을 가장 큰 우려 사항 중 하나로 꼽고 있으며, 이 주제(합법적인 사용자 트래픽과 봇 트래픽을 분류하는 것)에 막대한 비용을 지출하고 있다고 말했습니다.

따라서 만약 제프 씨의 웹사이트가 월스트리트와 그곳의 광고주들이 끊임없이 싸우고 있는 동일한 문제에 시달리지 않는다면, 정말 운이 좋은 셈입니다.

솔직히 말씀드리면, 지난 20년간 사이버 보안과 사기 방지 분야에서 일하며 만난 많은 기업들은 제프 씨가 설명한 것과 정반대의 경험을 하고 있었습니다.

잘하고 계시네요, 제프 씨!

참고로, 이 내용이 흥미로우실 수 있습니다. 이 자료는 ‘오래된 것’(5년 전)이지만, 2015년 이후로 상황이 ‘더 나아진’ 것은 아닙니다:

위 CSOonline 기사 발췌 (2015년):

올해 '양성 봇(Good bots)'은 트래픽의 36%를 차지했으며, 이는 지난해 21%에서 증가한 수치입니다. '악성 봇(Bad bots)'은 올해 트래픽의 23%를 차지했는데, 지난해 24%에서 약간 감소했습니다. Essaid가 반복적으로 강조했듯이, 이는 악성 봇의 양이 줄어서가 아니라 '양성 봇’의 수가 급증했기 때문입니다. 인간 트래픽은 지난해 55%에서 41%로 감소했습니다.

해당 회사는 '악성 봇’을 ‘robots.txt’ 파일을 준수하지 않고 방문하는 사이트에 가치를 제공하지 않는 봇으로 정의합니다.

2015년이 5년 전이라 다소 오래되었다고 느껴지므로, 2020년에 더 가까운 참고 자료를 찾아서 다시 공유하겠습니다.

사이버 보안 고객들을 상대해 온 제 경험상, 2020년의 ‘악성 봇’ 트래픽 수치는 위 2015년 CSO 보고서보다 훨씬 더 높습니다. 따라서 ‘악성 봇’ 문제가 없는 사람은 정말 운이 좋은 셈입니다! 지난 10년간 우리는 ‘악성 봇 탐지 및 분류’ 관련 작업을 많이 해왔는데, 봇 프로그래머들이 점점 더 '교묘해지’고 :slight_smile: UA 문자열(그리고 봇의 타이밍 및 행동)을 변경하여 legitimate human traffic(합법적인 인간 트래픽)처럼 보이게 하는 데 능숙해지면서(이것은 CloudFlare가 존재하기 훨씬 이전부터의 일입니다) 고생이 이만저만이 아닙니다.

Jeff가 Discourse 사이트들은 기본적으로 이러한 ‘악성 봇’ 트래픽에 면역이 있으며, 다른 사람들이 겪는 문제를 완화하기 위해 복잡한 봇 탐지 코드가 필요하지 않다고 언급한 것은 정말 반가운 소식입니다.

모든 Discourse 호스팅이 CloudFlare 뒤에 있나요? CloudFlare는 바로 이러한 문제를 보호하기 위해 설계되었습니다.

말씀드렸듯이, 당신이 설명한 상황(수백만 개의 페이지를 초당 수백만 번씩 끌어가는 광범위하게 퍼져 있는 불법 봇)이 사실이라면 우리 사업은 이미 망했을 것입니다. 그래서 일종의 기적이라고 할 수 있겠네요. 당신이 사실이라고 믿는 것과, 제가 Stack Overflow(2008~2012년)와 Discourse(2012년~현재)에서 직접 경험한 실제 비즈니스 현실 사이의 이 갈등을 어떻게 설명해야 할지 모르겠습니다.

한편, 광고 네트워크와 봇은 전혀 다른 문제입니다. 봇이 사용자를 사칭하여 광고를 클릭하는 것은 봇 작성자에게 '무료’로 돈을 버는 방법이 되기 때문입니다.

아마 그 차이는 우리 대부분의 고객이 광고에 의존하지 않기 때문일 것입니다. Stack Overflow에서도 디스플레이 광고는 사업의 아주 작은 부분이었습니다. 이 문제를 생각하실 때 이 중요한 차이를 염두에 두시는 것이 좋을 것입니다.

Jeff님,

참고로, 인터넷에서 봇 트래픽이 인간 트래픽을 초과한다는 것은 저의 개인적인 의견이 아니라 꽤 널리 알려진 사실입니다.

또한, 봇 트래픽의 상당 부분이 robots.txt를 준수하지 않는 봇에 의해 발생한다는 점도 저의 개인적인 의견이 아니라 널리 알려진 사실입니다. 일부에서는 최소한 절반이라고 추정하며, 제 경험상으로는 "사이트와 주제에 따라 달라진다"고 할 수 있습니다.

Jeff님이 설립하고 구축하신 회사들에서는 다른 경험을 하고 계시다니 정말 기쁘고, 그 점에 대해 진심으로 축하드립니다.

한편, 인터넷의 현실은 2020년 현재 봇 트래픽이 전체 트래픽의 약 55~60퍼센트를 차지하고 있으며, 그 봇 트래픽 중에서도 약 절반 정도는 robots.txt를 준수하지 않는 봇 트래픽이라는 것입니다. 일부 연구에서는 "악성 봇"의 수치를 전체 트래픽의 35퍼센트까지 낮게 평가하기도 하고, 연구에 따라 더 높게 평가하기도 합니다. 이는 제가 지어낸 이야기가 아니라 잘 문서화된 사실입니다.

Discourse에서의 호스팅 경험이나 이전 경험 외에, "악성 봇 트래픽"이 미미한 수준임을 보여주는 연구 논문이나 통계를 가지고 계신다면, 읽는 것이 매우 기쁠 것입니다. 왜냐하면 개인적으로, Jeff님이 여기에서 말씀하시듯 “악성 봇” 트래픽이 그렇게 미미하다는 내용을 명시한 연구 논문이나 인용된 기사를 본 적이 없기 때문입니다.

Jeff님과의 의견 불일치가 불쾌감을 드린다면 죄송합니다. 저는 인터넷 트래픽에 관한 사실에 대해 개방적이라면, 참고 자료(저의 의견이 아닌)를 더 제공할 수 있습니다.

그렇지 않다면, 이 주제에 대한 게시를 중단하겠습니다. Jeff님이 강한 의견을 가지고 있는 문제에 대해 제가 불필요한 마찰을 일으키고 싶지 않기 때문이며, 저는 이 포럼에서 관리자 권한도 없으므로 :slight_smile: :slight_smile:

즐거운 연말연시를 보내세요!

광고 네트워크들이 봇과 가짜 클릭으로 인한 광고 수익을 놓고 치열한 전투를 벌이고 있는 상황이라면 그럴 수도 있겠죠. 하지만 스택 오버플로우(Stack Overflow)나 디스커스(Discourse)에서는? 그것은 대부분 큰 문제가 되지 않습니다.

이론에 기반한 가설을 놓고 논쟁하는 것을 즐기신다면, 마음껏 하셔도 좋습니다. 하루 종일, 매일 마음껏 이론을 펼쳐보시죠. 이 같은 이론화가 여러분의 삶에 큰 기쁨과 행복을 가져다주기를 바랍니다! 그 사이 우리는 비즈니스를 운영해야 하므로, 저는 실제 비즈니스에서 수집한 실제 데이터에 기반하여 결정을 내리는 것을 선호합니다. 아마도 저는 그 점에서 약간 미친 사람일지도 모릅니다. 그것이 귀찮거나 당혹스럽게 느껴진다면 죄송합니다.

나머지 하루도 즐겁게 보내세요!

음… 제가 무언가를 놓치고 있는 건지 모르겠지만, 위에 님이 링크하신 연구는 실제로 웹 전체의 일반적인 추세를 보여주는 것 같지는 않습니다.

해당 연구는 트래픽을 표시하는 방식을 통해… 의문스러운… 트래픽을 식별하고 정량화하는 것을 비교적 단순한 시각적 작업으로 만들어 주는 데 초점을 맞춘 것으로 보입니다. 그 자체로는 흥미롭습니다. 그러나 어떤 사이트들이 표본으로 포함되었는지, 심지어 어떤 유형의 사이트인지에 대한 언급도 없습니다. 따라서 제시된 사례가 웹 전체를 대표하는지 평가하기가 어렵습니다.

참고: 봇 트래픽이 일반적으로 거대한 규모인지, 또는 “나쁜” 봇이 많이 존재하는지에 대해서는 의문을 제기하지 않습니다… 하지만 (검색 가능한) 통계들은 님이 스크린샷으로 보여주신 검색 결과와 다소 차이가 있는 것 같습니다.

더 유용할 수 있는 것은 어떤 유형의 사이트가 어떤 유형의 봇에 의해 공격적으로 표적화되는 경향이 있는지에 대한 통계적 분석일 것입니다. (예를 들어, FaceBook과 유사한 플랫폼들은 이러한 봇의 특정 세그먼트로부터 비례적으로 큰 관심을 받는다고 예상합니다. 또 다른 세그먼트는 아마도 광고가 많은 사이트를 거의 독점적으로 노릴 것입니다.)

제프님, 안녕하세요.

제가 인터넷 네트워크 운영에 대해 전혀 모르는 "광대 같은 이론가"로 묘사되기를 원하신다면 그러시죠. 하지만 제프님을 잘 아시는 분이라면 이미 알고 계시듯이, 이는 사실과 가장 먼 말입니다. :slight_smile:

질문자(OP)의 그래프에 스파이크가 발생했습니다. 이는 아마도 봇에 의해 발생했을 가능성이 높습니다. 그 부분은 동의할 수 있을 것 같습니다. :slight_smile:

제프님, 좋은 하루 보내시고, 즐거운 휴가를 보내시길 바랍니다!

또한, 저에게 Ruby on Rails를 소개해 주셔서 감사합니다. 제프님과 Discourse가 없었다면, 저는 매일 Ruby 코드를 작성하지 않았을 것입니다(Discourse를 제외하고도요). 2020년에 제게 일어난 가장 멋진 기술적 사건이었습니다! 저는 Ruby를 정말 사랑합니다.

다시 한번 감사드립니다, 제프님!

@Sailsman63 안녕하세요

저는 여러 분야에서 보완적인 참고 자료를 제공했습니다. 그리고 모든 운영 시나리오에서 인터넷 트래픽의 상세한 작업이나 조사를 게시하거나 그렇게 주장한 적도 없습니다.

제 생각에, 합리적인 연구 및 분석 능력을 갖추고 인터넷에서 최소 60분이라도 연구를 수행하는 엔지니어라면 (1) 인터넷 네트워크 트래픽 중 봇이 차지하는 비율이 얼마나 되는지에 대한 운영 보고서(이론이 아닌)를 여러 건 발견하고, (2) 그 트래픽 중 robots.txt를 준수하지 않는 "악성 봇"이 얼마나 차지하는지를 정량적으로 나타낸 참고 자료도 여러 건 발견할 것입니다.

이것은 "이론"이나 "제 아이디어"가 아닙니다. 이것은 잘 확립된 사실이며, 이 사실은 관심을 가지고 조사하려는 누구에게도 숨겨져 있지 않습니다. 그리고 운영 관점에서는 웹 사이트의 로그 파일을 분석하고 트래픽 동작을 처리할 때 매일 동일한 상황을 목격합니다. 예를 들어, 봇만 찾을 수 있는 허니팟(일반적인 인간 사용자는 절대 그곳에 가지 않으므로)을 설정하는 경우, 결국 봇만 그곳에 접속하는 등입니다.

웹 사이트에서 수많은 "허니 링크"를 설정해 왔으며, 제 경험상 많은 봇을 포착해 왔습니다. 따라서 이것은 제가 “갑자기” 만들어낸 것이 아닙니다, LOL :). 인터넷상의 다른 사람들도 같은 일을 해 왔습니다(이것은 일반적인 사이버 보안 기법입니다). 저 혼자만의 일이 아니라는 점을 약속드립니다 :slight_smile:

좋은 하루 보내세요!