Applet Control using Java Bytecode Modification on the Internet Communication

인터넷 통신상에서 자바 바이트 코드 수정을 이용한 애플릿 제어

  • 김광준 (조선대학교 컴퓨터공학부) ;
  • 나상동 (조선대학교 컴퓨터공학부) ;
  • 배용근 (조선대학교 컴퓨터공학부)
  • Published : 2003.03.01

Abstract

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, and 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.

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

Keywords

References

  1. J. Gosling, B. Joy, and G. Steele, The Java Language Specification, Menlo Park, Calif.:Addison-Wesley, 1996.
  2. T. Lindholm and F. Yellin, The Java Virtual Machine Specification, Menlo Park, Calif.:Addison-Wesley, 1997.
  3. Li Gong, 'Java Security Architecture(JDK 1.2)', Sun Microsystems, 1998
  4. J. Gosling, 'The Java Language Environment' Sun Microsystems, 1996
  5. J. Steven Fritzinger, Marianne Mueller, 'Java Security', Sun Microsytems, 1997
  6. Joseph A. Bank, 'Java Security', http://swissnet.ai.mit.edu/-jbank/javapaper/javapaper.html
  7. Li Gong, R. Schemers, 'Implementing Protection Domains in the Java Development Kit 1.2', Proceedings of Internet Society Symposium on Network and Distributed System Security: pp.103-112, 1997.
  8. Dahlia Malkhi, Michael Reiter, Avi Rubin, 'Secure Execution of Java Applets using a Remote Playground'
  9. L. Cardelli, J. Donahue, L. Glassman, M. Jordan, B. Kalsow, G. Nelson Modulak, 'Language Definition'. SIGPLAN Notices, 27(8), August 1992.
  10. G.C. Necula and Peter Lee, 'Safe kernel extensions with runtime checking', In Proceedings of the 2nd Symposium on Operating Systems Design and Implementation, October 1996.