• 제목/요약/키워드: Java Reflection

검색결과 8건 처리시간 0.031초

안드로이드 환경에서 클래스 반사와 예외 처리를 이용한 임의 코드 수행 방법 및 코드 은닉 방법 (Code Obfuscation using Java Reflection and Exception in Android)

  • 김지윤;고남현;박용수
    • 한국컴퓨터정보학회:학술대회논문집
    • /
    • 한국컴퓨터정보학회 2014년도 제50차 하계학술대회논문집 22권2호
    • /
    • pp.369-370
    • /
    • 2014
  • 본 논문에서는 안드로이드 환경에서 클래스 반사(Reflection)과 예외처리를 이용하여 안드로이드 보호 시스템을 우회하여 임의의 코드를 수행할 수 있는 방법을 제시한다. 일반적인 자바 환경과는 달리 안드로이드 환경에서는 보안 강화를 위해 APK 파일 내 루트 디렉토리의 클래스 파일만을 반사를 통해 동적 로딩이 가능하다. 하지만, 본 논문에서는 클래스 반사와 예외 처리를 이용하여 임의의 디렉토리 내 파일을 로딩 및 동적 실행할 수 있는 방법을 보이며 이 방법은 저자가 알기로는 기존에 알려지지 않은 방법이다. 이를 기반으로, 본 논문에서는 AES 암호와 동적 로딩을 이용하여, 모바일 어플리케이션의 내부 코드를 은폐하는 기법을 제안한다. 제안기법을 활용 시, 첫째 공격자의 입장에서는 내부 코드를 은폐하여 백신을 우회하는 악성코드 제작이 가능하고, 둘째, 프로그램 제작자의 입장에서는 핵심 알고리즘을 은폐하여 저작권을 보호하는 코드 제작이 가능하다. 안드로이드 버전 4.4.2(Kitkat)에서 프로토타입을 구현하여 제안 기법의 실효성을 보였다.

  • PDF

리플렉션과 문자열 암호화를 이용한 안드로이드 API 난독화 도구 (An Android API Obfuscation Tool using Reflection and String Encryption)

  • 이주혁;박희완
    • 정보처리학회논문지:컴퓨터 및 통신 시스템
    • /
    • 제4권1호
    • /
    • pp.23-30
    • /
    • 2015
  • 자바 리플렉션은 프로그램 구성 요소들을 조사하여 호출 및 조작할 수 있는 자바 언어의 기능이다. 이를 이용하면 보다 많은 호출 단계를 거치는 구조로 변형되기에 난독화 효과를 얻을 수 있다. 그러나 이를 이용할 때, 프로그램 자체의 구성 요소 이름이 문자열 형태로 노출된다. 본 논문에서는 안드로이드 애플리케이션에서 리플렉션을 적용하여 난독화하고, 이때 노출되는 문자열들을 비즈네르 암호화 알고리즘으로 은닉하여 정적분석을 방해하는 기법 및 도구를 제시한다. 실험 결과 소스 코드의 전체적인 복잡도를 증가시키는 데 효과가 있었다. 또한 서버와 로컬 기반의 두 가지 복호화 방법을 제공하는데, 이는 애플리케이션의 실행속도에 영향을 미치기 때문에 API의 중요도에 따라 선택할 수 있다.

자바 어플리케이션을 EJB로 래핑 하기 위한 기법 (A Technique for wrapping Java applications in EJBs)

  • 김동관;정효택;양영종
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2003년도 봄 학술발표논문집 Vol.30 No.1 (B)
    • /
    • pp.130-132
    • /
    • 2003
  • 1990년대 초반에 등장한 자바 언어는 빠른 속도로 프로그래머들 사이에 보급되었으며 인터넷의 등장과 더불어 이는 더욱 가속화되었다. 또한 무선 플랫폼 등과 같은 새로운 컴퓨팅 환경에 빠르게 대처함으로써 자바 언어의 끝을 예측하기는 쉽지 않은 상태이다. 초기 자바 어플리케이션들은 단일 티어(single-tier)로 개발되었으며 환경의 변화로 인해 이런 어플리케이션들을 네트워크로 연결할 필요성이 대두되고 있다. 자바 언어는 분산 컴퓨팅 환경의 솔루션으로 Enterprise JavaBean(EJB)[1]을 제시하고 있다. 본 논문에서는 기존에 개발된 자바 어플리케이션을 EJB로 래핑하기 위한 기법들을 제공한다. 핵심 비즈니스 로직을 가진 클래스들을 수작업을 통해 EJB로 변환할 수도 있지만 본 논문에서는 반자동화된 방법을 통해 변환 상의 효율을 증대시키고 변환 과정에서 발생할 수 있는 오류를 최소화하고자 한다. EJB 래핑 기법은 세션 빈(session bean)[1]래핑과 엔터티 빈(entity bean)[1]래핑으로 구성된다. 세션 빈 래핑은 자바 어플리케이션을 구성하는 클래스 가운데 질의문(query)을 가지지 않는 자바 클래스들을 래핑한다. 엔터티 빈은 질의문을 포함하는 자바 클래스를 래핑한다. EJB 래핑을 위해 리플렉션(reflection)[2]과 위임 (delegation) 장치를 사용한다.

  • PDF

