Archive for Dev. (junyup2)

지식을 μ±„μ›Œκ°€λŠ” γ€Žκ°œλ°œμž/ν™”μ΄νŠΈν•΄μ»€γ€λ₯Ό λͺ©ν‘œλ‘œ μ •λ¦¬ν•˜λŠ” λΈ”λ‘œκ·Έ

λͺ¨μ˜ν•΄ν‚Ή 점검기쀀/μ£Όν†΅κΈ°λ°˜

μ£Όν†΅κΈ°λ°˜ μ‚΄νŽ΄λ³΄κΈ° (μ›Ή WEB)

Gearvirus(junyup2) 2024. 2. 21. 23:20

μ£Όν†΅κΈ°λ°˜ - μ›Ή (WEB)

μ£Όμš”μ •λ³΄ν†΅μ‹ κΈ°λ°˜μ‹œμ„€ - 기술적 취약점 뢄석 · 평가 방법

μ£Όν†΅κΈ°λ°˜ 파일 λ‹€μš΄λ‘œλ“œ - KISA ν•œκ΅­μΈν„°λ„·μ§„ν₯원

https://www.kisa.or.kr/2060204/form?postSeq=12&lang_type=KO&page=1

 

KISA ν•œκ΅­μΈν„°λ„·μ§„ν₯원

 

www.kisa.or.kr

μœ„μ˜ μ£Όν†΅κΈ°λ°˜ μ›Ή 취약점 쀑 λͺ‡κ°€μ§€λ₯Ό κ³¨λΌμ„œ κ°„λ‹¨ν•˜κ²Œ μ‚΄νŽ΄λ³΄λ €ν•œλ‹€.

5. SQL μΈμ μ…˜ (SI)

취약점 κ°œμš”

μ κ²€λ‚΄μš©
μ›Ή νŽ˜μ΄μ§€ λ‚΄μ˜ SQL μΈμ μ…˜ 취약점 쑴재 μ—¬λΆ€λ₯Ό μ κ²€ν•œλ‹€.

점검λͺ©μ 
λŒ€ν™”ν˜• μ›Ή μ‚¬μ΄νŠΈμ— 비정상적인 μ‚¬μš©μž μž…λ ₯ κ°’ ν—ˆμš©μ„ μ°¨λ‹¨ν•˜μ—¬ μ•…μ˜μ μΈ λ°μ΄ν„°λ² μ΄μŠ€ μ ‘κ·Ό 및 μ‘°μž‘μ„ λ°©μ§€ν•˜κΈ° μœ„ν•¨μ΄λ‹€.

λ³΄μ•ˆμœ„ν˜‘
ν•΄λ‹Ή 취약점이 μ‘΄μž¬ν•˜λŠ” 경우, 비정상적인 SQL 쿼리둜 DBMS 및 데이터(Data)λ₯Ό μ—΄λžŒν•˜κ±°λ‚˜ μ‘°μž‘ κ°€λŠ₯ν•˜λ―€λ‘œ μ‚¬μš©μžμ˜ μž…λ ₯ 값에 λŒ€ν•œ 필터링을 κ΅¬ν˜„ν•΄μ•Όν•œλ‹€.

β€» SQL μΈμ μ…˜ : μ‚¬μš©μžμ˜ μž…λ ₯ κ°’μœΌλ‘œ μ›Ή μ‚¬μ΄νŠΈ SQL 쿼리가 μ™„μ„±λ˜λŠ” 약점을 μ΄μš©ν•˜λ©°, μž…λ ₯ 값을 λ³€μ‘°ν•˜μ—¬ 비정상적인 SQL 쿼리λ₯Ό μ‘°ν•©ν•˜κ±°λ‚˜ μ‹€ν–‰ν•˜λŠ” 곡격으둜, κ°œλ°œμžκ°€ 생각지 λͺ»ν•œ SQL문을 μ‹€ν–‰λ˜κ²Œ ν•¨μœΌλ‘œμ¨ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό λΉ„μ •μƒμ μœΌλ‘œ μ‘°μž‘μ΄ κ°€λŠ₯ν•˜λ‹€.

μ κ²€λŒ€μƒ 및 νŒλ‹¨κΈ°μ€€

λŒ€μƒ : μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ†ŒμŠ€μ½”λ“œ, μ›Ή λ°©ν™”λ²½

νŒλ‹¨κΈ°μ€€
μž„μ˜λ‘œ μž‘μ„±λœ SQL 쿼리 μž…λ ₯에 λŒ€ν•œ 검증이 이루어지지 μ•ŠλŠ” κ²½μš°μ— μ·¨μ•½ν•˜λ‹€κ³  νŒλ‹¨ν•œλ‹€.

μ‘°μΉ˜λ°©λ²•
μ†ŒμŠ€μ½”λ“œμ— SQL 쿼리λ₯Ό μž…λ ₯κ°’μœΌλ‘œ λ°›λŠ” ν•¨μˆ˜λ‚˜ μ½”λ“œλ₯Ό μ‚¬μš©ν•  경우, μž„μ˜μ˜ SQL 쿼리 μž…λ ₯에 λŒ€ν•œ 검증 λ‘œμ§μ„ κ΅¬ν˜„ν•˜μ—¬ μ„œλ²„μ— κ²€μ¦λ˜μ§€ μ•ŠλŠ” SQL 쿼리 μš”μ²­μ‹œ μ—λŸ¬νŽ˜μ΄μ§€κ°€ μ•„λ‹Œ 정상 νŽ˜μ΄μ§€κ°€ λ°˜ν™˜λ˜λ„λ‘ 필터링 μ²˜λ¦¬ν•˜κ³  μ›Ή 방화벽에 SQL μΈμ μ…˜ κ΄€λ ¨ 룰셋을 μ μš©ν•˜μ—¬ SQL μΈμ μ…˜ 곡격을 μ°¨λ‹¨ν•œλ‹€.

점검 및 μ‘°μΉ˜λ°©μ•ˆ

점검방법
Step 1) μ‚¬μš©μž μž…λ ₯ 값에 νŠΉμˆ˜λ¬Έμžλ‚˜ μž„μ˜μ˜ SQL 쿼리λ₯Ό μ‚½μž…ν•˜μ—¬ DB μ—λŸ¬ νŽ˜μ΄μ§€κ°€ λ°˜ν™˜λ˜λŠ”μ§€ ν™•μΈν•œλ‹€.
Step 2) μ‚¬μš©μž μž…λ ₯ 값에 μž„μ˜μ˜ SQL μ°Έ, 거짓 쿼리λ₯Ό μ‚½μž…ν•˜μ—¬ μ°Έ, 거짓 쿼리에 따라 λ°˜ν™˜λ˜λŠ” νŽ˜μ΄μ§€κ°€ λ‹€λ₯Έμ§€ ν™•μΈν•œλ‹€.
Step 3) 둜그인 νŽ˜μ΄μ§€μ— 참이 λ˜λŠ” SQL 쿼리λ₯Ό μ „λ‹¬ν•˜μ—¬ λ‘œκ·ΈμΈλ˜λŠ”μ§€ ν™•μΈν•œλ‹€.

λ³΄μ•ˆμ„€μ •λ°©λ²•
* SQL 쿼리에 μ‚¬μš©λ˜λŠ” λ¬Έμžμ—΄μ˜ μœ νš¨μ„±μ„ κ²€μ¦ν•˜λŠ” λ‘œμ§μ„ κ΅¬ν˜„ν•œλ‹€.
(μž…λ ₯ κ°’μ—μ„œ 특수문자λ₯Ό μ œκ±°ν•˜μ—¬ λ°”μΈλ”©ν•˜λŠ” μ†ŒμŠ€λ₯Ό κ΅¬ν˜„ν•œλ‹€.)
* λ‹€μŒκ³Ό 같은 특수문자λ₯Ό μ‚¬μš©μž μž…λ ₯κ°’μœΌλ‘œ 받지 λͺ»ν•˜λ„λ‘ν•œλ‹€.
문자 데이터 κ΅¬λΆ„κΈ°ν˜Έ( ' ), 쿼리 ꡬ뢄 기호 ( ; ), 해당라인 주석 ꡬ뢄 기호( -- , # ), ꡬ문 주석( /* */)
* Dynamic SQL ꡬ문 μ‚¬μš©μ„ μ§€μ–‘ν•˜λ©° νŒŒλΌλ―Έν„°μ— λ¬Έμžμ—΄ 검사λ₯Ό ν•„μˆ˜μ μœΌλ‘œ μ μš©ν•œλ‹€.
(PreparedStatement 객체λ₯Ό μ‚¬μš©ν•œλ‹€. μ™ΈλΆ€ μž…λ ₯ 값이 μœ„μΉ˜ν•˜λŠ” 뢀뢄을 "?" 둜 μ„€μ •ν•˜μ—¬ μ‹€ν–‰ μ‹œ ν•΄λ‹Ή νŒŒλΌλ―Έν„°κ°€ μ‹€ν–‰λ˜λ„λ‘ μˆ˜μ •ν•œλ‹€. - Static SQL ꡬ문을 μ‚¬μš©ν•œλ‹€.)
* μ‹œμŠ€ν…œμ—μ„œ μ œκ³΅ν•˜λŠ” μ—λŸ¬λ©”μ‹œμ§€ 및 DBMSμ—μ„œ μ œκ³΅ν•˜λŠ” μ—λŸ¬ μ½”λ“œκ°€ λ…ΈμΆœλ˜μ§€ μ•Šλ„λ‘ μ˜ˆμ™Έμ²˜λ¦¬ν•œλ‹€.

β€» λ¬Έμžμ—΄ μœ νš¨μ„± 검증 둜직 κ΅¬ν˜„ μ‹œ μ›Ή μ„œλΉ„μŠ€μ—μ„œ μ‚¬μš©ν•˜κ³  μžˆλŠ” λͺ…λ Ήμ–΄ 및 νŠΉμˆ˜λ¬Έμžκ°€ 필터링 λ˜μ–΄ μž₯μ• κ°€ λ°œμƒν•  수 μžˆμœΌλ―€λ‘œ 사전 영ν–₯ 뢄석이 ν•„μš”ν•˜λ‹€.

 

8. 디렉터리 인덱싱 (DI)

취약점 κ°œμš”

μ κ²€λ‚΄μš©
μ›Ή μ„œλ²„ λ‚΄ 디렉터리 인덱싱 취약점 쑴재 μ—¬λΆ€λ₯Ό μ κ²€ν•œλ‹€.

점검λͺ©μ 
디렉터리 인덱싱 취약점을 μ œκ±°ν•˜μ—¬, νŠΉμ • 디렉터리 λ‚΄μ˜ λΆˆν•„μš”ν•œ 파일 μ •λ³΄μ˜ λ…ΈμΆœμ„ μ°¨λ‹¨ν•œλ‹€.

λ³΄μ•ˆμœ„ν˜‘
ν•΄λ‹Ή 취약점이 μ‘΄μž¬ν•˜λŠ” 경우, λΈŒλΌμš°μ €λ₯Ό 톡해 νŠΉμ • 디렉터리 λ‚΄ 파일 리슀트λ₯Ό λ…ΈμΆœν•˜μ—¬ μ‘μš©μ‹œμŠ€ν…œμ˜ ꡬ쑰λ₯Ό 외뢀에 ν—ˆμš©ν•  수 있고, λ―Όκ°ν•œ 정보가 ν¬ν•¨λœ μ„€μ • 파일 등이 λ…ΈμΆœλ  경우 λ³΄μ•ˆμƒ μ‹¬κ°ν•œ μœ„ν—˜μ„ μ΄ˆλž˜ν•  수 μžˆλ‹€.

β€» 디렉터리 인덱싱 취약점 : νŠΉμ • 디렉터리에 초기 νŽ˜μ΄μ§€ 파일이 μ‘΄μž¬ν•˜μ§€ μ•Šμ„ λ•Œ μžλ™μœΌλ‘œ 디렉터리 리슀트λ₯Ό 좜λ ₯ν•˜λŠ” 취약점이닀.

μ κ²€λŒ€μƒ 및 νŒλ‹¨κΈ°μ€€

λŒ€μƒ : μ›Ή μ„œλ²„

νŒλ‹¨κΈ°μ€€
디렉터리 파일 λ¦¬μŠ€νŠΈκ°€ λ…ΈμΆœλ˜λŠ” κ²½μš°μ— μ·¨μ•½ν•˜λ‹€κ³  νŒλ‹¨ν•œλ‹€.

μ‘°μΉ˜λ°©λ²•
μ›Ή μ„œλ²„ 섀정을 λ³€κ²½ν•˜μ—¬ 디렉터리 파일 λ¦¬μŠ€νŠΈκ°€ λ…ΈμΆœλ˜μ§€ μ•Šλ„λ‘ μ„€μ •ν•œλ‹€.

점검 및 μ‘°μΉ˜λ°©μ•ˆ

점검방법
Step 1) URL 경둜 쀑 ν™•μΈν•˜κ³ μž ν•˜λŠ” λ””λ ‰ν„°λ¦¬κΉŒμ§€λ§Œ μ£Όμ†Œμ°½μ— μž…λ ₯ν•˜μ—¬ 인덱싱 μ—¬λΆ€λ₯Ό ν™•μΈν•œλ‹€.
Step 2) 디렉터리 끝에 %3f.jsp λ¬Έμžμ—΄μ„ λΆ™μ—¬ 디렉터리 인덱싱이 λ˜λŠ”μ§€ ν™•μΈν•œλ‹€.
(Apache μ„œλ²„μ—μ„œ μ’…μ’… λ˜λŠ” κ²½μš°κ°€ μžˆλŠ” ꡬ문이닀.)

λ³΄μ•ˆμ„€μ •λ°©λ²•
* μ›Ή μ„œλ²„ ν™˜κ²½μ„€μ •μ—μ„œ 디렉터리 인덱싱 κΈ°λŠ₯을 μ œκ±°ν•œλ‹€.

 

9. 정보 λˆ„μΆœ (IL)

취약점 κ°œμš”

μ κ²€λ‚΄μš©
μ›Ή μ„œλΉ„μŠ€ μ‹œ λΆˆν•„μš”ν•œ 정보가 λ…ΈμΆœλ˜λŠ”μ§€ μ—¬λΆ€λ₯Ό μ κ²€ν•œλ‹€.

점검λͺ©μ 
μ›Ή μ„œλΉ„μŠ€ μ‹œ λΆˆν•„μš”ν•œ 정보가 λ…ΈμΆœλ˜λŠ” 것을 λ°©μ§€ν•¨μœΌλ‘œμ¨ 2μ°¨ 곡격에 ν™œμš©λ  수 μžˆλŠ” 정보 λ…ΈμΆœμ„ μ°¨λ‹¨ν•˜κΈ° μœ„ν•¨μ΄λ‹€.

λ³΄μ•ˆμœ„ν˜‘
μ›Ήμ‚¬μ΄νŠΈμ— μ€‘μš”μ •λ³΄(κ°œμΈμ •λ³΄, 계정정보, κΈˆμœ΅μ •λ³΄ λ“±)κ°€ λ…ΈμΆœλ˜κ±°λ‚˜ μ—λŸ¬ λ°œμƒμ‹œ κ³Όλ„ν•œ 정보(μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 정보, DB정보, μ›Ή μ„œλ²„ ꡬ성 정보, 개발 κ³Όμ •μ˜ μ½”λ©˜νŠΈ λ“±)κ°€ λ…ΈμΆœλ  경우 κ³΅κ²©μžλ“€μ˜ 2μ°¨ 곡격을 μœ„ν•œ μ •λ³΄λ‘œ ν™œμš©λ  수 μžˆλ‹€.

μ κ²€λŒ€μƒ 및 νŒλ‹¨κΈ°μ€€

λŒ€μƒ : μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ†ŒμŠ€μ½”λ“œ, μ›Ή μ„œλ²„

νŒλ‹¨κΈ°μ€€
μ›Ή μ‚¬μ΄νŠΈμ— μ€‘μš”μ •λ³΄κ°€ λ…ΈμΆœλ˜κ±°λ‚˜, μ—λŸ¬ λ°œμƒ μ‹œμ— κ³Όλ„ν•œ 정보가 λ…ΈμΆœλ˜λŠ” κ²½μš°μ— μ·¨μ•½ν•˜λ‹€κ³  νŒλ‹¨ν•œλ‹€.

μ‘°μΉ˜λ°©λ²•
μ›Ή μ‚¬μ΄νŠΈμ— λ…ΈμΆœλ˜λŠ” μ€‘μš”μ •λ³΄λŠ” λ§ˆμŠ€ν‚Ήμ„ μ μš©ν•˜μ—¬μ•Ό ν•˜λ©°, λ°œμƒ κ°€λŠ₯ν•œ μ—λŸ¬μ— λŒ€ν•΄ μ΅œμ†Œν•œμ˜ 정보 λ˜λŠ” 사전에 μ€€λΉ„λœ λ©”μ‹œμ§€λ§Œ 좜λ ₯ν•˜λ„λ‘ ν•œλ‹€.

점검 및 μ‘°μΉ˜λ°©μ•ˆ

점검방법
Step 1) μ›Ή μ‚¬μ΄νŠΈμ— μ€‘μš”μ •λ³΄κ°€ ν‰λ¬ΈμœΌλ‘œ λ…ΈμΆœλ˜κ³  μžˆλŠ”μ§€ ν™•μΈν•œλ‹€.
Step 2) μ›Ή νŽ˜μ΄μ§€μ— λ§ˆμŠ€ν‚Ή 된 μ€‘μš”μ •λ³΄κ°€ μ›Ή νŽ˜μ΄μ§€ μ†ŒμŠ€μ— ν‰λ¬ΈμœΌλ‘œ λ…ΈμΆœλ˜κ³  μžˆλŠ”μ§€ ν™•μΈν•œλ‹€.
Step 3) μ—λŸ¬ λ©”μ‹œμ§€ λ˜λŠ” μ—λŸ¬ νŽ˜μ΄μ§€μ—μ„œ κ³Όλ„ν•œ 정보가 λ…ΈμΆœλ˜λŠ”μ§€ ν™•μΈν•œλ‹€.
Step 4) μΈμ½”λ”©λœ μ€‘μš” μ •λ³΄λŠ” λ””μ½”λ”© κ°€λŠ₯ν•œμ§€ ν™•μΈν•œλ‹€.
Step 5) μž„μ˜μ˜ κ³„μ •μœΌλ‘œ λ‘œκ·ΈμΈμ„ μ‹œλ„ν•˜μ—¬ λ°˜ν™˜λ˜λŠ” μ—λŸ¬ λ©”μ‹œμ§€λ₯Ό 톡해 νŠΉμ • ID의 κ°€μž… μ—¬λΆ€λ₯Ό 식별할 수 μžˆλŠ”μ§€ ν™•μΈν•œλ‹€.

