Profobuf (2022) 광고 해독 및 제거로 AppleTV에서 YouTube 광고 차단
(ericdraken.com)Apple TV에서 YouTube 광고 차단하기
개요
Apple TV와 외부 세계 사이에 중간자 프록시를 배치하여 HTTPS 트래픽을 해독할 수 있었음. 이를 통해 Google이 YouTube에 광고를 삽입하는 데 사용하는 ProtocolBuffer 데이터를 읽을 수 있었음. ProtocolBuffer를 실시간으로 디코딩하는 것은 CPU 집약적이므로, ProtocolBuffer 형식의 결함을 발견하여 광고를 제거할 수 있었음.
목표
FreeBSD와 pfSense를 사용하여 강력한 암호화 라우터를 구축하고, Google ProtocolBuffer 형식의 결함을 이용해 Apple TV와 iPhone에서 YouTube 광고를 네트워크 전반에 걸쳐 완전히 차단하는 것.
광고 및 행동 추적 차단의 필요성
- 프라이버시: 사용자의 온라인 활동이 감시되고 있으며, 이는 광고주에게 매우 가치 있는 정보임.
- 대역폭: 네트워크 트래픽의 25%~40%가 광고 및 추적 스크립트로 구성되어 있음.
- 클릭베이트: 클릭베이트는 사용자를 유인하여 악성 사이트로 유도할 수 있음.
- 크립토재킹: 일부 웹사이트는 사용자의 컴퓨터를 이용해 암호화폐를 채굴하려고 시도함.
필요한 라우터 하드웨어
- AES-NI 명령어 세트를 갖춘 미니 PC (예: J4125)
- 여러 기가바이트의 DDR4 RAM (예: 32 GiB)
- 적절한 mSATA SSD 드라이브 (예: 128 GiB)
- pfSense를 전송할 USB 드라이브
pfSense 설치 및 설정
- pfSense를 USB 드라이브에 플래시하여 설치.
- AES-NI 암호화 명령어 활성화.
- RAM 디스크 활성화하여
/var
및/tmp
에 사용. - pfBlockerNG를 사용하여 광고 차단 설정.
네트워크 LAN 분리
- 신뢰할 수 없는 장치들을 위한 별도의 하드웨어 네트워크 생성.
- pfSense를 통해 DNS 요청을 가로채고, 하드코딩된 DNS 서버로의 요청도 차단.
YouTube 광고 알고리듬 속이기
- Apple TV YouTube 광고를 제한하는 방법 연구.
- VPN을 통해 Apple TV 트래픽을 선택적으로 라우팅.
HTTPS 트래픽 해독
- MITMProxy를 설치하여 HTTPS 트래픽을 가로채고 분석.
- Protobuf 메시지를 역공학하여 광고를 제거.
요약
- YouTube Premium을 통해 광고를 차단하는 실험.
- DMCA 및 기타 법적 문제에 대한 고려.
- 광고 차단 기술의 성공적인 적용에 대한 분석.
Hacker News 의견
- Protobuf 형식의 결함을 발견하여 광고를 제거할 수 있음
- 필드 번호를 큰 미사용 번호로 변경한 것으로 추측됨
- Protobuf 바이트를 스캔하여 광고 URL 서명을 찾고, 필드 태그를 찾아 필드 키를 변경함
- 이는 결함이 아니라 의도된 동작임
- 태그를 찾는 노력을 기울이면, 그 옆에 있는 길이를 읽고 바이트를 건너뛸 수 있음
- 버퍼를 복사하거나 바이트를 이동해야 하지만, mitmproxy의 API가 반환하는 바이트 객체는 불변임
- 작은 C++/Go 프록시가 더 적은 오버헤드로 같은 작업을 수행할 수 있음
- 프록시를 통해 모든 것을 라우팅하면 성능이 저하됨
- pfSense 대신 간단한 Linux 서버와 iptables 규칙 세트가 더 효율적임
- 역공학된 proto 필드로 .proto 파일을 작성하여 코드 생성 및 플래그 전환 가능
- 알 수 없는 필드 태그를 무시하는 것은 Protobuf의 중요한 기능임
- 콘텐츠 제작자를 지원하고 싶어 YouTube 광고를 차단한 후 YouTube Premium을 구독함
- YouTube Premium이 제작자를 지원하는지 궁금함
- 여자친구의 YouTube 계정은 광고가 표시되지 않음
- 내부적으로 어떤 플래그가 설정되어 광고가 비활성화되었는지 궁금함
- Apple TV와 세계 사이에 중간자 프록시를 두어 HTTPS 트래픽을 해독할 수 있었음
- Apple TV의 인증서 저장소에 CA를 추가할 수 있다는 사실에 놀람
- 철저한 설명에 감사함
- 하드웨어나 소프트웨어 소유권을 얻기 위해 많은 노력을 기울여야 하는 것이 슬픔
- Apple TV에서 몇 번 시도했지만 성공하지 못함
- YouTube 앱이 인증서 고정을 구현한 것 같음
- 네트워크 전체에서 온라인 서비스 차단을 좋아함
- 광고 차단 외에도 무한 스크롤 차단 방법이 더 많았으면 좋겠음
- Instagram에서 팔로우하는 사람들의 게시물/스토리를 보고 싶지만, 주의를 끄는 비디오를 추천받고 싶지 않음
- YouTube에 광고가 있는지 몰랐음
- AppleTV 경험이 일반 웹 브라우저 경험보다 훨씬 나쁨
- Apple이 하드웨어를 잠가 YouTube의 광고 수익에 더 이익이 됨
- 프로토콜을 해독하고 역공학해야 하는 상황이라면, 이러한 기기를 사용하지 않는 것이 좋을 것 같음
- 이 경제에서 벗어나 다른 방법으로 자신을 즐겁게 하는 것이 좋을 것 같음