SlideShare a Scribd company logo
웹 보안 이슈와 보안 공학의 중요성
IT보안전문가 과정 Preview 특강
2015년 8월 12일
차세대융합기술원 박찬진
2104 SOFTWARE 취약점
2
Heartbleed Shellshock
2014년 4월 발생
OpenSSL 1.0.1
2014년 11월 발생
bash 셀
2015년 인터넷 보안 위협 보고서, 제20호, Symantec
HEARTBLEED
3
http://xkcd.com/1354/
타입과 Payload (길이) 값을 읽음
Payload 만큼의 메모리를 할당 (alloc)
데이터를 리턴할 포인터에 복사 (memcpy)
hbtype = *p++;
n2s(p, payload);
if (1 + 2 + payload + 16 > s->s3->rrec.length)
return 0; /* silently discard per RFC 6520 sec. 4 */
hbtype = *p++;
n2s(p, payload);
pl = p;
Payload의 실제 데이터 길이보다 Payload 값이 크면 안됨
SHELLSHOCK
4
() {:;}; /bin/cat /etc/passwd
http://blog.panorama9.com/hit-by-shellshock-now-what/
(){ : ; }; do_evil()
env x="() { :;}; echo vulnerable" bash -c "echo this is a test"
curl -H "User-Agent: () { :; }; /bin/eject" http://example.com/
전통적인 WEB APP 보안 취약점
5
이름
암호
SQL Injection
$result = mysql_query(“select * from Users where (name = ‘$user’ and password = ‘$pass')”);
frank’ OR 1 = 1); - -
frank’ OR 1 = 1); DROP TABLE Users; - -
name password email address
frank dafjdlka* frank@aa.com
tom fdjakjfal01 tom@aa.com
alice a90fdakjl alice@aa.com
Browser
Web
Server
Database
Session Hijacking
Cross-site Request Forgery (CSRF)
Cross-site Scripting (XSS)
지속적인 보안 취약점
6
Adobe Flash Player
Adobe Flash use-after-free and memory corruption vulnerabilities
(CVE-2015-5119, CVE-2015-5122, CVE-2015-5123)
2015년 7월 Published
• 5억개 이상의 기기에 설치
• 2만개 이상의 앱이 플래시 기술을 사용
• 페이스북 게임 Top 25개 중 24개가 플래시 기술을 사용
• 3백만 이상의 개발자
왜 플래시에 이런 취약점이 계속 발견되고 공격의 대상이 되는가?
HTML5 Canvas
보안 공학 필요성
기능 개발 후에 보안성 검토? => 응용 개발 전 과정에서 보안 활동
7
요구사항
설계
구현
테스팅
프로젝트 기획
릴리스/배포
유지보수
보안 목표 수립
보안 설계 가이드라인
위협(Threat) 모델링
아키텍처 및 설계 보안성 리뷰
코드 보안성 리뷰
보안 테스팅
배포시 보안 리뷰
보안 요구사항
아키텍처 리스크 분석
보안 중심 설계
리스크 기반 보안 테스팅
Penetration Testing
Abuse Cases
코드 리뷰 (Static Analyzer)
UNIT TESTING, 코드 리뷰
8
Unit Testing (Code Coverage)
APPLE revealed and fixed a Secure
Sockets Layer (SSL) vulnerability that
had gone undiscovered since the
release of iOS 6.0 in September 2012
(2014.2)
• SSL/TLS 알고리즘 구현 시, 보안 연결을 위한 Handshaking의 마지막 스텝
을 건너 뛰도록 함
• TLS 서버 키 교환 메시지 체크 과정을 누락 (임의의 Private 키로 연결 가능)
• 중복 goto 문이 6번이나 사용됨 (Copy & Paste)
Static Analyzer (Unreachable code detection)
Code Review &
Code Refactoring to make the algorithm testable
AppleSSL Volnerability
소프트웨어에서의 개인 정보 관리
9
TV
음성처리
서버
Voice
Channel Up
Movie Recommendation
"사용자가 나눈 개인적이거나 민감한 내용의 대화가 데이터로 저장된 뒤 제3자에게 전달될 수 있으니 주의하십시오"
2012년 스마트 TV, 음성인식 정보 암호화 처리 안 해 논란
Abuse Requirement
Threat Modeling
구현오류가 아니라, 요구사항 및 위협 모델링의 부실, 정보 3자 제공에 대한 인지 부족
네트워크를 통한 민감 데이터 유출을 사전에 정의 Test Case 개발

