[AWS] awscli ์„ค์ •

AWS ๊ธฐ๋ฐ˜์˜ ๋ชจ์˜ํ•ดํ‚น์„ ์ง„ํ–‰ํ•˜๋‹ค ๋ณด๋ฉด awscli ์—ฐ๋™์ด ํ•„์š”ํ•ด์ง€๋Š” ์ˆœ๊ฐ„์ด ์˜ต๋‹ˆ๋‹ค. ์ด์ „์— ์ด๋ฏธ ๋“ฑ๋กํ•ด๋‘๊ธด ํ–ˆ๋Š”๋ฐ ์•ก์„ธ์Šค ํ‚ค๋ฅผ ๋ถ„์‹คํ•ด์„œ ๋‹ค์‹œ ์žฌ๋ฐœ๊ธ‰ํ•˜๊ฒŒ ๋˜๋Š” ๋ถˆ์ƒ์‚ฌ๊ฐ€ ์ƒ๊ฒผ๋„ค์š”.. ์—ฌ๋Ÿฌ๋ถ„๋“ค์€ ๋ณด๊ด€ ์ž˜ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.(์•ก์„ธ์Šค ํ‚ค ์žฌ๋ฐœ๊ธ‰๋ฐ›์•˜์œผ๋ฉด ์ด์ „์˜ ํ‚ค๋Š” ๋ฐ”๋กœ ์ œ๊ฑฐํ•˜์ง€ ๋งˆ์‹œ๊ณ  ์ƒˆ๋กœ์šด ํ‚ค์— ๋Œ€ํ•ด ์ถฉ๋ถ„ํžˆ ํ…Œ์ŠคํŠธ ํ›„ ์ฒ˜๋ฆฌํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.) iAM ๊ณ„์ •์˜ access key๋ฅผ ์„ค์ •ํ•˜๊ณ  ".csv ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ"๋ฅผ ํ•ด์„œ ๋ณ„๋„์˜ ๋””๋ ‰ํ† ๋ฆฌ์— ๋ณด๊ด€ํ•ด๋‘์—ˆ์Šต๋‹ˆ๋‹ค. aws ๊ด€๋ฆฌ์ฝ˜์†”์—์„œ ์ƒ์„ฑ๋œ iAM ๊ณ„์ •์— ๋Œ€ํ•œ Access key๋ฅผ csvํ˜•์‹์˜ ํŒŒ์ผ๋กœ ์ถ”์ถœํ•˜์‹œ๋ฉด ์œ„์™€ ๊ฐ™์€ ์ค‘์š”์ •๋ณด๋ฅผ ๋ณ„๋„๋กœ ๋ณด๊ด€ํ•˜์‹ค ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. # apt update # pip install awscli --upgrade aws ์ปค๋งจ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ํ™˜๊ฒฝ์—์„œ..

ETC
OAuth ๋ฐ OpenID์˜ ์ž˜๋ชป๋œ ๋ณด์•ˆ ๊ตฌ์„ฑ

