9
보안 이슈와 보안 공학의 중요성 IT보안전문가 과정 Preview 특강 2015년 8월 12일 차세대융합기술원 박찬진

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

Embed Size (px)

Citation preview

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

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

IT보안전문가 과정 Preview 특강

2015년 8월 12일 차세대융합기술원 박찬진

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

2104 SOFTWARE 취약점

2

Heartbleed Shellshock

2014년 4월 발생 OpenSSL 1.0.1

2014년 11월 발생 bash 셀

2015년 인터넷 보안 위협 보고서, 제20호, Symantec

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

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 값이 크면 안됨

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

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/

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

전통적인 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* [email protected]

tom fdjakjfal01 [email protected]

alice a90fdakjl [email protected]

BrowserWeb Server

Database

Session Hijacking Cross-site Request Forgery (CSRF) Cross-site Scripting (XSS)

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

지속적인 보안 취약점

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

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

보안 공학 필요성

기능 개발 후에 보안성 검토? => 응용 개발 전 과정에서 보안 활동

7

요구사항

설계

구현

테스팅

프로젝트 기획

릴리스/배포 유지보수

보안 목표 수립

보안 설계 가이드라인 위협(Threat) 모델링

아키텍처 및 설계 보안성 리뷰

코드 보안성 리뷰

보안 테스팅

배포시 보안 리뷰

보안 요구사항

아키텍처 리스크 분석

보안 중심 설계

리스크 기반 보안 테스팅

Penetration Testing

Abuse Cases

코드 리뷰 (Static Analyzer)

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

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

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

소프트웨어에서의 개인 정보 관리

9

TV음성처리 서버

Voice

Channel Up Movie Recommendation

"사용자가 나눈 개인적이거나 민감한 내용의 대화가 데이터로 저장된 뒤 제3자에게 전달될 수 있으니 주의하십시오"

2012년 스마트 TV, 음성인식 정보 암호화 처리 안 해 논란

Abuse Requirement Threat Modeling

구현오류가 아니라, 요구사항 및 위협 모델링의 부실, 정보 3자 제공에 대한 인지 부족 네트워크를 통한 민감 데이터 유출을 사전에 정의 Test Case 개발