728x90
๋ฐ˜์‘ํ˜•

IOS ์•ฑ ์ทจ์•ฝ์  ์ ๊ฒ€ 2ํŽธ

ํ•ด๋‹น ๋ธ”๋กœ๊ทธ๋Š” ํ•ดํ‚น ๋ฐ ๋ณด์•ˆ ๋ธ”๋กœ๊ทธ๋กœ ๊ณต๋ถ€ ๋ฐ ์—ฐ๊ตฌ์šฉ์œผ๋กœ ์ž‘์„ฑ๋˜์–ด์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์˜ ๋‚ด์šฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ดํ‚น ์‹œ๋„ ๋ฐ ์‹ค์ œ ๊ณต๊ฒฉ์„ ์‹œ๋„ํ•˜์—ฌ ์ผ์–ด๋‚˜๋Š” ๋ชจ๋“  ์ฑ…์ž„์€ ๋ณธ์ธ(๋”ฐ๋ผํ•œ์ž)์—๊ฒŒ ์žˆ์Œ์„ ์•Œ๋ ค๋“œ๋ฆฌ๋ฉฐ, ๊ธ€์“ด์ด๋Š” ์•„๋ฌด๋Ÿฐ ์ฑ…์ž„์„ ์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ผญ ๊ณต๋ถ€ ๋ฐ ์—ฐ๊ตฌ์šฉ์œผ๋กœ๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํ™๋ณด๊ธ€ ์—ฌ์„ฑ ์˜ท์€ ๋Š˜๋ด„ ์ŠคํŠœ๋””์˜ค์—์„œ!!! https://always-spring.co.kr/ ๋Š˜๋ด„์ŠคํŠœ๋””์˜ค ๋‹น์‹ ์˜ ์‚ถ์— ์–ธ์ œ๋‚˜ ๋ด„์ฒ˜๋Ÿผ ํ™œ๊ธฐ์ฐธ์„ ๋”ํ•ด์ฃผ๋Š” ๋Š˜๋ด„์ŠคํŠœ๋””์˜ค always-spring.co.kr 2023.05.23 - [Security Study/System] - IOS ์•ฑ ์ทจ์•ฝ์  ์ ๊ฒ€ IOS ์•ฑ ์ทจ์•ฝ์  ์ ๊ฒ€ ํ•ด๋‹น ๋ธ”๋กœ๊ทธ๋Š” ํ•ดํ‚น ๋ฐ ๋ณด์•ˆ ๋ธ”๋กœ๊ทธ๋กœ ๊ณต๋ถ€ ๋ฐ ์—ฐ๊ตฌ์šฉ์œผ๋กœ ์ž‘์„ฑ๋˜์–ด์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์˜ ๋‚ด์šฉ์„..

IOS ์•ฑ ์ทจ์•ฝ์  ์ ๊ฒ€

ํ•ด๋‹น ๋ธ”๋กœ๊ทธ๋Š” ํ•ดํ‚น ๋ฐ ๋ณด์•ˆ ๋ธ”๋กœ๊ทธ๋กœ ๊ณต๋ถ€ ๋ฐ ์—ฐ๊ตฌ์šฉ์œผ๋กœ ์ž‘์„ฑ๋˜์–ด์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์˜ ๋‚ด์šฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ดํ‚น ์‹œ๋„ ๋ฐ ์‹ค์ œ ๊ณต๊ฒฉ์„ ์‹œ๋„ํ•˜์—ฌ ์ผ์–ด๋‚˜๋Š” ๋ชจ๋“  ์ฑ…์ž„์€ ๋ณธ์ธ(๋”ฐ๋ผํ•œ์ž)์—๊ฒŒ ์žˆ์Œ์„ ์•Œ๋ ค๋“œ๋ฆฌ๋ฉฐ, ๊ธ€์“ด์ด๋Š” ์•„๋ฌด๋Ÿฐ ์ฑ…์ž„์„ ์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ผญ ๊ณต๋ถ€ ๋ฐ ์—ฐ๊ตฌ์šฉ์œผ๋กœ๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํ™๋ณด๊ธ€ https://always-spring.co.kr/ ๋Š˜๋ด„์ŠคํŠœ๋””์˜ค ๋‹น์‹ ์˜ ์‚ถ์— ์–ธ์ œ๋‚˜ ๋ด„์ฒ˜๋Ÿผ ํ™œ๊ธฐ์ฐธ์„ ๋”ํ•ด์ฃผ๋Š” ๋Š˜๋ด„์ŠคํŠœ๋””์˜ค always-spring.co.kr ๊ฐœ์š” android ์™€ ๋‹ค๋ฅด๊ฒŒ ios์˜ ์•ฑ ์ทจ์•ฝ์  ์ง„๋‹จ์€ ์กฐ๊ธˆ์˜ ์–ด๋ ค์›€์ด ์กด์žฌํ•˜๋Š” ๊ฒƒ๊ฐ™๋‹ค. ๊ทธ๋ž˜์„œ ํ•˜๋‚˜ํ•˜๋‚˜ ๋งจ๋•…์—์„œ ์‹œ์ž‘์„ ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. apk์˜ ๊ฒฝ์šฐ dex2jar๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ถ„์„์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ios์˜ ๊ฒฝ์šฐ apk์ฒ˜๋Ÿผ ๋ถ„์„์ด ๋ถˆ๊ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์—..

