/DevFest-2021-Secure-Coding-Guideline

🌲 개발 λ³΄μ•ˆ μ‹œνμ–΄ μ½”λ”© κ°€μ΄λ“œλΌμΈ 🌲 DevFest 2021 Ewha Womans University : Secure Coding Guideline

Primary LanguageC

DevFest 2021 : Secure Coding Guideline

GDSC EWHA | λ³΄μ•ˆκ³Ό ν•¨κ»˜ ν•˜λŠ” 개발, μ‹œνμ–΄μ½”λ”© ν•˜λ£¨λ§Œμ— λ°°μ›Œ 보기


Table of Contents


βœ”οΈ SQL Injection : SQL μ‚½μž…

κ°€μž₯ λΉˆλ²ˆν•˜κ²Œ μΌμ–΄λ‚˜λŠ” μ›Ή ν•΄ν‚Ή 곡격
μ›Ή μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ μ‚¬μš©μž μž…λ ₯값에 필터링과 μ΄μŠ€μΌ€μ΄ν”„κ°€ μ œλŒ€λ‘œ 적용돼 μžˆμ§€ μ•Šμ„ λ•Œ λ°œμƒ
κ³΅κ²©μžκ°€ μ‘°μž‘λœ SQL μ§ˆμ˜λ¬Έμ„ μ‚½μž…ν•΄ μ›Ή μ„œλ²„ DB 정보 μ—΄λžŒ/유좜/μ‘°μž‘ν•¨ πŸš€ Learn More

JAVA C
πŸ“– πŸ“–
μ™ΈλΆ€ μž…λ ₯ λ°›μ•„ 쿼리 생성 μ™ΈλΆ€ μž…λ ₯ λ°›μ•„ 쿼리 생성
ID와 Password μΆ”μΆœν•΄ 쿼리 생성 ID와 Password μΆ”μΆœν•΄ 쿼리 생성
Blind SQL injection 곡격 ꡬ문 .

βœ”οΈ SQL Injection : JDO

Java Data Objects둜, μ μ ˆν•œ 검사 κ³Όμ • 없이 μ˜λ„μ— λ²—μ–΄λ‚œ 질의문 생성을 μœ„ν•œ λ¬Έμžμ—΄μ„ 전달해 질의문 의미 μ™œκ³‘μ‹œν‚€κ±°λ‚˜ ꡬ쑰 λ³€κ²½ν•΄ μž„μ˜μ˜ 질의 λͺ…λ Ήμ–΄ μˆ˜ν–‰ πŸš€ Learn More

JAVA
πŸ“–
Parameterize Query 1
Parameterize Query 2

βœ”οΈ SQL Injection : Persistence

J2EE Persistence API μ‚¬μš©ν•˜λŠ” μ‘μš©ν”„λ‘œκ·Έλž¨μ—μ„œ μ™ΈλΆ€μ˜ μž…λ ₯을 검증 없이 질의문으둜 μ‚¬μš©ν•˜λŠ” 경우, μ—­μ‹œ ν”„λ‘œκ·Έλž˜λ¨Έκ°€ μ˜λ„ν•˜μ§€ μ•Šμ•˜λ˜ μž„μ˜μ˜ query λͺ…λ Ήμ–΄ μˆ˜ν–‰ν•˜λŠ” 곡격 πŸš€ Learn More

JAVA
πŸ“–
μž…λ ₯κ°’ 검증
λ¬Έμžμ—΄ 검증 ν•¨μˆ˜

βœ”οΈ SQL Injection : mybatis Data Map

μ™ΈλΆ€μ—μ„œ μž…λ ₯된 값이 쿼리문의 μΈμžκ°’κ³Ό 쿼리 λͺ…령어에 μ—°κ²°λ˜λŠ” λ¬Έμžμ—΄λ‘œ μ‚¬μš©ν•˜λŠ” 경우 곡격자 μ˜λ„μ—μ„œ λ²—μ–΄λ‚œ λ¬Έμžμ—΄ 전달해 쿼리문 의미 μ™œκ³‘ λ˜λŠ” ꡬ쑰 λ³€κ²½ν•΄ μž„μ˜μ˜ λ°μ΄ν„°λ² μ΄μŠ€ λͺ…λ Ήμ–΄ μˆ˜ν–‰ κ°€λŠ₯ πŸš€ Learn More

JAVA
πŸ“–
질의문 μ„€μ • 파일 (XML)
μ‚¬μš©μž μ†Œμœ  정보 κ°€μ Έμ˜€κΈ°

βœ”οΈ XSS 곡격 (크둜슀 μ‚¬μ΄λ“œ 슀크립트)

μ›ΉνŽ˜μ΄μ§€μ—μ„œ μž„μ˜μ˜ 슀크립트λ₯Ό μ‹€ν–‰μ‹œμΌœ μ‚¬μš©μž μ„Έμ…˜μ„ κ°€λ‘œμ±„κ±°λ‚˜ μ›Ή μ‚¬μ΄νŠΈ λ³€μ‘°, μ•…μ˜μ μΈ 컨텐츠 μ‚½μž…, ν”Όμ‹± 등을 μ‹œλ„ν•˜λŠ” 곡격 πŸš€ Learn More

