Security | Electron

๐Ÿ’ก Electron ์•ฑ์˜ ๋ณด์•ˆ ๋ฌธ์ œ์— ๋Œ€ํ•ด ๊ฐœ์ธ์ ์ธ ์ดํ•ด๋„๋ฅผ ๋†’์ด๊ณ ์ž ํ˜ผ์ž ๊ณต๋ถ€ํ•˜๋ฉฐ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ๋Š” ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค.

โœ… ์ฝ์–ด๋ณธ ๊ฒฐ๊ณผ, ๋Œ€๋ถ€๋ถ„ ๋””ํดํŠธ๋กœ ๋ณด์•ˆ ๋ฌธ์ œ์— ๋Œ€ํ•ด ํ‹€์–ด๋ง‰๊ณ  ์žˆ๊ณ , ์ฃผ์˜ํ•  ๋งŒํ•˜๊ฑฐ๋‚˜ ์ฐธ๊ณ ํ•  ๋งŒํ•œ ๋ถ€๋ถ„๋“ค์€ ์ œ๋ชฉ์— โญ๏ธ์„ ๋‹ฌ์•„๋’€์Šต๋‹ˆ๋‹ค.

Preface

๋ธŒ๋ผ์šฐ์ €์˜ ๊ฐ•๋ ฅํ•œ ๋ณด์•ˆ์„ฑ์— ์ต์ˆ™ํ•œ ์šฐ๋ฆฌ๋Š”, Electron ์•ฑ์„ ๋งŒ๋“ค ๋•Œ์—๋„ ๋น„์Šทํ•œ ๋ณด์•ˆ์„ฑ์„ ๊ธฐ๋Œ€ํ•œ๋‹ค. ํ•˜์ง€๋งŒ, Electron์€ ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ธŒ๋ผ์šฐ์ € ์œ„๋ณด๋‹ค ํ›จ์”ฌ ๊ฐ•๋ ฅํ•œ ํž˜์„ ๊ฐ€์ง„๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋‹น์‹ ์˜ ํŒŒ์ผ ์‹œ์Šคํ…œ ๋ฐ ์‰˜์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ, ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ์†Œ์Šค์—์„œ ์˜จ ์ž„์˜์˜ ์ปจํ…์ธ ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ์— ๊ฐ๋ณ„ํžˆ ์ฃผ์˜ํ•˜๋ผ. ๋Œ€๋‹ค์ˆ˜์˜ Electron ์•ฑ๋“ค(Atom, Slack, VSCode ๋“ฑ)์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋กœ์ปฌ ์ปจํ…์ธ ๋“ค์„ ๋ณด์—ฌ์ค€๋‹ค.

General Guidelines

์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ์†Œ์Šค๋กœ๋ถ€ํ„ฐ ์ฝ”๋“œ๋ฅผ ๋‹ค์šด๋ฐ›๊ณ  ์ด๋ฅผ ์‹คํ–‰ํ•  ๋•Œ, ๋ณด์•ˆ ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์›น์‚ฌ์ดํŠธ๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  ์‹ถ์œผ ใ„น๋•, BrowserWindow ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•ด๋ผ.

Node.js ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ๋•, ์•ฑ์— ๊ฐ™์ด ํŒจํ‚ค์ง•๋œ ๋กœ์ปฌ ํŒŒ์ผ๋“ค๋งŒ์„ ์‚ฌ์šฉํ•ด๋ผ. nodeIntegration์„ ์ค‘์ง€ํ•˜๊ณ , contextIsolation์„ ์‚ฌ์šฉํ•ด๋ผ. (Default๋กœ ์„ค์ •๋˜์–ด ์žˆ์Œ.)

์ฒดํฌ๋ฆฌ์ŠคํŠธ: ๋ณด์•ˆ์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ์ถ”์ฒœ ์‚ฌํ•ญ

๐Ÿ’ก Electronegativity๋ผ๋Š” ์˜คํ”ˆ ์†Œ์Šค ํˆด๋กœ, misconfigurations์™€ insecure ํŒจํ„ด๋“ค์„ ์ž๋™ํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.

1. Only load secure content(e.g.ย HTTPS)

์•ฑ์— ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์€ ์–ด๋– ํ•œ ๋ฆฌ์†Œ์Šค๋“ , HTTPS์™€ ๊ฐ™์€ ๋ณด์•ˆ ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•ด ๋กœ๋“œ๋˜์–ด์•ผ ํ•œ๋‹ค. HTTP ์“ฐ์ง€ ๋งˆ์…ˆ! HTTPS๋Š” ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•˜๊ณ , ํŠธ๋ž˜ํ”ฝ์„ ์•”ํ˜ธํ™”ํ•œ๋‹ค.

2. Do not enable Node.js integration for remote content

๐Ÿ’ก 5.0.0 ์ดํ›„๋กœ Default

๋ Œ๋”๋Ÿฌ ํ”„๋กœ์„ธ์Šค์—์„œ ์›๊ฒฉ ์ปจํ…์ธ ๋ฅผ ๋กœ๋”ฉํ•  ๋•Œ, Node.js integration ์„ธํŒ…์„ ๋น„ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•œ๋‹ค.

Cross-site-scripting(XSS) ๊ณต๊ฒฉ์€, ๊ณต๊ฒฉ์ž๊ฐ€ ๋ Œ๋”๋Ÿฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฑด๋„ˆ๋›ฐ๊ณ  ์‚ฌ์šฉ์ž์˜ ์ปดํ“จํ„ฐ์—์„œ ์ง์ ‘ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ํ›จ์”ฌ ์œ„ํ—˜ํ•˜๋‹ค.