chainalysis๋ฅผ ํ†ตํ•œ ๊ฐ€์ƒํ™”ํ ์ถ”์  ๊ธฐ๋ณธ

์ˆœ์„œ ๊ฐ€์ƒ์ž์‚ฐ(Cryptocurrency)์˜ ๊ธฐ๋ณธ ํŠน์ง• ์ดํ•ด ์ฃผ์š” ์ฃผ์ฒด ๋ฐ ์‚ฌ์šฉ ์‚ฌ๋ก€ ํŒŒ์•… ์˜ฌ๋ฐ”๋ฅธ ์šฉ์–ด ์‚ฌ์šฉ ์ง€๊ฐ‘. ์ฃผ์†Œ ๋ฐ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ตฌ๋ณ„ ๋ธ”๋ก์ฒด์ธ๊ณผ ๋น„ํŠธ์ฝ”์ธ ๋ธ”๋ก์ฒด์ธ์ด๋ž€? → ์‚ฌํ† ์‹œ ๋‚˜์นด๋ชจํ† ๊ฐ€ ๊ณ ์•ˆํ•œ ๊ฑฐ๋ž˜๋‚ด์—ญ ๊ธฐ๋ก ๊ณผ์ •์ด ์—ฐ๋Œ€์ˆœ์œผ๋กœ ์žฅ๋ถ€๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ์— ๋น„ํŠธ์ฝ”์ธ ์žฅ๋ถ€๋ฅผ '์‹œ๊ฐ„ ์‚ฌ์Šฌ'์ด๋ผ ๋ถ€๋ฆ„ ๊ฐœ๋ฐฉํ˜•(ํƒˆ์ค‘์•™ํ˜•/๋ฌดํ—ˆ๊ฐ€ํ˜•) ↔ ํ์‡„ํ˜•(์ค‘์•™์ง‘์ค‘ํ˜•/ํ—ˆ๊ฐ€ํ˜•)๊ฑฐ๋ž˜ ๋‚ด์—ญ ๊ณต๊ฐœ ↔ ๊ฑฐ๋ž˜๋‚ด์—ญ์€ ๊ตฌ์„ฑ์›์—๊ฒŒ๋งŒ ๋ณด์ž„ ๋ˆ„๊ตฌ๋‚˜ ์ ‘์†๊ฐ€๋Šฅ ↔ ๊ตฌ์„ฑ์›์„ ์œ„ํ•œ ํ์‡„ํ˜• ๋„คํŠธ์›Œํฌ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋ธ”๋ก์ฒด์ธ → ๊ฐœ๋ฐฉํ˜•๊ณผ ํ์‡„ํ˜•์˜ ์ค‘๊ฐ„ ⇒ ๋ฆฌํ”Œ์ด ๋Œ€ํ‘œ์ ์ธ ์˜ˆ → ๊ฑฐ๋ž˜๋‚ด์—ญ์ด ๊ณต๊ฐœ๋˜์–ด์žˆ์œผ๋‚˜ ํ์‡„ํ˜• ๋„คํŠธ์›Œํฌ์™€ ์œ„๊ณ„ํ˜• ํ˜น์€ ์ปจ์†Œ์‹œ์—„ ํ˜•ํƒœ์˜ ์šด์˜ ๋น„ํŠธ์ฝ”์ธ์ด๋ž€?→ ์ฒซ ๋ฒˆ์จฐ ๋ธ”๋ก์€ 09๋…„ 1์›” 3์ผ์— ์ฑ„๊ตด๋จ→ ์ผ๋ฐ˜์ ์œผ๋กœ ์ธ์šฉ๋ฌธ์€ 08๋…„ ๊ธ€๋กœ๋ฒŒ ๊ธˆ์œต ์œ„๊ธฐ๋ฅผ ์ด‰๋ฐœ..

