2024 LCK 스프링 리그를 통해 대대적으로 알려진
리그오브레전드 관련 온라인 스트리머와 LCK 프로리그에 대한 디도스 사태에 대한
정보정리는 ① 글에 모아두었다.
이제는 해킹공부와 관련해서 현직 화이트해킹유튜버 '노말틱'님이 분석해주신 영상을 정리해보자.
디도스란?
#. 도스(DoS) : Denial of Service
= 서비스 거부 공격 / 서비스를 못하게 한다는 뜻
ㅡ> 서버를 대상으로 한 공격.
ㅡ> 서버를 공격해서 해당 서비스가 정상적으로 운영되지 못하게 함.
= 컴퓨터가 맛이 가게 만들어버린다.
= 컴퓨터에 과부하를 일으킨다.
But,,,!!
대인터넷시대인 요즘 같은 세상에 서버의 스펙도 높고, 네트워크 대역폭도 크고, 디도스 방어장비도
충분히 갖춰져 있기 때문에 컴퓨터 한 대로 과부하를 일으킬만큼 공격하는 것은 사실상 불가능...
더군다나 현재 공격대상인 LoL게임을 비롯해서 주요공격대상이 되는 큰 서비스의 서버는
두말없이 Dos공격이 가능할 리가 없다.
#. 디도스(D-DoS) : Distributed DoS
= '분산' 서비스 거부 공격
ㅡ> 여러 대의 컴퓨터를 이용해서 공격을 한다.
* 그래서 현재 도스 공격을 한다 = 디도스 공격을 한다와 같은 의미로 봐도 무방.
디도스의 트렌드
#. 과거
서버를 공격 ㅡ> 서비스운영자에게 연락(ex.전화/이메일 등) ㅡ> 협박(돈줘! 안주면 나 안풀어줄거임ㅋ)
But,,,!!
위에서 언급했듯, 이제는 서버를 공격하는 것은 불가능 수준.
* 봇넷 : 좀비pc를 말함
좀비pc란? 공격자가 디도스공격에 사용할 때 거느리는 pc(일반사용자들도 모르게 이용될 경우도 많음)
공격자가 자신이 거느린 PC개수 = 디도스 공격의 파워량
ㅡ> 봇넷의 규모에 비례하여 파워가 세진다!
그러나 또 또 왠만큼 봇넷을 꾸려도 현대의 서버는 쉽게 뚫릴 일이 없다...
ㅡㅡ> 블랙해커들이 디도스로 밥 벌어먹기가 힘들다. = 최근 몇년 간 디도스가 잠잠했던 이유.
ㅡㅡ> 차라리 랜섬웨어가 수익이 더 잘나더라 카더라,
#. 현재
그런데 요즘 다시 디도스가 뜨고 있다.
Why??
공격자, 블랙해커들의 생각의 전환이 있었다.
ㅡ> 우리가 왜 서버만 공격할 생각을 했지?
ㅡ> 클라이언트, 개인을 공격하면 되잖아 ㅋㅎ
: 개인들은 방어가 상대적으로 허술할 것이고,
뚫리지 않는 서버를 뚫기 위해 해커들의 체급은 올라가 있는 상태.
ex) pc방을 공격, 인터넷방송 공격
디도스 전략 분석
1. 프로그램의 취약점을 이용
2. 네트워크 대역폭 가득 채우는 방법
#. 프로그램의 취약점을 이용 (LoL을 예시로)
- 클라이언트 프로그램에 부하를 줄 수 있는 취약점을 찾아냄
- 서버 디도스처럼 많은 봇넷을 굳이 마련하지 않아도 됨
- 해당 취약점에만 반복적으로 공격해서 부하를 주면 됨
- 예를 들어 친구초대, 음성대화 등
그 결과 : 프로그램이 튕기고 ㅡ> 게임이 튕긴다.
#. 네트워크 대역폭 가득 채우는 방법.
나는 취약점이고 뭐고 모르겠고, 네트워크를 막아버리겠어!
= 내 PC로 들어는 네트워크 대역폭에 쓸데없는 패킷을 때려부어서 길을 막는다.
= 인터넷 자체가 먹통이 되어버린다.
그 결과 : 인터넷이 끊기고 ㅡ> 게임이 튕긴다.
그래서 롤은 어떤 디도스 공격을 받았는가?
※ 주의 ※
노말틱 Say
실제로 일어난 해당 공격을 직접 분석할 정보가 없기 때문에,
공개된 사실과, 공격 당시 상황이 담긴 영상 등을 통해 가장 가능성이 높은 원인으로 '추정' 해볼 것이므로
이것이 팩트는 아니다!!
* 공개된 사례
- 실시간 롤 게임방송하던 스트리머 : 롤이 튕겼는데, 방송은 계속하고 있었다. (근데 채팅창이 멈췄네?)
- 다른 스트리머들의 카톡대화 : 인터넷이 다 끊겼다, 와이파이도 끊겼다. 게임끝나니까 돌아오더라.
=> 1번이 아닌 2번, 즉 네트워크 대역폭을 공격했다고 볼 수 있다.
* 네트워크 대역폭 디도스에서 핵심!
= 공격대상자의 'IP주소'가 반드시 필요하다.
그렇다면, IP주소가 어떻게 유출 되었는가?
♠ 여기서 옛날 이야기.
- IP주소는 굉장히 민감한 것 같은 느낌이지만 예나 지금이나 사실 생각보다 알기 쉬운 정보.
- 2개의 pc가 직접 소통하게 된다면, 당연히 서로의 IP주소를 알아야 통신이 가능하기에
통신한 이력만 찾아봐도 금방 알 수 있게 된다.
- 옛날 게임은 특히 그게 더 쉬운 편. (ex. 스타크래프트, 워크래프트 = p2p방식 게임진행요소)
그런데 롤은? p2p가 아닌데?
-> [클라이언트 <ㅡ> 서버] 통신구조이기 때문에, 이론상
롤 프로그램 자체로는 상대방의 IP주소를 절대 알 수 없다.
그런데, 'Swissknife LeaguePuller'라는 프로그램이 있다라고 동네방네 소문이 도는데,
이 프로그램은 롤 내의 상대방의 아이디를 알면 IP주소를 가져올 수 있다고 한다?!
어떻게???!!!
(여기서부터는 일단은 추측이지만 가장 유력하다 생각하는)
- 롤 게임의 개발사 라이엇 홈페이지에는 공개된 Riot API가 있다.
* API : Application Programming Interface
: 비유하자면 자판기 같은 것.
: 개발사가 공개한 범위 내에서, 정해진 규칙을 입력하면 서버 내 정보를 제공하는 기능
대표적인 사이트 : op.gg [유저의 아이디를 입력하면 해당 유저의 전적관련 정보를 보여주는 사이트]
- Riot API 어디에도 IP주소를 알려주는 소스는 없다.
- 하지만, 플레이어의 특정한 정보를 return해주고 있는 것은 분명하다.
(어느 게임 중인지, 누구랑 게임 중인지, puuid까지)
ㅡ>>> 여기서 IP주소를 return하는 취약점이 존재할 수 있다는 합리적 추측 가능!!!
그런데 만약 Riot API의 취약점이 존재한 것이 아니었다고 한다면
다음 후보는...
롤 프로그램 내의 직접 취약점
- 만약 신규기능에 대한 것 중 플레이어끼리 직접 패킷을 주고받는 기능이 업데이트 되었다?
ㅡ> 여기에서 IP주소를 알아낼 수도 있다.
노말틱님의 결론
1. 공격방식은 프로그램 자체의 취약점이 아닌 네트워크 대역폭을 공격하는 방식일 것.
2. 네트워크 공격을 위한 IP주소를 탈취한 방법으로는
2-(1) (높은확률로) Riot API의 맹점을 찾아냈을 것이다.
2-(2) 롤의 새로운 version 가운데, 특정 기능의 취약점이 발견되었을 가능성
이를 통해 대상을 특정하여 IP주소를 탈취한 후 네트워크 대역폭에 대한 공격을 강행했다고 보는 것이
현재 외부정보를 통해 추측가능한 가장 합리적인 결론이다.
이상.
'보안_시사' 카테고리의 다른 글
2024 LCK 디도스 사태 모음 ① (0) | 2024.10.30 |
---|