Friday, April 9, 2021

버그 바운티 해킹 대회 폰투온(Pwn2Own)


폰투온(Pwn2Own)은 캐나다에서 열리는 캔섹웨스트(CanSecWest) 보안 컨퍼런스의 버그 바운티(Bug Bounty) 해킹 대회로 2007년에 시작되었다. 화이트햇(White Hat) 보안 전문가들이 소프트웨어 버그를 발견하고 해킹하는 대회다.

대회 이름에서 PWN은 해커 용어로 뜻은 '해킹하다', '제어권을 갖는다(take control of)'는 뜻이다. 유래는 소유하다는 단어 'own'에서 왔는데, 키보드에서 'P'와 'O'가 인접해 있어 타이핑 오류에서 온 것으로 생각한다. 하지만, PWN은 소유의 의미가 아니라 게임, 물체, 상황 등을 지배하거나 통제하는 것을 의미한다. 대회 이름 PWN 2(TO) OWN은 '(관리자) 권한을 얻기 위해 해킹하다'라고 해석할 수 있다.
Have I Been Pwned? (줄여서, HIBP)라는 사이트는 이메일이나 전화번호를 입력하면 자신의 계정이 인터넷 사이트에서 해킹 당한 적이 있는지 알려주는 사이트로 유명하다.

<Pwn2Own 대회 모습, HP Security 유튜브>

이 폰투온 대회는 2015년 한국의 해커 이정훈(Jung Hoon Lee)이 Chrome, IE11, Safari 최신 버전을 전부 해킹하는 데 성공하여 총상금 $225,000불을 받아 한국에서도 잘 알려진 대회다. 대회 역사상 한 개인이 3가지 메이저 브라우저를 전부 해킹하는 데 성공한 것은 최초였다.

이에 삼성에서 바로 영입했으나 1년을 채우지 못하고 구글로 이직해서 국내 기업 문화에 대한 문제가 언론에 보도되기도 했다.

2007년 대회에서부터 성공했던 익스플로잇 리스트는 아래 위키피디아 사이트에서 확인할 수 있다.
List of successful exploits (Wikipedia)

올해엔 대회에선 줌(Zoom)에 대한 취약점을 발견한 해커가 상금으로 20만 달러를 벌었다. 발견된 취약점은 90일 동안 공개되지 않고 해당 업체가 패치를 개발할 시간을 준다.

* 관련 기사: 사용자 입력없이 원격으로 코드를 실행할 수 있는 심각한 줌(Zoom) 취약점 발견
Critical Zoom vulnerability triggers remote code execution without user input

※ 그 외 주목할만한 다른 성공적인 공격은 다음과 같다.
- 애플 사파리: Jack Dates, kernel-level code execution, $100,000
- MS 익스체인지: DEVCORE, complete server takeover, $200,000
- MS 팀즈: OV, code execution, $200,000
- 우분투 데스크탑: Ryota Shiga, standard user to root, $30,000


* 참고 자료 및 출처

Sunday, April 4, 2021

맥에서 크롬 vs 브레이브 vs 사파리 vs 엣지 웹브라우저 속도 비교


지난 3월 4일에 설치한 웹브라우저 브레이브(Brave)를 사용한지 딱 한달 지났다. 브레이브 웹브라우저를 설치한 이유는 아래와 같은 크롬 관련 기사 때문이다.

* 관련 기사:
구글 집단소송 당해…"크롬 시크릿 모드때도 정보 뻬갔다" (ZDNet)
글로벌 칼럼 | 크롬을 버려야 하는 이유 (ITWorld)

기사를 요약하면, 구글이 크롬(Chrome) 브라우저에서 시크릿 모드(Incognito mode)로 설정한 경우에도 이용자들의 사생활 정보를 훔쳐 갔다고 집단 소송에 휘말린 거다. 구글은 파이어폭스(Firefox)가 등장한 지 약 6년 후인 2008년에 크롬을 출시했지만, 오픈소스 크로미엄(Chromium) 엔진을 사용해 빠른 속도를 내세우면서 마이크로소프트 IE 등을 물리치며 시장 점유율 1위를 기록하고 있다.

* 참고: 웹브라우저 사용 점유율
Usage share of web browsers (Wikipedia)
2020년 11월 기준, 대략 Chrome: 64%, Safari: 19%, Samsung: 3.5%, Edge: 3.41%, Firefox: 3.79% 순이다.

https://www.brave.com/

