728x90

๋ฌธ์ œ ์„ค๋ช…

์ •์ˆ˜ 1๊ฐœ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•ด๋ณด์ž.
๋‹จ, ์ž…๋ ฅ๋˜๋Š” ์ •์ˆ˜์˜ ๋ฒ”์œ„๋Š”
-9,223,372,036,854,775,808 ~ +9,223,372,036,854,775,807 ์ด๋‹ค.

์ฐธ๊ณ 
-2147483648 ~ +2147483647 ๋ฒ”์œ„์˜ ์ •์ˆ˜๋ฅผ ์ €์žฅํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”
int ๋ฐ์ดํ„ฐํ˜•์„ ์‚ฌ์šฉํ•ด ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋ฉด ๋œ๋‹ค.
(int ๋กœ ์„ ์–ธํ•˜๊ณ  %d๋กœ ์ž…๋ ฅ๋ฐ›์•„ ์ €์žฅํ•˜๊ณ , ์ถœ๋ ฅํ•˜๋ฉด ๋œ๋‹ค.)

int ํ˜•์œผ๋กœ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ”์œ„๋ฅผ ๋„˜์–ด๊ฐ€๋Š” ์ •์ˆ˜ ๊ฐ’์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”
๋ณด๋‹ค ํฐ ๋ฒ”์œ„๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐํ˜•์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

long long int ๋ฐ์ดํ„ฐํ˜•์„ ์‚ฌ์šฉํ•˜๋ฉด
-9,223,372,036,854,775,808 ~ +9,223,372,036,854,775,807 ๋ฒ”์œ„์˜ ์ •์ˆ˜๊ฐ’์„
์ €์žฅ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.


์˜ˆ์‹œ
long long int n;
scanf("%lld", &n);
printf("%lld", n);

์ž…๋ ฅ

์ •์ˆ˜ 1๊ฐœ๊ฐ€ ์ž…๋ ฅ๋œ๋‹ค.
๋‹จ, ์ž…๋ ฅ๋˜๋Š” ์ •์ˆ˜์˜ ๋ฒ”์œ„๋Š” -9223372036854775808 ~ +9223372036854775807 ์ด๋‹ค.

์ถœ๋ ฅ

์ž…๋ ฅ๋œ ์ •์ˆ˜๋ฅผ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•œ๋‹ค.

์ž…๋ ฅ ์˜ˆ์‹œ
-2147483649

์ถœ๋ ฅ ์˜ˆ์‹œ
-2147483649

๋ฌธ์ œ ํ’€์ด

#include <stdio.h>

int main(){
    long long int n;
    scanf("%lld",&n);
    printf("%lld",n);
    
    return 0;
}
728x90

๋ฌธ์ œ ์„ค๋ช…

์‹ค์ˆ˜ 1๊ฐœ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•ด๋ณด์ž.
(๋‹จ, ์ž…๋ ฅ๋˜๋Š” ์‹ค์ˆ˜์˜ ๋ฒ”์œ„๋Š” +- 1.7*10-308 ~ +- 1.7*10308 ์ด๋‹ค.)

์ฐธ๊ณ 
float ๋ฐ์ดํ„ฐํ˜•์„ ์‚ฌ์šฉํ•˜๋ฉด +- 3.4*10-38 ~ +- 3.4*1038 ๋ฒ”์œ„์˜ ์‹ค์ˆ˜๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.
(float ๋กœ ์„ ์–ธํ•˜๊ณ  %f๋กœ ์ž…๋ ฅ ๋ฐ›์•„ ์ถœ๋ ฅํ•˜๋ฉด ๋œ๋‹ค.)

์ด ๋ฒ”์œ„๋ฅผ ๋„˜์–ด๊ฐ€๋Š”(๋” ์ž‘๊ฑฐ๋‚˜ ๋” ํฐ) ์‹ค์ˆ˜๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”
๋ณด๋‹ค ํฐ ๋ฒ”์œ„๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐํ˜•์„ ์‚ฌ์šฉํ•ด์•ผ ์ •์ƒ์ ์œผ๋กœ ์ €์žฅ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.
double์€ ๋” ์ •ํ™•ํ•˜๊ฒŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, float๋ณด๋‹ค 2๋ฐฐ์˜ ์ €์žฅ ๊ณต๊ฐ„์ด ํ•„์š”ํ•˜๋‹ค.

double ๋ฐ์ดํ„ฐํ˜•์„ ์‚ฌ์šฉํ•˜๋ฉด
+- 1.7*10-308 ~ +- 1.7*10308 ๋ฒ”์œ„์˜ ์‹ค์ˆ˜๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.


์˜ˆ์‹œ
double d;
scanf("%lf", &d); // double(long float) ํ˜•์‹์œผ๋กœ ์ž…๋ ฅ
printf("%lf", d);

์ž…๋ ฅ

์†Œ์ˆ˜์  ์•„๋ž˜ ์ˆซ์ž๊ฐ€ 11๊ฐœ ์ดํ•˜์ธ ์‹ค์ˆ˜ 1๊ฐœ๊ฐ€ ์ž…๋ ฅ๋œ๋‹ค.
(๋‹จ, ์ž…๋ ฅ๋˜๋Š” ์‹ค์ˆ˜์˜ ๋ฒ”์œ„๋Š” +- 1.7*10-308 ~ +- 1.7*10308 ์ด๋‹ค.)

์ถœ๋ ฅ

์ž…๋ ฅ๋œ ์‹ค์ˆ˜๋ฅผ ์†Œ์ˆ˜์  ์ดํ•˜ 11์ž๋ฆฌ๊นŒ์ง€ ๋ฐ˜์˜ฌ๋ฆผํ•˜์—ฌ ์ถœ๋ ฅํ•œ๋‹ค.

์ฐธ๊ณ 
%.11lf ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์†Œ์ˆ˜์  ์ดํ•˜ 11์ž๋ฆฌ๊นŒ์ง€ ์ถœ๋ ฅ๋œ๋‹ค.

์ž…๋ ฅ ์˜ˆ์‹œ
3.14159265359

์ถœ๋ ฅ ์˜ˆ์‹œ
3.14159265359

๋ฌธ์ œ ํ’€์ด

#include <stdio.h>

int main(){
    double d;
    scanf("%lf",&d);
    printf("%.11lf",d);
    
    return 0;
}
728x90

๋ฌธ์ œ ์„ค๋ช…

์ •์ˆ˜ 1๊ฐœ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•ด๋ณด์ž.
(๋‹จ, ์ž…๋ ฅ๋˜๋Š” ์ •์ˆ˜์˜ ๋ฒ”์œ„๋Š” 0 ~ 4,294,967,295 ์ด๋‹ค.)

์ฐธ๊ณ 
-2147483648 ~ +2147483647 ๋ฒ”์œ„์˜ ์ •์ˆ˜๋ฅผ ์ €์žฅํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”
int ํ˜•์œผ๋กœ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋ฉด ๋œ๋‹ค.(int ๋กœ ์„ ์–ธํ•˜๊ณ  %d๋กœ ๋ฐ›๊ณ  ์ถœ๋ ฅ)

ํ•˜์ง€๋งŒ ์ด ๋ฒ”์œ„๋ฅผ ๋„˜์–ด๊ฐ€๋Š” ์ •์ˆ˜๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”
๋ณด๋‹ค ํฐ ๋ฒ”์œ„๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐํ˜•์„ ์‚ฌ์šฉํ•ด์•ผ ์ •์ƒ์ ์œผ๋กœ ์ €์žฅ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

unsigned int ๋ฐ์ดํ„ฐํ˜•์„ ์‚ฌ์šฉํ•˜๋ฉด 0 ~ 4294967295 ๋ฒ”์œ„์˜ ์ •์ˆ˜๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.


์˜ˆ์‹œ
unsigned int n;
scanf("%u", &n);
printf("%u", n);

์ž…๋ ฅ

์ •์ˆ˜ 1๊ฐœ๊ฐ€ ์ž…๋ ฅ๋œ๋‹ค.

(๋‹จ, ์ž…๋ ฅ๋˜๋Š” ์ •์ˆ˜์˜ ๋ฒ”์œ„๋Š” 0 ~ 4294967295 ์ด๋‹ค.)

์ถœ๋ ฅ

์ž…๋ ฅ๋œ ์ •์ˆ˜๋ฅผ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•œ๋‹ค.

์ž…๋ ฅ ์˜ˆ์‹œ
2147483648

์ถœ๋ ฅ ์˜ˆ์‹œ
2147483648

๋ฌธ์ œ ํ’€์ด

#include <stdio.h>

int main(){
    unsigned int n;
    scanf("%u",&n);
    printf("%u",n);
}
728x90

๋ฌธ์ œ ์„ค๋ช…

๋‹ค์„ฏ ์ž๋ฆฌ์˜ ์ •์ˆ˜ 1๊ฐœ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๊ฐ ์ž๋ฆฌ๋ณ„๋กœ ๋‚˜๋ˆ„์–ด ์ถœ๋ ฅํ•œ๋‹ค.

์ฐธ๊ณ 
scanf("%1d%1d%1d%1d%1d", &a, &b, &c, &d, &e);
๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด 1๊ฐœ์˜ ์ˆซ์ž๋กœ ๊ฐ๊ฐ ๊ตฌ๋ถ„๋˜์–ด ์ €์žฅ๋œ๋‹ค.

์˜ˆ์‹œ
์ฝ์–ด๋“ค์ธ ๊ฐ’์„ ์ ๋‹นํžˆ ๋ฐ”๊ฟ” ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด์„œ

printf("[%d]", a*10000);

๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

์ž…๋ ฅ

๋‹ค์„ฏ ์ž๋ฆฌ๋กœ ์ด๋ฃจ์–ด์ง„ 1๊ฐœ์˜ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค.
(๋‹จ, 10,000 <= ์ž…๋ ฅ๋ฐ›๋Š” ์ˆ˜ <= 99,999 )

 

์ถœ๋ ฅ

๊ฐ ์ž๋ฆฌ์˜ ์ˆซ์ž๋ฅผ ๋ถ„๋ฆฌํ•ด ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ [ ]์†์— ๋„ฃ์–ด ์ถœ๋ ฅํ•œ๋‹ค.

์ž…๋ ฅ ์˜ˆ์‹œ
75254

์ถœ๋ ฅ ์˜ˆ์‹œ
[70000]
[5000]
[200]
[50]
[4]


๋ฌธ์ œ ํ’€์ด

#include <stdio.h>

int main(){
    int a,b,c,d,e;
    scanf("%1d%1d%1d%1d%1d",&a,&b,&c,&d,&e);
    printf("[%d]\n",a*10000);
    printf("[%d]\n",b*1000);
    printf("[%d]\n",c*100);
    printf("[%d]\n",d*10);
    printf("[%d]\n",e);
    
}
728x90

๋ฌธ์ œ ์„ค๋ช…

๋‹จ์–ด๋ฅผ 1๊ฐœ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค.

์ž…๋ ฅ๋ฐ›์€ ๋‹จ์–ด(์˜์–ด)์˜ ๊ฐ ๋ฌธ์ž๋ฅผ

ํ•œ์ค„์— ํ•œ ๋ฌธ์ž์”ฉ ๋ถ„๋ฆฌํ•ด ์ถœ๋ ฅํ•œ๋‹ค.