[์•”ํ˜ธํ•™] ๋Œ€์นญํ‚ค ์•”ํ˜ธ P-๋ฐ•์Šค

ํ˜„๋Œ€๋ธ”๋ก ์•”ํ˜ธ -> ํ™•์‚ฐ๊ณผ ํ˜ผ๋ˆ๊ณผ ๊ฐ™์€ ์„ฑ์งˆ์„ ๋งŒ์กฑ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์ „์น˜์š”์†Œ(P-๋ฐ•์Šค)์™€ ์น˜ํ™˜์š”์†Œ(S-๋ฐ•์Šค)์™€ ๊ทธ ๋ฐ–์˜ ๊ตฌ์„ฑ์š”์†Œ ๊ฒฐํ•ฉ P-๋ฐ•์Šค => ๋ฌธ์ž ๋‹จ์œ„๋กœ ์•”ํ˜ธํ™”๋ฅผ ํ–ˆ๋˜ ๊ณ ์ „์ „์น˜ ์•”ํ˜ธ๋ฅผ ๋ณ‘๋ ฌ์ ์œผ๋กœ ์ˆ˜ํ–‰ ์ข…๋ฅ˜ : ๋‹จ์ˆœ P-๋ฐ•์Šค ์ถ•์†Œ P-๋ฐ•์Šค ํ™•์žฅ P-๋ฐ•์Šค๊ฐ€ ์กด์žฌ ์ถ•์†Œ P-๋ฐ•์Šค : n๋น„ํŠธ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ m๋น„ํŠธ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” P-๋ฐ•์Šค๋กœ์„œ n>m์„ ๋งŒ์กฑ / ์ž…๋ ฅ๋น„ํŠธ ์ค‘ ํŠน์ • ๋น„ํŠธ๋Š” ์†Œ์‹ค๋˜์–ด ์ถœ๋ ฅX ํ™•์žฅ P-๋ฐ•์Šค : n๋น„ํŠธ๋ฅผ ๋ฐ›์•„ m๋น„ํŠธ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” P-๋ฐ•์Šค์ด๋ฉฐ, nm ์กด์žฌX ํ™•์žฅ P-๋ฐ•์Šค n

์•”ํ˜ธํ•™