More Related Content

Viewers also liked

0. Part 00 EE, Extreme engineering. 2010.02.15 - part 2 slide show
0. Part 00 EE, Extreme engineering. 2010.02.15 - part 2 slide show0. Part 00 EE, Extreme engineering. 2010.02.15 - part 2 slide show
0. Part 00 EE, Extreme engineering. 2010.02.15 - part 2 slide show
Tomasz Najder
 
CV Tomasz Najder Part 1 2009.09.15 2016
CV Tomasz Najder Part 1 2009.09.15 2016CV Tomasz Najder Part 1 2009.09.15 2016
CV Tomasz Najder Part 1 2009.09.15 2016
Tomasz Najder
 
Presentación1
Presentación1Presentación1
REU Summer 2004
REU Summer 2004REU Summer 2004
REU Summer 2004
Rob Morien
 
Certificate_C-7FV9JKECYU
Certificate_C-7FV9JKECYUCertificate_C-7FV9JKECYU
Certificate_C-7FV9JKECYU
Ibtida Amirul Mukminin
 
Presentacion_Laura_Noguera
Presentacion_Laura_NogueraPresentacion_Laura_Noguera
Presentacion_Laura_Noguera
Lauraviviananoguera
 
Relatório Fausto Pinato
Relatório Fausto PinatoRelatório Fausto Pinato
Relatório Fausto Pinato
Folha de Pernambuco
 
Документирование Проекта Cавин Анатолий
Документирование Проекта Cавин АнатолийДокументирование Проекта Cавин Анатолий
Документирование Проекта Cавин Анатолий
Igor Byvaltsev
 
Motivar - Luciano Aba
Motivar - Luciano AbaMotivar - Luciano Aba
Motivar - Luciano Aba
pmotivar
 
임베디드 소프트웨어 개발에 아키텍처 프랙티스 도입
임베디드 소프트웨어 개발에 아키텍처 프랙티스 도입임베디드 소프트웨어 개발에 아키텍처 프랙티스 도입
임베디드 소프트웨어 개발에 아키텍처 프랙티스 도입
Chanjin Park
 
융합연구포럼 2015.02 big data - engineering & convergence.
융합연구포럼 2015.02 big data - engineering & convergence.융합연구포럼 2015.02 big data - engineering & convergence.
융합연구포럼 2015.02 big data - engineering & convergence.
Chanjin Park
 
Светлана Добросолец. ГМЗ "Петергоф"
Светлана Добросолец. ГМЗ "Петергоф"Светлана Добросолец. ГМЗ "Петергоф"
Светлана Добросолец. ГМЗ "Петергоф"
Программа "Целевые капиталы" Форума Доноров
 