์ฐธ๊ณ 
C์–ธ์–ด์—์„œ๋Š” ๋ฌธ์žฅ์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ํŠน๋ณ„ํ•œ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ,
๋ฐฐ์—ด์ด๋ผ๋Š” ์—ฐ์†๋œ ๊ณต๊ฐ„์— ๋ฌธ์ž๋“ค์„ ์—ฐ์†์œผ๋กœ ํ•œ ๊ฐœ์”ฉ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค.
๋‹จ, ๋ฌธ์ž์—ด(๋ฌธ์ž๊ฐ€ ์—ฐ์†์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ์ค„์ด๋ผ๋Š” ์˜๋ฏธ. ์ฆ‰ ๋ฌธ์žฅ)์˜ ๋งˆ์ง€๋ง‰์ž„์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด
๋ฌธ์ž์—ด์˜ ๋งˆ์ง€๋ง‰์— ๋„(NULL) ๋ฌธ์ž๋ผ๋Š” ํŠน๋ณ„ํ•œ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๋Š” ๋ฌธ์ž๋ฅผ ์‚ฝ์ž…ํ•ด ๋ฌธ์žฅ์ž„์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

๋„(NULL)์€ ์˜์–ด ๋‹จ์–ด ์ž์ฒด์˜ ์˜๋ฏธ๋กœ๋Š”, ์•„๋ฌด๋Ÿฐ ๊ฐ€์น˜๊ฐ€ ์—†๋Š” ๋˜๋Š” ์•„๋ฌด๊ฒƒ๋„ ์—†๋Š”, ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ๋“ฑ์˜ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๋Š”๋ฐ,

๋ฌธ์ž๋กœ๋Š” '\0', ์•„์Šคํ‚ค๋ฌธ์ž์˜ ์ •์ˆ˜๊ฐ’์€ 0์„ ์˜๋ฏธํ•˜๋ฉฐ NULL ๋กœ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๋‹จ์–ด๋‚˜ ๋ฌธ์žฅ์„ scanf("%s", ...); ๋กœ ์ž…๋ ฅ๋ฐ›๊ฒŒ ๋˜๋ฉด, ๊ทธ ๋งˆ์ง€๋ง‰์— ๋„๋ฌธ์ž๊ฐ€ ์ž๋™์œผ๋กœ ์ž…๋ ฅ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋Ÿฌ๋ฏ€๋กœ, ๋ณธ ๋ฌธ์ œ๋Š” ๊ทธ๋ ‡๊ฒŒ ์ €์žฅ๋˜์–ด์žˆ๋Š” ์˜๋ฌธ์ž๋“ค์„ ํ•œ ๊ฐœ์”ฉ ์ˆœ์ฐจ์ ์œผ๋กœ ๊ฒ€์‚ฌํ•ด์„œ,

๋ฌธ์žฅ์˜ ๋งˆ์ง€๋ง‰์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋„๋ฌธ์ž๊ฐ€ ๋‚˜์˜ฌ ๋•Œ๊นŒ์ง€ ๋ชจ์–‘์„ ๋งŒ๋“ค์–ด ์ถœ๋ ฅํ•˜๋ฉด ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

๋‚˜์ค‘์— ์กฐ๊ฑด์‹คํ–‰๋ฌธ, ๋ฐ˜๋ณต๋ฌธ, ๋ฐฐ์—ด์— ๋Œ€ํ•ด์„œ ๋ฐฐ์šฐ๋ฉด ๋ช…ํ™•ํžˆ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

printf("%s", ...); ๋Š” ๊ฒฐ๊ตญ, ์ €์žฅ๋˜์–ด์žˆ๋Š” ๋ฌธ์ž์˜ ๋งˆ์ง€๋ง‰๊นŒ์ง€, ์ฆ‰ ๋„๋ฌธ์ž๊ฐ€ ๋‚˜์˜ฌ ๋•Œ๊นŒ์ง€ ํ˜•์‹์— ๋งž์ถ”์–ด ์ถœ๋ ฅํ•ด ์ฃผ๋ผ๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„๋‹ค.


์˜ˆ์‹œ
char d[30]; //์ตœ๋Œ€ 30๋ฌธ์ž๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์ €์žฅ ๊ณต๊ฐ„ ์ค€๋น„. ๋งˆ์ง€๋ง‰์— ๋„๋ฌธ์ž ๊ณ ๋ คํ•ด์•ผํ•จ
scanf("%s", d); //๊ทธ ๊ณต๊ฐ„์— ํ‚ค๋ณด๋“œ๋กœ ์ž…๋ ฅ๋œ ๋‚ด์šฉ์„ ์ €์žฅ. ๋‹จ ๊ณต๋ฐฑ์ด ์žˆ์œผ๋ฉด ๊ฑฐ๊ธฐ๊นŒ์ง€๋งŒ ์ž…๋ ฅ๋จ.
for(i=0; d[i]!='\0'; i++) //์ €์žฅ๋œ ๋‚ด์šฉ์„ ํ•˜๋‚˜ํ•˜๋‚˜์”ฉ ๊ฒ€์‚ฌํ•ด์„œ ๋„๋ฌธ์ž๊ฐ€ ์•„๋‹ ๋™์•ˆ ์•„๋ž˜ ์‹คํ–‰
{
   printf("\'%c\'", d[i]);
}

์ž…๋ ฅ

๋‹จ์–ด(์˜์–ด) ํ•˜๋‚˜๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค.
(๋‹จ, ๋‹จ์–ด์˜ ๊ธธ์ด๋Š” 20์ž ์ดํ•˜์ด๋‹ค.)

 

์ถœ๋ ฅ

๋‹จ์–ด์˜ ๋ฌธ์ž(์˜์–ด)๋ฅผ ํ•˜๋‚˜์”ฉ ๋‚˜๋ˆ„์–ด ํ•œ ์ค„์— ํ•œ ๊ฐœ์”ฉ
' '๋กœ ๋ฌถ์–ด์„œ ์ถœ๋ ฅํ•œ๋‹ค.

 

์ž…๋ ฅ ์˜ˆ์‹œ
Boy

์ถœ๋ ฅ ์˜ˆ์‹œ
'B'
'o'
'y'

๋ฌธ์ œ ํ’€์ด

#include <stdio.h>

int main(){
    char s[30];
    scanf("%s",s);
    for(int i=0; s[i]!='\0';i++){
        printf("\'%c\'\n",s[i]);
    }
}
728x90

๋ฌธ์ œ ์„ค๋ช…

๊ณต๋ฐฑ ๋ฌธ์ž๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๋ฌธ์žฅ์„ ์ž…๋ ฅ๋ฐ›๊ณ  ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•˜๋Š” ์—ฐ์Šต์„ ํ•ด๋ณด์ž.

์˜ˆ์‹œ
char data[2001];
fgets(data, 2000, stdin);
printf("%s", data);

์œ„์™€ ๊ฐ™์ด ์‹คํ–‰ํ•˜๋ฉด ๊ณต๋ฐฑ์ด ํฌํ•จ๋œ ๋ฌธ์žฅ์„ ํ‚ค๋ณด๋“œ(stdin)๋กœ ์ž…๋ ฅ๋ฐ›์•„
์ตœ๋Œ€ 2000์ž๊นŒ์ง€ data[ ] ๊ณต๊ฐ„์— ์ €์žฅํ•˜๊ณ  ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.

%s ๋Š” ๋ฌธ์ž์—ด(string, ์‹ค๋กœ ์—ฐ๊ฒฐ๋œ ๋ฌธ์ž๋“ค. ๋ฌธ์žฅ)๋กœ ์ถœ๋ ฅํ•˜๋ผ๋Š” ์˜๋ฏธ์ด๋‹ค.

์ฐธ๊ณ 
fgets( ) ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ณต๋ฐฑ๋ฌธ์ž๊ฐ€ ํฌํ•จ๋˜์–ด์ž‡๋Š” ๋ฌธ์žฅ์„ ์ž…๋ ฅ๋ฐ›์•„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.
๋งŒ์•ฝ, ์•„๋ž˜์ฒ˜๋Ÿผ
scanf("%s", ... ) ๋ฅผ ์ด์šฉํ•ด ๋ฌธ์žฅ์„ ์ž…๋ ฅ๋ฐ›์œผ๋ฉด, ์ฒซ ๋ฒˆ์งธ ๋‹จ์–ด๊นŒ์ง€๋งŒ ์ €์žฅ๋œ๋‹ค.

char data[51] = ""; //์ตœ๋Œ€ 50๋ฌธ์ž๊นŒ์ง€ ์ €์žฅ ๊ฐ€๋Šฅ
scanf("%s", data);


์ž…๋ ฅ

๊ณต๋ฐฑ์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š” ํ•œ ๋ฌธ์žฅ์ด ์ž…๋ ฅ๋œ๋‹ค.
๋‹จ, ์ž…๋ ฅ๋˜๋Š” ๋ฌธ์žฅ์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋‹จ์–ด๋กœ ๊ตฌ์„ฑ๋˜๊ณ , ์—”ํ„ฐ๋กœ ๋๋‚˜๋ฉฐ,
์ตœ๋Œ€ ๊ธธ์ด๋Š” 2000 ๋ฌธ์ž๋ฅผ ๋„˜์ง€ ์•Š๋Š”๋‹ค.

 

์ถœ๋ ฅ

์ž…๋ ฅ๋œ ๋ฌธ์žฅ์„ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•œ๋‹ค.

 

์ž…๋ ฅ์˜ˆ์‹œ
Programming is very fun!!

์ถœ๋ ฅ์˜ˆ์‹œ
Programming is very fun!!

๋ฌธ์ œ ํ’€์ด

#include <stdio.h>

int main(){
    char data[2001];
    fgets(data,2000,stdin);
    printf("%s",data);
    
    return 0;
}
728x90

๋ฌธ์ œ์„ค๋ช…

์ฃผ๋ฏผ๋ฒˆํ˜ธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑ๋œ๋‹ค.

XXXXXX-XXXXXXX

์•ž์˜ 6์ž๋ฆฌ๋Š” ์ƒ๋…„์›”์ผ(yymmdd)์ด๊ณ  ๋’ค 7์ž๋ฆฌ๋Š” ์„ฑ๋ณ„, ์ง€์—ญ, ์˜ค๋ฅ˜๊ฒ€์ถœ์ฝ”๋“œ์ด๋‹ค.
์ฃผ๋ฏผ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ํ˜•ํƒœ๋ฅผ ๋ฐ”๊ฟ” ์ถœ๋ ฅํ•ด๋ณด์ž.

์ž…๋ ฅ

์ฃผ๋ฏผ๋ฒˆํ˜ธ ์•ž 6์ž๋ฆฌ์™€ ๋’ท 7์ž๋ฆฌ๊ฐ€ '-'๋กœ ๊ตฌ๋ถ„๋˜์–ด ์ž…๋ ฅ๋œ๋‹ค.
(์ž…๋ ฅ๊ฐ’์€ ๊ฐ€์ƒ์˜ ์ฃผ๋ฏผ๋ฒˆํ˜ธ์ด๋‹ค.)
ex)110011-0000000

์ถœ๋ ฅ

'-'๋ฅผ ์ œ์™ธํ•œ ์ฃผ๋ฏผ๋ฒˆํ˜ธ 13์ž๋ฆฌ๋ฅผ ๋ชจ๋‘ ๋ถ™์—ฌ ์ถœ๋ ฅํ•œ๋‹ค.

 

์ž…๋ ฅ์˜ˆ์‹œ
000907-1121112

์ถœ๋ ฅ์˜ˆ์‹œ
0009071121112

๋ฌธ์ œ ํ’€์ด

#include <stdio.h>

int main(){
    int a,b;
    scanf("%d-%d",&a,&b);
    printf("%06d%07d",a,b);
    
    return 0;
}
728x90

๋ฌธ์ œ์„ค๋ช…

๋…„, ์›”, ์ผ์„ ์ž…๋ ฅ๋ฐ›์•„ ์ง€์ •๋œ ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅํ•˜๋Š” ์—ฐ์Šต์„ ํ•ด๋ณด์ž.

 

์ž…๋ ฅ
์—ฐ, ์›”, ์ผ์ด ".(๋‹ท)"์œผ๋กœ ๊ตฌ๋ถ„๋˜์–ด ์ž…๋ ฅ๋œ๋‹ค.
 

 

