자바 바이트 코드를 이용한 인터넷 통신의 애플릿 제어

A Study on Applet Control on the Internet Communication using Java Bytecode

  • 김문환 (KTF 네트워크 교환운용팀) ;
  • 나상동 (조선대학교 컴퓨터공학부)
  • 발행 : 2003.05.01

초록

웹 브라우저에서 자바 애플릿 파일은 시스템의 가상머신에 의해 클라이언트 브라우저의 가상 머시인을 실행한다 자바애플릿을 실행하기 전에 자바 가상머신은 bytecode 수정자를 이용하여 bytecode 프로그램을 검색하며 해석기를 이용하여 실시간 테스트를 수행한다. 그러나 이러한 테스트들은 서비스 거부공격, 이메일 위조 공격 URL 추적공격 또는 지속적인 사운드 공격과 같은 원하지 않은 실행시간 동작을 예방할 수 없다. 본 논문에서는 이러한 애플릿을 보호하기 위해 자바바이트 코드 수정기술이 사용한다 수정기술은 검사를 수행할 적절한 바이트코트를 삽입함으로서 애플릿 동작을 제안한다. 자바 바이트 수정은 두 개의 형태고 분류되며 클래스 레벨 수정은 마지막 크레스가 아닌 서브크레스를 포함하기 때문에 메소드 레벨수정은 마지막 클래스 아닌 서브크레스를 포함한다. 메소드 레벨 수정은 마지막 클래스 또는 인터페이스로부터 객체들을 제어할 수 있다. 본 논문은 악성 애플릿들이 프록시 서버를 이용한 자바 바이트 코트 수정에 의해 제어되는 것을 나타냈으며 이러한 구현은 웹 서버, JVM, 웹 브라우저상에서 악성 애플릿들의 공격이 제어됨을 입증한다.

Java applets are downloaded from web server through internet and executed in Java Virtual Machine of clients'browser. Before execution of java applets, JVM checks bytecode program with bytecode verifier and performs runtime tests with interpreter. However, these tests will not protect against undesirable runtime behavior of java applets, such as denial of service attack, email forging attack, URL spoofing attack, or annoying sound attack. In order to protect malicious applets, a technique used in this paper is java bytecode modification. This technique is used to restrict applet behavior or insert code appropriate to profiling or other monitoring efforts. Java byte modification is divided into two general forms, class-level modification involving subclassing non-final classes and method-level modification used when control over objects from final classes or interface. This paper showed that malicious applets are controlled by java bytecode modification using proxy server. This implementation does not require any changes in the web sever, JVM or web browser.

키워드

참고문헌

  1. The Java Language Specification J.Gosling;B.Joy;G.Steele
  2. The Java Virtual Machine Specification T.Lindholm;F.Yellin
  3. Java Security Architecture(JDK1.2) Li Gong
  4. The Java Language Environment J.Gosling
  5. Java Security J.Steven,Fritzinger;Marianne Mueller
  6. Java Security Joseph,A.Bank
  7. Proceedings of Internet Society Symposium on Network and Distributed System Security Implementing Protection Domains in the Java Development Kit 1.2 Li Gong;R.Schemers
  8. Secure Execution of Java Applets Using a Remote Playground Dahlia Malkhi;Michael Reiter;Avi Rubin
  9. SIGPLAN Notices v.27 no.8 Language Definition L.Cardelli;J.Donahue;L.Glassman;M.Jordan;B.Kalsow;G.Nelson,Modulak
  10. Proceedings of the 2nd Symposium on Operating Systems Design and Implementation Safe Kernel extensions with runtime checking G.C.Necula;Peter Lee