
→ 용량이 큰 프로그램을 다운받기 위해서 app, launcher → 취약점 존재
App Launcher 구조
- 보통 게임이나 대형 프로그램은 런처(Launcher)인 작은 실행 파일(
.exe)을 먼저 설치
- 이 런처가 실행되면 서버와 통신해서 본 프로그램(용량 큰 파일들)을 다운로드하고 업데이트
- 롤(League of Legends) → 클라이언트 런처 실행 → 패치/본 게임 파일 다운로드
- 취약점이 생기는 이유
- 런처 구조에서 발생할 수 있는 보안 문제들:
-
중간자 공격(Man-in-the-Middle)
- 런처가 서버에서 큰 프로그램을 다운로드할 때, 네트워크가 암호화되지 않으면 공격자가 위조된 파일을 내려줄 수 있음
- 원래 받아야 할 프로그램 대신 악성코드를 설치하게 된다.
-
서명/검증 부재
-
권한 문제
- 런처는 보통 설치 권한(관리자 권한)을 요구함 → 악성코드가 섞여 있으면 시스템 전체가 뚫릴 수 있음
-
자동 업데이트 취약점
- 런처는 주기적으로 서버에서 업데이트를 받아옴
- 만약 업데이트 서버가 해킹당하면, 공격자가 악성 업데이트를 배포할 수 있음
→ web은 서버에서 데이터를 보내거나 받을 때
Web Server 구조
-
중앙 서버(Server)
클라이언트들의 상태(Level)를 관리하고 서로 동기화하는 역할
서버의 LV는 항상 최신 상태(LV=2)로 유지됨
-
클라이언트(Client 1, 2, 3)
각각 프로그램(App Launcher → 설치형 .exe)을 실행해서 서버와 통신
서버에서 받은 LV 정보를 자신의 상태와 비교 후 업데이트
-
웹(Web)
App Launcher를 통해 설치 및 실행되는 형태를 의미(.exe 설치형 앱)
데이터 흐름
- 초기 상태
- Client 1 → LV1
- Client 2 → LV1^2
- Client 3 → LV1
- 서버로 요청
- 각 클라이언트가 현재 LV 상태를 서버로 보냄 (파란색 화살표)
- 서버 동기화
- 서버가 가장 최신 상태(LV=2)를 기준으로 모든 클라이언트를 업데이트
- Client 1, Client 2, Client 3 모두 서버로부터 최신 LV를 받음 (초록색 화살표)
- 결과
- 모든 클라이언트는 서버 기준 최신 LV 상태로 맞춰짐
- 즉, 분산된 클라이언트들이 서버를 중심으로 동기화되는 구조

→ http/https: 비연결성