λ³΄μ•ˆμ„€μ •λ°©λ²•
* μ‚¬μš©μžκ°€ μ£Όλ―Όλ“±λ‘λ²ˆν˜Έ λ’·μžλ¦¬, λΉ„λ°€λ²ˆν˜Έ μž…λ ₯ μ‹œ λ³„ν‘œλ‘œ ν‘œμ‹œν•˜λŠ” λ“± λ§ˆμŠ€ν‚Ή 처리λ₯Ό ν•˜μ—¬ μ£Όλ³€ μ‚¬λžŒλ“€μ—κ²Œ λ…ΈμΆœλ˜μ§€ μ•Šλ„λ‘ ν•œλ‹€.
* κ°œμΈμ •λ³΄μ˜ 쑰회, 좜λ ₯ μ‹œ λ‹€μŒκ³Ό 같은 μ›μΉ™μœΌλ‘œ 일뢀 정보에 λ§ˆμŠ€ν‚Ήμ„ μ μš©ν•˜μ—¬ ν‘œμ‹œν•œλ‹€.
1) μ„±λͺ… 쀑 μ΄λ¦„μ˜ κ°€μš΄λ° κΈ€μž(ex : 홍*동)
2) 생년월일 (ex : ****λ…„ **μ›” **일)
3) μ „ν™”λ²ˆν˜Έ (ex : 010-****-5678)
4) μ£Όμ†Œμ˜ 읍/λ©΄/동 (ex : μ„œμšΈμ‹œ 노원ꡬ ***동)
5) IPv4 μ£Όμ†Œμ˜ 경우 : 17~24bit / IPv6 μ£Όμ†Œμ˜ 경우 113~128bit
* μ›Ή νŽ˜μ΄μ§€λ₯Ό 운영 μ„œλ²„μ— 이관 μ‹œ 주석(Comment)λŠ” λͺ¨λ‘ μ œκ±°ν•˜μ—¬ μ΄κ΄€ν•œλ‹€.
* μ€‘μš”μ •λ³΄(κ°œμΈμ •λ³΄, 계정정보, κΈˆμœ΅μ •λ³΄ λ“±)λ₯Ό HTML μ†ŒμŠ€μ— ν¬ν•¨ν•˜μ§€ μ•Šλ„λ‘ ν•œλ‹€.
* 둜그인 μ‹€νŒ¨ μ‹œ λ°˜ν™˜λ˜λŠ” μ—λŸ¬ λ©”μ‹œμ§€λŠ” νŠΉμ • ID의 κ°€μž… μ—¬λΆ€λ₯Ό 식별할 수 없도둝 κ΅¬ν˜„ν•œλ‹€.
* μ—λŸ¬ μ½”λ“œμ— λŒ€ν•˜μ—¬ λ³„λ„μ˜ μ—λŸ¬ νŽ˜μ΄μ§€λ‘œ Redirect ν•˜κ±°λ‚˜ μ μ ˆν•œ μ—λŸ¬μ²˜λ¦¬ 루틴을 μ„€μ •ν•˜μ—¬ μ²˜λ¦¬ν•˜λ„λ‘ν•œλ‹€.

 

10. μ•…μ„± μ½˜ν…μΈ  (CS)

취약점 κ°œμš”

μ κ²€λ‚΄μš©
κ²Œμ‹œνŒ 등에 μ•…μ„± μ½˜ν…μΈ  μ‚½μž… 및 μ‹€ν–‰ μ—¬λΆ€λ₯Ό μ κ²€ν•œλ‹€.

점검λͺ©μ 
μ‚¬μ΄νŠΈ λ‚΄μ˜ μ•…μ˜μ μΈ μ½˜ν…μΈ  μ‚½μž… 및 싀행을 λ°©μ§€ν•˜κΈ° μœ„ν•¨μ΄λ‹€.

λ³΄μ•ˆμœ„ν˜‘
μ›Ή μ‚¬μ΄νŠΈ κ²Œμ‹œνŒ, λŒ“κΈ€, μžλ£Œμ‹€ 등에 정상적인 μ½˜ν…μΈ  λŒ€μ‹  μ•…μ„± μ½˜ν…μΈ λ₯Ό μ£Όμž…ν•˜μ—¬ 싀행될 경우 μ‚¬μš©μžκ°€ ν•΄λ‹Ή μ½˜ν…μΈ  μ—΄λžŒμ‹œ μ•…μ„±μ½”λ“œ 감염 및 μ›Ή νŽ˜μ΄μ§€ λ³€μ‘° λ“± λ³΄μ•ˆμƒ μ‹¬κ°ν•œ μœ„ν—˜μ— λ…ΈμΆœλ  수 μžˆλ‹€.

β€» κΈ°λ°˜μ‹œμ„€ νŠΉμ„±μƒ μ›μΉ™μ μœΌλ‘œ μ—…λ‘œλ“œ κΈ°λŠ₯을 μ œν•œν•΄μ•Ό ν•˜λ‚˜ κΌ­ μ‚¬μš©ν•΄μ•Ό ν•˜λŠ” κ²½μš°μ—λŠ” νŠΉμ • μ‚¬μš©μžλ§Œ ν—ˆμš©λœ ν™•μž₯자의 μ½˜ν…μΈ  νŒŒμΌμ„ μ—…λ‘œλ“œ ν•  수 μžˆλ„λ‘ κ΅¬ν˜„ν•œλ‹€.

μ κ²€λŒ€μƒ 및 νŒλ‹¨κΈ°μ€€

λŒ€μƒ : μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ†ŒμŠ€μ½”λ“œ, μ›Ή λ°©ν™”λ²½

νŒλ‹¨κΈ°μ€€
μ•…μ˜μ μΈ μ½˜ν…μΈ κ°€ μž…λ ₯되며, μ‹€ν–‰λ˜λŠ” κ²½μš°μ— μ·¨μ•½ν•˜λ‹€κ³  νŒλ‹¨ν•œλ‹€.

μ‘°μΉ˜λ°©λ²•
μ‚¬μš©μž μž…λ ₯ 값에 λŒ€ν•œ 검증 둜직 μΆ”κ°€ 및 μ‹€ν–‰ μ œν•œμ„ μ„€μ •ν•œλ‹€.

점검 및 μ‘°μΉ˜λ°©μ•ˆ

점검방법
Step 1) μ½˜ν…μΈ  μ‚½μž… 및 파일 μ—…λ‘œλ“œ μ œν•œ ν•„ν„°λ§μ˜ 적용 μ—¬λΆ€λ₯Ό μ κ²€ν•œλ‹€.
Step 2) κ²Œμ‹œνŒ λ“±μ˜ νŽ˜μ΄μ§€μ—μ„œ κ°•μ œμ μœΌλ‘œ μ΄λ€„μ§€λŠ” μ•…μ˜μ μΈ ν”„λ‘œκ·Έλž¨ λ‹€μš΄λ‘œλ“œ 및 μ½˜ν…μΈ  μžλ™ μ‹€ν–‰μ΄λ‚˜ μ•…μ˜μ μΈ μ‚¬μ΄νŠΈλ‘œμ˜ 이동이 λ°œμƒν•˜λŠ”μ§€ ν™•μΈν•œλ‹€.

λ³΄μ•ˆμ„€μ •λ°©λ²•
* μ•…μ„± μ½˜ν…μΈ κ°€ μ‚½μž…λ˜μ–΄μžˆλŠ” νŽ˜μ΄μ§€μ— λŒ€ν•˜μ—¬ 증거자료(ν™”λ©΄, μ†ŒμŠ€ λ“±)λ₯Ό 남기고, μ‚½μž…λœ μ•…μ„± μ½˜ν…μΈ λ₯Ό μ‚­μ œν•˜κ±°λ‚˜ νŽ˜μ΄μ§€μ˜ μ‚­μ œ 등을 μ‹€μ‹œν•œλ‹€.
(μ·¨λ“ν•œ 증거자료λ₯Ό 가지고 μ•…μ„± μ½˜ν…μΈ μ˜ μ‚½μž… 원인에 λŒ€ν•˜μ—¬ λΆ„μ„ν•˜μ—¬ 원인을 μ œκ±°ν•  것을 κΆŒκ³ ν•œλ‹€.)
* κ²Œμ‹œνŒμ˜ κΈ€ 등둝 및 파일 μ—…λ‘œλ“œ κΈ°λŠ₯에 μ•…μ„±μ½”λ“œκ°€ 포함될 수 μžˆλŠ” μ½˜ν…μΈ λ₯Ό μ‚½μž… λ˜λŠ” μ—…λ‘œλ“œ ν•˜μ§€ λͺ»ν•˜κ²Œ 필터링을 μ μš©ν•œλ‹€.
* 주기적으둜 μ—…λ‘œλ“œλœ νŒŒμΌμ„ λŒ€μƒμœΌλ‘œ λ°”μ΄λŸ¬μŠ€ 검사λ₯Ό μ‹€μ‹œν•œλ‹€.

 

11. ν¬λ‘œμŠ€μ‚¬μ΄νŠΈ μŠ€ν¬λ¦½νŒ… (XS)

취약점 κ°œμš”

μ κ²€λ‚΄μš©
μ›Ή μ‚¬μ΄νŠΈ λ‚΄ ν¬λ‘œμŠ€μ‚¬μ΄νŠΈ μŠ€ν¬λ¦½νŒ… μ·¨μ•½μ μ˜ 쑴재 μ—¬λΆ€λ₯Ό μ κ²€ν•œλ‹€.

점검λͺ©μ 
μ›Ή μ‚¬μ΄νŠΈ λ‚΄ ν¬λ‘œμŠ€μ‚¬μ΄νŠΈ μŠ€ν¬λ¦½νŒ… 취약점을 μ œκ±°ν•˜μ—¬ μ•…μ„± 슀크립트의 싀행을 μ°¨λ‹¨ν•œλ‹€.

λ³΄μ•ˆμœ„ν˜‘
μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ μ‚¬μš©μž μž…λ ₯ 값에 λŒ€ν•œ 필터링이 μ œλŒ€λ‘œ 이루어지지 μ•Šμ„ 경우, κ³΅κ²©μžλŠ” μ‚¬μš©μž μž…λ ₯ 값을 λ°›λŠ” κ²Œμ‹œνŒ, URL 등에 μ•…μ˜μ μΈ 슀크립트(Javascript, Active X, Flash λ“±)λ₯Ό μ‚½μž…ν•˜μ—¬ κ²Œμ‹œκΈ€μ΄λ‚˜ 이메일을 μ½λŠ” μ‚¬μš©μžμ˜ μΏ ν‚€(μ„Έμ…˜)λ₯Ό νƒˆμ·¨ν•˜μ—¬ λ„μš©ν•˜κ±°λ‚˜ μ•…μ„±μ½”λ“œ 유포 μ‚¬μ΄νŠΈλ‘œ Redirect ν•  수 μžˆλ‹€.

β€» ν¬λ‘œμŠ€μ‚¬μ΄νŠΈ μŠ€ν¬λ¦½νŒ… : μ•…μ˜μ μΈ μ‚¬μš©μžκ°€ κ³΅κ²©ν•˜λ €λŠ” μ‚¬μ΄νŠΈμ— 슀크립트λ₯Ό λ„£λŠ” κΈ°λ²•μœΌλ‘œ 곡격 방식은 크게 Stored 곡격 방식과 Reflected 곡격  λ°©μ‹μœΌλ‘œ λ‚˜λˆ„μ–΄μ§„λ‹€.
β€» OWASP - XSS 필터링 κ΄€λ ¨ 참고사항
https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet

μ κ²€λŒ€μƒ 및 νŒλ‹¨κΈ°μ€€

λŒ€μƒ : μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ†ŒμŠ€μ½”λ“œ, μ›Ή λ°©ν™”λ²½

νŒλ‹¨κΈ°μ€€
μ‚¬μš©μž μž…λ ₯ 값에 λŒ€ν•œ 검증 및 필터링이 이루어지지 μ•ŠμœΌλ©°, HTML μ½”λ“œκ°€ μž…λ ₯ · μ‹€ν–‰λ˜λŠ” κ²½μš°μ— μ·¨μ•½ν•˜λ‹€κ³  νŒλ‹¨ν•œλ‹€.

μ‘°μΉ˜λ°©λ²•
μ›Ή μ‚¬μ΄νŠΈμ˜ κ²Œμ‹œνŒ, 1:1 문의, URL λ“±μ—μ„œ μ‚¬μš©μž μž…λ ₯ 값에 λŒ€ν•΄ 검증 λ‘œμ§μ„ μΆ”κ°€ν•˜κ±°λ‚˜ μž…λ ₯λ˜λ”λΌλ„ μ‹€ν–‰λ˜μ§€ μ•Šκ²Œ ν•˜κ³ , λΆ€λ“μ΄ν•˜κ²Œ μ›Ή νŽ˜μ΄μ§€μ—μ„œ HTML을 μ‚¬μš©ν•˜λŠ” 경우 HTML μ½”λ“œ 쀑 ν•„μš”ν•œ μ½”λ“œμ— λŒ€ν•΄μ„œλ§Œ μž…λ ₯λ˜λ„λ‘ μ„€μ •ν•œλ‹€.

점검 및 μ‘°μΉ˜λ°©μ•ˆ

β€» XSS μ·¨μ•½ μœ ν˜•
-  XSS에 μ·¨μ•½ν•œ νŽ˜μ΄μ§€ μœ ν˜•
1. HTML을 μ§€μ›ν•˜λŠ” κ²Œμ‹œνŒ
2. Search Page
3. Join Form Page
4. Refererrλ₯Ό μ΄μš©ν•˜λŠ” Page
5. κ·Έ μ™Έ μ‚¬μš©μžλ‘œλΆ€ν„° μž…λ ₯λ°›μ•„ 화면에 좜λ ₯ν•˜λŠ” λͺ¨λ“ νŽ˜μ΄μ§€μ—μ„œ λ°œμƒμ΄ κ°€λŠ₯ν•˜λ‹€.
- XSSλ₯Ό μœ λ°œν•  수 μžˆλŠ” 슀크립트
<script> ... </script>
<img src="javascript:......">
<div style="background-image:url(javascript...)"></div>
<embed>...</embed>
<iframe></iframe>
β€» Filtering을 μš°νšŒν•˜κΈ° μœ„ν•œ λ‹€μ–‘ν•œ ν‘œν˜„μ΄ κ°€λŠ₯ν•˜λ‹€.
β—† %3Cscript%3E........%3Cscript%3E
β—† Jav&#97;script;
β—† Java&#13;script
β—† Java&#0013;script

점검방법
Step 1) μ‚¬μš©μž μž…λ ₯ 값을 μ „λ‹¬λ°›λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜(νšŒμ›μ •λ³΄ λ³€κ²½, κ²Œμ‹œνŒ, λŒ“κΈ€, μžλ£Œμ‹€ λ“±)에 슀크립트 μž…λ ₯ ν›„ μ‹€ν–‰λ˜λŠ”μ§€ ν™•μΈν•œλ‹€.
Step 2) μ‚¬μš©μž μž…λ ₯ 값을 μ „λ‹¬λ°›λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜(검색, URL)에 슀크립트 μž…λ ₯ ν›„ μ‹€ν–‰λ˜λŠ”μ§€ ν™•μΈν•œλ‹€.

λ³΄μ•ˆμ„€μ •λ°©λ²•
* μ›Ή μ‚¬μ΄νŠΈμ— μ‚¬μš©μž μž…λ ₯ 값이 μ €μž₯λ˜λŠ” νŽ˜μ΄μ§€λŠ” κ³΅κ²©μžκ°€ μ›Ή λΈŒλΌμš°μ €λ₯Ό 톡해 μ‹€ν–‰λ˜λŠ” 슀크립트 μ–Έμ–΄λ₯Ό μ‚¬μš©ν•˜μ—¬ κ³΅κ²©ν•˜λ―€λ‘œ ν•΄λ‹Ήλ˜λŠ” νƒœκ·Έ μ‚¬μš©μ„ 사전에 μ œν•œν•˜κ³ , μ‚¬μš©μž μž…λ ₯ 값에 λŒ€ν•œ 필터링 μž‘μ—…μ΄ ν•„μš”ν•˜λ‹€.
* κ²Œμ‹œλ¬Όμ˜ 본문뿐만 μ•„λ‹ˆλΌ 제λͺ©, λŒ“κΈ€, 검색어 μž…λ ₯ μ°½, κ·Έ μ™Έ μ‚¬μš©μž μΈ‘μ—μ„œ λ„˜μ–΄μ˜€λŠ” 값을 μ‹ λ’°ν•˜λŠ” formκ³Ό νŒŒλΌλ―Έν„° 값에 λŒ€ν•˜μ—¬ 필터링을 μˆ˜ν–‰ν•œλ‹€.
* μž…λ ₯ 값에 λŒ€ν•œ 필터링 둜직 κ΅¬ν˜„ μ‹œ 곡백 문자λ₯Ό μ œκ±°ν•˜λŠ” trim, replace ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ λ°˜λ“œμ‹œ μ„œλ²„ μΈ‘μ—μ„œ κ΅¬ν˜„λ˜μ–΄μ•Ό ν•œλ‹€.
* URL Decoder ν΄λž˜μŠ€μ— μ‘΄μž¬ν•˜λŠ” decode λ©”μ†Œλ“œλ₯Ό 톡해 URL 인코딩이 적용된 μ‚¬μš©μž μž…λ ₯ 값을 λ””μ½”λ”© ν•¨μœΌλ‘œμ¨ 우회 곡격을 μ°¨λ‹¨ν•œλ‹€.
* μ›Ή 방화벽에 λͺ¨λ“  μ‚¬μš©μž μž…λ ₯ 폼(νšŒμ›μ •λ³΄ λ³€κ²½, κ²Œμ‹œνŒ, λŒ“κΈ€, μžλ£Œμ‹€, 검색, URL λ“±)을 λŒ€μƒμœΌλ‘œ 특수문자, 특수 ꡬ문을 ν•„ν„°λ§ν•˜λ„λ‘ 룰셋을 μ μš©ν•΄μ•Όν•œλ‹€.
β€» 필터링 쑰치 λŒ€μƒ μž…λ ₯ κ°’
● 슀크립트 μ •μ˜μ–΄ : <SCRIPT>, <OBJECT>, <APPLET>, <EMBED>, <FORM>, <IFRAME> λ“±
● 특수문자 : <, >, ", ', &, %, %00(null) λ“±

