USCSããŒã ã¯ãAndroidåãã®äžè¬çãªã¢ã³ããŠã€ã«ã¹ã¢ããªã±ãŒã·ã§ã³ã®åäœããã¹ãããããã«ãç¬ç«ãã調æ»ãå®æœããŸããã phdays VIã«ã³ãã¡ã¬ã³ã¹ã§ãã®ç 究ã®çµæãå ±æããŸãããããŠã€ã«ã¹æ€åºã¡ã«ããºã ããã€ãã¹ããããã®é£èªåããŒã«ã®äœ¿çšã«ã€ããŠè©³ãã説æããããšæããŸãã
é£èªåã®æ¹æ³
ãããªãã¯ãã¡ã€ã³ã«ã¯ãããªãã®æ°ã®ç°ãªãé£èªåããŒã«ããããŸãã ãã®ç 究ã§äœ¿çšããããã«3ã€ã®ç¡æã®ãã®ãéžæãããããã«ã以åã®ãã®ã§ã¯ååã§ã¯ãªãã£ãæ©èœãå®è¡ããå¥ã®1ã€ãäœæãããŸããã
ãŸãããœãŒã¹ã³ãŒããæäœãã2ã€ã®é£èªåããŒã«ãéžæãããŸããããããã¯ProguardãšAlatoriã§ãã
ProGuard㯠Androidã¢ããªã±ãŒã·ã§ã³ãã«ãã·ã¹ãã ïŒAndroid Studio ïŒã«çµã¿èŸŒãŸããŠãããã¢ããªã±ãŒã·ã§ã³ãªãªãŒã¹ãšå ±ã«ããªãªãŒã¹ãã¢ãŒãã§å®è¡ãããŸãã å ¬åŒã«ã¯ããã®ãŠãŒãã£ãªãã£ã¯ã³ãŒããåæžãæé©åãããã³é£èªåããããã«èšèšãããŠããŸãã
ProGuardã¯ãã¡ãœãããšäžéšã®ã¯ã©ã¹ã®ååãå€æŽã§ããŸãããŸããç¬èªã®æ©èœãšããŠããã®é£èªåããŒã«ããã¹ãŠã®ãããã°æ å ±ïŒã¯ã©ã¹ãœãŒã¹ã³ãŒããšã³ãŒãå ã®è¡çªå·ãæã€ãã¡ã€ã«åïŒãåé€ããå¯äžã®é£èªåããŒã«ã§ãããšããäºå®ã匷調ã§ããŸãã
Proguardãšåæ§ã«ã Alatoriã¯ããããã£ãšã¡ãœããã®ååãäžéšã®ã¯ã©ã¹åãå€æŽã§ãããããã°æ å ±ãéšåçã«åé€ããŸããè¡çªå·ãåé€ããã«ãœãŒã¹ã³ãŒãã§ãã¡ã€ã«åãå€æŽããŸãã Alatoriã®äž»ãªéãã¯ãæååã®æå·åïŒ0x20ããŒã䜿çšããxorã¢ã«ãŽãªãºã ïŒã§ãã
次ã«ãsmali圢åŒã®ãã€ãã³ãŒãã§åäœããé£èªåããŒã«-Adamãæ€èšããŸããã
ãŸããapktoolãŠãŒãã£ãªãã£ã¯apkãã¡ã€ã«ãããã®ãããªãã€ãã³ãŒããç°¡åã«çæããããããã®ã¢ããªã±ãŒã·ã§ã³ã®ãœãŒã¹ã³ãŒãã¯ãAdamã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ãé£èªåããå¿ èŠã¯ãããŸããã
Adamã¯é£èªåã®4ã€ã®æ¹æ³ããµããŒãããŠããŸãããã®äŸã§ã¯ãé£èªååŸã«ã³ãŒããã©ã®ããã«å€æŽãããããæ確ã«ç¢ºèªã§ããŸãã
1ïŒåã¯ã©ã¹ã®ã³ãŒãã«ã¡ãœãããè¿œå ããŸãã
ã ã£ã | ã«ãªã£ãŠããŸã |
ã¡ãœããCode1
ã¡ãœããCode2 | ã¡ãœããã³ãŒã 1
.method public SparkLogïŒLjava / lang / String;ïŒV const-string v0ããSparkLogã invoke-static {v0ãp0}ãLcom / lohan / lohanLog;-> LogïŒLjava / lang / String; Ljava / lang / String;ïŒV .endã¡ãœãã ã¡ãœããCode2 |
2ïŒã¯ã©ã¹ã¡ãœããåã®å€æŽ
ã ã£ã
| ã«ãªã£ãŠããŸã
|
.method private
倧æååïŒLjava / lang / String;ïŒLjava / lang / String; | .method private
abc123ã 倧æåã«ã ãŸã ïŒLjava / lang / String;ïŒLjava / lang / String; |
3ïŒå®è¡ã®æµããå€æŽããŸãã
åã¡ãœããã®å®è£ ã®æåã§ã¯ãgotoã¹ããŒãã¡ã³ãã¯ã¡ãœããã®æåŸãžã®ç¡æ¡ä»¶ãžã£ã³ãã§ãã ãã®åŸããžã£ã³ãåœä»€ã®çŽåŸã«ç¡æ¡ä»¶ã®å é ãžã®ãžã£ã³ããçºçããéåžžã®ã³ãŒãå®è¡ãç¶è¡ãããŸãã
ã ã£ã
| ã«ãªã£ãŠããŸã
|
.method private capitalizeïŒLjava / lang / String;ïŒLjava / lang / String;
ã¡ãœãã ã³ãŒã .endã¡ãœãã | .method private
倧æååïŒLjava / lang / String;ïŒLjava / lang / String; gotoïŒCFGGoto2 ïŒCFGGoto1 ã¡ãœãã ã³ãŒã ïŒCFGGoto2 gotoïŒCFGGoto1 .endã¡ãœãã |
4ïŒã³ãŒãè¡ã®æå·åã
æååå€æ°ã宣èšããããã®ãã¹ãŠã®åœä»€ã¯ãæå·åãããæååå€æ°ã宣èšããéçã¡ãœãããåŒã³åºããŠæååã埩å·åããããã®åœä»€ã«çœ®ãæããããŸãã
ã ã£ã
| ã«ãªã£ãŠããŸã
|
const-string v5ããhttp.protocol.content-charsetã
| const-string v5ãã rddz.zbydymyv.myxdoxd-mrkbcod ã
invoke-static {v5}ãLcom / mzhengDS;-> DecryptStringïŒLjava / lang / String;ïŒLjava / lang / String; 移åçµæãªããžã§ã¯ãv5 |
é£èªåãããã¢ããªã±ãŒã·ã§ã³ã§ã®ãŠã€ã«ã¹å¯Ÿçãã¹ã
é£èªåãããã¢ããªã±ãŒã·ã§ã³ããã¹ãããããã«ã1ã€ã®æ°ããããã€ã®æšéŠ¬ïŒããã€ãã®å±éºãªå¯èœæ§ãå«ãmalware.apkã¢ããªã±ãŒã·ã§ã³ïŒãš1ã€ã®æåãªdendroidïŒå€ãã®ãŠã€ã«ã¹å¯Ÿçãœããããã®ã·ã°ããã£ã決å®ããããç¥ãããŠããŸãïŒãåãããšã«æ±ºããŸããã ããã«ãå€æŽãããdendroidã«ã€ããŠããã¹ããå®è¡ãããŸãããããšãã°ãæªäœ¿çšã®é¢æ°ãªã©ããœãŒã¹ã³ãŒãã®ç Žçãåãé€ãããŸããã ã¡ãªã¿ã«ãåã«ãŽããåé€ããŠæªæã®ããã¢ããªã±ãŒã·ã§ã³ãåæ§ç¯ããã ãã§ããäžéšã®ãŠã€ã«ã¹å¯ŸçãœãããŠã§ã¢ã¯æ¢ã«å¿çãåæ¢ããŠããŸãã
virustotalã®ã¹ãã£ã³çµæãè¡š1ã«ç€ºããŸãã
è¡š1-virustotalã®ã¹ãã£ã³çµæ
| ãããã«
| ããã¬ãŒã
| ã¢ã©ããª
| ã¢ãã
|
Malware.apk
| 26
| 17
| 10
| 18
|
ãã³ããã€ã
| 35
| 31
| 24
| 25
|
ãã³ããã€ã
ïŒå€æŽïŒ | 28
| 28
| 21
| 17
|
ã¹ããŒããã©ã³ã«ã€ã³ã¹ããŒã«ãããŠããäžäœã®ã¢ãã€ã«ã¢ã³ããŠã€ã«ã¹ã¢ããªã±ãŒã·ã§ã³ã§ã¹ãã£ã³ããçµæãè¡š2ã«ç€ºããŸãã
è¡š2-ã¢ãã€ã«ã¢ã³ããŠã€ã«ã¹ã¹ãã£ã³ã®çµæ
| ãããã«
| ããã¬ãŒã
| ã¢ã©ããª
| ã¢ãã
|
Malware.apk
| 6
| 4
| 4
| 3
|
ãã³ããã€ã
| 12
| 11
| 9
| 11
|
ãã³ããã€ã
ïŒå€æŽïŒ | 10
| 9
| 5
| 9
|
ã»ãšãã©ã®å ŽåãAlatoryã¯ãé£èªåãããMalware.apkãã¢ãã€ã«ãŠã€ã«ã¹å¯Ÿçãœããã§ã¹ãã£ã³ããããšã«å ããŠãããããã³ãŒãè¡ãæå·åããæ©èœã«ãããæè¯ã®çµæã瀺ããŸããã ãã®ç¶æ³ã§ã¯ãADAMãæé«ã®ä»äºããããŠã€ã«ã¹ãæ€åºãã3ã€ã®ãŠã€ã«ã¹å¯Ÿçã¯KasperskyãLookOutãããã³AVASTã§ããã
æ€åºåšã®æ°ã3ã€ã«æžããããšã¯ç¢ºãã«è¯ãããšã§ãããé£èªåãããã¢ããªã±ãŒã·ã§ã³ã®èªèããŒãã«ãããã£ãã®ã§ãïŒãšããã§ãããã¯ã§ããŸããã§ããïŒã
ãã®ããããã€ãã³ãŒãã§åäœãããã§ã«æ€èšãããŠããé£èªåããŒã«ã®æè¯ã®åŽé¢ãçµã¿åãããå¥ã®é£èªåããŒã«ãéçºãããŸããã ãŸããããã±ãŒãžåãšã¯ã©ã¹åãæå·åããæ©èœã§ADAMãå®å šã«è£å®ãããšããäºå®ïŒAlatoriã®xorã¢ã«ãŽãªãºã ã䜿çšããŸãããä»åã¯å¯å€ããŒã䜿çšïŒã«ãããé£èªåããŒã«ã¯EVAãšåä»ããããŸããã
å³1ã¯ãEVAã®é£èªååŸã®AndroidManifest.xmlã®ãã©ã°ã¡ã³ãã瀺ããŠããŸããEVAã§ã¯ããã¹ãŠã®ã¯ã©ã¹åãšããã±ãŒãžåãå€æŽãããŠããŸãïŒæå·åãããŠããŸãïŒã EVAãæ©èœããåŸãé£èªåããããã€ãã³ãŒããapktoolã䜿çšããŠåæ§ç¯ããapkãã¡ã€ã«ã«æ»ããŠå眲åããå¿ èŠããããŸãã
å³1-EVAã®é£èªååŸã®AndroidManifest.xmlã®ãã©ã°ã¡ã³ã
EVAã§é£èªåãããã¢ããªã±ãŒã·ã§ã³ã®ã¹ãã£ã³çµæãè¡š3ããã³4ã«ç€ºããŸãã
è¡š3-virustotalã®ã¹ãã£ã³çµæ
| ãããã«
| ãšãŽã¡
|
Malware.apk
| 26
| 3
|
ãã³ããã€ã
| 35
| 12
|
è¡š4-ã¢ãã€ã«ã¢ã³ããŠã€ã«ã¹ã¹ãã£ã³ã®çµæ
| ãããã«
| ãšãŽã¡
|
Malware.apk
| 6
| 1
|
ãã³ããã€ã
| 12
| 11
|
ãããã£ãŠãEVAã¯é£èªåããŒã«ã®äžã§æé«ã®çµæã瀺ããŸããã Malware.apkã®å Žåãã¢ãã€ã«ã¢ã³ããŠã€ã«ã¹ã«ãã£ãŠåäžã®æ€åºãéæããããŠã€ã«ã¹ãæ€åºããå¯äžã®ã¢ã³ããŠã€ã«ã¹ãAVASTã§ããã
ããããããã ãã§ã¯ãããŸããïŒ
ãŸããapktoolã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ãåããã±ãŒãžåããã ãã§ãæ€åºåæ°ãæ°åæžå°ããŸãã
第äºã«ãç°ãªãæ¹æ³ãšé£èªåããŒã«ã®çµã¿åããã«ãããçµæãå€§å¹ ã«æ¹åãããŸãã ãã®ãããEVAãADAMãããã³Proguardãä»»æã®é åºã§äœåºŠã§ã䜿çšããããšã§ãvirustotalã®æ€åºæ°ã1ã«æžããããšãã§ããŸãããããã§ãæ®å¿µãªããããŒãæ€åºãéæã§ããŸããã§ããã ãããããŠã€ã«ã¹ãæ€åºããå¯äžã®ãŠã€ã«ã¹å¯Ÿçã¯ãä»åã¯ç¹å®ã®Ahnlab-V3ã§ããã
第äžã«ããã°ãããããšããŒã¿ããŒã¹ãæŽæ°ãããæ€åºãåéãããŸãããæå·åæ¹æ³ã䜿çšããåŸãKasperskyããŠã€ã«ã¹ãžã®å¿çãåæ¢ããããšãããããŸããã
çµè«ã®ä»£ããã«
ããã€ã¹ã§èŠæ±ãããæš©éã«é¢ããMalware.apkã¢ããªã±ãŒã·ã§ã³ã¯æšæºã®ã¡ãã»ã³ãžã£ãŒãšå€ãããªãã£ãããã人æ°ã®ããWhatsAppãååŸããé£èªåãããŸããããã¡ãããæåããæªæã®ãããã®ã§ã¯ãããŸããã
ã¡ãã»ã³ãžã£ãŒã®é£èªåã¯ã次ã®3ã€ã®æ¹æ³ã§å®è¡ãããŸããã
1ïŒç°¡åãªå梱å ã
2ïŒADAMã䜿çšãããã€ãã³ãŒãã®é£èªåã
3ïŒEVAã䜿çšãããã€ãã³ãŒãã®é£èªåã
確ãã«ãã¯ã©ã¹åãšããã±ãŒãžåãé£èªåããããšãããšãã¢ããªã±ãŒã·ã§ã³å€æã匷ãããŠãã¢ããªã±ãŒã·ã§ã³ãã¯ã©ãã·ã¥ããããšãå€æããŸããã
ããã«ãã€ã¡ãŒãžã®ãã§ãã¯ãµã ã®WhatsAppæ€èšŒãååšãããããé£èªåãæåããå Žåã§ããã¢ããªã±ãŒã·ã§ã³ã¯åäœãæåŠããåã€ã³ã¹ããŒã«ãææ¡ããŸããã
ãã®çµæã3ã€ã®ã±ãŒã¹ãã¹ãŠã§ãé£èªåãããWhatsAppã¯ã2ã€ã®ãŠã€ã«ã¹å¯ŸçãœããAvastãšLookoutã«ãã£ãŠãã«ãŠã§ã¢ãšããŠå®çŸ©ãããŸããã