Security Tech

[Mobile] QuarkEngine 툴 소개 및 사용법

작성자 - 현우는 5살

목차

  • 소개 배경
  • 사용법
  • 활용방안

 이번 QuarkEngine즉 Quark Agent를 소개하게된 계기는 이번 캡스톤 디자인을 설계할때, Quark Agent를 활용한 서비스를 개발하였습니다. 하지만 이번 공부 과정에서 QuarkEngine을 소개하는 글이 많이 없다는 생각을해, 이번달 블로그 주제로 선정하였습니다.

 

QuarkEngine은 쉽게 설명하면 취약점 진단 툴이라고 생각하면 될거 같습니다. apk파일을 업로드를 진행하면,

위사진과 같이yara룰을 기반으로된 룰들에 맞게 취약점을 진단해주는 앱입니다.

이는 실행결과입니다.


 

먼저 quarkEngine에서 제공하는 yara룰 기반 json파일들이 있습니다. json파일을 스캔을 진행할

python코드를 사용하면 관련 취약점의 위험도를 체크해볼 수 있습니다.

from quark.script import runQuarkAnalysis, Rule SAMPLE_PATH = "ovaa.apk" RULE_PATH = "loadExternalCode.json" targetMethod = [ "Landroid/content/pm/PackageManager;", "checkSignatures", "(Ljava/lang/String;Ljava/lang/String;)I" ] ruleInstance = Rule(RULE_PATH) quarkResult = runQuarkAnalysis(SAMPLE_PATH, ruleInstance) for ldExternalCode in quarkResult.behaviorOccurList: callerMethod = [ ldExternalCode.methodCaller.className, ldExternalCode.methodCaller.methodName, ldExternalCode.methodCaller.descriptor ] if not quarkResult.findMethodInCaller(callerMethod, targetMethod): print(f"Method: {targetMethod[1]} not found!") print(f"CWE-94 is detected in {SAMPLE_PATH}")

이제 저같은 경우에는 quarkengine에서 제공하는 모든 rule들을 사용하여 모바일앱 취약점 점검 기능을 진행하는 모듈을 개발하였습니다. 추후에 버그바운티와 같은 활동을 진행할때 이와같이 위험도를 측정한 후에 이에 관련된 취약점 위주로 트리거를 찾는다면, 보다 쉽게 취약점 점검을 진행할 수 있을거 같습니다.

 

 

이 글이 도움이 되었다면, 응원의 댓글 부탁드립니다.