OAuth ๋ž€ ์˜จ๋ผ์ธ ์‡ผํ•‘์ฒ˜๋Ÿผ ๋‹ค์–‘ํ•œ ํฌํ„ธ ์‚ฌ์ดํŠธ์—์„œ ๊ตฌํ˜„๋œ ๋กœ๊ทธ์ธ ๋ฐฉ์‹์„ ๋ณด๋ฉด ๋“ฑ๋ก๋œ ID ๋ฐ ํŒจ์Šค์›Œ๋“œ๋กœ ๊ฐ€์ž…ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ "์†Œ์…œ ๋ฏธ๋””์–ด ๊ณ„์ •"์„ ํ†ตํ•ด ๋กœ๊ทธ์ธํ•˜๋Š” ๋ฐฉ์‹์„ ์ข…์ข… ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. OAuth๋ผ๋Š” ๊ฒƒ์ด ์ƒ๊ธฐ๊ธฐ ์ด์ „์—๋Š” ์›น ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ์ž์˜ ์ด๋ฆ„๊ณผ ์•”ํ˜ธ๋ฅผ ๋“ฑ๋กํ•˜์—ฌ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ์ดํŠธ๋ฅผ ์ด์šฉํ•  ๋•Œ๋งˆ๋‹ค ์‚ฌ์ดํŠธ๋ณ„ ์‚ฌ์šฉ์ž์˜ ์ด๋ฆ„๊ณผ ์•”ํ˜ธ๋ฅผ ์ƒˆ๋กœ ์ง€์ •ํ•ด์ค˜์•ผ ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ณ„๋„์˜ ๊ณ„์ •์„ ๋งŒ๋“ค์ง€ ์•Š๊ณ  ์ธ์ฆ๋ฐ›์€ ํƒ€์‚ฌ ์•ฑ์„ ์ด์šฉํ•ด ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ์ค‘์•™๊ธฐ๊ด€์˜ ํ•„์š”์„ฑ์ด ๋Š๋ผ๊ฒŒ ๋˜์—ˆ๊ณ  ๊ทธ๊ฒƒ์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ์ด OAuth ํ”„๋ ˆ์ž„์›Œํฌ ๋ผ๊ณ  ๋ณด์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์„ ์ด์šฉํ•  ๊ฒฝ์šฐ ์‚ฌ์ดํŠธ๋ฅผ ์ด๋™ํ•  ๋•Œ๋งˆ๋‹ค ํšŒ์›๊ฐ€์ž…, ๊ณ„์ • ์ž…๋ ฅ์„ ํ•˜์ง€ ์•Š๊ณ  ํŠน์ • ์†Œ์…œ๋ฏธ๋””์–ด์˜ ๊ณ„์ • ํ•˜๋‚˜..

WEB
CSTI(Client Side Template Injection) ์ทจ์•ฝ์ 

CSTI ๋ž€? Client Side Template Injection์œผ๋กœ ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํ…œํ”Œ๋ฆฟ์— ์ž„์˜ ๊ตฌ๋ฌธ์„ ์ฃผ์ž…ํ•œ๋‹ค๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ € ์ƒ์—์„œ ์ž…๋ ฅ๋œ ํ…œํ”Œ๋ฆฟ ํ‘œํ˜„์‹์„ ํ”„๋ก ํŠธ ์ธก์—์„œ ์ดํ•ดํ•˜๊ณ  ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค๋Š” ๊ฒƒ์€ ๊ณต๊ฒฉ์ž ๊ด€์ ์—์„œ ํ…œํ”Œ๋ฆฟ ํ‘œํ˜„์‹ + ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ตฌ๋ฌธ ์กฐํ•ฉ์„ ํ†ตํ•ด XSS๋ฅผ ์‹œ๋„ํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” ์ทจ์•ฝ์ ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ XSS ์ทจ์•ฝ์ ์˜ ์˜ํ–ฅ๋„์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ ์˜จ์ „ํžˆ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ตฌ๋ฌธ์œผ๋กœ ์‹คํ–‰์‹œํ‚ค๋Š๋ƒ ํ…œํ”Œ๋ฆฟ ํ‘œํ˜„์‹์— ๋‹ด์•„์„œ ์‹คํ–‰ํ•˜๋Š๋ƒ์˜ ์ฐจ์ด๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๊ณต๊ฒฉ์ž๋Š” ์ƒŒ๋“œ๋ฐ•์Šค์—์„œ ํ—ˆ์šฉ๋˜๋Š” ํ•จ์ˆ˜($eval ์ œ๊ณต)์™€ ๊ฐ์ฒด(toString(), charAt(), trim(), prototype, and constructor)์™€ ํ‘œํ˜„์‹ "{{}}" ๋˜๋Š” "[]"๋ฅผ ํ†ตํ•ด ์ƒŒ๋“œ๋ฐ•์Šค๋ฅผ ..

