1. OWASP ๋ถ๋ฅ
๐ OWASP Mobile Top 10 (2025)
- ๋ถ๋ฅ ๋ฒํธ: M7
- ์ทจ์ฝ์ ๋ช ์นญ: Insufficient Binary Protections
- ํ๊ธ ๋ช ์นญ: ๋ถ์ ์ ํ ๋ฐ์ด๋๋ฆฌ ๋ณดํธ
๐ ๋ถ๋ฅ ์ค๋ช
Insufficient Binary Protections๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ด๋๋ฆฌ์
๋๋ ํ, ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฆ, ๋๋ฒ๊น ๋ฐฉ์ง, ๋ฆฌ๋ฒ์ค ์์ง๋์ด๋ง ๋ฐฉ์ง ๊ธฐ๋ฒ์ด
์ ์ฉ๋์ง ์์ ๊ณต๊ฒฉ์๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ๋ด๋ถ ๊ตฌ์กฐ ๋ฐ ๋ก์ง์
์ฝ๊ฒ ๋ถ์ํ ์ ์๋ ์ทจ์ฝ์ ์ ์๋ฏธํ๋ค.
2. ์ทจ์ฝ์ ์์ธ (Root Cause)
๋ณธ ์ ํ๋ฆฌ์ผ์ด์ ์์ M7 ์ทจ์ฝ์ ์ด ๋ฐ์ํ ์์ธ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ด๋๋ฆฌ์ ์ฝ๋ ๋๋ ํ(ProGuard/R8) ๋ฏธ์ ์ฉ
- ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฆ, ๋ฃจํ /๋๋ฒ๊น ํ์ง ๋ฑ ๋ฐ์ด๋๋ฆฌ ๋ณดํธ ๊ธฐ๋ฒ ๋ถ์ฌ
- React Native ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์
์์๋
JavaScript ์คํ ๊ตฌ์กฐ ๋ฐ ์ด๊ธฐํ ๋ก์ง์ด ํด๋ผ์ด์ธํธ ์ฝ๋์ ๊ทธ๋๋ก ํฌํจ - JavaScript ๋ฒ๋ค์ ์ํธ๋ฆฌ ํฌ์ธํธ๊ฐ ํ๋ฌธ ๋ฌธ์์ด ํํ๋ก ๋ ธ์ถ
- BuildConfig, ReactBuildConfig ๋ฑ ๋น๋ ๋ฐ ์คํ ํ๊ฒฝ ์ ๋ณด๊ฐ ๋ณดํธ ์์ด ๋ ธ์ถ
์ด๋ก ์ธํด ๊ณต๊ฒฉ์๋ ๋ณ๋์ ์ฐํ ๊ณผ์ ์์ด
์ ์ ๋ถ์ ๋๊ตฌ๋ฅผ ํตํด ์ ํ๋ฆฌ์ผ์ด์
์ ์ ์ฒด ๊ตฌ์กฐ๋ฅผ ๋ณต์ํ ์ ์๋ค.
3. ์ทจ์ฝ์ ์ค๋ช (Description)
ํด๋น APK ํ์ผ์ ๋์ปดํ์ผํ ๊ฒฐ๊ณผ,
์ ํ๋ฆฌ์ผ์ด์
์ ๋ณ๋์ ๋ณดํธ ๊ธฐ๋ฒ ์์ด ์ ์ ๋ถ์ ๋๊ตฌ(jadx ๋ฑ)๋ฅผ ํตํด
์ ์ฒด ํจํค์ง ๊ตฌ์กฐ ๋ฐ ๋ด๋ถ ํด๋์ค๊ฐ ์ ์์ ์ผ๋ก ๋ณต์๋์๋ค.

MainApplication ํด๋์ค ๋ถ์ ๊ฒฐ๊ณผ,
๋ณธ ์ ํ๋ฆฌ์ผ์ด์
์ React Native ๊ธฐ๋ฐ์ผ๋ก ๊ฐ๋ฐ๋์์์ ํ์ธํ์์ผ๋ฉฐ,
ReactHost ์ด๊ธฐํ ๋ก์ง์ด ํด๋ผ์ด์ธํธ ์ฝ๋์ ํฌํจ๋์ด ์์ด
JavaScript ์คํ ๊ตฌ์กฐ ๋ฐ ์ ํ๋ฆฌ์ผ์ด์
์ด๊ธฐํ ํ๋ฆ์ด ๋ช
ํํ ๋
ธ์ถ๋์ด ์์๋ค.