์ถœ๋ ฅ
์ž…๋ ฅ๋ฐ›์€ ์—ฐ, ์›”, ์ผ์„ yyyy.mm.dd ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅํ•œ๋‹ค.
(%02d๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด 2์นธ์„ ์‚ฌ์šฉํ•ด ์ถœ๋ ฅํ•˜๋Š”๋ฐ, ํ•œ ์ž๋ฆฌ ์ˆ˜์ธ ๊ฒฝ์šฐ ์•ž์— 0์„ ๋ถ™์—ฌ ์ถœ๋ ฅํ•œ๋‹ค.)


์ž…๋ ฅ ์˜ˆ์‹œ
2013.8.5


์ถœ๋ ฅ์˜ˆ์‹œ
2013.08.05

 


๋ฌธ์ œ ํ’€์ด

#include <stdio.h>

int main(){
    int y,m,d;
    scanf("%d.%d.%d",&y,&m,&d);
    printf("%04d.%02d.%02d",y,m,d);
    
    return 0;
}
728x90

์ •๋ณด๋ณด์•ˆ๊ธฐ์ดˆ

์ •์˜

<๋ณด์•ˆ VS. ๋ณดํ˜ธ>

  • ๋ณด์•ˆ = method
  • ๋ณดํ˜ธ = purpose

 

<์‚ฌ์ด๋ฒ„๋ณด์•ˆ๊ณผ ์ •๋ณด๋ณด์•ˆ>

  • ์‚ฌ์ด๋ฒ„๋ณด์•ˆ: ์ปดํ“จํ„ฐ, ๋„คํŠธ์›Œํฌ, ์†Œํ”„ํŠธ์›จ์–ด, ํ”„๋กœ๊ทธ๋žจ, ๋ฐ์ดํ„ฐ ๋“ฑ์„ ์•…์˜์ ์ธ ํ–‰์œ„๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•˜๋Š” ๋ฐฉ์‹์ด๋‚˜ ํ–‰์œ„
  • ์ •๋ณด๋ณด์•ˆ: ์ •๋ณด์˜ ์ˆ˜์ง‘, ๊ฐ€๊ณต, ์ €์žฅ, ๊ฒ€์ƒ‰, ์†ก์‹ , ์ˆ˜์‹  ๋“ฑ ์ •๋ณด๊ฐ€ ์—ฐ๊ด€๋˜๋Š” ๊ณผ์ •์—์„œ ๊ธฐ๋ฐ€์„ฑ, ๋ฌด๊ฒฐ์„ฑ, ๊ฐ€์šฉ์„ฑ ๋“ฑ์„ ๋ณด์กดํ•˜๊ธฐ ์œ„ํ•ด ํ–‰ํ•ด์ง€๋Š” ๊ด€๋ฆฌ์ , ๊ธฐ์ˆ ์  ๋ฐฉ๋ฒ•

 

CIA Triad

๊ธฐ๋ณธ ๋ณด์•ˆ ์ง€์‹

<์šฉ์–ด>

  • ์ทจ์•ฝ์ (Vulnerability): ์‹œ์Šคํ…œ ๋ณด์•ˆ ์ธก๋ฉด์—์„œ ์•…์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒฐํ•จ/์•ฝ์ 
  • ์œ„ํ—˜: ํŠน์ • ์œ„ํ˜‘์ด ์ทจ์•ฝ์ ์„ ์ด์šฉํ•˜์—ฌ ๊ณต๊ฒฉํ•  ์ˆ˜ ์žˆ๋Š” ์ž ์žฌ๋ ฅ
    • ๋ฐœ์ƒ๊ฐ€๋Šฅ์„ฑ + ์˜ํ–ฅ
  • ์œ„ํ˜‘: ๊ณต๊ฒฉ์ž๊ฐ€ ์ทจ์•ฝ์ ์„ ์•…์šฉํ•˜์—ฌ ํ•ด๋ฅผ ๋ผ์น  ์ˆ˜ ์žˆ๋Š” ์ž ์žฌ์  ์œ„ํ—˜
  • ๊ณต๊ฒฉ: ์ทจ์•ฝ์ ์ด ์•…์šฉ๋˜์–ด ์‹คํ–‰๋˜๋Š” ๊ฒƒ
  • ์ž์‚ฐ

<๋ณด์•ˆ ๊ณต๊ฒฉ์˜ ๊ตฌ๋ถ„ (์ ๊ทน์  vs. ์†Œ๊ทน์ )>

  • ์ ๊ทน์  ๊ณต๊ฒฉ (๋Šฅ๋™ํ˜•)
    • ์‹œ์Šคํ…œ์˜ ์ž์›์„ ๋ฐ”๊พธ๊ฑฐ๋‚˜ ์˜ํ–ฅ์„ ๋ฏธ์นจ
    • ์ˆ˜๋™ํ˜•์— ๋น„ํ•ด ํฐ ํ”ผํ•ด & ์‰ฌ์šด ํƒ์ง€
    • ์•…์„ฑํŒŒ์ผ ์‹ฌ๊ธฐ, ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ, ๋„คํŠธ์›Œํฌ ๋ฐฉํ•ด, ์„œ๋น„์Šค ๊ฑฐ๋ถ€
  • ์†Œ๊ทน์  ๊ณต๊ฒฉ (์ˆ˜๋™ํ˜•)
    • ์‹œ์Šคํ…œ ์ž์›์— ์˜ํ–ฅ X, ์‹œ์Šคํ…œ ์ •๋ณด๋ฅผ ์•Œ์•„๋‚ด๊ฑฐ๋‚˜ ์ด์šฉ
    • ์ž‘์€ ํ”ผํ•ด → ํƒ์ง€ ์–ด๋ ค์›€
    • ๋„์ฒญ, ํŠธ๋ž˜ํ”ฝ ๋ถ„์„

<๋ณด์•ˆ์„ ๋ฐฐ์šฐ๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์ง€์‹>

  • ์šด์˜์ฒด์ œ (Operating System, OS)
    • ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ์žˆ์–ด ๊ฐ€์žฅ ๊ธฐ๋ณธ์ด ๋˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด
    • MacOS, Window, Linux, Android, IOS ๋“ฑ
    • ์„œ๋ฒ„ ๋™์ž‘์—๋„ ์‚ฌ์šฉ → ์„œ๋ฒ„ ๋ณด์•ˆ ์ทจ์•ฝ์  ๋ณด์™„์„ ์œ„ํ•ด์„œ๋Š” Linux/Unix์— ๋Œ€ํ•œ ์ง€์‹ ํ•„์š”
  • ์„œ๋ฒ„ (์†Œํ”„ํŠธ์›จ์–ด์ ์ธ ์˜๋ฏธ)
    • ์„œ๋น„์Šค๋ฅผ ์ˆ˜ํ–‰(์ œ๊ณต)ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ ๋˜๋Š” ์‹œ์Šคํ…œ
    • ๊ณต๊ฒฉ๋Œ€์ƒ์ด ๋˜๋Š” ์„œ๋ฒ„๊ฐ€ ์–ด๋–ค ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์–ด๋–ค ๋ฐฉ์‹์— ์˜ํ•ด ๋™์ž‘๋˜๋Š”์ง€ ํŒŒ์•… ํ•„์š”
  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ
  • ๋„คํŠธ์›Œํฌ
    • ๊ธฐ์—… ์™ธ๋ถ€์—์„œ ๊ณต๊ฒฉํ•  ๋•Œ๋Š” ์ฃผ๋กœ ๋„คํŠธ์›Œํฌ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ณต๊ฒฉ
  • ๊ธฐํƒ€: ๋ณด์•ˆ ๊ฑฐ๋ฒ„๋„Œ์Šค 

๋„คํŠธ์›Œํฌ

๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ์š”์†Œ

<๋„คํŠธ์›Œํฌ ์ฃผ์†Œ์ฒด๊ณ„>

  • ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ: ๋ถ„์‚ฐ๋œ ์ปดํ“จํ„ฐ๋ฅผ ํ†ต์‹ ๋ง์œผ๋กœ ์—ฐ๊ฒฐํ•œ ๊ฒƒ
    • ์ธํ„ฐ๋„ท, ์™€์ดํŒŒ์ด, ๋ธ”๋ฃจํˆฌ์Šค, ํด๋ผ์šฐ๋“œ, ๋„คํŠธ์›Œํฌ
  • MAC ์ฃผ์†Œ: ๋„คํŠธ์›Œํฌ ์žฅ๋น„์˜ ํ•˜๋“œ์›จ์–ด ์ฃผ์†Œ, ๋ฐ์ดํ„ฐ ๋งํฌ ๊ณ„์ธต ํ†ต์‹ ์„ ์œ„ํ•ด ๋ถ€์—ฌ๋œ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ๊ณ ์œ  ์‹๋ณ„์ž
  • IP ์ฃผ์†Œ: ์ธํ„ฐ๋„ท์ƒ์˜ ํ†ต์‹ ์„ ์œ„ํ•ด ๊ฐ ์ปดํ“จํ„ฐ์™€ ํ†ต์‹  ์žฅ๋น„์— ๋ถ€์—ฌํ•˜๋Š” ๊ณ ์œ ํ•œ ์ฃผ์†Œ, ์žฅ์น˜๋“ค์ด ์„œ๋กœ๋ฅผ ์ธ์‹ํ•˜๊ณ  ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ํŠน์ˆ˜ํ•œ ๋ฒˆํ˜ธ

→ MAC ์ฃผ์†Œ๋Š” ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ์ด๊ณ , IP ์ฃผ์†Œ๋Š” ์ง‘์ฃผ์†Œ์ด๋‹ค.

  • ํฌํŠธ: ํ•œ ๋Œ€์˜ ์ปดํ“จํ„ฐ ๋‚ด ๋™์ž‘ํ•˜๋Š” ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ๋“ค์„ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ๋ถ€์—ฌํ•˜๋Š” ์ฃผ์†Œ
IP ์ฃผ์†Œ MAC ์ฃผ์†Œ
- IPv4(๋” ๋งŽ์ด ์‚ฌ์šฉ), IPv6

- 10์ง„์ˆ˜๋กœ ํ‘œํ˜„ํ•˜๊ณ , 32 bit

- ๋„คํŠธ์›Œํฌ๊ฐ€ ๋‹ฌ๋ผ์ง€๋ฉด ๋ฐ”๋€๋‹ค.

- Network ๊ณ„์ธต(L3)์—์„œ ์‚ฌ์šฉ
- ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ

- 16์ง„์ˆ˜๋กœ ํ‘œํ˜„ํ•˜๊ณ , 48 bit

- Data Link ๊ณ„์ธต(L2)์—์„œ ์‚ฌ์šฉ


<๋ฌผ๋ฆฌ์  ๊ตฌ์„ฑ์š”์†Œ>

  • ๋„คํŠธ์›Œํฌ ์žฅ๋น„๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์—ฌ๋Ÿฌ ํ˜ธ์ŠคํŠธ์—๊ฒŒ ์œ ๋ฌด์„ ์˜ ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•œ๋‹ค.
  • ํ˜ธ์ŠคํŠธ(๋‹จ๋ง๊ธฐ) = ํ•ธ๋“œํฐ, ์ปดํ“จํ„ฐ
    • ์‹ค์ œ ๋„คํŠธ์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ฃผ์ฒด
  • ๋„คํŠธ์›Œํฌ ์žฅ๋น„ = ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ๋ฅผ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ์—ญํ• 
    • ๋ผ์šฐํ„ฐ(Router): ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋ถ„๋ฆฌ๋œ ๋‘˜ ์ด์ƒ์˜ ๋„คํŠธ์›Œํฌ๋ฅผ ์—ฐ๊ฒฐํ•˜๊ณ  ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ์—์„œ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ๋ฅผ ์ฐจ๋‹จํ•ด ๋„คํŠธ์›Œํฌ๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š” ์žฅ๋น„
    • ๊ฒŒ์ดํŠธ์›จ์ด(Gateway): ์žฅ๋น„๊ฐ€ ์•„๋‹Œ ํ†ต๋กœ, ์ถœ์ž…๊ตฌ์˜ ๊ฐœ๋…์  ์˜๋ฏธ
  • ์ „์†ก๋งค์ฒด
    • ์œ ์„ 
    • ๋ฌด์„ 