브레이브(Brave) 웹브라우저는 프라이버시와 보안을 주요 장점으로 내세우며 크롬의 대항마로 등장했다. 브레이브는 자바스크립트(JavaScript) 창시자이자 모질라 재단 최고기술관리자(CTO)였던 브랜든 아이크(Brendan Eich)가 설립한 기업이라 관심을 받았다.

* 관련 기사: 프라이버시 최우선 '브레이브', 구글 검색 엔진 대항마 출시 (Wired KR)

브레이브(Brave)는 두 가지가 특히 장점이라고 강조한다. 속도프라이버시이다. 브레이브는 광고 추적기를 차단해, 광고주가 사용자를 식별하고 추적하려는 시도를 막는다. 이렇게 해서 사용자의 익명성을 보장해준다. 심지어 시크릿 모드에 2가지가 있는데, 구글 등 다른 웹브라우저에서 사용하는 Private Window 외에 추가로 Private Window with Tor가 있다. 토르(Tor) 브라우징 기능이 내장되어 있어 이를 사용하면 완벽한 익명성을 보장할 수 있다.

속도의 경우, 분석 업체인 넷 애플리케이션(Net Application)이 각각 1위와 3위로 선정한 크롬과 파이어폭스보다 페이지 로딩 속도가 2배 빠르다. 스마트폰의 경우, 크롬(안드로이드)이나 사파리(iOS)보다 페이지 로딩 속도가 최대 8배 빠르다.

사용자는 광고를 선택해서 볼 수 있는데, 이렇게 광고를 허용하면 암호화폐인 'BAT(Basic Attention Token)'을 지급한다. 이 BAT 토큰은 브레이브 브라우저의 암호화폐 지갑에 기록되고 원하면 암호화폐 거래소로 송금해서 현금화할 수 있다.

현재 분석맨은 2개의 모니터에 메인 웹브라우저로 크롬을 사용하고 있고, 두번째 모니터엔 브레이브를 사용하고 있다. 서브 브라우저는 파이어폭스, 엣지를 사용하다가 최근에 브레이브로 변경했다. 오픈소스 진영인 모질라를 지원하기 위해 오랫동안 파이어폭스를 사용했고 가끔씩 기부도 했지만, 속도가 너무 느려져서 다른 브라우저로 바꿨다.

맨 아래 '* 참고 자료 및 출처'에 링크한 사이트를 보듯이 브레이브가 크롬이나 다른 브라우저 보다 빠르다는 테스트 결과는 많다. 하지만, 내가 주로 사용하는 웹사이트를 가지고 실제 속도 테스트를 해보았다. 다른 툴을 이용하지 않고 브라우저에 내장되어 있는 개발자 툴(Developer Toools)을 이용했다.

기본은 모바일 기기를 로딩해서 사파리를 제외하고 기기를 'Laptop with HiDPI screen'로 선택했다. 사파리는 크로미움(Chromium) 기반이 아니고 기기를 선택할 수 있는 옵션이 없다.

아래 테스트 결과를 보면, 생각보다 브레이드의 속도가 빠르지 않다. 하지만, 당분간은 브라이버시와 광고 차단 측면에서 좀 더 사용해볼 생각이다.

한 달간 사용했는데 아래와 같이 2만여 개의 광고와 추적기를 차단했고, 18분의 시간을 절약했다고 보여준다.


CPU와 메모리 사용량도 크롬보다 적다.
의외의 결과는 파이어폭스가 예상보다 빠른 속도를 보여주었다는 점이다. 이 결과는 '* 참고 자료 및 출처'이 마지막 링크에서의 결과와도 일치한다.

향후 브레이브를 사용하지 않는다면, 파이어폭스를 다시 사용할 것 같다.

  • 웹사이트 테스트 결과 종합

(숫자가 작을수록 좋음)

Firefox: 1.17s > Chrome: 1.84s > Safari: 2.06s, Edge: 2.27s > Brave: 2.41s

Firefox: 2.19s > Brave: 2.30s > Chrome: 2.48 > Safari: 2.94s, Edge: 2.93

Firefox: 356ms > Brave: 790ms > Safari: 746ms > Chrome: 836ms > Edge: 889ms

Chrome: 4.10s = Brave: 4.10s > Firefox: 6.09s > Edge: 7.85s > Safari: 10.51s

Safari: 2.44s > Firefox: 3.94s > Edge: 6.90s > Chrome: 9.97s > Brave: 10.40s


  • 웹사이트 테스트 결과 상세