๋ํ JavaScript ๋ฒ๋ค์ ์ํธ๋ฆฌ ํฌ์ธํธ(index.android.bundle)๊ฐ
ํด๋ผ์ด์ธํธ ์ฝ๋์ ํ๋ฌธ์ผ๋ก ํฌํจ๋์ด ์์ด,
๊ณต๊ฒฉ์๋ ํด๋น ์ ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก JavaScript ๋ฒ๋ค์ ์ถ์ถ·๋ถ์ํ์ฌ
๋น์ฆ๋์ค ๋ก์ง ๋ฐ ์๋ฒ ํต์ ํ๋ฆ์ ํ์
ํ ์ ์๋ค.

์ ์ ๋ถ์ ๊ฒฐ๊ณผ, ์ ํ๋ฆฌ์ผ์ด์
์ release ๋น๋๋ก ๋ฐฐํฌ๋์์ผ๋
BuildConfig ํด๋์ค๊ฐ ๊ทธ๋๋ก ๋
ธ์ถ๋์ด ๋น๋ ํ์
, ๋๋ฒ๊ทธ ์ฌ๋ถ,
React Native ์คํ ํ๊ฒฝ(Hermes, New Architecture ๋ฑ)์ด
๊ณต๊ฒฉ์์๊ฒ ๋ช
ํํ ์๋ณ๋์๋ค.
์ด๋ ์ด์ ํ๊ฒฝ์์๋ ๋ด๋ถ ์คํ ์ ๋ณด๊ฐ ๋ณดํธ๋์ง ์์ ์ํ๋ก ๋
ธ์ถ๋ ๊ฒ์ผ๋ก,
Reverse Engineering ๊ณต๊ฒฉ์ ์ฉ์ดํ๊ฒ ํ๋ ์ทจ์ฝํ ๊ตฌ์ฑ์ด๋ค.