+ ๋„คํŠธ์›Œํฌ ํ† ํด๋กœ์ง€


๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ

  • ํ”„๋กœํ† ์ฝœ: ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๊ณผ์ •์— ๋Œ€ํ•œ ์•ฝ์†
    • ๊ฐ ๊ณ„์ธต๋ณ„๋กœ ๋™์ž‘ํ•˜๋Š” ๋‹ค์ˆ˜์˜ ํ”„๋กœํ† ์ฝœ์ด ์ •์˜๋œ๋‹ค.(ex. HTTP, TCP, IP)
  • ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ๋•Œ ํ•„์š”ํ•œ 4๊ฐ€์ง€
    1. Source(์†ก์‹  ์ธก)๋Š” ํ†ต์‹  ๊ฒฝ๋กœ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ destination(๋Œ€์ƒ)์— ์•Œ๋ ค์•ผ ํ•˜๊ณ 
    2. Source๋Š” destination์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์„ ์ค€๋น„๊ฐ€ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•จ
    3. Source๋Š” ํŒŒ์ผ ์ „์†ก ์‹œ destination์˜ ํŒŒ์ผ ๊ด€๋ฆฌ ํ”„๋กœ๊ทธ๋žจ์ด ํŒŒ์ผ์„ ์ˆ˜๋ฝํ•˜๊ณ  ์ €์žฅํ•  ์ค€๋น„๊ฐ€ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•จ
    4. ๋งŒ์•ฝ ์ƒํ˜ธ ์‹œ์Šคํ…œ ๊ฐ„์˜ data format์ด ๋‹ค๋ฅผ ๋•Œ format์„ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ

→ ์ด๋Ÿฌํ•œ ์กฐ๊ฑด์ด ์žˆ๊ธฐ์— ํ†ต์‹  ๊ทœ์•ฝ(protocol)์ด ํ•„์š”ํ•œ ๊ฒƒ!

 

  • ๊ฐ ๊ณ„์ธต๋งˆ๋‹ค ๋ฐ์ดํ„ฐ์˜ ํŠน์ง•๊ณผ ์ˆ˜ํ–‰ํ•˜๋Š” ์—ญํ• ์ด ๋‹ค๋ฅด๋‹ค.

ํ†ต์‹  ํ”„๋กœํ† ์ฝœ์„ ์—ฌ๋Ÿฌ ๋‹จ๊ณ„๋กœ ๋‚˜๋ˆ„์–ด (Layered Structure๋กœ ๋งŒ๋“ค์–ด) ํ•ด๊ฒฐ

  • ๋˜ํ•œ ์ด ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ์ƒ๋Œ€์˜ ๋™์ผํ•œ ๊ณ„์ธต๋ผ๋ฆฌ๋งŒ(Peer Layer) ํ†ต์‹ ์„ ํ•˜๋Š”๋ฐ, Peer Layer๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ ํ†ต์‹ ์„ ์ฃผ๊ณ ๋ฐ›์ง€ ์•Š๋Š”๋‹ค.

โ–ถ ๊ฐ ๊ณ„์ธต๋งˆ๋‹ค ํŒจํ‚ท์— ์ถ”๊ฐ€์ ์œผ๋กœ ํ—ค๋”๋ฅผ ๋ถ™์ด๋Š” ๋ฐฉ์‹์œผ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค.


๋„คํŠธ์›Œํฌ ๊ณ„์ธต

<OSI 7 Layer>

  • Open Systems interconnection Reference Model
  • ๋„คํŠธ์›Œํฌ์˜ ๋™์ž‘ ๊ณผ์ •์„ ์„ค๋ช…ํ•˜๋Š” ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ธ ๋ชจ๋ธ
  • ๊ตญ์ œ ํ‘œ์ค€ํ™• ๊ธฐ๊ตฌ(ISO)์—์„œ 1983๋…„์— ์ œ์ •
  • ๋ณต์žกํ•œ ํ†ต์‹ ๊ณผ์ •์„ ๊ณ„์ธต์ ์œผ๋กœ ๋‚˜๋ˆ„๊ณ , ๊ณ„์ธต๋ณ„๋กœ ๋…๋ฆฝ์ ์œผ๋กœ ๋™์ž‘
  • ์‹ค์ œ ๊ตฌํ˜„๋œ ์‹œ์Šคํ…œ์ด ์•„๋‹ˆ๋ผ ์ผ์ข…์˜ ๊ฐœ๋…์ ์ธ ๋ชจ๋ธ

7 ๊ณ„์ธต: ์‘์šฉ ๊ณ„์ธต(Application Layer)

  • ์‚ฌ์šฉ์ž์—๊ฒŒ ์ธํ„ฐํŽ˜์ด์Šค(UI: User Interface)๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ณ„์ธต
  • ๋„คํŠธ์›Œํฌ ํ™œ๋™๋“ค์— ๋Œ€ํ•œ ๋ชจ๋“  ๊ธฐ๋ณธ์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค ์ œ๊ณต
  • ์ฝ”๋“œํ˜•ํƒœ๊ฐ€ ์•„๋‹Œ ์›นํŽ˜์ด์ง€์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ธ€, ๊ทธ๋ฆผ, ๋™์˜์ƒ ๋“ฑ์˜ ์‚ฌ์šฉ์ž๊ฒŒ ๋ณด๊ฒŒ ๋˜๋Š” ํ™”๋ฉด

6 ๊ณ„์ธต: ํ‘œํ˜„ ๊ณ„์ธต(Presentation Layer)

  • ์ž…๋ ฅ ๋˜๋Š” ์ถœ๋ ฅ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ํ‘œํ˜„ ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณ„์ธต(์ธ์ฝ”๋”ฉ, ๋””์ฝ”๋”ฉ)
  • ์•ˆ์ „ํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์•”ํ˜ธํ™”/๋ณตํ˜ธํ™”

5 ๊ณ„์ธต: ์„ธ์…˜ ๊ณ„์ธต(Session Layer)

  • ์‘์šฉ ๊ฐ„์˜ ์งˆ์„œ ์ œ์–ด
  • ๋ชจ๋“  ํ†ต์‹  ์žฅ๋น„๋ฅผ ์—ฐ๊ฒฐ, ๊ด€๋ฆฌ, ์ข…๋ฃŒ

4 ๊ณ„์ธต: ์ „์†ก ๊ณ„์ธต(Transport Layer)

  • ์–‘ ๋๋‹จ์˜ ์‚ฌ์šฉ์ž๊ฐ€ ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ฒŒ ํ•˜๋Š” ๊ณ„์ธต
  • ๋ฐ์ดํ„ฐ ์ „์†ก ์‹œ ๋ณด์•ˆ๊ณผ ๊ด€๋ จ๋œ ๊ณ„์ธต
  • TCP & UDP / ๋ฐฉํ™”๋ฒฝ, ํ”„๋ก์‹œ

3 ๊ณ„์ธต: ๋„คํŠธ์›Œํฌ ๊ณ„์ธต(Network Layer)

  • ๋ฐ์ดํ„ฐ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋…ธ๋“œ๋ฅผ ๊ฑฐ์น˜๋Š” ๊ณผ์ •์—์„œ ๊ฒฝ๋กœ๋ฅผ ์ฐพ์•„์ฃผ๋Š” ์—ญํ•  (๋ผ์šฐํŒ…)์„ ํ•˜๋Š” ๊ณ„์ธต
  • IP ํ”„๋กœํ† ์ฝœ / ๋ผ์šฐํ„ฐ

2 ๊ณ„์ธต: ๋ฐ์ดํ„ฐ ๋งํฌ ๊ณ„์ธต(Data Link layer)

  • ์ง์ ‘(๋ฌผ๋ฆฌ์ ์œผ๋กœ) ์—ฐ๊ฒฐ๋œ ๋‹จ๋ง ์‚ฌ์ด ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ์ „์†ก์„ ๋ณด์žฅํ•˜๋Š” ๊ณ„์ธต
  • MAC ์ฃผ์†Œ / ๋ธŒ๋ฆฟ์ง€, ์Šค์œ„์น˜

1 ๊ณ„์ธต: ๋ฌผ๋ฆฌ ๊ณ„์ธต(Physical Layer)

  • ๋‹จ๋ง๊ณผ ๋‹จ๋ง ๊ฐ„ ์‹ค์ œ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์—ฐ๊ฒฐ

<TCP ๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹ >

  • ์‹œ์ž‘๊ณผ์ •: 3-way handshake
  • SYN (Synchronize): ๋™๊ธฐํ™”ํ•˜๋„๋ก ์š”์ฒญ
    • ์—ฐ๊ฒฐ ์š”์ฒญ์„ ํ•˜๋Š” ํŒจํ‚ท
  • ACK (Acknowledge) : ์ˆ˜๋ฝ
    • ๋„์ฐฉ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ํŒจํ‚ท

โ–ถ ์†ก์‹ ์ž์™€ ์ˆ˜์‹ ์ž์˜ ์ปดํ“จํ„ฐ ๋ชจ๋‘ ํŒจํ‚ท์„ ๋ฐ›์œผ๋ฉด ์ด๋ฅผ ๋ฐ›์•˜๋‹ค๊ณ  ์•Œ๋ ค์ฃผ๋Š” ์‘๋‹ต ํŒจํ‚ท์„ ๋ณด๋‚ด์•ผ ํ•œ๋‹ค.

๋”ฐ๋ผ์„œ ์†ก์‹ ์ž๊ฐ€ ์š”์ฒญ ํŒจํ‚ท์ธ SYN์„ ๋ณด๋‚ด๋ฉด, ์ˆ˜์‹ ์ž๋Š” ์ด์— ๋Œ€ํ•œ ์ˆ˜๋ฝ ํŒจํ‚ท์ธ ACK๊ณผ ์ˆ˜์‹ ์ž์˜ ์š”์ฒญ์ด ๋‹ด๊ธด SYN ํŒจํ‚ท์„ ํ•จ๊ป˜ ๋ณด๋‚ธ๋‹ค.

์ด๋ฅผ ๋ฐ›์€ ์†ก์‹ ์ž๋Š” ์ˆ˜์‹ ์ž๊ฐ€ ๋ณด๋‚ธ SYN ํŒจํ‚ท์— ๋Œ€ํ•œ ์‘๋‹ต์ธ ACK ํŒจํ‚ท์„ ์ˆ˜์‹ ์ž์—๊ฒŒ ๋ณด๋ƒ„์œผ๋กœ์จ ๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹ ์˜ ์‹œ์ž‘์ด ์™„๋ฃŒ๋œ๋‹ค.

 


<TCP & UDP>

TCP (Transfer Control Protocol) UDP (User Datagram Protocol)
์—ฐ๊ฒฐํ˜• ํ”„๋กœํ† ์ฝœ ๋น„์—ฐ๊ฒฐํ˜• ํ”„๋กœํ† ์ฝœ
๋ฐ์ดํ„ฐ์˜ ๊ฒฝ๊ณ„๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š์Œ ๋ฐ์ดํ„ฐ์˜ ๊ฒฝ๊ณ„๋ฅผ ๊ตฌ๋ถ„ํ•จ
์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก
(๋ฐ์ดํ„ฐ ์ „์†ก ์‹คํŒจ์‹œ ์žฌ์ „์†ก)
๋น„์‹ ๋ขฐ์„ฑ ๋ฐ์ดํ„ฐ ์ „์†ก
(๋ฐ์ดํ„ฐ ์ „์†ก ์‹คํŒจ ํ˜น์€ ์†์ƒ์‹œ์—๋„ ์žฌ์ „์†กํ•˜์ง€ ์•Š์Œ
-> ํ›จ์”ฌ ๋น ๋ฆ„) ex) ๋ผ๋””์˜ค
์ผ๋Œ€์ผ ํ†ต์‹ (Unicast) ์ผ๋Œ€์ผ, ์ผ๋Œ€๋‹ค(Broadcast), ๋‹ค๋Œ€๋‹ค(Multicast) ํ†ต์‹ 

