전통적인 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
AdobeFlash 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 개발