β€» μ°Έκ³  : 필터링 λŒ€μƒ

 

12. μ•½ν•œ λ¬Έμžμ—΄ 강도 (BF)

취약점 κ°œμš”

μ κ²€λ‚΄μš©
μ›Ή νŽ˜μ΄μ§€ λ‚΄ 둜그인 폼 등에 μ•½ν•œ κ°•λ„μ˜ λ¬Έμžμ—΄ μ‚¬μš© μ—¬λΆ€λ₯Ό μ κ²€ν•œλ‹€.

점검λͺ©μ 
μœ μΆ” κ°€λŠ₯ν•œ μ·¨μ•½ν•œ λ¬Έμžμ—΄ μ‚¬μš©μ„ μ œν•œν•˜μ—¬ 계정 및 νŒ¨μŠ€μ›Œλ“œ μΆ”μΈ‘ 곡격을 λ°©μ§€ν•˜κΈ° μœ„ν•¨μ΄λ‹€.

λ³΄μ•ˆμœ„ν˜‘
ν•΄λ‹Ή 취약점이 μ‘΄μž¬ν•˜λŠ” 경우 μœ μΆ”κ°€ μš©μ΄ν•œ 계정 및 νŒ¨μŠ€μ›Œλ“œμ˜ μ‚¬μš©μœΌλ‘œ μΈν•œ μ‚¬μš©μž κΆŒν•œ νƒˆμ·¨ μœ„ν—˜μ΄ μ‘΄μž¬ν•˜λ©°, ν•΄λ‹Ή μœ„ν—˜μ„ λ°©μ§€ν•˜κΈ° μœ„ν•΄ κ°’μ˜ μ μ ˆμ„± 및 λ³΅μž‘μ„±μ„ κ²€μ¦ν•˜λŠ” λ‘œμ§μ„ κ΅¬ν˜„ν•˜μ—¬μ•Ό ν•œλ‹€.

β€» μ•½ν•œ λ¬Έμžμ—΄ 강도 취약점 : μ›Ή μ‚¬μ΄νŠΈμ—μ„œ μ·¨μ•½ν•œ νŒ¨μŠ€μ›Œλ“œλ‘œ νšŒμ›κ°€μž…μ΄ κ°€λŠ₯ν•  경우 κ³΅κ²©μžλŠ” μΆ”μΈ‘ 및 μ£Όλ³€ 정보λ₯Ό μˆ˜μ§‘ν•˜μ—¬ μž‘μ„±ν•œ 사전 파일둜 λŒ€μž…μ„ μ‹œλ„ν•˜μ—¬ μ‚¬μš©μž 계정을 νƒˆμ·¨ν•  수 μžˆλŠ” 취약점이닀.

μ κ²€λŒ€μƒ 및 νŒλ‹¨κΈ°μ€€

λŒ€μƒ : μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ†ŒμŠ€μ½”λ“œ

νŒλ‹¨κΈ°μ€€
κ΄€λ¦¬μž 계정 및 νŒ¨μŠ€μ›Œλ“œκ°€ μœ μΆ”ν•˜κΈ° μ‰¬μš΄ κ°’μœΌλ‘œ μ„€μ •λ˜μ–΄ 있으며, 일정 횟수 이상 인증 μ‹€νŒ¨ μ‹œ λ‘œκ·ΈμΈμ„ μ œν•œν•˜κ³  μžˆμ§€ μ•Šμ€ κ²½μš°μ— μ·¨μ•½ν•˜λ‹€κ³  νŒλ‹¨ν•œλ‹€.

μ‘°μΉ˜λ°©λ²•
계정 및 λΉ„λ°€λ²ˆν˜Έμ˜ 체크 λ‘œμ§μ„ μΆ”κ°€ κ΅¬ν˜„ν•΄μ•Όν•œλ‹€.

점검 및 μ‘°μΉ˜λ°©μ•ˆ

점검방법
Step 1) μ›Ή μ‚¬μ΄νŠΈ 둜그인 νŽ˜μ΄μ§€μ˜ 둜그인 창에 μΆ”μΈ‘ κ°€λŠ₯ν•œ κ³„μ •μ΄λ‚˜ νŒ¨μŠ€μ›Œλ“œλ₯Ό μž…λ ₯ν•˜μ—¬ μ •μƒμ μœΌλ‘œ λ‘œκ·ΈμΈλ˜λŠ”μ§€ ν™•μΈν•œλ‹€.
Step 2) 일정 횟수 이상 인증 μ‹€νŒ¨ μ‹œ λ‘œκ·ΈμΈμ„ μ œν•œν•˜λŠ”μ§€ ν™•μΈν•œλ‹€.

λ³΄μ•ˆμ„€μ •λ°©λ²•
* μ·¨μ•½ν•œ 계정 및 νŒ¨μŠ€μ›Œλ“œλ₯Ό μ‚­μ œν•˜κ³ , μ‚¬μš©μžκ°€ μ·¨μ•½ν•œ κ³„μ •μ΄λ‚˜ νŒ¨μŠ€μ›Œλ“œλ₯Ό λ“±λ‘ν•˜μ§€ λͺ»ν•˜λ„둝 νŒ¨μŠ€μ›Œλ“œ κ·œμ •μ΄ 반영된 체크 λ‘œμ§μ„ νšŒμ›κ°€μž…, 정보변경, νŒ¨μŠ€μ›Œλ“œ λ³€κ²½ λ“±μ˜ 적용이 ν•„μš”ν•œ νŽ˜μ΄μ§€μ— λͺ¨λ‘ κ΅¬ν˜„ν•˜μ—¬μ•Ό ν•œλ‹€.

β€» κ·œμ • μ˜ˆμ‹œ
1) 영문 λŒ€ · μ†Œλ¬Έμž, 숫자, 특수문자 쀑 2μ’…λ₯˜ 이상을 μ‘°ν•©ν•˜μ—¬ μ΅œμ†Œ 10자리 이상 λ˜λŠ”, 3μ’…λ₯˜ 이상을 μ‘°ν•©ν•˜μ—¬ μ΅œμ†Œ 8자리 μ΄μƒμ˜ 길이둜 κ΅¬μ„±ν•œλ‹€.
2) 연속적인 μˆ«μžλ‚˜ 생일, μ „ν™”λ²ˆν˜Έ λ“± μΆ”μΈ‘ν•˜κΈ° μ‰¬μš΄ κ°œμΈμ •λ³΄ 및 아이디와 λΉ„μŠ·ν•œ λΉ„λ°€λ²ˆν˜ΈλŠ” μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” 것을 κΆŒκ³ ν•œλ‹€.
3) λΉ„λ°€λ²ˆν˜Έμ— μœ νš¨κΈ°κ°„μ„ μ„€μ •ν•˜μ—¬ λ°˜κΈ°λ³„ 1회 이상 변경을 κΆŒκ³ ν•œλ‹€.
4) 졜근 μ‚¬μš©λ˜μ—ˆλ˜ νŒ¨μŠ€μ›Œλ“œμ˜ μž¬μ‚¬μš©μ„ κΈˆμ§€ν•œλ‹€.
* 둜그인 μ‹œ νŒ¨μŠ€μ›Œλ“œ μž…λ ₯ μ‹€νŒ¨κ°€ 일정 횟수(3~5회) 이상 μ΄ˆκ³Όν•  경우 κ΄€λ¦¬μžμ—κ²Œ 톡보 및 계정을 잠금 μ„€μ •ν•œλ‹€.
β€» 인증 μ‹€νŒ¨ 횟수λ₯Ό Client Side Scriptλ₯Ό μ‚¬μš©ν•˜λ©΄ μ‚¬μš©μžκ°€ μž„μ˜λ‘œ μˆ˜μ •ν•  수 μžˆμœΌλ―€λ‘œ Server Side Scriptλ₯Ό ν†΅ν•˜μ—¬ κ΅¬ν˜„ν•œλ‹€.

 

13. λΆˆμΆ©λΆ„ν•œ 인증 (IA)

취약점 κ°œμš”

μ κ²€λ‚΄μš©
μ€‘μš” νŽ˜μ΄μ§€ μ ‘κ·Ό μ‹œμ— μΆ”κ°€ 인증 μš”κ΅¬ μ—¬λΆ€λ₯Ό μ κ²€ν•œλ‹€.

점검λͺ©μ 
μ€‘μš” νŽ˜μ΄μ§€μ— μΆ”κ°€ 인증으둜 접근을 κ°•ν™”ν•˜μ—¬ λΆˆν•„μš”ν•œ μ •λ³΄μ˜ λ…ΈμΆœ 및 λ³€μ‘°λ₯Ό μ°¨λ‹¨ν•˜κΈ° μœ„ν•¨μ΄λ‹€.

λ³΄μ•ˆμœ„ν˜‘
μ€‘μš”μ •λ³΄(κ°œμΈμ •λ³΄ λ³€κ²½ λ“±) νŽ˜μ΄μ§€μ— λŒ€ν•œ 인증 μ ˆμ°¨κ°€ λΆˆμΆœλΆ„ν•  경우, κΆŒν•œμ΄ μ—†λŠ” μ‚¬μš©μžκ°€ μ€‘μš”μ •λ³΄ νŽ˜μ΄μ§€μ— μ ‘κ·Όν•˜μ—¬ 정보λ₯Ό μœ μΆœν•˜κ±°λ‚˜ λ³€μ‘°ν•  수 μžˆμœΌλ―€λ‘œ μ€‘μš”μ •λ³΄ νŽ˜μ΄μ§€μ—λŠ” 좔가적인 인증 절차λ₯Ό κ΅¬ν˜„ν•˜μ—¬μ•Ό ν•œλ‹€.

μ κ²€λŒ€μƒ 및 νŒλ‹¨κΈ°μ€€

λŒ€μƒ : μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ†ŒμŠ€μ½”λ“œ

νŒλ‹¨κΈ°μ€€
μ€‘μš”μ •λ³΄ νŽ˜μ΄μ§€ 접근에 λŒ€ν•œ μΆ”κ°€ 인증을 ν•˜μ§€ μ•ŠλŠ” κ²½μš°μ— μ·¨μ•½ν•˜λ‹€κ³  νŒλ‹¨ν•œλ‹€.

μ‘°μΉ˜λ°©λ²•
μ€‘μš”μ •λ³΄ νŽ˜μ΄μ§€μ— λŒ€ν•œ μΆ”κ°€ 인증 λ‘œμ§μ„ μΆ”κ°€μ μœΌλ‘œ κ΅¬ν˜„ν•œλ‹€.

점검 및 μ‘°μΉ˜λ°©μ•ˆ

점검방법
Step 1) μ€‘μš”μ •λ³΄(κ°œμΈμ •λ³΄ λ³€κ²½ λ“±) νŽ˜μ΄μ§€ μ ‘κ·Ό μ‹œ 재인증 μ—¬λΆ€λ₯Ό ν™•μΈν•œλ‹€.
Step 2) 인증 ν›„ νŽ˜μ΄μ§€μ— μ•„μ΄λ””λ§Œμ„ 인증 κ°’μœΌλ‘œ ν•˜μ—¬ λ³€μˆ˜λ‘œ κ΄€λ¦¬λ˜κ³  μžˆλŠ”μ§€λ₯Ό ν™•μΈν•œλ‹€.

λ³΄μ•ˆμ„€μ •λ°©λ²•
* μ€‘μš”μ •λ³΄(κ°œμΈμ •λ³΄ λ³€κ²½ λ“±)λ₯Ό ν‘œμ‹œν•˜λŠ” νŽ˜μ΄μ§€μ—μ„œλŠ” 본인 인증을 μž¬ν™•μΈν•˜λŠ” λ‘œμ§μ„ κ΅¬ν˜„ν•˜κ³ , μ‚¬μš©μžκ°€ 인증 ν›„ 이용 κ°€λŠ₯ν•œ νŽ˜μ΄μ§€μ— μ ‘κ·Όν•  λ•Œλ§ˆλ‹€ μŠΉμΈμ„ 얻은 μ‚¬μš©μžμΈμ§€ νŽ˜μ΄μ§€λ§ˆλ‹€ κ²€μ¦ν•˜μ—¬μ•Ό ν•œλ‹€.
* μ ‘κ·Ό ν†΅μ œ 정책을 κ΅¬ν˜„ν•˜κ³  μžˆλŠ” μ½”λ“œλŠ” ꡬ쑰화, λͺ¨λ“ˆν™”κ°€ λ˜μ–΄ μžˆμ–΄μ•Ό ν•œλ‹€.
* μ ‘κ·Όμ œμ–΄κ°€ ν•„μš”ν•œ λͺ¨λ“  νŽ˜μ΄μ§€μ— ν†΅μ œμˆ˜λ‹¨(둜그인 체크 및 κΆŒν•œ 체크)을 κ΅¬ν˜„ν•΄μ•Ό ν•˜λ©° 특히, ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€κ°€ μ—¬λŸ¬ 개의 νŽ˜μ΄μ§€ λ˜λŠ” λͺ¨λ“ˆλ‘œ 이루어져 μžˆμ„ λ•Œ κΆŒν•œ 체크가 λˆ„λ½λ˜λŠ” 경우λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•΄μ„œ 곡톡 λͺ¨λ“ˆμ„ μ‚¬μš©ν•˜λŠ” 것을 ꢌμž₯ν•œλ‹€.
* 인증 과정을 μ²˜λ¦¬ν•˜λŠ” 뢀뢄에 Client Side Scriptλ₯Ό μ‚¬μš©ν•˜λ©΄ μ‚¬μš©μžκ°€ μž„μ˜λ‘œ μˆ˜μ •ν•  수 μžˆμœΌλ―€λ‘œ Server Side Scriptλ₯Ό ν†΅ν•˜μ—¬ 인증 및 필터링 과정을 μˆ˜ν–‰ν•˜λ„λ‘ ν•œλ‹€.

 

14. μ·¨μ•½ν•œ νŒ¨μŠ€μ›Œλ“œ 볡ꡬ (PR)

취약점 κ°œμš”

μ κ²€λ‚΄μš©
μ›Ή μ‚¬μ΄νŠΈ λ‚΄ νŒ¨μŠ€μ›Œλ“œ 볡ꡬ 절차의 μ μ ˆμ„±μ„ μ κ²€ν•œλ‹€.

점검λͺ©μ 
νŒ¨μŠ€μ›Œλ“œ 볡ꡬ λ‘œμ§μ„ μœ μΆ”ν•˜κΈ° μ–΄λ ΅κ²Œ κ΅¬ν˜„ν•˜κ³ , 인증된 μ‚¬μš©μž λ©”μΌμ΄λ‚˜ SMSμ—μ„œλ§Œ 볡ꡬ νŒ¨μŠ€μ›Œλ“œλ₯Ό 확인할 수 μžˆλ„λ‘ ν•˜μ—¬ λΉ„μΈκ°€μžλ₯Ό ν†΅ν•œ μ‚¬μš©μž νŒ¨μŠ€μ›Œλ“œ νšλ“ 및 변경을 λ°©μ§€ν•˜κΈ° μœ„ν•¨μ΄λ‹€.

λ³΄μ•ˆμœ„ν˜‘
μ·¨μ•½ν•œ νŒ¨μŠ€μ›Œλ“œ 볡ꡬ 둜직(νŒ¨μŠ€μ›Œλ“œ μ°ΎκΈ° λ“±)으둜 μΈν•˜μ—¬ κ³΅κ²©μžκ°€ λΆˆλ²•μ μœΌλ‘œ λ‹€λ₯Έ μ‚¬μš©μžμ˜ νŒ¨μŠ€μ›Œλ“œλ₯Ό νšλ“, λ³€κ²½ν•  수 μžˆλ‹€.

μ κ²€λŒ€μƒ 및 νŒλ‹¨κΈ°μ€€

λŒ€μƒ : μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ†ŒμŠ€μ½”λ“œ

νŒλ‹¨κΈ°μ€€
νŒ¨μŠ€μ›Œλ“œ μž¬μ„€μ • μ‹œ 일정 νŒ¨ν„΄μœΌλ‘œ μž¬μ„€μ •λ˜κ³  μ›Ή μ‚¬μ΄νŠΈ 화면에 λ°”λ‘œ 좜λ ₯μ‹œμ— μ·¨μ•½ν•˜λ‹€κ³  νŒλ‹¨ν•œλ‹€.

μ‘°μΉ˜λ°©λ²•
νŒ¨μŠ€μ›Œλ“œ 볡ꡬ λ‘œμ§μ„ λ³€κ²½(νŒ¨μŠ€μ›Œλ“œ μž¬μ„€μ • μ‹œ λ‚œμˆ˜λ₯Ό μ΄μš©ν•˜μ—¬ μž¬μ„€μ •)ν•˜κ³  μΈμ¦λœ μ‚¬μš©μž λ©”μΌμ΄λ‚˜ SMS둜 μž¬μ„€μ •λœ νŒ¨μŠ€μ›Œλ„ ν˜Ήμ€ μž¬μ„€μ •μ„ μœ„ν•œ 링크λ₯Ό μ „μ†‘ν•˜λ„λ‘ν•œλ‹€.

점검 및 μ‘°μΉ˜λ°©μ•ˆ

점검방법
Step 1) μž¬μ„€μ •(λ˜λŠ” νŒ¨μŠ€μ›Œλ“œ μ°ΎκΈ°)λ˜λŠ” νŒ¨μŠ€μ›Œλ“œμ— λŒ€ν•˜μ—¬ μ‚¬μš©μžμ˜ μ—°λ½μ²˜, μ£Όμ†Œ, 메일 μ£Όμ†Œ, 일정 νŒ¨ν„΄ 등을 νŒ¨μŠ€μ›Œλ“œλ‘œ μ΄μš©ν•˜κ³  μžˆλŠ”μ§€ ν™•μΈν•˜κ³ , μž¬μ„€μ •λœ νŒ¨μŠ€μ›Œλ“œλ₯Ό 인증된 μ‚¬μš©μž λ©”μΌμ΄λ‚˜ SMS둜 μ „μ†‘ν•˜λŠ”μ§€ ν™•μΈν•œλ‹€.