<TCP/IP ๋ชจ๋ธ>

  • ์ธํ„ฐ๋„ท์— ์‚ฌ์šฉ๋˜๋Š” ์‹ค์ œ ํ†ต์‹  ๋ชจ๋ธ
  • OSI 7 ๊ณ„์ธต์€ ๋‹จ๊ณ„๊ฐ€ ๋„ˆ๋ฌด ๋งŽ๊ณ  ๋ณต์žก → ๋ˆ๊ณผ ์‹œ๊ฐ„์ด ๋งŽ์ด ์†Œ์š”๋จ
  • ์ด์— ๋Œ€ํ•œ ๋Œ€์•ˆ์œผ๋กœ ๋‚˜์˜จ ๊ฒƒ์ด TCP/IP
  • OSI์— ๋น„ํ•ด ๊ณ„์ธต๋ณ„ ์—ญํ• ์ด ์—„๊ฒฉํ•˜๊ฒŒ ๋‚˜๋‰˜์–ด ์žˆ์ง€ ์•Š๋‹ค.


๋„คํŠธ์›Œํฌ ๋ณด์•ˆ

๋„คํŠธ์›Œํฌ ๊ณต๊ฒฉ

Sniffing

  • ์Šค๋‹ˆํ•‘: ํ‚ํ‚๊ฑฐ๋ฆฌ๋‹ค, ์—ฟ๋“ฃ๊ธฐ
  • ๋„คํŠธ์›Œํฌ ๋ณด์•ˆ์—์„œ๋Š” ๋„์ฒญ์˜ ์˜๋ฏธ๋กœ ์‚ฌ์šฉ
  • ์†ก์‹ ์ž์™€ ์ˆ˜์‹ ์ž๊ฐ€ ์ฃผ๊ณ ๋ฐ›๋Š” ๋ฐ์ดํ„ฐ, ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ์„ ์ค‘๊ฐ„์—์„œ ๋„์ฒญ

Snooping

  • ์Šค๋ˆ„ํ•‘: ๊ธฐ์›ƒ๊ฑฐ๋ฆฌ๋‹ค, ์—ผํƒํ•˜๋‹ค
  • ๋„คํŠธ์›Œํฌ ์ƒ ์ฃผ์š” ์ •๋ณด ์—ผํƒ + ํš๋“
  • ํŒจํ‚ท์„ ์—ผํƒ๋งŒ ํ•˜๋Š” ์Šค๋‹ˆํ•‘๋ณด๋‹ค ์ข€ ๋” ๋ฐœ์ „๋œ ํ˜•ํƒœ์˜ ๊ณต๊ฒฉ

Spoofing

  • ์Šคํ‘ธํ•‘: ์œ„์žฅํ•˜๋‹ค, ํŒจ๋Ÿฌ๋””ํ•˜๋‹ค, ์ฃผ์†Œ๋ฅผ ๋„์šฉํ•˜๋‹ค
  • ์‹œ์Šคํ…œ์˜ ๊ถŒํ•œ์„ ํš๋“ํ•˜์—ฌ ์ •๋ณด๋ฅผ ํƒˆ์ทจํ•˜๋Š” ํ–‰์œ„
  • ์—ผํƒํ•˜๋Š” ๊ฒƒ์„ ๋„˜์–ด ์ˆ˜์‹ ์ž์—๊ฒŒ ์ „์†ก๋˜์–ด์•ผ ํ•  ๋ฐ์ดํ„ฐ๋ฅผ ํƒˆ์ทจํ•˜๊ฑฐ๋‚˜ ์•…์˜์ ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•œ๋‹ค.
  • ์„ธ ๊ณต๊ฒฉ ์ค‘ ๊ฐ€์žฅ ์ ๊ทน์ ์ธ ๊ณต๊ฒฉ

 

Denial of Service (DOS, ์„œ๋น„์Šค ๊ฑฐ๋ถ€ ๊ณต๊ฒฉ)

  • ์„œ๋น„์Šค๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ œ๊ณต๋˜์ง€ ๋ชปํ•˜๋„๋ก ๋ฐฉํ•ดํ•˜๋Š” ๊ณต๊ฒฉ
    • ๋Œ€๊ทœ๋ชจ ๊ฐ€์งœ ์š”์ฒญ์„ ๋งŒ๋“ค์–ด์„œ ๊ณต๊ฒฉ๋Œ€์ƒ์ž์˜ ์‹œ์Šคํ…œ์— ๊ณผ๋ถ€ํ•˜ ์ผ์œผํ‚ด
  • ๊ณต๊ฒฉ ๋ชฉ์ : ๊ฐ€์šฉ์„ฑ(Availability)์„ ๋–จ์–ด๋œจ๋ฆฌ๋Š” ๊ฒƒ
  • ๊ณต๊ฒฉ๊ธฐ๋ฒ•:
    • ๋Œ€์—ญํญ ์†Œ์ง„ ๊ณต๊ฒฉ → ์ฃผํŒŒ์ˆ˜๊ฐ€ ์†Œ์ง„๋˜๋ฉด ์„œ๋น„์Šค ์ง€์› ๋ถˆ๊ฐ€
    • ์„œ๋ฒ„ ๋งˆ๋น„ ๊ณต๊ฒฉ ์›น ์„œ๋ฒ„ ํƒ€๊นƒ

 

๋Œ€์—ญํญ ์†Œ์ง„ ๊ณต๊ฒฉ: TCP Flooding

  • TCP์˜ 3-way handshake ์•…์šฉ
  • ์„ธ ๋ฒˆ์งธ ๋‹จ๊ณ„์ธ ACK ํŒจํ‚ท ์•ˆ ๋ณด๋ƒ„ → ์ˆ˜์‹ ์ž๋Š” ์†ก์‹ ์ž๊ฐ€ ACK ํŒจํ‚ท์„ ๋ณด๋‚ผ ๋•Œ๊นŒ์ง€ ๊ณ„์† ๊ธฐ๋‹ค๋ฆผ → ์›น์„œ๋ฒ„์˜ ๋„คํŠธ์›Œํฌ ๋Œ€์—ญํญ์„ ๋‚ญ๋น„ํ•ด์„œ ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋“ค์ด ์•„์˜ˆ ์›น์„œ๋ฒ„๋กœ ์ ‘์† ๋ชปํ•˜๊ฒŒ ํ•จ

 

Distributed Denial of Service (DDoS)

  • ๋‹ค์ˆ˜์˜ ์ปดํ“จํ„ฐ๋ฅผ ์ผ์ œํžˆ ๋™์ž‘์‹œ์ผœ ํŠน์ • ์‹œ์Šคํ…œ์„ ๊ณต๊ฒฉํ•˜์—ฌ ๋„คํŠธ์›Œํฌ ์„ฑ๋Šฅ์ €ํ•˜๋‚˜ ์‹œ์Šคํ…œ ๋งˆ๋น„ ๋ฐœ์ƒ์‹œํ‚ด
  • DoS๋Š” ์‹œ์Šคํ…œ ๋Œ€ ์‹œ์Šคํ…œ ๊ณต๊ฒฉ  → ์ถ”์  ์šฉ์ด
  • DDoS๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์‹œ์Šคํ…œ์ด ํ•˜๋‚˜์˜ ์‹œ์Šคํ…œ์„ ๊ณต๊ฒฉ  → ๊ณต๊ฒฉ์ž ํŠน์ • ์–ด๋ ค์›€, ๋” ํšจ์œจ์ 
  • https://www.netscout.com/ddos-attack-map
 

DDoS & Cyber Attack Map | NETSCOUT

NETSCOUT's live DDoS and cyber attack map, powered by Omnis Threat Horizon, gives you a visualization of today's worldwide cyberattacks. Sign up for free today.

www.netscout.com

  • 4๊ฐ€์ง€ ๊ตฌ์„ฑ ์š”์†Œ: ๊ณต๊ฒฉ์ž, ๊ณต๊ฒฉ ๋Œ€์ƒ์ž, ์—์ด์ „ํŠธ, ๋งˆ์Šคํ„ฐ
    • ๊ณต๊ฒฉ์ž: ๋งˆ์Šคํ„ฐ์™€ ์—์ด์ „ํŠธ๋ฅผ ํ†ตํ•ด ๊ณต๊ฒฉ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ง„์งœ ๊ณต๊ฒฉ์ž์˜ ๊ตฌ์ฒด์ ์ธ ๋ฐœ์›์ง€๋ฅผ ์ฐพ๋Š” ๊ฒƒ์€ ๊ฑฐ์˜ ๋ถˆ๊ฐ€๋Šฅ
    • ๋งˆ์Šคํ„ฐ: ์ค‘๊ฐ„ ์ฆํญ๊ธฐ ์—ญํ• , ์—์ด์ „ํŠธ์—๊ฒŒ ๊ณต๊ฒฉ์ž์˜ ๋ช…๋ น ์ „๋‹ฌ
    • ์—์ด์ „ํŠธ: ์‹ค์ œ ๊ณต๊ฒฉ์„ ํ–‰ํ•˜๋Š” ์ฃผ์ฒด, ๋ณดํ†ต ์ž๊ธฐ๊ฐ€ ์ด์šฉ๋˜๋Š”์ง€๋„ ๋ชจ๋ฅธ๋‹ค.

๋„คํŠธ์›Œํฌ ๋ณด์•ˆ

๋„คํŠธ์›Œํฌ ํฌ๋žœ์‹

  • ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ „์†ก๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์ˆ˜์ง‘, ๋ถ„์„, ๋ณต์› ๋ฐ ํ•ด์„ ๋“ฑ์„ ํ†ตํ•ด ๋„คํŠธ์›Œํฌ ์ƒ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ณด์•ˆ ์‚ฌ๊ณ ๋‚˜ ๋ฒ”์ฃ„๋ฅผ ์กฐ์‚ฌํ•˜๋Š” ๊ธฐ์ˆ .
  • ์ˆ˜ํ–‰๊ณผ์ •: ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ → ๋ถ„์„  → ๋ณต์›   →  ํ•ด์„

Wireshark

  • ์„ธ๊ณ„์—์„œ ๊ฐ€์žฅ ๋„๋ฆฌ ์“ฐ์ด๋Š” ๋„คํŠธ์›Œํฌ ๋ถ„์„ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ๊ทธ๋žจ
  • ์‚ฌ์šฉ์ฒ˜
    • ๋ชจ์˜ํ•ดํ‚น - ์ทจ์•ฝ์  ๋ถ„์„
    • ์•…์„ฑ์ฝ”๋“œ ๋ถ„์„
    • ์นจํ•ด์‚ฌ๊ณ  ๋ถ„์„/ํฌ๋ Œ์‹ ๋ถ„์„(๋„คํŠธ์›Œํฌ ํฌ๋ Œ์‹) ๋“ฑ

https://www.wireshark.org/download.html

 

Wireshark · Download

Wireshark: The world's most popular network protocol analyzer

www.wireshark.org


 

 