๊ณ ๋Œ€ ์•”ํ˜ธ - ์•”ํ˜ธ๋ฌธ์—์„œ ์›๋ฌธ์„ ์œ ์ถ”ํ•  ์ˆ˜ ์žˆ๋‹ค.ํ˜„๋Œ€ ์•”ํ˜ธ - ๊ณ ๋Œ€์•”ํ˜ธ์™€ ๋ฐ˜๋Œ€๋กœ ์•”ํ˜ธ๋ฌธ์—์„œ ์›๋ฌธ์„ ์œ ์ถ”ํ•  ์ˆ˜๊ฐ€ ์—†๋‹ค.์ด์œ ๋Š” ์š”์ฆ˜์˜ ํ˜„๋Œ€์•”ํ˜ธ๋Š” ์ˆ˜ํ•™์„ ์›๋ฆฌ๋กœ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ํ˜„๋Œ€ ์•”ํ˜ธ์–‘๋ฐฉํ–ฅ ์•”ํ˜ธํ™” - ์•”ํ˜ธ๋ฌธ์„ ๋‹ค์‹œ ํ‰๋ฌธ์œผ๋กœ ๋ณต์›์„ ํ• ์ˆ˜์žˆ๋‹ค. - ๊ฐ€์—ญ์  - Encrytion๋Œ€์นญํ‚น ์•”ํ˜ธ vs ๊ณต๊ฐœํ‚ค ์•”ํ˜ธ(= ๋น„๋Œ€์นญํ‚ค ์•”ํ˜ธ)1) ๋Œ€์นญํ‚ค ์•”ํ˜ธ - ์•”ํ˜ธํ‚ค์™€ ๋ณตํ˜ธํ™” ํ‚ค๊ฐ€ ๊ฐ™๋‹ค. - ๋น„๊ต์  ์—ฐ์‚ฐ์˜ ์–‘์ด ์ ์–ด ๊ณ„์‚ฐ์ด ๋น ๋ฅด๋‹ค. - ์ŠคํŠธ๋ฆผ ์•”ํ˜ธ์™€ ๋ธ”๋ก ์•”ํ˜ธ ์ฆ‰, 2์ข…๋ฅ˜๋กœ ๋‚˜๋‰œ๋‹ค.1) ์ŠคํŠธ๋ฆผ ์•”ํ˜ธ - ํ•œ ๋ฒˆ์— ํ•œ ๋น„ํŠธ๋‚˜ ํ•œ ๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ์•”ํ˜ธํ™” ๋œ๋‹ค. - ๋ธ”๋ก ์•”ํ˜ธ๋ณด๋‹ค ๋น ๋ฅด๋‚˜ ๋‚ฎ์€ ๋ณด์•ˆ์„ฑ์„ ๊ฐ€์ง„๋‹ค. - ๋„คํŠธ์›Œํฌ ์†ก์ˆ˜์‹ , ์ŠคํŠธ๋ฆฌ๋ฐ ๋“ฑ์— ์‚ฌ์šฉ๋œ๋‹ค.2) ๋ธ”๋ก ์•”ํ˜ธ - ํ•œ ๋ฒˆ์— ํŠน์ • ๋ธ”๋ก(๋ฐ”์ดํŠธ) ๋‹จ์œ„๋กœ ์•”ํ˜ธํ™” ๋œ๋‹ค. - ์ •ํ•ด์ง„ ํฌ..

์ž์‹ ํ”„๋กœ์„ธ์Šค ๋””๋ฒ„๊น… ํ•˜๊ธฐ

๋””๋ฒ„๊น…์„ ํ•˜๋‹ค๋ณด๋ฉด ์ž์‹ ํ”„๋กœ์„ธ์Šค๋Š” ๋””๋ฒ„๊น…์ด ๋˜์ง€ ์•Š์„ ๋•Œ๋„ ์žˆ๋”๊ตฐ์š”! ๊ทธ๋ž˜์„œ ํ•œ๋ฒˆ ๊ฒ€์ƒ‰ํ•ด ๋ดค์Šต๋‹ˆ๋‹น!! ๊ฒ€์ƒ‰์„ ํ•ด๋ณด๋‹ˆ MSDN์—๋Š”์„œ ์ด ํ•จ์ˆ˜๊ฐ€ ๋‚˜์˜ค๋Š”๋ฐ์š”!! ์ด ์ดํ•จ์ˆ˜๋ฅผ ์ž˜ ์ฝ์–ด ๋ณด๋‹ˆ DEBUG_PROCESS ๋ผ๋Š” ๊ฒƒ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. DEBUG_PROCESS ์ด๋Š” Process Creation์˜ ์ธ์ž๋กœ debug_process์ธ์ž๋กœ ๋„˜๊ฒจ์ฃผ๋ฉด ๋œ๋‹ค๊ณ  ๋ช…์‹œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

integer overflow