λ³΄μ•ˆμ„€μ •λ°©λ²•
* μ‚¬μš©μžμ˜ κ°œμΈμ •λ³΄(μ—°λ½μ²˜, μ£Όμ†Œ, 메일 μ£Όμ†Œ λ“±)둜 νŒ¨μŠ€μ›Œλ“œλ₯Ό μƒμ„±ν•˜μ§€ 말아야 ν•˜λ©°, λ‚œμˆ˜λ₯Ό μ΄μš©ν•œ λΆˆκ·œμΉ™μ μ΄κ³  μ΅œμ†Œ 길이(6자 이상 ꢌ고) μ΄μƒμ˜ νŒ¨ν„΄μ΄ μ—†λŠ” νŒ¨μŠ€μ›Œλ“œλ₯Ό λ°œκΈ‰ν•˜μ—¬μ•Ό ν•œλ‹€.
* μ‚¬μš©μž νŒ¨μŠ€μ›Œλ“œλ₯Ό λ°œκΈ‰ν•΄μ£Όκ±°λ‚˜ 확인해쀄 λ•Œ μ›Ή μ‚¬μ΄νŠΈ 화면에 λ°”λ‘œ 좜λ ₯ν•΄μ£ΌλŠ” 것이 μ•„λ‹ˆλΌ 인증된 μ‚¬μš©μž λ©”μΌμ΄λ‚˜ SMS둜 전솑해주어야 ν•œλ‹€.
* νŒ¨μŠ€μ›Œλ“œ μž¬λ°œκΈ‰ 검증 싀해에 λŒ€ν•œ μž„κ³„κ°’μ„ μ„€μ •ν•˜μ—¬ 일정 횟수 이상 μ‹€νŒ¨ν•œ 경우, λ‹€λ₯Έ λ°©μ‹μœΌλ‘œ νŒ¨μŠ€μ›Œλ“œ μ°ΎκΈ° κΈ°λŠ₯을 μ œκ³΅ν•˜μ—¬μ•Ό ν•œλ‹€. 검증 ν›„ 기쑴의 νŒ¨μŠ€μ›Œλ“œκ°€ μ•„λ‹Œ μž„μ‹œ νŒ¨μŠ€μ›Œλ“œλ₯Ό λ°œκΈ‰ν•˜λ„λ‘ 섀계해야 ν•˜λ©°, μ‚¬μš©μžκ°€ μž„μ‹œνŒ¨μŠ€μ›Œλ“œλ₯Ό λ°œκΈ‰λ°›μ€ μ¦‰μ‹œ μƒˆλ‘œμš΄ νŒ¨μŠ€μ›Œλ“œλ‘œ μž¬μ„€μ •ν•˜λ„λ‘ κ΅¬ν˜„ν•˜μ—¬μ•Ό ν•œλ‹€.

 

15. ν¬λ‘œμŠ€μ‚¬μ΄νŠΈ λ¦¬ν€˜μŠ€νŠΈ λ³€μ‘° (CF)

취약점 κ°œμš”

μ κ²€λ‚΄μš©
μ‚¬μš©μžμ˜ μ‹ λ’°(인증) μ •λ³΄μ˜ λ³€μ‘° μ—¬λΆ€λ₯Ό μ κ²€ν•œλ‹€.

점검λͺ©μ 
μ‚¬μš©μž μž…λ ₯ 값에 λŒ€ν•œ μ μ ˆν•œ 필터링 및 인증에 λŒ€ν•œ μœ νš¨μ„±μ„ κ²€μ¦ν•˜μ—¬ μ‹ λ’°(인증) 정보 λ‚΄μ˜ μš”μ²­(Request)에 λŒ€ν•œ λ³€μ‘°λ₯Ό λ°©μ§€ν•œλ‹€.

λ³΄μ•ˆμœ„ν˜‘
μ‚¬μš©μžμ˜ μ‹ λ’°(인증) 정보 λ‚΄μ—μ„œ μ‚¬μš©μžμ˜ μš”μ²­(Request)을 λ³€μ‘°ν•¨μœΌλ‘œμ¨ ν•΄λ‹Ή μ‚¬μš©μžμ˜ κΆŒν•œμœΌλ‘œ μ•…μ˜μ μΈ 곡격을 μˆ˜ν–‰ν•  수 μžˆλ‹€.

β€» CSRF(Cross Site Request Forgery) : μ‚¬μš©μžκ°€ μžμ‹ μ˜ μ˜μ§€μ™€λŠ” λ¬΄κ΄€ν•˜κ²Œ κ³΅κ²©μžκ°€ μ˜λ„ν•œ ν–‰μœ„(μˆ˜μ •, μ‚­μ œ, 등둝 λ“±)λ₯Ό νŠΉμ • μ›Ή μ‚¬μ΄νŠΈμ— μš”μ²­ν•˜κ²Œ ν•˜λŠ” 곡격 μœ ν˜•μ΄λ‹€.
β€» OWASP - CSRF κ΄€λ ¨ 참고사항
https://owasp.org/www-community/attacks/csrf

μ κ²€λŒ€μƒ 및 νŒλ‹¨κΈ°μ€€

λŒ€μƒ : μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ†ŒμŠ€μ½”λ“œ, μ›Ή λ°©ν™”λ²½

νŒλ‹¨κΈ°μ€€
μ‚¬μš©μž μž…λ ₯ 값에 λŒ€ν•œ 필터링이 이루어지지 μ•ŠμœΌλ©°, HTML μ½”λ“œ(λ˜λŠ” 슀크립트)λ₯Ό μž…λ ₯ν•˜μ—¬ μ‹€ν–‰λ˜λŠ” κ²½μš°μ— μ·¨μ•½ν•˜λ‹€κ³  νŒλ‹¨ν•œλ‹€.

μ‘°μΉ˜λ°©λ²•
μ‚¬μš©μž μž…λ ₯ 값에 λŒ€ν•΄ 검증 둜직 및 필터링을 μΆ”κ°€ μ μš©ν•œλ‹€.

점검 및 μ‘°μΉ˜λ°©μ•ˆ

점검방법
Step 1) XSS 취약점이 μ‘΄μž¬ν•˜λŠ”μ§€ ν™•μΈν•œλ‹€.
Step 2) 등둝 및 λ³€κ²½ λ“±μ˜ 데이터 μˆ˜μ • κΈ°λŠ₯의 νŽ˜μ΄μ§€κ°€ μžˆλŠ”μ§€ μ‘°μ‚¬ν•œλ‹€.
Step 3) 데이터 μˆ˜μ • νŽ˜μ΄μ§€μ—μ„œ μ „μ†‘λ˜λŠ” μš”μ²­(Request) 정보λ₯Ό λΆ„μ„ν•˜μ—¬ μž„μ˜μ˜ λͺ…령을 μˆ˜ν–‰ν•˜λŠ” 슀크립트λ₯Ό μ‚½μž… ν›„ ν•΄λ‹Ή κ²Œμ‹œκΈ€μ„ 타 μ‚¬μš©μžκ°€ μ—΄λžŒν•˜μ˜€μ„ 경우 μŠ€ν¬λ¦½νŠΈκ°€ μ‹€ν–‰λ˜λŠ”μ§€ ν™•μΈν•œλ‹€.

λ³΄μ•ˆμ„€μ •λ°©λ²•
* μ›Ή μ‚¬μ΄νŠΈμ— μ‚¬μš©μž μž…λ ₯ 값이 μ €μž₯λ˜λŠ” νŽ˜μ΄μ§€λŠ” μš”μ²­μ΄ μΌνšŒμ„±μ΄ 될 수 μžˆλ„λ‘ μ„€κ³„ν•œλ‹€.
* μ‚¬μš© 쀑인 ν”„λ ˆμž„μ›Œν¬μ— 기본적으둜 μ œκ³΅λ˜λŠ” CSRF 보호 κΈ°λŠ₯을 μ‚¬μš©ν•œλ‹€.
* μ‚¬μš©μžκ°€ 정상적인 ν”„λ‘œμ„ΈμŠ€λ₯Ό 톡해 μš”μ²­ν•˜μ˜€λŠ”μ§€ HTTP ν—€λ”μ˜ Referer 검증 λ‘œμ§μ„ κ΅¬ν˜„ν•œλ‹€.
* 정상적인 μš”μ²­(Request)와 비정상적인 μš”μ²­μ„ ꡬ뢄할 수 μžˆλ„λ‘ Hidden Form을 μ‚¬μš©ν•˜μ—¬ μž„μ˜μ˜ μ•”ν˜Έν™”λœ 토큰(μ„Έμ…˜ ID, Timestamp, nonce λ“±)을 μΆ”κ°€ν•˜κ³  이 토큰을 κ²€μ¦ν•˜λ„λ‘ μ„€κ³„ν•œλ‹€.
* HTMLμ΄λ‚˜ Javascript에 ν•΄λ‹Ήλ˜λŠ” νƒœκ·Έ(Tag) μ‚¬μš©μ„ 사전에 μ œν•œν•˜κ³ , μ„œλ²„ λ‹¨μ—μ„œ μ‚¬μš©μž μž…λ ₯ 값에 λŒ€ν•œ 필터링을 κ΅¬ν˜„ν•œλ‹€.
* HTML Editor μ‚¬μš©μœΌλ‘œ μΈν•œ 상기사항 쑰치 λΆˆκ°€ μ‹œ, μ„œλ²„ μ‚¬μ΄λ“œ(Server Side)/μ„œλΈ”λ¦Ώ(Servlet)/DAO(Data Access Object) μ˜μ—­μ—μ„œ μ‘°μΉ˜ν•˜λ„λ‘ μ„€κ³„ν•œλ‹€.
* XSS 쑰치 λ°©μ•ˆμ„ μ°Έμ‘°

 

16. μ„Έμ…˜ 에츑 (SE)

취약점 κ°œμš”

μ κ²€λ‚΄μš©
λ‹¨μˆœν•œ 방법(μ—°μ†λœ 숫자 ν• λ‹Ή λ“±)으둜 μƒμ„±λ˜λŠ” μ„Έμ…˜ IDλ₯Ό μ˜ˆμΈ‘ν•˜μ—¬ μ„Έμ…˜ νƒˆμ·¨ μ—¬λΆ€λ₯Ό μ κ²€ν•œλ‹€.

점검λͺ©μ 
μ‚¬μš©μžμ˜ μ„Έμ…˜IDλ₯Ό μΆ”μΈ‘ λΆˆκ°€λŠ₯ν•˜λ„λ‘ λ‚œμˆ˜λ‘œ μƒμ„±ν•˜μ—¬ 곡격자의 λΆˆλ²•μ μΈ 접근을 μ°¨λ‹¨ν•˜κΈ° μœ„ν•¨μ΄λ‹€.

λ³΄μ•ˆμœ„ν˜‘
μ‚¬μš©μžμ—κ²Œ μ „λ‹¬ν•˜λŠ” μ„Έμ…˜ IDκ°€ μΌμ •ν•œ νŒ¨ν„΄μ„ 가지고 μžˆλŠ” 경우 κ³΅κ²©μžκ°€ μ„Έμ…˜ IDλ₯Ό μΆ”μΈ‘ν•˜μ—¬ λΆˆλ²•μ μΈ 접근을 μ‹œλ„ν•  수 μžˆλ‹€.

β€» μ„Έμ…˜(Session) : 일정 μ‹œκ°„ λ™μ•ˆ 같은 μ‚¬μš©μž(λΈŒλΌμš°μ €)둜 λΆ€ν„° λ“€μ–΄μ˜€λŠ” 일련의 μš”κ΅¬λ₯Ό ν•˜λ‚˜μ˜ μƒνƒœλ‘œ 보고 κ·Έ μƒνƒœλ₯Ό μΌμ •ν•˜κ²Œ μœ μ§€μ‹œν‚€λŠ” κΈ°μˆ μ΄λ‹€.

μ κ²€λŒ€μƒ 및 νŒλ‹¨κΈ°μ€€

λŒ€μƒ : μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ†ŒμŠ€μ½”λ“œ

νŒλ‹¨κΈ°μ€€
μ„Έμ…˜ IDκ°€ μΌμ •ν•œ νŒ¨ν„΄μœΌλ‘œ λ°œκΈ‰λ˜λŠ” κ²½μš°μ— μ·¨μ•½ν•˜λ‹€κ³  νŒλ‹¨ν•œλ‹€.

μ‘°μΉ˜λ°©λ²•
μΆ”μΈ‘ λΆˆκ°€λŠ₯ν•œ μ„Έμ…˜ IDκ°€ λ°œκΈ‰λ˜λ„λ‘ λ‘œμ§μ„ κ΅¬ν˜„ν•œλ‹€.

점검 및 μ‘°μΉ˜λ°©μ•ˆ

점검방법
Step 1) 각기 λ‹€λ₯Έ IP μ£Όμ†Œμ™€ λ‹€λ₯Έ μ‚¬μš©μžλͺ…, μ‹œκ°„μ  차이둜 μ„Έμ…˜ IDλ₯Ό λ°œκΈ‰λ°›λŠ”λ‹€.
Step 2) λ°œκΈ‰λ°›μ€ μ„Έμ…˜ ID에 μΌμ •ν•œ νŒ¨ν„΄μ΄ μžˆλŠ”μ§€ μ‘°μ‚¬ν•œλ‹€.
Step 3) μΌμ •ν•œ νŒ¨ν„΄μ΄ ν™•μΈλ˜κ³ , νŒ¨ν„΄μ— μ˜ν•΄ μ‚¬μš© κ°€λŠ₯ν•œ μ„Έμ…˜ ID의 예츑이 κ°€λŠ₯ν•œμ§€ ν™•μΈν•œλ‹€.

λ³΄μ•ˆμ„€μ •λ°©λ²•
* 아무리 길이가 κΈΈκ³  λ³΅μž‘ν•œ ν•­λͺ©μœΌλ‘œ μ„Έμ…˜ IDκ°€ λ§Œλ“€μ–΄μ Έλ„ κ³΅κ²©μžκ°€ μΆ©λΆ„ν•œ μ‹œκ°„κ³Ό μžμ›μ΄ μžˆλ‹€λ©΄ λš«λŠ” 것은 λΆˆκ°€λŠ₯ν•˜μ§€ μ•ŠμœΌλ―€λ‘œ κ°•κ²©ν•œ μ„Έμ…˜ IDλ₯Ό μƒμ„±ν•˜μ—¬μ•Ό ν•œλ‹€.
(주된 λͺ©μ μ€ μˆ˜λ§Žμ€ λŒ€μ—­ν­ 처리 μžμ›μ„ 가지고 μžˆλŠ” κ³΅κ²©μžκ°€ ν•˜λ‚˜μ˜ μœ νš¨ν•œ μ„Έμ…˜ IDλ₯Ό μΆ”μΈ‘ν•˜λŠ”λ° μ΅œλŒ€ν•œ 였랜 μ‹œκ°„μ΄ 걸리게 ν•˜μ—¬ μ‰½κ²Œ μΆ”μΈ‘ν•˜μ§€ λͺ»ν•˜κ²Œ ν•˜λŠ” 것에 μžˆλ‹€.)
* λ‹¨μˆœ μ‘°ν•©λ³΄λ‹€λŠ” μƒμš© μ›Ή μ„œλ²„λ‚˜ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ ν”Œλž«νΌμ—μ„œ μ œκ³΅ν•˜λŠ” μ„Έμ…˜ IDλ₯Ό μ‚¬μš©ν•˜κ³ , κ°€λŠ₯ν•˜λ‹€λ©΄ λ§žμΆ€ν˜• μ„Έμ…˜ 관리 체계λ₯Ό κΆŒκ³ ν•œλ‹€.
* μ„Έμ…˜ IDλŠ” 둜그인 μ‹œλ§ˆλ‹€ μΆ”μΈ‘ν•  수 μ—†λŠ” μƒˆλ‘œμš΄ μ„Έμ…˜ ID둜 λ°œκΈ‰ν•˜μ—¬μ•Ό ν•œλ‹€.

 

17. λΆˆμΆ©λΆ„ν•œ 인가 (IN)

취약점 κ°œμš”

μ κ²€λ‚΄μš©
λ―Όκ°ν•œ 데이터 λ˜λŠ” κΈ°λŠ₯에 μ ‘κ·Ό 및 μˆ˜μ • μ‹œμ— ν†΅μ œ μ—¬λΆ€λ₯Ό μ κ²€ν•œλ‹€.

점검λͺ©μ 
μ ‘κ·Ό κΆŒν•œμ— λŒ€ν•œ 검증 λ‘œμ§μ„ κ΅¬ν˜„ν•˜μ—¬ λΉ„μΈκ°€μžμ˜ μ•…μ˜μ μΈ 접근을 μ°¨λ‹¨ν•˜κΈ° μœ„ν•¨μ΄λ‹€.

λ³΄μ•ˆμœ„ν˜‘
μ ‘κ·Όμ œμ–΄κ°€ ν•„μš”ν•œ μ€‘μš” νŽ˜μ΄μ§€μ˜ ν†΅μ œμˆ˜λ‹¨μ΄ λ―Έν‘ν•œ 경우, λΉ„μΈκ°€μžκ°€ URL νŒŒλΌλ―Έν„° κ°’ λ³€κ²½ λ“±μ˜ λ°©λ²•μœΌλ‘œ μ€‘μš” νŽ˜μ΄μ§€μ— μ ‘κ·Όν•˜μ—¬ λ―Όκ°ν•œ 정보 μ—΄λžŒ 및 λ³€μ‘°κ°€ κ°€λŠ₯ν•˜λ‹€.

μ κ²€λŒ€μƒ 및 νŒλ‹¨κΈ°μ€€

λŒ€μƒ : μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ†ŒμŠ€μ½”λ“œ

νŒλ‹¨κΈ°μ€€
μ ‘κ·Όμ œμ–΄κ°€ ν•„μš”ν•œ μ€‘μš” νŽ˜μ΄μ§€μ˜ ν†΅μ œμˆ˜λ‹¨μ΄ λ―Έν‘ν•˜μ—¬ λΉ„μΈκ°€μžμ˜ 접근이 κ°€λŠ₯ν•œ 경우 μ·¨μ•½ν•˜λ‹€κ³  νŒλ‹¨ν•œλ‹€.