โ–ถ ์ˆ˜์ง‘๋œ ํŒจํ‚ท๋“ค์„ ๋”๋ธ”ํด๋ฆญํ•ด์„œ ์ž์„ธํ•˜๊ฒŒ ๋ณด๋ฉด ํ”„๋ ˆ์ž„ ์ •๋ณด์™€ ์ด๋”๋„ท ์ •๋ณด, IPv4, TCP์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 


์ถœ์ฒ˜

21-1 ์ดํ™”์—ฌ๋Œ€ ๋„์ธ์‹ค ๊ต์ˆ˜๋‹˜์˜ ‘์‚ฌ์ด๋ฒ„๋ณด์•ˆ๊ฐœ๋ก ’ ๊ฐ•์˜์ž๋ฃŒ
 
๋„์„œ
์กฐ๋„ˆ์„ฌ ํ–„·์…ฐ๋ฆฌ ๋‹ค๋น„ํ† ํ”„, ใ€Ž๋„คํŠธ์›Œํฌ ํฌ๋ Œ์‹ ๋„คํŠธ์›Œํฌ ํŒจํ‚ท ๋ถ„์„์œผ๋กœ ํ•ดํ‚น์˜ ํ”์ ์„ ์ฐพ์•„๋ผใ€, ์—์ด์ฝ˜
ํฌ๋ฆฌ์Šค ์ƒŒ๋”์ฆˆ, ใ€Ž์™€์ด์–ด์ƒคํฌ๋ฅผ ํ™œ์šฉํ•œ ์‹ค์ „ ํŒจํ‚ท ๋ถ„์„ใ€, ์—์ด์ฝ˜
๊ฐ•์ต์„ , ใ€ŽC์–ธ์–ด๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๋„คํŠธ์›Œํฌ ํ•ดํ‚น ํ”„๋กœ๊ทธ๋ž˜๋ฐใ€, ๊ฐ€๋ฉ”์ถœํŒ์‚ฌ

'E-COPS > 14th ๋น„๊ธฐ๋„ˆ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

5. ๋””์ง€ํ„ธ ํฌ๋ Œ์‹  (2) 2024.09.12
4. ์‹œ์Šคํ…œ ํ•ดํ‚น  (2) 2024.09.12
3. ์•”ํ˜ธ  (2) 2024.09.07
1. ์›น ๋ณด์•ˆ  (0) 2024.08.29
728x90

๋ณด์•ˆ์˜ 3์š”์†Œ

Credibility (๊ธฐ๋ฐ€์„ฑ)

  • ์œ ์ถœ๋˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค, ํ”„๋ผ์ด๋ฒ„์‹œ
  • ํŠน์ • ๋ฐ์ดํ„ฐ๊ฐ€ ํ—ˆ๊ฐ€๋ฐ›์ง€ ์•Š๊ฑฐ๋‚˜ ์ธ์ฆ๋˜์ง€ ์•Š์€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋…ธ์ถœ๋˜์ง€ ์•Š๊ฒŒ ํ•˜๋Š” ๊ฒƒ
  • ๊ธฐ๋ฐ€์„ฑ ํ•ด์น˜๋Š” ๊ณต๊ฒฉ: ๋„์ฒญ, ์‚ฌํšŒ๊ณตํ•™, ์Šค๋‹ˆํ•‘, ์Šค๋ˆ„ํ•‘, Traffic Analysis
  • ๊ธฐ๋ฐ€์„ฑ ๋ณด์กด ๋ฐฉ๋ฒ•: Identification(์‹๋ณ„), ์ธ์ฆ, ๊ถŒํ•œ๋ถ€์—ฌ, ์•”ํ˜ธํ™” ๋“ฑ

Integrity (๋ฌด๊ฒฐ์„ฑ)

  • ์ •๋ณด๊ฐ€ ๋ณ€์งˆ๋˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค.
  • ๋ฐ์ดํ„ฐ๊ฐ€ ์•…์˜์ ์ธ ์‚ฌ์šฉ์ž์— ์˜ํ•ด ํŒŒ๊ดด๋˜๊ฑฐ๋‚˜, ๋ณ€ํ•˜๋ฉด ์•ˆ ๋œ๋‹ค.
  • ๋ฌด๊ฒฐ์„ฑ ํ•ด์น˜๋Š” ๊ณต๊ฒฉ: ์œ„์กฐ(Forgery), ๋ถ€์ธ(Repudiation)
  • ๋ฌด๊ฒฐ์„ฑ ๋ณด์กด ๋ฐฉ๋ฒ•: ์ ‘๊ทผ์ œ์–ด, ๋งค์‹œ์ง€(๋ฐ์ดํ„ฐ) ์ธ์ฆ ๋“ฑ

Availability (๊ฐ€์šฉ์„ฑ)

  • ์ธ์ฆ๋ฐ›์€ ์‚ฌ์šฉ์ž๋Š” ์‹œ์Šคํ…œ์ด๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
  • ๊ฐ€์šฉ์„ฑ์„ ํ•ด์น˜๋Š” ๊ณต๊ฒฉ: ์„œ๋น„์Šค๊ฑฐ๋ถ€๊ณต๊ฒฉ(DoS, Denial of Service), ๋ถ„์‚ฐ์„œ๋น„์Šค๊ฑฐ๋ถ€๊ณต๊ฒฉ(DDoS, Distributed DoS)
  • ๊ฐ€์šฉ์„ฑ ๋ณด์กด ๋ฐฉ๋ฒ•: ๋ฐฑ์—… ์†”๋ฃจ์…˜ ์‚ฌ์šฉ, ์นจ์ž… ํƒ์ง€ ์‹œ์Šคํ…œ ์šด์šฉ ๋“ฑ

Authentication (์ธ์ฆ)

  • ์ •๋ณด๊ฐ€ ์‚ฌ์‹ค์ด๊ณ , ๊ฒ€์ฆ๋˜๊ณ , ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
  • 1) ์ „์†ก ๊ณผ์ • 2) ๋ฉ”์‹œ์ง€ 3) ๋ฉ”์‹œ์ง€ ์ „์†ก์ž ๋ชจ๋‘๊ฐ€ ๊ฒ€์ฆ๋˜์–ด์•ผ ํ•œ๋‹ค.
  • ์ธ์ฆ์„ฑ์„ ํ•ด์น˜๋Š” ๊ณต๊ฒฉ: ๋ฉ”์‹œ์ง€ ๋ณ€์กฐ, ์ค‘๊ฐ„์ž ๊ณต๊ฒฉ(Man in the Middle Attack)
  • ์ธ์ฆ์„ฑ ๋ณด์กด ๋ฐฉ๋ฒ•: ๋ฉ”์‹œ์ง€ ์ธ์ฆ, ์ „์ž ์„œ๋ช…(Digital Signature)

Accountability (์ฑ…์ž„์ถ”์ ์„ฑ)

  • ์‚ฌ์šฉ์ž์˜ ๋ชจ๋“  ํ–‰๋™์— ๋Œ€ํ•œ ๋กœ๊ทธ๋ฅผ ๋‚จ๊ฒจ์„œ, ๋‚˜์ค‘์— ๊ณต๊ฒฉ์ด ์ผ์–ด๋‚˜๊ฑฐ๋‚˜ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ, ๋ถ„์„ํ•ด์„œ ์›์ธ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
  • ์ฑ…์ž„์ถ”์ ์„ฑ์„ ํ•ด์น˜๋Š” ๊ณต๊ฒฉ: ์ง๋ฌด ์œ ๊ธฐ, ๊ถŒํ•œ ๋‚จ·์˜ค์šฉ ๋“ฑ
  • ์ฑ…์ž„์ถ”์ ์„ฑ ๋ณด์กด ๋ฐฉ๋ฒ•: ์‹œ์Šคํ…œ ๋กœ๊ทธ ๊ด€๋ฆฌ, ํฌ๋ Œ์‹ ๋ถ„์„ ๋“ฑ

1. ์›น ๊ธฐ์ดˆ

์›น์ด๋ž€?

์›น (Web, World Wide Web)

  • ์ธํ„ฐ๋„ท์„ ๊ธฐ๋ฐ˜์œผ๋กœ, HTTP๋ฅผ ์ด์šฉํ•˜์—ฌ ์ •๋ณด๋ฅผ ๊ณต์œ ํ•˜๋Š” ์„œ๋น„์Šค
  • ์ธํ„ฐ๋„ท์— ์—ฐ๊ฒฐ๋œ ์ปดํ“จํ„ฐ๋“ค์ด ํ•˜์ดํผํ…์ŠคํŠธ ํ˜•์‹์œผ๋กœ ํ‘œํ˜„๋œ ๋‹ค์–‘ํ•œ ์ •๋ณด๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑํ•œ ์ „ ์„ธ๊ณ„์ ์ธ ์‹œ์Šคํ…œ
  • ์›น ์„œ๋ฒ„(Web Server)์™€ ์›น ํด๋ผ์ด์–ธํŠธ(Web Client)๋กœ ๊ตฌ์„ฑ
    • ์›น ์„œ๋ฒ„: ์›น ์„œ๋น„์Šค์—์„œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ฃผ์ฒด
    • ์›น ํด๋ผ์ด์–ธํŠธ: ์›น ์„œ๋น„์Šค์—์„œ ์ •๋ณด๋ฅผ ์ œ๊ณต๋ฐ›๋Š” ์ด์šฉ์ž

<์›น ๋™์ž‘ ์›๋ฆฌ์™€ ๊ตฌ์กฐ>


์›น ๋ฆฌ์†Œ์Šค

์›น์— ๊ฐ–์ถฐ์ง„ ์ •๋ณด ์ž์‚ฐ

ex) HTML(Hyper Text Markup Language), CSS(Cascading Style Sheets), JavaScript


HTTP์™€ HTTPS

<HTTP (HyperText Transfer Protocol)>

  • ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ์˜ ๋ฐ์ดํ„ฐ ๊ตํ™˜์„ ์š”์ฒญ(Request)๊ณผ ์‘๋‹ต(Response) ํ˜•์‹์œผ๋กœ ์ •์˜ํ•œ ํ”„๋กœํ† ์ฝœ
  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—๊ฒŒ ์š”์ฒญํ•˜๋ฉด, ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์‘๋‹ต
  • ๋ฌธ์„œ ๊ฐ„์˜ ์ƒํ˜ธ ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ํ…์ŠคํŠธ ๋ฐ ๋ฏธ๋””์–ด ์ œ๊ณต

<HTTP ๋ฉ”์‹œ์ง€>

  • HTTP ํ—ค๋“œ
    • ์ฒซ ์ค„์€ ์‹œ์ž‘ ์ค„(Start line), ๋‚˜๋จธ์ง€๋Š” ํ—ค๋”(Header)
    • ํ•„๋“œ์™€ ๊ฐ’์œผ๋กœ ๊ตฌ์„ฑ
    • HTTP ๋ฉ”์‹œ์ง€ ๋˜๋Š” ๋ฐ”๋””์˜ ์†์„ฑ ํ‘œํ˜„
  • HTTP ๋ฐ”๋””
    • ํ—ค๋“œ๊ฐ€ ๋๋‚œ ๋’ค์˜ ๋ชจ๋“  ์ค„์˜ ๋‚ด์šฉ
    • ํด๋ผ์ด์–ธํŠธ๋‚˜ ์„œ๋ฒ„์— ์ „์†กํ•˜๋Š” ๋ฐ์ดํ„ฐ ์ €์žฅ

<HTTP ์š”์ฒญ(Request)>

  • ์„œ๋ฒ„์— ํŠน์ • ๋™์ž‘์„ ์š”๊ตฌํ•˜๋Š” ๋ฉ”์‹œ์ง€
  • HTTP ์š”์ฒญ์˜ ์‹œ์ž‘ ์ค„์€ ๋ฉ”์†Œ๋“œ(Method), ์š”์ฒญ URL, HTTP ๋ฒ„์ „์œผ๋กœ ๊ตฌ์„ฑ

 