KCSE 2015 Tutorial 빅데이터 분석 기술의 소프트웨어 공학 분야 활용 (...
KCSE 2015 Tutorial 빅데이터 분석 기술의  소프트웨어 공학 분야 활용 (...KCSE 2015 Tutorial 빅데이터 분석 기술의  소프트웨어 공학 분야 활용 (...
KCSE 2015 Tutorial 빅데이터 분석 기술의 소프트웨어 공학 분야 활용 (...
Chanjin Park
 
Transformers
TransformersTransformers
Transformers
Yassine Zahraoui
 
Familia romana
Familia romanaFamilia romana
Familia romana
Negrevernis Negrevernis
 
STPP paper (2005)
STPP paper (2005)STPP paper (2005)
STPP paper (2005)
Jorge Luis McGregor Arnao
 
Test driven development - JUnit basics and best practices
Test driven development - JUnit basics and best practicesTest driven development - JUnit basics and best practices
Test driven development - JUnit basics and best practices
Narendra Pathai
 
Oxigenoterapia Hiperbárica
Oxigenoterapia HiperbáricaOxigenoterapia Hiperbárica
Oxigenoterapia Hiperbárica
Reinaldo Cortez De La Fuente
 
MALAD
MALADMALAD

Viewers also liked (20)

0. Part 00 EE, Extreme engineering. 2010.02.15 - part 2 slide show
0. Part 00 EE, Extreme engineering. 2010.02.15 - part 2 slide show0. Part 00 EE, Extreme engineering. 2010.02.15 - part 2 slide show
0. Part 00 EE, Extreme engineering. 2010.02.15 - part 2 slide show
 
CV Tomasz Najder Part 1 2009.09.15 2016
CV Tomasz Najder Part 1 2009.09.15 2016CV Tomasz Najder Part 1 2009.09.15 2016
CV Tomasz Najder Part 1 2009.09.15 2016
 
Presentación1
Presentación1Presentación1
Presentación1
 
REU Summer 2004
REU Summer 2004REU Summer 2004
REU Summer 2004
 
Certificate_C-7FV9JKECYU
Certificate_C-7FV9JKECYUCertificate_C-7FV9JKECYU
Certificate_C-7FV9JKECYU
 
Presentacion_Laura_Noguera
Presentacion_Laura_NogueraPresentacion_Laura_Noguera
Presentacion_Laura_Noguera
 
Relatório Fausto Pinato
Relatório Fausto PinatoRelatório Fausto Pinato
Relatório Fausto Pinato
 
Документирование Проекта Cавин Анатолий
Документирование Проекта Cавин АнатолийДокументирование Проекта Cавин Анатолий
Документирование Проекта Cавин Анатолий
 
Motivar - Luciano Aba
Motivar - Luciano AbaMotivar - Luciano Aba
Motivar - Luciano Aba
 
임베디드 소프트웨어 개발에 아키텍처 프랙티스 도입
임베디드 소프트웨어 개발에 아키텍처 프랙티스 도입임베디드 소프트웨어 개발에 아키텍처 프랙티스 도입
임베디드 소프트웨어 개발에 아키텍처 프랙티스 도입
 
융합연구포럼 2015.02 big data - engineering & convergence.
융합연구포럼 2015.02 big data - engineering & convergence.융합연구포럼 2015.02 big data - engineering & convergence.
융합연구포럼 2015.02 big data - engineering & convergence.
 
Светлана Добросолец. ГМЗ "Петергоф"
Светлана Добросолец. ГМЗ "Петергоф"Светлана Добросолец. ГМЗ "Петергоф"
Светлана Добросолец. ГМЗ "Петергоф"
 
KCSE 2015 Tutorial 빅데이터 분석 기술의 소프트웨어 공학 분야 활용 (...
KCSE 2015 Tutorial 빅데이터 분석 기술의  소프트웨어 공학 분야 활용 (...KCSE 2015 Tutorial 빅데이터 분석 기술의  소프트웨어 공학 분야 활용 (...
KCSE 2015 Tutorial 빅데이터 분석 기술의 소프트웨어 공학 분야 활용 (...
 
Transformers
TransformersTransformers
Transformers
 
Familia romana
Familia romanaFamilia romana
Familia romana
 
STPP paper (2005)
STPP paper (2005)STPP paper (2005)
STPP paper (2005)
 
Test driven development - JUnit basics and best practices
Test driven development - JUnit basics and best practicesTest driven development - JUnit basics and best practices
Test driven development - JUnit basics and best practices
 
Oxigenoterapia Hiperbárica
Oxigenoterapia HiperbáricaOxigenoterapia Hiperbárica
Oxigenoterapia Hiperbárica
 
Gabarito sondagem geografia
Gabarito sondagem geografiaGabarito sondagem geografia
Gabarito sondagem geografia
 
MALAD
MALADMALAD
MALAD
 

Similar to 2015.8.12 웹 보안 이슈와 보안 공학의 중요성

ePrismX: Next Generation Cybersecurity Appliance Platform
ePrismX: Next Generation Cybersecurity Appliance PlatformePrismX: Next Generation Cybersecurity Appliance Platform
ePrismX: Next Generation Cybersecurity Appliance Platform
Chul-Woong Yang
 
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravelXECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XpressEngine
 
처음 시작하는 라라벨
처음 시작하는 라라벨처음 시작하는 라라벨
처음 시작하는 라라벨
KwangSeob Jeong
 
[오픈소스컨설팅 뉴스레터] 2016년 1분기
[오픈소스컨설팅 뉴스레터] 2016년 1분기[오픈소스컨설팅 뉴스레터] 2016년 1분기
[오픈소스컨설팅 뉴스레터] 2016년 1분기
Ji-Woong Choi
 
2014 키보드보안솔루션 시온
2014 키보드보안솔루션 시온2014 키보드보안솔루션 시온
2014 키보드보안솔루션 시온
시온시큐리티
 
Openstack security(2018)
Openstack security(2018)Openstack security(2018)
Openstack security(2018)
Gasida Seo
 
[네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육
[네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육[네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육
[네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육
NAVER D2 STARTUP FACTORY
 
스프링 어플리케이션의 문제해결사례와 안티패턴
스프링 어플리케이션의 문제해결사례와 안티패턴스프링 어플리케이션의 문제해결사례와 안티패턴
스프링 어플리케이션의 문제해결사례와 안티패턴
Sanghyuk Jung
 
포티파이 안전한 애플리케이션 구축 및 운영방안
포티파이 안전한 애플리케이션 구축 및 운영방안포티파이 안전한 애플리케이션 구축 및 운영방안
포티파이 안전한 애플리케이션 구축 및 운영방안
TJ Seo
 
JMI Techtalk : Backend.AI
JMI Techtalk : Backend.AIJMI Techtalk : Backend.AI
JMI Techtalk : Backend.AI
Lablup Inc.
 
Meetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vsMeetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vs
minseok kim
 
Python으로 채팅 구현하기
Python으로 채팅 구현하기Python으로 채팅 구현하기
Python으로 채팅 구현하기
Tae Young Lee
 
Spring Framework 튜토리얼 - 네이버 최영목님
Spring Framework 튜토리얼 - 네이버 최영목님Spring Framework 튜토리얼 - 네이버 최영목님
Spring Framework 튜토리얼 - 네이버 최영목님
NAVER D2
 
[고려대학교-SANE Lab] 170317풀타임세미나 이상민
[고려대학교-SANE Lab]  170317풀타임세미나 이상민[고려대학교-SANE Lab]  170317풀타임세미나 이상민
[고려대학교-SANE Lab] 170317풀타임세미나 이상민
Sane Lab
 
AttackIQ Flex - BAS(Breach & Attack Simulation) 셀프 테스트 서비스
AttackIQ Flex - BAS(Breach & Attack Simulation) 셀프 테스트 서비스 AttackIQ Flex - BAS(Breach & Attack Simulation) 셀프 테스트 서비스
AttackIQ Flex - BAS(Breach & Attack Simulation) 셀프 테스트 서비스
Softwide Security
 
[명우니닷컴]웹보안채팅 Isyouchat
[명우니닷컴]웹보안채팅 Isyouchat[명우니닷컴]웹보안채팅 Isyouchat
[명우니닷컴]웹보안채팅 Isyouchat
Myeongun Ryu
 
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
중선 곽
 
[1D7]안드로이드 L-Preview 보안 아키텍처 및 설비
[1D7]안드로이드 L-Preview 보안 아키텍처 및 설비[1D7]안드로이드 L-Preview 보안 아키텍처 및 설비
[1D7]안드로이드 L-Preview 보안 아키텍처 및 설비
NAVER D2
 
지능형지속위협공격 최신동향 분석
지능형지속위협공격 최신동향 분석지능형지속위협공격 최신동향 분석
지능형지속위협공격 최신동향 분석
한익 주
 
Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기
KwangSeob Jeong
 

Similar to 2015.8.12 웹 보안 이슈와 보안 공학의 중요성 (20)

ePrismX: Next Generation Cybersecurity Appliance Platform
ePrismX: Next Generation Cybersecurity Appliance PlatformePrismX: Next Generation Cybersecurity Appliance Platform
ePrismX: Next Generation Cybersecurity Appliance Platform
 
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravelXECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
 
처음 시작하는 라라벨
처음 시작하는 라라벨처음 시작하는 라라벨
처음 시작하는 라라벨
 
[오픈소스컨설팅 뉴스레터] 2016년 1분기
[오픈소스컨설팅 뉴스레터] 2016년 1분기[오픈소스컨설팅 뉴스레터] 2016년 1분기
[오픈소스컨설팅 뉴스레터] 2016년 1분기
 
2014 키보드보안솔루션 시온
2014 키보드보안솔루션 시온2014 키보드보안솔루션 시온
2014 키보드보안솔루션 시온
 
Openstack security(2018)
Openstack security(2018)Openstack security(2018)
Openstack security(2018)
 
[네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육
[네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육[네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육
[네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육
 
스프링 어플리케이션의 문제해결사례와 안티패턴
스프링 어플리케이션의 문제해결사례와 안티패턴스프링 어플리케이션의 문제해결사례와 안티패턴
스프링 어플리케이션의 문제해결사례와 안티패턴
 
포티파이 안전한 애플리케이션 구축 및 운영방안
포티파이 안전한 애플리케이션 구축 및 운영방안포티파이 안전한 애플리케이션 구축 및 운영방안
포티파이 안전한 애플리케이션 구축 및 운영방안
 
JMI Techtalk : Backend.AI
JMI Techtalk : Backend.AIJMI Techtalk : Backend.AI
JMI Techtalk : Backend.AI
 
Meetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vsMeetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vs
 
Python으로 채팅 구현하기
Python으로 채팅 구현하기Python으로 채팅 구현하기
Python으로 채팅 구현하기
 
Spring Framework 튜토리얼 - 네이버 최영목님
Spring Framework 튜토리얼 - 네이버 최영목님Spring Framework 튜토리얼 - 네이버 최영목님
Spring Framework 튜토리얼 - 네이버 최영목님
 
[고려대학교-SANE Lab] 170317풀타임세미나 이상민
[고려대학교-SANE Lab]  170317풀타임세미나 이상민[고려대학교-SANE Lab]  170317풀타임세미나 이상민
[고려대학교-SANE Lab] 170317풀타임세미나 이상민
 
AttackIQ Flex - BAS(Breach & Attack Simulation) 셀프 테스트 서비스
AttackIQ Flex - BAS(Breach & Attack Simulation) 셀프 테스트 서비스 AttackIQ Flex - BAS(Breach & Attack Simulation) 셀프 테스트 서비스
AttackIQ Flex - BAS(Breach & Attack Simulation) 셀프 테스트 서비스
 
[명우니닷컴]웹보안채팅 Isyouchat
[명우니닷컴]웹보안채팅 Isyouchat[명우니닷컴]웹보안채팅 Isyouchat
[명우니닷컴]웹보안채팅 Isyouchat
 
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
 
[1D7]안드로이드 L-Preview 보안 아키텍처 및 설비
[1D7]안드로이드 L-Preview 보안 아키텍처 및 설비[1D7]안드로이드 L-Preview 보안 아키텍처 및 설비
[1D7]안드로이드 L-Preview 보안 아키텍처 및 설비
 
지능형지속위협공격 최신동향 분석
지능형지속위협공격 최신동향 분석지능형지속위협공격 최신동향 분석
지능형지속위협공격 최신동향 분석
 
Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기
 

2015.8.12 웹 보안 이슈와 보안 공학의 중요성

  • 1. 웹 보안 이슈와 보안 공학의 중요성 IT보안전문가 과정 Preview 특강 2015년 8월 12일 차세대융합기술원 박찬진
  • 2. 2104 SOFTWARE 취약점 2 Heartbleed Shellshock 2014년 4월 발생 OpenSSL 1.0.1 2014년 11월 발생 bash 셀 2015년 인터넷 보안 위협 보고서, 제20호, Symantec
  • 3. HEARTBLEED 3 http://xkcd.com/1354/ 타입과 Payload (길이) 값을 읽음 Payload 만큼의 메모리를 할당 (alloc) 데이터를 리턴할 포인터에 복사 (memcpy) hbtype = *p++; n2s(p, payload); if (1 + 2 + payload + 16 > s->s3->rrec.length) return 0; /* silently discard per RFC 6520 sec. 4 */ hbtype = *p++; n2s(p, payload); pl = p; Payload의 실제 데이터 길이보다 Payload 값이 크면 안됨
  • 4. SHELLSHOCK 4 () {:;}; /bin/cat /etc/passwd http://blog.panorama9.com/hit-by-shellshock-now-what/ (){ : ; }; do_evil() env x="() { :;}; echo vulnerable" bash -c "echo this is a test" curl -H "User-Agent: () { :; }; /bin/eject" http://example.com/
  • 5. 전통적인 WEB APP 보안 취약점 5 이름 암호 SQL Injection $result = mysql_query(“select * from Users where (name = ‘$user’ and password = ‘$pass')”); frank’ OR 1 = 1); - - frank’ OR 1 = 1); DROP TABLE Users; - - name password email address frank dafjdlka* frank@aa.com tom fdjakjfal01 tom@aa.com alice a90fdakjl alice@aa.com Browser Web Server Database Session Hijacking Cross-site Request Forgery (CSRF) Cross-site Scripting (XSS)
  • 6. 지속적인 보안 취약점 6 Adobe Flash Player Adobe Flash use-after-free and memory corruption vulnerabilities (CVE-2015-5119, CVE-2015-5122, CVE-2015-5123) 2015년 7월 Published • 5억개 이상의 기기에 설치 • 2만개 이상의 앱이 플래시 기술을 사용 • 페이스북 게임 Top 25개 중 24개가 플래시 기술을 사용 • 3백만 이상의 개발자 왜 플래시에 이런 취약점이 계속 발견되고 공격의 대상이 되는가? HTML5 Canvas
  • 7. 보안 공학 필요성 기능 개발 후에 보안성 검토? => 응용 개발 전 과정에서 보안 활동 7 요구사항 설계 구현 테스팅 프로젝트 기획 릴리스/배포 유지보수 보안 목표 수립 보안 설계 가이드라인 위협(Threat) 모델링 아키텍처 및 설계 보안성 리뷰 코드 보안성 리뷰 보안 테스팅 배포시 보안 리뷰 보안 요구사항 아키텍처 리스크 분석 보안 중심 설계 리스크 기반 보안 테스팅 Penetration Testing Abuse Cases 코드 리뷰 (Static Analyzer)
  • 8. UNIT TESTING, 코드 리뷰 8 Unit Testing (Code Coverage) APPLE revealed and fixed a Secure Sockets Layer (SSL) vulnerability that had gone undiscovered since the release of iOS 6.0 in September 2012 (2014.2) • SSL/TLS 알고리즘 구현 시, 보안 연결을 위한 Handshaking의 마지막 스텝 을 건너 뛰도록 함 • TLS 서버 키 교환 메시지 체크 과정을 누락 (임의의 Private 키로 연결 가능) • 중복 goto 문이 6번이나 사용됨 (Copy & Paste) Static Analyzer (Unreachable code detection) Code Review & Code Refactoring to make the algorithm testable AppleSSL Volnerability
  • 9. 소프트웨어에서의 개인 정보 관리 9 TV 음성처리 서버 Voice Channel Up Movie Recommendation "사용자가 나눈 개인적이거나 민감한 내용의 대화가 데이터로 저장된 뒤 제3자에게 전달될 수 있으니 주의하십시오" 2012년 스마트 TV, 음성인식 정보 암호화 처리 안 해 논란 Abuse Requirement Threat Modeling 구현오류가 아니라, 요구사항 및 위협 모델링의 부실, 정보 3자 제공에 대한 인지 부족 네트워크를 통한 민감 데이터 유출을 사전에 정의 Test Case 개발