#include int main(){ int a,b; printf("a + b = 0 (a,b != 0)\n"); printf("A = "); scanf("%d",&a); printf("B = "); scanf("%d",&b); if(a + b == 0) { printf("Congratulation!\n"); } else if(a == 0 || b ==0) { printf("Fuck up!\n"); } else { printf("Fuck you!\n"); } return 0;} integer overflow๋ž€?๊ธฐ๋ณธ ์ •์ˆ˜ํ˜•์—์„œ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋ณธ์น˜์˜ ๊ฐ’๋ณด๋‹ค ๋” ํฐ ์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์˜ˆ๊ธฐ์น˜ ์•Š์€ ํ–‰๋™์„ ์ทจํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ

system 24byte shellcode

\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x99\xb0\x0b\xcd\x80

Use After Free

use after free ๋ผ๋Š” ์ทจ์•ฝ์ ์€ ํ”„๋กœ๊ทธ๋žจ ๋ฉ”๋ชจ๋ฆฌ๋Š” ํฌ๊ฒŒ Code/Data/Heap/Stack์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋Š”๋ฐ Code+Data=Binary์˜์—ญ Heap=ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๋™์  ํ• ๋‹น/ํšŒ์ˆ˜/์ œ์–ด ํ•  ์ˆ˜ ์žˆ๋Š” ์˜์—ญ Stack=ํ•จ์ˆ˜ ๊ฐœ๋ณ„๊ณต๊ฐ„(์Šคํƒํ”„๋ ˆ์ž„),์ธ์ž์ „๋‹ฌ๋“ฑ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์˜์—ญ ์ด๋ ‡๊ฒŒ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค ์ด ์ค‘์—์„œ UAF๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ํž™ ์˜์—ญ์„ ์ž˜๋ชป ๋‹ค๋ค˜์„ ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์ทจ์•ฝ์ ์ด๋‹ค. ์•„๋ž˜์˜ ์†Œ์Šค๋ฅผ ๋ณด์ž #include #include typedef struct UAF{int number;}uaf; int main(void){uaf *one;uaf *two; one = malloc(100);printf("one->number:%d\n",one->number); one->number=12345;printf(..

memory ์˜์—ญ

memory code ์˜์—ญ- ์ฝ”๋“œ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” memory ์˜์—ญ์œผ๋กœ hex file or bin fire memory- program ๋ช…๋ น์ด ์œ„์น˜ํ•˜๋Š” ๊ณณ์œผ๋กœ ๊ธฐ๊ณ„์–ด๋กœ ์ œ์–ด๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์ด๋‹ค. data ์˜์—ญ- ์ „์—ญ๋ณ€์ˆ˜, ์ •์ ๋ณ€์ˆ˜, ๋ฐฐ์—ด, ๊ตฌ์กฐ์ฒด ๋“ฑ์ด ์ €์žฅ๋˜์–ด ์žˆ๋‹ค. * ์ดˆ๊ธฐํ™” ๋œ ๋ฐ์ดํ„ฐ๋Š” data ์˜์—ญ์— ์ €์žฅ๋˜๊ณ  ์ดˆ๊ธฐํ™” ๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋Š” bss(block stated symbol)์— ์ €์žฅ๋œ๋‹ค. - ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰ ๋  ๋•Œ ์ƒ์„ฑ๋˜์–ด ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ ์‹œ ๊นŒ์ง€ ์กด์žฌํ•œ๋‹ค. - ํ•จ์ˆ˜ ๋‚ด๋ถ€์— ์„ ์–ธ๋œ static ๋ณ€์ˆ˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰ ๋  ๋•Œ ๊ณต๊ฐ„๋งŒ ํ• ๋‹น๋˜๊ณ , ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰ ๋  ๋•Œ ์ดˆ๊ธฐํ™” ๋œ๋‹ค. heap ์˜์—ญ- ํ•„์š”์— ๋”ฐ๋ผ ๋™์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น ํ•˜๊ณ ์ž ํ•  ๋•Œ ์œ„์น˜ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์œผ๋กœ ๋™์  ๋ฐ์ดํ„ฐ ์˜์—ญ์ด๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ, ๋ฉ”๋ชจ..

C์–ธ์–ด์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ

