Apex大会のハッキングの件について一番最悪なシナリオを考えてみる

# はじめに
<!-- 発端や概要を記載 -->
FPSゲーム「Apex Legends(エーペックスレジェンズ)」を用いて実施されている世界大会「Apex Legends Global Series(ALGS)」の試合中、選手のプレイ環境が突如チートによって乗っ取られたと思われる事象が発生した。

ハッカーによって選手の使用しているPCにRCE（リモートコードエグゼキューション）という脆弱性（注１）を悪用してチートツールが注入された疑惑が出ている。

Apexではチート対策ソフトとしてEasyAntiCheat（以下EAC）というシステムが使われている
Apex側に脆弱性があったのかEAC側に脆弱性があったのかはまだ分かっていない。

この件について私はX（旧Twitter）でこのように述べた
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3740206/bbd4ec06-51a8-88cf-2d57-786add80755a.png)


私は、過剰に不安を煽るようなことは本来好きではないのだが、RCEという脆弱性について一般の方にも理解を深めてもらうためにもあえて一番最悪なシナリオを考えていこうと思う。
そして、リスク管理という概念についても考えてもらいたいと思う

（注１）ここで言う脆弱性とは、コンピュータシステムにおいてセキュリティ面で弱いところやハッキング攻撃の手助けをしてしまうようなバグのことを言う

# 目次
<!-- タイトルとアンカー名を編集 -->
1. [RCEとは](#rceとは)
1. [一番最悪なシナリオを考えてみる](#一番最悪なシナリオを考えてみる)
1. [まとめ](#まとめ)

<!-- 各チャプター -->
<a id="#Chapter1"></a>
# RCEとは
まず、一般の方はRCEという言葉自体、聞くのが初めてという人も多いだろう。
RCEは「Remote Code Execution」の頭文字を取った略称だ。

攻撃者からターゲットのコンピューターへ任意のコマンドやプログラムを実行できてしまうという脆弱性のことである（下図参照）
![Screenshot 2024-03-18 23-03-04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3740206/7fae4970-9769-070a-c23b-8de318e95235.png)

悪い人がコマンドを自由に動作させることができるというのは実にマズイ
というのもパソコンというのは、コマンドさえ動かせてしまえばなんだってできるのだ

【ちょっと宣伝】実際に攻撃者からターゲットマシンへコマンドを送り、操作する動画をYoutubeにあげているので興味があれば見てもらいたい
[Youtube-パソコンをハッキングしてみた](https://youtu.be/E3xPvst71mc?si=oHLo3kWy-bMWIY_h)

動画では、ターゲットマシン上で勝手に私の動画を再生させるというしょーもないことをやっているが、
あなたのパソコンに保存されている個人情報や、使ってるアカウントの情報や銀行＆クレジットカードなどの金融情報などを盗み見ることだって容易にできる

とにかくRCEという脆弱性を悪用された場合、あなたがコンピュータで出来ることは攻撃者も可能になってしまう
ましてや、RCEの脆弱性を悪用するほどの攻撃者であればあなた以上にあなたのパソコンを使いこなせてしまうだろう

また、別の犯罪のための踏み台として利用されてしまうかもしれない

ここまでで、RCEというものの概要とヤバさがざっくりと理解して頂けただろうか。

<a id="#Chapter2"></a>
# 一番最悪なシナリオを考えてみる

話を今回の事件に戻そう
冒頭に述べたように
この記事を執筆中の現在(2024/03/18)ではApex側とEAC側のどちらに脆弱性があったのかは分かっていない。

一番最悪シナリオはEAC側にRCEがあった場合である

というのもEACはApexだけではなく、他の様々なオンラインゲームに使用されているため被害や影響範囲が大きくなるためである
以下はEACが使われているソフトの一部だ（引用：Game*Spark）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3740206/0335631f-2aff-e56a-4d7c-cf20bec33a56.png)
ポストで述べたようにVRChatもEACを使っている

つまり、この最悪なシナリオではEACが使われている膨大なゲームのうちどれか1つでも自分がインストールしていればRCEの被害にあう可能性があるということになる

また、前の章でコマンドが動かせればなんでもできると言ったが、実は一部嘘をついていた
というのもRCEの脆弱性があっても任意のコードを実行できない場合があるのだ
今から実際にお見せしよう

機密情報が書かれた「Confidential_Informaition.txt」を用意した
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3740206/a5c8343a-f5fa-a8cb-2728-cb1c6f925fc1.png)

ファイルの中身を見るには「cat」というコマンドを実行すれば本来は中身を見ることができるが
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3740206/6830574d-0ef5-08e9-a1e3-0e9aceda39a3.png)
このように許可がありませんと言われて中身を見ることが出来ない

しかし以下の画像では同じコマンドを打ってるのにも関わらず機密情報ファイルの中身を見ることができている
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3740206/f2c02557-7ad2-c3d4-9639-1bd14f86f77c.png)


