Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
☓
☓
☓ ☓
☓ ☓
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
push esp
push ebp
push ebx
movi_i64 tmp12,$0x8260a634
st_i64 tmp12,env,$0xdae0
ld_i64 tmp12,env,$0xdad0
%2 = add i64 %en...
•
• -dse, -simplifycfg
•
• -constprop
• -instcombine
(x = 14; y = x + 8) → (x = 14; y = 22)
(y = 3; ...; y = x + 1) → (......
•
•
•
•
•
•
•
• Bb7g86hvE/
•
• GT7g86hvE/
•
•
•
• NtDelayExecution(), WaitForSingleObject(), GetCursorPos(),……
•
•
cmp eax, 0x7DF
je 0xdeadbaad
if(x!=2015)
Invalid.
ASSERT( INPUT_*_*_* =0hex7DF );
mov esi, 0x13
mov edx, 0x7DF
•
•
mov esi, 0x13
…
mov esi, 0x7DF
(esi == 0x13) and (edx == 0x7DF)
(esi == 0x13) and (esi ==...
static inline int IsSleepPatched()
{
DWORD time1 = GetTickCount();
Sleep(500);
DWORD time2 = GetTickCount();
if ((time2- t...
mov eax, edx
•
•
•
•
•
•
r3 = Load(r2) tr3 = tr2
•
•
x = get_input();
if (x == "a")
{
uri = "c2.php";
msg = "a";
}
send(uri, msg);
x = get_input();
if (x > "a")
{
tmp = x ...
•
•
•
•
•
•
•
•
• 999bc5e16312db6abff5f6c9e54c546f
• b44634d90a9ff2ed8a9d0304c11bf612
• dd207384b31d118745ebc83203a4b04a
• B44634d90a9ff...
•
• eee1bdb8d4ad98cce0031ed6ca43274a
• 84826d5e65987c131a80b1a3aa53ce17
• a2a7d4f75fc263648824facb0757a3c7
•
• nop(0x90) 0...
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
PANDEMONIUM: 動的バイナリ計測とファジーハッシュを使用した暗号アルゴリズムの⾃動識別
PANDEMONIUM: 動的バイナリ計測とファジーハッシュを使用した暗号アルゴリズムの⾃動識別
PANDEMONIUM: 動的バイナリ計測とファジーハッシュを使用した暗号アルゴリズムの⾃動識別
PANDEMONIUM: 動的バイナリ計測とファジーハッシュを使用した暗号アルゴリズムの⾃動識別
PANDEMONIUM: 動的バイナリ計測とファジーハッシュを使用した暗号アルゴリズムの⾃動識別
PANDEMONIUM: 動的バイナリ計測とファジーハッシュを使用した暗号アルゴリズムの⾃動識別
PANDEMONIUM: 動的バイナリ計測とファジーハッシュを使用した暗号アルゴリズムの⾃動識別
PANDEMONIUM: 動的バイナリ計測とファジーハッシュを使用した暗号アルゴリズムの⾃動識別
PANDEMONIUM: 動的バイナリ計測とファジーハッシュを使用した暗号アルゴリズムの⾃動識別
PANDEMONIUM: 動的バイナリ計測とファジーハッシュを使用した暗号アルゴリズムの⾃動識別
PANDEMONIUM: 動的バイナリ計測とファジーハッシュを使用した暗号アルゴリズムの⾃動識別
PANDEMONIUM: 動的バイナリ計測とファジーハッシュを使用した暗号アルゴリズムの⾃動識別
Upcoming SlideShare
Loading in …5
×

PANDEMONIUM: 動的バイナリ計測とファジーハッシュを使用した暗号アルゴリズムの⾃動識別

454 views

Published on

マルウェアの脅威に対抗するためには,マルウェアの詳細な挙動を明らかにしなければならない。
その端緒として,マルウェアが用いる様々な暗号アルゴリズムを特定する必要が叫ばれている。
本トラックでは,動的バイナリ計装およびファジィハッシュを用いて,マルウェアに含まれる既知の暗号アルゴリズムを自動的に特定する高速かつ拡張 可能な手法を提案する。

Published in: Software
  • Be the first to comment

PANDEMONIUM: 動的バイナリ計測とファジーハッシュを使用した暗号アルゴリズムの⾃動識別

  1. 1. • •
  2. 2. • • • • • • • • •
  3. 3. • • • •
  4. 4. • • • • • • • • •
  5. 5.
  6. 6. • • • • • •
  7. 7. • • • • • • • •
  8. 8. ☓ ☓ ☓ ☓ ☓ ☓ • •
  9. 9. • • • • • • •
  10. 10. • • • • • • •
  11. 11.
  12. 12. • push esp push ebp push ebx movi_i64 tmp12,$0x8260a634 st_i64 tmp12,env,$0xdae0 ld_i64 tmp12,env,$0xdad0 %2 = add i64 %env_v, 128 %3 = inttoptr i64 %2 to i64* store i64 2187372084, i64* %3
  13. 13. • • -dse, -simplifycfg • • -constprop • -instcombine (x = 14; y = x + 8) → (x = 14; y = 22) (y = 3; ...; y = x + 1) → (...; y = x + 1) (y = x + 2; z = y + 3) → (z = x + 5)
  14. 14. • • • • •
  15. 15. • • • Bb7g86hvE/ • • GT7g86hvE/
  16. 16. • • • • NtDelayExecution(), WaitForSingleObject(), GetCursorPos(),…… • •
  17. 17. cmp eax, 0x7DF je 0xdeadbaad if(x!=2015) Invalid. ASSERT( INPUT_*_*_* =0hex7DF );
  18. 18. mov esi, 0x13 mov edx, 0x7DF • • mov esi, 0x13 … mov esi, 0x7DF (esi == 0x13) and (edx == 0x7DF) (esi == 0x13) and (esi == 0x7DF)
  19. 19. static inline int IsSleepPatched() { DWORD time1 = GetTickCount(); Sleep(500); DWORD time2 = GetTickCount(); if ((time2- time1) > 450) return 0; else return 1; } • Sleep() • • RDTSC GetTickCount() •
  20. 20. mov eax, edx
  21. 21. • • • • • • r3 = Load(r2) tr3 = tr2
  22. 22. • • x = get_input(); if (x == "a") { uri = "c2.php"; msg = "a"; } send(uri, msg); x = get_input(); if (x > "a") { tmp = x + "a"; msg = tmp − x; } send(uri, msg); -early-cse, -constprop, -instcombine
  23. 23. • • • • •
  24. 24. • •
  25. 25. • • 999bc5e16312db6abff5f6c9e54c546f • b44634d90a9ff2ed8a9d0304c11bf612 • dd207384b31d118745ebc83203a4b04a • B44634d90a9ff2ed8a9d0304c11bf612 • 999bc5e16312db6abff5f6c9e54c546f • PEB.NumberOfProcessors •
  26. 26. • • eee1bdb8d4ad98cce0031ed6ca43274a • 84826d5e65987c131a80b1a3aa53ce17 • a2a7d4f75fc263648824facb0757a3c7 • • nop(0x90) 0x32, 0x26, 0xF3 •
  27. 27. • • • • •
  28. 28. • • • • • • • •
  29. 29. • • • • •
  30. 30. • • • • • • • • •

×