μ‘°μΉ˜λ°©λ²•
μ ‘κ·Όμ œμ–΄κ°€ ν•„μš”ν•œ λͺ¨λ“  νŽ˜μ΄μ§€μ— κΆŒν•œκ²€μ¦ λ‘œμ§μ„ κ΅¬ν˜„ν•œλ‹€.

점검 및 μ‘°μΉ˜λ°©μ•ˆ

점검방법
Step 1) λΉ„λ°€ κ²Œμ‹œκΈ€(λ˜λŠ” κ°œμΈμ •λ³΄ λ³€κ²½, νŒ¨μŠ€μ›Œλ“œ λ³€κ²½ λ“±) νŽ˜μ΄μ§€μ—μ„œ λ‹€λ₯Έ μ‚¬μš©μžμ™€μ˜ ꡬ뢄을 ID, 일련번호 λ“±μ˜ λ‹¨μˆœν•œ 값을 μ‚¬μš©ν•˜λŠ”μ§€ μ‘°μ‚¬ν•œλ‹€.
Step 2) κ²Œμ‹œκΈ€μ„ κ΅¬λΆ„ν•˜λŠ” νŒŒλΌλ―Έν„° 값을 λ³€κ²½ν•˜λŠ” κ²ƒλ§ŒμœΌλ‘œ λ‹€λ₯Έ μ‚¬μš©μžμ˜ λΉ„λ°€ κ²Œμ‹œκΈ€(λ˜λŠ” κ°œμΈμ •λ³΄ λ³€κ²½, νŒ¨μŠ€μ›Œλ“œ λ³€κ²½ λ“±)에 접근이 κ°€λŠ₯ν•œμ§€ ν™•μΈν•œλ‹€.

λ³΄μ•ˆμ„€μ •λ°©λ²•
* μ ‘κ·Όμ œμ–΄κ°€ ν•„μš”ν•œ μ€‘μš” νŽ˜μ΄μ§€λŠ” μ„Έμ…˜μ„ ν†΅ν•œ 인증 λ“± ν†΅μ œμˆ˜λ‹¨μ„ κ΅¬ν˜„ν•˜μ—¬ μΈκ°€λœ μ‚¬μš©μž μ—¬λΆ€λ₯Ό 검증 ν›„ ν•΄λ‹Ή νŽ˜μ΄μ§€μ— μ ‘κ·Όν•  수 μžˆλ„λ‘ ν•œλ‹€.
* νŽ˜μ΄μ§€λ³„ κΆŒν•œ 맀트릭슀λ₯Ό μž‘μ„±ν•˜μ—¬ μ ‘κ·Όμ œμ–΄κ°€ ν•„μš”ν•œ λͺ¨λ“  νŽ˜μ΄μ§€μ—μ„œ κΆŒν•œ 체크가 이뀄지도둝 κ΅¬ν˜„ν•΄μ•Ό ν•œλ‹€.

 

18. λΆˆμΆ©λΆ„ν•œ μ„Έμ…˜ 만료 (SC)

취약점 κ°œμš”

μ κ²€λ‚΄μš©
μ„Έμ…˜μ˜ 만료 κΈ°κ°„ μ„€μ • μ—¬λΆ€λ₯Ό μ κ²€ν•œλ‹€.
(ν•΄λ‹Ή 취약점은 μ„Έμ…˜ 만료의 기쀀이 λ‚΄κ·œλ³„λ‘œ λ‹€λ₯΄κΈ°μ— μž‘μ§€ μ•ŠκΈ°λ„ ν•œλ‹€.)

점검λͺ©μ 
μ„Έμ…˜ νƒ€μž„μ•„μ›ƒ κΈ°λŠ₯을 κ΅¬ν˜„ν•˜μ—¬ κ³΅κ²©μžκ°€ λ§Œλ£Œλ˜μ§€ μ•Šμ€ μ„Έμ…˜ ν™œμš©μ„ λ°©μ§€ν•˜κΈ° μœ„ν•¨μ΄λ‹€.

λ³΄μ•ˆμœ„ν˜‘
μ„Έμ…˜μ˜ 만료 기간을 μ •ν•˜μ§€ μ•Šκ±°λ‚˜, λ§Œλ£ŒκΈ°ν•œμ„ λ„ˆλ¬΄ 길게 μ„€μ •λœ 경우, μ•…μ˜μ μΈ μ‚¬μš©μžκ°€ λ§Œλ£Œλ˜μ§€ μ•Šμ€ μ„Έμ…˜μ„ ν™œμš©ν•˜μ—¬ λΆˆλ²•μ μΈ 접근이 κ°€λŠ₯ν•  수 μžˆλ‹€.

μ κ²€λŒ€μƒ 및 νŒλ‹¨κΈ°μ€€

λŒ€μƒ : μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ†ŒμŠ€μ½”λ“œ, μ›Ή μ„œλ²„

νŒλ‹¨κΈ°μ€€
μ„Έμ…˜ μ’…λ£Œ μ‹œκ°„μ΄ μ„€μ •λ˜μ–΄ μžˆμ§€ μ•Šμ•„ μ„Έμ…˜ μž¬μ‚¬μš©μ΄ κ°€λŠ₯ν•œ κ²½μš°μ— μ·¨μ•½ν•˜λ‹€κ³  νŒλ‹¨ν•œλ‹€.

μ‘°μΉ˜λ°©λ²•
μ„Έμ…˜ μ’…λ£Œ μ‹œκ°„ μ„€μ • λ˜λŠ” μžλ™ λ‘œκ·Έμ•„μ›ƒ κΈ°λŠ₯ κ΅¬ν˜„ν•œλ‹€.
(μ„Έμ…˜ μ’…λ£Œ μ‹œκ°„μ€ μ‚¬μ΄νŠΈμ˜ νŠΉμ„±μ— 따라 λ‹¬λΌμ§ˆ 수 μžˆμœΌλ―€λ‘œ μ‚¬μ΄νŠΈμ˜ νŠΉμ„±μ— 맞게 적정 μ‹œκ°„μ„ μ„€μ •ν•œλ‹€.)

점검 및 μ‘°μΉ˜λ°©μ•ˆ

점검방법
Step 1) 인증 ν›„ μ •μƒμ μœΌλ‘œ μ„Έμ…˜μ΄ λ°œν–‰λœ νŽ˜μ΄μ§€μ˜ λ¦¬ν€˜μŠ€νŠΈλ₯Ό μ·¨λ“ν•˜μ—¬ 일정 μ‹œκ°„(μ‚¬μ΄νŠΈμ— 따라 닀름)이 μ§€λ‚œ 후에 μž¬μ „μ†‘ μ‹œ 정상 μ²˜λ¦¬κ°€ λ˜λŠ”μ§€ ν™•μΈν•œλ‹€.
(둜그인 ν›„ λ°œκΈ‰λœ μ„Έμ…˜μ— λŒ€ν•˜μ—¬ 일정 μ‹œκ°„ κ²½κ³Ό ν›„ μ„Έμ…˜ μœ μ§€ μ—¬λΆ€λ₯Ό ν™•μΈν•œλ‹€.)

λ³΄μ•ˆμ„€μ •λ°©λ²•
* μ„Έμ…˜ νƒ€μž„μ•„μ›ƒμ„ κ΅¬ν˜„ν•œλ‹€.

 

19. μ„Έμ…˜ κ³ μ • (SF)

취약점 κ°œμš”

μ κ²€λ‚΄μš©
μ‚¬μš©μž 둜그인 μ‹œ 항상 μΌμ •ν•˜κ²Œ κ³ μ •λœ μ„Έμ…˜ ID 값을 λ°œν–‰ν•˜λŠ”μ§€ μ—¬λΆ€λ₯Ό ν™•μΈν•œλ‹€.

점검λͺ©μ 
λ‘œκ·ΈμΈν•  λ•Œλ§ˆλ‹€ 예츑 λΆˆκ°€λŠ₯ν•œ μƒˆλ‘œμš΄ μ„Έμ…˜ IDλ₯Ό λ°œν–‰ν•˜μ—¬ μ„Έμ…˜ ID의 κ³ μ • μ‚¬μš©μ„ λ°©μ§€ν•˜κΈ° μœ„ν•¨μ΄λ‹€.

λ³΄μ•ˆμœ„ν˜‘
μ‚¬μš©μž 둜그인 μ‹œ 항상 μΌμ •ν•˜κ²Œ κ³ μ •λœ μ„Έμ…˜ IDκ°€ λ°œν–‰λ˜λŠ” 경우 μ„Έμ…˜ IDλ₯Ό λ„μš©ν•œ λΉ„μΈκ°€μžμ˜ μ ‘κ·Ό 및 κΆŒν•œ μš°νšŒκ°€ κ°€λŠ₯ν•˜λ‹€.

μ κ²€λŒ€μƒ 및 νŒλ‹¨κΈ°μ€€

λŒ€μƒ : μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ†ŒμŠ€μ½”λ“œ

νŒλ‹¨κΈ°μ€€
둜그인 μ„Έμ…˜ IDκ°€ κ³ μ • μ‚¬μš©λ˜κ±°λ‚˜ μƒˆλ‘œμš΄ μ„Έμ…˜ IDκ°€ λ°œν–‰λ˜κ³ , κΈ°μ‘΄ μ„Έμ…˜ IDλŠ” 파기될 경우

μ‘°μΉ˜λ°©λ²•
μ‚¬μš©μžκ°€ λ‘œκ·ΈμΈν•  λ•Œλ§ˆλ‹€ 예츑 λΆˆκ°€λŠ₯ν•œ μƒˆλ‘œμš΄ μ„Έμ…˜ ID 생성 λ‘œμ§μ„ κ΅¬ν˜„ν•˜κ³  κΈ°μ‘΄ μ„Έμ…˜ IDλŠ” νŒŒκΈ°ν•œλ‹€.

점검 및 μ‘°μΉ˜λ°©μ•ˆ

점검방법
Step 1) λ‘œκ·ΈμΈμ‹œ μ„Έμ…˜ IDκ°€ λ°œν–‰λ˜λŠ”μ§€ ν™•μΈν•˜κ³  λ‘œκ·Έμ•„μ›ƒ ν›„ λ‹€μ‹œ λ‘œκ·ΈμΈν•  λ•Œ 예츑 λΆˆκ°€λŠ₯ν•œ μƒˆλ‘œμš΄ μ„Έμ…˜ IDκ°€ λ°œκΈ‰λ˜λŠ”μ§€ ν™•μΈν•œλ‹€.

λ³΄μ•ˆμ„€μ •λ°©λ²•
* λ‘œκ·ΈμΈν•  λ•Œλ§ˆλ‹€ 예츑 λΆˆκ°€λŠ₯ν•œ μƒˆλ‘œμš΄ μ„Έμ…˜ IDλ₯Ό λ°œκΈ‰λ°›λ„λ‘ ν•΄μ•Ό ν•˜κ³  κΈ°μ‘΄ μ„Έμ…˜ IDλŠ” νŒŒκΈ°ν•΄μ•Ό ν•œλ‹€.

 

20. μžλ™ν™” 곡격 (AU)

취약점 κ°œμš”

μ κ²€λ‚΄μš©
μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ νŠΉμ • ν”„λ‘œμ„ΈμŠ€(둜그인 μ‹œλ„, κ²Œμ‹œκΈ€ 등둝, SMS λ°œμ†‘ λ“±)에 λŒ€ν•œ 반볡적인 μš”μ²­ μ‹œ ν†΅μ œ μ—¬λΆ€λ₯Ό ν™•μΈν•œλ‹€.

점검λͺ©μ 
무차별 λŒ€μž… 곡격 및 μžλ™ν™” 곡격으둜 μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μžμ›μ΄ κ³ κ°ˆλ˜λŠ” 것을 λ°©μ§€ν•˜κΈ° μœ„ν•¨μ΄λ‹€.

λ³΄μ•ˆμœ„ν˜‘
μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ νŠΉμ • ν”„λ‘œμ„ΈμŠ€μ— λŒ€ν•œ 반볡적인 μš”μ²­μ„ ν†΅μ œν•˜μ§€ μ•Šμ„ 경우 무차별 λŒ€μž… 곡격으둜 인해 μ‚¬μš©μž 계정을 νƒˆμ·¨ν•  수 있고, μžλ™ν™” 곡격으둜 κ²Œμ‹œκΈ€ 등둝 λ˜λŠ” SMS λ°œμ†‘ μš”μ²­μ„ λ°˜λ³΅ν•˜μ—¬ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μžμ›μ„ κ³ κ°ˆμ‹œν‚¬ 수 μžˆλ‹€.

μ κ²€λŒ€μƒ 및 νŒλ‹¨κΈ°μ€€

λŒ€μƒ : μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ†ŒμŠ€μ½”λ“œ, μ›Ή λ°©ν™”λ²½

νŒλ‹¨κΈ°μ€€
μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ νŠΉμ • ν”„λ‘œμ„ΈμŠ€μ— λŒ€ν•œ 반볡적인 μš”μ²­ μ‹œ ν†΅μ œκ°€ λ―Έν‘ν•œ κ²½μš°μ— μ·¨μ•½ν•˜λ‹€κ³  νŒλ‹¨ν•œλ‹€.

μ‘°μΉ˜λ°©λ²•
μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ νŠΉμ • ν”„λ‘œμ„ΈμŠ€μ— λŒ€ν•œ λŒ€λŸ‰ μ‚¬μš© ν†΅μ œ 둜직 κ΅¬ν˜„ 및 μ›Ή λ°©ν™”λ²½ λ£°μ…‹ 섀정을 톡해 λŒ€λŸ‰μ˜ λΆˆνŠΉμ • ν”„λ‘œμ„ΈμŠ€ μš”μ²­μ„ μ°¨λ‹¨ν•œλ‹€.

점검 및 μ‘°μΉ˜λ°©μ•ˆ

점검방법
Step 1) 둜그인 μ‹œλ„, κ²Œμ‹œκΈ€ 등둝, SMS λ°œμ†‘ 등에 λŒ€ν•œ 정상적인 μš”μ²­ 정보λ₯Ό μ‹λ³„ν•˜μ—¬ 반볡적으둜 μš”μ²­ μ‹œ ν†΅μ œκ°€ μ΄λ£¨μ–΄μ§€λŠ”μ§€ ν™•μΈν•œλ‹€.

λ³΄μ•ˆμ„€μ •λ°©λ²•
* 둜그인 μ‹œλ„, κ²Œμ‹œκΈ€ 등둝, SMS λ°œμ†‘ 등에 λŒ€ν•œ μ‚¬μš©μž μš”μ²­μ΄ μΌνšŒμ„±μ΄ 될 수 μžˆλ„λ‘, μΊ‘μ°¨(이미지λ₯Ό μ΄μš©ν•˜μ—¬ 확인 값을 ν‘œμ‹œν•˜κ³  μ‚¬μš©μžκ°€ 값을 λ“±λ‘ν•˜μ—¬ μΈμ¦ν•œλ‹€.) λ“± μΌνšŒμ„± 확인 λ‘œμ§μ„ κ΅¬ν˜„ν•΄μ•Ό ν•œλ‹€.

β€» μΊ‘μ°¨(CAPTCHA) : μžλ™ν™”λœ 컴퓨터와 μ‚¬λžŒμ„ νŒλ³„ν•˜κΈ° μœ„ν•œ 기술의 일쒅이닀.
* μžλ™ν™” 곡격을 μ‹œλ„ν•˜λ©΄ 짧은 μ‹œκ°„μ— λ‹€λŸ‰μ˜ νŒ¨ν‚·(μ–‘)이 μ „μ†‘λ˜λ―€λ‘œ 이λ₯Ό 곡격으둜 κ°μ§€ν•˜κ³  λ°©μ–΄ν•  수 μžˆλŠ” IDS/IPS μ‹œμŠ€ν…œμ„ κ΅¬μΆ•ν•˜μ—¬μ•Ό ν•œλ‹€.
(μ„œλ²„μ— μš”μ²­λ˜λŠ” νŒ¨ν‚·(μ–‘)의 λͺ¨λ‹ˆν„°λ§μ΄ λΆˆκ°€λŠ₯ν•œ 경우 μ μ‹œμ— μ μ ˆν•œ λŒ€μ‘μ΄ μ–΄λ ΅λ‹€.)

 

21. ν”„λ‘œμ„ΈμŠ€ 검증 λˆ„λ½ (PV)

취약점 κ°œμš”

μ κ²€λ‚΄μš©
인증이 ν•„μš”ν•œ μ›Ή μ‚¬μ΄νŠΈμ˜ μ€‘μš” νŽ˜μ΄μ§€(κ΄€λ¦¬μž νŽ˜μ΄μ§€, νšŒμ›λ³€κ²½ νŽ˜μ΄μ§€ λ“±)에 λŒ€ν•œ μ ‘κ·Όμ œμ–΄ μ„€μ • μ—¬λΆ€λ₯Ό ν™•μΈν•œλ‹€.

점검λͺ©μ 
인증이 ν•„μš”ν•œ λͺ¨λ“  νŽ˜μ΄μ§€μ— λŒ€ν•΄ 유효 μ„Έμ…˜μž„μ„ ν™•μΈν•˜λŠ” ν”„λ‘œμ„ΈμŠ€ 및 μ£Όμš” 정보 νŽ˜μ΄μ§€μ— μ ‘κ·Ό μš”μ²­μžμ˜ κΆŒν•œ 검증 λ‘œμ§μ„ μ μš©ν•˜μ—¬, λΉ„μΈκ°€μžκ°€ ν•˜μœ„ URL 직접 μ ‘κ·Ό, 슀크립트 μ‘°μž‘ λ“±μ˜ λ°©λ²•μœΌλ‘œ μ€‘μš”ν•œ νŽ˜μ΄μ§€μ— 접근을 μ‹œλ„ν•˜λŠ” 것을 μ°¨λ‹¨ν•˜κΈ° μœ„ν•¨μ΄λ‹€.

