13. outside the box
DESCRIPTION
13. Outside the Box. 컴퓨터공학과 소프트웨어공학 연구실 석사 3 학기 유 형 준 (You, hyong jun) Software Engineering Lab. Dept. of Computer Engineering. Contents. Introduction Application Design Decompilers and Bytecode Obfuscation Endpoint Security File Security Network Security Summary. Introduction. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: 13. Outside the Box](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813aec550346895da35c02/html5/thumbnails/1.jpg)
13. Outside the Box
컴퓨터공학과 소프트웨어공학 연구실
석사 3 학기 유 형 준(You, hyong jun)
Software Engineering Lab.
Dept. of Computer Engineering
![Page 2: 13. Outside the Box](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813aec550346895da35c02/html5/thumbnails/2.jpg)
Contents
Introduction Application Design Decompilers and Bytecode Obfuscation Endpoint Security File Security Network Security Summary
![Page 3: 13. Outside the Box](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813aec550346895da35c02/html5/thumbnails/3.jpg)
Introduction
암호 정보 보호의 강력한 도구 애플리케이션 프로그램의 일부분
보안 애플리케이션 개발 전체 시스템을 조사 취약점 분석 결점 보완
![Page 4: 13. Outside the Box](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813aec550346895da35c02/html5/thumbnails/4.jpg)
Application Design
애플리케이션 구조 독립형 애플리케이션 클라이언트 / 서버 구조
애플리케이션의 클라이언트 플랫폼 웹 브라우저의 전망과 기대
![Page 5: 13. Outside the Box](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813aec550346895da35c02/html5/thumbnails/5.jpg)
Self-Contained(1/3)
의미 한 장소에 애플리케이션의 모든 로직 (logic) 을 가짐
Java : 애플리케이션이 사용하는 모든 클래스 파일이 하나의 기계상에 존재
네트워크 비 접속 보안 요구사항이 한정적임 데이터 간취
physical control
virtual control
데이터 암호화암호화 키 관리
passphrase : PBE 클래스 smart card
![Page 6: 13. Outside the Box](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813aec550346895da35c02/html5/thumbnails/6.jpg)
Self-contained(2/3)
네트워크 접속 email 클라이언트 , 웹 브라우저 보안 요구사항이 복잡
기밀성인증
신용 카드 구매자와 판매자간의 상호 인증구매자의 신용카드 번호에 대한 기밀성
![Page 7: 13. Outside the Box](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813aec550346895da35c02/html5/thumbnails/7.jpg)
3. 사용자의 개인키로 암호화한 메세지를 인증서와 함께 송부
6. 상점의 개인키로 암호화한 메시지를 인증서와 함께 송부
인터넷
상 점 사용자
인증기관 (CA)
2. 인증서 2. 인증서
1. 공개키를 등록 1. 공개키를 등록
9. 상점의 공개키로 암호화된 사용자의 신용카드 번호와 구매 항목 전송
4. 인증기관인증서 요청
5. 인증기관의인증서 수신 후
사용자 인증서 서명검증8. 인증기관의인증서 수신 후상점 인증서 서명검증
7. 인증기관인증서 요청
10. 구매 항목 배달
Self-contained(3/3)
![Page 8: 13. Outside the Box](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813aec550346895da35c02/html5/thumbnails/8.jpg)
Demonstration Software(1/2)
“ 데모” 소프트웨어 판매자 : 사용자에게 미리 사용하게 함으로써 필요성 부여 구매자 : 경험 후 필요성 여부 판단 후 구매
판매자로부터 애플리케이션의 나머지 부분에 대한 패스워드 수신
크랙 역 공학 과정으로 소스를 역 컴파일함
일부 키 클래스 파일 암호화 스킴 구매자에게 복호화 키 제공
소프트웨어 일련 번호에 기반을 둠크래킹으로부터 보호
구매자의 복사본 판매 방지 불가
![Page 9: 13. Outside the Box](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813aec550346895da35c02/html5/thumbnails/9.jpg)
Demonstration Software(2/2)
구매자 판매자3. un 제공
2. 구매 요청1. “demo” 소프트웨어와 랜덤 값 rn
배포
일부 키 클래스 파일 암호화 스킴 동일한 키 (k) 로 암호화함 각 소프트웨어마다 다른 복호화 키 요구
각 소프트웨어는 일련 번호를 가지고 있음
rn un = k k( 암호화 키 )
rn(k 를 구하기 위하여 un 과 조합되는 랜덤 값 )
un(k 를 구하기 위하여 rn 과 조합되는 일련 번호와 관련이 있는 부분 키 )
암호화 키 (k) 노출시 크래킹 프로그램에 의한 공격 가능
![Page 10: 13. Outside the Box](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813aec550346895da35c02/html5/thumbnails/10.jpg)
Client/Server(1/2)
Client/server 구조 two-tier
다수의 클라이언트와 단일 서버로 구성 three-tier
클라이언트와 서버 사이에 layer 가 있음 transaction layer 또는 business layer
미들웨어 인터넷 통신 프로토콜 : TCP/IP
데이터베이스 액세스 미들웨어 : ODBC
분산기술 : DCOM, CORBA
![Page 11: 13. Outside the Box](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813aec550346895da35c02/html5/thumbnails/11.jpg)
Client/Server(2/2)
요구사항 인증
광범위하고 자유분방하게 분산되어 있는 클라이언트사칭 (pretending) 공격
기밀성 접근 제어
접근 제어에 대한 로직 (logic) 은 서버상에 설정
![Page 12: 13. Outside the Box](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813aec550346895da35c02/html5/thumbnails/12.jpg)
Client Applets(1/2)
Java 클라이언트 / 서버 애플리케이션 클라이언트 플랫폼
웹 브라우저 웹 서버로부터 자동적으로 클라이언트로 로드됨
클라이언트 인스톨이 필요 없음 브라우저의 자바 지원
Java 1.1 지원Sun 은 Porting and Tuning Center 설립
브라우저와 자바 버전의 동시성 지원
각 브라우저는 각기 자신의 Java Implementation 을 가지고 있음Virtual machine 과 API 버그 또는 모순엄격한 태스팅 필요
![Page 13: 13. Outside the Box](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813aec550346895da35c02/html5/thumbnails/13.jpg)
Client Applets(2/2)
Sandbox 외부로부터 수신한 애플릿의 네임 스페이스를 브라우저의 작업
공간 내부로만 한정
Signed Applets 크고 무거움
![Page 14: 13. Outside the Box](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813aec550346895da35c02/html5/thumbnails/14.jpg)
Access Control
애플리케이션의 자원에 대한 접근 제어 할당된 업무나 접근을 원하는 사용자의 역할에 의해 제어
접근 제어 리스트 (access control list; ACL) 결정된 정책을 구현
특별한 시스템 , 응용 프로그램 , 서브 시스템 , 또는 시스템 그룹을 책임지는 관리자에 의해 수립
식별과 인가 정보 리스트 JDK
java.security.acl 패키지
![Page 15: 13. Outside the Box](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813aec550346895da35c02/html5/thumbnails/15.jpg)
Decompilers and Bytecode Obfuscation(1/5)
역 컴파일러 클래스 파일 소스 코드
프리웨어 : 모카 (Mocha), JAD
상용 프로그램 : WingDis, SourceAgain, Deja Vu
JDK : javap
Bytecode Obfuscation 역 컴파일과 역 어셈블 과정을 늦춤
컴파일된 자바 클래스 파일로부터 사용되지 않는 코드 , 데이터 , 그리고 심볼릭 이름 등을 제거함
역 컴파일된 소스 코드 판독하기 어려움프리웨어 : Hashjava, Jobe
상용 프로그램 : Jshrink
![Page 16: 13. Outside the Box](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813aec550346895da35c02/html5/thumbnails/16.jpg)
Decompilers and Bytecode Obfuscation(2/5)
// test.javaClass test {
public static void main (String argv[]) { System.out.println(“Hello, World); }}
// test.javaClass test {
public static void main (String argv[]) { System.out.println(“Hello, World); }}
// test.mochaimport java.io.printStream;class test{ public static void main (String argv[]) { System.out.println(“Hello, World); }}
// test.mochaimport java.io.printStream;class test{ public static void main (String argv[]) { System.out.println(“Hello, World); }}
Mocha 사용 사례
java mocha.Decompiler test.class
![Page 17: 13. Outside the Box](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813aec550346895da35c02/html5/thumbnails/17.jpg)
Decompilers and Bytecode Obfuscation(3/5)
Jshrink 사용 사례
c:\jshrink\jshrink random
// random.javaclass Random{ int seed; int generate() { seed = seed * 31413852 + 1; return seed; } Random() { seed = 1; }}
// random.javaclass Random{ int seed; int generate() { seed = seed * 31413852 + 1; return seed; } Random() { seed = 1; }}
![Page 18: 13. Outside the Box](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813aec550346895da35c02/html5/thumbnails/18.jpg)
Decompilers and Bytecode Obfuscation(4/5)
Jshrink 수행 후 역 컴파일 결과 private field seed 를 Y 로 변환 protected method generate 을
Y 로 변환 .class 파일에서 사용되지 않는
attributes 제거
// random.classclass Random{ int Y; int Y() { Y = Y * 31413852 + 1; return Y; } Random() { Y = 1; }}
// random.classclass Random{ int Y; int Y() { Y = Y * 31413852 + 1; return Y; } Random() { Y = 1; }}
![Page 19: 13. Outside the Box](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813aec550346895da35c02/html5/thumbnails/19.jpg)
Decompilers and Bytecode Obfuscation(5/5)
애플리케이션 클래스 파일 암호화 ClassLoader CipherInputStream
암호화 키 관리 애플리케이션과 키를 같이 관리 애플리케이션 실행시마다 키 입력
“ 보안” 알고리즘보다 강력한 암호 알고리즘 사용
![Page 20: 13. Outside the Box](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813aec550346895da35c02/html5/thumbnails/20.jpg)
Endpoint Security(1/2)
암호 두 부분간 안전한 통신 서비스 제공
endpoint 간 인증 , 세션 암호 , 신뢰하고 사용할 수 있는 코드
SafeTalk 애플리케이션 클래스 파일에 대한 무결성
javax.crypto.CipherOutputStream 클래스 변경 사용자 몰래 다른 IP 주소로 평문을 송신
Session 클래스 변경 동일한 암호화 키를 선택
바이러스나 악한 ActiveX control 에 의한 변경서버로부터 전송 중 변경 발생
![Page 21: 13. Outside the Box](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813aec550346895da35c02/html5/thumbnails/21.jpg)
Endpoint Security(2/2)
애플리케이션 외부에 대한 방어불확실한 파일 전송 프로토콜 사용 금지바이러스 스캔불확실한 다운로드 목록 실행 금지
자바 애플릿 : sandbox
![Page 22: 13. Outside the Box](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813aec550346895da35c02/html5/thumbnails/22.jpg)
File Security
로컬 디스크에 있는 파일 도난 , 변경 등 바이러스 , 트로이 목마
암호 중요한 파일 키 관리
제거할 수 없는 디스크스마트 카드 passphrase
![Page 23: 13. Outside the Box](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813aec550346895da35c02/html5/thumbnails/23.jpg)
Serialization & Deleting Files
Serialization object serialization 기술
JDK 1.1
java object비 보안
중용한 데이터 암호화 object serialization 과 encrypted data stream 의 조합
object serialization : ObjectOutputStream
encrypted data stream : CipherOutputStream
javax.crypto.SealedObject 사용
Deleting Files 많은 운영체제는 디스크로부터 사실상 정보를 지우지 않음
![Page 24: 13. Outside the Box](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813aec550346895da35c02/html5/thumbnails/24.jpg)
Virtual Memory & Memory Scanning
가상 메모리 부가적인 컴퓨터 메모리로서 디스크 사용 기술의 일부 더 많은 애플리케이션의 동시 수행 가능 애플리케이션 실행 동안 메모리 공간이 디스크에 기록됨
메모리 스캔 공격 프로그램
바이러스 , 트로이 목마가상 메모리 swap file 을 탐색
개인키 , 평문 , 그 외 유용한 정보
가상 메모리 사용 금지 애플리케이션 메모리 공간을 분리한 운영 시스템 사용
![Page 25: 13. Outside the Box](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813aec550346895da35c02/html5/thumbnails/25.jpg)
TCP/IP 프로토콜
IP : 비 보안 프로토콜로서 IP 상위 계층에서 암호 사용응용 계층의 애플리케이션에서 암호 사용
SafeTalk, CipherMail
IPng(IP next generation) : 인증과 프라이버시 서비스 제공
Network Security
TELNETTELNET FTPFTP SMTPSMTP
TCPTCP
SNMPSNMP
UDPUDP
IPIP
X.25, IEEE 802.X, ..X.25, IEEE 802.X, ..
응용 계층
트랜스포트 계층
네트워크 계층
링크 계층
![Page 26: 13. Outside the Box](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813aec550346895da35c02/html5/thumbnails/26.jpg)
Summary
보안성 비용 위험 조화 가용성
비용 또는 시간
보안성