‣ 사용 랩탑: MacBook Pro (15-inch, 2018)
‣ 하드웨어: 2.9 GHz 6-Core Intel Core i9, 16 GB 2400 MHz DDR4
‣ 사용 O/S: macOS Catalina v10.15.7
‣ 테스트 위치: 미국 실리콘밸리
‣ 인터넷 회선: 컴캐스트(Comcast) 100 Mbps
‣ 웹 브라우저 모드: Private or Incognito mode
‣ 웹브라우저 버전:
- Chrome: 89.0.4389.114 (Official Build) (x86_64)
- Brave: 1.22.71 Chromium: 89.0.4389.114 (Official Build) (x86_64)
- Safari: 14.0.3 (15610.4.3.1.7, 15610)
- Edge: 89.0.774.68 (Official build) (64-bit)
- Firefox: 87.0 (64-bit)


  • Chrome

1. news.naver.com
240 requests 2.0 MB transferred 3.3 MB resources Finish: 2.53 s DOMContentLoaded: 1.04 s Load: 1.84 s

2. news.google.com
118 requests 1.2 MB transferred 4.2 MB resources Finish: 3.85 s DOMContentLoaded: 1.27 s Load: 2.48 s

3. www.facebook.com/zuck
110 requests 1.4 MB transferred 4.6 MB resources Finish: 29.07 s DOMContentLoaded: 799 ms Load: 836 ms

4. finance.yahoo.com
1041 requests 13.7 MB transferred 33.5 MB resources Finish: 1.5 min DOMContentLoaded: 2.03 s Load: 4.10 s

5. www.youtube.com
90 requests 5.0 MB transferred 13.9 MB resources Finish: 2.2 min DOMContentLoaded: 9.44 s Load: 9.97 s


  • Brave

1. news.naver.com
238 requests 1.9 MB transferred 3.1 MB resources Finish: 3.25 s DOMContentLoaded: 1.57 s Load: 2.41 s

2. news.google.com
70 requests 1.2 MB transferred 3.4 MB resources Finish: 4.10 s DOMContentLoaded: 1.23 s Load: 2.30 s

3. www.facebook.com/zuck
107 requests 1.6 MB transferred 4.7 MB resources Finish: 43.34 s DOMContentLoaded: 695 ms Load: 790 ms

4. finance.yahoo.com
1041 requests 13.7 MB transferred 33.5 MB resources Finish: 1.5 min DOMContentLoaded: 2.03 s Load: 4.10 s

5. www.youtube.com
91 requests 1.4 MB transferred 12.1 MB resources Finish: 2.5 min DOMContentLoaded: 9.87 s Load: 10.40 s


  • Safari

1. news.naver.com
11 253 3.83 MB 2.07 MB 1 2.06s

2. news.google.com
13 79 4.05 MB 3.01 MB 2 2.94s

3. www.facebook.com/zuck
5 81 4.64 MB 134.1 KB 0 746ms

4. finance.yahoo.com
100 757 26.4 MB 25.3 MB 26 10.51s

5. www.youtube.com
10 56 11.9 MB 3.18 MB 1 2.44s


  • Edge

1. news.naver.com
239 requests 2.0 MB transferred 3.2 MB resources Finish: 3.04 s DOMContentLoaded: 1.17 s Load: 2.27 s

2. news.google.com
115 requests 2.0 MB transferred 4.7 MB resources Finish: 4.32 s DOMContentLoaded: 978 ms Load: 2.93 s

3. www.facebook.com/zuck
102 requests 1.5 MB transferred 4.6 MB resources Finish: 34.68 s DOMContentLoaded: 793 ms Load: 889 ms

4. finance.yahoo.com
299 requests 13.0 MB transferred 19.5 MB resources Finish: 1.9 min DOMContentLoaded: 3.85 s Load: 7.85 s

5. www.youtube.com
76 requests 3.6 MB transferred 11.8 MB resources Finish: 16.76 s DOMContentLoaded: 5.84 s Load: 6.90 s


  • Firefox

1. news.naver.com
239 requests 802.56 KB / 621.17 KB transferred Finish: 3.13 s DOMContentLoaded: 334 ms load: 1.17 s

2. news.google.com
60 requests 6.56 MB / 1.84 MB transferred Finish: 3.85 s DOMContentLoaded: 987 ms load: 2.19 s

3. www.facebook.com/zuck
80 requests 738.89 KB / 241.86 KB transferred Finish: 9.52 s DOMContentLoaded: 298 ms load: 356 ms