리플렉션이 사용된 앱의 실행 로그 기록 및 분석을 통한 의심스러운 분기문 탐지 (Detecting suspicious branch statements through recording and analyzing execution logs of apps using reflection)

  • 이수민;박민호;홍지만
    • 스마트미디어저널
    • /
    • 제12권5호
    • /
    • pp.58-64
    • /
    • 2023
  • 로직 밤에서 악성 행위를 트리거하는 분기문의 조건은 미리 파악할 수 없어 안드로이드 악성 앱 분석을 어렵게 하고 있다. 로직 밤과 트리거일 수 있는 잠재적으로 의심스러운 분기문을 탐지하기 위한 다양한 연구가 진행되었으나, 리플렉션과 같이 런타임에 결정되는 정보가 포함된 앱에서는 의심스러운 분기문을 제대로 탐지할 수 없다. 본 논문에서는 안드로이드 앱에 리플렉션이 사용되어도 앱 실행 로그 기록과 분석을 통해 의심스러운 분기문을 탐지할 수 있는 도구를 제안한다. 제안한 도구는 안드로이드 앱이 실행되는 동안 로그에 호출된 사용자 정의 메소드와 자바 API, 리플렉션으로 호출된 메소드 정보와 분기문 정보를 기록하고 이를 분석하여 호출된 메소드와 분기문간의 관계를 파악하여 의심스러운 분기문을 탐지할 수 있다. 실험을 통해 리플렉션이 사용된 앱에서도 의심스러운 분기문을 탐지할 수 있음을 확인하였다.

자바 리플렉션 기반의 안드로이드 API 정적 분석무력화 도구의 설계 및 구현 (Design and Implementation of a Tool for Breaking static analysis of Android API Based on Java Reflection)

  • 박희완;이주혁
    • 한국컴퓨터정보학회:학술대회논문집
    • /
    • 한국컴퓨터정보학회 2014년도 제49차 동계학술대회논문집 22권1호
    • /
    • pp.99-102
    • /
    • 2014
  • 리플렉션은 자바 언어의 기능 중 하나로, 자바 프로그램을 실행해서 해당 프로그램을 조사하거나 내부의 동작 구조를 조작할 수 있다. 리플렉션을 사용하게 되면 자바 소스의 난독화 뿐만 아니라 정적 분석 도구의 API 호출 탐지를 방해하게 되어 분석 결과의 정확도를 떨어뜨리게 된다. 만약 이 특성을 악용해 악성 앱 제작자가 특정 API 메소드 호출을 은닉하는 목적으로 사용한다면 정적 분석에 의존하는 기존 분석 도구들이 API 메소드 호출을 탐지하기 어렵기 때문에 큰 위협이 될 수 있다. 본 연구에서는 안드로이드 환경에서 표본 어플리케이션에 직접 설계한 도구를 이용하여 API 메소드에 리플렉션을 적용하고, 원본 소스와 리플렉션 후 디컴파일된 소스를 비교하여 API 메소드 호출이 리플렉션을 통해서 은닉 가능함을 보여준다.

  • PDF

안드로이드 환경에서 자바 리플렉션과 동적 로딩을 이용한 코드 은닉법 (A Code Concealment Method using Java Reflection and Dynamic Loading in Android)

  • 김지윤;고남현;박용수
    • 정보보호학회논문지
    • /
    • 제25권1호
    • /
    • pp.17-30
    • /
    • 2015
  • 본 논문은 기존에 널리 사용되는 바이트코드(bytecode) 중심의 안드로이드 어플리케이션 코드 난독화 방법과 달리 임의의 안드로이드 어플리케이션의 DEX 파일 자체를 추출하여 암호화하고, 암호화한 파일을 임의의 폴더에 저장한 후 코드를 수행하기 위한 로더 앱을 만드는 방법을 제시한다. 이벤트 처리 정보를 은닉하기 위하여, 로더 앱 내부의 암호화된 DEX 파일은 원본 코드와 Manifest 정보 일부를 포함한다. 로더 앱의 Manifest는 원본 앱의 Manifest 정보 중에서 암호화된 클래스에 포함되지 않은 정보만을 기재하였다. 제안기법을 사용시, 첫째로 공격자는 백신을 우회하기 위해 난독화된 코드를 포함한 악성코드 제작이 가능하고, 둘째로 프로그램 제작자의 입장에서는 제안기법을 이용하여 저작권 보호를 위해 핵심 알고리즘을 은폐하는 어플리케이션 제작이 가능하다. 안드로이드 버전 4.4.2(Kitkat)에서 프로토타입을 구현하고 바이러스 토탈을 이용하여 악성코드 난독화 능력을 점검해서 제안 기법의 실효성을 보였다.