λ³΄μ•ˆμœ„ν˜‘
인증이 ν•„μš”ν•œ μ›Ή μ‚¬μ΄νŠΈμ˜ μ€‘μš” νŽ˜μ΄μ§€(κ΄€λ¦¬μž νŽ˜μ΄μ§€, νšŒμ›λ³€κ²½ νŽ˜μ΄μ§€ λ“±)에 λŒ€ν•œ μ ‘κ·Ό μ œμ–΄κ°€ 미흑할 경우 ν•˜μœ„ URL 직접 μ ‘κ·Ό, 슀크립트 μ‘°μž‘ λ“±μ˜ λ°©λ²•μœΌλ‘œ μ€‘μš”ν•œ νŽ˜μ΄μ§€μ— λŒ€ν•œ 접근이 κ°€λŠ₯ν•˜λ‹€.

μ κ²€λŒ€μƒ 및 νŒλ‹¨κΈ°μ€€

λŒ€μƒ : μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ†ŒμŠ€μ½”λ“œ

νŒλ‹¨κΈ°μ€€
인증 후에 μ ‘κ·Όν•΄μ•Όν•˜λŠ” μ›Ή μ‚¬μ΄νŠΈμ˜ ν•˜μœ„ URL을 λ‘œκ·ΈμΈν•˜μ§€ μ•Šκ³  직접 μ ‘κ·Όν•  λ•Œ 접근이 κ°€λŠ₯ν•œ κ²½μš°μ— μ·¨μ•½μ μœΌλ‘œ νŒλ‹¨ν•œλ‹€.

μ‘°μΉ˜λ°©λ²•
인증이 ν•„μš”ν•œ νŽ˜μ΄μ§€μ˜ 경우 νŽ˜μ΄μ§€λ³„ κΆŒν•œ 체크 λ‘œμ§μ„ κ΅¬ν˜„ν•œλ‹€.

점검 및 μ‘°μΉ˜λ°©μ•ˆ

점검방법
Step 1) 업무 ν”„λ‘œμ„ΈμŠ€λ₯Ό νŒŒμ•…ν•œλ‹€.
Step 2) κΆŒν•œμ˜ μ’…λ₯˜ 및 λ²”μœ„λ₯Ό νŒŒμ•…ν•œλ‹€.
Step 3) νŽ˜μ΄μ§€μ˜ λͺ¨λ“  κΈ°λŠ₯을 μˆ˜μ§‘ν•˜μ—¬ ν”„λ‘œμ„ΈμŠ€ 상에 ν†΅μ œλœ νŽ˜μ΄μ§€μ— 접근이 κ°€λŠ₯ν•œμ§€ ν™•μΈν•œλ‹€.

λ³΄μ•ˆμ„€μ •λ°©λ²•
* 우회될 수 μžˆλŠ” ν”Œλ‘œμš°λ₯Ό μ°¨λ‹¨ν•˜μ—¬μ•Ό ν•˜λ©°, νŽ˜μ΄μ§€λ³„ κΆŒν•œ 맀트릭슀λ₯Ό μž‘μ„±ν•˜μ—¬ νŽ˜μ΄μ§€μ— λΆ€μ—¬λœ κΆŒν•œμ˜ 타당성을 μ²΄ν¬ν•œ ν›„ κΆŒν•œ 맀트릭슀λ₯Ό κΈ°μ€€μœΌλ‘œ μ „ νŽ˜μ΄μ§€μ—μ„œ κΆŒν•œ 체크가 이뀄지도둝 κ΅¬ν˜„ν•΄μ•Ό ν•œλ‹€.
* 인증이 ν•„μš”ν•œ λͺ¨λ“  νŽ˜μ΄μ§€μ— λŒ€ν•΄ 유효 μ„Έμ…˜μž„μ„ ν™•μΈν•˜λŠ” ν”„λ‘œμ„ΈμŠ€ 및 μ£Όμš” 정보 νŽ˜μ΄μ§€μ— μ ‘κ·Ό μš”μ²­μžμ— λŒ€ν•œ κΆŒν•œ 검증 λ‘œμ§μ„ μ μš©ν•œλ‹€.
* 유효 μ„Έμ…˜ 검증 및 νŽ˜μ΄μ§€μ— λŒ€ν•œ μ ‘κ·Ό κΆŒν•œμ„ Client Side Script에 μ˜μ‘΄ν•  경우 μ‚¬μš©μžκ°€ μž„μ˜λ‘œ μˆ˜μ •ν•  수 μžˆμœΌλ―€λ‘œ Server Side Script둜 κ΅¬ν˜„λœ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ‚¬μš©ν•œλ‹€.

 

22. 파일 μ—…λ‘œλ“œ (FU)

취약점 κ°œμš”

μ κ²€λ‚΄μš©
μ›Ή μ‚¬μ΄νŠΈμ˜ κ²Œμ‹œνŒ, μžλ£Œμ‹€ 등에 μ‘°μž‘λœ Server Side Script 파일 μ—…λ‘œλ“œ 및 μ‹€ν–‰ κ°€λŠ₯ μ—¬λΆ€λ₯Ό μ κ²€ν•œλ‹€.

점검λͺ©μ 
μ—…λ‘œλ“œλ˜λŠ” 파일의 ν™•μž₯μžμ— λŒ€ν•œ μ μ ˆμ„± μ—¬λΆ€λ₯Ό κ²€μ¦ν•˜λŠ” λ‘œμ§μ„ 톡해 κ³΅κ²©μžκ°€ μ‘°μž‘λœ Server Side Script 파일 μ—…λ‘œλ“œ 방지 및 μ„œλ²„μƒμ— μ €μž₯된 경둜λ₯Ό μœ μΆ”ν•˜μ—¬ ν•΄λ‹Ή Server Side Script 파일 싀행을 λΆˆκ°€λŠ₯ν•˜κ²Œ ν•˜κΈ° μœ„ν•¨μ΄λ‹€.

λ³΄μ•ˆμœ„ν˜‘
ν•΄λ‹Ή 취약점이 μ‘΄μž¬ν•  경우 κ³΅κ²©μžλŠ” μ‘°μž‘λœ Server Side Script νŒŒμΌμ„ μ„œλ²„μ— μ—…λ‘œλ“œ 및 μ‹€ν–‰ν•˜μ—¬ μ‹œμŠ€ν…œ κ΄€λ¦¬μž κΆŒν•œ νšλ“ λ˜λŠ” 인접 μ„œλ²„μ— λŒ€ν•œ μΉ¨μž…μ„ μ‹œλ„ν•  수 μžˆλ‹€.

β€» Server Side Script : μ›Ήμ—μ„œ μ‚¬μš©λ˜λŠ” 슀크립트 μ–Έμ–΄ 쀑 μ„œλ²„ μΈ‘μ—μ„œ μ‹€ν–‰λ˜λŠ” μŠ€ν¬λ¦½νŠΈμ΄λ‹€.

μ κ²€λŒ€μƒ 및 νŒλ‹¨κΈ°μ€€

λŒ€μƒ : μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ†ŒμŠ€μ½”λ“œ, μ›Ή μ„œλ²„, μ›Ή λ°©ν™”λ²½

νŒλ‹¨κΈ°μ€€
μ—…λ‘œλ“œλ˜λŠ” νŒŒμΌμ— λŒ€ν•œ ν™•μž₯자 검증이 이루어지지 μ•ŠλŠ” κ²½μš°μ— μ·¨μ•½ν•˜λ‹€κ³  νŒλ‹¨ν•œλ‹€.

μ‘°μΉ˜λ°©λ²•
μ—…λ‘œλ“œλ˜λŠ” νŒŒμΌμ— λŒ€ν•œ ν™•μž₯자 검증 및 μ‹€ν–‰ κΆŒν•œμ„ μ œκ±°ν•œλ‹€.

점검 및 μ‘°μΉ˜λ°©μ•ˆ

점검방법
Step 1) μ›Ή μ‚¬μ΄νŠΈμ— 파일 μ—…λ‘œλ“œ κΈ°λŠ₯이 μ‘΄μž¬ν•˜λŠ” 경우, ν™•μž₯μžκ°€ jsp, php, asp, cgi λ“±μ˜ Server Side Script νŒŒμΌλ“€μ΄ μ—…λ‘œλ“œ κ°€λŠ₯ν•œμ§€ ν™•μΈν•œλ‹€.
(β€» ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ JavaScript λ“±μ˜ 슀크립트둜 파일 첨뢀λ₯Ό μ°¨λ‹¨ν•˜λŠ” 경우 차단 κΈ°λŠ₯을 μˆ˜μ •ν•˜μ—¬ 파일 μ²¨λΆ€ν•œλ‹€.)
Step 2) μ›Ή μ‚¬μ΄νŠΈμ— μžˆλŠ” 디렉터리 정보λ₯Ό μ΄μš©ν•˜μ—¬ μ²¨λΆ€ν•œ Server Side Script 파일의 μœ„μΉ˜λ₯Ό μ‘°μ‚¬ν•œ ν›„ λΈŒλΌμš°μ € μ£Όμ†Œμ°½μ— ν•΄λ‹Ή 경둜λ₯Ό μž…λ ₯ν•˜μ—¬ μ‹€ν–‰ κ°€λŠ₯ν•œμ§€ ν™•μΈν•œλ‹€.

λ³΄μ•ˆμ„€μ •λ°©λ²•
β€» μ‚¬μš©μžκ°€ νŒŒμΌμ„ μ—…λ‘œλ“œν•  수 μžˆλŠ” λͺ¨λ“  λͺ¨λ“ˆμ— 적용이 ν•„μš”ν•˜λ‹€.
* ν™”μ΄νŠΈ 리슀트 λ°©μ‹μœΌλ‘œ ν—ˆμš©λœ ν™•μž₯자만 μ—…λ‘œλ“œ κ°€λŠ₯ν•˜λ„λ‘ μ„œλ²„ μΈ‘ ν†΅μ œλ₯Ό μ μš©ν•œλ‹€.
* μ—…λ‘œλ“œλ˜λŠ” νŒŒμΌμ„ 디렉터리에 μ €μž₯ν•  λ•Œ 파일λͺ…κ³Ό ν™•μž₯자λ₯Ό μ™ΈλΆ€ μ‚¬μš©μžκ°€ μΆ”μΈ‘ν•  수 μ—†λŠ” λ¬Έμžμ—΄λ‘œ λ³€κ²½ν•˜μ—¬ μ €μž₯ν•œλ‹€.(파일 이름은 DB에 μ €μž₯ν•œλ‹€.)
* μ—…λ‘œλ“œ νŒŒμΌμ„ μœ„ν•œ μ „μš© 디렉터리λ₯Ό λ³„λ„λ‘œ μƒμ„±ν•˜μ—¬ μ›Ή μ„œλ²„ 데λͺ¬ μ„€μ • 파일(httpd.conf λ“±)μ—μ„œ μ‹€ν–‰ 섀정을 μ œκ±°ν•¨μœΌλ‘œμ¨, Server Side Scriptκ°€ μ—…λ‘œλ“œλ˜λ”λΌλ„ μ›Ή 엔진이 μ‹€ν–‰ν•˜μ§€ μ•ŠλŠ” ν™˜κ²½μ„ μ„€μ •ν•œλ‹€.
* 파일 μ—…λ‘œλ“œ ν•„λ“œλ₯Ό λŒ€μƒμœΌλ‘œ 특수문자λ₯Ό ν•„ν„°λ§ν•˜λ„λ‘ μ›Ή λ°©ν™”λ²½ 룰셋을 μ μš©ν•œλ‹€.

β€» μœ ν˜• 별 상세 μ„€μ •
● μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜
1) 수용 κ°€λŠ₯ν•œ 파일의 ν™•μž₯자만 μ—…λ‘œλ“œλ₯Ό ν—ˆμš©ν•œλ‹€.(Positive 방식)
- 이미지 파일의 경우 (JPG, GIF, BMP λ“±)
- λ¬Έμ„œ 파일의 경우 (XLS, PDF, PPT, DOC λ“±)
* ν™•μž₯자 검증 μ‹œ λŒ€μ†Œλ¬Έμž ꡬ뢄없이 λ¬Έμžμ—΄μ„ λΉ„κ΅ν•œλ‹€.
2) MIME TYPE 확인을 ν†΅ν•œ μ‹€ν–‰ 파일 μ—…λ‘œλ“œλ₯Ό μ°¨λ‹¨ν•œλ‹€.

● μ›Ή μ„œλ²„
- Apache μ„€μ • 파일인 httpd.conf에 ν•΄λ‹Ή 디렉터리에 λŒ€ν•œ λ¬Έμ„œ νƒ€μž…μ„ 컨트둀 ν•˜κΈ° μœ„ν•΄ Directory μ„Ήμ…˜μ˜ AllowOverride μ§€μ‹œμžμ—μ„œ FileInfo λ˜λŠ”, "All" μΆ”κ°€
- 파일 μ—…λ‘œλ“œ 디렉터리에 .htaccess νŒŒμΌμ„ λ§Œλ“€κ³  λ‹€μŒκ³Ό 같이 AddType μ§€μ‹œμžλ₯Ό μ΄μš©ν•˜μ—¬, ν˜„μž¬ μ„œλ²„μ—μ„œ μš΄μ˜λ˜λŠ” Server Side Script ν™•μž₯자λ₯Ό text/html둜 MIME Type을 μž¬μ‘°μ •ν•˜μ—¬ μ—…λ‘œλ“œλœ Server Side Scriptκ°€ μ‹€ν–‰λ˜μ§€ μ•Šλ„λ‘ μ„€μ •ν•œλ‹€. λ˜λŠ” FileMatch μ§€μ‹œμžλ₯Ό μ΄μš©ν•˜μ—¬ *.ph, *.inc, *lib λ“±μ˜ Server Side Script νŒŒμΌμ— λŒ€ν•΄μ„œ 직접 URL ν˜ΈμΆœμ„ κΈˆμ§€ μ‹œν‚¨λ‹€.

β€» μ£Όμ˜ν•  점
- Apache μ„œλ²„μ˜ 경우 AllowOverride μ§€μ‹œμž λ³€κ²½ μ‹œ Apache Restartκ°€ ν•„μš”ν•˜λ‹€.
- 파일 μ—…λ‘œλ“œ λ˜λŠ” 디렉터리에 μš΄μ˜μ— ν•„μš”ν•œ Server Side Scriptκ°€ μ‘΄μž¬ν•˜λŠ”μ§€ ν™•μΈν•œλ‹€.
- 파일 λ‹€μš΄λ‘œλ“œ ν”„λ‘œκ·Έλž¨μ΄ μ•„λ‹Œ 직접 URL ν˜ΈμΆœμ„ 톡해 νŒŒμΌμ„ λ‹€μš΄λ°›λŠ” 경우 FileMatch μ§€μ‹œμžλ₯Ό μ‚¬μš©ν•˜λ©΄ 차단 μ„€μ •ν•œ ν™•μž₯자의 파일 λ‹€μš΄λ‘œλ“œλŠ” κ±°λΆ€λœλ‹€.

* 첨뢀 파일 ν™•μž₯자 필터링 처리둜 μ‚¬μš©μžκ°€ 첨뢀 파일의 μ—…λ‘œλ“œ μ‹œλ„ μ‹œ, μ—…λ‘œλ“œ 파일의 ν™•μž₯자λ₯Ό κ²€ν† ν•˜μ—¬ μ μ ˆν•œ νŒŒμΌμΈμ§€ κ²€μ‚¬ν•˜λŠ” 루틴을 μ‚½μž…ν•˜μ—¬, μ ν•©ν•œ 파일의 ν™•μž₯자 μ΄μ™Έμ˜ νŒŒμΌμ— λŒ€ν•΄μ„œ μ—…λ‘œλ“œκ°€ λΆˆκ°€λŠ₯ν•˜λ„λ‘ ν•˜λ©°, 이런 필터링 κ·œμΉ™μ€ μ„œλ²„μ—μ„œ κ΅¬ν˜„ν•˜μ—¬μ•Ό ν•œλ‹€.
* μ‹œμŠ€ν…œ λ³΄μ•ˆ μ„€μ • μ‹œ μ›Ή μ„œλ²„ ꡬ동은 λ°˜λ“œμ‹œ κ΄€λ¦¬μž κΆŒν•œμ΄ μ•„λ‹Œ 일반 μ‚¬μš©μž κΆŒν•œμœΌλ‘œ κ΅¬λ™ν•˜λ„λ‘ ν•œλ‹€.
* μ™ΈλΆ€ μ‚¬μš©μžκ°€ 첨뢀 νŒŒμΌμ„ μ΄μš©ν•˜μ—¬ κΆŒν•œμ„ νšλ“ν• μ§€λΌλ„ μ΅œμ†Œν•œμ˜ κΆŒν•œλ§Œμ„ μ‚¬μš©ν•  수 μžˆλ„λ‘ ν•œλ‹€.
* μ—…λ‘œλ“œλœ λ””λ ‰ν„°λ¦¬μ—μ„œ μ‹€ν–‰ κΆŒν•œμ„ μ œκ±°ν•˜λŠ” 방법은 μž„μ‹œμ μ΄κΈ°λŠ” ν•˜μ§€λ§Œ μ†ŒμŠ€ μ½”λ“œμ˜ μˆ˜μ • 없이 κ°„λ‹¨νžˆ μˆ˜ν–‰λ  수 μžˆλ‹€.

● μ›Ή λ°©ν™”λ²½
* μ›Ή μ‰˜μ— 주둜 μ‚¬μš©λ˜λŠ” λ¬Έμžμ—΄, 였브젝트, λ©”μ†Œλ“œ 등을 μ‹œκ·Έλ‹ˆμ²˜λ‘œ μ§€μ •ν•˜μ—¬ 파일 μ—…λ‘œλ“œ μ‹œ 탐지 및 μ°¨λ‹¨ν•œλ‹€.

 

23. 파일 λ‹€μš΄λ‘œλ“œ (FD)

취약점 κ°œμš”

μ κ²€λ‚΄μš©
μ›Ή μ‚¬μ΄νŠΈμ—μ„œ 파일 λ‹€μš΄λ‘œλ“œ μ‹œ ν—ˆμš©λœ 경둜 μ™Έ λ‹€λ₯Έ 경둜의 파일 접근이 κ°€λŠ₯ν•œμ§€ μ—¬λΆ€λ₯Ό μ κ²€ν•œλ‹€.

점검λͺ©μ 
파일 λ‹€μš΄λ‘œλ“œ μ‹œ ν—ˆμš©λœ 경둜 μ™Έ λ‹€λ₯Έ 경둜의 파일 접근을 λ°©μ§€ν•˜μ—¬ κ³΅κ²©μžκ°€ μž„μ˜μ˜ μœ„μΉ˜μ— μžˆλŠ” νŒŒμΌμ„ μ—΄λžŒν•˜κ±°λ‚˜ λ‹€μš΄λ°›λŠ” 것을 λΆˆκ°€λŠ₯ν•˜κ²Œ ν•˜κΈ° μœ„ν•¨μ΄λ‹€.

