본문 바로가기
반응형

Previous Research6

메일 클라이언트 보안의 이모저모 2018년부터 미들웨어 전문 기업에 입사한 후 꽤 오랜 시간 동안 메일 클라이언트 개발 부서에서 일을 하였다. 팀에 들어온 후로 메일 클라이언트에서 네트워크나 DB와 관련된 주 기능인 아닌 스펙 문서가 존재하지 않는 바이너리 호환 업무를 맡아서 해왔었기 때문에 그 전까지는 기술적으로 딱히 쓸만한 글이 없었는데, 코로나 사태 이후 랜섬웨어 같은 악성코드가 메일을 통해 감염되는 등 보안 문제가 부각되기 시작하면서 개발 중이었던 메일 클라이언트에도 보안 기능이 필요하다고 본부에 제안을 했고, 해당 기능의 필요성을 인정받아 이에 대한 연구 개발을 하게 되었다. ​ 보통 제품을 개발하는데 있어서 특정 기능을 추가하기 위해 가장 첫 번째로 수행하는 일은, 제품을 개발하는데 참고하는 레퍼런스 제품들이 실제로 해당 기.. 2021. 12. 8.
온라인 게임 보안 솔루션에 대한 이모저모 최근 보안 프로젝트 조정원 대표님이 올려주신 모의해킹과 관련된 공개 강의를 듣다가 문득 요즘은 게임 보안 솔루션의 트렌드가 어떻게 변했는지 궁금해졌다. 원래 보안에 관심을 가지게 된 계기도, 내가 어렸을 적부터 즐겨하던 "바람의나라"라는 게임에서 해킹을 당했었기 때문인데 지금 생각해보면 아무것도 몰랐을 시절이라 다른 사람들도 많이 당하지 않았었을까 싶다. 내가 겪은 상황을 간단하게 말하면.. 바람의나라에서 가지고 싶은 아이템을 싸게 사려다가, 어느 유저가 지금은 사라진 버디버디 메신저로 가격표를 보내준다고 해서 냉큼 받아서 파일을 열었더니 여는 동시에 컴퓨터가 꺼졌고, 다시 켰을 때는 이미 아이템을 싹 털린 이후였다. 보내준 첨부 파일의 확장자가 단순히 텍스트 파일(.txt)이었기 때문에 별 의심 안하고.. 2021. 11. 30.
안드로이드 네이티브 루팅 탐지 코드 예제 #include "JNIHeader.h" #include #include #include JNIEXPORT jboolean JNICALL Java_com_jay_NativeRootCheck_executeSu (JNIEnv* env, jobject obj, jstring cmd) { jboolean result = 0; jint status; pid_t pid = -1; pid = fork(); if (pid == 0) { int execute = execl("/system/xbin/su", "su", NULL); if(execute != 0) exit(1); else exit(0); } else if (pid > 0) { wait(&status); } if(status) result = 1; return.. 2021. 5. 18.
안드로이드 루팅 탐지 및 우회 기법 연구 (3) 안드로이드 루팅 탐지 및 우회 기법 연구에 대한 마지막 글로, 이전 글에서 설명한 제안 시스템을 구현하고 기존의 자바 기반의 루팅 탐지 시스템과 성능을 비교한 결과를 언급하겠습니다. 실제 구현은 안드로이드 스튜디오에서 NDK를 사용하여 루팅 탐지를 서비스 형태로 실행하는 앱 형태로 구현했으며 예제 코드 또한 별도로 올릴테니 참고하시면 됩니다. 이후에 수행한 안드로이드 앱 분석 자동화 연구에서 대부분 금융권 및 게임사의 앱 분석을 통해 네이티브 레벨에서 루팅 탐지를 수행하고 있음을 확인했는데요. 이 연구를 진행했을 당시만 해도 Frida 같은 네이티브 후킹 프레임워크가 대중화되기 이전이었지만, 단순히 APK 내 SO 파일을 분석하고자 하면 IDA 디스어셈블러 통해 분석이 가능 했었죠. 그렇기 때문에 제가 .. 2021. 5. 17.
안드로이드 루팅 탐지 및 우회 기법 연구 (2) 이전 글에서는 안드로이드 루팅에 대한 배경지식과 Java 레벨에서의 안드로이드 루팅 탐지 및 우회 기법에 대해 서술했습니다. 이번 글에서는 안드로이드에서 NDK(Native Development Kit)을 이용한 네이티브 레벨에서 루팅을 탐지하는 기법에 대해 소개해보죠. 지금 생각해보면 당연한 것이였는데 처음 연구를 했을 때는 이를 구현하고 엄청난 발견을 한 것 마냥 굉장히 들떴던 기억이 나는데요. 하지만 옛날로 다시 돌아가서 에뮬레이터를 통해 안드로이드 구조를 확인하고, 실제 안드로이드 디바이스를 루팅하고 성능을 확인하기 위한 과정을 다시 연구하라고 하면 할 수 있을지 모르겠습니다. 그래서 오늘 글에서는 루팅 탐지를 위한 전체적인 시스템에 대해 설명하고, 다음 글에서 이를 구현하여 그 당시의 기존 시스.. 2021. 5. 17.
안드로이드 루팅 탐지 및 우회 기법 연구 (1) 이번 글부터 시작해서 총 3편으로 이어지는 글은 제가 2016년에 대학원에서 수행한 안드로이드 루팅 탐지 및 우회 기법연구에 대한 내용입니다. 안드로이드 루팅 탐지는 대학원 연구실 학부 인턴이었던 2015년부터 연구를 시작하였고, 이를 바탕으로 2016년에 특허 출원 및 소프트웨어 저작권 등록을 진행했습니다. 2017년에는 국제 컨퍼런스에 논문을 제출했으나 그 땐 이미 안드로이드 루팅에 대해 많은 연구가 존재한 상태여서 아쉽게도 통과되지 못했었습니다. 이 글에서는 지금은 대중적으로 사용하고 있는 NDK를 이용한 네이티브 레벨에서의 루팅 탐지 및 우회 기법에 대해 설명하고 있는데, 현재 트렌드와는 많이 다를 수 있기 때문에 이런 내용이 있구나하고 공부할 때 참고하면 도움이 될 것 같습니다. 이번에 쓰는 글.. 2021. 5. 17.
반응형