4. finance.yahoo.com
807 requests 14.72 MB / 7.76 MB transferred Finish: 1.07 min DOMContentLoaded: 870 ms load: 6.09 s

5. www.youtube.com
90 requests 12.98 MB / 3.02 MB transferred Finish: 14.62 s DOMContentLoaded: 2.73 s load: 3.94 s


* 참고 자료 및 출처
"속도와 프라이버시가 장점"··· 브레이브 브라우저의 모든 것



Saturday, April 3, 2021

주니퍼가 인수한 128 Technology의 SD-WAN 기술


주니퍼(Juniper)가 작년에 인수한 SD-WAN 업체 128테크놀로지스(128T)의 핵심 기술인 SVR(Secure Vector Routing)에 대해 간단히 정리해본다.

* 관련 기사: 주니퍼, ‘128T’ 인수…‘SD-WAN’ 패권 경쟁 심화

한국에는 에스넷과 계약을 통해 진출해 128T의 소프트웨어 기반 세션 스마트 라우터(Session Smart Router)와 에스넷의 매니지드 서비스 역량을 결합해 스마트 IT 서비스 플랫폼 ‘S-WAN(Smart-WAN)’으로 출시됐다.

핵심 기술인 SVR(Secure Vector Routing)는 은 기존 SD-WAN이 사용하는 IPsec 터널 방식이 아닌 tunnel free 방식이다. 터널 방식 대비 오버헤드가 약 30% 작아 트래픽을 절감할 수 있다고 한다.

128테크놀로지스(128T) 기술이 어떻게 동작하는지는 아래 PacketPushers에 설명되어 있다.
Packet Walking Through A 128 Technology Network

<Session-Aware Data Plane>


SVR 프로토콜에 대한 보다 자세한 설명은 아래 Tech Field Day 녹화 영상을 보면 좀더 도움이 된다.

128 Technology Routing Protocols: SVR
https://youtu.be/WtLXJibOzFw

몇 가지만 요약하면...
▶ 128T SSR(Session Smart Router)은 다양한 middlebox 기능(security, routing, firewall, VPN, and load balancer)을 통합
▶ 기본적으로 5-tuple (original source & destination IP 주소, original source & destination 포트, IP 프로토콜)metadata 만듬
▶ Default로 암호화(AES256)와 인증(HMAC-SHA256-128)
▶ Stateful 방화벽처럼 세션 테이블 구성
Waypoint라는 SVR이 설정된 라우터 hop 간의 connection & path attributes는 BFD(Bi-directional Forwarding Detection) 프로토콜로 체크
▶ Public 인터페이스로 패킷을 보내기 전에 default로 double NAT (소스 및 목적지 IP 포트 모두 NAT) 수행, 추가적으로 세션 기반 source & destination NAT (44,64,46) 도 지원
▶ 128T 라우터를 통과하는 모든 세션에 대해 DoS & DDoS 방어 기능

아래 128T의 기술백서도 SVR이 어떻게 동작하는지 잘 설명하고 있다.
Session Smart Routing: How it Works (PDF)
<Session-based First Packet Processing>

새로운 TCP 또는 UDP 세션에 해당하는 첫 번째 패킷이 SVR 기반 라우터에 도착하면 세션에 해당하는 적절한 경로를 결정한다.

✓ SVR 기반 라우터는 패킷의 소스 주소를 자체 송신 waypoint IP 주소로 변환한다. 패킷의 목적지 주소는 목적지 SVR 기반 라우터의 waypoint 주소로 변환된다.
✓ SVR 라우터는 패킷에 메타데이터를 추가한다. 이 메타데이터에는 다른 정책·제어 매개 변수와 함께 패킷의 원래 소스 및 목적지 주소가 포함된다. 그런 다음 메타데이터가 서명되고 선택적으로 암호화된다.
✓ 패킷은 다음 SVR 라우터의 waypoint 주소로 전달된다.
✓ 마지막 홉 SVR 기반 라우터에서 인증권한이 부여되면 원래 패킷 내용이 복원되고 최종 목적지로 전달된다.
✓ 동일한 세션의 후속 패킷은 동일한 방식으로 자동 인식되고 전달되지만 "첫 번째 패킷 처리(first packet processing)"는 없다.
✓ 위의 처리와 유사하게 SVR은 첫 번째 순방향 패킷과 동일한 경로를 따르는 첫 번째 역방향 패킷에 메타 데이터를 추가한다. 이제 완전한 경로 대칭(path symmetry)이 설정된다.