λ³΄μ•ˆμœ„ν˜‘
ν•΄λ‹Ή 취약점이 μ‘΄μž¬ν•  경우 κ³΅κ²©μžλŠ” 파일 λ‹€μš΄λ‘œλ“œ μ‹œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ νŒŒλΌλ―Έν„° 값을 μ‘°μž‘ν•˜μ—¬ μ›Ή μ‚¬μ΄νŠΈμ˜ μ£Όμš”ν•œ 파일(DB 컀λ„₯μ…˜ 파일, μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 파일 λ“±) λ˜λŠ” μ›Ή μ„œλ²„ λ£¨νŠΈμ— μžˆλŠ” μ€‘μš”ν•œ μ„€μ • 파일(passwd, shadow λ“±)을 λ‹€μš΄λ°›μ„ 수 μžˆλ‹€.
(cgi, jsp, php λ“± 파일 λ‹€μš΄λ‘œλ“œ κΈ°λŠ₯을 μ œκ³΅ν•΄μ£ΌλŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ μž…λ ₯λ˜λŠ” 경둜λ₯Ό κ²€μ¦ν•˜μ§€ μ•ŠλŠ” 경우 μž„μ˜μ˜ 문자(../.. λ“±)λ‚˜ μ£Όμš” 파일λͺ…μ˜ μž…λ ₯을 톡해 μ›Ή μ„œλ²„μ˜ ν™ˆ 디렉터리λ₯Ό λ²—μ–΄λ‚˜μ„œ μž„μ˜μ˜ μœ„μΉ˜μ— μžˆλŠ” νŒŒμΌμ„ μ—΄λžŒν•˜κ±°λ‚˜ λ‹€μš΄ λ°›λŠ” 것이 κ°€λŠ₯ν•˜λ‹€.

μ κ²€λŒ€μƒ 및 νŒλ‹¨κΈ°μ€€

λŒ€μƒ : μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ†ŒμŠ€μ½”λ“œ, μ›Ή μ„œλ²„, μ›Ή λ°©ν™”λ²½

νŒλ‹¨κΈ°μ€€
λ‹€μš΄λ‘œλ“œ 파일이 μ €μž₯된 디렉터리 이외에 접근이 κ°€λŠ₯ν•œ 경우 μ·¨μ•½ν•˜λ‹€κ³  νŒλ‹¨ν•œλ‹€.

μ‘°μΉ˜λ°©λ²•
λ‹€μš΄λ‘œλ“œ μ‹œ ν—ˆμš©λœ 경둜 μ΄μ™Έμ˜ 디렉터리와 νŒŒμΌμ— μ ‘κ·Όν•  수 없도둝 κ΅¬ν˜„ν•œλ‹€.

점검 및 μ‘°μΉ˜λ°©μ•ˆ

점검방법
Step 1) μ›Ή μ‚¬μ΄νŠΈμ— cgi, jsp, php λ“±μ˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ΄μš©ν•˜μ—¬ νŒŒμΌμ„ λ‹€μš΄λ°›λŠ” νŽ˜μ΄μ§€κ°€ μžˆλŠ”μ§€ μ‘°μ‚¬ν•œλ‹€.
Step 2) μ›Ή μ‚¬μ΄νŠΈμ—μ„œ 파일 λ‹€μš΄λ‘œλ“œμ‹œ μš”μ²­(Request) 정보에 파일 경둜λ₯Ό μ›Ή μ„œλ²„(μ›Ή μ‚¬μ΄νŠΈ 포함) μ€‘μš”νŒŒμΌ(winnt\win.ini, /etc/passwd λ“±)의 μƒλŒ€ 경둜(../)둜 μΉ˜ν™˜ν•œ ν›„ μ „μ†‘ν–ˆμ„ λ•Œ ν•΄λ‹Ή 경둜 νŒŒμΌλ“€μ„ λ‹€μš΄λ‘œλ“œ κ°€λŠ₯ν•œμ§€ ν™•μΈν•œλ‹€.
../../../../../../../../../../../../etc/passwd
../../../../../../../../../../../../winnt/win.ini
../../../../../../../../../../../../boot.ini
Step 3) "Step 2"μ—μ„œ 파일 λ‹€μš΄λ‘œλ“œκ°€ λΆˆκ°€λŠ₯ν•œ 경우 λ³€μ‘°ν•œ 파일 경둜λ₯Ό μ•„λž˜μ˜ 인코딩(λ˜λŠ” μΉ˜ν™˜, μ’…λ‹¨λ¬ΈμžμΆ”κ°€)을 μ μš©ν•˜μ—¬ μž¬μ „μ†‘ ν›„ λ‹€μš΄λ‘œλ“œ κ°€λŠ₯ν•œμ§€ ν™•μΈν•œλ‹€.

β€» URL μΈμ½”λ”©: .(%2e), /(%2f), \(%5c)
β€» 16bit μœ λ‹ˆμ½”λ“œ μΈμ½”λ”©: .(%u002e), /(%u2215), \(%u2216)
β€» λ”λΈ”URL μΈμ½”λ”©: .(%252e), /(%252f), \(%255c)
β€» κ²½λ‘œ μΉ˜ν™˜: …//, ….\\, ….\/, …./\
β€» μ’…단 λ¬Έμž μΆ”κ°€: [파일λͺ…]%00.jpg, [파일λͺ…]%0a.jpg

λ³΄μ•ˆμ„€μ •λ°©λ²•
* 파일 λ‹€μš΄λ‘œλ“œμ˜ 취약성은 주둜 파일의 이름을 μ‘°μž‘ν•˜λŠ” λ°μ„œ λΉ„λ‘―λ˜λ―€λ‘œ λ‹€μš΄λ‘œλ“œ 파일 이름을 λ°μ΄ν„°λ² μ΄μŠ€μ— μ €μž₯ν•˜κ³  λ‹€μš΄λ‘œλ“œ μˆ˜ν–‰ μ‹œ μš”μ²­ 파일 이름과 λΉ„κ΅ν•˜μ—¬ μ μ ˆν•œμ§€ ν™•μΈν•˜μ—¬ μ‚¬μš©μžκ°€ μ‘°μž‘ν•  수 μžˆλŠ” λ³€μˆ˜λ₯Ό μ œκ±°ν•œλ‹€.
* λ‹€μš΄λ‘œλ“œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ†ŒμŠ€ νŒŒμΌμ„ μˆ˜μ •ν•˜μ—¬ νŒŒμΌμ„ λ‹€μš΄λ°›μ„ 수 μžˆλŠ” 디렉터리λ₯Ό νŠΉμ • λ””λ ‰ν„°λ¦¬λ‘œ ν•œμ •ν•˜κ³  이 μ™Έμ˜ λ‹€λ₯Έ λ””λ ‰ν„°λ¦¬μ—μ„œλŠ” νŒŒμΌμ„ λ‹€μš΄λ°›μ„ 수 없도둝 μ„€μ •ν•΄μ•Ό ν•œλ‹€.
* PHPλ₯Ό μ‚¬μš©ν•˜λŠ” 경우 php.iniμ—μ„œ magic_quotes_gpcλ₯Ό On으둜 μ„€μ •ν•˜μ—¬ .οΏ¦(\)./ 와 같은 μ—­ μŠ¬λž˜μ‹œ 문자 μž…λ ₯ μ‹œ μΉ˜ν™˜λ˜λ„λ‘ μ„€μ •ν•œλ‹€.
* 파일 λ‹€μš΄λ‘œλ“œμ˜ μ ˆλŒ€ 경둜 μ„€μ • 및 DocBase의 μƒμœ„κ²½λ‘œ λ˜λŠ” 타 λ“œλΌμ΄λΈŒλ‘œ 섀정을 λ³€κ²¬ν•œλ‹€.
* λ‹€μš΄λ‘œλ“œ 경둜 정보λ₯Ό μžλ°”μŠ€ν¬λ¦½νŠΈλ‚˜ js μ†ŒμŠ€μ—μ„œ 확인할 수 μ—†κ²Œ μ œν•œν•˜λ©°, μ›Ή μ„œλ²„ μ„œλΈ”λ¦Ώ λ‚΄λΆ€ λ˜λŠ” λ³„λ„μ˜ μ„€μ • νŒŒμΌμ—μ„œ κ΄€λ¦¬ν•œλ‹€.
* λ‹€μš΄λ‘œλ“œλ₯Ό μ œκ³΅ν•˜λŠ” νŽ˜μ΄μ§€μ˜ 유효 μ„Έμ…˜ 체크 λ‘œμ§μ„ ν•„μˆ˜ μ μš©ν•œλ‹€.
* λ‹€μš΄λ‘œλ“œ μ‹œ μ‚¬μš©λ˜λŠ” νŒŒλΌλ―Έν„° κ°’ λŒ€μƒμœΌλ‘œ λ‹€μŒμ˜ 특수문자λ₯Ό ν•„ν„°λ§ν•˜λ„λ‘ μ›Ή λ°©ν™”λ²½ 룰셋을 μ μš©ν•œλ‹€.
- Path Traversal κ°€λŠ₯μ„±μ˜ 확인( . )
- νŠΉμ • Path의 μ ‘κ·Ό κ°€λŠ₯성을 확인( / )
- μš΄μ˜ν™˜κ²½μ— λ”°λ₯Έ Path 접근을 확인( οΏ¦(\) )
- UTF 인코딩 νŒŒλΌλ―Έν„°( % )

 

24. κ΄€λ¦¬μž νŽ˜μ΄μ§€ λ…ΈμΆœ (AE)

취약점 κ°œμš”

μ κ²€λ‚΄μš©
μœ μΆ”ν•˜κΈ° μ‰¬μš΄ URL둜 κ΄€λ¦¬μž νŽ˜μ΄μ§€ 및 메뉴 μ ‘κ·Όμ˜ κ°€λŠ₯ μ—¬λΆ€λ₯Ό μ κ²€ν•œλ‹€.

점검λͺ©μ 
κ΄€λ¦¬μž νŽ˜μ΄μ§€ URL이 μœ μΆ”ν•˜κΈ° μ‰¬μš΄ 이름(admin, manager λ“±) 및 μ›Ή μ‚¬μ΄νŠΈ 섀계 였λ₯˜λ₯Ό μˆ˜μ •ν•˜μ—¬ λΉ„μΈκ°€μžμ˜ κ΄€λ¦¬μž 메뉴 접근을 λ°©μ§€ν•˜κΈ° μœ„ν•¨μ΄λ‹€.

λ³΄μ•ˆμœ„ν˜‘
μ›Ή κ΄€λ¦¬μžμ˜ κΆŒν•œμ΄ λ…ΈμΆœλ  경우 μ›Ή μ‚¬μ΄νŠΈμ˜ λ³€μ‘°λΏλ§Œ μ•„λ‹ˆλΌ μ·¨μ•½μ„± 정도에 λ”°λΌμ„œ μ›Ή μ„œλ²„μ˜ κΆŒν•œκΉŒμ§€λ„ λ…ΈμΆœλ  수 μžˆλ‹€.

μ κ²€λŒ€μƒ 및 νŒλ‹¨κΈ°μ€€

λŒ€μƒ : μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ†ŒμŠ€μ½”λ“œ, μ›Ή μ„œλ²„, μ›Ή λ°©ν™”λ²½

νŒλ‹¨κΈ°μ€€
μœ μΆ”ν•˜κΈ° μ‰¬μš΄ URL둜 κ΄€λ¦¬μž νŽ˜μ΄μ§€ 접근이 κ°€λŠ₯ν•œ κ²½μš°μ— μ·¨μ•½ν•˜λ‹€κ³  νŒλ‹¨ν•œλ‹€.

μ‘°μΉ˜λ°©λ²•
μœ μΆ”ν•˜κΈ° μ–΄λ €μš΄ 이름(포트 번호 λ³€κ²½ 포함)으둜 κ΄€λ¦¬μž νŽ˜μ΄μ§€λ₯Ό λ³€κ²½ν•˜μ—¬ λΉ„μΈκ°€μžκ°€ κ΄€λ¦¬μž νŽ˜μ΄μ§€μ— μ ‘κ·Όν•  수 없도둝 ν•˜κ³  근본적인 해결을 μœ„ν•΄ μ§€μ •λœ IP만 κ΄€λ¦¬μž νŽ˜μ΄μ§€μ— μ ‘κ·Όν•  수 μžˆλ„λ‘ μ œν•œν•˜μ—¬μ•Ό ν•œλ‹€.
(단, λΆ€λ“μ΄ν•˜κ²Œ κ΄€λ¦¬μž νŽ˜μ΄μ§€λ₯Ό 외뢀에 λ…ΈμΆœν•΄μ•Ό ν•˜λŠ” 경우 κ΄€λ¦¬μž νŽ˜μ΄μ§€ 둜그인 μ‹œ 2μ°¨ 인증(otp, vpn, μΈμ¦μ„œ λ“±)의 적용이 ν•„μš”ν•˜λ‹€.

점검 및 μ‘°μΉ˜λ°©μ•ˆ

점검방법
Step 1) μΆ”μΈ‘ν•˜κΈ° μ‰¬μš΄ κ΄€λ¦¬μž νŽ˜μ΄μ§€ 경둜(/admin, /manager, /master, /system λ“±) 접근을 μ‹œλ„ν•˜μ—¬ κ΄€λ¦¬μž νŽ˜μ΄μ§€κ°€ λ…ΈμΆœλ˜λŠ”μ§€ ν™•μΈν•œλ‹€.
Step 2) μΆ”μΈ‘ν•˜κΈ° μ‰¬μš΄ 포트(7001, 8080, 8443, 8888 λ“±) 접속을 μ‹œλ„ν•˜μ—¬ κ΄€λ¦¬μž νŽ˜μ΄μ§€κ°€ λ…ΈμΆœλ˜λŠ”μ§€ ν™•μΈν•œλ‹€.
Step 3) κ΄€λ¦¬μž νŽ˜μ΄μ§€μ˜ 둜그인 창에 κΈ°λ³Έ κ΄€λ¦¬μž 계정(admin, administrator, manager λ“±) 및 νŒ¨μŠ€μ›Œλ“œλ₯Ό μž…λ ₯ν•˜μ—¬ 둜그인 κ°€λŠ₯ν•œμ§€ ν™•μΈν•œλ‹€.
Step 4) κ΄€λ¦¬μž νŽ˜μ΄μ§€ 둜그인 ν›„ μ‹λ³„λœ ν•˜μœ„ νŽ˜μ΄μ§€(/admin/main.asp, /admin/menu.html λ“±) URL을 μƒˆ μ„Έμ…˜μ—μ„œ 직접 μž…λ ₯ν•˜μ—¬ 인증 κ³Όμ • 없이 μ ‘κ·Ό κ°€λŠ₯ν•œμ§€ ν™•μΈν•œλ‹€.

λ³΄μ•ˆμ„€μ •λ°©λ²•
* 일반 μ‚¬μš©μžμ˜ 접근이 λΆˆν•„μš”ν•œ κ΄€λ¦¬μž 둜그인 νŽ˜μ΄μ§€ μ£Όμ†Œλ₯Ό μœ μΆ”ν•˜κΈ° μ–΄λ €μš΄ μ΄λ¦„μœΌλ‘œ λ³€κ²½ν•˜κ³  κ΄€λ¦¬μž νŽ˜μ΄μ§€ μ ‘κ·Ό ν¬νŠΈλ„ λ³€κ²½ν•œλ‹€.
* κ΄€λ¦¬μž νŽ˜μ΄μ§€μ˜ ν•˜μœ„ νŽ˜μ΄μ§€ URL을 직접 μž…λ ₯ν•˜μ—¬ μ ‘κ·Όν•˜μ§€ λͺ»ν•˜λ„둝 νŽ˜μ΄μ§€λ§ˆλ‹€ μ„Έμ…˜ 검증이 ν•„μš”ν•˜λ‹€.
* κ΄€λ¦¬μž νŽ˜μ΄μ§€ 이외에도 νŠΉμ • μ‚¬μš©μžλ§Œ μ ‘κ·Ό κ°€λŠ₯ν•œ νŽ˜μ΄μ§€λ“€μ€ 정상적인 ν”„λ‘œμ„ΈμŠ€μ— 따라 μ ‘κ·Όν•  수 μžˆλ„λ‘ νŽ˜μ΄μ§€λ§ˆλ‹€ μ„Έμ…˜ 검증이 ν•„μš”ν•˜λ‹€.
* μ›Ή 방화벽을 μ΄μš©ν•˜μ—¬ νŠΉμ • IP만 μ ‘κ·Ό κ°€λŠ₯ν•˜λ„λ‘ 룰셋을 μ μš©ν•œλ‹€.

 

25. 경둜 좔적 (PT)

취약점 κ°œμš”

μ κ²€λ‚΄μš©
μ›Ή μ„œλ²„μ™€ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 파일 λ˜λŠ” λ””λ ‰ν„°λ¦¬μ˜ μ ‘κ·Ό ν†΅μ œ μ—¬λΆ€λ₯Ό μ κ²€ν•œλ‹€.

점검λͺ©μ 
μ›Ή μ„œλ²„ λ˜λŠ” μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ€‘μš”ν•œ 파일과 λ°μ΄ν„°μ˜ μ ‘κ·Ό 및 싀행을 λ°©μ§€ν•˜κΈ° μœ„ν•¨μ΄λ‹€.

λ³΄μ•ˆμœ„ν˜‘
μ›Ή μ„œλ²„μ™€ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 파일 λ˜λŠ” 디렉터리 접근이 ν†΅μ œλ˜μ§€ μ•Šμ•„ μ›Ή μ„œλ²„ λ˜λŠ” μ›Ή μ• ν”„λ¦¬μΌ€μ΄μ…˜μ˜ μ€‘μš”ν•œ 파일과 데이터에 접근을 ν—ˆμš©ν•˜λŠ” μ·¨μ•½μ μœΌλ‘œ μ›Ή 루트 λ””λ ‰ν„°λ¦¬μ—μ„œ μ™ΈλΆ€μ˜ νŒŒμΌκΉŒμ§€ μ ‘κ·Όν•˜μ—¬ 이λ₯Ό μ‹€ν–‰ν•  수 μžˆλ‹€.

