Security ★ Development(154)
-
퀄컴 QSEE 개발(ca part)
모바일 ap로 많이 쓰이는 퀄컴의 칩셋에는 qsee(qualcomm secure execution environment)라는 trustzone이 지원됩니다. Secure world라고 하며 normal world에서 동작하는 기존 os보다 보안이 필요한 기능을 동작시킬때 주로 사용됩니다. qsee외에도 mobicore의 kinibi, 삼성의 teegris가 있습니다. 우선 qsee에서 동작하는 trusted application을 개발해야 하며 이와 상호작용하는 client application이 있어야 합니다. ca는 nwd에서 동작하는 기존의 app과 같은 것이 있을 수 있고 kernel영역의 드라이버 형태로 구현될 수도 있습니다. NWd에서 ca를 개발하려면 qsee에서 제공하는 library, 헤..
2020.04.04 -
Android java object variable memory address
안드로이드 오브젝트(Object) 형 변수의 어드레스, c에서 말하는 포인터 주소를 얻는 방법을 검색해보면 보통 '얻을 수 없다' 혹은 hashcode에 대한 소개가 나타납니다. 일반적으로 안드로이드 어플을 만들 때는, jni 및 c를 써도 object 어드레스 자체에 접근하는 건 어렵습니다. 관련된 인터페이스, api를 제공하지 않고 있기 때문인데 그래서 c단에서 안드로이드 어플과 같이 상호작용하는 함수를 만들 때는 jni 함수들을 이용하게 됩니다. jni함수 내부에서 안드로이드 object 형 변수의 메모리에 접근이 발생하게 됩니다. 안드로이드 프레임워크, native library, art 등의 수정이 가능하다면 memory addresss에 직접 접근하여 수정, 확인할 수 있습니다. 이러한 작업을..
2019.11.09 -
모바일 보안 패치 확인
자신이 갖고있는 스마트폰(안드로이드)의 보안 패치 상태를 확인해 볼 수 있습니다. 삼성전자의 갤럭시 시리즈, LG 스마트폰 뿐만 아니라 샤오미, 화웨이 등 안드로이드를 이용하는 다양한 스마트폰이 나오고 있는 와중에 사용하고 있는 폰의 보안 패치 수준이 어떻게 되는지 관심있는 분들은 한번쯤 확인해 봐도 좋을 것 같습니다. 제가 여기서 사용하는 어플은 SnoopSnitch입니다. Play 스토어에서 다운받을 수 있습니다.SnoopSnitch는 오픈소스 안드로이드 어플로 자세한 사항은 아래 주소에서 확인할 수 있습니다.https://opensource.srlabs.de/projects/snoopsnitch 쓰고 있는 폰은 갤럭시 S7 edge로 10월 기준 테스트 되는 모든 패치가 적용되어있었습니다. 녹색 라..
2018.10.14 -
App signature 비교
Android framework 쪽 기능을 구현하다보면 어떤 기능이 특정 app만 사용할 수 있게끔 해야하는 경우가 있습니다.이런경우 안드로이드(AOSP)에서 제공해주는 권한을 이용 할 수도 있지만 특정 개발자(서명보유자)의 app만 사용하도록 할 수도 있습니다.모든 안드로이드 app은 배포되기위해 signing이 되어야합니다. 이때 signing되는 key는 vendor나 개인 개발자가 각자 보유하게되죠. 여러 app을 같은 key로 signing할 경우 이 app들에 대해서만 허용해주는 로직을 만들 수 있습니다. PackageInfo packageInfo=context.getPackageManager().getPackageInfo("패키지명", PackageManager.GET_SIGNATURES);..
2018.07.29 -
system_server broadcast hooking
system_server는 안드로이드에서 작동하는 프로세스로 init -> zygote -> system_server 순으로 구동됩니다. 여러가지 서비스 manager 역할을 하며 framework에 속한다고보면 됩니다.여기서 프로세스간 브로드캐스트를 잡을 수 있습니다. am/BroadcastQueue.java private final void processCurBroadcastLocked(BroadcastRecord r, ProcessRecord app) throws RemoteException { if (DEBUG_BROADCAST) Slog.v(TAG,... processCurBroadcastLocked() 함수에서 할 수 있는데 BroadcastRecord와 ProcessRecord에서 각각의 프..
2018.03.17 -
윈도우 공유폴더 및 널 세션 제거
윈도우 공유폴더에 대한 침해사고는 심각하게 보도된 적은 없지만 RDP 서비스를 이용한 공격 등의 악용 소지는 분명 있기 때문에 PC로 중요작업을 하신다면 관리해줄 필요가 있습니다. 우선 net share 명령어를 통해 어떤 공유폴더들이 있는지 확인해봤습니다. 공유폴더는 집에서 별로 사용하시는 분이 없을 것으로 보이고 특별히 관련 작업을 하지 않는 다면 삭제하는 것이 좋습니다. regedit을 실행하여 다음과 같은 경로로 이동합니다.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters해당 path를 보면 AutoShareWks라는 값이 있는데 이를 0으로 변경해줍니다. 만약 없다면 AutoShareWks를 생성하여 주셔도 ..
2017.10.29