JAVA C
πŸ“– πŸ“–
μ•ˆμ „ν•˜μ§€ μ•Šμ€ Java μ½”λ“œ μ•ˆμ „ν•˜μ§€ μ•Šμ€ C μ½”λ“œ
Java μ‹œνμ–΄ μ½”λ“œ C μ‹œνμ–΄ μ½”λ“œ

βœ”οΈ Xquery μ‚½μž…

μ•…μ˜μ μΈ 쿼리가 μ‹€ν–‰λ˜μ–΄ ν—ˆκ°€λ˜μ§€ μ•Šμ€ 데이터λ₯Ό μ‘°νšŒν•˜κ±°λ‚˜ 인증 절차λ₯Ό μš°νšŒν•  수 있게 λ˜μ–΄ μœ„ν˜‘μ΄ 될 수 μžˆλ‹€. πŸš€ Learn More

JAVA
πŸ“–
μ™ΈλΆ€ μž…λ ₯값을 executeQuery μ‚¬μš© 질의 생성 λ¬Έμžμ—΄ 인자 생성
νŠΉμ • μ•„μ΄ν…œ 가격 κ°€μ Έμ˜€κΈ°

βœ”οΈ μ‚¬μš©μž μ€‘μš” 정보 평문 μ €μž₯

데이터λ₯Ό μ•”ν˜Έν™”ν•˜μ§€ μ•Šμ€ ν‰λ¬ΈμœΌλ‘œ 톡신 채널을 톡해 μ†‘μˆ˜μ‹ ν•  경우, 인증받지 μ•Šμ€ μ‚¬μš©μžμ— μ˜ν•΄ λ°œμƒν•œ μŠ€λ‹ˆν•‘μ„ 톡해 λ³΄μ•ˆκ³Ό κ΄€λ ¨λœ μ€‘μš”ν•œ 데이터가 λ…ΈμΆœλ  수 μžˆμŠ΅λ‹ˆλ‹€. πŸš€ Learn More

JAVA ANDROID Java C C#
πŸ“– πŸ“– πŸ“– πŸ“–

βœ”οΈ νŒ¨μŠ€μ›Œλ“œ 평문 μ €μž₯

νŒ¨μŠ€μ›Œλ“œλ₯Ό λΉ„λ‘―ν•œ μ€‘μš” 데이터가 μ•”ν˜Έν™”λ˜μ§€ μ•Šμ€ 평문 ν…μŠ€νŠΈμ˜ ν˜•νƒœλ‘œ μ €μž₯되면 μ•”ν˜Έκ°€ 외뢀에 직접 λ“œλŸ¬λ‚  수 μžˆμ–΄ 기밀성이 보μž₯λ˜μ§€ λͺ»ν•˜κ³  μ•”ν˜Έκ°€ μ €μž₯된 νŒŒμΌμ— μ ‘κ·Όν•  수 μžˆλŠ” μ‚¬λžŒμ΄λ©΄ λˆ„κ΅¬λ‚˜ μ•”ν˜Έλ₯Ό μ•Œμ•„λ‚Ό 수 μžˆμ–΄ 무결성 λ˜ν•œ 보μž₯λ˜μ§€ λͺ»ν•©λ‹ˆλ‹€. πŸš€ Learn More

JAVA C
πŸ“– πŸ“–
νŒ¨μŠ€μ›Œλ“œ 정보 ν‰λ¬ΈμœΌλ‘œ DB μ €μž₯ 취약점 νŒ¨μŠ€μ›Œλ“œλ₯Ό νŒŒμΌμ—μ„œ 읽어 직접 DB μ—°κ²° 취약점
νŒ¨μŠ€μ›Œλ“œ μž…λ ₯ 미검증 취약점

βœ”οΈ 였λ₯˜ λ©”μ‹œμ§€λ₯Ό ν†΅ν•œ 정보 λ„μΆœ 방지

κ³Όλ„ν•˜κ²Œ λ§Žμ€ μ •λ³΄λ‚˜ λ―Όκ°ν•œ 정보λ₯Ό ν¬ν•¨ν•˜λŠ” μ—λŸ¬ λ©”μ‹œμ§€λ₯Ό 좜λ ₯ν•˜λ©΄, κ³΅κ²©μžκ°€ 이λ₯Ό μ•…μš©ν•  수 있기 λ•Œλ¬Έμ— λ³΄μ•ˆ 취약점이 λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€. πŸš€ Learn More

JAVA C
πŸ“– πŸ“–
μŠ€νƒ 트레이슀 좜λ ₯ 취약점 ν™˜κ²½ λ³€μˆ˜ 정보 좜λ ₯ 취약점
μ˜ˆμ™Έ λ‚΄μš© 좜λ ₯ 취약점 λ°œμƒ μœ„μΉ˜ 정보 좜λ ₯ 취약점
μ—λŸ¬ νŽ˜μ΄μ§€ redirect 취약점