WEB
๊ธฐ์—… ๋„๋ฉ”์ธ์˜ DMARC ๋ ˆ์ฝ”๋“œ ๋ถ„์„

DMARC ๋ž€? SPF, DKIM ๋ฐ DMARC๋Š” ์ด๋ฉ”์ผ ์ธ์ฆ ํ”„๋กœํ† ์ฝœ๋กœ ํšŒ์‚ฌ์˜ ์ด๋ฉ”์ผ ๋„๋ฉ”์ธ์œผ๋กœ ํ•˜์—ฌ๊ธˆ ์Šคํ‘ธํ•‘, ํ”ผ์‹ฑ๊ณผ ๊ฐ™์€ ์‚ฌ์ด๋ฒ„ ๋ฒ”์ฃ„์— ์‚ฌ์šฉ๋˜์ง€ ์•Š๋„๋ก ์œ ํšจ์„ฑ ์ฒดํฌ๋ฅผ ํ•˜์—ฌ ๊ธฐ์—…์˜ ๋„๋ฉ”์ธ์„ ๋ณดํ˜ธํ•˜๊ณ  ํ’ˆ์งˆ์„ ๊ฐœ์„ ์‹œ์ผœ์ค„ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ, Google, Microsoft, Yahoo๋ฅผ ํฌํ•จํ•œ ์ฃผ์š” ์ด๋ฉ”์ผ ์ œ๊ณต ์—…์ฒด์ธ Paypal, Facebook, Linkedin ๋“ฑ ๊ณผ ํ˜‘๋ ฅํ•˜์—ฌ ์•…์„ฑ ๋ฉ”์ผ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๊ตฌํ˜„ํ•œ ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ž…๋‹ˆ๋‹ค. ์ •์ฑ…์ด ๊ตฌํ˜„๋˜์–ด ์žˆ์„ ๊ฒฝ์šฐ ์ˆ˜์‹  ์ด๋ฉ”์ผ์„ ๊ฒ€์‚ฌ -> ์ด๋ฉ”์ผ ์ธ์ฆ ํ†ต๊ณผ ์‹œ ์ „์†ก -> ํ†ต๊ณผํ•˜์ง€ ๋ชปํ•  ๊ฒฝ์šฐ ๋ ˆ์ฝ”๋“œ์— ํฌํ•จ๋œ ์ง€์นจ์— ๋”ฐ๋ผ ์ด๋ฉ”์ผ ์ „์†ก(none ๋˜๋Š” Approve), ๊ฒฉ๋ฆฌ(Quarnatine), ๊ฑฐ๋ถ€(Reject)๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ DMARC๊ฐ€ ๊ธ‰๋ถ€์ƒํ•œ ์ด..

WEB
[Android] Setcancelable ํ†ตํ•œ ์•ฑ ์ข…๋ฃŒ ๋ง‰๊ธฐ