μ κ²€λŒ€μƒ 및 νŒλ‹¨κΈ°μ€€

λŒ€μƒ : μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ†ŒμŠ€μ½”λ“œ, μ›Ή μ„œλ²„, μ›Ή λ°©ν™”λ²½

νŒλ‹¨κΈ°μ€€
μ›Ή 루트 디렉터리보닀 μƒμœ„ 디렉터리에 접근이 κ°€λŠ₯ν•œ κ²½μš°μ— μ·¨μ•½ν•˜λ‹€κ³  νŒλ‹¨ν•œλ‹€. (ex : /root)

μ‘°μΉ˜λ°©λ²•
μ‚¬μš©μžκ°€ μž„μ˜λ‘œ μ ‘κ·Όν•  수 μžˆλŠ” μ΅œμƒμœ„ 디렉터리λ₯Ό μ›Ή 루트 λ””λ ‰ν„°λ¦¬λ‘œ μ„€μ •ν•˜μ—¬ μ›Ή μ„œλ²„μ˜ μ‹œμŠ€ν…œ 루트 디렉터리 둜 μ ‘κ·Όν•˜μ§€ λͺ»ν•˜κ²Œ μ œν•œν•œλ‹€.

점검 및 μ‘°μΉ˜λ°©μ•ˆ

점검방법
Step 1) μ›Ή λΈŒλΌμš°μ €μ— ν‘œμ‹œν•  νŽ˜μ΄μ§€λ₯Ό μ§€μ •ν•˜λŠ” νŒŒλΌλ―Έν„° 값을 μž„μ˜μ˜ κ²½λ‘œκ°€ ν¬ν•¨λœ κ°’μœΌλ‘œ λ³€μ‘° ν›„ μ „μ†‘ν•˜μ—¬ ν•΄λ‹Ήκ²½λ‘œμ˜ 파일 λ‚΄μš©μ΄ μ›Ή λΈŒλΌμš°μ €μ— ν‘œμ‹œλ˜λŠ”μ§€ ν™•μΈν•œλ‹€.
../../../../../../../../../../../../etc/passwd
../../../../../../../../../../../../winnt/win.ini
../../../../../../../../../../../../boot.ini
Step 2) "Step 1)"μ—μ„œ λ³€μ‘°ν•˜μ—¬ μ „μ†‘ν•œ νŒŒλΌλ―Έν„° 값을 μ•„λž˜μ˜ 인코딩(λ˜λŠ” μΉ˜ν™˜, μ’…λ‹¨λ¬Έμž μΆ”κ°€)을 μ μš©ν•˜μ—¬ μž¬μ „μ†‘ ν›„ ν•΄λ‹Ήκ²½λ‘œμ˜ 파일 λ‚΄μš©μ΄ μ›Ή λΈŒλΌμš°μ €μ— ν‘œμ‹œλ˜λŠ”μ§€ ν™•μΈν•œλ‹€.
β€» URL 인코딩: .(%2e), /(%2f), \(%5c)
β€» 16bit μœ λ‹ˆμ½”λ“œ 인코딩: .(%u002e), /(%u2215), \(%u2216)
β€» 더블URL 인코딩: .(%252e), /(%252f), \(%255c)
β€» 경둜 μΉ˜ν™˜: …//, ….\\, ….\/, …./\
β€» 쒅단 문자 μΆ”κ°€: [파일λͺ…]%00.jpg, [파일λͺ…]%0a.jpg

λ³΄μ•ˆμ„€μ •λ°©λ²•
* μ›Ή μ‚¬μ΄νŠΈμ—μ„œ μ ‘κ·Όν•˜λ €λŠ” 파일이 μžˆλŠ” 디렉터리에 chroot ν™˜κ²½ 적용 μ‹œ 경둜 좔적 곡격을 μ΅œμ†Œν™”ν•  수 μžˆλ‹€.
- chroot λ””λ ‰ν„°λ¦¬λŠ” ν•΄λ‹Ή 디렉터리가 루트처럼 닀루어진닀. chroot 파일 μ‹œμŠ€ν…œμ€ λŒ€λΆ€λΆ„μ˜ μœ λ‹‰μŠ€λ₯Ό 기반으둜 ν•œ ν”Œλž«νΌμ—μ„œ 지원 κ°€λŠ₯ν•˜λ©°, μœˆλ„μš° ν”Œλž«νΌμ—μ„œλŠ” μ μ ˆν•œ μ‹œμž‘ 디렉터리λ₯Ό μƒˆλ‘œμš΄ 논리 λ“œλΌμ΄λΈŒλ‘œ λ§Œλ“€μ–΄ μ›Ή μ‚¬μ΄νŠΈμ—μ„œ ν•΄λ‹Ή λ“œλΌμ΄λΈŒλ₯Ό ν†΅ν•˜μ—¬ μ ‘κ·Όν•˜κ²Œ ν•œλ‹€.
* μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ†ŒμŠ€ νŒŒμΌμ„ μˆ˜μ •ν•˜μ—¬ 파일 λ‚΄μš©μ„ μ›Ή λΈŒλΌμš°μ €μ— ν‘œμ‹œν•  수 μžˆλŠ” 디렉터리λ₯Ό νŠΉμ • λ””λ ‰ν„°λ¦¬λ‘œ ν•œμ •ν•˜κ³  이 μ™Έμ˜ λ‹€λ₯Έ λ””λ ‰ν„°λ¦¬μ—μ„œλŠ” 파일 λ‚΄μš©μ„ ν‘œμ‹œν•  수 없도둝 μ„€μ •ν•΄μ•Ό ν•œλ‹€.

 

27. 데이터 평문 전솑 (SN)

취약점 κ°œμš”

μ κ²€λ‚΄μš©
μ„œλ²„μ™€ ν΄λΌμ΄μ–ΈνŠΈ κ°„ 톡신 μ‹œ λ°μ΄ν„°μ˜ μ•”ν˜Έν™” μ—¬λΆ€λ₯Ό μ κ²€ν•œλ‹€.

점검λͺ©μ 
μ„œλ²„μ™€ ν΄λΌμ΄μ–ΈνŠΈ κ°„ 톡신 μ‹œ λ°μ΄ν„°μ˜ μ•”ν˜Έν™” 전솑 미흑으둜 정보 유좜의 μœ„ν—˜μ„ λ°©μ§€ν•˜κΈ° μœ„ν•¨μ΄λ‹€.

λ³΄μ•ˆμœ„ν˜‘
μ›Ήμƒμ˜ 데이터 톡신은 λŒ€λΆ€λΆ„ ν…μŠ€νŠΈ 기반으둜 이루어지기 λ•Œλ¬Έμ— μ„œλ²„μ™€ ν΄λΌμ΄μ–ΈνŠΈ 간에 μ•”ν˜Έν™” ν”„λ‘œμ„ΈμŠ€λ₯Ό κ΅¬ν˜„ν•˜μ§€ μ•ŠμœΌλ©΄ κ°„λ‹¨ν•œ 도청(Sniffing)을 톡해 정보λ₯Ό νƒˆμ·¨ 및 λ„μš©ν•  수 μžˆλ‹€.

β€» Sniffing : μŠ€λ‹ˆνΌλ₯Ό μ΄μš©ν•˜μ—¬ λ„€νŠΈμ›Œν¬μƒμ˜ 데이터λ₯Ό λ„μ²­ν•˜λŠ” ν–‰μœ„λ₯Ό λ§ν•œλ‹€.

μ κ²€λŒ€μƒ 및 νŒλ‹¨κΈ°μ€€

λŒ€μƒ : μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ†ŒμŠ€μ½”λ“œ, μ›Ή μ„œλ²„

νŒλ‹¨κΈ°μ€€
μ€‘μš”μ •λ³΄ 전솑ꡬ간에 μ•”ν˜Έν™” 톡신이 이루어지지 μ•ŠλŠ” κ²½μš°μ— μ·¨μ•½ν•˜λ‹€κ³  νŒλ‹¨ν•œλ‹€.

μ‘°μΉ˜λ°©λ²•
μ‚¬μ΄νŠΈμ˜ μ€‘μš”μ •λ³΄ 전솑ꡬ간(둜그인, νšŒμ›κ°€μž…, νšŒμ›μ •λ³΄κ΄€λ¦¬, κ²Œμ‹œνŒ λ“±) μ•”ν˜Έν™” 톡신(https, μ• ν”Œλ¦¬μΌ€μ΄μ…˜λ°©μ‹)을 μ μš©ν•œλ‹€.

점검 및 μ‘°μΉ˜λ°©μ•ˆ

점검방법
Step 1) μ€‘μš”μ •λ³΄(인증정보, κ°œμΈμ •λ³΄ λ“±)λ₯Ό μ†‘μˆ˜μ‹ ν•˜λŠ” νŽ˜μ΄μ§€μ˜ 쑴재 μ—¬λΆ€λ₯Ό ν™•μΈν•œλ‹€.
Step 2) μ€‘μš”μ •λ³΄ μ†‘μˆ˜μ‹  νŽ˜μ΄μ§€κ°€ μ•”ν˜Έν™” 톡신(https, 데이터 μ•”ν˜Έν™” λ“±)을 ν•˜λŠ”μ§€ ν™•μΈν•œλ‹€.
Step 3) μ·¨μ•½ν•œ λ²„μ „μ˜ μ•”ν˜Έ ν”„λ‘œν† μ½œ μ‚¬μš© μ‹œ μ•”ν˜Έν™”λœ 톡신 λ‚΄μš©μ΄ 유좜될 수 μžˆμœΌλ―€λ‘œ, μ·¨μ•½ν•œ λ²„μ „μ˜ SSL(SSL 2.0, 3.0) μ‚¬μš© μ—¬λΆ€λ₯Ό μ κ²€ν•œλ‹€.

λ³΄μ•ˆμ„€μ •λ°©λ²•
* μ›Ήμƒμ—μ„œμ˜ 전솑 정보λ₯Ό μ œν•œν•˜μ—¬ λΆˆν•„μš”ν•œ λΉ„λ°€λ²ˆν˜Έ, μ£Όλ―Όλ“±λ‘λ²ˆν˜Έ, κ³„μ’Œμ •λ³΄μ™€ 같은 μ€‘μš”μ •λ³΄μ˜ 전솑을 μ΅œμ†Œν™”ν•˜μ—¬μ•Ό ν•˜λ©°, μ€‘μš”μ •λ³΄μ— λŒ€ν•΄μ„œλŠ” λ°˜λ“œμ‹œ SSL λ“±μ˜ μ•”ν˜Έν™” 톡신을 μ‚¬μš©ν•˜μ—¬ λ„μ²­μœΌλ‘œλΆ€ν„°μ˜ μœ„ν—˜μ„ μ œκ±°ν•΄μ•Όν•œλ‹€.
* 쿠킀와 같이 ν΄λΌμ΄μ–ΈνŠΈ μΈ‘μ—μ„œ λ…ΈμΆœλ˜λŠ” 곳에 λΉ„λ°€λ²ˆν˜Έ, 인증인식 κ°’, κ°œμΈμ •λ³΄ λ“±μ˜ 정보λ₯Ό κΈ°λ‘ν•˜μ§€ μ•ŠλŠ”λ‹€.
* μ•”ν˜Έν™” 전솑 μ‹œ ν”„λ‘œν† μ½œ μ„€κ³„μ˜ 결함이 μžˆλŠ” SSLv2, SSLv3, TLSv1.0, TLSv1.1은 ν•„μˆ˜μ μœΌλ‘œ λΉ„ν™œμ„±ν™” ν•˜κ³ , TLSv1.2 이상 μ‚¬μš©μ„ ꢌμž₯ν•œλ‹€.

 

28. μΏ ν‚€ λ³€μ‘° (CC)

취약점 κ°œμš”

μ κ²€λ‚΄μš©
μΏ ν‚€ μ‚¬μš© μ—¬λΆ€ 및 μ‚¬μš©ν•˜λŠ” 경우 μ•ˆμ „ν•œ μ•Œκ³ λ¦¬μ¦˜μœΌλ‘œ μ•”ν˜Έν™” ν•˜κ³  μžˆλŠ”μ§€ μ—¬λΆ€λ₯Ό μ κ²€ν•œλ‹€.

점검λͺ©μ 
μΏ ν‚€λ₯Ό μ‚¬μš©ν•˜λŠ” 경우 μ•ˆμ „ν•œ μ•Œκ³ λ¦¬μ¦˜μœΌλ‘œ μ•”ν˜Έν™”ν•˜μ—¬ κ³΅κ²©μžκ°€ μΏ ν‚€ μΈμ μ…˜ λ“±κ³Ό 같은 μΏ ν‚€ κ°’ λ³€μ‘°λ₯Ό ν†΅ν•œ λ‹€λ₯Έ μ‚¬μš©μžλ‘œμ˜ μœ„μž₯ 및 κΆŒν•œ 변경을 λ°©μ§€ν•˜κ³ μž ν•œλ‹€.

λ³΄μ•ˆμœ„ν˜‘
ν΄λΌμ΄μ–ΈνŠΈμ— μ „λ‹¬λ˜λŠ” 쿠킀에 μ‚¬μš©μž 식별 값이 ν‰λ¬ΈμœΌλ‘œ λ…ΈμΆœλ  경우 μΏ ν‚€ λ³€μ‘°λ₯Ό 톡해 λ‹€λ₯Έ μ‚¬μš©μžμ˜ μœ νš¨ν•œ μ„Έμ…˜μ„ 취득할 수 있으며, 기타 μ€‘μš”μ •λ³΄μ˜ 유좜 및 λ³€μ‘°κ°€ κ°€λŠ₯ν•˜λ‹€.

β€» μΏ ν‚€(Cookie) : 인터넷 μ‚¬μš©μžκ°€ μ–΄λ–€ν•œ μ›Ή μ‚¬μ΄νŠΈλ₯Ό λ°©λ¬Έν•  경우 κ·Έ μ‚¬μ΄νŠΈκ°€ μ‚¬μš©ν•˜κ³  μžˆλŠ” μ„œλ²„μ—μ„œ 인터넷 μ‚¬μš©μžμ˜ 컴퓨터에 μ„€μΉ˜ν•˜λŠ” μž‘μ€ 기둝 정보 νŒŒμΌμ΄λ‹€.

μ κ²€λŒ€μƒ 및 νŒλ‹¨κΈ°μ€€

λŒ€μƒ : μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ†ŒμŠ€μ½”λ“œ

νŒλ‹¨κΈ°μ€€
μ•ˆμ „ν•œ μ•Œκ³ λ¦¬μ¦˜μ΄ μ μš©λ˜μ–΄μžˆμ§€ μ•Šμ€ μΏ ν‚€(λ˜λŠ” Session)λ₯Ό μ‚¬μš©ν•˜κ±°λ‚˜, Client Side Session을 μ‚¬μš©ν•˜λŠ” κ²½μš°μ— μ·¨μ•½ν•˜λ‹€κ³  νŒλ‹¨ν•œλ‹€.

μ‘°μΉ˜λ°©λ²•
μΏ ν‚€ λŒ€μ‹  Server Side Session 방식을 μ‚¬μš©ν•˜κ±°λ‚˜, μΏ ν‚€λ₯Ό 톡해 인증 λ“± μ€‘μš”ν•œ κΈ°λŠ₯을 κ΅¬ν˜„ν•΄μ•Ό ν•  κ²½μš°μ—” μ•ˆμ „ν•œ μ•Œκ³ λ¦¬μ¦˜(SEED, 3DES, AES λ“±)을 μ μš©ν•œλ‹€.

점검 및 μ‘°μΉ˜λ°©μ•ˆ

점검방법
Step 1) μΏ ν‚€ λ‚΄μš© 및 λ°œν–‰λ˜λŠ” 쿠킀에 μ€‘μš”μ •λ³΄(인증을 μœ„ν•œ ID, κΆŒν•œμ„ μœ„ν•œ κ΅¬λΆ„μž λ“±)의 λ…ΈμΆœ μ—¬λΆ€λ₯Ό μ‘°μ‚¬ν•œλ‹€.
Step 2) μΏ ν‚€μ˜ μ€‘μš”μ •λ³΄λ₯Ό λ³€κ²½ν•˜μ—¬ λ‹€λ₯Έ μ‚¬μš©μž 및 κΆŒν•œμœΌλ‘œ 정상 이용이 κ°€λŠ₯ν•œμ§€ ν™•μΈν•œλ‹€.

λ³΄μ•ˆμ„€μ •λ°©λ²•
* μΏ ν‚€ λŒ€μ‹  λ³΄μ•ˆμ„±μ΄ κ°•ν•œ Server Side Session 방식을 μ‚¬μš©ν•œλ‹€.
(Client Side Session 방식인 μΏ ν‚€λŠ κ·Έ ꡬ쑰상 λ‹€μ–‘ν•œ 취약점에 λ…ΈμΆœλ  수 μžˆλ‹€.)
* μΏ ν‚€(λ˜λŠ” μ„Έμ…˜)λ₯Ό μ‚¬μš©ν•΄μ„œ μ€‘μš”μ •λ³΄λ‚˜ 인증으 κ΅¬ν˜„ν•΄μ•Ό ν•  κ²½μš°μ—” μ•ˆμ „ν•œ μ•Œκ³ λ¦¬μ¦˜μ„ μ μš©ν•œλ‹€.
* HTTP 헀더에 λ‹€μŒκ³Ό 같이 μ„€μ •ν•˜μ—¬ μ„Έμ…˜ ID 값은 HTTPSλ₯Ό ν†΅ν•΄μ„œλ§Œ μ „μ†‘λ˜λ„λ‘ μ„€μ •ν•˜κ³ , μžλ°”μŠ€ν¬λ¦½νŠΈλ₯Ό 톡해 μ„Έμ…˜ ID κ°’ λ“± μΏ ν‚€ 정보가 μœ μΆœλ˜μ§€ μ•Šλ„λ‘ λ³΄ν˜Έν•œλ‹€.

Set-Cookie : secure, HttpOnly
Set-Cookie : domain=app.mysite.com
β€» HttpOnly μ„€μ • κ΄€λ ¨ μ°Έκ³ μ‚¬ν•­
https://msdn.microsoft.com/en-us/library/system.web.httpcookie.httponly.aspx
https://www.owasp.org/index.php/HttpOnly