<HTTP ์‘๋‹ต(Reaponse)>

  • HTTP ์š”์ฒญ์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์‹œ์ง€
  • ์š”์ฒญ์— ๋Œ€ํ•œ ์ƒํƒœ ์ •๋ณด์™€ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „์†กํ•  ๋ฆฌ์†Œ์Šค๊ฐ€ ํฌํ•จ
  • HTTP ์‘๋‹ต์˜ ์‹œ์ž‘ ์ค„์€ HTTP ๋ฒ„์ „, ์ƒํƒœ ์ฝ”๋“œ(Status Code), ์ฒ˜๋ฆฌ ์‚ฌ์œ ๋กœ ๊ตฌ์„ฑ


<HTTPS (HTTPS over Secure socket layer)>

  • TLS๋ฅผ ์ด์šฉํ•˜์—ฌ HTTP์˜ ์ทจ์•ฝ์ ์„ ๋ณด์™„ํ•œ ํ”„๋กœํ† ์ฝœ
  • HTTP ์š”์ฒญ๊ณผ ์‘๋‹ต์€ ํ‰๋ฌธ์œผ๋กœ ์ด๋ฃจ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ํƒˆ์ทจ๋˜์—ˆ์„ ๋•Œ ์ •๋ณด ์œ ์ถœ ๊ฐ€๋Šฅ
    • Burp Suite๋กœ ํŒจํ‚ท์„ ํ™•์ธ → ID, Passowrd ๋“ฑ์ด ์œ ์ถœ๋  ์ˆ˜ ์žˆ์Œ
  • ์›น ์„œ๋ฒ„์˜ url์ด https://๋กœ ์‹œ์ž‘ → HTTPS ํ”„๋กœํ† ์ฝœ ์‚ฌ์šฉ

 

<TLS๋ฅผ ์ด์šฉํ•œ HTTP ์ทจ์•ฝ์  ๋ณด์™„>

TLS, Transport Layer Security

  • ์ „์†ก ๊ณ„์ธต์—์„œ ๋™์ž‘, client์™€ server ์‚ฌ์ด์— ์•ˆ์ „ํ•œ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ํŒจ๋„ ์ œ๊ณต
  • ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด์— ์˜ค๊ฐ€๋Š” ๋ชจ๋“  HTTP ๋ฉ”์‹œ์ง€ ์•”ํ˜ธํ™”
  • TLS๋Š” ๋ชจ๋“  HTTP ๋ฉ”์‹œ์ง€ ์•”ํ˜ธํ™” → ํŒจํ‚ท ํƒˆ์ทจ ์‹œ ๊ทธ ๋‚ด์šฉ์„ ์•Œ์•„๋‚ผ ์ˆ˜ ์—†๋‹ค.

2. ์ฟ ํ‚ค & ์„ธ์…˜

์ฟ ํ‚ค & ์„ธ์…˜

<HTTP์˜ ํŠน์ง•>

  • Connectionless
    • ํ•˜๋‚˜์˜ ์š”์ฒญ์— ํ•˜๋‚˜์˜ ์‘๋‹ต์„ ํ•œ ํ›„ ์—ฐ๊ฒฐ ์ข…๋ฃŒ.
    • ์š”์ฒญ๋งˆ๋‹ค ์ƒˆ๋กœ ์—ฐ๊ฒฐ
  • Stateless
    • ํ†ต์‹ ์ด ๋๋‚œ ํ›„ ์ƒํƒœ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š์Œ

โ–ถ HTTP: Request๋ฅผ ๋ณด๋‚ด๊ณ  ๋‚˜๋ฉด ์ •๋ณด๋ฅผ ๋‚จ๊ธฐ์ง€ ์•Š๊ฒ ๋‹ค.


<์ฟ ํ‚ค & ์„ธ์…˜>

  • ์›น ์„œ๋ฒ„๋Š” ์ˆ˜๋งŽ์€ ํด๋ผ์ด์–ธํŠธ์™€ HTTP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•ด ํ†ต์‹ ํ•œ๋‹ค.
  • ๋กœ๊ทธ์ธํ•˜๋Š” ์‚ฌ์šฉ์ž์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ์„œ๋น„์Šค(ํŽ˜์ด์ง€)๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•œ๋‹ค.
  • ์›น ์„œ๋ฒ„: ํด๋ผ์ด์–ธํŠธ ๊ตฌ๋ณ„ ๋ฐ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•œ๋‹ค.
    • ํด๋ผ์ด์–ธํŠธ์˜ IP ์ฃผ์†Œ๊ณผ User-Agent ์†์„ฑ์€ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ๊ณ ์œ ํ•˜์ง€ ์•Š์€ ์ •๋ณด → ์›น ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ ๊ธฐ์–ต ๋ถˆ๊ฐ€
  • ์ƒํƒœ ์œ ์ง€๋ฅผ ์œ„ํ•ด ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ์ฟ ํ‚ค(Cookie)์™€ ์„ธ์…˜(Session) ์‚ฌ์šฉ

<์ฟ ํ‚ค (Cookie)>

  • ์ธ์ฆ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฏผ๊ฐํ•œ ์ •๋ณด ๋ณด๊ด€
  • ๋ธŒ๋ผ์šฐ์ € ๋‚ด๋ถ€์— ์ €์žฅ
  • ๋ธŒ๋ผ์šฐ์ €๋Š” ์›น ์„œ๋น„์Šค์— ์ ‘์†ํ•  ๋•Œ ์ž๋™์œผ๋กœ ์ฟ ํ‚ค๋ฅผ ํ—ค๋”์— ํฌํ•จ์‹œ์ผœ ์š”์ฒญ ์ „์†ก
  • ์ฟ ํ‚ค: ํ‚ค(Key) : ๊ฐ’(Value)์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ์ผ์ข…์˜ ๋‹จ์œ„
  • ์ฒซ Request ์‹œ ์ฟ ํ‚ค ๋ฐœ๊ธ‰, ์ดํ›„ ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ๋งˆ๋‹ค ์ฟ ํ‚ค๋ฅผ ๊ฐ™์ด ์ „์†ก
  • ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์— ํฌํ•จ๋œ ์ฟ ํ‚ค ํ™•์ธ์œผ๋กœ ํด๋ผ์ด์–ธํŠธ ๊ตฌ๋ถ„ ๊ฐ€๋Šฅ
  • ์ฟ ํ‚ค์˜ ๋ชฉ์ : ํด๋ผ์ด์–ธํŠธ ์ •๋ณด ๊ธฐ๋ก ๋ฐ ์ƒํƒœ ์ •๋ณด ํ‘œํ˜„

<์ฟ ํ‚ค (Cookie) ๋ณ€์กฐ>

  • ์ฟ ํ‚ค: ํด๋ผ์ด์–ธํŠธ ๋ธŒ๋ผ์šฐ์ €์— ์ €์žฅ, ์š”์ฒญ์— ํฌํ•จ๋˜๋Š” ์ •๋ณด
  • ์•…์˜์ ์ธ ํด๋ผ์ด์–ธํŠธ๋Š” ์ฟ ํ‚ค ์ •๋ณด ๋ณ€์กฐ ํ›„ ์„œ๋ฒ„์— ์š”์ฒญ ๋ณด๋‚ด๊ธฐ ๊ฐ€๋Šฅ
  • ๋งŒ์•ฝ, ์„œ๋ฒ„๊ฐ€ ๊ฒ€์ฆ ์—†์ด ์ฟ ํ‚ค๋ฅผ ํ†ตํ•ด ์ธ์ฆ ์ •๋ณด ์‹๋ณ„ ์‹œ ํƒ€ ์ด์šฉ์ž ์‚ฌ์นญ์œผ๋กœ ์ •๋ณด ํƒˆ์ทจ ๊ฐ€๋Šฅ

<์„ธ์…˜ (Session)>

  • ์ธ์ฆ ์ •๋ณด๋ฅผ ์„œ๋ฒ„์— ์ €์žฅ
  • ํ•ด๋‹น ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ํ‚ค๋ฅผ ๋งŒ๋“ค์–ด ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „๋‹ฌ
  • ํ‚ค: ์ผ๋ฐ˜์ ์œผ๋กœ SessionID
  • ๋ธŒ๋ผ์šฐ์ €: SessionID๋ฅผ ์ฟ ํ‚ค์— ์ €์žฅ → HTTP ์š”์ฒญ ๋ณด๋‚ผ ๋•Œ ํ•ด๋‹น ํ‚ค ๊ฐ’ ์‚ฌ์šฉ
  • ์„œ๋ฒ„: ์š”์ฒญ์— ํฌํ•จ๋œ ํ‚ค์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€ ์ธ์ฆ ์ƒํƒœ ํ™•์ธ


SOP & CORS

<๋™์ผ ์ถœ์ฒ˜ ์ •์ฑ… (Same Origin Policy(SOP))>

  • ์‚ฌ์šฉ์ž๊ฐ€ ์•…์˜์ ์ธ ํŽ˜์ด์ง€ ์ ‘์†
    • ํŽ˜์ด์ง€๊ฐ€ JS๋ฅผ ์ด์šฉํ•ด ์ด์šฉ์ž์˜ SNS ์›น์„œ๋น„์Šค๋กœ ์š”์ฒญ ์ „์†ก
    • ๋ธŒ๋ผ์šฐ์ €๋Š” ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ ํ•ด๋‹น ์›น ์„œ๋น„์Šค์˜ ์ฟ ํ‚ค๋ฅผ ํฌํ•จ
    • JS๋กœ ์š”์ฒญ์„ ๋ณด๋‚ธ ํŽ˜์ด์ง€๋Š” ๋กœ๊ทธ์ธ๋œ ์ด์šฉ์ž์˜ SNS ์‘๋‹ต์„ ๋ฐ›์„ ๊ฒƒ
    • ๋งˆ์Œ๋Œ€๋กœ ํŽ˜์ด์ง€ ์ ‘์†์ž์˜ SNS์— ๊ธ€์„ ์˜ฌ๋ฆฌ๊ฑฐ๋‚˜ ์‚ญ์ œ, ๋ฉ”์‹ ์ € ์ฝ๊ธฐ ๊ฐ€๋Šฅ
    • → ์ด์™€ ๊ฐ™์€ ๋ฌธ์ œ ๋ฐฉ์ง€ ์œ„ํ•ด์„œ SOP ๋“ฑ์žฅ
  • ๊ฐ™์€ ์ถœ์ฒ˜(Origin)์˜ ์„œ๋ฒ„๋กœ๋งŒ ์š”์ฒญ์„ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค
  • Sheme, Host, Port ๋ชจ๋‘ ๋™์ผํ•ด์•ผ ํ•จ


<Cross Origin Resource Sharing (CORS)>

  • ๋‹ค๋ฅธ ์ถœ์ฒ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ๋•Œ๋ฌธ์— ๊ต์ฐจ ์ถœ์ฒ˜ ๋ฆฌ์†Œ์Šค ๊ณต์œ  (Cross Origin Resource Sharing) ๋“ฑ์žฅ
  • Cross Origin ๊ฐ„์— ๋ฆฌ์†Œ์Šค๋ฅผ ๊ณต์œ ํ•˜๋Š” ๋ฐฉ๋ฒ•
    • HTTP ํ—ค๋”
    • JSON

 

3. ๊ณต๊ฒฉ