AlertDialog Dialog(๋‹ค์ด์–ผ๋กœ๊ทธ)๋Š” ๋ง ๊ทธ๋Œ€๋กœ ๋Œ€ํ™” ์ƒ์ž์˜ ๊ฐœ๋…์œผ๋กœ Alert(ํŒ์—…)๋ฅผ ๋„์›Œ ์•ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ ์ถ”๊ฐ€ ์ž…๋ ฅ์„ ๋ฐ›๊ฑฐ๋‚˜ ๋‹ค์Œ ํ–‰์œ„(Yes, No, Cancel)๋ฅผ ๊ฒฐ์ •์‹œํ‚ค๋Š” ์šฉ๋„๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ฉ”์‹œ์ง€ ์ฐฝ์— ์‚ฌ์šฉ์ž๊ฐ€ ์‘๋‹ต์„ ํ•˜์ง€ ์•Š์œผ๋ฉด ํ™”๋ฉด์— ์‚ฌ๋ผ์ง€์ง€ ์•Š๊ณ  ๊ณ„์† ๋Œ€๊ธฐํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. AlertDialog์—๋Š” ์‚ฌ์šฉ๋˜๋Š” ์š”์†Œ๋“ค Title: ๋Œ€ํ™”์ƒ์ž์˜ ์ œ๋ชฉ Message: ๋Œ€ํ™”์ƒ์ž๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•œ ๋‚ด์šฉ Positive Button: ์‚ฌ์šฉ์ž์˜ ๊ธ์ •์ ์ธ ๋ฐ˜์‘์„ ์˜๋ฏธ(Yes, ๋„ค, ํ™•์ธ) Negative Button: ์‚ฌ์šฉ์ž์˜ ๋ถ€์ •์ ์ธ ๋ฐ˜์‘์„ ์˜๋ฏธ(No, Cancel, ์ทจ์†Œ) Netural Button: ๊ธ์ • ๋˜๋Š” ๋ถ€์ •๋„ ์•„๋‹Œ ๋ฐ˜์‘์„ ์˜๋ฏธ(Cancel, Remind Later ์ผ๋ฐ˜์ ์œผ..

MOBILE
Log4j ์ทจ์•ฝ์ (CVE-2021-44228)

๊ฐœ์š” 12์›” 10์ผ๊ฒฝ ์นœ๊ตฌ๋“ค๊ณผ ์ˆ ์ง‘์—์„œ ์กฐ์ดํ•˜๊ฒŒ ์ˆ  ํ•œ์ž” ํ•˜๊ณ  ์žˆ์„ ๋•Œ ๋‹ค์–‘ํ•œ ํฌํ„ธ์‚ฌ์ดํŠธ์—์„œ ๋ณด์•ˆ์‚ฌ๊ณ ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค๋Š” ๊ธฐ์‚ฌ๋ฅผ ์ ‘ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. CVE-2021-44228(JNDI Injection) ๋„˜๋ฒ„๋ฅผ ๋ถ€์—ฌ๋ฐ›์€ log4j ์ทจ์•ฝ์ ์€ Apache์˜ "Log For JAVA"์ด๋ฆ„์„ ๊ฐ€์ง„ ๋ง ๊ทธ๋Œ€๋กœ JAVA ๊ธฐ๋ฐ˜ ๋กœ๊น… ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ๊ฐœ๋ฐœ์ž๋“ค์ด ๋””๋ฒ„๊ทธ ์šฉ๋„๋กœ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๋งŒํผ ๊ณต๊ฒฉ์— ํฌ์ƒ๋  ์ˆ˜ ์žˆ๋Š” ๋ฒ”์œ„๊ฐ€ ๋„ˆ๋ฌด ๋„“์Šต๋‹ˆ๋‹ค. ๊ตญ๋‚ด ์ „์ž์ •๋ถ€ํ‘œ์ค€ ํ”„๋ ˆ์ž„์›Œํฌ์˜ 3.1 ~ 3.10 ๋ฒ„์ „์—์„œ log4j 2.0 ~ 2.12.1์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๋งŒํผ ํ•ด์™ธ/๊ตญ๋‚ด๋ฅผ ๊ฐ€๋ฆฌ์ง€ ์•Š๊ณ  ์—ฌ๋Ÿฌ ๊ฐœ๋ฐœ์ž, ๋ณด์•ˆ๋‹ด๋‹น์ž, ์—”์ง€๋‹ˆ์–ด๋ถ„๋“ค์ด ๋งŽ์€ ์ˆ˜๊ณ ๋ฅผ ํ•ด์ฃผ์…จ์„ ๊ฒƒ์œผ๋กœ ํŒ๋‹จ๋ฉ๋‹ˆ๋‹ค. ์ „์ž์ •๋ถ€ ํ”„๋ ˆ์ž„์›Œํฌ: https://www.egovframe.go...

WEB