자바 리플렉션 기반의 안드로이드 API 난독화를 위한 자동 변환 도구의 설계 및 구현 (Design and Implementation of An Auto-Conversion Tool for Android API Obfuscation Based on Java Reflection.)

  • 이주혁;박희완
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2014년도 춘계학술발표대회
    • /
    • pp.487-490
    • /
    • 2014
  • 리플렉션은 자바 프로그램을 실행하여 객체 내부의 모든 요소를 조사하거나 호출 혹은 조작할 수 있는 자바 언어의 한 기능이다. 한 클래스 내부의 메소드에 리플렉션을 적용하여 호출하게 되면 String형의 메소드 이름으로 간접 호출하기에 정적 분석 도구의 API 호출 탐지를 방해하게 되어 분석결과의 정확도를 떨어뜨릴 수 있고, 또한 일반적인 호출보다 복잡한 절차를 거치게 되어 소스 자체의 난독화 효과를 갖게 된다. 또한 디컴파일러의 역공학 분석을 어렵게 만드는 장점도 있다. 이 특성을 이용한다면 안드로이드 환경에서 특정 API를 은닉하여 개인정보를 누출하도록 악용하거나 디컴파일러 이용을 방지하는 데 활용될 수 있다. 본 연구에서는 안드로이드 환경에서 직접 설계한 도구와 표본 앱을 이용하여 API 메소드에 리플렉션을 적용하고, 원본 소스와 리플렉션 후 디컴파일된 소스를 비교하여 API 호출이 리플렉션을 통해서 은닉 가능함을 보여준다.

적응형 사용자 프로파일기법과 검색 결과에 대한 실시간 필터링을 이용한 개인화 정보검색 시스템 (PIRS : Personalized Information Retrieval System using Adaptive User Profiling and Real-time Filtering for Search Results)

  • 전호철;최중민
    • 지능정보연구
    • /
    • 제16권4호
    • /
    • pp.21-41
    • /
    • 2010
  • 본 논문은 다양한 사용자의 개인적 검색요구를 충족시키지 못하는 기존 검색시스템의 문제점을 해결하기 위해 사용자의 묵시적 피드백을 이용한 적응형 사용자 기호정보 기반의 개인화 검색을 실현하고, 검색결과에 대한 실시간 필터링을 통해 사용자에게 적합한 검색 결과를 제공하는 시스템을 제안한다. 기존의 검색 시스템들은 검색의도의 불확실성 때문에 사용자의 검색실패율이 높다. 검색 의도의 불확실성은 동일한 사용자가 "java"와 같은 다의어에 대해 동일한 질의어를 사용하더라도 다른 검색 결과를 원할 수 있다는 것이며, 단어의 수가 적을수록 불확실성은 가중될 것이다. 실시간 필터링은 사용자의 도메인 지정여부에 따라 주어진 도메인에 해당하는 웹문서들만 추출하거나, 적절한 도메인을 추론하고 해당하는 웹문서들만 검색 결과로 보여주는 것으로, 일반적인 디렉토리 검색과 유사하지만 모든 웹문서에 대해 이루어진다는 것과 실시간으로 분류된다는 것이 다르다. 실시간 필터링을 개인화에 활용함으로써 검색 결과의 수를 줄이고 검색만족도를 개선했다. 본 논문에서 생성한 기호정보파일은 계층적 구조로 이루어지며, 상황정보의 반영이 가능하기 때문에 의도의 불확실성을 해결 할 수 있다. 또한 사용자의 도메인별 웹문서 검색 동작을 효과적으로 추적(track) 할 수 있으며, 사용자의 기호 변화를 적절하게 알아낼 수 있다. 각 사용자 식별을 위해 IP address를 사용했으며, 기호정보파일은 사용자의 검색 행동에 대한 관찰을 기반으로 지속적으로 갱신된다. 또한 사용자의 검색결과에 대한 행동 관찰을 통해, 사용자 기호를 인지하고, 기호정보를 동적으로 반영했으며, 검색결과에 대한 만족도를 측정했다. 기호정보파일과 반영비율은 사용자가 검색을 수행할 때 시스템에 의해 생성되거나 갱신된다. 실험결과 적응형 사용자 기호정보파일과 실시간 필터링을 함께 사용함으로써, 상위 10개의 검색결과 중 평균 4.7개의 결과들에 대해 만족하는 것으로 나타났으며, 이는 구글의 결과에 비해 약 23.2% 향상된 만족도를 나타내었다.