์ ์ ๋ถ์ ๊ณผ์ ์์ React Native JavaScript ๋ฒ๋ค ๋ด๋ถ์
๋ค์์ ๋๋ฒ๊ทธ ๋ฉ์์ง ๋ฐ ๋ด๋ถ ์๋ฌ ๋ฌธ์์ด์ด ํ๋ฌธ์ผ๋ก ํฌํจ๋์ด ์์์ ํ์ธํ์๋ค.
๋ํ API ํธ์ถ๋ก ์ถ์ ๋๋ ๋ด๋ถ ์๋ฒ ์ฃผ์(http://192.168.16.50/api)๊ฐ
ํด๋ผ์ด์ธํธ ๋ฒ๋ค์ ํ๋์ฝ๋ฉ๋์ด ๋
ธ์ถ๋ ๊ฒ์ ํ์ธํ์๋ค.
์ด๋ JavaScript ๋ฒ๋ค์ ๋ํ ๋๋
ํ ๋๋ ๋ณดํธ ์กฐ์น๊ฐ ์ ์ฉ๋์ง ์์์์ ์๋ฏธํ๋ฉฐ,
๊ณต๊ฒฉ์๊ฐ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ด๋ถ ํต์ ๊ตฌ์กฐ ๋ฐ ์๋ฒ ํ๊ฒฝ์ ์ถ๋ก ํ๋ ๋ฐ
ํ์ํ ์ ๋ณด๋ฅผ ์์ฝ๊ฒ ํ๋ํ ์ ์๋ ์ํ์ด๋ค.
์ด๋ฌํ ์ ๋ณด ๋
ธ์ถ์ Reverse Engineering ๊ณต๊ฒฉ์ ์ง์
์ฅ๋ฒฝ์ ๋ฎ์ถ๋ ์์๋ก ์์ฉํ๋ค.

4. ๋ณด์ ์ํฅ (Security Impact)
๋ณธ ์ทจ์ฝ์ ์ด ์ ์ฉ๋ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ ๋ณด์ ์ํ์ด ๋ฐ์ํ ์ ์๋ค.
- ์ ํ๋ฆฌ์ผ์ด์
๋ด๋ถ ๋ก์ง ๋ฐ ๊ตฌ์กฐ ๋ถ์์ ํตํ
๋น์ฆ๋์ค ๋ก์ง ์ดํด ๋ฐ ์ฐํ ๊ฐ๋ฅ์ฑ ์ฆ๊ฐ - ์๋ฒ API ํธ์ถ ํ๋ฆ, ์์ฒญ ํ๋ผ๋ฏธํฐ ๊ตฌ์กฐ ์๋ณ๋ก ์ธํ
์ถ๊ฐ์ ์ธ ์๋ฒ ์ธก ๊ณต๊ฒฉ(M3, M6 ๋ฑ) ๊ฐ๋ฅ์ฑ ์ฆ๊ฐ - ์ธ์ฆ, ์์ฝ, ์ฌ์ฉ์ ์ฒ๋ฆฌ ๋ก์ง ๋ถ์์ ํตํ
๊ถํ ์ฐํ ๋ฐ ๋น์ ์ ์์ฒญ ์๋ ๊ฐ๋ฅ - ์ ํ๋ฆฌ์ผ์ด์
๋ณ์กฐ ๋ฐ ์
์ฑ ์ฝ๋ ์ฝ์
๋ฑ
2์ฐจ ๊ณต๊ฒฉ(M8: Code Tampering)์ผ๋ก์ ํ์ฅ ๊ฐ๋ฅ์ฑ
์ฆ, ๋ณธ ์ทจ์ฝ์ ์ ๋จ๋
์ผ๋ก๋ ์ํํ์ง๋ง
๋ค๋ฅธ ๋ชจ๋ฐ์ผ ์ทจ์ฝ์ ์ผ๋ก ํ์ฅ๋๋ ๊ณต๊ฒฉ์ ์ถ๋ฐ์ ์ด ๋ ์ ์๋ค.
5. ๋์ ๋ฐฉ์ (Mitigation)
๋ณธ ์ทจ์ฝ์ ์ ๋ํ ๋์ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ๋ค.
๐ 1) ๋ฐ์ด๋๋ฆฌ ๋ณดํธ ๊ฐํ
- ProGuard ๋๋ R8์ ํ์ฉํ ์ฝ๋ ๋๋ ํ ์ ์ฉ
- ํด๋์ค๋ช , ๋ฉ์๋๋ช , ๋ฌธ์์ด ์์ ๋ณดํธ
๐ 2) ๋ฌด๊ฒฐ์ฑ ๋ฐ ์๋ณ์กฐ ๋ฐฉ์ง
- ์ ํ๋ฆฌ์ผ์ด์ ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฆ ๋ก์ง ์ ์ฉ
- APK ๋ณ์กฐ ์ฌ๋ถ ํ์ง ๊ธฐ๋ฅ ๊ตฌํ
๐ 3) ๋๋ฒ๊น ๋ฐ ๋ถ์ ๋ฐฉ์ง
- ๋๋ฒ๊น ํ์ง ๋ฐ ์ฐจ๋จ ๋ก์ง ์ ์ฉ
- ๋ฃจํ /์๋ฎฌ๋ ์ดํฐ ํ๊ฒฝ ํ์ง ๊ธฐ๋ฅ ์ ์ฉ
๐ 4) React Native ๋ณด์ ๊ฐํ
- JavaScript ๋ฒ๋ค ๋ณดํธ(์ํธํ, ์๋ฒ ์ ๋ฌ ๋ฐฉ์ ๊ณ ๋ ค)
- ์คํ ํ๊ฒฝ ์ ๋ณด(BuildConfig ๋ฑ) ๋ ธ์ถ ์ต์ํ
- ๋๋ฒ๊ทธ ๊ด๋ จ ์ค์ ์ ์ด์ ํ๊ฒฝ ์ ๊ฑฐ
๐ 5) ๋ณด์ ๋น๋ ์ ์ฑ ์๋ฆฝ
- ์ด์ ๋น๋ ์ ๋ณด์ ์ค์ ๊ฒ์ฆ ํ๋ก์ธ์ค ์ ์ฉ
- ๋ณด์ ํ ์คํธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ํ ๋ฐฐํฌ ์ ์ฐจ ๊ฐํ