βœ”οΈ μΏ ν‚€λ₯Ό ν†΅ν•œ 정보 λ…ΈμΆœ

개인 μ •λ³΄λ‚˜ 인증 정보 등이 ν•˜λ“œ λ””μŠ€ν¬μ˜ μ˜μ† 쿠킀에 μ €μž₯λœλ‹€λ©΄ 개인 정보 유좜 λ“±μ˜ 문제둜 μ‹œμŠ€ν…œμ΄ μ·¨μ•½ν•΄μ§€λŠ” λ¬Έμ œκ°€ λ°œμƒν•©λ‹ˆλ‹€. πŸš€ Learn More

JAVA
πŸ“–
μΏ ν‚€ 유효 κΈ°κ°„ μ„€μ • μ‹œ μ‚¬μš©μž 미검증 취약점
μΏ ν‚€ 유효 κΈ°κ°„ μƒμˆ«κ°’ μ„€μ • 취약점

GDSC EWHA TIMELINE

μ‹œκ°„ 주제 κ°•μ—°μž
19:00~19:10 μ˜€ν”„λ‹ & κ°œλ°œμ— λ°”λ‘œ ν™œμš©ν•  수 μžˆλŠ” Secure Coding Guideline μ†Œκ°œ GDSC EWHA
19:10~19:45 μ‹€ 사둀λ₯Ό 톡해 μ•Œμ•„λ³΄λŠ” λ³΄μ•ˆ 개발의 ν•„μš”μ„±κ³Ό ν•΄κ²°μ±… λΌλ„ν›ˆ
μŠ€νƒ€νŠΈμ—… SERENDI
19:40~20:20 Secure Coding Guideline μ΄μ±„μ˜, μ „μ„Έμ—°
2020 μ†Œν”„νŠΈμ›¨μ–΄ κ°œλ°œλ³΄μ•ˆ κ²½μ§„λŒ€νšŒ λŒ€μƒνŒ€
20:20~21:00 μ•ˆμ „ν•˜κ³  λΉ λ₯Έ μ½”λ“œλ₯Ό μ–»κΈ° μœ„ν•œ 우리의 λͺΈλΆ€λ¦Ό(TDD, Code Converage Profile) μ΅œμ›ν˜
(μ£Ό)λˆ„λ¦¬λž© λŒ€ν‘œ 이사

Organizer

GDSC EWHA | ꡬ민정 κΉ€μ†Œλ―Έ κΉ€μœ€μ„œ λ°°μˆ˜ν˜„ μœ€ν•˜μ€ μ΄μ€λΉˆ μž₯μ•„μ—° μž₯μ˜ˆμ„œ ν•˜μˆ˜λ―Ό


Reference

ν–‰μ •μ•ˆμ „λΆ€, μ „μžμ •λΆ€ SW 개발·운영자λ₯Ό μœ„ν•œ μ†Œν”„νŠΈμ›¨μ–΄ κ°œλ°œλ³΄μ•ˆ κ°€μ΄λ“œ, 2019. 11

ν–‰μ •μ•ˆμ „λΆ€, μ „μžμ •λΆ€ SW 개발·운영자λ₯Ό μœ„ν•œ Java μ‹œνμ–΄μ½”λ”© κ°€μ΄λ“œ, 2012. 09

μ•ˆμ „ν–‰μ •λΆ€, Android-Java μ‹œνμ–΄ μ½”λ”© κ°€μ΄λ“œ, 2011. 09

ν–‰μ •μžμΉ˜λΆ€, ν•œκ΅­ 인터넷진ν₯원, μ „μžμ •λΆ€ SW 개발, 운영자λ₯Ό μœ„ν•œ C μ‹œνμ–΄ μ½”λ”© κ°€μ΄λ“œ

XSS 곡격과 λŒ€μ‘λ°©μ•ˆ, 디지털정책연ꡬ = The Journal of digital policy & management v.11 no.12, 2013λ…„, pp.327 – 332, ν™μ„±ν˜ (λ°±μ„λŒ€ν•™κ΅, 정보톡신학뢀 μ •λ³΄λ³΄ν˜Έ 전곡)

크둜슀 μ‚¬μ΄νŠΈ μŠ€ν¬λ¦½νŒ…(XSS) 취약점에 λŒ€ν•œ 곡격과 λ°©μ–΄, λ””μ§€ν„Έμœ΅λ³΅ν•©μ—°κ΅¬ = Journal of digital convergence v.13 no.2 , 2015λ…„, pp.177 – 183, μ΅œμ€μ • (μ„œμšΈμ—¬μžλŒ€ν•™κ΅ μ •λ³΄λ³΄ν˜Έν•™κ³Ό )

Oracle Docs, Java(TM) EE 7 Specification APIs

Microsoft, Microsoft 기술 λ¬Έμ„œ

ν•œκ΅­μΈν„°λ„·μ§„ν₯원(KISA), μ•”ν˜Έμ•Œκ³ λ¦¬μ¦˜ μ†ŒμŠ€μ½”λ“œ