์„œ๋ฒ„ ์‚ฌ์ด๋“œ (Server-Side)

  • ์„œ๋ฒ„ (์ œ๊ณต์ž) ์ธก์—์„œ ์ฆ‰์‹œ ์ฒ˜๋ฆฌ
  • ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌ, ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋ธŒ๋ผ์šฐ์ €์— ๋ณด๋‚ด๊ณ  ์‘๋‹ตํ•˜๋Š” ์—ญํ• 
  • ์›น ์„œ๋ฒ„์—์„œ ํ•˜๋Š” ์ž‘์—…
  • ํด๋ผ์ด์–ธํŠธ๋กœ ๋ณด๋‚ผ ์›น ํŽ˜์ด์ง€ ์ œ์ž‘
  • ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๊ณต๊ฒฉ
    • ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ์ทจ์•ฝ์ ์„ ํ†ตํ•ด ์„œ๋ฒ„ ๋‚ด์— ์กด์žฌํ•˜๋Š” ์‚ฌ์šฉ์ž๋“ค์˜ ์ •๋ณด๋ฅผ ํƒˆ์ทจํ•˜๊ฑฐ๋‚˜, ์„œ๋ฒ„์˜ ๊ถŒํ•œ์„ ์žฅ์•…

ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ (Client-Side)

  • ํด๋ผ์ด์–ธํŠธ (์‚ฌ์šฉ์ž) ์ธก์—์„œ ์ฒ˜๋ฆฌ
  • ์„œ๋น„์Šค๋ฅผ ์š”์ฒญํ•˜๋Š” ์—ญํ•  (ex. ์›น ํŽ˜์ด์ง€ ์š”์ฒญ)
  • ์›น์—์„œ์˜ ํด๋ผ์ด์–ธํŠธ = ์›น ๋ธŒ๋ผ์šฐ์ €
  • ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ๊ณต๊ฒฉ
    • ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ์ทจ์•ฝ์ ์„ ํ†ตํ•ด ์ด์šฉ์ž๋ฅผ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ ์„ธ์…˜ ๋ฐ ์ฟ ํ‚ค ์ •๋ณด๋ฅผ ํƒˆ์ทจํ•˜๊ณ  ํ•ด๋‹น ๊ณ„์ •์œผ๋กœ ์ž„์˜์˜ ๊ธฐ๋Šฅ ์ˆ˜ํ–‰

๊ณต๊ฒฉ ์œ ํ˜•

ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ (Client-Side) ์„œ๋ฒ„ ์‚ฌ์ด๋“œ (Server-Side)
Brute Force, Dictionary Attack

Cross-Site Scripting (XSS)

CSRF
Injection (SQL Injection, Command Injection ๋“ฑ)

File Vulnerability (File Inclusion, File Upload ๋“ฑ)

 

Brute Force

  • ๋ฌด์ฐจ๋ณ„ ๋Œ€์ž… ๊ณต๊ฒฉ, ํŠน์ • ์•”ํ˜ธ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ฐ’์„ ๋Œ€์ž…
  • ๋Œ€๋ถ€๋ถ„์˜ ์•”ํ˜ธํ™” ๋ฐฉ์‹์€ ์ด๋ก ์ ์œผ๋กœ ๋ฌด์ฐจ๋ณ„ ๋Œ€์ž… ๊ณต๊ฒฉ์— ์•ˆ์ „ํ•˜์ง€ ๋ชปํ•˜๋ฉฐ, ์ถฉ๋ถ„ํ•œ ์‹œ๊ฐ„์ด ์กด์žฌํ•œ๋‹ค๋ฉด ์•”ํ˜ธํ™”๋œ ์ •๋ณด๋ฅผ ํ•ด๋… ๊ฐ€๋Šฅ

Dictionary Attack

  • ์‚ฌ์ „์— ์žˆ๋Š” ๋‹จ์–ด๋ฅผ ์•Œ์•„๋‚ด๊ฑฐ๋‚˜ ํ•ด๋…ํ•˜๋Š” ์ปดํ“จํ„ฐ ๊ณต๊ฒฉ๋ฒ•
  • ์‚ฌ์ „์— ์žˆ๋Š” ๋‹จ์–ด๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ž…๋ ฅ
  • ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ apple123์ด๋ผ๋ฉด dictionary์—์„œ apple123์„ ์ฐพ์Œ
    • ์ผ๋ฐ˜์ ์œผ๋กœ brute force๋ณด๋‹ค ๋น ๋ฅด์ง€๋งŒ, erjelrj124 ๊ฐ™์€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์“ด๋‹ค๋ฉด ํšจ๊ณผ์ ์ด์ง€ X

XSS

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ ๊ฐ™์€ ์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ์ด์šฉํ•ด ์ทจ์•ฝํ•œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ†ตํ•ด ํด๋ผ์ด์–ธํŠธ ์ชฝ์˜ ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๊ณต๊ฒฉํ•˜๋Š” ๊ธฐ๋ฒ•

CSRF

  • CSRF(Cross site Request Forgery): ์‚ฌ์ดํŠธ ๊ฐ„ ์š”์ฒญ ์œ„์กฐ
  • ํ”ผ์‹ฑ์„ ํ™œ์šฉํ•ด ์‚ฌ์šฉ์ž ๋ชจ๋ฅด๊ฒŒ ํŒจ์Šค์›Œ๋“œ๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉ
  • ์‚ฌ์šฉ์ž๊ฐ€ ํ”ผ์‹ฑ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜๋Š” ์‹œ์ ์— ํ•ด์ปค๊ฐ€ ์›ํ•˜๋Š” ์‚ฌ์ดํŠธ์— ๋กœ๊ทธ์ธ๋˜์–ด์žˆ์–ด์•ผ ์„ฑ๊ณต → ๋กœ๊ทธ์ธ๋˜์–ด์žˆ๋Š” ์ƒํƒœ์—ฌ์•ผ ์„ธ์…˜ ์ฟ ํ‚ค๊ฐ€ ์ž๋™์œผ๋กœ ํฌํ•จ

SQL Injection

  • ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์— ์ „์†ก๋˜๋Š” SQL ์ฟผ๋ฆฌ๋ฌธ์„ ์กฐ์ž‘ํ•˜์—ฌ, ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€์กฐํ•˜๊ฑฐ๋‚˜ ํ—ˆ๊ฐ€๋˜์ง€ ์•Š์€ ์ •๋ณด์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฒฉ
  • ์˜ˆ์ „๋ถ€ํ„ฐ ์ตœ๊ทผ๊นŒ์ง€ ๊พธ์ค€ํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜๋Š” ์›น ๊ณต๊ฒฉ

Command Injection

  • OS์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด (OS command)๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ๊ฐ’์„ ๊ฒ€์ฆํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ํŠน์ˆ˜ ๋ฌธ์ž๋ฅผ ์ด์šฉํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ ํ•จ๊ป˜ ์‹คํ–‰ ๊ฐ€๋Šฅ
  • ์‰˜ ๋ช…๋ น์— ์—ฌ๋Ÿฌ ๊ฐ€์ง€ charcter(; | & ๋“ฑ)๋ฅผ ์ด์šฉํ•ด ๊ฐœ๋ฐœ์ž๊ฐ€ ์˜๋„ํ•˜์ง€ ์•Š์€ ๋ช…๋ น์–ด๋ฅผ ํ•ด์ปค๊ฐ€ ์ž„์˜๋กœ ์‹คํ–‰ํ•˜๊ฒŒ ํ•˜๋Š” ๊ณต๊ฒฉ

File Inclusion

  • PHP์—์„œ include() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ์ง€์ •ํ•œ ํŒŒ์ผ์„ ์ง์ ‘ ์†Œ์Šค์ฝ”๋“œ์— ์‚ฝ์ž…ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•˜๋Š” ๊ณต๊ฒฉ ์œ ํ˜•
  • LFI(Local File Includion): ์ด๋ฏธ ์‹œ์Šคํ…œ์— ์กด์žฌํ•˜๋Š” ํŒŒ์ผ์„ include
  • RFIL(Remote File Inclusion): ์™ธ๋ถ€์— ์žˆ๋Š” ํŒŒ์ผ์„ ์›๊ฒฉ์œผ๋กœ include, LFI๋ณด๋‹ค ๋” ๊ฐ•๋ ฅํ•œ ๊ณต๊ฒฉ

File Upload

  • ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์ด ์žˆ๋‹ค๋ฉด ์‹œ๋„ ๊ฐ€๋Šฅ
  • ํŒŒ์ผ์ด ์—…๋กœ๋“œ๋˜๋Š” ํŽ˜์ด์ง€(๊ฒŒ์‹œํŒ, SNS ๋“ฑ)์— ์•…์„ฑ ํŒŒ์ผ(์›น์‰˜)์„ ์—…๋กœ๋“œ
  • ๊ณต๊ฒฉ ๊ณผ์ •
    1. ์ด๋ฏธ์ง€ ์—…๋กœ๋“œํ•˜๋Š” ๊ณณ์ด ์กด์žฌ
    2. ํ•ด์ปค๊ฐ€ ์ด๋ฏธ์ง€ ๋Œ€์‹  ์›น์…€์„ ์—…๋กœ๋“œ
    3. ์ด๋ฏธ์ง€ ํŒŒ์ผ์ธ์ง€ ์ œ๋Œ€๋กœ ๊ฒ€์‚ฌํ•˜์ง€ ์•Š์œผ๋ฉด ์›น์‰˜์ด ์ €์žฅ
    4. ํ•ด์ปค๊ฐ€ ์›น์‰˜์— ์ ‘๊ทผํ•˜๊ฒŒ ๋˜๋ฉด ์›น์‰˜์ด ์‹คํ–‰

์ฝ”๋“œ ์ฝ๋Š” ๋ฒ• (Python Flask)

ํŒŒ์ด์ฌ Flask

์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ํŒŒ์ด์ฌ ํ”„๋ ˆ์ž„์›Œํฌ

 

Route ๊ธฐ๋Šฅ

์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ ‘๊ทผ ์‹œ, ์ž…๋ ฅํ•˜๋Š” ์ฃผ์†Œ์— ๋”ฐ๋ผ ํŠน์ • ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋˜๊ฒŒ ํ•จ

 

์ฝ”๋“œ ์ฝ๋Š” ๋ฒ• (python Flask)

 

GET, POST ๋ฉ”์†Œ๋“œ

์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐ์ดํ„ฐ ์ „์†ก๋ฐ›๋Š” ๋ฐฉ์‹

  • GET: ๋ฐ์ดํ„ฐ๋ฅผ URL์— ํฌํ•จํ•ด ์š”์ฒญ
  • POST: URL์— ํฌํ•จํ•˜์ง€ ์•Š๊ณ  HTTP ํ—ค๋” ๋ณธ๋ฌธ์—์„œ ์š”์ฒญ

request.args.get()
: GET ์š”์ฒญ์ผ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ ๋ฐ›์•„์˜ค๊ธฐ

request.from.get()
: POST ์š”์ฒญ์ผ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ

 

ํ•„ํ„ฐ๋ง

XSS, CSRF, Injection ๋“ฑ์˜ ๊ณต๊ฒฉ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด ํ‚ค์›Œ๋“œ๋ฅผ ํ•„ํ„ฐ๋งํ•˜๋Š” ๊ฒฝ์šฐ ๋งŽ์Œ


๊น€์ข…๊ธธ ๊ต์ˆ˜๋‹˜ ์›น ๋ณด์•ˆ ๋ฐ ์‹ค์Šต ๊ฐ•์˜์ž๋ฃŒ
ํ™”์ดํŠธ ํ•ด์ปค๊ฐ€ ๋˜๊ธฐ ์œ„ํ•œ 8๊ฐ€์ง€ ์›น ํ•ดํ‚น ๊ธฐ์ˆ 

https://sangwoo0727.github.io/web/Web-2.webApp/

'E-COPS > 14th ๋น„๊ธฐ๋„ˆ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

5. ๋””์ง€ํ„ธ ํฌ๋ Œ์‹  (2) 2024.09.12
4. ์‹œ์Šคํ…œ ํ•ดํ‚น  (2) 2024.09.12
3. ์•”ํ˜ธ  (2) 2024.09.07
2. ๋„คํŠธ์›Œํฌ ๋ณด์•ˆ  (2) 2024.09.01

+ Recent posts