ใ…ฃ ใ…ฃใ…ฃ ใ…ฃใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…ฃ ใ…ฃใ…ฃ ใ…ฃ main ํ•จ์ˆ˜์ฆ‰, ๋จผ์ € ํ˜ธ์ถœ ๋œ ํ•จ์ˆ˜์˜ ์Šคํƒ๊ณต๊ฐ„ ์ผ์ˆ˜๋ก ๋Šฆ๊ฒŒ ํ•ด์ฒด ๋œ๋‹ค. free ํ•จ์ˆ˜๋ฅผ ํ˜ธํ’€ํ•˜์ง€ ์•Š์œผ๋ฉด ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ ํ›„์—๋„ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋‚จ์„๊นŒ?-> ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์‹œ ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์€ ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋˜๋ฉด ์šด์˜์ฒด์ œ์— ์˜ํ•ด์„œ ์ „๋ถ€ ํ•ด์ œ๊ฐ€ ๋œ๋‹ค. ์„ ํ–‰์ฒ˜๋ฆฌ๋ž€?์ปดํŒŒ์ผ ์ด์ „์˜ ์ฒ˜๋ฆฌ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ๋งคํฌ๋กœ ํ•จ์ˆ˜์˜ ์žฅ์ - ์ผ๋ฐ˜ ํ•จ์ˆ˜์— ๋น„ํ•ด ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค.- ์ž๋ฃŒํ˜•์— ๋”ฐ๋ผ์„œ ๋ณ„๋„๋กœ ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค. ๋งคํฌ๋กœ ํ•จ์ˆ˜์˜ ๋‹จ์ - ์ •์˜ํ•˜๊ธฐ๊ฐ€ ์ •๋ง๋กœ ๊นŒ๋‹ค๋กญ๋‹ค.- ๋””๋ฒ„๊น… ํ•˜๊ธฐ๊ฐ€ ์‰ฝ์ง€ ์•Š๋‹ค.

race condition(๊ฒฝ์Ÿ ์กฐ๊ฑด)attack

๊ฒฝ์Ÿ ์กฐ๊ฑด์ด๋ž€? ๋‘ ํ”„๋กœ์„ธ์Šค๊ฐ„์— ๋ฆฌ์†Œ์Šค(resource)๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋‹คํˆฌ๋Š” ๊ณผ์ •์œผ๋กœ, ๋ณธ๋ž˜ ํ•ดํ‚น๊ธฐ๋ฒ•์„ ์นญํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค. ์•Œ๋ ค์ง„ ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ๊ฒฝ์Ÿ ์กฐ๊ฑด์˜ ์›๋ž˜ ์˜๋ฏธ๋ฅผ ์•Œ์•„๋ณด์ž. ์—ฌ๊ธฐ์„œ fork()๋ผ๋Š” ํ•จ์ˆ˜๋Š” ๋™์ผํ•œ ์ž‘์—…์„ ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ํ•˜๋‚˜ ๋” ๋„์šฐ๋Š” ํ•จ์ˆ˜๋กœ์จ fork()๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ, ๊ฒฐ๊ณผ ๊ฐ’์€ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์ง„ ํ”„๋กœ์„ธ์Šค์˜ ๋ฒˆํ˜ธ๊ฐ€ ๋œ๋‹ค. ์ด๋กœ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ตฌ๋ถ„ํ•œ๋‹ค. if(a%2 ==0) => printf("O")๊ฐ€ /*๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค*/์—์„œ 50๋ฒˆ์„ ์ถœ๋ ฅํ•˜๊ณ if(a%2 ==1) => printf("X")๊ฐ€ /*์ž์‹ ํ”„๋กœ์„ธ์Šค*/์—์„œ 50๋ฒˆ์„ ์ถœ๋ ฅํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋Ÿผ ๊ธฐ๋ณธ์ ์œผ๋กœ OXOXOXOXOXOXOX์ด๋Ÿฌํ•œ ์‹์œผ๋กœ ์ถœ๋ ฅ์„ ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š”๋ฐ ์ด์™€๋‹ค๋ฅด๊ฒŒ XXOXXOOOOOOOXXOXOOOOO ์ด๋Ÿฌํ•œ์‹..
728x90
๋ฐ˜์‘ํ˜•