この2つの違いは、コマンドを実行する「ユーザーのレベル」である

コンピュータにはいろんなユーザーアカウントが存在するが大きく2つのレベルがあると思ってもらいたい
・一般ユーザー
・特権ユーザー

よく見ると1回目のコマンドではユーザーが「gaku」であるが2回目のコマンドでは「root」となっているのが分かるだろう
gakuは一般ユーザーで
rootは特権ユーザーである

一般ユーザーはコマンドの実行等に一部制限があったりするが、特権ユーザーはなんでも自由にいじくり回したり、覗き見たりが可能である

そして、RCEという脆弱性を悪用した場合多くの場合は最初は一般ユーザーの権限でしかコマンドの実行が出来ない

つまり、自由にいじくり回せない可能性があるのだ

では、なぜ私がこうも恐れているのか？
その原因が以下である
[Epic Games Easy Anti-Cheat 4.0 - Local Privilege Escalation](https://www.exploit-db.com/exploits/49841)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3740206/cfd964a2-e828-da38-575e-35d6ec184982.png)

これは過去のEACの脆弱性について書かれたものである
実際には大きな影響があったわけではないのだが、ここで注目してほしいのは「Local Privilege Escalation」というものだ

これも脆弱性のうちの一つなのだが、どういうものかというと一般ユーザーから特権ユーザーに昇格できてしまうという脆弱性である

現在のバージョンではもちろん修正されている。

しかし我々のような脆弱性診断をやってる人は、一度修正したはずの脆弱性もちょこっとだけ攻撃手法を変えると再度発現させることが出来た経験がある人も多いだろう

この「Local Privilege Escalation」が出来てしまった場合が、考えられる一番の最悪のシナリオである

これは前述したRCEと組み合わせると「遠隔地から本当に好き勝手ターゲットコンピュータをいじくり回せる」権限を得ることが出来てしまう

# まとめ
いくつか状況による分岐点があったが一番最悪なシナリオでは以下のルートをたどる

「EAC」に「RCE」の脆弱性がある
　　　　↓
「Local Privilege Escalation」の脆弱性をを修正しきれていない

この最悪なシナリオの場合
「EACが使われているゲームを持っている数多くのユーザーの、PCを丸ごと全部好き勝手にし放題となる」
あなたの個人情報、金融情報、etc……取り放題パラダイスである

今回は、極端に一番最悪なシナリオを考えてみたが、可能性は0%ではない
自分の大切な個人情報や金融情報、PC等の資産を犯罪に利用されるリスクを追ってまでオンラインゲームを今プレイする必要があるのか

セキュリティの専門家としてアドバイスをするとこれには実は正解は無い
・被害を受ける可能性が低いと考えたので変わらずにプレイする
・被害を受けた場合のダメージが大きいのでプレイをやめておく

これは個人の判断で自由に決めていいと思っている
あくまで私は、後者の意見を持っているためにX（旧Twitter）にてあのように投稿をさせて貰った

この記事を最後まで読んでくれた貴方にも
もう一度じっくり考えてみてほしい