1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận án tiến sĩ Khoa học máy tính: Áp dụng kiểm tra mô hình và phân tích khái niệm hình thức để phân loại và phát hiện mã độc

139 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Cấu trúc

  • 1.1 Mó ẻc (12)
  • 1.2 Cỏc kˇ thu™t phõn tớch mó ẻc trong cụng nghiêp (13)
  • 1.3 Áp dˆng ki∫m tra mụ hỡnh ∫ phõn tớch mó ẻc (15)
  • 1.4 Sá cản thi∏t thác hiên ∑ tài (17)
  • 1.5 Câu h‰i nghiên c˘u (18)
  • 1.6 Mˆc tiêu nghiên c˘u (19)
  • 1.7 óng góp (20)
  • 1.8 Tảm quan trÂng cıa lu™n ỏn (21)
  • 1.9 GiÓi h§n cıa lu™n án (21)
  • 1.10 Còu trỳc lu™n ỏn (22)
  • 2.1 Mó ẻc (24)
    • 2.1.1 Phõn loĐi mó ẻc (26)
    • 2.1.2 Kˇ thu™t phõn tớch ẻng mó ẻc (27)
    • 2.1.3 Kˇ thu™t phõn tớch tổnh mó ẻc (29)
    • 2.1.4 Th£o lu™n (31)
  • 2.2 Ki∫m tra mô hình (32)
    • 2.2.1 Mô hình hoá (33)
    • 2.2.3 V òn ∑ bựng nÍ khụng gian trĐng thỏi (37)
    • 2.2.4 Th£o lu™n (38)
  • 2.3 Làm rËi mã (38)
    • 2.3.1 Các kˇ thu™t làm rËi mã (39)
    • 2.3.2 Cỏc kˇ thu™t làm rậi mó ˜ềc mó ẻc s˚ dˆng (41)
    • 2.3.3 Các kˇ thu™t gi£i rËi mã (42)
    • 2.3.4 Th£o lu™n (44)
  • 2.4 Gom cˆm d˙ liêu (44)
    • 2.4.1 Ph˜ẽng phỏp gom cˆm phõn hoĐch (45)
    • 2.4.2 Ph˜ẽng phỏp gom cˆm phõn còp (46)
    • 2.4.3 Th£o lu™n (47)
  • 3.1 Các nghiên c˘u liên quan (50)
    • 3.1.1 Xõy dáng CFG (50)
    • 3.1.2 Ph˜ẽng phỏp ki∫m tra thành phản (52)
  • 3.2 Cỏc ‡nh nghổa ban ảu (54)
  • 3.3 Ki∫m tra gia t´ng t¯ng phản trờn !-region (62)
  • 3.4 Xõy dáng t™p !-region (66)
  • 3.5 Tr¯u t˜Òng hoá !-region (68)
  • 3.6 Xõy dáng t™p !-instruction (69)
  • 3.7 Ví dˆ minh ho§ (71)
    • 3.7.1 H˜Óng ti∏p c™n ki∫m tra mô hình thông th˜Ìng (71)
    • 3.7.2 Ph˜ẽng phỏp ki∫m tra gia t´ng t¯ng phản (73)
  • 3.8 Thớ nghiêm (74)
    • 3.8.1 Môi tr˜Ìng (74)
    • 3.8.2 T ™p d˙ liêu (74)
    • 3.8.3 ẻ o (76)
    • 3.8.4 Cỏc ph˜ẽng phỏp ki∫m tra (76)
    • 3.8.5 K∏t quÊ thớ nghiêm (77)
  • 3.9 Th£o lu™n (82)
  • 4.1 Các nghiên c˘u liên quan (85)
  • 4.2 HOPE - khung th˘c x˚ l˛ các kˇ thu™t làm rËi mã (88)
  • 4.3 Tr¯u t˜Òng hoá hành vi ∫ gi£i rËi mã (90)
  • 4.4 Ch˘ng minh kh£ n´ng gi£i rËi mã (92)
  • 4.5 Thớ nghiêm (93)
  • 4.6 Th£o lu™n (94)
  • 5.1 Các nghiên c˘u liên quan (95)
    • 5.1.1 Phõn tớch khỏi niêm hỡnh th˘c và cỏc m rẻng (99)
    • 5.1.2 Phõn tớch khỏi niêm hỡnh th˘c h˜ểng ∞c tớnh (99)
    • 5.1.3 T Íng quỏt hoỏ lu™n l˛ cho phõn tớch khỏi niêm hỡnh th˘c (100)
  • 5.2 Cỏc ‡nh nghổa ban ảu (101)
    • 5.2.1 Phõn tớch khỏi niêm hỡnh th˘c (101)
    • 5.2.2 Phõn tớch khỏi niêm lu™n l˛ mó ẻc (104)
  • 5.3 Hê thậng hoỏ mó ẻc dáa vào V-LCA (109)
  • 5.4 Gom cˆm khỏi niêm liờn tˆc (109)
  • 5.5 Qu£n l˛ t™p c™n phÍ bi∏n (112)
    • 5.5.1 Khỏi niêm phÍ bi∏n (112)
    • 5.5.2 QuÊn l˛ c™p nh™t khỏi niêm phÍ bi∏n (113)
  • 5.6 Thớ nghiêm (114)
    • 5.6.1 Hiêu suòt cıa kˇ thu™t gom cˆm dáa trờn FCA (115)
    • 5.6.2 S˚ dˆng ẻ o AUP ∫ so sỏnh chòt l˜ềng gom cˆm (116)
    • 5.6.3 ỏnh giỏ hiêu suòt theo chòt l˜ềng cˆm (116)
  • 5.7 Th£o lu™n (117)
  • 6.1 Tóm t≠t và k∏t lu™n (118)
  • 6.2 H˜ểng m rẻng (119)
  • 1.1 Ch˙ k˛ virus Chernobyl (0)
  • 1.2 Còu trỳc nẻi dung lu™n ỏn (0)
  • 2.1 Bi∫u diπn ch˜ẽng trỡnh (0)
  • 2.2 Áp dˆng ki∫m tra mụ hỡnh ∫ phỏt hiên mó ẻc (0)
  • 2.3 Còu trỳc Kripke (0)
  • 2.4 Virus Avron (0)
  • 2.5 Ph˜ẽng phỏp gom cˆm phõn còp (0)
  • 3.1 Ph˜ẽng phỏp ki∫m tra thành phản (0)
  • 3.2 Cỏc b˜ểc thác hiên ki∫m tra thành phản (0)
  • 3.3 ASM, CFG và khụng gian trĐng thỏi cıa ch˜ẽng trỡnh (0)
  • 3.4 Quy t≠c thác thi (0)
  • 3.5 Nh˙ng lênh khụng ch˘a trong mđu nh™n diên mó ẻc (0)
  • 3.6 Ph˜ẽng phỏp ki∫m tra gia t´ng t¯ng phản (0)
  • 3.8 Không gian tr§ng thái ki∫m tra mô hình (0)
  • 3.9 Ch˜ẽng trỡnh r≥ nhỏnh ẽn giÊn và ph˘c tĐp (0)
  • 3.10 So sánh tÍng thÌi gian ch§y (0)
  • 3.11 So sỏnh bẻ nhể s˚ dˆng (0)
  • 3.12 So sỏnh sậ trĐng thỏi duyêt (0)
  • 4.1 S˚ dˆng công th˘c CTL ∫ ∞c t£ hành vi nguy h§i (0)
  • 4.2 Áp dˆng các kˇ thu™t làm rËi mã trên virus Avron (0)
  • 4.3 Hành vi nguy h§i (0)
  • 4.4 Hành vi vô h§i (0)
  • 4.5 Khung th˘c HOPE (0)
  • 4.6 Các b˜Óc tr¯u t˜Òng hoá hành vi (0)
  • 5.1 Cõy khỏi niêm cıa cỏc oĐn mó mụ tÊ trong BÊng (0)
  • 5.2 Giàn khỏi niêm mó ẻc ˜ềc tĐo ra bi ph˜ẽng phỏp FCA (0)
  • 5.3 Giàn khỏi niêm mó ẻc ˜ềc tĐo ra bi V-LCA (0)
  • 5.4 MarCHGen - khung th˘c hê thậng hoỏ mó ẻc (0)
  • 5.5 Cõy phõn còp tĐo bi OCC (0)
  • 5.6 Giàn khỏi niêm phÍ bi∏n (0)
  • 5.7 Xác ‡nh t™p phÍ bi∏n (0)
  • 5.8 Cõy phõn còp mó ẻc (0)
  • 5.9 Hiêu suòt cıa cỏc thu™t toỏn gom cˆm khỏi niêm (0)
  • 3.1 Danh sách !-instructions (0)
  • 3.2 T™p d˙ liêu thớ nghiêm (0)
  • 3.3 K∏t quÊ thớ nghiêm (0)
  • 4.1 Ngôn ng˙ tr¯u t˜Òng (0)
  • 4.2 K∏t quÊ thớ nghiêm (0)
  • 5.1 Các o§n mã bi∫u diπn hành vi nguy h§i (0)
  • 5.2 Mẻt sậ nhúm mó ẻc phÍ bi∏n (0)
  • 5.3 Ng˙ c£nh hình th˘c ˜Òc t§o ra t¯ các o§n mã trong B£ng 5.1 (0)
  • 5.4 Ng˙ cÊnh hỡnh th˘c lu™n l˛ mó ẻc cıa cỏc oĐn mó trong BÊng 5.1 (0)
  • 5.5 Kˇ thu™t tr¯u t˜ềng hoỏ mó ẻc (0)
  • 5.6 Tr¯u t˜ềng hoỏ mó ẻc cho cỏc khỏi niêm trong BÊng 5.3 (0)

Nội dung

TÓM TçT LUäN ÁN∫ kh≠c phˆc nh˜Òc i∫m cıa ph˜Ïng pháp phát hiªn mã Îc b¨ng cách so trùng ch˙k˛ trong công nghiªp, hiªn nay có các nghiên c˘u theo h˜Óng ti∏p c™n áp dˆng ki∫m tra môhình ∫

Mó ẻc

Phản m∑m nguy hĐi, hay cũn gÂi làmó ẻc, là nh˙ng phản m∑m cậ ˛thác hiên hành vi nguy hĐi cú chı ớch cıa ng˜èi l™p trỡnh phản m∑m [4] Tu˝theo mˆc ớch gõy hĐi và cẽ ch∏hoĐt ẻng,mó ẻc ˜ềc phõn loĐi thành cỏc nhúm bao gÁmadware,virus,trojan horses,worms,rootkits,spyware, ransomeware Ban ảu mó ẻc ˜ềc tĐo ra chứ vểi mˆc ớch nghiờn c˘u ho∞c phụ diπn khÊn´ng kˇ thu™t Vớ dˆ, chứ vểi mˆc ớch phụ diπn kˇthu™t, nhi∑u tỏc giÊ ó ganh ua ∫tĐo ra nhi∑u bi∏n th∫cıa sõu mỏy tớnh (worm) Netsky [2] Tuy nhiờn, ẻng lác ∫ tĐo ra mó ẻc ó thay Íi, mó ẻc hiên nay ˜ềc phỏt tri∫n vểi mˆc ớch em lĐi lềi nhu™n Và cÙng chớnh nhèlềi nhu™n mà nguÁn lác dành cho viêc phỏt tri∫n mó ẻc ngày càng trnờn dÁi dào, dđn ∏n viêc cỏc kˇthu™t tiờn ti∏n mà mó ẻc s˚ dˆng khụng ng¯ng ˜ềc ảu t˜ phỏt tri∫n.

Vỡ nh˙ng tỏc hĐi ròt lển gõy ra, mó ẻc thu hỳt ˜ềc sáchỳ ˛cıa cÊ giểi cụng nghiêp và giểi nghiờn c˘u vểi mˆc ớch tĐo ra cỏc cụng cˆ hẩtrề phỏt hiên và cụ l™p mó ẻc Trong cụng nghiêp, hai ph˜ẽng phỏp chớnh ˜ềc s˚dˆng ∫ phõn tớch mó ẻc là so trựng ch˙k˛và giỏm sỏt thác thi trong mụi tr˜èng giÊl™p Cỏc ph˜ẽng phỏp này ∑u cú˜u và nh˜ềc i∫m riờng nh˜ ˜ềc giểi thiêu trong Mˆc 1.2.

Trong cẻng Áng nghiờn c˘u, ph˜ẽng phỏp chớnh ˜ềc s˚dˆng là ph˜ẽng phỏp hỡnh th˘c vểi mˆc tiờu phỏt hiên ˜ềc cỏc hành vi nguy hĐi th™t sácıa mó ẻc mà khụng cản dựng ∏n ch˙ k˛ho∞c giỏm sỏt thác thi trong mụi tr˜èng giÊl™p Ph˜ẽng phỏp này tuy cú nhi∑u ˜u i∫m so vểi cỏc ph˜ẽng phỏp ˜ềc dựng trong cụng nghiêp, nú vđn tÁn tĐi mẻt sậhĐn ch∏ ∫ cú th∫ ỏp dˆng ˜ềc trong thác t∏ GiÊi quy∏t cỏc hĐn ch∏ này chớnh là mˆc tiờu cıa lu™n ỏn, ˜ềc trỡnh bày trong Mˆc 1.6.

Cỏc kˇ thu™t phõn tớch mó ẻc trong cụng nghiêp

∫ phỏt hiên ˜ềc sá hiên diên cıa mó ẻc, cỏc ch˜ẽng trỡnh chậng mó ẻc trong cụng nghiêp th˜èng s˚dˆng ch˙k˛ (signature) ˜ềc xỏc ‡nh t¯ tr˜ểc cho t¯ng mó ẻc ∫ ki∫m tra sátÁn tĐi cıa mó ẻc ú trong ch˜ẽng trỡnh mỏy tớnh [5] Ch˙ k˛ ˜ềc tĐo ra sau khi phõn tớch t¯ng mó ẻc cˆth∫ ∫ch˙ k˛chứ trựng vểi chớnh mó ẻc này khi thác hiên so trựng Sau ú, ch˙k˛ ˜ềc hóng cung còp phản m∑m c™p nh™t ∏n cẽ s d˙liêu cıa ng˜èi s˚dˆng ∫ ti∏n hành so trựng (quột) cỏc t™p tin trờn mỏy tớnh cıa h Hỡnh 1.1 là mẻt vớ dˆ cıa ch˙k˛ ˜ềc dựng ∫ phỏt hiên sá hiên diên cıa virus Chernobyl.

E800 0000 005B 8D4B 4251 50500F01 4C24 FE5B 83C3 1CFA 8B2BHình 1.1: Ch˙k˛virus Chernobyl.

M∞c dự viêc ki∫m tra băng cỏch so trựng cỏc ch˙ k˛cú ˜u i∫m là thèi gian thác thi ròt nhanh, ph˜ẽng phỏp này cú hai khuy∏t i∫m chớnh Th˘ nhòt, ch˙ k˛ ˜ềc tĐo ra t¯ quỏ trỡnh phõn tớch thıcụng, õy là cụng viêc tận thèi gian và cú tứ lê lẩi cao Ròt nhi∑u hóng bÊo m™t sau khi c™p nh™t cẽsd˙liêu ch˙ k˛ ó gõy ra nhảm lđn trong viêc nh™n diên cỏc phản m∑m thụng th˜èng nh˜ là mó ẻc [6, 7] Ngoài ra, sậ l˜ềng mó ẻc mểi ˜ềc phỏt tỏn hàng ngày là ròt lển, i∑u này dđn ∏n viêc ch™m trπ trong quỏ trỡnh phỏt hành ch˙ k˛cho cỏc mó ẻc mểi m∞c dự cỏc hóng bÊo m™t ó dành nh˙ng nguÁn lác khÍng lÁ ∫ làm viêc này.

Th˘hai, vỡ ch˙ k˛ ˜ềc tĐo ra t¯cỏc mó ẻc ó bi∏t, phản m∑m chậng mó ẻc khụng th∫ phỏt hiên nh˙ng mó ẻc ch˜a cú ch˙ k˛ ∞c biêt, ậi vểi cỏc mó ẻc ˜ềc thi∏t k∏ riờng cho nh˙ng mˆc tiờu cˆth∫ và khụng chı ớch phỏt tỏn rẻng trờn Internet, phản m∑m chậng mó ẻc s≥khụng phỏt hiên ˜ềc sáhiên diên cıa nh˙ng mó ẻc này, do ú khụng phỏt hành ch˙k˛ ∫ nh™n diên chỳng Ngoài ra tỏc giÊ cıa mó ẻc cú th∫ dπ dàng thay Íi hỡnh th˘c cıa mó nguÁn

∫ ch˙k˛ ˜ềc dựng ∫ nh™n diên chỳng khụng cũn phự hềp Trong thác t∏, ngay cÊ nh˙ng tỏc giÊ khụng am hi∫u sõu v∑ mó ẻc vđn cú th∫ s˚dˆng nh˙ng cụng cˆ làm rậi mó (obfuscation) nh˜ Loco [8] hay JHide [9] ∫ tĐo ra cỏc bi∏n th∫ cıa mó ẻc mà cỏc bi∏n th∫ này khụng th∫ ˜ềc phỏt hiên bi ch˙ k˛cıa mó ẻc ban ảu.

Ngoài ra, ậi vểi cỏc mó ẻc tiờn ti∏n hẽn nh˜virus a hỡnh, ph˜ẽng phỏp này g∞p ròt nhi∑u hĐn ch∏vỡ chıng virus a hỡnh cú th∫ tĐo ra cỏc bÊn sao gản nh˜hoàn toàn khỏc nhau mẩi lản chỳng nhõn bÊn thụng qua viêc s˚ dˆng mẻt cẽch∏ ẻt bi∏n ph˘c tĐp TĐi thèi i∫m này, cỏc phản m∑m chậng mó ẻc cụng nghiêp vđn x˚l˛ thành cụng mẻt sậloĐi virus a hỡnh nhè vào sá ẽn giÊn trong cẽ ch∏ ẻt bi∏n cıa virus, do ú ch˙ k˛vđn ˜ềc trớch xuòt thành cụng vểi i∑u kiên sậ l˜ềng bi∏n th∫ ˜ềc phõn tớch ı lển [10] Tuy nhiờn, viêc phõn tớch mẻt sậl˜ềng lển bi∏n th∫ ũi h‰i nhi∑u thèi gian và chi phớ, hẽn n˙a cẽ ch∏ ẻt bi∏n cıa virus ang ˜ềc phỏt tri∫n nhanh chúng ∫ trnờn ph˘c tĐp i∑u này làm cho viêc trớch xuòt ch˙ k˛ngày càng khú kh´n, th™m chớ là bòt khÊ thi.

Mẻt ph˜ẽng phỏp phõn tớch khỏc ˜ềc dựng trong cụng nghiêp là ti∏n hành thác thi ch˜ẽng trỡnh cản phõn tớch trong mụi tr˜èng giÊl™p ∫ theo dừi và phỏt hiên cỏc hành vi nguy hĐi cú th∫ cú [11] Ph˜ẽng phỏp này cú˜u i∫m là theo dừi ˜ềc mÂi hành vi mà ch˜ẽng trỡnh thác thi mẻt cỏch trác quan và chi ti∏t Tuy nhiờn, ậi vểi cỏc mó ẻc tiờn ti∏n, chỳng ˜ềc cài ∞t nh˙ng kˇthu™t ∫ xỏc ‡nh mụi tr˜èng thác thi cú phÊi là mụi tr˜èng giÊl™p hay khụng N∏u là mụi tr˜èng giÊ l™p, chỳng s≥khụng thác thi hành vi nguy hĐi Ngay cÊ ậi vểi cỏc mó ẻc khụng cú cẽ ch∏ nh™n diên mụi tr˜èng giÊl™p, ph˜ẽng phỏp này vđn tÁn tĐi hĐn ch∏ vỡ mẻt sậhành vi nguy hĐi chứ ˜ềc thác hiên tĐi mẻt thèi i∫m nào ú ho∞c trờn mẻt còu hỡnh hêthậng nào ú (mà mụi tr˜èng giÊ l™p khụng hiên thác ỳng).

M∞c dự cỏc kˇ thu™t phõn tớch mó ẻc trong cụng nghiêp ˜ềc ỏp dˆng rẻng rói vỡ lềi th∏ v∑ thèi gian phõn tớch và phỏt hiên ˜ềc cỏc mó ẻc phÍbi∏n, cỏc kˇthu™t này vđn tÁn tĐi nhi∑u hĐn ch∏ khi phõn tớch cỏc mó ẻc tiờn ti∏n ho∞c cỏc mó ẻc ˜ềc thi∏t k∏ cho mẻt mˆc tiờu cˆ th∫ i∑u này dđn ∏n nhu cảu v∑ nh˙ng ph˜ẽng phỏp phõn tớch mó ẻc tÍng quỏt hẽn, khụng phˆ thuẻc vào chıng loĐi mó ẻc.

Áp dˆng ki∫m tra mụ hỡnh ∫ phõn tớch mó ẻc

∫giÊi quy∏t cỏc vòn ∑tÁn tĐi cıa cỏc ph˜ẽng phỏp phỏt hiên mó ẻc trong cụng nghiêp,phõn tớch tổnh (static analysis) ó ˜ềc ∑ xuòt ∫phõn tớch ch˜ẽng trỡnh mà khụng cản so trựng ch˙ k˛ho∞c thác thi ch˜ẽng trỡnh Trong cẻng Áng nghiờn c˘u, mẻt cỏch ti∏p c™n ỏng chỳ˛gản õy là s˚dˆng ph˜ẽng phỏp hỡnh th˘c (Formal Methods) [12] ∫ phỏt hiên sá tÁn tĐi cıa hành vi nguy hĐi cú khÊ n´ng xÊy ra trong mẻt ch˜ẽng trỡnh Băng cỏch phõn tớch hành vi nguy hĐi, chỳng ta cú th∫phỏt hiên sátÁn tĐi cıa mẻt dũng mó ẻc mà khụng nhòt thi∏t phÊi cú ch˙k˛ cıa t¯ng bi∏n th∫cıa chỳng Trong cỏc h˜ểng ti∏p c™n phõn tớch tổnh,ki∫m tra mụ hỡnh (Model Checking) [13] ó ˜ềc ch˘ng minh là ròt phự hềp nhè vào viêc lu™n l˛ thèi gian (Temporal Logic) [14] mà nú s˚ dˆng cú khÊ n´ng linh hoĐt trong viêc bi∫u diπn ng˙ nghổa cıa hành vi ch˜ẽng trỡnh mỏy tớnh.

Mẻt cỏch tÍng quỏt, h˜ểng ti∏p c™n ki∫m tra mụ hỡnh ∫ phỏt hiên mó ẻc bao gÁm hai b˜ểc TĐi b˜ểc th˘nhòt, mẻt cụng cˆxõy dáng mụ hỡnh nh˜BE-PUM [15] ˜ềc s˚dˆng ∫tĐo ra mẻtmụ hỡnh tr¯u t˜ềng t¯ mó thác thi cıa ch˜ẽng trỡnh cản ki∫m tra Á th‡ luÁng thác thi (Control Flow Graph - CFG) th˜èng ˜ềc láa chÂn làm mụ hỡnh tr¯u t˜ềng b˜ểc này TĐi b˜Óc th˘ hai, CFG v¯a ˜Òc t§o ra ˜Òc ki∫m tra bi công cˆ ki∫m tra mô hình vÓi công th˘c lu™n l˛thÌi gian bi∫u diπn hành vi nguy h§i [16].

Lu™n l˛ cõy tớnh toỏn (Computation Tree Logic - CTL) cung còp mẻt n∑n tÊng v˙ng ch≠c ∫ cú th∫ mụ tÊcỏc hành vi cıa ch˜ẽng trỡnh, trờn cẽs ú CTPL ˜ềc ∑ xuòt bi Kindle [17] ∫

∞c tÊ hiêu quÊ hẽn hành vi ó ˜ềc làm rậi mó cıa mó ẻc Phỏt tri∫n theo h˜ểng nghiờn c˘u này, Song và Touili mrẻng CTPL thành SCTPL ∫ mụ tÊcỏc hành vi cıa mó ẻc liờn quan

∏n ng´n x∏p [18] Chỳng tụi s≥ thÊo lu™n chi ti∏t hẽn v∑h˜ểng ti∏p c™n này trong Ch˜ẽng 2.

H˜ểng ti∏p c™n ỏp dˆng ki∫m tra mụ hỡnh tuy giÊi quy∏t ˜ềc cỏc khuy∏t i∫m cıa ph˜ẽng phỏp so trựng ch˙ k˛, trong thác t∏, khụng gian trĐng thỏi - bi∫u diπn toàn bẻcỏc trĐng thỏi cú th∫cú cıa ch˜ẽng trỡnh - sinh ra trong quỏ trỡnh ki∫m tra cú th∫ ròt lển, dđn ∏n viêc cĐn kiêt nguÁn lác dành cho viêc ki∫m tra õy chớnh là vòn ∑bựng nÍ khụng gian trĐng thỏi [19] kinh i∫n cıa ph˜ẽng phỏp ki∫m tra mụ hỡnh. ậi vểi cỏc ch˜ẽng trỡnh trong thác t∏, ph˜ẽng phỏp ki∫m tra mụ hỡnh hảu nh˜ khụng th∫ ỏp dˆng ˜ềc vỡ vòn ∑ bựng nÍ khụng gian trĐng thỏi này Vớ dˆ, giÊ s˚ chỳng ta cú mẻt hê thËng có n ti∏n trình, mÈi ti∏n trình có m tr§ng thái Khi ó, tÍhÒp cıa các ti∏n trình này có th∫ tĐo ra m n trĐng thỏi Nh˜ v™y, n∏u khụng cú giÊi phỏp cho vòn ∑ này, quỏ trỡnh ki∫m tra mụ hỡnh ∫ phỏt hiên mó ẻc ũi h‰i ròt nhi∑u thèi gian và bẻnhể, th™m chớ là khụng khÊ thi cho nh˙ng ch˜ẽng trỡnh thác t∏.

Do ú, hiên ó cú nhi∑u nghiờn c˘u ∫ giÊi quy∏t vòn ∑ bựng nÍkhụng gian trĐng thỏi Cỏc nghiờn c˘u này hảu h∏t ti∏p c™n theo hai h˜ểng bao gÁm tậi˜u khụng gian trĐng thỏi ho∞c tậi ˜u mụ hỡnh ch˜ẽng trỡnh (program model).

H˜Óng nghiên c˘u tËi ˜u không gian tr§ng thái t™p trung vào các kˇthu™t áp dˆng trênmô hỡnh trĐng thỏi (state model) [19] Cú nhi∑u nghiờn c˘u theo h˜ểng này ˜ềc bi∏t ∏n rẻng rói nh˜:Symbolic Model Checking (SMC) trênBinary Decision Diagrams (BDDs),Bounded Model Checking (BMC),Partial Order Reduction

H˜ểng nghiờn c˘u tậi˜u mụ hỡnh ch˜ẽng trỡnh (program model) [20] t™p trung vào cỏc kˇ thu™t thu giÊm ẻph˘c tĐp cıa mụ hỡnh ch˜ẽng trỡnh cản ki∫m tra Cỏc nghiờn c˘u theo h˜ểng này hảu h∏t ti∏p c™n theo h˜ểngtr¯u t˜ềng hoỏ (abstraction) vàphõn ró (decomposition) hay cũn ˜ềc gÂi là ki∫m tra thành phản (compositional verification) Vểi kˇthu™t tr¯u t˜ềng hoỏ, ch˜ẽng trỡnh cản ki∫m tra s≥ ˜ềc tr¯u t˜ềng hoỏ ∫thu ˜ềc mẻt ch˜ẽng trỡnh ẽn giÊn hẽn mà vđn gi˙ ˜ềc cỏc tớnh chòt liờn quan ∏n thuẻc tớnh cản ki∫m tra.

Vểi kˇthu™t ki∫m tra thành phản [21], ch˜ẽng trỡnh cản ki∫m tra ˜ềc phõn ró thành cỏc ch˜ẽng trỡnh con Quỏ trỡnh ki∫m tra ˜ềc thác hiên tr˜ểc tiờn trờn cỏc ch˜ẽng trỡnh con này.

Sau khi quỏ trỡnh ki∫m tra cỏc ch˜ẽng trỡnh con hoàn tòt, kˇthu™t tr¯u t˜ềng hoỏ s≥ ˜ềc ỏp dˆng ∫thu giÊm kớch th˜ểc cıa nh˙ng ch˜ẽng trỡnh con tr˜ểc khi k∏t nậi chỳng lĐi thành mẻt ch˜ẽng trỡnh tÍng hềp theo còu trỳc cıa ch˜ẽng trỡnh ban ảu Sau ú, ch˜ẽng trỡnh tÍng hềp - vểi kớch th˜ểc nh‰ hẽn so vểi ch˜ẽng trỡnh ban ảu nhè vào quỏ trỡnh tr¯u t˜ềng hoỏ - ˜ềc ki∫m tra mẻt lản n˙a nhăm khỉng ‡nh xem ch˜ẽng trỡnh cú thoÊmón thuẻc tớnh cản ˜ềc ki∫m tra hay không.

M∞c dự cỏc ph˜ẽng phỏp giỳp giÊi quy∏t vòn ∑bựng nÍkhụng gian trĐng thỏi ó Đt ˜ềc mẻt sậ k∏t quÊ nhòt ‡nh, hiên khụng cú mẻt nghiờn c˘u nào t™p trung vào bài toỏn phõn tớch mó ẻc Qua quỏ trỡnh phõn tớch nhi∑u loĐi mó ẻc trong thác t∏, chỳng tụi nh™n thòy nh˙ng hành vi nguy hĐi cú nh˙ng ∞c i∫m riờng giỳp viêc ỏp dˆng cỏc kˇthu™t cıa h˜ểng nghiờn c˘u tậi ˜u mụ hỡnh ch˜ẽng trỡnh phỏt huy ˜ềc hiêu quÊ, t¯ ú giÊi quy∏t ˜ềc vòn ∑bựng nÍ không gian tr§ng thái cıa ki∫m tra mô hình.

Sá cản thi∏t thác hiên ∑ tài

Nhu cảu v∑viêc phỏt hiên mó ẻc là ròt lển tuy nhiờn cỏc ph˜ẽng phỏp trong cụng nghiêp hoàn toàn thòt bĐi cho cỏc mó ẻc mểi ho∞c cỏc mó ẻc ˜ềc thi∏t k∏riờng biêt, vỡ chỳng ch˜a ˜ềc phõn tớch ∫tĐo ra ch˙k˛ho∞c cỏc hóng bÊo m™t khụng nh™n thòy sáhiên diên cıa chỳng Vòn

∑ này tĐo ra mẻt lẩhÍng trong viêc bÊo m™t hê thậng, ∞c biêt là ậi vểi cỏc mˆc tiờu cú giỏ tr‡cao.

Ph˜ẽng phỏp ki∫m tra mụ hỡnh, ˜ềc phỏt tri∫n vểi chı ớch lòp ảy lẩ hÍng này, lĐi khụng ỏp dˆng ˜ềc cho cỏc ch˜ẽng trỡnh mỏy tớnh thụng th˜èng vỡ vòn ∑bựng nÍkhụng gian trĐng thỏi ó cú nhi∑u nghiờn c˘u v∑viêc giÊi quy∏t cỏc vòn ∑ cũn tÁn tĐi, tuy nhiờn cỏc k∏t quÊ Đt ˜ềc vđn cũn hĐn ch∏ ∫cú th∫ ỏp dˆng trong thác t∏ i∑u này dđn ∏n sá cản thi∏t phÊi cú mẻt ph˜ẽng phỏp ∫ phõn tớch mó ẻc vểi thèi gian chĐy chòp nh™n ˜ềc và ẻ tin c™y cao. ẻ chớnh xỏc cıa k∏t quÊ ki∫m tra cÙng là mẻt y∏u tậthen chật, vỡ nh˜ ó giểi thiêu, mó ẻc liờn tˆc phỏt tri∫n cỏc kˇthu™t ∫ ân mỡnh Cỏc ph˜ẽng phỏp ki∫m tra trong cụng nghiêp chứcho k∏t quÊ chớnh xỏc vểi cỏc mó ẻc ó ˜ềc phõn tớch và c™p nh™t ch˙k˛ K∏t quÊ ki∫m tra cú ẻtin c™y thòp ậi vểi cỏc mó ẻc mểi, cỏc virus a hỡnh ph˘c tĐp

H˜ểng ti∏p c™n ki∫m tra mụ hỡnh cho k∏t quÊchớnh xỏc hẽn ph˜ẽng phỏp so trựng ch˙ k˛, tuy nhiờn ngoài vòn ∑ bựng nÍ khụng gian trĐng thỏi, viêc mó ẻc ỏp dˆng cỏc kˇthu™t làm rậi mó dđn ∏n quỏ trỡnh xõy dáng CFG b‡sai lêch và k∏t quÊlà CFG khụng bi∫u diπn ˜ềc hành vi nguy hĐi th™t sácıa mó ẻc Ngoài ra, ngay cÊkhi xõy dáng ˜ềc CFG hoàn chứnh, cỏc kˇ thu™t làm rậi mó ˜ềc mó ẻc ỏp dˆng cÙng cú th∫ làm cho oĐn mó thác hiên hành vi nguy h§i không còn phù hÒp vÓi công th˘c lu™n l˛thÌi gian ∞c t£hành vi này.

Nh˜ ó trỡnh bày trong mˆc 1.3, hiên cỏc nghiờn c˘u ∫ x˚l˛cỏc kˇthu™t làm rậi mó ∑u chứgiÊi quy∏t ˜ềc mẻt kˇthu™t làm rậi mó cˆ th∫ nào ú Hẽn n˙a, h˜ểng ti∏p c™n cÊi ti∏n lu™n l˛thèi gian ∫ giÊi rậi mó (deobfuscation) cũn cú mẻt hĐn ch∏ là phÊi thay Íi cụng cˆ ki∫m tra mô hình cho phù hÒp vÓi lu™n l˛ ˜Òc c£i ti∏n.

Cỏc hĐn ch∏này cıng cậ thờm viêc cản thi∏t phÊi phỏt tri∫n mẻt ph˜ẽng phỏp x˚l˛mẻt cỏch tÍng quỏt cỏc kˇthu™t làm rậi mó Ph˜ẽng phỏp này phÊi dπdàng c™p nh™t ˜ềc cỏc kˇ thu™t làm rậi mó mểi mà khụng cản thay Íi cụng cˆki∫m tra mụ hỡnh.

Ngoài ra, vểi sậ l˜ềng khÍng lÁ mó ẻc ˜ềc phỏt tri∫n mểi mẩi ngày, ∞c biêt là nh˙ng hành vi nguy hĐi cıa cỏc loĐi mó ẻc mểi th˜èng ˜ềc k∏ th¯a và phỏt tri∫n dáa trờn nh˙ng mó ẻc ó bi∏t, dđn ∏n nhu cảu cản thi∏t phÊi cú mẻt ph˜ẽng phỏp ∫ phõn loĐi mó ẻc Tuy nhiờn viêc phõn loĐi mó ẻc khụng phÊi là ẽn giÊn vỡ vểi h˜ểng ti∏p c™n ki∫m tra mụ hỡnh, hành vi nguy hĐi cıa mó ẻc ˜ềc bi∫u diπn bi cỏc cụng th˘c lu™n l˛ thèi gian Do ú cỏc h˜ểng ti∏p c™n khai phỏ d˙liêu thụng th˜èng dáa trờn trớch xuòt ∞c tớnh s≥ khú ỏp dˆng ˜ềc.

Trong quỏ trỡnh tỡm hi∫u, chỳng tụi nh™n thòy răng hiên ch˜a cú nghiờn c˘u nào t™p trung giÊi quy∏t bài toỏn phõn loĐi mó ẻc, ∞c biêt là trong bậi cÊnh hành vi nguy hĐi cıa mó ẻc ˜ềc

∞c tÊbăng cụng th˘c lu™n l˛thèi gian õy chớnh là ẻng lác cho ∑xuòt hêthậng hoỏ mó ẻc cıa chúng tôi trong lu™n án.

Câu h‰i nghiên c˘u

Nh˜ ó trỡnh bày tĐi Mˆc 1.4, viêc phõn tớch mó ẻc là mẻt nhu cảu còp thi∏t trong thác t∏ Cỏc h˜ểng ti∏p c™n hiên nay ∫ phõn tớch mó ẻc ∑u tÁn tĐi nhi∑u hĐn ch∏ ∫giÊi quy∏t nh˙ng hĐn ch∏ này, cỏc cõu h‰i nghiờn c˘u sau cản ˜ềc phõn tớch và giÊi ỏp.

[RQ1] Mẻt cỏch trác quan ta thòy mó ẻc ròt khỏc biêt vểi ch˜ẽng trỡnh mỏy tớnh thụng th˜èng, v™y làm sao khai thỏc nh˙ng ∞c tớnh khỏc biêt này ∫ giÊi quy∏t vòn ∑ bựng nÍ khụng gian tr§ng thái?

[RQ2] CÊi ti∏n lu™n l˛thèi gian chứ giỳp giÊi quy∏t mẻt sậ kˇthu™t làm rậi mó và ũi h‰i phÊi thay Íi cụng cˆ ki∫m tra mụ hỡnh, làm sao ∫ giÊi quy∏t mẻt cỏch hỡnh th˘c vòn ∑ làm rậi mó mà khụng cản c™p nh™t cụng cˆ ki∫m tra mụ hỡnh?

[RQ3] Vểi h˜ểng ti∏p c™n ỏp dˆng ki∫m tra mụ hỡnh ∫ phõn tớch mó ẻc, hành vi nguy hĐi cıa mó ẻc ó ˜ềc ∞c tÊ hỡnh th˘c, v™y làm sao dáa vào ∞c tÊ hỡnh th˘c ∫hê thậng hoỏ mó ẻc?

Mˆc tiêu nghiên c˘u

M∞c dự h˜ểng ti∏p c™n ki∫m tra mụ hỡnh là mẻt h˜ểng i khÊquan cho nhu cảu phỏt hiên mó ẻc, h˜ểng ti∏p c™n này vđn g∞p nh˙ng trngĐi c´n bÊn là vòn ∑bựng nÍkhụng gian trĐng thỏi và vòn ∑ làm rậi mó cıa mó ẻc ∫ cú th∫ ỏp dˆng ˜ềc ph˜ẽng phỏp ki∫m tra mụ hỡnh vào viêc phỏt hiên mó ẻc trong thác t∏, lu™n ỏn t™p trung nghiờn c˘u giÊi quy∏t hai tr ngĐi này.

Ngoài ra nh™n thòy vòn ∑ bựng nÍ v∑ sậ l˜ềng mó ẻc và hành vi nguy hĐi cıa mó ẻc ˜ềc ∞c tÊbi cỏc cụng th˘c lu™n l˛ thèi gian, lu™n ỏn cÙng t™p trung nghiờn c˘u giÊi phỏp hê thậng hoỏ mó ẻc dáa vào cỏc cụng th˘c lu™n l˛thèi gian, hay núi cỏch khỏc là hê thậng hoỏ cỏc cụng th˘c lu™n l˛mó ẻc Cỏc mˆc tiờu nghiờn c˘u chớnh cıa lu™n ỏn ˜ềc liêt kờ nh˜ sau.

[OB1] ∑xuòt ph˜ẽng phỏp giÊi quy∏t vòn ∑ bựng nÍkhụng gian trĐng thỏi cˆ th∫cho bài toỏn ỏp dˆng ki∫m tra mụ hỡnh phỏt hiên mó ẻc Mˆc tiờu nghiờn c˘u này trÊlèi cõu h‰i nghiờn c˘u [RQ1].

[OB2] ∑xuòt ph˜ẽng phỏp hỡnh th˘c x˚l˛ vòn ∑làm rậi mó mà khụng cản c™p nh™t cụng cˆki∫m tra mô hình Mˆc tiêu nghiên c˘u này tr£ lÌi câu h‰i nghiên c˘u [RQ2].

[OB3] ∑ xuòt mẻt ph˜ẽng phỏp hêthậng hoỏ cỏc cụng th˘c lu™n l˛ mó ẻc Mˆc tiờu nghiờn c˘u này tr£ lÌi câu h‰i nghiên c˘u [RQ3].

óng góp

Lu™n ỏn ó giÊi quy∏t ˜ềc vòn ∑ bựng nÍ khụng gian trĐng thỏi băng cỏch phõn ró ch˜ẽng trỡnh cản ki∫m tra thành cỏc ch˜ẽng trỡnh con dáa vào mẻt ∑xuòt gÂi là !-region Viêc phõn ró ch˜ẽng trỡnh cản ki∫m tra giỳp giÊm ỏng k∫ ẻ ph˘c tĐp cıa mụ hỡnh ch˜ẽng trỡnh, t¯ ú trỏnh ˜ềc vòn ∑ bựng nÍkhụng gian trĐng thỏi.

∫ hêthậng hoỏ mó ẻc, băng cỏch k∏t hềpphõn tớch khỏi niêm hỡnh th˘c (Formal Concept Analysis) vểilu™n l˛ thèi gian (Temporal Logic), lu™n ỏn ∑ xuòt ˜ềc mẻt ph˜ẽng phỏp gÂi là phõn tớch khỏi niêm lu™n l˛ mó ẻc (Viral Logical Concept Analysis) ∫ n≠m b≠t cỏc hành vi nguy hĐi cıa mó ẻc và xõy dáng giàn khỏi niêm mó ẻc (viral concept lattice) Ngoài ra lu™n ỏn cũn ∑ xuòt mẻt kˇ thu™t gÂi là gom cˆm khỏi niêm liờn tˆc (On-the-fly Conceptual Clustering) ∫ xõy dáng cõy phõn còp khỏi niêm mó ẻc (malware concept hierarchy).

Các óng góp cıa lu™n án bao gÁm.

• Lu™n ỏn ˜a ra mẻt khỏi niêm mểi gÂi là!-region, vểi ∞c tớnh là oĐn mó thác hiên hành vi nguy hĐi cıa mó ẻc ˜ềc ch˘a trÂn trong mẻt !-region T¯ ú, lu™n ỏn giÊi quy∏t ˜ềc vòn ∑ bựng nÍ khụng gian trĐng thỏi băng ∑ xuòtph˜ẽng phỏp ki∫m tra gia t´ng t¯ng phản.

Ph˜ẽng phỏp này giỳp phõn ró ch˜ẽng trỡnh cản ki∫m tra thành cỏc!-region và tuản tá ti∏n hành ki∫m tra chúng Công trình liên quan ∏n óng góp này là [CT3].

• !-region ˜ềc xõy dáng t¯t™p lênh ˜ềc gÂi là !-instruction - mẻt khỏi niêm mểi do lu™n ỏn

∑xuòt và lu™n ỏn ó s˚dˆng cỏch ti∏p c™n thậng kờ ∫ xỏc ‡nh ˜ềc cỏc !-instruction này.

Ngoài ra, lu™n ỏn ∑ xuòt mẻt ph˜ẽng phỏp tr¯u t˜ềng hoỏ, giỳp thu giÊmmụ hỡnh ch˜ẽng trình (program model) nh˜ng v®n gi˙l§i ˜Òc các giá tr‡ cıa bi∏n môi tr˜Ìng, t¯ ó £m b£o ˜Òc k∏t qu£ ki∫m tra chính xác Công trình liên quan ∏n óng góp này là [CT3], [CT8].

• Lu™n ỏn giÊi quy∏t ˜ềc vòn ∑ làm rậi mó băng mẻt ngụn ng˙tr¯u t˜ềng, giỳp loĐi b‰ hảu h∏t các kˇ thu™t làm rËi mã phÍbi∏n Công trình liên quan ∏n óng góp này là [CT4], [CT6], [CT7].

• Lu™n ỏn ∑ xuòt khung th˘c giÊi rậi mó (deobfuscation) vểi b˜ểc giÊi rậi và b˜ểc ki∫m tra mụ hỡnh ˜ềc tỏch biêt, giỳp trỏnh viêc c™p nh™t cụng cˆ ki∫m tra mụ hỡnh khi x˚l˛cỏc kˇ thu™t làm rËi mÓi Công trình liên quan ∏n óng góp này là [CT2], [CT4], [CT6].

• Lu™n ỏn giÊi quy∏t ˜ềc nhu cảu hê thậng hoỏ cỏc cụng th˘c lu™n l˛mó ẻc băng ph˜ẽng phỏpphõn tớch khỏi niêm lu™n l˛ mó ẻc ∫ thác hiên viêc tÍng quỏt hoỏ cỏc cụng th˘c lu™n l˛mó ẻc trong quỏ trỡnh xõy dáng giàn khỏi niêm mó ẻc, lu™n ỏn ó ∑ xuòtph˜ẽng phỏp tr¯u t˜ềng hoỏ mó ẻc Ngoài ra, lu™n ỏn cũn ∑xuòtkˇthu™t quÊn l˛ c™p nh™t khỏi niêm phÍ bi∏n giỳp giÊm chi phớ xõy dáng giàn khỏi niêm mó ẻc và gom cˆm khỏi niêm mó ẻc mẩi khi c™p nh™t mó ẻc mểi, ho∞c loĐi b‰mó ẻc ó cÙ Cụng trỡnh liờn quan ∏n úng gúp này là [CT1], [CT5].

• Cuậi cựng, lu™n ỏn ∑ xuòt ph˜ẽng phỏp gom cˆm khỏi niêm liờn tˆc vểi chi∏n l˜ềc on-the-fly

∫trỏnh viêc tớnh toỏn tòt cÊ cỏc khỏi niêm hỡnh th˘c cựng lỳc trong quỏ trỡnh thác hiên gom cˆm; và lu™n ỏn ∑xuòt mẻt phộp toỏn k∏t hềp ậi t˜ềng dáa trờn lu™n l˛ ∫ k∏t hềp cỏc ậi t˜ềng t˜ẽng tá v∑ lu™n l˛vào mẻt cˆm mểi Cụng trỡnh liờn quan ∏n úng gúp này là [CT1].

Tảm quan trÂng cıa lu™n ỏn

Nghiờn c˘u trong lu™n ỏn cú tảm quan trÂng cao vỡ nghiờn c˘u này giÊi quy∏t ˜ềc vòn ∑bựng nÍ khụng gian trĐng thỏi kinh i∫n cıa ki∫m tra mụ hỡnh, ∞c biêt là cho bài toỏn phõn tớch mó ẻc - vòn ∑ ˜ềc quan tõm ròt lển trong cẻng Áng nghiờn c˘u cÙng nh˜ trong cụng nghiêp.

Lu™n ỏn cũn giỳp giÊi quy∏t mẻt trong nh˙ng trngĐi chớnh trong quỏ trỡnh phõn tớch mó ẻc,ú là vòn ∑ làm rậi mó úng gúp cuậi cựng cıa lu™n ỏn vểi tảm quan trÂng khụng kộm là hê thậng hoỏ sậ l˜ềng mó ẻc ròt lển trong bậi cÊnh mó ẻc ˜ềc ∞c tÊ băng cỏc cụng th˘c lu™n l˛, vỡ vểi ∞c tớnh này cỏc ph˜ẽng phỏp khai phỏ d˙ liêu thụng th˜èng g∞p ròt nhi∑u khú kh´n.

GiÓi h§n cıa lu™n án

• Lu™n ỏn chứgiÊi quy∏t vòn ∑ bựng nÍ khụng gian trĐng thỏi cho bài toỏn ỏp dˆng ki∫m tra mụ hỡnh phỏt hiên mó ẻc ậi vểi cỏc lểp bài toỏn khỏc mà viêc ki∫m tra ˜ềc thác hiên trờn cỏc hành vi thụng th˜èng (là nh˙ng hành vi mà oĐn mó cıa chỳng vđn ch˘a cỏc lênh

∞c biêt !-instruction mà mó ẻc khụng s˚dˆng), ph˜ẽng phỏp ki∫m tra gia t´ng t¯ng phản do lu™n ỏn ∑xuòt g∞p hĐn ch∏trong viêc phõn ró ch˜ẽng trỡnh cản ki∫m tra.

• Sậl˜ềng cỏc phộp tr¯u t˜ềng hoỏ mó ẻc ˜ềc dựng trong ph˜ẽng phỏp phõn tớch khỏi niêm lu™n l˛ mó ẻc vđn cũn hĐn ch∏, cú nhi∑u tr˜èng hềp khụng tÍng quỏt hoỏ ˜ềc cụng th˘c mó ẻc dáa vào nh˙ng phộp tr¯u t˜ềng hoỏ ˜ềc ∑ xuòt HĐn ch∏ này dđn ∏n viêc giểi hĐn sậ l˜ềng cỏc khỏi niêm lu™n l˛ ˜ềc tÍng quỏt hoỏ Khi gia t´ng sậl˜ềng cỏc phộp tr¯u t˜ềng hoỏ mó ẻc, ta cú th∫ tÍng quỏt hoỏ ˜ềc nhi∑u cụng th˘c mó ẻc hẽn t¯ ú tĐo ra ˜ềc nhi∑u khỏi niêm lu™n l˛ trờn giàn khỏi niêm mó ẻc, giỳp phõn nhúm mó ẻc và th∫ hiên quan hêphõn còp gi˙a cỏc nhúm mó ẻc mẻt cỏch ảy ı.

Còu trỳc lu™n ỏn

Trong Ch˜ẽng 1, ẻng lác và mˆc tiờu cıa nghiờn c˘u này ó ˜ềc trỡnh bày Chỳng tụi cÙng liêt kờ nh˙ng úng gúp mà lu™n ỏn Đt ˜ềc vểi còu trỳc nh˜ trong Hỡnh 1.2 Nẻi dung ti∏p theo cıa lu™n án ˜Òc tÍch˘c nh˜ sau.

Hạn chế của các phương pháp công nghiệp Phương pháp kiểm tra mô hình phát hiện mã độc

Bùng nổ không gian trạng thái

Kỹ thuật làm rối mã

Hệ thống hoá công thức luận lý mã độc

Phương pháp kiểm tra gia tăng từng phần

Khung thức xử lý kỹ thuật làm rối mã

Phân tích khái niệm luận lý mã độc

Gom cụm khái niệm liên tục Đặc tả hành vi nguy hại bằng công thức luận lý

Hỡnh 1.2: Còu trỳc nẻi dung lu™n ỏn.

Ch˜ẽng 2 trỡnh bày cỏc ki∏n th˘c n∑n tÊng cıa lu™n ỏn Cỏc ki∏n th˘c n∑n tÊng này bao gÁm mó ẻc, ki∫m tra mụ hỡnh, làm rậi mó và gom cˆm d˙ liêu.

Ch˜ẽng 3 trỡnh bày mẻt ∑ xuòt cıa lu™n ỏn ∫giÊi quy∏t vòn ∑ bựng nÍkhụng gian trĐng thỏi, ú là ph˜ẽng phỏpki∫m tra gia t´ng t¯ng phản K∏t quÊ thớ nghiêm cıa ph˜ẽng phỏp này cÙng ˜ềc thÊo lu™n ∫ch˘ng minh khÊn´ng ỏp dˆng trong thác t∏.

Trong Ch˜ẽng 4, lu™n ỏn ∑ xuòt mẻt ngụn ng˙tr¯u t˜ềng và ỏp dˆng suy diπn tr¯u t˜ềng

∫ loĐi b‰cỏc kˇthu™t làm rậi mó ˜ềc s˚dˆng trong mó ẻc.

Ch˜ẽng 5 thÊo lu™n v∑ ∑xuòt hê thậng hoỏ mó ẻc băng ph˜ẽng phỏp phõn tớch khỏi niêm lu™n l˛ mó ẻc Ngoài ra, Ch˜ẽng này cũn trỡnh bày mẻt kˇthu™t ∫ xõy dáng cõy phõn còp khỏi niêm mó ẻc gÂi làgom cˆm khỏi niêm liờn tˆc.

Cuậi cựng, Ch˜ẽng 6 túm t≠t toàn bẻlu™n ỏn và ∑ xuòt cỏc h˜ểng nghiờn c˘u trong t˜ẽng lai.

CH◊ÃNG 2 NóN TÉNG VÀ CÁC NGHIÊN CŸU LIÊN QUAN

Vểi ba nẻi dung nghiờn c˘u cıa lu™n ỏn, trong Ch˜ẽng này, chỳng tụi trỡnh bày cỏc ki∏n th˘c n∑n tÊng và cỏc nghiờn c˘u liờn quan ∏n mó ẻc, ph˜ẽng phỏp ki∫m tra mụ hỡnh, vòn ∑làm rậi mó và cỏc kˇthu™t gom cˆm d˙liêu.

Tr˜ểc tiờn lu™n ỏn giểi thiêu v∑mó ẻc, phõn loĐi mó ẻc và cỏc kˇ thu™t phõn tớch mó ẻc.

Sau ú, n∑n tÊng cıa ph˜ẽng phỏp ki∫m tra mụ hỡnh ˜ềc trỡnh bày cựng vểi vòn ∑ bựng nÍ khụng gian trĐng thỏi, õy cÙng chớnh là mẻt trong nh˙ng nẻi dung nghiờn c˘u chớnh cıa lu™n án.

Vểi nẻi dung nghiờn c˘u x˚l˛vòn ∑ làm rậi mó (obfuscation), lu™n ỏn trỡnh bày vòn ∑ làm rậi mó và cỏc h˜ểng giÊi quy∏t hiên nay trong Mˆc 2.3 Ngoài cỏc kˇthu™t làm rậi mó ˜ềc s˚dˆng trong cỏc phản m∑m thụng th˜èng, Mˆc 2.3.2 trỡnh bày cỏc kˇthu™t làm rậi mó th˜èng chứ ˜ềc mó ẻc s˚dˆng Chỳng tụi cÙng thÊo lu™n v∑ cỏc hĐn ch∏cıa cỏc ph˜ẽng phỏpgiÊi rậi mó (deobfuscation) hiên nay và õy là cẽ s ∫lu™n ỏn ∑ xuòt ph˜ẽng phỏp giÊi rậi mó, ˜ềc trỡnh bày trong Ch˜ẽng 4.

Chỳng tụi cÙng trỡnh bày cỏc h˜ểng nghiờn c˘u v∑ gom cˆm d˙ liêu tĐi Mˆc 2.4, t¯ ú thÊo lu™n v∑ h˜ểng ti∏p c™n khÊquan ∫ thác hiên hê thậng hoỏ cỏc cụng th˘c mó ẻc Trong Mˆc 2.4, chỳng tụi giểi thiêu v∑ph˜ẽng phỏpphõn tớch khỏi niêm hỡnh th˘c (Formal Concept Analysis) [22], õy là n∑n tÊng ∫ lu™n ỏn ∑ xuòt ph˜ẽng phỏp phõn tớch khỏi niêm lu™n l˛ mó ẻc (Viral Logical Concept Analysis) giỳp xõy dáng ˜ềc giàn khỏi niêm mó ẻc.

Mó ẻc

Phõn loĐi mó ẻc

Mó ẻc ˜ềc phõn loĐi dáa trờn cẽ ch∏ lõy nhiπm và mˆc tiờu gõy hĐi cıa chỳng [11] Mẻt mó ẻc cú th∫ cú nhi∑u cẽ ch∏ lõy nhiπm và thác hiên nhi∑u hành vi nguy hĐi khỏc nhau, do ú chỳng cú th∫ thuẻc v∑ nhi∑u nhúm khỏc nhau Cú cỏc loĐi mó ẻc phÍbi∏n nh˜sau.

• Virus: virus là mẻt loĐi mó ẻc tág≠n oĐn mó cıa chỳng vào mẻt ch˜ẽng trỡnh khỏc, k∫cÊ cỏc ch˜ẽng trỡnh cıa hê i∑u hành Virus khụng th∫chĐy ẻc l™p, chỳng phÊi ˜ềc g≠n vào mẻt ch˜ẽng trỡnh hoàn chứnh và ˜ềc kớch hoĐt khi thác thi ch˜ẽng trỡnh này [26] Virus ˜ềc phỏt tỏn băng cỏch lõy nhiπm vào tòt cÊt™p tin mà chỳng cú th∫ tỡm thòy, bao gÁm cỏc t™p tin cˆc bẻ trờn mỏy tớnh nhiπm virus và cÊcỏc t™p tin cıa cỏc mỏy tớnh khỏc trờn hê thậng mĐng mà mỏy tớnh nhiπm virus này cú quy∑n truy c™p - viêc này làm cho virus cú th∫nhanh chóng lây lan.

• Worm - sõu mỏy tớnh (worm) là mẻt ch˜ẽng trỡnh nguy hĐi cú th∫chĐy ẻc l™p và cú th∫tĐo ra bÊn sao cıa chớnh nú trờn cỏc mỏy tớnh khỏc trờn mụi tr˜èng mĐng [26] Cẽch∏ lõy nhiπm này là hành vi ∞c tr˜ng cıa worm Ngoài ra, vỡ là mẻt ch˜ẽng trỡnh ẻc l™p, sõu mỏy tớnh cú th∫ lềi dˆng lẩ hÍng bÊo m™t cıa mỏy tớnh b‡lõy nhiπm ∫ tá kớch hoĐt mà khụng cản phˆ thuẻc vào viêc ng˜èi dựng thác thi ch˜ẽng trỡnh b‡lõy nhiπm nh˜virus.

• Trojan Horse: trojan horse là phản m∑m ngu trang nh˜là mẻt ch˜ẽng trỡnh mỏy tớnh thụng th˜èng, nh˜ng thác t∏ chỳng thác hiên cỏc hành vi nguy hĐi Sau khi ˜ềc kớch hoĐt, tớnh n´ng nguy hĐi cıa trojan s≥ ˜ềc phỏt tỏc ho∞c chỳng s≥tÊi thờm cỏc mó ẻc trờn Internet và lõy nhiπm sang cỏc t™p tin khỏc trờn hê thậng.

• Ransomware: ransomeware là mó ẻc thác hiên hành vi tậng ti∑n nĐn nhõn băng cỏch mó hoỏ cỏc thụng tin cú giỏ tr‡ trờn mỏy tớnh (và yờu cảu thanh toỏn ∫nh™n ˜ềc khoỏ giÊi mó) ho∞c e do§ công bË nh˙ng thông tin nh§y c£m mà chúng thu th™p ˜Òc Ransomeware th˜Ìng ˜ềc lõy nhiπm d˜ểi dĐng trojan và ˜ềc kớch hoĐt khi ng˜èi s˚ dˆng thác thi ch˜ẽng trỡnh trojan Tuy nhiên, nh˙ng lo§i ransomeware ti∏n ti∏n nh˜WannaCry [27] có th∫khai thác lÈ hÍng cıa hê thậng ∫ tá lõy nhiπm và kớch hoĐt mà khụng cản tỏc ẻng cıa ng˜èi dựng.

• Spyware: spyware là mó ẻc ˜ềc thi∏t k∏ ∫ ỏnh c≠p thụng tin trờn mỏy tớnh nĐn nhõn và g˚i v∑cho ng˜èi tòn cụng Thụng tin ˜ềc ỏnh c≠p th˜èng cú dung l˜ềng thòp nh˜ng giỏ tr‡ cao nh˜ thụng tin tài khoÊn, cỏc t™p tin tài liêu, email

• Bot: bot là loĐi mó ẻc cho phộp tỏc giÊ cıa nú (bot master) i∑u khi∫n t¯ xa hê thậng b‡ nhiπm T™p hềp cỏc bot ˜ềc i∑u khi∫n bi mẻt bot master gÂi là mẻt botnet Bot th˜èng ˜ềc dựng ∫ phỏt tỏn email rỏc ho∞c thác hiên tòn cụng t¯chậi d‡ch vˆ(DDOS).

• Rootkit: ∞c i∫m chớnh cıa rootkit là khÊ n´ng che dòu sáhiên diên cıa chỳng trong mẻt hê thậng mỏy tớnh Cỏc kˇthu™t rootkit cú th∫ ˜ềc ỏp dˆng nhi∑u còp ẻkhỏc nhau trong hê thậng, vớ dˆ  còp ẻ ng˜èi dựng chỳng cú th∫giÊ mĐo nh˙ng lèi gÂi API thụng th˜èng; cũn khi ˜ềc cài ∞t  còp ẻ nhõn hê i∑u hành, chỳng cú th∫ giÊ mĐo còu trỳc hê thậng.

BÊn thõn cỏc kˇthu™t rootkit khụng gõy ra cỏc tỏc ẻng nguy hi∫m, nh˜ng cỏc kˇthu™t này th˜èng ˜ềc cỏc loĐi mó ẻc khỏc s˚dˆng ∫che dòu sá hiên diên cıa chỳng trong hêthậng.

Kˇ thu™t phõn tớch ẻng mó ẻc

Kˇthu™t phõn tớch ẻng là kˇthu™t phõn tớch nh˙ng hành vi cıa ch˜ẽng trỡnh trong quỏ trỡnh thác thi [28] Mụi tr˜èng phõn tớch ẻng ˜ềc ki∫m soỏt ch∞t ch≥ ∫ khụng b‰sút bòt k˝hành vi nào cıa ch˜ẽng trỡnh Ch˜ẽng trỡnh th˜èng thác hiên cỏc hành vi thụng qua lèi gÂi hàm.

Băng cỏch can thiêp vào cỏc lèi gÂi hàm, ta cú th∫ giỏm sỏt hàm nào ˜ềc gÂi bi ch˜ẽng trỡnh ∫can thiêp ˜ềc vào lèi gÂi hàm, mẻt hàm gÂi là hàm hook s≥ ˜ềc s˚dˆng Hàm hook này s≥ theo dõi các lÌi gÂi hàm và ghi vào t™p tin log, ho∞c phân tích các tham sË ˜Òc truy∑n vào khi gÂi hàm Vỡ hảu nh˜mó nguÁn cıa ch˜ẽng trỡnh cản phõn tớch là khụng ti∏p c™n ˜ềc mà chứcú mó thác thi, do ú hàm hook s≥ ˜ềc cài ∞t theo hai cỏch.

• Vi∏t lĐi cỏc hàm cản ˜ềc giỏm sỏt sao cho tr˜ểc khi thác thi ch˘c n´ng chớnh cıa hàm ˜ềc gÂi, hàm hook s≥ ˜Òc kích ho§t ∫ti∏n hành giám sát.

• Tỡm cỏc lèi gÂi hàm trong mó thác thi ∫ chốn lèi gÂi hàm hook.

Vểi cÊhai cỏch này, hàm hook phÊi cú quy∑n truy c™p vào cỏc tham sậ trờn stack ∫ thác hiên cỏc b˜ểc phõn tớch cản thi∏t Hê i∑u hành Windows - hê i∑u hành cú nhi∑u mó ẻc nh≠m tểi nhòt - cung còp nh˙ng th˜viên nh˜Detours [29] ∫ hiên thác viêc hook vào cỏc hàm Th˜ viên này cho phộp thay Íi t™p tin nh‡phõn tr˜ểc khi thác thi ho∞c thay Íi vựng nhể ˜ềc còp phỏt cho ch˜ẽng trỡnh.

Cỏckˇ thu™t gễ rậi (debugging techniques) cÙng ˜ềc s˚dˆng ∫hook vào mẻt sậhàm Cỏc i∫m ng≠t (breakpoints) ˜ềc chốn vào cỏc lèi gÂi hàm ho∞c cỏc hàm cản giỏm sỏt Khi cỏc i∫m ng≠t ˜ềc kớch hoĐt, cụng cˆdebug s≥ cú quy∑n truy c™p vào nẻi dung bẻnhể và trĐng thỏi cıa ti∏n trình này, t¯ ó ti∏n hành quá trình phân tích.

Ngoài ra, ∫giỏm sỏt lèi gÂi hàm, cỏc hàm giÊvểi tờn giậng nh˜cỏc hàm cản giỏm sỏt ˜ềc s˚dˆng Cỏc hàm giÊnày ˜ềc vi∏t lĐi ẽn giÊn vểi mˆc ớch chứ ∫ghi nh™n cỏc hành vi gÂi hàm và tham sậtruy∑n vào Ph˜ẽng phỏp này th˜èng ˜ềc dựng ∫ giỏm sỏt cỏc t˜ẽng tỏc gi˙a ch˜ẽng trỡnh và cỏc APIs.

K∏t quÊcıa quỏ trỡnh giỏm sỏt lèi gÂi hàm là chuẩi lèi gÂi hàm Chuẩi này là trỡnh tá cỏc hàm ˜ềc gÂi bi ch˜ẽng trỡnh cản phõn tớch, cựng vểi cỏc tham sậ ˜ềc truy∑n vào Cú nhi∑u h˜ểng ti∏p c™n˘ng dˆng chuẩi lèi gÂi hàm ∫bi∫u diπn hành vi nguy hĐi cıa mó ẻc [30] chuy∫n chuẩi lèi gÂi hàm thành mẻt bi∫u diπn Á th‡ Biπn diπn này cho phộp so sỏnh hành vi cıa phản m∑m nguy hĐi vểi cỏc bi∫u diπn cıa cỏc ch˜ẽng trỡnh vụ hĐi, i∫m khỏc biêt g˙a cỏc Áth‡ chớnh là hành vi nguy hĐi th™t sá cıa mó ẻc Kˇthu™t này cũn cho phộp phõn tớch cỏc bi∏n th∫cıa cựng mẻt dũng mó ẻc [31] ỏp dˆng cỏc kˇthu™t ∫ tớnh ẻ t˜ẽng tá gi˙a chuẩi lèi gÂi hàm cıa cỏc mó ẻc ó bi∏t và cỏc mđu cản ˜ềc ki∫m tra, t¯ ú phỏt hiên ˜ềc cỏc bi∏n th∫ cıa virus a hình.

Cú ba loĐi hàm th˜èng ˜ềc mó ẻc s˚dˆng và cỏc hàm này luụn ˜ềc giỏm sỏt trong quỏ trình phân tích lÌi gÂi hàm.

• Application Programming Interface - API õy là nh˙ng hàm ˜ềc hê i∑u hành cung còp ∫ thác hiên nh˙ng tỏc vˆcẽ bÊn nh˜ghi, xoỏ t™p tin ậi vểi hê i∑u hành Windows, t™p APIs ròt phong phỳ, cho phộp thác hiên hảu h∏t cỏc tỏc vˆ trờn hê i∑u hành nh˜ quÊn l˛mĐng, bÊo m™t, d‡ch vˆ hê thậng õy cÙng chớnh là tài nguyờn ∫ mó ẻc khai thỏc và là mẻt trong nh˙ng l˛do gõy ra thác t∏răng mó ẻc trờn hê i∑u hành Windows nhi∑u hẽn hỉn so vểi cỏc hê i∑u hành khỏc.

• System Calls ∫ cho phộp ch˜ẽng trỡnh can thiêp và cỏc tỏc vˆquan trÂng cıa hê thậng, hê i∑u hành cung còp mẻt bẻ APIs gÂi là lèi gÂi hàm hê thậng (system calls) Thụng qua cỏc lèi gÂi hàm hê thậng này, mẻt ch˜ẽng trỡnh cú th∫ thác hiên ˜ềc nh˙ng tỏc vˆcan thiêp sõu vào hêthậng nh˜ truy c™p ∏n thi∏t b‡ phản c˘ng hay ẽn v‡quÊn l˛bẻnhể (MMU) Cỏc dũng mó ẻc tiờn ti∏n th˜èng tỡm cỏch thác hiên cỏc lèi gÂi hàm hê thậng ∫ cú th∫ can thiêp sõu vào hê i∑u hành, t¯ ú thác hiên cỏc hành vi nguy hĐi ph˘c tĐp cıa chỳng.

• Windows Native API Windows Native API [32] là mẻt nhúm cỏc APIs năm gi˙a cỏc APIs thụng th˜èng và giao diên lèi gÂi hàm hê thậng, vểi nhiêm vˆ làm trung gian ∫ cỏc APIs thụng th˜èng gÂi ∏n cỏc hàm hê thậng Cỏc ch˜ẽng trỡnh vụ hĐi th˜èng chứgÂi cỏc APIs thụng th˜èng, tuy nhiờn, mó ẻc cú khuynh h˜ểng˜u tiờn s˚dˆng Windows Native APIs ∫ trỏnh viêc b‡ giỏm sỏt bi cỏc hê thậng chứ cú hàm hook tĐi cỏc APIs thụng th˜èng Trong khi viêc thác hiên cỏc lèi gÂi hàm hê thậng ũi h‰i mó ẻc phÊi ˜ềc còp phỏt cỏc quy∑n m˘c cao, viêc s˚dˆng Native APIs ẽn giÊn hẽn ròt nhi∑u Cỏc hàm Native APIs ˜ềc thay Íi qua cỏc bÊn c™p nh™t cıa hê i∑u hành, i∑u này dđn ∏n viêc mó ẻc cú th∫ b‡vụ hiêu hoỏ khi hê i∑u hành ˜ềc c™p nh™t Ng˜ềc lĐi, cỏc hàm hook cÙng phÊi ˜ềc i∑u chứnh cho t¯ng bÊn c™p nh™t hê i∑u hành khỏc nhau.

Cỏc hàm hook cài ∞t vào ba nhúm giao diên lèi gÂi hàm này cho phộp giỏm sỏt tòt cÊcỏc lèi gÂi hàm cıa mẻt ch˜ẽng trỡnh, t¯ ú xỏc ‡nh ˜ềc cỏc hành vi nguy hĐi cú th∫ cú cıa ch˜ẽng trỡnh ú Tuy nhiờn, ph˜ẽng phỏp này chứhiêu quÊ ậi vểi cỏc mó ẻc ˜ềc thác thi ch∏ ẻ ng˜èi dựng (user-mode), ậi vểi cỏc mó ẻc hoĐt ẻng ch∏ ẻ nhõn (kernel-mode), chỳng cú th∫ thác hiên cỏc tỏc vˆ hê thậng trác ti∏p mà khụng cản thụng qua ba nhúm giao diên lèi gÂi hàm trên.

Kˇ thu™t phõn tớch tổnh mó ẻc

∫ giÊi quy∏t hĐn ch∏ cıa kˇthu™t phõn tớch ẻng, kˇ thu™t phõn tớch tổnh ˜ềc ∑ xuòt ∫ phõn tớch ng˙ nghổa cıa ch˜ẽng trỡnh mà khụng cản phÊi thác thi chỳng Vỡ mó nguÁn cıa ch˜ẽng trỡnh cản ˜ềc ki∫m tra th˜èng khụng ti∏p c™n ˜ềc, cỏc kˇthu™t phõn tớch tổnh buẻc phÊi x˚l˛ trờn mó thác thi ∫phõn tớch mó thác thi, tr˜ểc tiờn, mụ hỡnh cıa ch˜ẽng trỡnh cản ph£i ˜Òc khôi phˆc.

Mụ hỡnh phÍ bi∏n nhòt ˜ềc s˚ dˆng trong cỏch ti∏p c™n này là sẽ Á luÁng i∑u khi∫n (Control Flow Graph - CFG) Mẻt CFG cıa ch˜ẽng trỡnh là mẻt Á th‡ cú h˜ểng, mẩi ứnh bi∫u diπn mẻt lênh trong ch˜ẽng trỡnh gậc, cỏc cĐnh gi˙a cỏc ứnh bi∫u diπn luÁng thác thi cıa ch˜ẽng trỡnh khi lênh t˜ẽng˘ng ˜ềc thác thi Hỡnh 2.1b bi∫u diπn CFG ˜ềc sinh ra t¯ oĐn mã trong Hình 2.1a.

1: jz 3 2: jmp 4 3: add ecx,1 4: jmp address1 5: dec ecx 6: push ecx 7: call GetModuleHandleA 8: hlt

(c) Không gian tr§ng thái.

Hỡnh 2.1: Bi∫u diπn ch˜ẽng trỡnh.

Trong cỏc cụng cˆ xõy dáng CFG thỡ BE-PUM là cụng cˆ cho k∏t quÊ chớnh xỏc và ảy ı nhòt Mẩi ứnh cıa CFG tĐo ra bi BE-PUM t˜ẽng ˘ng vểi mẻt trĐng thỏi cıa mụi tr˜èng thác thi, bao gÁm thụng tin v∑ thanh ghi, bẻ nhể vàcè tr˜ểc khi thác thi lênh tĐi ứnh ú Cỏc ph˜ẽng phỏp phõn tớch tổnh s≥dựng CFG làm ảu vào cıa quỏ trỡnh phõn tớch.

Trong sậcỏc cỏch ti∏p c™n theo h˜ểng phõn tớch tổnh, s˚dˆng ki∫m tra mụ hỡnh ó Đt ˜ềc nhi∑u k∏t qu£kh£ quan nhÌ vào n∑n t£ng lu™n l˛v˙ng ch≠c cıa nó Trl§i n´m 2001, ˛t˜ng trỡnh bày mó nh‡phõn nh˜ là mẻt mụ hỡnh và cỏc hành vi nguy hi∫m nh˜ là thuẻc tớnh cản ˜ềc ki∫m tra trờn mụ hỡnh ú ó ˜ềc ∑ xuòt bi Bergeron và cẻng sá[33] Quy trỡnh cẽ bÊn s˚ dˆng ki∫m tra mụ hỡnh ∫ phỏt hiên phản m∑m ẻc hĐi t¯ t™p tin thác thi nh‡phõn ˜ềc trình bày trong Hình 2.2.

Nh˜ ˜ềc trỡnh bày trong Hỡnh 2.2, quỏ trỡnh phỏt hiên mó ẻc s˚dˆng ph˜ẽng phỏp ki∫m

Công cụ kiểm tra mô hình

Kết quả kiểm tra Công cụ xây dựng CFG

CFG Đặc tả luận lý mã độc

Hỡnh 2.2: Áp dˆng ki∫m tra mụ hỡnh ∫ phỏt hiên mó ẻc. tra mụ hỡnh s≥ i qua cỏc b˜ểc sau Tr˜ểc tiờn, mẻt cụng cˆphõn tớch mó thác thi s≥tỏi tĐo lĐisẽ Á luÁng i∑u khi∫n (CFG) t¯mó nh‡ phõn ban ảu N∏u cú sátÁn tĐi cıa mó ẻc trong ch˜ẽng trỡnh cản ki∫m tra, oĐn mó cıa mó ẻc s≥ ˜ềc th∫ hiên trờn CFG Vớ dˆ, trong Hỡnh 2.1a, oĐn mó t¯lênh5 :dec ecx ∏n lênh7 :call GetM oduleHandleA thác t∏ là mẻt bi∏n th∫ ˜ềc làm rậi mó cıa virus nÍi ti∏ngAvron, ˜ềc phÊn ỏnh qua dóy ứnh {5,6,7} trờn CFG ∫ xỏc

‡nh sá tÁn tĐi cıa virus, hành vi cıa nú ˜ềc mụ tÊ băng cụng th˘c lu™n l˛ thèi gian [14].

Trong ví dˆnày, các hành vi cıa virus có th∫ ˜Òc bi∫u diπn b¨ng công th˘c lu™n l˛ cây tính toỏn (CTL) dec(ecx)^AF(push(ecx)^AXcall(GetM oduleHandleA))) V∑ cẽ bÊn, miờu tÊ răng, cuậi cựng cÙng tÁn tĐi mẻt ˜èng i ∫ lênh dec ecx ˜ềc thác hiên, sau ú ecx s≥ ˜ềc ây vào ng´n x∏p và cuậi cựng là lênh ti∏p theo call GetM oduleHandleA s≥ ˜ềc thác thi Sau ú, khi cụng cˆki∫m tra mụ hỡnh ki∫m tra CFG này, khụng gian trĐng thỏi cıa ch˜ẽng trình s≥ ˜Òc t§o ra và ˜Òc s˚dˆng ∫ki∫m tra xem công th˘c có ˜Òc tho£mãn hay không.

Ví dˆ, Hình 2.1c mô t£ không gian tr§ng thái khi công cˆ ki∫m tra mô hình ki∫m tra CFG trong

Hỡnh 2.1b ỳng trĐng thỏiS 7 (2) , xỏc nh™n sá tÁn tĐi thác sácıa bi∏n th∫virus Avron Chi ti∏t v∑quỏ trỡnh ki∫m tra trờn khụng gian trĐng thỏi cú th∫ tỡm thòy tĐi [34].

Th£o lu™n

Ph˜ẽng phỏp phõn tớch tổnh m∞c dự giÊi quy∏t ˜ềc cỏc vòn ∑ cıa ph˜ẽng phỏp phõn tớch ẻng, chỳng vđn tÁn tĐi nhi∑u hĐn ch∏ HĐn ch∏th˘nhòt cıa ph˜ẽng phỏp này là mó ẻc cú th∫ ỏp dˆng cỏc kˇthu™t làm rậi mó nh˜ mó táthay Íi (self modifying code), úng gúi (packer) làm cho oĐn mó th™t sácıa chỳng chứ cú th∫ ˜ềc th∫hiên khi thác thi ch˜ẽng trỡnh i∑u này làm cho CFG sinh ra khụng cũn chớnh xỏc ho∞c ∞c tÊ lu™n l˛hành vi nguy hĐi cıa mó ẻc khụng cũn phự hềp, dđn ∏n k∏t quÊ ki∫m tra hoàn toàn sai lêch.

Do ú n∏u chứthuản tu˛ỏp dˆng kˇthu™t phõn tớch ẻng ho∞c phõn tớch tổnh thỡ k∏t quÊ ki∫m tra s≥khụng chớnh xỏc Hiên cụng cˆBE-PUM là cụng cˆduy nhòt k∏t hềp cÊhai ph˜ẽng phỏp này ∫ xõy dáng ˜ềc CFG hoành chứnh, vỡ v™y nờn lu™n ỏn s˚ dˆng BE-PUM làm cụng cˆxõy dáng CFG Mˆc tiờu chớnh cıa lu™n ỏn là giÊi quy∏t vòn ∑ làm rậi mó ∫ trỏnh b‡ phỏt hiên bi ∞c tÊ hành vi nguy hĐi nh˜trỡnh bày trong Ch˜ẽng 4.

HĐn ch∏ cũn lĐi cıa ph˜ẽng phỏp phõn tớch tổnh là vòn ∑ bựng nÍ khụng gian trĐng thỏi s≥ ˜ềc lu™n ỏn giÊi quy∏t nh˜ trỡnh bày chi ti∏t trong Ch˜ẽng 3.

Ki∫m tra mô hình

Mô hình hoá

∫ti∏n hành ki∫m tra, hêthậng cản ˜ềc ki∫m tra phÊi ˜ềc mụ hỡnh hoỏ Ngụn ng˙ ∞c tÊmụ hỡnh - dựng ∫ ∞c tÊmụ hỡnh hê thậng - cú cỏc ∞c tớnh sau.

• Ngụn ng˙ ∞c tÊmụ hỡnh t™p trung và viêc mụ tÊ còu trỳc i∑u khi∫n và sát˜ẽng tỏc cıa hê thËng.

• Ngụn ng˙ ∞c tÊmụ hỡnh phÊi hẩtrề tớnhphi xỏc ‡nh (nondeterministic), nghổa là trĐng thỏi k∏ ti∏p khụng ˜ềc xỏc ‡nh trĐng thỏi hiên tĐi.

• Ngụn ng˙ ∞c tÊ mụ hỡnh phÊi hẩ trề ∞c tÊ mụi tr˜èng mà hê thậng ú hoĐt ẻng Vớ dˆ nh˜trong mụi tr˜èng x86, cỏc giỏ tr‡ mụi tr˜èng nh˜cỏc thanh ghi, cè, bẻnhểs≥ Ênh h˜ng

∏n v™n hành cıa hê thậng và phÊi ˜ềc ∞c tÊbi ngụn ng˙ ∞c tÊ mụ hỡnh.

Trong ki∫m tra mụ hỡnh, còu trỳc Kripke [36] - mẻt dĐng Á th‡chuy∫n trĐng thỏi - th˜èng ˜ềc s˚ dˆng ∫ ∞c tÊ mụ hỡnh Mẻt còu trỳc Kripke bao gÁm mẻt t™p cỏc trĐng thỏi (state), mẻt t™p cỏc quan hê gi˙a cỏc trĐng thỏi ˜ềc gÂi cỏc chuy∫n trĐng thỏi (transition) và mẻthàm ghi nhón (labeling function) dựng ∫gỏn cho mẩi trĐng thỏi mẻt t™p cỏc mênh ∑ nguyờn t˚mà cỏc mênh ∑này ỳng tĐi trĐng thỏi ú ‡nh nghổa cıa còu trỳc Kripke ˜ềc trỡnh bày nh˜sau.

‡nh nghổa 1 (Còu trỳc Kripke) Mẻt còu trỳc Kripke M là mẻt bẻ 4-tuple M =hS, S0, R, Li

• S là t™p h˙u h§n các tr§ng thái;

• S 0 ✓S là t™p cỏc trĐng thỏi b≠t ảu;

• R✓S⇥S là t™p các chuy∫n tr§ng thái sao cho 8s2S :9s 0 2S!(s, s 0 )2R;

• L:S !2 AP là hàm ghi nhón, vểi AP là t™p cỏc mênh ∑ nguyờn t˚.

Mẻt ˜èng i (path)⇡ trờnM t¯mẻt trĐng thỏis0 là mẻt chuẩi cỏc trĐng thỏi⇡ =s0s1s2 sao cho 8i 0,(s i , s i+1 )2R.

∫ ∞c tÊ thuẻc tớnh cản ˜ềc ki∫m tra, lu™n l˛thèi gian ˜ềc s˚ dˆng Lu™n l˛ thèi gian ròt phự hềp ∫ bi∫u diπn cỏc thuẻc tớnh trờn cỏc ˜èng i tĐo ra bi còu trỳc Kripke Mẻt ∞c tÊthuẻc tớnh băng lu™n l˛ thèi gian ˜ềc gÂi là mẻt cụng th˘c lu™n l˛ thèi gian (gÂi t≠t là cụng th˘c lu™n l˛) Vớ dˆ, mẻt cụng th˘c lu™n l˛thèi gian cú th∫ xỏc ‡nh rừ răng mẻt trĐng thỏi cˆ th∫ nào úcuậi cựng cÙng s≥ Đt ˜ềc trờn mẻt ˜èng i, ho∞c mẻt trĐng thỏi nào úkhụng bao giè Đt ˜ềc trờn mÂi ˜èng i Nh˙ng thuẻc tớnh này ˜ềc ∞c tÊ băng cỏctoỏn t˚ thèi gian (temporal operator) Các lu™n l˛ thÌi gian phÍbi∏n ˜Òc s˚dˆng trong các công cˆki∫m tra mô hình là lu™n l˛ thÌi gian tuy∏n tính (Linear Temporal Logic - LTL) [37] và lu™n l˛cây tính toán (Computational Tree Logic - CTL) [38].

Sau khi mụ hỡnh hoỏ hê thậng, thuẻc tớnh cản ki∫m tra phÊi ˜ềc ∞c tÊ tr˜ểc khi ti∏n hành quỏ trỡnh ki∫m tra mụ hỡnh Lu™n l˛ thèi gian ˜ềc chÂn ∫ ∞c tÊ thuẻc tớnh nhèvào khÊn´ng

∞c tÊ ng˙ nghổa cıa chuẩi cỏc hành ẻng trong hê thậng Hiên nay, cỏc cụng cˆ ki∫m tra mụ hình ∑u hÈtrÒhai lu™n l˛ thÌi gian phÍ bi∏n là lu™n l˛ thÌi gian tuy∏n tính (LTL) ho∞c lu™n l˛ cõy tớnh toỏn (CTL) ậi vểi LTL, cỏc toỏn t˚thèi gian ˜ềc dựng ∫ ∞c tÊ cỏc sákiên trờn mẻt ˜èng thác thi (thèi gian tuy∏n tớnh) ậi vểi CTL, cỏc toỏn t˚thèi gian ˜ềc dựng ∫ ∞c tÊcỏc sá kiên trờn cỏc ˜èng i cú th∫ cú t¯mẻt trĐng thỏi (thèi gian r≥ nhỏnh).

LTL [37] ˜ềc dựng ảu tiờn bi Pnueli ∫ suy lu™n trờn cỏc hê thậng Áng thèi Mẻt cụng th˘c LTL bao gÁm mênh ∑ nguyờn t˚(khụng th∫chia nh‰và nh™n giỏ tr‡ true ho∞c false), cỏc phộp toỏn lu™n l˛ (tuy∫n, hẻi, phı ‡nh) và hai toỏn t˚thèi gian cẽ bÊn làX (nghổa là "neXt state") vàU (nghổa là "Until state") T¯ toỏn t˚X, ta cú hai dđn xuòt làG(nghổa là "Globally - all state") vàF (gÂi là "eventually - some state in the Future") T˜ẽng távểi toỏn t˚ U, ta cú hai dđn xuòt làR (nghổa là "Release state") và W (nghổa là "Weak until state").

‡nh nghổa 2 (Cỳ phỏp LTL) Linear Temporal Logic (LTL) ˜ềc ∞c tÊvểi v´n phĐm sau.

'::=>|?|a|(ơ')|('^')|('_')|('!')|(X')|(F')|(G')|('U')|('W')|('R') vểi a2AP, AP là mênh ∑nguyờn t˚.

Cho mẻt còu trỳc Kripke M, và mẻt ˜èng i ⇡ = s 0 s 1 s 2 trờn M; vểi ⇡ i = s 0 s 1 s 2 s i ˜èng i⇡ cú thoÊmón mẻt cụng th˘c LTL 'hay khụng ˜ềc ‡nh nghổa băng quan hê thoÊ mãn ✏nh˜sau.

2 M,⇡2? 3 M,⇡✏p,p2L(s 1 ), vểis 1 là trĐng thỏi ảu tiờn cıa ⇡ 4 M,⇡✏ơ',⇡2'

• ⇡=s 0 s 1 s 2 s 2 , ⇡✏Gơ(p^k)khngctrngthinotrong⇡ cú nhón ch˘a cÊ p và k.

LTL chứ cú th∫ ∞c tÊcỏc trĐng thỏi trờn cựng mẻt ˜èng i, ∫ ∞c tÊng˙nghổa cho thuẻc tớnh

"tÁn tĐi mẻt ˜èng i nào ú" thỡ LTL g∞p hĐn ch∏ Do v™y lu™n l˛cõy tớnh toỏn (Computational Temporal Logic - CTL) [38] ˜ềc giểi thiêu CTL giÊi quy∏t vòn ∑ này băng cỏch thờm vào l˜Òng t¯cho ˜Ìng i Bên c§nh các toán t˚U,F,G, cıa LTL, CTL ˜Òc bÍsung thêm hai l˜ềng t¯cho ˜èng i là Avà E vểi˛nghổa t˜ẽng ˘ng là "tòt cÊmÂi ˜èng i - All paths" và

"tÁn tĐi mẻt ˜èng i -Exist a path".

‡nh nghổa 3 (Cỳ phỏp CTL) Computational Temporal Logic (CTL) ˜ềc ∞c tÊ vểi v´n phĐm sau ::= > | ? |a | (ơ ) | ( ^ ) |( _ ) | ( ! ) |(AX ) | (EX ) | (AF ) |(EF )|(AG )|(EG )|A( U )|E( U ) vÓi a2AP.

V∑m∞t ng˙ nghổa, CTL t˜ẽng tá nh˜LTL vểi hai l˜ềng t¯ ˜ềc bÍ sung làA - tòt cÊmÂi ˜èng i - và E - tÁn tĐi mẻt ˜èng i Ng˙ nghổa cıa cỏc l˜ềng t¯ A và E ˜ềc trỡnh bày t˜ẽng ˘ng nh˜sau.

V òn ∑ bựng nÍ khụng gian trĐng thỏi

Vòn ∑nghiờm trÂng cıa ki∫m tra mụ hỡnh là bựng nÍ khụng gian trĐng thỏi, khi ú, sậ l˜ềng trĐng thỏi cıa mụ hỡnh trnờn ròt lển Xột vớ dˆsau, giÊ s˚ răng mẻt hêthậng cúnti∏n trỡnh, mẩi ti∏n trỡnh cú mtrĐng thỏi Quỏ trỡnh ki∫m tra mụ hỡnh s≥ ti∏n hành tÍ hềp tòt cÊ cỏc khÊ n´ng có th∫x£y ra cho nti∏n trình Khi ó, tÍng sË tr§ng thái có th∫ có làm n tr§ng thái Xét vớ dˆcˆ th∫ sau, mẻt thanh ghi R cú 256 bit, mẩi bit cú th∫ nh™n hai giỏ tr‡0 ho∞c 1, nh˜v™y tÍng sậ trĐng thỏi cản xột cho thanh ghi này là 2 256

Cú ròt nhi∑u nghiờn c˘u ˜ềc cụng bậ ∫ giÊi quy∏t vòn ∑ bựng nÍ khụng gian trĐng thỏi.

Mẻt trong nh˙ng cụng bậ ỏng chỳ ˛làSymbolic Model Checking vểi Binary Decision Diagram (BDD) [39, 40] Trong h˜ểng ti∏p c™n này, t™p cỏc trĐng thỏi ˜ềc bi∫u diπn bi mẻt BDD thay vỡ mẻt danh sỏch cỏc trĐng thỏi ẻc l™p Biπu diπn BDD th˜èng nh‰ hẽn còp sậ nhõn và ki∫m tra mụ hỡnh vểi BDD ˜ềc thác hiên vểi thu™t toỏn i∫m cậ ‡nh [41].

Mẻt h˜ểng ti∏p c™n khỏc cÙng Đt ˜ềc nhi∑u k∏t quÊ khÊ quan làPartial Order Reduction [42, 43] H˜ểng ti∏p c™n này khai thỏc tớnh ẻc l™p cıa cỏc hành vi trong mẻt hê thậng vểi cỏc ti∏n trỡnh khụng Áng bẻ.

Ngoài ra, cú mẻt h˜ểng ti∏p c™n khÊ quan làBounded Model Checking [44] vểi viêc s˚ dˆng SAT solver ∫ tỡm ki∏m phÊn vớ dˆtrờn nh˙ng ˜èng thác thi cú chi∑u dài giểi hĐn bi mẻt sậ nguyờnk N∏u khụng tỡm thòy phÊn vớ dˆ, ks≥ ˜ềc t´ng lờn cho ∏n khi Đt tểi c™n trờn cıa k ho∞c phÊn vớ dˆ ˜ềc tỡm thòy.

Bờn cĐnh viêc cÊi ti∏n ki∫m tra mụ hỡnh cho cỏc hê thậng bẻ nhể nhòt quỏn [45], cỏc nghiờn c˘u gản õy t™p trung vào viêc x˚l˛ vòn ∑ bựng nÍ khụng gian trĐng thỏi cho mẻt bài toỏn cˆ th∫nh˜phỏt tri∫n trũ chẽi iên t˚[46] ho∞c hê thậng khoỏ lÁng ghộp [47] Cỏc nghiờn c˘u này t™p trung vào viêc cÊi ti∏n mụ hỡnh cản ˜ềc ki∫m tra băng cỏc ∞c tr˜ng cıa mụ hỡnh ú.

Th£o lu™n

Ki∫m tra mụ hỡnh là mẻt n∑n tÊng ròt v˙ng mĐnh ∫ki∫m tra ∞c tớnh cıa cỏc hê thậng h˙u hĐn trĐng thỏi Mẻt trong nh˙ng ∞c i∫m nÍi b™t cıa ki∫m tra mụ hỡnh là nú hoàn toàn tá ẻng vểi viêc ∞c tÊ thuẻc tớnh cản ki∫m tra khỏ ẽn giÊn Mẻt khi ∞c tÊ thuẻc tớnh khụng ˜ềc thoÊ món, cụng cˆ ki∫m tra mụ hỡnh s≥ cung còp phÊn vớ dˆ giỳp xỏc ‡nh ˜ềc luÁng thác thi dđn ∏n trĐng thỏi lẩi õy là l˛do ki∫m tra mụ hỡnh ˜ềc ỏp dˆng khỏ phÍ bi∏n trong nh˙ng công cˆtìm lÈi (debugging).

Mẻt trong nh˙ng khuy∏t i∫m cıa ki∫m tra mụ hỡnh là nú chứỏp dˆng ˜ềc cho cỏc hê thậng h˙u hĐn trĐng thỏi M∞c dự mẻt hê thậng vụ hĐn trĐng thỏi cú th∫ ˜ềc tr¯u t˜ềng hoỏ thành mẻt hê thậng h˙u hĐn trĐng thỏi, viêc này làm giÊm tớnh chớnh xỏc Ngoài ra, ki∫m tra mụ hỡnh cũn g∞p phÊi mẻt vòn ∑nan giÊi ú là vòn ∑ bựng nÍ khụng gian trĐng thỏi nh˜trỡnh bày trờn Vòn ∑ này là trngĐi chớnh cho viêc ỏp dˆng ki∫m tra mụ hỡnh ∫ ki∫m tra cỏc ch˜ẽng trỡnh trong thác t∏.

M∞c dự ó cú nhi∑u ∑xuòt ∫ giÊi quy∏t vòn ∑bựng nÍkhụng gian trĐng thỏi, trong ú nÍi b™t nhòt là cỏc nghiờn c˘u cıa Edmund và cẻng sá[48, 49], cỏc ∑xuòt này vđn ch˜a giÊi quy∏t ˜ềc vòn ∑mẻt cỏch triêt ∫ Ngoài ra, hiên khụng cú mẻt nghiờn c˘u nào t™p trung giÊi quy∏t vòn ∑ bựng nÍkhụng gian trĐng thỏi cho bài toỏn phỏt hiên mó ẻc băng ki∫m tra mụ hỡnh T¯ ú, lu™n ỏn ó ∑xuòt mẻt ph˜ẽng phỏp ∫giÊi quy∏t vòn ∑này nh˜trỡnh bày trong Ch˜ẽng 3.

Làm rËi mã

Các kˇ thu™t làm rËi mã

Cỏc kˇthu™t làm rậi mó ˜ềc phõn loĐi dáa trờn loĐi thụng tin mà chỳng làm rậi [51] LoĐi kˇ thu™t làm rậi mó th˘ nhòt là thay Íi hỡnh th˘c cıa mó nguÁn, băng cỏch loĐi b‰ h∏t cỏc ghi chú và các thông tin giúp dπ hi∫u mã nguÁn Các bi∏n sË, tên hàm cÙng có th∫ ˜Òc Íi tên ∫ hĐn ch∏ viêc Âc hi∫u Dự viêc thác hiên làm rậi hỡnh th˘c mó nguÁn khỏ ẽn giÊn thụng qua nh˙ng cụng cˆhẩ trềnh˜Java Obfuscator Crema [57], õy là ph˜ẽng phỏp cú hiêu quÊ khụng cao Ph˜ẽng phỏp này cú chi phớ thòp, ẻph˘c tĐp thòp, khÊn´ng chậng khụi phˆc thòp và khÊ n´ngân mỡnh cao (ch˜ẽng trỡnh ˜ềc làm rậi khụng cú nhi∑u khỏc biêt vểi ch˜ẽng trỡnh gậc).

LoĐi kˇ thu™t làm rậi mó th˘hai là làm rậi d˙liêu trong ch˜ẽng trỡnh Kˇthu™t làm rậi này khỏ ph˘c tĐp, ũi h‰i phÊi thay Íi cỏch tÍch˘c d˙liêu cıa ch˜ẽng trỡnh, vớ dˆ nh˜ chia nh‰ mÊng, giÊm sậ chi∑u cıa mÊng Còu trỳc th¯a k∏ cıa cỏc lểp trong ch˜ẽng trỡnh cÙng cú th∫ ˜ềc thay Íi ∫ làm cho ch˜ẽng trỡnh tr nờn rậi r≠m hẽn Cỏc kˇthu™t kˇthu™t làm rậi mó thuẻc loĐi này cú ẻ ph˘c tĐp cao vỡ chỳng thay Íi còu trỳc cıa ch˜ẽng trỡnh ban ảu [51, 58]. ậi vểi loĐi kˇthu™t làm rậi này này, cản phÊi cõn nh≠c sá ỏnh Íi gi˙a khÊn´ng chậng khụi phˆc/ ẻph˘c tĐp vểi chi phớ.

LoĐi kˇthu™t làm rậi mó ph˘c tĐp nhòt là thay Íi còu trỳc i∑u khi∫n cıa ch˜ẽng trỡnh [59].

Cú nhi∑u kˇthu™t khỏc nhau ˜ềc ỏp dˆng trong nhúm này, vớ dˆ nh˜ thay th∏lèi gÂi mẻt thı tˆc băng cỏch dựng nẻi tuy∏n thıtˆc ú, thay Íi còu trỳc cỏc vũng l∞p Cỏc oĐn mó khụng Ênh h˜ng ∏n luÁng thác thi (dead code) cÙng cú th∫ ˜ềc thờm vào ∫ che dòu luÁng thác thi th™t sá cıa ch˜ẽng trỡnh Mẻt trong nh˙ng kˇ thu™t làm rậi mó ph˘c tĐp nhòt thuẻc loĐi này là s˚ dˆng cỏc lênh nhÊy ẻng (dynamic jump) thay cho cỏc lênh r≥ nhỏnh thụng th˜èng trong ch˜ẽng trỡnh Cỏc lênh nhÊy ẻng - vểi ớch nhÊy ˜ềc xỏc ‡nh trong quỏ trỡnh thác thi - là mẻt trngĐi lển ậi vểi cỏc cụng cˆ d‡ch ng˜ềc [60] Tuy nhiờn, viêc ki∫m soỏt cỏc lênh nhÊy ẻng ∫ Êm bÊo luÁng thác thi cıa ch˜ẽng trỡnh là ròt ph˘c tĐp, do ú chi phớ ∫ thác hiên làm rậi mó là ròt cao Nhỡn chung cỏc kˇthu™t làm rậi mó thay Íi còu trỳc i∑u khi∫n cú ẻ ph˘c tĐp cao, khÊn´ng chậng khụi phˆc cao, khÊ n´ng ân mỡnh thòp và chi phớ cao.

Nh˜thÊo lu™n tĐi [61, 62], cú ròt nhi∑u kˇ thu™t làm rậi mó ˜ềc s˚dˆng trong thác t∏ Mẻt sËkˇthu™t làm rËi mã phÍ bi∏n ˜Òc trình bày nh˜sau.

• Chốn mó rỏc (dead code insertion), õy là kˇ thu™t thờm vào nh˙ng oĐn mó khụng tỏc ẻng gì ∏n hành vi hay luÁng x˚l˛ ∫ ánh l¯a các kˇthu™t phân tích ng˜Òc, các o§n mã rác th˜èng ˜ềc ∞t vào nh˙ng v‡trớ khụng th∫ ˜ềc x˚ l˛trong thác t∏, ho∞c nh˙ng lênh ˜ềc thác thi trong oĐn mó này khụng làm thay Íi mụi tr˜èng/luÁng x˚l˛ sau khi toàn bẻ oĐn mó ˜ềc thác thi xong.

• Thay Íi th˘támó (code reordering), kˇthu™t này thay Íi v‡trớ cıa cỏc thı tˆc ho∞c cỏc lênh trong mẻt thı tˆc mà khụng làm thay Íi hành vi ch˜ẽng trỡnh.

• Thụng d‡ch mó (table interpretation), õy là mẻt trong nh˙ng kˇthu™t làm rậi mó hiêu quÊ nhòt Cỏc oĐn mó s≥ ˜ềc d‡ch thành mẻt loĐi mó mỏy mểi, mó mỏy này sau ú ˜ềc thác thi bi mẻt mỏyÊo thụng d‡ch ớnh kốm.

• úng gúi (packer), kˇthu™t này úng gúi (packing) oĐn mó cıa ch˜ẽng trỡnh Khi thác thi ch˜ẽng trỡnh, cỏc oĐn mó ˜ềc úng gúi s≥ ˜ềc giÊi mó tr˜ểc khi thác thi.

Cỏc kˇ thu™t làm rậi mó ˜ềc mó ẻc s˚ dˆng

Mó ẻc th˜èng xuyờn s˚ dˆng cỏc kˇthu™t làm rậi mó ∫ trỏnh b‡phõn tớch Giậng nh˜ cỏc ch˜ẽng trỡnh thụng th˜èng, mˆc tiờu làm rậi mó ảu tiờn cıa mó ẻc là ∫ ậi phú vểi cỏc kˇ thu™t d‡ch ng˜ềc Ngoài ra, khỏc vểi cỏc ch˜ẽng trỡnh thụng th˜èng, mó ẻc cũn thác hiên làm rậi mó ∫ trỏnh b‡ phỏt hiên bi ph˜ẽng phỏp so trựng ch˙ k˛ Vớ dˆ, ph˜ẽng phỏp thay Íi thanh ghi th˜èng ˜ềc mó ẻc s˚ dˆng ∫ thay Íi mó thác thi cıa chỳng, t¯ ú làm cho ch˙ k˛ ˜ềc dựng ∫ nh™n diên chỳng khụng cũn trựng khểp; và hảu nh˜ph˜ẽng phỏp này khụng ˜ềc s˚dˆng trong cỏc ch˜ẽng trỡnh thụng th˜èng vỡ nú khụng cÊi thiên viêc chậng Âc hi∫u - mˆc ớch làm rậi mó cıa cỏc ch˜ẽng trỡnh vụ hĐi Mẻt sậ cỏc kˇthu™t làm rậi mó th˜èng ˜ềc mó ẻc s˚ dˆng ˜ềc trỡnh bày nh˜ sau.

• Thay Íi thanh ghi (register reassignment), kˇthu™t làm rậi mó này ˜ềc thác hiên trờn mó assembly cıa mó ẻc băng cỏch thay Íi nh˙ng thanh ghi ˜ềc s˚ dˆng.

• Thay Íi lênh (instruction replacement), cỏc lênh t˜ẽng ˜ẽng ˜ềc s˚ dˆng ∫ thay th∏lđn nhau.

• úng gúi (packer), mó ẻc th˜èng s˚ dˆng kˇthu™t packer ∫ trỏnh d‡ch ng˜ềc, Áng thèi làm thay Íi mó thác thi - trỏnh b‡so trựng ch˙ k˛.

• SEH, õy là kˇ thu™t s˚dˆng ng≠t ∫chi∏m quy∑n i∑u khi∫n cıa ch˜ẽng trỡnh t¯ ú thác thi o§n mã nguy h§i.

• API ∞c biêt (Special API), mó ẻc s˚dˆng nh˙ng API ∞c biêt ∫ trỏnh b‡giỏm sỏt.

• Mó tá thay Íi (self-modification code), õy là kˇthu™t mó ẻc s˚ dˆng ∫táthay Íi mó cıa chỳng, oĐn mó thác sá cıa mó ẻc chứ ˜ềc th∫hiên trong quỏ trỡnh thác thi.

• Lênh nhÊy ẻng (dynamic jump), mó ẻc s˚dˆng nh˙ng lênh nhÊy ẻng ∫ ki∫m soỏt luÁng thác thi Vỡ viêc tớnh toỏn cỏc ớch nhÊy ẻng là ròt ph˘c tĐp, mó ẻc th˜èng dựng lênh nhÊy ẻng ∫ trỏnh b‡phõn tớch bi cỏc ph˜ẽng phỏp phõn tớch tổnh.

Các kˇ thu™t gi£i rËi mã

Cỏckˇ thu™t giÊi rậi mó (deobfuscation) th˜èng dáa trờn kˇthu™t phõn tớch tổnh Mẻt sậ kˇ thu™t phõn tớch tổnh ˜ềc ỏp dˆng ∫phõn tớch ch˜ẽng trỡnh mẻt cỏch chớnh xỏc hẽn t¯ ú thác hiên giÊi rậi mó bao gÁmphõn tớch luÁng d˙liêu (data flow analysis) [63], ˜ểc l˜ềng bỏn phản (partial evaluation) [64] và c≠t lỏt ch˜ẽng trỡnh (program slicing) [65] Tuy nhiờn cỏc h˜ểng ti∏p c™n này chứ giÊi quy∏t ˜ềc cỏc kˇ thu™t làm rậi mó ẽn giÊn nh˜ chốn mó rỏc (dead code), chỳng g∞p nhi∑u hĐn ch∏trong viêc x˚ l˛cỏc kˇthu™t làm rậi mó cú s˚ dˆng lênh nhÊy ẻng.

Cỏc nghiờn c˘u gản õy t™p trung vào viêc x˚l˛cỏc kˇ thu™t làm rậi mó ph˘c tĐp, bao gÁm lênh nhÊy ẻng.Value Set Analysis (VSA) [66] ˜ềc giểi thiêu là mẻt kˇthu™tphõn tớch tổnh ∫ x˚l˛cỏc lênh nhÊy ẻng Áp dˆng xòp xứtrờn, VSA tớnh toỏn t™p giỏ tr‡ho∞c ‡a chứ mà cỏc ớch cıa lênh nhÊy ẻng cú th∫ch˘a Mẻt kˇ thu™t khỏc làphõn tớch luÁng d˙liêu vểi ti∏n trỡnh l∞p lĐi ˜ềc s˚dˆng trong cụng cˆJakstab [60] ∫ phõn tớch cỏc lênh nhÊy ẻng và lèi gÂi hàm chớnh xỏc hẽn.

Tuy nhiờn, cỏc ph˜ẽng phỏp phõn tớch tổnh ∑u g∞p tr ngĐi vểi cỏc kˇ thu™t làm rậi mó tiờn ti∏n nh˜ SEH Cỏc kˇthu™t này giỳp cho oĐn mó th™t sá cıa mó ẻc chứ ˜ềc th∫ hiên khi thác thi T¯ ú, h˜ểng ti∏p c™nphõn tớch hẩn hềp - k∏t hềp gi˙a phõn tớch tổnh và phõn tớch ẻng - ˜ềc ∑ xuòt [67, 68] H˜ểng ti∏p c™n này s˚ dˆng ph˜ẽng phỏp phõn tớch ẻng ∫ hẩ trề ph˜ẽng phỏp phõn tớch tổnh tớnh toỏn nh˙ng tr˜èng hềp cản thác thi oĐn mó Mẻt trong nh˙ng cụng cˆ phõn tớch mó thác thi theo h˜ểng phõn tớch hẩn hềp tiờn ti∏n nhòt hiên nay là BE-PUM [15].

Cỏc h˜ểng ti∏p c™n nờu trờn t™p trung vào viêc giÊi quy∏t cỏc kˇthu™t làm rậi mó ˜ềc ỏp dˆng cho mˆc ớch chậng d‡ch ng˜ềc Bờn cĐnh cỏc kˇ thu™t làm rậi mó này, mó ẻc cũn ỏp dˆng cỏc kˇthu™t làm rậi mó giỳp trỏnh viêc b‡so trựng bi ch˙ k˛, ho∞c trỏnh b‡ phỏt hiên bi cỏc ∞c tÊ hành vi nguy hĐi khi ki∫m tra băng ph˜ẽng phỏp ki∫m tra mụ hỡnh Ph˜ẽng phỏp so trùng ch˙k˛v®n g∞p nhi∑u h§n ch∏ bi các kˇthu™t làm rËi mã, trong khi ó, ã có có nhi∑u nghiờn c˘u giỳp giÊi quy∏t vòn ∑này ậi vểi ph˜ẽng phỏp ki∫m tra mụ hỡnh [16, 17].

∫ ∞c tÊ cỏc thuẻc tớnh cú th∫xÊy ra trờn cỏc ˜èng thác thi cıa ch˜ẽng trỡnh,lu™n l˛ cõy tính toán (Computation Tree Logic - CTL) ˜Òc s˚dˆng [14] Ví dˆ, trong Hình 2.4a, o§n mã t¯ lênh5 :mov eax,0 ∏n lênh7 :call GetM oduleHandleA là mẻt bi∏n th∫cıa virusAvron, t˜ẽng ˘ng vểi cỏc ứnh {5,6,7} trờn CFG ∫ xỏc ‡nh sá hiên diên cıa bi∏n th∫ này, hành vi cıa nú phÊi ˜ềc mụ tÊbăng mẻt cụng th˘c lu™n l˛ Trong tr˜èng hềp này, cụng th˘c lu™n l˛cú th∫ ˜ềc bi∫u diπn b¨ng CTL = EF(mov(eax,0)^AF(push(eax)^AXcall(GetM oduleHandleA))). mụ tÊrăng cuậi cựng cÙng tÁn tĐi mẻt ˜èng i sao cho mov eax,0 s≥ ˜ềc thác thi, sau ú eaxs≥ ˜ềc ây vào stack và cuậi cựng thác thi lênh call GetM oduleHandleA.

1: jz 3 2: jmp 4 3: add ecx, 3 4: jmp address1 5: mov eax,0 6: push eax 7: call GetModuleHandleA 8: hlt

9: jo 10 10: jmp 12 11: inc ecx 12: mov address1, 5 13: jmp address2

Tuy nhiên, kˇ thu™t làm rËi mã thay Íi thanh ghi (register reassignment) có th∫ ˜Òc ỏp dˆng băng cỏch thay lênh 5 : mov eax,0 băng 5 : mov ecx,0 và lênh 6 : push eax băng6 : push ecx ∫ trỏnh b‡ phỏt hiên bi cụng th˘c này Cụng th˘c khi ú s≥ phÊi ˜ềc thay Íi thành EF(mov(eax,0)^AF(push(eax) ))_EF(mov(ebx,0)^AF(push(ebx) ))_EF(mov(ecx,0)^AF(push(ecx) ))_ (bao gÁm tòt cÊthanh ghi).

Nhi∑u cụng trỡnh nghiờn c˘u ó ˜ềc ∑ xuòt ∫giÊi quy∏t cỏc kˇthu™t làm rậi mó ˜ềc s˚ dˆng ∫ ậi phú vểi ∞c tÊ hỡnh th˘c Trong [17], CTPL ˜ềc giểi thiêu nh˜ là mẻt nõng còp cıa CTL vÓi l˜Òng t¯ Trong [18], SCTPL ti∏p tˆc phát tri∫n CTPL ∫ x˚l˛các kˇthu™t làm rậi mó liờn quan ∏n ng´n x∏p Lu™n l˛này sau ú ˜ềc m rẻng thành SCTPL\X [16] ∫ giỏm sỏt tật hẽn nẻi dung cıa stack.

Th£o lu™n

Trong bậi cÊnh cıa vòn ∑ mà lu™n ỏn ang giÊi quy∏t, cỏc kˇ thu™t làm rậi mó t™p trung chı y∏u vào hai mˆc ớch, th˘nhòt là chậng lĐi cỏc ph˜ẽng phỏp d‡ch ng˜ềc dựng ∫thác hiên phõn tớch tổnh, th˘ hai là chậng lĐi cỏc ∞c tÊ hành vi cıa mó ẻc. ậi vểi nhúm cỏc kˇthu™t làm rậi mó dựng ∫chậng lĐi cỏc ph˜ẽng phỏp d‡ch ng˜ềc, sau khi phõn tớch cỏc ph˜ẽng phỏp phõn tớch ẻng, phõn tớch tổnh và phõn tớch hẩn hềp, chỳng tụi nh™n thòy cụng cˆBE-PUM vểi cỏc kˇthu™t phõn tớch tiờn ti∏n cho k∏t quÊ chớnh xỏc nhòt.

BE-PUM cÙng giÊi quy∏t ˜ềc hảu h∏t cỏc kˇthu™t làm rậi mó tiờn ti∏n nh˜ SEH, mó tá thay Íi, úng gúi Do v™y trong lu™n ỏn này, chỳng tụi s˚ dˆng BE-PUM làm cụng cˆxõy dáng CFG.

Vểi nhúm cỏc kˇthu™t làm rậi mó chậng lĐi ∞c tÊhành vi, cỏc nghiờn c˘u hiên nay ∑u t™p trung vào viêc phỏt tri∫n lu™n l˛ thèi gian ∫giÊi quy∏t cỏc kˇ thu™t làm rậi mó này Tuy nhiờn,mẩi cÊi ti∏n lu™n l˛ thèi gian chứ giÊi quy∏t ˜ềc mẻt kˇ thu™t làm rậi mó nhòt ‡nh vểi chi phớ c™p nh™t cụng cˆki∫m tra mụ hỡnh khỏ lển ∫cú th∫hoĐt ẻng vểi cỏc lu™n l˛ thèi gian này Do v™y, trong lu™n ỏn, chỳng tụi giÊi quy∏t vòn ∑ này băng mẻt ph˜ẽng phỏp tr¯u t˜ềng hoỏ ∫ lo§i b‰nhi∑u kˇthu™t làm rËi mã cùng lúc mà không ph£i c™p nh™t lu™n l˛thÌi gian (và công cˆki∫m tra mô hình).

Gom cˆm d˙ liêu

Ph˜ẽng phỏp gom cˆm phõn hoĐch

Ph˜ẽng phỏp gom cˆm phõn hoĐch th˜èng s˚dˆng mẻthàm mˆc tiờu ∫ o hiêu suòt gom cˆm, t¯ ú cỏc ậi t˜ềng ˜ềc gom vào cỏc cˆm sao cho chòt l˜ềng gom cˆm theo hàm mˆc tiờu là tật nhòt ∫ xỏc ‡nh ẻ t˜ẽng tá gi˙a cỏc ậi t˜ềng, ẻ o khoÊng cỏch th˜èng ˜ềc s˚dˆng.

Ph˜ẽng phỏp gom cˆm k-means Dáa trờn thu™t toỏn k-means [72], ph˜ẽng phỏp k-means phõn hoĐch mẻt t™p D cún ậi t˜Òng thành kcˆm (kn)C j , j= 1, k Sau ó, trÂng tâm (mean) cıa mÈi cˆm ˜Òc xác ‡nh băng cỏch tớnh giỏ tr‡trung bỡnh cıa cỏc ậi t˜ềng trong cˆm ú Sau ú chòt l˜ềng gom cˆm ˜Òc tính b¨ng hàm mˆc tiêu sau: f = P k i=1

(x i à j ) 2 Vểik là sậ l˜ềng cˆm,xi là ậi t˜ềng thuẻc cˆmCj và àj là trÂng tõm cıa cˆmCj Nh˜ v™y các Ëi t˜Òng s≥ ˜Òc phân ho§ch vàokcˆm sao cho kho£ng cách t¯chúng ∏n trÂng tâm cıa cˆm ú là nh‰ nhòt.–lản chĐy ảu tiờn, trÂng tõm cıa mẩi cˆm s≥ ˜ềc chÂn ngđu nhiờn.

Sau khi các Ëi t˜Òng ˜Òc phân ho§ch vào cˆm, trÂng tâm cıa cˆm s≥ ˜Òc tính l§i Quá trình gom cˆm ˜Òc ti∏p diπn cho ∏n khi trÂng tâm cıa các cˆm là không Íi Thu™t toán k-means ˜Òc trình bày nh˜sau.

Ph˜ẽng phỏp gom cˆm k-medoids Ph˜ẽng phỏp gom cˆm k-means g∞p phÊi hĐn ch∏lển trong tr˜èng hềp cú nhiπu Vớ dˆ, n∏u cú mẻt ậi t˜ềng trong t™p d˙ liêu cú giỏ tr‡các lển, khi ú trÂng tõm cıa cˆm mà ậi t˜ềng này ˜ềc phõn hoĐch vào s≥ b‡ Ênh h˜ng ỏng k∫ Trong tr˜èng hềp này, chòt l˜ềng gom cˆm cıak-means s≥b‡suy gi£m.

∫ giÊi quy∏t vòn ∑này, ph˜ẽng phỏpk-medoids ˜ềc ∑xuòt [73] vểi viêc chÂn mẻt phản t˚thác làm tõm ch˘ khụng dáa vào giỏ tr‡ trung bỡnh cıa cỏc ậi t˜ềng trong cˆm Sau ú, cỏc ậi t˜ềng ˜ềc phõn hoĐch vào cˆm nào mà khoÊng cỏch gi˙a chỳng ∏n tõm cˆm là nh‰ nhòt.

Input: T™pD, sËcˆmk Output: T™p kcˆm ChÂn ng®u nhiên k Ëi t˜Òng t¯ Dlàm tâm cıa cˆm; repeat 1 Gán Ëi t˜Òng vào cˆm sao cho kho£ng cách t¯ Ëi t˜Òng ∏n trÂng tâm cıa cˆm ó là nh‰nhòt;

2 C™p nh™t l§i trÂng tâm cıa cˆm; until TrÂng tâm cıa các cˆm không Íi;

Hàm mˆc tiêu ˜Òc xác ‡nh là kho£ng cách trung bình cıa Ëi t˜Òng ∏n tâm cˆm mà chúng ˜Òc phân ho§ch vào Sau ó, vÓi các cˆm ˜Òc t§o ra, tâm cˆm ˜Òc thay th∏ b¨ng Ëi t˜Òng khỏc sao cho giỏ tr‡cıa hàm mˆc tiờu là nh‰ nhòt Quỏ trỡnh gom cˆm ˜ềc ti∏p diπn cho ∏n khi hàm mˆc tiêu ˜Òc tËi˜u.

Ph˜ẽng phỏp gom cˆm phõn còp

Ph˜ẽng phỏp gom cˆm phõn còp là kˇthu™t xõy dángcõy phõn còp cˆm d˙ liêu (dendogram), th∫ hiên ˜ềc quan hê gi˙a cỏc cˆm ∫ xõy dáng cõy phõn còp cˆm d˙ liêu, cỏc cˆm nh‰ s≥ ˜ềc hềp nhòt thành cỏc cˆm lển hẽn - ˜ềc gÂi là ph˜ẽng phỏptrẻn (agglomerative), ho∞c phõn tỏch mẻt cˆm thành cỏc cˆm nh‰ hẽn - ˜ềc gÂi là ph˜ẽng phỏp phõn ró (divisive) Hỡnh 2.5 mụ tÊ hai ph˜ẽng phỏp gom cˆm này.

Ph ươ ng pháp tr ộ n Bước 1

Hỡnh 2.5: Ph˜ẽng phỏp gom cˆm phõn còp.

Ph˜ẽng phỏp trẻn, vểi h˜ểng ti∏p c™nt¯d˜ểi lờn, b≠t ảu vểi mẩi cˆm chứ cú mẻt ậi t˜ềng.

Sau ú cỏc cˆm t˜ẽng tá ˜ềc gom thành mẻt cˆm mểi Viêc gom cˆm ti∏p tˆc ˜ềc thác hiên vểi cỏc cˆm mểi ˜ềc tĐo ra, cho ∏n khi cú mẻt cˆm ch˘a tòt cÊcỏc ậi t˜ềng, ho∞c i∑u kiên k∏t thúc ˜Òc tho£mãn.

Ph˜ẽng phỏp phõn ró, vểi h˜ểng ti∏p c™nt¯trờn xuậng, b≠t ảu vểi mẻt cˆm ch˘a tòt cÊ cỏc ậi t˜ềng Sau ú cˆm này s≥ ˜ềc phõn ró thành cỏc cˆm nh‰hẽn Quỏ trỡnh phõn ró ˜ềc ti∏p tˆc thác hiên cho ∏n khi mẩi cˆm chứch˘a mẻt ậi t˜ềng, ho∞c i∑u kiên k∏t thỳc ˜ềc tho£ mãn. ậi vểi cÊ hai ph˜ẽng phỏp gom cˆm trờn, viêc chÂn cˆm ∫ trẻn hay phõn ró ˜ềc thác hiên dáa trờn ẻ t˜ẽng tácıa cˆm Cú bận ph˜ẽng phỏp phÍbi∏n ∫ o ẻt˜ẽng tácıa cˆm là ph˜ẽng phỏp liờn k∏t trung bỡnh [74], ph˜ẽng phỏp kiờn k∏t ẽn [74], ph˜ẽng phỏp liờn k∏t ảy ı [75] và ph˜ẽng phỏp Ward [76].

Trong cỏc thu™t toỏn thác hiên gom cˆm phõn còp, thu™t toỏn Hierarchical Agglomerative Clustering (HAC) [77, 78] là giÊi thu™t phÍbi∏n nhòt GiÊi thu™t này s˚dˆng ph˜ẽng phỏp trẻn

∫ gom cˆm ∫ thác hiên gom cˆm, HAC xõy dáng mẻt ma tr™n k∑ch˘a khoÊng cỏch gi˙a cỏc c∞p ậi t˜ềng Cỏc c∞p ậi t˜ềng cú ẻ t˜ẽng tá cao nhòt trờn ma tr™n k∑ này s≥ ˜ềc gom thành mẻt cˆm Quỏ trỡnh trẻn ˜ềc ti∏n hành cho ∏n khi cú mẻt cˆm ch˘a tòt cÊ cỏc ậi t˜ềng, ho∞c i∑u kiên k∏t thỳc ˜ềc thoÊ món.

Ngoài thu™t toỏn HAC, cũn cú mẻt sậ thu™t toỏn gom cˆm phõn còp khỏc cÙng ˜ềc s˚ dˆng rẻng rói nh˜ PDDP [79], ROCK [80], CURE [81]

Th£o lu™n

Ph˜ẽng phỏp gom cˆm phõn hoĐch th˜èng cú thèi gian thác thi nhanh hẽn so vểi ph˜ẽng phỏp gom cˆm phõn còp, ∞c biêt là ậi vểi cỏc t™p d˙ liêu lển Tuy nhiờn, ph˜ẽng phỏp gom cˆm phõn còp lĐi cung còp nhi∑u thụng tin hẽn nhèvào còu trỳc cıa cõy phõn còp cˆm d˙liêu Vỡ v™y, ph˜ẽng phỏp gom cˆm phõn còp th˜èng ˜ềc s˚ dˆng ∫gom cˆm khỏi niêm. ậi vểi yờu cảu hê thậng hoỏ mó ẻc, quan hê gi˙a cỏc cˆm mó ẻc là ròt quan trÂng ∫ suy diπn ˜ềc quan hê gi˙a cỏc cˆm,ng˙ cÊnh cıa cỏc quan hê này cản ˜ềc xỏc ‡nh Phõn tớch khỏi niêm hỡnh th˘c (Formal Concept Analysis) [22] ròt phự hềp cho mˆc ớch này nhè vào

‡nh nghổa v∑ ng˙ cÊnh hỡnh th˘c và ph˜ẽng phỏp này hẩ trề xõy dáng mẻt giàn khỏi niêm Đi diên cho cỏc mậi quan hê phõn còp gi˙a cỏc t™p ậi t˜ềng trong cỏc bẻ d˙ liêu, mẩi t™p ậi t˜ềng ˜ềc bi∫u diπn bi mẻt t™p cỏc thuẻc tớnh Trờn n∑n tÊng l˛ thuy∏t này và trong bậi cÊnh hành vi nguy hĐi cıa mó ẻc ˜ềc ∞c tÊ băng cỏc cụng th˘c lu™n l˛ thèi gian, lu™n ỏn ∑ xuòt ph˜ẽng phỏp phõn tớch khỏi niêm lu™n l˛ mó ẻc (Viral Logical Concept Analysis) giỳp xõy dáng giàn khỏi niêm mó ẻc Ngoài ra ∫ giÊi quy∏t vòn ∑ v∑ hiêu suòt cıa ph˜ẽng phỏp gom cˆm phõn còp, ∞c biêt khi t™p d˙liêu mó ẻc là ròt lển, lu™n ỏn ∑ xuòt mẻt kˇ thu™t gÂi là gom cˆm khỏi niêm liờn tˆc (On-the-fly Conceptual Clustering) nh˜ trỡnh bày chi ti∏t trongCh˜ẽng 5.

CH◊ÃNG 3 PH◊ÃNG PHÁP KIửM TRA GIA TóNG TÿNG PHĩN

Nh˜ ó thÊo lu™nCh˜ẽng 1, cỏc ph˜ẽng phỏp phỏt hiên mó ẻc trong cụng nghiêp bao gÁm so trựng ch˙ k˛và phõn tớch hành vi trờn mụi tr˜èng giÊl™p ∑u cú nh˙ng hĐn ch∏ nhòt ‡nh ∫ kh≠c phˆc nh˙ng hĐn ch∏ này, ph˜ẽng phỏpphõn tớch tổnh ˜ềc ∑ xuòt ∫ phõn tớch ch˜ẽng trỡnh mà khụng cản phÊi thác thi ch˜ẽng trỡnh [60] Băng cỏch phõn tớch bi∫u diπn trung gian cıa mẻt ch˜ẽng trỡnh, ph˜ẽng phỏp phõn tớch tổnh cú th∫ cung còp thụng tin h˙u ớch ∫ xỏc

‡nh hành vi nguy hĐi cú xuòt hiên trong ch˜ẽng trỡnh hay khụng.

Mẻt h˜ểng ti∏p c™n phõn tớch tổnh cú nhi∑u k∏t quÊ khÊquan là s˚ dˆngph˜ẽng phỏp hỡnh th˘c [12] ∫ phỏt hiên hành vi nguy hĐi cú th∫ xuòt hiên trong mẻt ch˜ẽng trỡnh Trong cỏc h˜ểng ti∏p c™n s˚dˆng ph˜ẽng phỏp hỡnh th˘c,ki∫m tra mụ hỡnh là mẻt ph˜ẽng phỏp ròt phự hềp vỡ n∑n tÊng lu™n l˛ thèi gian [14] mà ph˜ẽng phỏp này s˚dˆng cú khÊ n´ng bi∫u diπn ng˙ nghổa cıa chuẩi cỏc hành vi trong ch˜ẽng trỡnh.

Mẻt cỏch tÍng quỏt, h˜ểng ti∏p c™n ỏp dˆng ki∫m tra mụ hỡnh ∫phỏt hiên mó ẻc bao gÁm hai b˜ểc Tr˜ểc tiờn, mẻt cụng cˆmụ hỡnh hoỏ ch˜ẽng trỡnh nh˜BE-PUM [15] ˜ềc dựng ∫ tĐo ra mẻt mụ hỡnh tr¯u t˜ềng t¯ mó thác thi cıa ch˜ẽng trỡnh cản ki∫m tra Sẽ ÁluÁng thác thi (Control Flow Graph - CFG) th˜èng ˜ềc dựng nh˜ mẻt mụ hỡnh tr¯u t˜ềng tĐi b˜ểc này.

Sau ú, CFG ˜ềc ki∫m tra bicụng cˆ ki∫m tra mụ hỡnh vểi mẻt cụng th˘c lu™n l˛ thèi gian bi∫u diπn hành vi nguy hĐi [16, 18] K∏t quÊ ki∫m tra s≥ cho thòy hành vi nguy hĐi cú xuòt hiên trên CFG hay không.

Khi duyêt CFG trong quỏ trỡnh ki∫m tra, cụng cˆ ki∫m tra mụ hỡnh s≥ tĐo ra khụng gian trĐng thỏi (state space) và ki∫m tra t¯ng trĐng thỏi trờn khụng gian này vểi thuẻc tớnh cản ˜ềc ki∫m tra (nghổa là hành vi nguy hĐi trong ng˙ cÊnh cıa lu™n ỏn) Trong thác t∏, khụng gian trĐng thỏi th˜èng ròt lển, dđn tểi viêc bựng nÍchi phớ cản dựng ∫ thác hiên viêc ki∫m tra õy chớnh là vòn ∑ bựng nÍ khụng gian trĐng thỏi nÍi ti∏ng cıa ph˜ẽng phỏp ki∫m tra mụ hỡnh.

Trong ch˜ẽng này, lu™n ỏn giÊi quy∏t vòn ∑ bựng nÍ khụng gian trĐng thỏi băng mẻt ∑ xuòt gÂi là!-region, ˜ềc xõy dáng t¯CFG Tr˜ểc tiờn, khỏi niêm!-instruction ˜ềc giểi thiêu, õy là cỏc lênh ớt khi xÊy ra trong phõn oĐn mó ẻc cıa phản m∑m nguy hĐi ∫ xỏc ‡nh cỏc

!-instructions này, chỳng tụi xõy dáng mẻt trÂng sậmểi dáa trờn tản suòt, ˜ềc gÂi là tản suòt ngh‡ch Êo lênh mó ẻc (if imf), lòy cÊm h˘ng t¯ ẻ o tf idf cıa lu™t Zipf nÍi ti∏ng [82].

Các !-instructions sau ó ˜Òc s˚dˆng ∫ phân chia CFG thành các mô hình con, ˜Òc gÂi là

!-regions Sau ú, chỳng tụi ch˘ng minh răng oĐn mó thác hiên hành vi nguy hĐi khụng xuòt hiên trong nhi∑u hẽn mẻt!-region Quan sỏt quan trÂng này cho phộp cỏc !-regions ˜ềc ki∫m tra mẻt cỏch riờng lƠ, thay vỡ toàn bẻ CFG Chi∏n l˜ềc này cho k∏t quÊ ròt khÊquan vểi viêc giÊm ỏng k∫ ẻph˘c tĐp cıa quỏ trỡnh ki∫m tra.

Các nghiên c˘u liên quan

Xõy dáng CFG

Trong cỏch ti∏p c™n dáa trờn ki∫m tra mụ hỡnh nh˜ ó thÊo lu™n trong Mˆc 2.1.3, ta giÊ ‡nh răng cú mẻt CFG ˜ềc xõy dáng lĐi chớnh xỏc t¯ch˜ẽng trỡnh nh‡phõn ban ảu Tuy nhiờn, xõy dáng CFG khụng phÊi là mẻt viêc ẽn giÊn, do nh˙ng vòn ∑ phÍ bi∏n sau õy cıa quỏ trình phân tích mã nh‡phân.

• Xỏc ‡nh ‡a chứ ớch cıa lênh nhÊy ẻng Vớ dˆ, trong Hỡnh 3.3a,4 :jmp address1 là mẻt lênh nhÊy ẻng cú ‡a chứ ớch ˜ềc l˜u trongaddress1, mà ‡a chứ ớch này chứcú th∫ ˜ềc xỏc ‡nh khi thác thi.

• X˚ l˛ lèi gÂi hàm th˜ viên ho∞c API hê thậng Khi ch˜ẽng trỡnh gậc gÂi mẻt hàm th˜ viên ho∞c API hê thậng, viêc thác hiên hành vi cıa hàm th˜ viên/API này cÙng cản ˜ềc phÊn ánh trong CFG.

• ∞c tÊ ng˙ nghổa cıa tòt cÊcỏc lênh assembly Vỡ sậ l˜ềng cỏc lênh này t˜ẽng ậi lển nờn viêc ∞t tÊ này s≥ tận ròt nhi∑u thèi gian.

Trong nh˙ng n´m gản õy, cú mẻt sậcụng cˆxõy dáng CFG ˜ềc cụng bậ nh˜IDA Pro [83],CodeSuffer [13], BINCOA [84] và Jakstab [60, 85] Sá khỏc biêt chớnh cıa cỏc cụng cˆnày năm

 cỏch x˚ l˛cỏc lênh nhÊy ẻng và chỳng cú th∫ ˜ềc phõn loĐi thành hai nhúm chớnh là phõn tớch tổnh (static analysis) vàphõn tớch hẩn hềp (hybrid analysis).

Trong sậnh˙ng cụng cˆnày, cú l≥IDA Pro là mẻt trong nh˙ng cụng cˆth˜ẽng mĐi nÍi ti∏ng nhòt, k∏t hềp hai kˇ thu™t disassembly ê quy và quột tuy∏n tớnh Hai kˇ thu™t này ˜ềc s˚ dˆng cho viêc x˚l˛cỏc lênh nhÊy ẻng - nguyờn nhõn gõy ra còu trỳc khụng ỏng tin c™y cıa CFG do IDA Pro tĐo ra Phõn tớch t™p giỏ tr‡ (VSA) [66] sau ú ˜ềc giểi thiêu là mẻt kˇthu™t phõn tớch tổnh ∫x˚ l˛cỏc lênh nhÊy ẻng tật hẽn Áp dˆng xòp xứtrờn, VSA tớnh toỏn t™p giỏ tr‡ho∞c ‡a chứmà cỏc ớch cıa lênh nhÊy ẻng cú th∫ ch˘a ˜ềc m rẻng t¯ IDA Pro, CodeSurfer [13] s˚dˆng VSA và ph˜ẽng phỏp xỏc ‡nh còu trỳc tÍng hềp (ASI) ∫tớnh toỏn cỏc ớch nhÊy ẻng mà IDA Pro khụng th∫ xỏc ‡nh chớnh xỏc Tuy nhiờn, CodeSurfer dáa vào k∏t qu£ disassembly cıa IDA Pro, mà k∏t qu£phân tích cıa IDA Pro còn nhi∑u h§n ch∏, do ó k∏t qu£ phân tích CodeSuffer cÙng không chính xác. ỏng chỳ ˛, Jakstab [60] - cụng cˆ nÍi ti∏ng nhòt trong cẻng Áng nghiờn c˘u - tĐo ra CFG theo cỏch trác ti∏p Cụng cˆ này thác hiên phõn tớch luÁng d˙ liêu trờn sẽ ÁluÁng i∑u khi∫n, sau ú s˚dˆng k∏t quÊ phõn tớch này ∫tớnh toỏn cỏc ớch nhÊy ẻng, t¯ ú khỏm phỏ ra cỏc khu vác mểi Tuy nhiờn, quỏ trỡnh tớnh toỏn khụng phÊi lỳc nào cÙng chớnh xỏc.

H˜ểng ti∏p c™n phõn tớch hẩn hềp, k∏t hềp gi˙a phõn tớch tổnh vàphõn tớch ẻng sau ú ˜ềc ∑xuòt [67, 68] Băng cỏch k∏t hềp vểi ph˜ẽng phỏp phõn tớch ẻng, nghổa là thác hiên phõn tớch mó nh‡ phõn băng ph˜ẽng phỏp mụ ph‰ng, phõn tớch hẩn hềp cú th∫ x˚ l˛mẻt sậkˇ thu™t làm rậi mó, Áng thèi thu th™p nh˙ng thụng tin trong quỏ trỡnh thác thi mà viêc tớnh toỏn băng cỏc ph˜ẽng phỏp tổnh khú thác hiên ˜ềc Cỏch ti∏p c™n hẩn hềp cú nhi∑u tri∫n vÂng vỡ nú t™n dˆng ˜ềc cỏc ˜u i∫m cıa phõn tớch ẻng ∫ bÍ sung cho nh˙ng khuy∏t i∫m cıa phõn tớch tổnh Tuy nhiờn, hảu h∏t cỏc cụng trỡnh ˜ềc cụng bậtheo h˜ểng ti∏p c™n này vđn cú th∫b‡ ỏnh l¯a bi cỏc kˇthu™t làm rậi mó tiờn ti∏n chỉng hĐn nh˜ mó tá giÊi nộn [86] và k∏t qu£ phân tích trnên không chính xác trong nh˙ng tr˜Ìng hÒp này.

Theo cỏc cụng bậgản nhòt, BE-PUM [15] - mẻt cụng cˆ phõn tớch hẩn hềp - là cụng cˆcú th∫tĐo ra CFG tật nhòt cho tr˜èng hềp mó nguÁn b‡ làm rậi và ∞c biêt là khi x˚ l˛lênh nhÊy ẻng Do v™y, trong lu™n ỏn này, BE-PUM ˜ềc chÂn làm cụng cˆ xõy dáng CFG.

Ph˜ẽng phỏp ki∫m tra thành phản

M∞c dự ki∫m tra mụ hỡnh v∑ m∞t l˛ thuy∏t cú khÊ n´ng xỏc ‡nh sá tÁn tĐi cıa cỏc hành vi nguy hĐi, nh˜ng khuy∏t i∫m chớnh cıa nú - vòn ∑ bựng nÍ khụng gian trĐng thỏi - là mẻt vòn

∑ nghiờm trÂng Do ú, mẻt sậ nghiờn c˘u ó ˜ềc cụng bậ ∫giÊi quy∏t mẻt phản vòn ∑ này.

Mẻt ph˜ẽng phỏp ỏng chỳ˛ làph˜ẽng phỏp ki∫m tra thành phản (compositional verification method) [20, 21], ph˜ẽng phỏp này ˜ềc xõy dáng dáa trờn cỏc kˇ thu™t tr¯u t˜ềng và phõn ró.

Công cụ kiểm tra mô hình

Phân rã Đặc tả thuộc tính Mô hình con 1 Mô hình con 2 … Mô hình con n

Hỡnh 3.1: Ph˜ẽng phỏp ki∫m tra thành phản.

Quỏ trỡnh ki∫m tra theo ph˜ẽng phỏp này ˜ềc minh hÂa trong Hỡnh 3.1 Tr˜ểc h∏t, mụ hỡnh ban ảu ˜ềc phõn ró thành nhi∑u mụ hỡnh con Cụng cˆ ki∫m tra mụ hỡnh sau ú ki∫m tra t¯ng mô hình riêng l¥ Sau khi ki∫m tra, các mô hình con ˜Òctr¯u t˜Òng hoá thành cácmô hình con tr¯u t˜Òng, sau ó chúng ˜Òc k∏t hÒp l§i thànhmô hình tr¯u t˜Òng tÍng hÒp Công cˆ ki∫m tra mụ hỡnh mẻt lản n˙a ki∫m tra mụ hỡnh tr¯u t˜ềng tÍng hềp lản cuậi cựng tr˜ểc khi k∏t lu™n v∑ k∏t qu£ ki∫m tra.

Mˆc tiêu cıa cách ti∏p c™n này là ∫ki∫m tra các mô hình con riêng l¥và sau ó ki∫m tra mô hỡnh tr¯u t˜ềng tÍng hềp ∫ k∏t lu™n răng k∏t qua ki∫m tra là chớnh xỏc ∫ phõn chia mẻt mụ hình thành các mô hình con, các kˇ thu™t phân rã ˜Òc s˚dˆng [87] MÈi mô hình con có không gian trĐng thỏi riờng và quỏ trỡnh ki∫m tra ˜ềc b≠t ảu băng cỏch ki∫m tra t¯ng mụ hỡnh con.

Các kˇthu™t tr¯u t˜Òng hoá [88, 89] ˜Òc áp dˆng ∫ gi£m kích th˜Óc cıa t¯ng mô hình con sau khi ó ki∫m tra, t¯ ú giÊm kớch th˜ểc cıa mụ hỡnh tr¯u t˜ềng tÍng hềp ˜ềc xõy dáng băng cỏch k∏t hềp cỏc mụ hỡnh con tr¯u t˜ềng này Do viêc mòt thụng tin trong quỏ trỡnh tr¯u t˜ềng hoỏ, mụ hỡnh con tr¯u t˜ềng khụng th∫bÊo toàn tòt cÊ cỏc thuẻc tớnh cıa mụ hỡnh ban ảu Tuy nhiờn, n∏u cỏc tớnh chòt quan trÂng dựng ∫ ki∫m tra vđn ˜ềc l˜u gi˙ sau khi tr¯u t˜Òng hoá, k∏t qu£ ki∫m tra v®n chính xác.

(c) Mô hình trừu tượng (d) Mô hình trừu tượng kết hợp

Hỡnh 3.2: Cỏc b˜ểc thác hiên ki∫m tra thành phản.

Hỡnh 3.2 mụ tÊ viêc ỏp dˆng cỏch ti∏p c™n ki∫m tra thành phản cho bài toỏn ki∫m tra CFG.

CFG ban ảu ˜ềc phõn ró thành nhi∑u CFG con (t˜ẽng ˘ng vểi cỏc mụ hỡnh con trong cỏch ti∏p c™n ki∫m tra thành phản) nh˜ ˜ềc mụ tÊ trong Hỡnh 3.2b Sau khi ˜ềc ki∫m tra riờng lƠ, cỏc mụ hỡnh con này ˜ềc tr¯u t˜ềng hoỏ thành cỏc mụ hỡnh ẽn giÊn hẽn, chứ cú cỏc thụng tin cản thi∏t ˜ềc gi˙ lĐi nh˜ mụ tÊ trong Hỡnh 3.2c Cuậi cựng, tòt cÊ cỏc mụ hỡnh tr¯u t˜ềng ˜ềc k∏t hềp lĐi theo còu trỳc ban ảu cho viêc ki∫m tra lản cuậi nh˜ th∫hiên trong Hỡnh 3.2d.

Tuy nhiờn, ∫thác hiên cỏc b˜ểc này, cản cú ph˜ẽng phỏp ∫giÊi quy∏t cỏc vòn ∑ sau.

1 Làm sao ∫phõn chia mụ hỡnh - trong tr˜èng hềp này là CFG ˜ềc xõy dáng t¯mó thác thi - thành cỏc mụ hỡnh con mẻt cỏch hềp l˛;

2 Làm sao ∫tr¯u t˜Òng hoá các mô hình con sau khi ki∫m tra;

3 Làm sao ∫k∏t hÒp nh˙ng mô hình con sau khi ki∫m tra và tr¯u t˜Òng hoá.

Trong nghiờn c˘u này, lu™n ỏn ∑xuòt khỏi niêm !-region và ch˘ng minh răng hành vi nguy hĐi cật lừi cıa mẻt mó ẻc nào ú s≥ khụng xuòt hiên trong nhi∑u hẽn mẻt!-region Nh˜ v™y, vòn ∑ (1) ˜ềc giÊi quy∏t băng cỏch phõn chia CFG ban ảu thành mẻt t™p hềp cỏc !-regions.

Vòn ∑ (3) trnờn khụng cản thi∏t ∫ giÊi quy∏t vỡ dáa vào cẽslà n∏u ch˜ẽng trỡnh cản ki∫m tra thác hiên mẻt hành vi nguy hĐi, thỡ hành vi này chứ xuòt hiên trong mẻt !-region, i∑u này cú nghổa là chỳng ta khụng cản phÊi k∏t hềp lĐi!-regions nh˜ph˜ẽng phỏp ki∫m tra thành phản (trỡnh bày trong Hỡnh 3.2d) ∫ x˚ l˛vòn ∑ (2), lu™n ỏn ∑ xuòt chi∏n l˜ềc tr¯u t˜ềng hoỏ thích hÒp cho!-region nh˜trình bày trong Mˆc 3.5.

V∑cẽbÊn ph˜ẽng phỏp ki∫m tra gia t´ng t¯ng phản t˜ẽng Áng vểi ph˜ẽng phỏp ki∫m tra thành phản  b˜ểc phõn ró mụ hỡnh và ki∫m tra t¯ng mụ hỡnh con - trong tr˜èng hềp này là

!-region Tuy nhiờn, do khụng cản phÊi k∏t hềp lĐi cỏc mụ hỡnh con và ki∫m tra thờm mẻt lản n˙a (n∏u k∏t quÊ ki∫m tra cỏc mụ hỡnh con khụng phỏt hiên thòy hành vi nguy hĐi), ph˜ẽng ki∫m tra gia t´ng t¯ng phản cú hiêu suòt cao hẽn.

Cỏc ‡nh nghổa ban ảu

‡nh nghổa 5 (Ch˜ẽng trỡnh x86) Mẻt ch˜ẽng trỡnh x86 là mẻt bẻ P{Phloc;insi, p}, vểi

• Phloc;insi là danh sỏch cỏc c∞p, mẩi c∞p gÁm mẻt v‡ trớ loc và mẻt lênh assembly ins;

Cú hai loĐi lênh trong ch˜ẽng trỡnh x86, ú là lênh tuản tá và lênhr≥ nhỏnh Cỏc lênh tuản tá ˜ềc thác hiên tuản tá Ng˜ềc lĐi, cỏc lênh r≥ nhỏnh cú th∫làm cho ch˜ẽng trỡnh ˜ềc thác hiên vểi cỏc chuẩi lênh khỏc nhau.

Vớ dˆ 2 Hỡnh 3.3a mụ tÊ mẻt vớ dˆv∑ch˜ẽng trỡnh x86, mẩi dũng là mẻt c∞p v‡ trớ và lênh.

Dũng 1 cıa ch˜ẽng trỡnh là mẻt vớ dˆ v∑lênh r≥nhỏnh cú th∫chuy∫n luÁng i∑u khi∫n sang v‡

1: jz 3 2: jmp 4 3: add ecx, 3 4: jmp address1 5: mov eax,0 6: push eax 7: call GetModuleHandleA 8: hlt

9: jo 10 10: jmp 12 11: inc ecx 12: mov address1, 5 13: jmp address2

(b) Á th‡ luÁng thác thi (CFG).

S 8 (3) S 8 (4) ecx [ α ] ecx [ α ] ecx [ α ] ecx [ α +3] ecx [ α +3] ecx [ α ] ecx [ α ] ecx [ α +1] ecx [ α +3] ecx [ α +4]

(c) Không gian tr§ng thái.

Hỡnh 3.3: ASM, CFG và khụng gian trĐng thỏi cıa ch˜ẽng trỡnh. trớ 2 ho∞c 3 Dũng 3 là mẻt vớ dˆ i∫n hỡnh cıa lênh tuản tá add ecx,3 ∞c biêt, dũng 4 là vớ dˆ v∑ mẻt lênh nhÊy ẻng jmp address1 Lênh nhÊy này ˜ềc gÂi là lênh nhÊy ẻng bi vỡ ớch nhÊy cıa nú chứ cú th∫ ˜ềc xỏc ‡nh trong quỏ trỡnh thác thi LuÁng thác thi cıa ch˜ẽng trỡnh phˆ thuẻc vào k∏t quÊ thác hiên cıa lênh nhÊy này.

∫ giÊi quy∏t tr ngĐi trong viêc bi∫u diπn cỏc luÁng thác thi trong mẻt ch˜ẽng trỡnh,sẽ Á luÁng i∑u khi∫n (CFG) ˜ềc s˚ dˆng CFG ˜ềc ‡nh nghổa nh˜ sau.

‡nh nghổa 6 (CFG) Cho mẻt ch˜ẽng trỡnh x86P{Phloc;insi, p}, mẻt sẽ ÁluÁng i∑u khi∫n, hay CFG cıa P là mẻt bẻ 4-tuple {N, E, s, e}, trong ú

• N là t™p cỏc ứnh, mẩi ứnh t˜ẽng ˘ng vểi mẻt c∞p trong Phloc;insi;

• E N ⇥N là t™p cỏc cĐnh bi∫u diπn luÁng di chuy∫n gi˙a cỏc ứnh;

• slà ứnh b≠t ảu duy nhòt, t˜ẽng˘ng vểi i∫m b≠t ảup;

Vớ dˆ 3 Hỡnh 3.3b mụ tÊ CFG cıa oĐn mó ˜ềc hi∫n th‡ trong Hỡnh 3.3a Mẩi ứnh cıa CFG này t˜ẽng ˘ng vểi mẻt c∞p hloc;insi trong ch˜ẽng trỡnh, mẩi cĐnh là luÁng di chuy∫n t¯ mẻt ứnh tểi ứnh k∏ nhiêm nú Cỏc ứnh cú ch˘a cỏc lênh tuản tá chứ cú mẻt ứnh k∏nhiêm trong khi cỏc ứnh ch˘a lênh r≥nhỏnh cú th∫cú nhi∑u hẽn mẻt ứnh k∏nhiêm.

‡nh nghổa 7( ˜èng i) Cho mẻt CFG GhN, E, s, ei, mẻt ˜èng i ⇡ t¯ ứnh b≠t ảua2N

∏n ứnh k∏t thỳc b2N là mẻt chuẩi cỏc ứnh ⇡(a, b) = (n0, n1, , nn) sao chon0 =a, nn=b và 8i= 1, n:hn i 1 , n i i 2E.

Vớ dˆ 4 Trờn Hỡnh 3.3b, gi˙a hai ứnh 9 và 13, tÁn tĐi hai ˜èng i ⇡ 4 (9,13) = (9,10,12,13) and ⇡5(9,13) = (9,11,12,13)t˜ẽng˘ng vểi luÁng i∫u khi∫n cıa ch˜ẽng trỡnh trong thác t∏.

Mẻt thành phản quan trÂng cıa ki∏n trỳc x86 là mụi tr˜èng, bao gÁmcè hê thậng,thanh ghi,

‡a chứ bẻ nhể và ‡a chứ bẻ nhểstack Thành phản này ˜ềc ‡nh nghổa mẻt cỏch hỡnh th˘c nh˜sau.

‡nh nghổa 8 (Mụi tr˜èng) Mụi tr˜èng EVN cıa mẻt ch˜ẽng trỡnh P là mẻt bẻ 4-tuple{F, R, M, S}, vÓi

• F là t™p cỏc cè hê thậng {AF, CF, DF, IF, OF, PF, SF, TF, ZF};

• R là t™p các thanh ghi {eax, ebx, ecx, edx, esi, edi, esp, edp, cs, ds, es, fs, gs, ss, eip, eflags};

• S là t™p cỏc ‡a chứ bẻ nhể stack.

finghổa cıa cỏc cè hê thậng và thanh ghi ˜ềc mụ tÊ chi ti∏t tĐi [90].

‡nh nghổa 9(Giỏ tr‡mụi tr˜èng) Cho mẻt mụi tr˜èng EVNcıa mẻt ch˜ẽng trỡnhP Mẻt giỏ tr‡ cıa EVN, k˛ hiêu là Eva, là mẻt bẻ hEva F , Eva R , Eva M , Eva S i, vểi Eva F , Eva R , Eva M , Eva S tuản tálà giỏ tr‡ cè, giỏ tr‡thanh ghi, giỏ tr‡ bẻ nhể và giỏ tr‡ stack cıa EVN.

Khi mẩi lênh ˜ềc thác hiên, cỏc bi∏n mụi tr˜èng ˜ềc c™p nh™t Trong quỏ trỡnh thác thi, lênh tĐi cỏc ứnh trờn CFG ˜ềc thác thi và giỏ tr‡bi∏n mụi tr˜èng tĐi cỏc ứnh này ˜ềc xỏc

‡nh Chỳng ta gÂi mậi quan hê cıa mẻt ứnh trờn CFG và mụi tr˜èng t˜ẽng˘ng cıa nú là trĐng thỏi ch˜ẽng trỡnh, ˜ềc ‡nh nghổa nh˜sau.

‡nh nghổa 10 (TrĐng thỏi) Cho mẻt ch˜ẽng trỡnh x86 P; vểi CFG, EVNlà sẽ Á luÁng i∑u khi∫n và mụi tr˜èng cıa P Mẻt trĐng thỏi S cıa P là mẻt bẻ {hloc;insi, Eva}, vểi

• hloc;insi là mẻt ứnh trờn CFG;

• Eva là mẻt giỏ tr‡ mụi tr˜èng cıa EVN.

∫ mụ ph‰ng quỏ trỡnh thác thi ch˜ẽng trỡnh x86, cỏc quy t≠c thác thi cıa cỏc lênh x86 ˜ềc ∑xuòt [91] Hỡnh 3.4 trỡnh bày mẻt sậ quy t≠c thác thi cẽbÊn cıa cỏc lênhcmp,return, jmp,jz vàcall; trong khiandvàor mô t£ các toán t˚ lu™n l˛ ây là các quy t≠c ˜Òc chÂn t¯ hẽn 350 quy t≠c mà BE-PUM s˚ dˆng trong [15].

‡nh nghổa 11 (Quy t≠c thác thi) Quy t≠c thác thi là mẻt c∞p gÁm lênh và hành ẻng hins:acti, trong ú, hành ẻng mụ tÊ tỏc ẻng cıa lênh lờn mụi tr˜èng cıa ch˜ẽng trỡnh.

Ba khỏi niêm bao gÁm sẽ ÁluÁng thác thi, mụi tr˜èng và quy t≠c thác thi cung còp n∑n tÊng ∫mụ ph‰ng mẻt ch˜ẽng trỡnh P xuyờn suật t¯ng b˜ểc thác thi Ba khỏi niêm này còu thành mụ hỡnh thác thi cıa ch˜ẽng trỡnh P.

‡nh nghổa 12(Mụ hỡnh thác thi) Mụ hỡnh thác thicıa mẻt ch˜ẽng trỡnhP là mẻt bẻ3-tuple M{CFG,EVN,OPER-RULE} vÓi

• CFGlà sẽ ÁluÁng i∑u khi∫n cıa ch˜ẽng trỡnh P;

• EVNlà mụi tr˜èng cıa ch˜ẽng trỡnh P;

• OPER-RULElà t™p cỏc quy t≠c thác thi.

‡nh nghổa 13 (Chuy∫n Íi trĐng thỏi) Cho hai trĐng thỏi S m {hloc m , ins m i, Eva m } và

S n {hloc n , ins n i, Eva n }, vểi hloc n , ins n i là mẻt ứnh k∏ nhiêm cıa hloc m , ins m i trờn CFG Sá chuy∫n Íi trĐng thỏi là quỏ trỡnh ỏp dˆng quy t≠c thác thihinsm:actmi trờn Evam ∫ cú ˜ềc Eva n

Vớ dˆ 5 Hỡnh 3.3c mụ tÊ mẻt mụ hỡnh thác thi t˜ẽng ˘ng vểi CFG trong Hỡnh 3.3b Tr˜ểc tiờn, tr§ng thái S 1 (1) ˜Òc t§o ra vÓi giá tr‡ môi tr˜Ìng là Eva (1) 1 = (ecx {↵}, eax { }, ZF {0,1}, OF {0,1}, address1 {9}, address2 {4}) 1 Gi£ s˚ r¨ng giá tr‡ cıa thanh ghi ecx, eax là giá tr‡ symbolic↵, , trong khi giá tr‡ cıa cÌZF vàOF có th∫là 0 ho∞c 1 2 LuÁng thác thi t¯ trĐng thỏiS 1 (1) là khụng xỏc ‡nh vỡ giỏ tr‡cıa cè ZF khụng th∫ ˜ềc xỏc ‡nh băng ph˜ẽng phỏp phõn tớch tổnh ∫ xỏc ‡nh trĐng thỏi ti∏p theo, chỳng ta phÊi ỏp dˆng quy t≠c thác thi cho lênhjz.

R(eip) =k, instr(F, R, S, M, C, k) =jz r, m={R(r)|zf = 1} | {k+|instr(F, R, S, M, C, k)|}

(F, R, S, M, C)!(F, R[eip m], S, M, C) Khi quy t≠c thác thi jz r ˜ềc ỏp dˆng, giỏ tr‡ cıa con tr‰ lênh (eip) ˜ềc c™p nh™t vểi giỏ tr‡ cıa thanh ghi ch˘a ‡a chứ ớchr n∏u giỏ tr‡cè ZF băng 1, n∏u khụng eip ˜ềc c™p nh™t vểi v‡ trớ cıa lênh ti∏p theo Cè ZF cú th∫ nh™n mẻt trong hai giỏ tr‡ là 0 ho∞c 1 Do ú, hai trĐng thỏi mểi làS 2 (1) vàS 3 (1) ˜ềc tĐo ra t˜ẽng ˘ng T˜ẽng tá, hai trĐng thỏi mểi làS 4 (1) vàS 4 (2) ˜ềc t§o ra t¯S 2 (1) và S 3 (1)

Cỏc trĐng thỏi S 4 (1) và S 4 (2) chứ ch˘a mẻt lênh r≥ nhỏnh jmp, do ú viêc chuy∫n Íi t¯ cỏc trĐng thỏi này sang trĐng thỏi k∏ ti∏p cıa chỳng ˜ềc ti∏n hành băng cỏch ỏp dˆng quy t≠c thác

1 ∫ thu™n tiên cho ng˜èi Âc, k˛ hiêu trĐng thỏi S 1 (1) t˜ẽng ˘ng vểi ứnh 1 trờn CFG và chứ sậ (1) th∫ hiên răng õy là lản ảu tiờn ứnh này ˜ềc duyêt trờn khụng gian trĐng thỏi.

Ki∫m tra gia t´ng t¯ng phản trờn !-region

Trong Mˆc 3.2, lu™n ỏn ó giểi thiêu ph˜ẽng phỏp xõy dáng mụ hỡnh cho mẻt ch˜ẽng trỡnh x86, trờn ú, cụng cˆ ki∫m tra mụ hỡnh cú th∫ phõn tớch ∫xỏc ‡nh sáhiên diên cıa mó ẻc M∞c dự giÊi quy∏t ˜ềc hĐn ch∏cıa cỏc ph˜ẽng phỏp phõn tớch mó ẻc trong cụng nghiêp, tÁn tĐi cẽ bÊn nhòt cıa ki∫m tra mụ hỡnh là vòn ∑bựng nÍkhụng gian trĐng thỏi [19] Nhi∑u nghiờn c˘u ó ˜ềc ∑ xuòt ∫ giÊm bểt h™u quÊvòn ∑này [19] Tuy nhiờn, c´n c˘vào nh˙ng cụng bậgản nhòt, hiên khụng cú cụng trỡnh nào s˚ dˆng ∞c tớnh cıa mó ẻc ∫ làm giÊm kớch th˜ểc khụng gian trĐng thỏi khi ỏp dˆng ki∫m tra mụ hỡnh vào viêc x˚ l˛mó ẻc.

Rừ ràng, cỏc phản m∑m nguy hĐi phÊi thác hiên cỏc hành vi nguy hĐi cˆth∫(vớ dˆnh˜quột cÍng), nh˙ng hành vi này khụng xÊy ra trong cỏc ch˜ẽng trỡnh vụ hĐi Nh˙ng hành vi nguy hĐi th˜èng ch˘a cỏc lênh ∞c biêt mà cỏc ch˜ẽng trỡnh vụ hĐi hi∏m khi s˚dˆng Ng˜ềc lĐi, cú mẻt sậlênh th˜èng ˜ềc s˚ dˆng trong cỏc ch˜ẽng trỡnh vụ hĐi nh˜ng hảu nh˜khụng ˜ềc s˚ dˆng trong oĐn mó thác hiên hành vi nguy hĐi T¯quan sỏt này, lu™n ỏn ó phỏt tri∫n mẻt ph˜ẽng phỏp thậng kờ cỏc lênh khụng ch˘a trong oĐn mó thác hiên hành vi nguy hĐi nh˜ng ˜ềc s˚ dˆng bi cỏc ch˜ẽng trỡnh vụ hĐi (trỡnh bày tĐi Mˆc 3.6), õy là cẽ s dđn ∏n Tiờn ∑ sau.

Tiờn ∑ 1 oĐn mó thác hiên mẻt hành vi nguy hĐi, hay cũn gÂi là mđu nh™n diên mó ẻc khụng ch˘a nh˙ng lênh trong Hỡnh 3.5.

Dynamic jump jmp eax, jmp ecx, jmp 0x12AED567

Shift sal, shl, sar, shr Load/Store ldr, str

Hỡnh 3.5: Nh˙ng lênh khụng ch˘a trong mđu nh™n diên mó ẻc. ẻng lác ăng sau Tiờn ∑1 khỏ ẽn giÊn Nhúm lênh ảu tiờn ˜ềc giểi thiêu trong Hỡnh 3.5 là lênh nhÊy ẻng, nh˜ ó thÊo lu™n tr˜ểc õy Khi nghiờn c˘u cỏc mđu mó ẻc trong thác t∏, chỳng tụi nh™n thòy răng cỏc lênh nhÊy ẻng chıy∏u ˜ềc s˚dˆng cho mˆc ớch làm rậi mó 3 Cỏc hành vi nguy hĐi cật lừi cıa mó ẻc gản nh˜ khụng bao giè s˚ dˆng loĐi lênh này, vỡ ròt khú ∫ cú th∫ ki∫m soỏt ˜ềc ớch nhÊy cıa nh˙ng lênh nhÊy ẻng thác sá.

Ngoài ra, vỡ thụng th˜èng mó ẻc s≥trÊ lĐi quy∑n ki∫m soỏt cho ch˜ẽng trỡnh b‡lõy nhiπm sau khi thác hiên cỏc hành vi nguy hĐi, lênh chòm d˘t luÁng thác thi ngay l™p t˘c nh˜ hltvà ret hảu nh˜khụng bao giè ˜ềc s˚dˆng bi bòt k˝mó ẻc nào Cỏc quan sỏt thác nghiêm cÙng cho thòy răng nh˙ng lênh nh˜ chuy∫n d‡ch giỏ tr‡ (shift) và nĐp/l˜u tr˙ (load/store) giỏ tr‡ cÙng hi∏m khi ˜ềc s˚ dˆng bi cỏc phản m∑m nguy hĐi.

‡nh nghổa 19 (!-instruction) Mẻt lênh hi∏m khi xuòt hiên trong mđu nh™n diên mó ẻc ˜ềc gÂi là !-instruction.

‡nh nghổa 20 (!-node) Mẻt ứnh Nhloc, insi trờn CFG ˜ềc gÂi là !-node n∏u inslà mẻt

!-instruction ho∞cN là ứnh b≠t ảu/k∏t thỳc.

‡nh nghổa 21 (!-region) Cho mẻt regionG(a, b),G ˜ềc gÂi là !-regionn∏uavàb là nh˙ng

!-nodes trờn G vàG khụng ch˘a bòt k˝ !-node nào khỏc.

Vớ dˆ 10 Trờn Hỡnh 3.7b, ứnh 4 và 13 ch˘a lênh nhÊy ẻng, do ú chỳng là !-nodes Cựng vểi cỏc !-nodes tĐi ứnh b≠t ảu 1 và ứnh k∏t thỳc 8, ta cú th∫ phõn vựng ch˜ẽng trỡnh thành bËn !-regions bao gÁm !-region1(1,4),!-region2(4,13),!-region3(13,4)và !-region4(4,8).

Viêc mẻt ch˜ẽng trỡnh cú th∫ ˜ềc phõn chia thành cỏc!-region là n∑n tÊng ∫ giÊi quy∏t vòn ∑bựng nÍkhụng gian trĐng thỏi Và ∫ Êm bÊo tớnh ỳng cıa k∏t quÊki∫m tra, ‡nh l˛1 ˜ềc chỳng tụi ∑xuòt.

‡nh l˛ 1 N∏u mẻt oĐn mó thác hiên hành vi nguy hĐi xuòt hiên trong ch˜ẽng trỡnh, oĐn mó này phÊi ˜ềc giểi hĐn trong mẻt !-region Núi cỏch khỏc, oĐn mó này khụng th∫ xuòt hiên trong nhi∑u hẽn mẻt !-region.

Ch˘ng minh GiÊ s˚ răng cú mẻt oĐn mó F thác hiên hành vi nguy hĐi vàF xuòt hiên trong nhi∑u hẽn mẻt !-region Khi ú, CFG con t˜ẽng˘ng vểiF phÊi ch˘a ớt nhòt mẻt !-node vỡ F tràn qua ớt nhòt mẻt "biờn giểi" cıa hai !-region (l˜u ˛ răng "biờn giểi" cıa hai !-region

3 Chi ti∏t v∑ cỏc kˇ thu™t làm rậi mó ˜ềc trỡnh bày trong Ch˜ẽng 4 khụng th∫ là node b≠t ảu/k∏t thỳc vỡ trờn mẻt luÁng thác thi khụng tÁn tĐi lênh ˜ềc thác thi tr˜ểc lênh b≠t ảu ho∞c sau lênh k∏t thỳc) Núi cỏch khỏc, cú ớt nhòt mẻt!-instruction xuòt hiên trongF Vỡ v™y, i∑u này vi phĐm Tiờn ∑ 1.

Dáa vào ‡nh l˛1, k∏t quÊki∫m tra mẩi!-region cıa ch˜ẽng trỡnh P t˜ẽng ˜ẽng vểi k∏t quÊki∫m tra toàn bẻP õy là cẽ s ∫lu™n ỏn ∑ xuòt cỏch ti∏p c™n thác hiên ki∫m tra hành vi nguy hĐi trờn t¯ng !-regions riờng lƠ thay vỡ toàn bẻ ch˜ẽng trỡnh Cỏch ti∏p c™n này ˜ềc gÂi làph˜ẽng phỏp ki∫m tra gia t´ng t¯ng phản. ω - verifier ω - decomposition ω-region 1 ω-region 2 … ω-region n

CFG Công cụ xây dựng CFG

Kết quả kiểm tra Đặc tả luận lý thời gian

Hành vi nguy hại ω - abstraction

Hỡnh 3.6: Ph˜ẽng phỏp ki∫m tra gia t´ng t¯ng phản.

Nh˜ ˜ềc trỡnh bày trờn Hỡnh 3.6, ph˜ẽng phỏp ki∫m tra gia t´ng t¯ng phản cÙng phõn ró mụ hỡnh ch˜ẽng trỡnh gậc thành cỏc mụ hỡnh con, t˜ẽng tá nh˜ b˜ểc mẻt cıa ph˜ẽng phỏp ki∫m tra thành phản ˜ềc thÊo lu™n trong Mˆc 3.1.2 Quỏ trỡnh tr¯u t˜ềng hoỏ, cũn ˜ềc gÂi là

!-abstraction, cÙng ˜Òc áp dˆng trong khung th˘c này.

Nh˜v™y, mẻt cỏch tÍng quỏt, ph˜ẽng phỏp ki∫m tra gia t´ng t¯ng phản khỏ giậng vểi ph˜ẽng phỏp ki∫m tra thành phản i∫m khỏc biêt là ph˜ẽng ki∫m tra gia t´ng t¯ng phản khụng thác hiên viêc k∏t hềp cỏc !-regions sau khi ki∫m tra riờng lƠ vỡ mụ hỡnh tÍng hềp khụng nhòt thi∏t ph£i ˜Òc ki∫m tra nh˜ ã trình bày  ‡nh l˛1 Do ó, tÍng thÌi gian ki∫m tra gia t´ng t¯ng phản ˜ềc giÊm ỏng k∫ so vểi ph˜ẽng phỏp ki∫m tra thành phản.

Các b˜Óc chính cıa khung th˘c ˜Òc mô t£nh˜ sau.

• !-decomposition: dáa vào !-instruction, phõn hê này thác thiên phõn ró sẽ Á luÁng i∑u khi∫n ảu vàoCF G input thành cỏc !-region i (i= 1, n).

• !-verifier: phõn hênày ki∫m tra t¯ng!-regioni vểi mẻt cụng th˘c lu™n l˛ mụ tÊhành vi nguy h§i.

• !-abstraction: sau khi !-regioni ˜ềc ki∫m tra, phõn hê này tr¯u t˜ềng hoỏ nú thành mẻt trĐng thỏiS abstracted S abstracted sau ú ˜ềc s˚dˆng làm trĐng thỏi ảu vào cıa !-regioni+1 k∏ ti∏p.

Vớ dˆ 11 Nh˜mụ tÊ trờn Hỡnh 3.8b, !-region1(1,4) cú hai ˜èng thác thi (S 1 (1) ,S 2 (1) ,S 4 (1) ) và (S 1 (1) ,S 3 (1) ,S 4 (2) ) vì giá tr‡ cıa cÌ ZF ch˜a ˜Òc xác ‡nh !-region 1 (1,4) ˜Òc ki∫m tra vÓi k∏t qu£ là không ch˘a hành vi nguy h§i Do v™y!-region2(4,13)ti∏p tˆc ˜Òc t§o ra.

∫ Êm bÊo răng luÁng thác thi trờn !-region 2 (4,13) là chớnh xỏc, mụi tr˜èng tĐi trĐng thái S 4 (1) (ecx {↵}, eax { }, ZF {0}, OF {0,1}, address1 {9}, address2 {4}) và S 4 (2) (ecx {↵+ 3}, eax { }, ZF {1}, OF {0,1}, address1 {9}, address2 {4}) ˜ềc hềp nhòt ∫ tĐo thành trĐng thỏi b≠t ảu S 4 (3) (ecx {↵,↵ + 3}, eax { }, ZF {0,1}, OF {0,1}, address1 {9}, address2 {4}) cıa !-region2(4,13) K∏t qu£ ki∫m tra trờn !-region 2 cÙng cho thòy khụng cú sá hiên diên cıa hành vi nguy hĐi.

Xõy dáng t™p !-region

Trong ph˜ẽng phỏp ki∫m tra gia t´ng t¯ng phản,!-region ˜ềc xõy dáng băng cỏch hẻi tòt cÊ cỏc ˜èng i gi˙a hai!-nodes mà khụng ch˘a bòt k˝mẻt!-node nào khỏc trờn nh˙ng ˜èng i này Trong Hỡnh 3.7,!-region 2 ˜ềc xõy dáng băng cỏch hẻi tòt cÊ cỏc ˜èng i gi˙a !-nodes 4 và 13, bao gÁm⇡3(4,13) = (4,9,10,12,13) và⇡4(4,13) = (4,9,11,12,13).

Thu™t toỏn xõy dáng !-region ˜ềc trỡnh bày nh˜sau.

Vớ dˆ 12 Áp dˆng thu™t toỏn xõy dáng !-region cho CFG trong Hỡnh 3.7 vểi ứnh b≠t ảu

!-node 1, !-region ảu tiờn ˜ềc xõy dáng qua cỏc b˜ểc sau.

1 Tỡm trờn CFG t¯!-nodes h1;jz3i ∏n khi !-node*h4;jmp address1i k∏ ti∏p ˜ềc tỡm thòy.

2 Tỡm tòt cÊcỏc ˜èng i gi˙a!-nodesh1;jz3i vàh4;jmp address1i, bao gÁm⇡ 1 (1,4) = (1,2,4) và⇡ 2 (1,4) = (1,3,4)

3 !-region1(1,4) là hẻi cıa ⇡ 1 và ⇡ 2

Input: CFG cıa ch˜ẽng trỡnh, ứnh b≠t ảu !-nodestart trờn CFG Output:!-regions active_!-node !-nodestart; j = 1; repeat Tỡm ki∏m theo chi∑u sõu trờn CFG b≠t ảu t¯active_!-node ∫tỡm!-node* ti∏p theo; if !-node* ˜ềc tỡm thòy then Tỡm tòt cÊ k ˜èng i⇡ i (active_!-node,!-node*); for0

Giỏ tr‡ if imf cıa hlt lển hẽn 50 ( ), vỡ v™y hlt ˜ềc chÂn làm !-instructions.

Thác hiên thậng kờ trờn t™p d˙liêu lển cỏc ch˜ẽng trỡnh vụ hĐi và mó ẻc, ta cú danh sỏch

!-instructions cú giỏ tr‡if imf cao hẽn ng˜ễng nh˜ sau.

Ví dˆ minh ho§

H˜Óng ti∏p c™n ki∫m tra mô hình thông th˜Ìng

Thụng th˜èng, cụng cˆki∫m tra mụ hỡnh s≥ thác hiên viêc ki∫m tra băng cỏch duyêt tòt cÊcỏc trĐng thỏi cú th∫ ˜ềc xõy dáng t¯CFG Nh˜ ˜ềc thÊo lu™n trong ‡nh nghổa 10, mẻt trĐng thỏi ˜ềc tĐo thành bi mẻt ứnh trong CFG k∏t hềp vểi mẻt giỏ tr‡mụi tr˜èngEVN Trong vớ dˆnày,mụ hỡnh thác thi ˜ềc ‡nh nghổa làM{Register={eax, ecx};F lag ={ZF, OF}, M emory 1: jz 3 2: jmp 4 3: add ecx, 3 4: jmp address1 5: mov eax,0 6: push eax 7: call GetModuleHandleA 8: hlt

9: jo 10 10: jmp 12 11: inc ecx 12: mov address1, 5 13: jmp address2

{address1, address2}, stack=?}. Khụng gian trĐng thỏi sau ú ˜ềc tĐo ra băng cỏch duyêt qua tòt cÊ cỏc ˜èng i khÊ thi trờn CFG ∫ tỡm ra cỏc ˜èng i khÊ thi, chỳng ta b≠t ảu t¯trĐng thỏi t˜ẽng ˘ng vểi ứnh b≠t ảu cıa CFG và sau ú s˚dˆng quy t≠c chuy∫n Íi trĐng thỏi ˜ềc ‡nh nghổa trong ‡nh nghổa 13 ∫ xỏc ‡nh tòt cÊ cỏc trĐng thỏi k∏ ti∏p cú th∫ xÊy ra Quỏ trỡnh này k∏t thỳc khi khụng cũn trĐng thỏi nào cú th∫ ˜ềc tĐo ra t¯ cỏc trĐng thỏi hiên tĐi.

Hỡnh 3.8a minh hoĐ toàn bẻkhụng gian trĐng thỏi ˜ềc tĐo ra cho ch˜ẽng trỡnh ˜ềc ki∫m tra B≠t ảu t¯ ứnh 1, chỳng ta cú lênh nhÊy cú i∑u kiên mà ớch ∏n phˆthuẻc vào giỏ tr‡ cıa cè zero ZF Do khụng th∫ xỏc ‡nh ˜ềc giỏ tr‡ này, cụng cˆ ki∫m tra mụ hỡnh cản phÊi duyêt hai trĐng thỏi cú th∫ làS 2 (1) và S 3 (1) , t˜ẽng ˘ng dđn ∏n cỏc trĐng thỏiS 4 (1) vàS 4 (2) Ti∏p tˆc duyêt cỏc ứnh trờn CFG theo cỏch ú, cuậi cựng chỳng ta s≥ cú ˜ềc toàn bẻkhụng gian tr§ng thái, bao gÁm tÍng sË 39 tr§ng thái có th∫ 4

Cú th∫ thòy răng cụng th˘c dựng ∫ ki∫m tra' ỳng tĐi bận trĐng thỏiS 7 (1) ,S 7 (2) ,S 7 (3) và S 7 (4) Mẻt cỏch ngđu nhiờn, mẻt cụng cˆ ki∫m tra mụ hỡnhon-the-fly cú th∫ phỏt hiên sáxuòt hiên mó ẻc  mẻt trong nh˙ng trĐng thỏi này mà khụng cản duyêt h∏t toàn bẻ khụng gian

4 GiÊ s˚ răng ng˜èi vi∏t mó ẻc cú th∫ ki∫m soỏt giỏ tr‡ cıa address1  dũng 4, khi ú ˜èng thác thi ảu tiờn s≥ là (S (1) 1 ,S (1) 2 ,S (1) 4 ,S 9 (1) ,S 10 (1) ,S 12 (1) ,S 13 (1) )

S 8 (3) S 8 (4) ecx [ α ] ecx [ α ] ecx [ α ] ecx [ α +3] ecx [ α +3] ecx [ α ] ecx [ α ] ecx [ α +1] ecx [ α +3] ecx [ α +4]

(a) Ki∫m tra toàn bẻ ch˜ẽng trỡnh.

ZF [0,1] ecx [ α,α +1 ,α +3 ,α +4] address2 [4] ω-region 1 state space ω-region 2 state space ω-region 3 state space ω-region 4 state space

S 8 (1) ecx [ α ] eax [ ! ] ecx [ α+3 ] eax [ ! ] ecx [ α,α +3] ecx [ α +1 ,α +4] ecx [ α,α +3] eax [ ! ] eax [ ! ] eax [ ! ] ecx [ α,α +1 ,α +3 ,α +4] ecx [ α,α +1 ,α +3 ,α +4] eax [ ! ] eax [ ! ] ecx [ α,α +1 ,α +3 ,α +4] ecx [ α,α +1 ,α +3 ,α +4] eax [ ! ] eax [0]

(b) Ki∫m tra gia t´ng t¯ng phản.

Hình 3.8: Không gian tr§ng thái ki∫m tra mô hình. tr§ng thái Tuy nhiên, tr˜Ìng hÒp này không ph£i lúc nào cÙng ch≠c ch≠n x£y ra và v∑m∞t l˛ thuy∏t toàn bẻ khụng gian trĐng thỏi vđn cản ˜ềc tĐo ra khi ỏp dˆng ph˜ẽng phỏp ki∫m tra mô hình thông th˜Ìng.

Ph˜ẽng phỏp ki∫m tra gia t´ng t¯ng phản

Nh˜ ã th£o lu™n tr˜Óc ây, CFG trong Hình 3.7b ˜Òc phân rã thành các !-regions, bao gÁm

!-region1, !-region2,!-region3 và !-region4 Quỏ trỡnh ki∫m tra sau ú ˜ềc thác hiên t¯ng b˜Óc trên mÈi region nh˜ minh hÂa trong Hình 3.8b Tr˜Óc tiên, !-region1 ˜Òc ki∫m tra b¨ng cụng th˘c ' Sau khi xỏc nh™n khụng cú sá hiên diên cıa Avron trờn!-region1, thỡ khụng gian trĐng thỏi t˜ẽng˘ng s≥ ˜ềc tr¯u t˜ềng hoỏ thành trĐng thỏi mểiS 4 (3) , ˜ềc s˚dˆng nh˜trĐng thỏi b≠t ảu cıa !-region 2 ti∏p theo Quỏ trỡnh này ti∏p tˆc cho ∏n khi' ˜ềc thoÊ món tĐi tr§ng thái S 7 (1) khi !-region4 ˜Òc ki∫m tra.

Thớ nghiêm

Môi tr˜Ìng

Thớ nghiêm ˜ềc ti∏n hành trờn mẻt mỏy tớnh cài ∞t hê i∑u hành Windows XP vểi CPU 3.0GHz và 8GB RAM Cụng cˆ xõy dáng CFG là BE-PUM 5 L˜u ˛răng BE-PUM là cụng cˆ xõy dáng CFG cú hiêu quÊ nhòt ậi vểi cỏc ch˜ẽng trỡnh mó ẻc, bi vỡ cụng cˆnày cú th∫ x˚ l˛mẻt l˜ềng lển cỏc kˇthu™t làm rậi mó cıa virus a hỡnh [94].

Cụng cˆki∫m tra mụ hỡnh ˜ềc s˚dˆng trong thớ nghiêm là PAT (Process Analysis Toolkit) phiên b£n 3.5.1 [95] Phiên b£n NET framework là 4.5 và phiên b£n Java Runtime Environment là 1.7.

T ™p d˙ liêu

Cỏc t™p d˙liêu ˜ềc s˚dˆng trong thớ nghiêm này bao gÁmt™p d˙liêu vụ hĐi vàt™p d˙liêu ó lõy nhiπm mó ẻc ∫ ch˘ng minh hiêu quÊ cıa ph˜ẽng phỏp ki∫m tra gia t´ng t¯ng phản trong cÊhai tr˜èng hềp vụ hĐi và nhiπm mó ẻc.

T™p d˙liêu vụ hĐi ˜ềc xõy dáng t¯2000 ch˜ẽng trỡnh vụ hĐi Nh˙ng ch˜ẽng trỡnh vụ hĐi này ˜ềc phõn thành hai nhúm Nhúm ảu tiờn, ˜ềc gÂi là BENIGN_SIMPLE, ch˘a cỏc ch˜ẽng trỡnh r≥ nhỏnh ẽn giÊn i∑u ú cú nghổa là nh˙ng ch˜ẽng trỡnh này khụng cú bòt k˝còu trỳc vũng l∞p nào và cỏc lênh r≥ nhỏnh cıa chỳng cú tậi a hai nhỏnh r≥ khỏc nhau Nhúm th˘ hai, ˜ềc gÂi là BENIGN_COMPLEX, ch˘acỏc ch˜ẽng trỡnh r≥ nhỏnh ph˘c tĐp õy là cỏc ch˜ẽng trỡnh cú ch˘a vũng l∞p, cỏc lênh r≥ nhỏnh ph˘c tĐp vểi ớt nhòt ba nhỏnh r≥ khỏc biêt Hỡnh 3.9 minh hoĐ mẻt vớ dˆv∑ ch˜ẽng trỡnh r≥ nhỏnh ẽn giÊn và ch˜ẽng trỡnh r≥ nhỏnh ph˘c tĐp Mẻt cỏch trác quan ta thòy, cỏch ti∏p c™n ki∫m tra gia t´ng t¯ng phản s≥th∫ hiên rừ hẽn tớnh hiêu quÊ khi x˚ l˛cỏc ch˜ẽng trỡnh ph˘c tĐp.

T™p d˙ liêu ó lõy nhiπm mó ẻc ˜ềc tĐo ra băng cỏch lõy nhiπm cỏc ch˜ẽng trỡnh vụ hĐi băng 5000 mó ẻc ˜ềc thu th™p t¯VX Heaven 6 , VirusSign 7 và t™p d˙liêu MALICIA [96] Cú

5 http://bepum.jaist.ac.jp/

(11;jmp ebx) (10;inc ebx) (5;mov ebx,offset l1+4)

Hỡnh 3.9: Ch˜ẽng trỡnh r≥nhỏnh ẽn giÊn và ph˘c tĐp. hai cẽ ch∏ lõy nhiπm ˜ềc s˚dˆng gÂi là lõy nhiπm sểm và lõy nhiπm muẻn.

Vểi cẽ ch∏lõy nhiπm sểm, mó ẻc ˜ềc lõy nhiπm vào phản ảu cıa cỏc ch˜ẽng trỡnh vụ hĐi (nghổa là oĐn mó xuòt hiên gản i∫m b≠t ảu cıa ch˜ẽng trỡnh) Ng˜ềc lĐi, trong cẽ ch∏ lõy nhiπm muẻn, mó ẻc ˜ềc nhiπm vào gi˙a ho∞c cỏc phản sau cıa ch˜ẽng trỡnh, nẽi mà còu trỳc CFG trnờn khỏ ph˘c tĐp Cuậi cựng chỳng ta cú bận t™p d˙liêu ó lõy nhiπm mó ẻc nh˜sau.

• EARLY_INFECTED_SIMPLE: ỏp dˆng cẽ ch∏ lõy nhiπm sểm cho cỏc ch˜ẽng trỡnh trong t™p BENIGN_SIMPLE.

• LATE_INFECTED_SIMPLE: ỏp dˆng cẽ ch∏ lõy nhiπm muẻn cho cỏc ch˜ẽng trỡnh trong t™p BENIGN_SIMPLE.

• EARLY_INFECTED_COMPLEX: ỏp dˆng cẽch∏lõy nhiπm sểm cho cỏc ch˜ẽng trỡnh trong t™p BENIGN_COMPLEX.

• LATE_INFECTED_COMPLEX: ỏp dˆng cẽch∏ lõy nhiπm sểm cho cỏc ch˜ẽng trỡnh trong t™p BENIGN_COMPLEX.

BÊng 3.2 trỡnh bày tÍng hềp cỏc t™p d˙liêu nờu trờn.

T™p d˙ liêu Sậ l˜ềng ch˜ẽng trỡnh

EARLY_INFECTED_COMPLEX 5000LATE_INFECTED_COMPLEX 5000

ẻ o

∫ ỏnh giỏ hiêu suòt cıa ph˜ẽng phỏp ki∫m tra gia t´ng t¯ng phản, ta ỏp dˆng cỏc ẻ o sau.

• Sậ trĐng thỏi duyêt: sậ trĐng thỏi cụng cˆki∫m tra mụ hỡnh duyêt trong suật quỏ trỡnh thác thi.

• Bẻ nhể s˚ dˆng: dung l˜ềng bẻnhểs˚dˆng bi quỏ trỡnh ki∫m tra.

• TÍng thèi gian chĐy: tÍng thèi gian thác thi cıa toàn bẻquỏ trỡnh ki∫m tra.

Cỏc ph˜ẽng phỏp ki∫m tra

• TYPICAL_VERIFICATION: ỏp dˆng ph˜ẽng phỏp ki∫m tra mụ hỡnh thụng th˜èng mà PAT s˚ dˆng (s˚ dˆng thu™t toán Tarjan [97]).

• COMPOSITIONAL_VERIFICATION: ỏp dˆng ph˜ẽng phỏp ki∫m tra thành phản ˜ềc ∑ xuòt bi [21] Khi ỏp dˆng ph˜ẽng phỏp này, mụ hỡnh gậc ˜ềc phõn ró thành cỏc mụ hỡnh con t˜ẽng˘ng vểi!-regions, mẩi mụ hỡnh con ˜ềc ki∫m tra riờng r≥ Sau ú, cỏc mụ hỡnh con này ˜ềc tr¯u t˜ềng hoỏ và k∏t hềp lĐi mẻt lản n˙a ∫ki∫m tra lản cuậi.

• INCREMENTAL_VERIFICATION: ỏp dˆng ph˜ẽng phỏp ki∫m tra gia t´ng t¯ng phản.

Ph˜ẽng phỏp này t˜ẽng tánh˜COMPOSITIONAL_VERIFICATION Tuy nhiờn, chỳng ta

SË m®u tr˜Óc time-out

TÍng thèi gian chĐy (s) Bẻ nhể s˚ dˆng (KB) Sậ trĐng thỏi duyêt

TYP COM INC TYP COM INC TYP COM INC

BENIGN_COMPLEX 47 56.3728309 12.4276187 1.9928374 54873.283 26931.472 21398.382 58137 19387 14254 EARLY_INFECTED_SIMPLE 5000 0.0135142 0.0138278 0.0013432 8412.332 8425.653 8418.554 137 136 137 LATE_INFECTED_SIMPLE 5000 1.2372868 0.9432432 0.9354355 20422.767 8546.664 8574.543 9154 1243 1215 EARLY_INFECTED_COMPLEX 5000 0.0153843 0.0144234 0.0149384 8899.384 8836.231 8848.142 168 168 168 LATE_INFECTED_COMPLEX 72 49,2832794 1.9483847 1.5372637 457382.039 23132.328 19837.421 52371 18372 12587 khụng cản phÊi ki∫m tra lĐi toàn bẻmụ hỡnh sau khi phõn ró và tr¯u t˜ềng hoỏ, nh˜ ó thÊo lu™n trong Mˆc 3.1.2.

K∏t quÊ thớ nghiêm

Hiêu quÊcıa cỏc ph˜ẽng phỏp ki∫m tra ˜ềc so sỏnh dáa vào ba ẻ o núi trờn K∏t quÊthớ nghiêm ˜ềc mụ tÊtrong BÊng 3.3 Trong ú, thèi gian x˚l˛và bẻnhểs˚dˆng cú ẽn v‡t˜ẽng˘ng là giõy và kilobyte Cỏc ch˙vi∏t t≠t TYP, COM và INC Đi diên cho TYPICAL_VERIFICATION, COM- POSITIONAL_VERIFICATION và INCREMENTAL_VERIFICATION t˜ẽng ˘ng Cẻt "Sậ mđu tr˜ểc time-out" cho bi∏t sậl˜ềng mđu ó ˜ềc th˚nghiêm cho TYPICAL_VERIFICATION tr˜ểc khi g∞p phÊi vòn ∑ h∏t thèi gian chĐy (time-out).

T¯BÊng 3.3, ta cú th∫ thòy răng chi∏n l˜ềc phõn vựng ch˜ẽng trỡnh thành !-regions ch≠c ch≠n Đt ˜ềc hiêu suòt tật hẽn, ˜ềc ki∫m ch˘ng bi COMPOSITIONAL_VERIFICATION và INCREMENTAL_VERIFICATION, nh˜mong ềi Trong BÊng 3.3, lu™n ỏn chứ cung còp thụng tin ˜ềc o l˜èng khi cỏc ph˜ẽng phỏp ki∫m tra vđn cú th∫ hoĐt ẻng bỡnh th˜èng Ta thòy răng khi sậl˜ềng ch˜ẽng trỡnh ˜ềc th˚nghiêm t´ng ∏n mẻt sậ nhòt ‡nh, hảu h∏t cỏc ph˜ẽng phỏp ki∫m tra ∑u g∞p vòn ∑time-out, tr¯ph˜ẽng phỏp INCREMENTAL_VERIFICATION.

Quan sỏt chi ti∏t hẽn v∑ k∏t quÊ th˚ nghiêm, i∑u ỏng chỳ ˛ là trong tr˜èng hềp cỏc ch˜ẽng trỡnh ẽn giÊn (BENIGN_SIMPLE và LATE_INFECTED_SIMPLE), COMPO- SITIONAL_VERIFICATION và INCREMENTAL_VERIFICATION có k∏t qu£ tÍng thÌi gian chĐy tật hẽn và ∞c biêt v˜ềt trẻi vểi k∏t quÊ bẻ nhể s˚ dˆng và sậ trĐng thỏi duyêt.

KhoÊng cỏch này càng rừ ràng hẽn khi cỏc ch˜ẽng trỡnh th˚ nghiêm tr nờn ph˘c tĐp (BE-NIGN_COMPLEX và LATE_INFECTED_COMPLEX) ∞c biêt, k∏t quÊ thớ nghiêm cho thòy TYPICAL_VERIFICATION g∞p vòn ∑ time-out ròt sểm khi ki∫m tra vểi t™p d˙ liêu BENIGN_COMPLEX.

Cản l˜u ˛ răng trong tr˜èng hềp ch˜ẽng trỡnh b‡ nhiπm mó ẻc, cú hai tỡnh huậng ậi vểi EARLY_INFECTION, tòt cÊ cỏc ph˜ẽng phỏp ∑u Đt ˜ềc k∏t quÊ nh˜ nhau bi vỡ chỳng chứ cản ki∫m tra mẻt phản nh‰ cıa CFG Tuy nhiờn, ậi vểi cẽ ch∏ lõy nhiπm muẻn (LATE_INFECTED_SIMPLE và LATE_INFECTED_COMPLEX), hai ph˜ẽng phỏp COM-

POSITIONAL_VERIFICATION và INCREMENTAL_VERIFICATION cú hiêu suòt ˜ềc cÊi thiên ỏng k∫.

Hỡnh 3.10, Hỡnh 3.11 và Hỡnh 3.12 cung còp cỏi nhỡn rừ ràng hẽn v∑nh˙ng tỡnh huậng ú Trong nh˙ng hỡnh này, cỏc ch˜ẽng trỡnh cản ki∫m tra ˜ềc s≠p s∏p dáa trờn sậdũng lênh (LOC) Dπnh™n thòy răng khi LOC trnờn t˜ẽng ậi lển TYPICAL_VERIFICATION rẽi vào tỡnh huậng time- out hảu h∏t cỏc tr˜èng hềp Trong khi ậi vểi cỏc ch˜ẽng trỡnh ó lõy nhiπm, khụng cú sákhỏc biêt nhi∑u gi˙a COMPOSITIONAL_VERIFICATION và INCREMENTAL_VERIFICATION.

L˛ do là vỡ sá tÁn tĐi cıa mó ẻc cú th∫ ˜ềc phỏt hiên khi ki∫m tra !-region t˜ẽng ˘ng, vỡ v™y COMPOSITIONAL_VERIFICATION khụng cản phÊi ki∫m tra lĐi mụ hỡnh tÍng hềp.

Do ú, ta s≥ khụng thòy ˜ềc sá khỏc biêt gi˙a COMPOSITIONAL_VERIFICATION và INCREMENTAL_VERIFICATION trong tr˜Ìng hÒp này.

Tuy nhiờn, ậi vểi tr˜èng hềp ch˜ẽng trỡnh vụ hĐi (nghổa là toàn bẻ mụ hỡnh ch˜ẽng trỡnh s≥ ˜ềc ki∫m tra ∫ xỏc nh™n sá khụng tÁn tĐi cıa hành vi nguy hĐi), INCREMEN-TAL_VERIFICATION Đt ˜ềc hiêu suòt tật hẽn trong khi COMPOSITIONAL_VERIFICATION trnờn khụng khÊthi khi LOC gia t´ng tểi ng˜ễng khỏ lển Khi ỏp dˆng trong thác t∏, sậ l˜ềng ch˜ẽng trỡnh vụ hĐi luụn lển hẽn nhi∑u so vểi cỏc ch˜ẽng trỡnh b‡nhiπm mó ẻc, ph˜ẽng phỏp ti∏p c™n gia t´ng t¯ng phản s≥ trnờn h˙u ớch so vểi cỏc ph˜ẽng phỏp ti∏p c™n khỏc.

Sậ l˜ềng ch˜ẽng trỡnh BENIGN_SIMPLE

Sậ l˜ềng ch˜ẽng trỡnh LATE_INFECTED_SIMPLE

Sậ l˜ềng ch˜ẽng trỡnh EARLY_INFECTED_SIMPLE

Sậ l˜ềng ch˜ẽng trỡnh EARLY_INFECTED_COMPLEX

Sậ l˜ềng ch˜ẽng trỡnh BENIGN_COMPLEX

Sậ l˜ềng ch˜ẽng trỡnh LATE_INFECTED_COMPLEX

Hình 3.10: So sánh tÍng thÌi gian ch§y.

Sậ l˜ềng ch˜ẽng trỡnh BENIGN_SIMPLE

Sậ l˜ềng ch˜ẽng trỡnh LATE_INFECTED_SIMPLE

Sậ l˜ềng ch˜ẽng trỡnh EARLY_INFECTED_SIMPLE

Sậ l˜ềng ch˜ẽng trỡnh EARLY_INFECTED_COMPLEX

Sậ l˜ềng ch˜ẽng trỡnh BENIGN_COMPLEX

Sậ l˜ềng ch˜ẽng trỡnh LATE_INFECTED_COMPLEX

Hỡnh 3.11: So sỏnh bẻ nhể s˚ dˆng.

Sậ l˜ềng ch˜ẽng trỡnh BENIGN_SIMPLE

Sậ l˜ềng ch˜ẽng trỡnh LATE_INFECTED_SIMPLE

Sậ l˜ềng ch˜ẽng trỡnh EARLY_INFECTED_SIMPLE

Sậ l˜ềng ch˜ẽng trỡnh EARLY_INFECTED_COMPLEX

Sậ l˜ềng ch˜ẽng trỡnh BENIGN_COMPLEX

Sậ l˜ềng ch˜ẽng trỡnh LATE_INFECTED_COMPLEX

Hỡnh 3.12: So sỏnhsậ trĐng thỏi duyêt.

Th£o lu™n

Trong Ch˜ẽng này, lu™n ỏn úng gúp vào h˜ểng nghiờn c˘u s˚dˆng ki∫m tra mụ hỡnh ∫phỏt hiên mó ẻc băng cỏch ∑ xuòt mẻt cỏch ti∏p c™n mểi dáa trờn chớnh ∞c i∫m cıa chỳng, qua ú giÊm ẻph˘c tĐp cıa mụ hỡnh ch˜ẽng trỡnh Do ú, ph˜ẽng phỏp ˜ềc ∑ xuòt trong lu™n ỏn cú th∫giÊi quy∏t mẻt phản vòn ∑bựng nÍkhụng gian trĐng thỏi cıa ph˜ẽng phỏp ki∫m tra mụ hỡnh, làm cho ph˜ẽng phỏp này tr nờn khÊthi trong thác t∏.

Băng cỏch s˚ dˆng cụng cˆki∫m tra mụ hỡnh ó ˜ềc ỏp dˆng cỏc nghiờn c˘u hiên cú v∑vòn

∑ bựng nÍkhụng gian trĐng thỏi [48, 49], ph˜ẽng phỏp ki∫m tra gia t´ng t¯ng phản t™n dˆng ˜ềc cỏc k∏t quÊ nghiờn c˘u này và ti∏p tˆc tậi˜u viêc x˚l˛vòn ∑ bựng nÍkhụng gian trĐng thỏi t™p trung cho bài toỏn ỏp dˆng ki∫m tra mụ hỡnh phỏt hiên mó ẻc.

Ph˜ẽng phỏp ki∫m tra gia t´ng t¯ng phản t™p trung vào khỏi niêm !-region, trong ú hành vi nguy hĐi cıa mẻt mó ẻc b‡ giểi hĐn hoàn toàn trong mẻt !-regions Lu™n ỏn giểi thiêu

!-instructions - nh˙ng lênh hi∏m khi xÊy ra trong phõn oĐn mó ẻc - ˜ềc dựng ∫ xõy dáng nờn !-region Dáa trờn mẻt cẽsl˛thuy∏t v˙ng ch≠c, lu™n ỏn phỏt tri∫n mẻt ẻ o if imf, ˜ềc s˚ dˆng ∫xỏc ‡nh !-instructions mẻt cỏch hiêu quÊ.if imf th™m chớ cú th∫ hiêu quÊ hẽn khi ỏp dˆng vểi t™p d˙ liêu lển trong thác t∏.

Nghiờn c˘u này ˜ềc hỡnh th˘c húa băng mẻt n∑n tÊng toỏn hÂc cˆ th∫ cho mụ hỡnh thác thi cıa ch˜ẽng trỡnh x86 Dáa trờn mụ hỡnh này, ph˜ẽng phỏp ki∫m tra gia t´ng t¯ng phản ó ˜ềc trỡnh bày và ˜ềc ch˘ng minh tớnh hiêu quÊ ẻph˘c tĐp tớnh toỏn cıa ph˜ẽng phỏp ki∫m tra gia t´ng t¯ng phản cÙng ˜ềc ch˘ng minh là Đt O(kãn) trong khi ph˜ẽng phỏp ki∫m tra mụ hỡnh thụng th˜èng cú ẻph˘c tĐp tớnh toỏn làO(k n ).

Khụng chứth∫ hiên ˜ềc cỏc˜u i∫m thụng qua ch˘ng minh l˛thuy∏t, ph˜ẽng phỏp ki∫m tra gia t´ng t¯ng phản cũn cho k∏t quÊ thớ nghiêm h∏t s˘c khÊ quan trờn t™p mó ẻc thác t∏.

Ph˜ẽng phỏp ki∫m tra gia t´ng t¯ng phản cũn ˜ềc so sỏnh vểi cỏc ph˜ẽng phỏp ki∫m tra mụ hỡnh khỏc ∫thòy ˜ềc hiêu suòt v˜ềt trẻi khi ki∫m tra vểi cỏc ch˜ẽng trỡnh ph˘c tĐp T¯ ú, xỏc nh™n ˜ềc tớnh khÊthi khi ỏp dˆng ph˜ẽng phỏp ki∫m tra gia t´ng t¯ng phản trong thác t∏.

Trong cụng nghiêp, ph˜ẽng phỏp ki∫m tra gia t´ng t¯ng phản cú th∫ ˜ềc ỏp dˆng ∫ki∫m tra hành vi cıa cỏc ch˜ẽng trỡnh - ∞c biêt là cỏc ch˜ẽng trỡnh cú nhi∑u tớnh n´ng, hành vi ph˘c t§p - tr˜Óc khi ˜a vào s˚ dˆng.

Ph˜ẽng phỏp ki∫m tra gia t´ng t¯ng phản ó tĐo ra mẻt h˜ểng nghiờn c˘u mểi dáa trờn cẽ s phõn tớch tớnh chòt cıa cỏc ch˜ẽng trỡnh cản ki∫m tra ∫ làm giÊm ẻ ph˘c tĐp tớnh toỏn. if imf cú th∫ ˜ềc ỏp dˆng cho cỏc loĐi ch˜ẽng trỡnh khỏc ∫ phõn tớch sá khỏc biêt T¯ ú,mÂi ch˜ẽng trỡnh ∑u cú th∫ ˜ềc phõn ró ∫ ki∫m tra gia t´ng t¯ng phản.

CH◊ÃNG 4 ÁP DữNG SUY DIụN TRÿU T◊—NG ử LOẹI Bƒ CÁC Kfl

Nh˜ ó trỡnh bày  Ch˜ẽng 3, vòn ∑ bựng nÍ khụng gian trĐng thỏi - tr ngĐi lển nhòt cıa h˜ểng ti∏p c™n ki∫m tra mụ hỡnh - ó ˜ềc giÊi quy∏t băng ph˜ẽng phỏp ki∫m tra gia t´ng t¯ng phản vểi ∑xuòt !-region Tuy nhiờn, m∞c dự hành vi cıa mó ẻc ˜ềc cụ l™p trong t¯ng

!-region, viêc ki∫m tra sátÁn tĐi cıa mó ẻc vđn g∞p nhi∑u khú kh´n do mó ẻc luụn tỡm cỏch che ™y hành vi nguy h§i cıa chúng b¨ng các kˇ thu™t làm rËi mã (obfuscation) tiên ti∏n Trong thác t∏, ngay cÊnh˙ng ng˜èi khụng chuyờn trong lổnh vác l™p trỡnh mó ẻc vđn cú th∫ dπ dàng s˚a Íi và tĐo ra mẻt phiờn bÊn mểi cıa mó ẻc băng cỏch s˚dˆng cỏc cụng cˆ làm rậi nh˜

∫ giÊi quy∏t vòn ∑ làm rậi mó, cỏc nghiờn c˘u phỏt tri∫n lu™n l˛thèi gian ∫ ∞c tÊ hiêu quÊhẽn hành vi nguy hĐi ó ˜ềc ∑xuòt [17] Mẩi cụng bậtheo h˜ểng nghiờn c˘u này th˜èng chứ giÊi quy∏t ˜ềc mẻt kˇ thu™t làm rậi cˆ th∫ Tuy nhiờn, vỡ nh˙ng kˇ thu™t cú th∫ ˜ềc dựng

∫ hiên thác viêc làm rậi liờn tˆc ˜ềc phỏt tri∫n, viêc mrẻng lu™n l˛ thèi gian ∫x˚l˛tòt cÊ cỏc kˇthu™t làm rậi khụng phÊi là mẻt h˜ểng nghiờn c˘u khÊ quan.

∫ giÊi quy∏t vòn ∑ làm rậi mó mẻt cỏch triêt ∫, chỳng tụi ∑ xuòt mẻt ngụn ng˙ tr¯u t˜ềng vểi chứn´m lênh ẽn giÊn Sau ú, chỳng tụi ỏp dˆng suy diπn tr¯u t˜ềng ∫ tr¯u t˜ềng hoỏ mẻt ch˜ẽng trỡnh nh‡phõn thành mẻt ch˜ẽng trỡnh ˜ềc bi∫u diπn bi ngụn ng˙tr¯u t˜ềng.

Viêc s˚ dˆng ngụn ng˙tr¯u t˜ềng ẽn giÊn và quỏ trỡnh tr¯u t˜ềng hoỏ giỳp ch˜ẽng trỡnh tr nờn t˜èng minh, t¯ ú loĐi b‰ ˜ềc hảu h∏t cỏc kˇthu™t làm rậi mó.

V∑ m∞t l˛ thuy∏t, chúng tôi cÙng ch˘ng minh r¨ng h˜Óng ti∏p c™n này có th∫x˚l˛ ˜Òc các kˇ thu™t làm rậi mó phÍ bi∏n Bờn cĐnh ú, k∏t quÊ thớ nghiêm trờn t™p mó ẻc thác t∏ cho thòy răng ph˜ẽng phỏp cıa chỳng tụi cú th∫ phỏt hiên ˜ềc cỏc mó ẻc b‡ làm rậi mà cỏc cụng cˆquột mó ẻc khỏc khụng th∫ tỡm thòy ˜ềc.

Các nghiên c˘u liên quan

Trong cỏch ti∏p c™n dáa trờn ki∫m tra mụ hỡnh nh˜ ó thÊo lu™n trong Mˆc 2.1.3, thuẻc tớnh cản ˜ềc ki∫m tra phÊi ˜ềc ∞c tÊ băng mẻt cụng th˘c lu™n l˛ ậi vểi tr˜èng hềp ỏp dˆng ki∫m tra mụ hỡnh trờn mó thác thi ∫ phỏt hiên mó ẻc, thỡ thuẻc tớnh cản ˜ềc ki∫m tra chớnh là chuẩi cỏc hành vi nguy hĐi Lu™n l˛ thèi gian [14] ˜ềc s˚ dˆng rẻng rói cho viêc ∞c tÊ thuẻc tớnh nhè vào khÊ n´ng bi∫u diπn ng˙nghổa cıa chuẩi cỏc hành vi trong ch˜ẽng trỡnh. l 1 :mov eax,0 EF(mov(eax,0)^AF(push(eax) l 2 :push eax ^AXcall(GetM oduleHandleA))) l3:call ds:GetM oduleHandleA

Thuẻc tớnh cıa virus Avron Cụng th˘c CTL t˜ẽng ˘ng

Hình 4.1: S˚dˆng công th˘c CTL ∫ ∞c t£ hành vi nguy h§i.

Hỡnh 4.1 mụ tÊ thuẻc tớnh cıa virus Avron và cụng th˘c CTL = EF(mov(eax,0)^ AF(push(eax)^AXcall(GetM oduleHandleA)))t˜ẽng ˘ng cıa thuẻc tớnh ú Cụng th˘c này

∞c tÊchuẩi hành vi là cuậi cựng cÙng tÁn tĐi mẻt ˜èng i ∫ mov eax,0 ˜ềc thác hiên, sau ú eaxs≥ ˜ềc ây vào ng´n x∏p và lênhcall GetM oduleHandleA s≥ ˜ềc thác thi ngay sau ú Cụng cˆki∫m tra s≥ki∫m tra trờn mụ hỡnh cıa ch˜ẽng trỡnh xem cụng th˘c cú ˜ềc thoÊ món hay khụng ∫ khỉng ‡nh sá tÁn tĐi cıa virus Avron.

H˜Óng ti∏p c™n s˚ dˆng CTPL Trong hỡnh 4.1, n∏u tỏc giÊmó ẻc s˚dˆng kˇthu™t làm rậi mó gÂi làthay Íi thanh ghi (regis- ter reassignment) băng cỏch s˚dˆng thanh ghiebx thay vỡ thanh ghieax thỡ cụng th˘c CTL t˜ẽng ˘ng ph£i ˜Òc thay Íi thànhEF(mov(ebx,0)^AF(push(ebx)^AXcall(GetM oduleHandleA))).

Trong tr˜èng hềp tÍng quỏt, cụng th˘c CTL trờn phÊi bao gÁm tòt cÊcỏc thanh ghi cú th∫s˚dˆng:

EF(mov(eax,0)^AF(push(eax) ))_EF(mov(ebx,0)^AF(push(ebx) ))_EF(mov(ecx,0)^

AF(push(ecx) ))_ 1 Viêc này làm phỏt sinh nhi∑u khú kh´n cho quỏ trỡnh ∞c tÊhành vi cıa mó ẻc.

1 Cụng th˘c này cản ˜ềc m rẻng vểi tòt cÊ thanh ghi cú th∫ s˚ dˆng.

∫ giÊi quy∏t vòn ∑trờn, CTPL ˜ềc giểi thiêu [17].fi t˜ng chớnh cıa CTPL là bÍ sung l˜ềng t¯ vào CTL và hành vi mó ẻc ˜ềc mụ tÊ trong hỡnh 4.1 cú th∫ ˜ềc ∞c tÊ vểi cụng th˘c:9rEF(mov(r,0)^AF(push(r)^AX call(GetM oduleHandleA))).

Tuy nhiên, CTPL l§i g∞p khó kh´n khi g∞p ph£i kˇ thu™t làm rËi mãchèn mã rác dead code insertion).

Vớ dˆ 15 Trong Hỡnh 4.2(a), mẻt oĐn mó rỏc push thanh ghi ebx vào ng´n x∏p sau ú pop thanh ghi này ra, oĐn mó này khụng làm thay Íi hành vi ch˜ẽng trỡnh nh˜ng lĐi dπ dàng v˜ềt qua ˜Òc công th˘c CTPL 9rEF(mov(r,0)^AF(push(r)^AX call(GetM oduleHandleA))). l 1 :mov eax,0 l 1 :mov eax,1 l 1 :mov eax,0 l 2 :push eax l 2 :dec eax l 2 :mov [esp], eax l 3 :push ebx l 3 :push eax l 3 :push ebx l4:pop ebx l4:push ebx l4:pop ebx l 5 :call l 5 :pop ebx l 5 :call ds:GetM oduleHandleA l6:call ds:GetM oduleHandleA ds:GetM oduleHandleA

Hình 4.2: Áp dˆng các kˇthu™t làm rËi mã trên virus Avron.

H˜Óng ti∏p c™n s˚ dˆng SCTPL SCTPL [18] ˜ềc m rẻng t¯CTPL băng cỏch ∞c tÊbi∏n sậ hiên thèi tĐi ứnh ng´n x∏p.

Ví dˆ 16 Hành vi t§i Hình 4.2(a) có th∫ ˜Òc bi∫u diπn bi công th˘c 9r1EF(mov(r1,0)^

AF(call(GetM oduleHandleA)^r 1 ⇤ )) Bi∏n r 1 trong cụng th˘c này ˜ềc dựng ∫mụ tÊ ứnh ng´n x∏p Nhè viêc theo dừi bi∏n sậ hiên thèi tĐi ứnh ng´n x∏p, h˜ểng ti∏p c™n này giÊi quy∏t ˜Òc kˇthu™t làm rËi mã chèn mã rác.

H˜Óng ti∏p c™n s˚ dˆng SCTPL\XTi∏p tˆc phỏt tri∫n t¯ SCTPL, SCTPL\X ˜ềc Fu Song giểi thiêu [16] fit˜ng chớnh cıaSCTPL\X là ∞c tÊ giỏ tr‡cˆ th∫tĐi ứnh ng´n x∏p ch˘ khụng chứlà mẻt bi∏n sậ nào ú nh˜

SCTPL Cỏc ph˜ẽng phỏpphõn tớch giỏ tr‡ cÙng ˜ềc ỏp dˆng trong ∑ xuòt này ∫ tớnh toỏn giỏ tr‡tĐi ứnh ng´n x∏p.

Ví dˆ 17 Hành vi t§i Hình 4.2(b) có th∫ ˜Òc bi∫u diπn b¨ng công th˘c9mEF(call(GetM odule

HandleA)^{0}m ⇤ ) Cụng th˘c này ∞c tÊ răng ứnh ng´n x∏p cú giỏ tr‡ là 0 tĐi thèi i∫m hàm hê thậng GetModuleFileNameA ˜ềc gÂi Nh˜ v™y, n∏u tỏc giÊ mó ẻc cú thay Íi mó nguÁn tĐi hỡnh 4.2(b) mà vđn gi˙nguyờn hành vi push0 vào ng´n x∏p sau ú gÂi hàm hê thậng GetModuleFileNameA, thỡ hành vi này vđn ˜ềc phỏt hiên bi cựng cụng th˘c trờn.

H˜Óng ti∏p c™n s˚ dˆng LTL HĐn ch∏ lển nhòt cıa CTL là khụng th∫ bi∫u diπn ˜ềc ràng buẻc fairness, do ú SLTPL - lu™n l˛m rẻng cıa LTL băng cỏch thờm vào l˜ềng t¯và ∞t tÊ giỏ tr‡tĐi ứnh ng´n x∏p - ó ˜ềc ∑ xuòt [100] ∫ ∞c tÊnh˙ng thuẻc tớnh mà CTL khụng th∫ ∞c tÊ ˜ềc.

Vớ dˆ 18 TĐi Hỡnh 4.3, hành vi nguy hĐi vểi mẻt vũng l∞p so sỏnh giỏ tr‡ cıa mẻt thanh ghi vểi 5A4Dh sau ú so sỏnh giỏ tr‡ cıa mẻt thanh ghi khỏc vểi 4550h. l 1 : cmp [eax], 5A4Dh 3 : jnz l 2

Hành vi này ˜ềc ∞c tÊ băng cỏc cụng th˘c t˜ẽng ˘ng nh˜ sau.

• SLTPL : GF(9r 1 cmp(r 1 ,5A4Dh)^F9r 2 cmp(r 2 ,4550h))

• SCTPL :EGEF(9r 1 cmp(r 1 ,5A4Dh)^EF9r 2 cmp(r 2 ,4550h))

Tuy nhiờn, cụng th˘c SCTPL trờn s≥nh™n diên hành vi tĐi hỡnh 4.4 là nguy hĐi, dự viêc so sỏnh cỏc thanh ghi vểi cỏc giỏ tr‡ 5A4Dh và 4550h chứ xÊy ra mẻt lản Vỡ l˛ do này, SLTPL ˜ềc s˚dˆng ∫trỏnh tr˜èng hềp d˜ẽng tớnh giÊ. l 1 ’ : … … 8 : jnz l 1 ’ 9 : cmp [eax], 5A4Dh 10: cmp [ebx], 4550h

HOPE - khung th˘c x˚ l˛ các kˇ thu™t làm rËi mã

M∞c dự cỏc h˜ểng ti∏p c™n dáa vào lu™n l˛thèi gian ó Đt ˜ềc nh˙ng k∏t quÊnhòt ‡nh, cỏc kˇthu™t làm rậi mó liờn tˆc ˜ềc phỏt tri∫n ∫ trỏnh cho mó ẻc b‡ ∞c tÊbi cỏc lu™n l˛này.

Viêc mrẻng lu™n l˛thèi gian ∫cú th∫x˚l˛ cỏc kˇthu™t làm rậi mó mểi ũi h‰i nhi∑u chi phớ.

Ngoài ra, vểi mẩi phiờn bÊn lu™n l˛mểi, cụng cˆki∫m tra mụ hỡnh cÙng cản ˜ềc c™p nh™t ∫ cú th∫thác hiên ki∫m tra mụ hỡnh cho nh˙ng thuẻc tớnh ˜ềc ∞c tÊ băng lu™n l˛ mểi này.

∫ giÊi quy∏t nh˙ng khú kh´n trờn, chỳng tụi ∑ xuòt mẻt khung th˘c ˜ềc gÂi là HOPE (Handling Obfuscated Polymorphic malwarE), trong ó b˜Ócgi£i rËi mã (deobfuscation) ˜Òc tỏch biêt vểi b˜ểc ki∫m tra mụ hỡnh Viêc phõn tỏch b˜ểc giÊi rậi mó vểi b˜ểc ki∫m tra mụ hỡnh giỳp chỳng ta c™p nh™t ph˜ẽng phỏp x˚ l˛ cỏc kˇthu™t làm rậi mó mểi mà vđn s˚dˆng ˜ềc cụng cˆki∫m tra mụ hỡnh và lu™n l˛thèi gian ban ảu. ω - verifier ω - decomposition ω-regions 1 ω-regions 2 … ω-regions n

CFG Công cụ xây dựng CFG

Kết quả kiểm tra Đặc tả luận lý thời gian

Hành vi nguy hại ω - abstraction

Trigger Scan Trừu tượng hoá hành vi

Phân tích giá trị Cắt lát ngược

Hỡnh 5.4 bi∫u diπn khung th˘c cıa chỳng tụi dựng ∫ x˚ l˛ mó ẻc ˜ềc làm rậi Khung th˘c này ˜ềc phỏt tri∫n t¯ ph˜ẽng phỏp ki∫m tra gia t´ng t¯ng phản Thay vỡ cỏc !-region ˜ềc ki∫m tra trác ti∏p, chỳng ˜ềc giÊi rậi mó băng cỏch tr¯u t˜ềng hoỏ Cỏc b˜ểc chớnh cıa khung th˘c ˜Òc mô t£ nh˜sau.

• Phõn hêTr¯u t˜ềng hoỏ hành vi: chỳng tụi ti∏n hành tr¯u t˜ềng hoỏ mó assembly trong t¯ng

!-region thành mẻt bi∫u diπn băng ngụn ng˙ tr¯u t˜ềng ˜ềc trỡnh bày trong BÊng 4.1.

• Phõn hê Trigger scan: b˜ểc này cú nhiêm vˆquột tỡm mẻt lênh nh™n diên mó ẻc Mẻt lênh nh™n diên là mẻt lênh phÊi ˜ềc thác hiên bi mẻt mó ẻc nhòt ‡nh bòt k∫ kˇ thu™t làm rậi mó nào ˜ềc s˚dˆng Vớ dˆ, trong Hỡnh 4.2(c), lênh l 5 là mẻt lênh khụng th∫ trỏnh kh‰i bi bòt k˝bi∏n th∫nào cıa virus Avron, do ú nú ˜ềc coi là mẻt lênh nh™n diên cıa virus này.

Cỏc lênh nh™n diên mó ẻc ˜ềc thu th™p t¯t™p d˙liêu hành vi cıa mó ẻc Tuy lênh nh™n diên khụng ılàm c´n c˘ ∫khỉng ‡nh sá tÁn tĐi cıa mó ẻc, nú giỳp xỏc ‡nh ˜ềc i∫m neo, t¯ ó áp dˆng các kˇthu™t suy diπn tr¯u t˜Òng ∫ lo§i b‰các kˇthu™t làm rËi mã (n∏u cú) ˜ềc dựng ∫che dòu hành vi cıa mó ẻc.

• Phõn hê Suy diπn tr¯u t˜ềng: b˜ểc này s˚dˆng cỏc kˇthu™t suy diπn tr¯u t˜ềng bao gÁm phân tích giá tr‡ (value analysis) và c≠t lát ng˜Òc (backward slicing) ∫ phân tích và lo§i b‰ các kˇthu™t làm rËi mã ˜Òc s˚ dˆng.

Ví dˆ 19 TruÓc khi ti∏n hành ki∫m tra, các o§n mã trong Hình 4.2 ˜Òc tr¯u t˜Òng hoá thành mẻt bi∫u diπn duy nhòt nh˜sau. assign eax,0 push eax call ds:GetModuleHandleA

Sau ú oĐn mó ẽn giÊn này (khụng ch˘a kˇ thu™t làm rậi nào) ˜ềc ki∫m tra băng ∞c tÊ lu™n l˛ thèi gian thụng th˜èng ∫ xỏc ‡nh sá hiên diên cıa hành vi nguy hĐi.

B£ng 4.1: Ngôn ng˙ tr¯u t˜Òng. assign l-value= expression : gán giá tr‡ cıa expression vào l-value. jump expression: nhÊy ∏n ‡a chứ là giỏ tr‡ cıa expression. push/pop register : push ho∞c pop giá tr‡ cıa register vào/t¯ ng´n x∏p. call module: gÂi mẻt module. guard condition: ng¯ng luÁng x˚ l˛ n∏u condition là "false" và ti∏p tˆc trong tr˜Ìng hÒp ng˜Òc l§i.

Tr¯u t˜Òng hoá hành vi ∫ gi£i rËi mã

Quỏ trỡnh tr¯u t˜ềng hoỏ hành vi v∑ cẽ bÊn là d‡ch mó nh‡phõn ban ảu sang mẻt ngụn ng˙ tr¯u t˜ềng Vểi mˆc ớch giÊi rậi mó, ngụn ng˙tr¯u t˜ềng cıa chỳng ta ẽn giÊn hẽn nhi∑u so vểi ngụn ng˙nh‡phõn ban ảu, ˜ềc trỡnh bày trong BÊng 4.1.

Viêc tr¯u t˜ềng hoỏ mẻt ch˜ẽng trỡnh nh‡phõn thành mẻt ch˜ẽng trỡnh tr¯u t˜ềng s˚dˆng ngụn ng˙tr¯u t˜ềngtrờn ˜ềc thác hiên tuản tát¯ng lênh Lênh phÍbi∏n và ỏng chỳ˛ nhòt cıa ngụn ng˙ tr¯u t˜ềng là lênhassign Quỏ trỡnh tr¯u t˜ềng hoỏ ˜ềc thác hiên trờn toàn bẻ cỏc hoĐt ẻng cıa ch˜ẽng trỡnh nh‡ phõn ban ảu, bao gÁm nh˙ng thao tỏc thay Íi giỏ tr‡cıa thanh ghi hay bẻ nhể Tuy nhiờn, ngụn ng˙tr¯u t˜ềng chứ ch˘a cỏc lênh cẽbÊn nh˜gỏn giỏ tr‡, nhÊy, truy c™p ng´n x∏p, gÂi hàm; và tòt cÊcỏc lênh trong ch˜ẽng trỡnh nh‡phõn s≥ ˜ềc tr¯u t˜ềng thành cỏc lênh này.

Quá trình suy diπn tr¯u t˜Òng ˜Òc áp dˆng trên mô hình tr¯u t˜Òng cıa chúng ta cÙng ròt trác quan Khi mẻt l-value ˜ềc c™p nh™t bi nhi∑u lênh assign, chỳng ta chứgi˙lĐi lênh assign cuậi cựng và tớnh toỏn giỏ tr‡ expression cıa lênh này ∫ tớnh toỏn giỏ tr‡ cıa mẻt expression, chúng tôi s˚dˆng hai kˇthu™t là phân tích giá tr‡ (value analysis) vàc≠t lát ng˜Òc (backward slicing).

∫ xỏc ‡nh giỏ tr‡cıa cỏc tham sậtrong mẻt lênh ó ˜ềc tr¯u t˜ềng, chỳng tụi xõy dáng mẻt cụng cˆ mụ ph‰ng cỏc thao tỏc trờn thanh ghi i∫m b≠t ảu cıa quỏ trỡnh mụ ph‰ng là lênh gản nhòt ch˘a giỏ tr‡ thác và thanh ghi mà chỳng ta cản phÊi bi∏t giỏ tr‡ cıa nú i∫m k∏t thỳc cıa quỏ trỡnh mụ ph‰ng là lênh cuậi cựng cıa khậi mó cản ˜ềc tr¯u t˜ềng Cụng cˆ mụ ph‰ng thác hiên tuản tát¯ng lênh trong khậi mó mà nú ang phõn tớch và sau ú l˜u cỏc giỏ tr‡ cıa thanh ghi vào trong thanh ghi t§m Tr§ng thái cuËi cùng cıa thanh ghi ph£n ánh giá tr‡ thác cıa thanh ghi này tĐi i∫m k∏t thỳc cıa quỏ trỡnh mụ ph‰ng.

C≠t lát ng˜Òc Chúng tôi áp dˆng kˇthu™t c≠t lát ng˜Òc trong quá trình phân tích giá tr‡ ∫ tËi˜u quá trỡnh x˚ l˛ Mẻt cỏch tÍng quỏt, quỏ trỡnh c≠t lỏt ng˜ềc bao gÁm cỏc b˜ểc sau:

• Xỏc ‡nh cỏc bi∏n cản ˜ềc tớnh toỏn, õy là nh˙ng lênh ˜ềc phỏt hiên bi phõn hêTrigger scan.

• Quột ng˜ềc ∫ tỡm nh˙ng lênh cú th∫ Ênh h˜ng ∏n giỏ tr‡cıa bi∏n ú

• ỏnh dòu cỏc lênh này

• Ti∏n hành quỏ trỡnh giÊl™p trờn cỏc lênh ˜ềc ỏnh dòu l1:mov eax,1 l 2 :mov ebx,2 l3:sub ebx,7 l 4 :add eax,3 l5:mov ecx, eax l 1 :mov eax,1 l4 :add eax,3 l 5 :mov ecx, eax assign eax,4 assign ecx,4

(a) Cỏc lênh ban ảu (b) Cỏc lênh ˜ềc c≠t lỏt (c) Cỏc lênh tr¯u t˜ềng

Hình 4.6: Các b˜Óc tr¯u t˜Òng hoá hành vi.

Hỡnh 4.6 trỡnh bày mẻt vớ dˆ ẽn giÊn mụ tÊ cỏc b˜ểc tr¯u t˜ềng mẻt oĐn mó nh‡phõn.

Trong Hỡnh 4.6(a) là mó gậc Chỳng tụi giÊ ‡nh răng phõn hê Trigger scan ỏnh dòu lênh cản ˜ềc phõn tớch tĐi lênhl 5 , do ú giỏ tr‡cıaeaxlà cản thi∏t ∫ ˜ềc tớnh toỏn Trong Hỡnh 4.6(b),ch˜ẽng trỡnh ˜ềc c≠t lỏt ∫ gi˙ lĐi cỏc lênh cú th∫ Ênh h˜ng ∏n eax Cuậi cựng, mó tr¯u t˜ềng ˜ềc ˜a ra trong Hỡnh 4.6(c) Cản l˜u ˛răng phõn tớch giỏ tr‡ ˜ềc thác hiên ∫ ỏnh giỏ chớnh xỏc cỏc giỏ tr‡cıa cỏc tham sậ th˘ hai cıa lênhassign.

N≠m b≠t hành vi M∞c dự ẽn giÊn, ngụn ng˙tr¯u t˜ềng cú khÊ n´ng n≠m b≠t cỏc hành vi thác sácıa mẻt oĐn mó nh‡phõn, bi vỡ chỳng ta chứxem xột giỏ tr‡cuậi cựng ˜ềc gỏn cho thanh ghi ho∞c mẻt v‡trớ bẻnhể Vớ dˆ, ch˜ẽng trỡnh cú ch˘a oĐn mó nguy hĐi trong Hỡnh 4.2(c) khụng th∫b‡ phỏt hiên ngay cÊ vểi lu™n l˛ ˜ềc cụng bậ gản nhòt là SCTPL\X, lĐi cú th∫ ˜ềc tr¯u t˜ềng b¨ng cách s˚dˆng kˇthu™t cıa chúng tôi vÓi k∏t qu£ nh˜sau. assign eax,0 push eax call ds:GetModuleHandleA

Khi ú, oĐn mó tr¯u t˜ềng này cú th∫ ˜ềc bi∫u diπn bi cụng th˘c CTPL ẽn giÊn9r1EF(assign(r1,0)^AF(push(r1)^AXcall(GetM oduleHandleA)))

Ch˘ng minh kh£ n´ng gi£i rËi mã

Trong mˆc này, chỳng tụi ch˘ng minh răng ph˜ẽng phỏp cıa chỳng tụi cú th∫ x˚ l˛ ˜ềc bận kˇ thu™t làm rậi mó bao gÁm chốn mó rỏc (dead code insertion), thay Íi th˘ tá mó (code reordering),thay Íi thanh ghi (register reassignment) và thay Íi lênh (instruction replacement).

‡nh l˛ 2 Khung th˘c HOPE có th∫lo§i b‰ kˇ thu™t chèn mã rác.

Ch˘ng minh Nhè vào phõn hê Trigger scan, chứnh˙ng lênh cú liờn quan ∏n hành vi nguy hĐi cản ˜ềc ki∫m tra mểi ˜ềc ỏnh dòu ∫x˚l˛ Nh˙ng lênh ˜ềc thờm vào bi kˇ thu™t chốn mó rỏc khụng làmÊnh h˜ng ∏n luÁng x˚ l˛cıa ch˜ẽng trỡnh, do ú khụng liờn quan ∏n nh˙ng lênh ˜ềc s˚ dˆng khi mó ẻc thác hiên hành vi nguy hĐi Vỡ v™y, cỏc khậi mó rỏc s≥ khụng ˜Òc x˚l˛và b‡lo§i b‰.

‡nh l˛ 3 Kˇthu™t phân tích giá tr‡ có th∫lo§i b‰ các kˇ thu™t làm rËi mã bao gÁm thay Íi th˘ tá mó, thay Íi thanh ghi và thay Íi lênh.

Ch˘ng minh Nh˙ng kˇ thu™t làm rậi mó trờn t™p trung vào viêc thay Íi trĐng thỏi ch˜ẽng trình b¨ng nhi∑u cách khác nhau, sau ó phˆc hÁi l§i các tr§ng thái cÙ Tuy nhiên, vì kˇthu™t phõn tớch giỏ tr‡cıa chỳng tụi chứt™p trung vào giỏ tr‡cıa thanh ghi ˜ềc gỏn cuậi cựng, tòt c£ o§n mã làm rËi ˜Òc chèn vào s≥ b‡b‰ qua Ví dˆ, trong Hình 4.6(b), n∏u l™p trình viên cậ tỡnh chia viêc gỏn thanh ghi eaxthành hai lênh riờng biêt, ch˜ẽng trỡnh tr¯u t˜ềng trong Hỡnh 4.6(c) chứtĐo ra mẻt chứlênh gỏn duy nhòt

‡nh l˛ 4 N∏u mẻt mó ẻc cú th∫ ˜ềc phỏt hiên bi mẻt cụng cˆ ki∫m tra mụ hỡnh, khung th˘c cıa chỳng tụi cú th∫ phỏt hiên tòt cÊ cỏc bi∏n th∫ ˜ềc làm rậi cıa nú.

Ch˘ng minh Nh˜ ó trỡnh bày trong Ch˜ẽng 3, hành vi nguy hĐi cıa mó ẻc chứxuòt hiên trong mẻt !-region Hẽn n˙a, dáa vào ‡nh l˛ 2 và ‡nh l˛3, tòt cÊcỏc kˇthu™t làm rậi mó phÍbi∏n cú trong mẻt !-region s≥ ˜ềc loĐi b‰ Do ú viêc ki∫m tra trờn t¯ng !-region s≥cho k∏t quÊ t˜ẽng tánh˜ viêc ki∫m tra trờn ch˜ẽng trỡnh mó ẻc gậc, ch˜a b‡làm rậi.

Thớ nghiêm

Chỳng tụi ki∫m tra hiêu suòt giÊi rậi mó cıa khung th˘c vểi cỏc mđu mó ẻc trong thác t∏.

Mó nguÁn mó ẻc ˜ềc s˚dˆng trong cỏc thớ nghiêm cıa chỳng tụi ˜ềc lòy t¯ VX Heaven 2 , VirusSign 3 và t™p d˙liêu MALICIA [96] Sau ú, chỳng tụi ỏp dˆng cỏc kˇ thu™t làm rậi mó ∫ xõy dáng cỏc bi∏n th∫ cıa cỏc mó ẻc này ∫ ỏnh giỏ hiêu suòt, chỳng tụi so sỏnh k∏t quÊ cıa chỳng tụi vểi cỏc cụng cˆquột mó ẻc nÍi ti∏ng khỏc bao gÁm Avira 4 , Avast 5 , Kaspersky 6 và Bitdefender 7

Chúng tôi ã áp dˆng các kˇthu™t làm rËi mã phÍbi∏n nh˜ ˜Òc trình bày trong B£ng 4.2, trong ú t lêphỏt hiên thành cụng cıa cỏc cụng cˆ quột mó ẻc nÍi ti∏ng ậi vểi cỏc mó ẻc ó ˜ềc làm rậi ˜ềc so sỏnh vểi cỏch ti∏p c™n cıa chỳng tụi Ph˜ẽng phỏp làm rậi mó ˜ềc s˚ dˆng trong lu™n ỏn t˜ẽng tánh˜ cỏc ph˜ẽng phỏp làm rậi mó ˜ềc thác hiên bi ng˜èi vi∏t mó ẻc ∫ cú th∫ v˜ềt qua ˜ềc cỏc cụng cˆquột mó ẻc (tr˜ểc khi ch˙ k˛ mểi ˜ềc c™p nh™t).

Quan sỏt thòy răng cỏc cụng cˆ quột mó ẻc nÍi ti∏ng cú khÊ n´ng nh™n diên ˜ềc hảu h∏t cỏc mó ẻc ó bi∏t, tuy nhiờn cỏc cụng cˆnày g∞p phÊi trngĐi lển khi ậi m∞t vểi mó ẻc ó ˜ềc

Avira Avast Kaspersky Bitdefender HOPE

Các kˇthu™t làm rËi mã khác

10% 9% 30% 40% 78% làm rậi Vỡ sau khi ỏp dˆng cỏc kˇthu™t làm rậi lờn mó ẻc thỡ oĐn mó ch˘a ch˙k˛cıa chỳng cú nhi∑u khÊ n´ng b‡thay Íi, do ú cỏc cụng cˆ quột mó ẻc s˚dˆng ph˜ẽng phỏp so trựng ch˙ k˛ ∑u ròt khú nh™n diên ˜ềc mó ẻc, m∞c dự chỳng hoàn toàn cú khÊ n´ng phỏt hiên nh˙ng mó ẻc này khi trĐng thỏi nguyờn thu Trong khi ú, ph˜ẽng phỏp ti∏p c™n cıa chỳng tụi cú hiêu quÊ cao ậi vểi viêc giÊi rậi mó, giỳp th∫ hiên rừ hành vi nguy hĐi thác sácıa mó ẻc, t¯ ú cho k∏t quÊki∫m tra ròt khÊ quan.

Th£o lu™n

Trong ch˜ẽng này, chỳng tụi ó trỡnh bày mẻt ph˜ẽng phỏp giỳp giÊi quy∏t vòn ∑ làm rậi mó nan giÊi cıa h˜ểng ti∏p c™n ỏp dˆng ki∫m tra mụ hỡnh ∫ phỏt hiên mó ẻc Băng cỏch phõn tỏch b˜ểc x˚l˛ làm rậi mó và b˜ểc ki∫m tra mụ hỡnh, khung th˘c HOPE giÊi quy∏t ˜ềc vòn ∑ làm rậi mó mà khụng cản thay Íi lu™n l˛ ∞c tÊ hành vi mó ẻc hay cụng cˆki∫m tra mụ hỡnh.

Ngụn ng˙ tr¯u t˜ềng ẽn giÊn cıa HOPE giỳp loĐi b‰ hiêu quÊ cỏc kˇthu™t làm rậi mó nh˜ng vđn Êm bÊo khụng làm mòt i ng˙ nghổa cıa hành vi nguy hĐi mó ẻc K∏t quÊ thớ nghiêm ó khỉng ‡nh tớnh hiêu quÊcıa khung th˘c HOPE vểi viêc loĐi b‰ ˜ềc cỏc kˇthu™t làm rậi mó phÍ bi∏n trong thác t∏.

CH◊ÃNG 5 Hừ THằNG HOÁ Mà ÀC

Phõn loĐi tá ẻng cỏc bi∏n th∫ mó ẻc vào mẻt cõy phõn còp khỏi niêm ó thu hỳt ˜ềc nhi∑u sá chỳ˛t¯ cẻng Áng nghiờn c˘u phản m∑m ẻc hĐi Tuy nhiờn, õy khụng phÊi là mẻt viêc ẽn giÊn, vỡ cỏc hành vi nguy hĐi cıa mó ẻc ˜ềc ∞t tÊ băng cỏc cụng th˘c lu™n l˛ Do ú, cỏc ph˜ẽng phỏp khai phỏ d˙liêu thụng th˜èng dáa trờn trớch xuòt ∞c tớnh ròt khú ∫ ỏp dˆng ˜ềc Trong Ch˜ẽng này, chỳng tụi giÊi quy∏t vòn ∑phõn loĐi tá ẻng băng cỏch giểi thiêu mẻt khung th˘c ˜Òc gÂi là MarCHGen (Malware Conceptual Hierarchy Generation) Trong khung th˘c này, tr˜ểc tiờn chỳng tụi ∑xuòt ph˜ẽng phỏpphõn tớch khỏi niêm lu™n l˛ mó ẻc (ViralLogical Concept Analysis - V-LCA), õy là ph˜ẽng phỏp k∏t hềp phõn tớch khỏi niêm hỡnh th˘c(Formal Concept Analysis) vÓi lu™n l˛thÌi gian ∫n≠m b≠t các hành vi nguy h§i và tÍng hÒp thành mẻt giàn khỏi niêm mó ẻc (viral concept lattice) t˜ẽng ˘ng Th˘ hai, chỳng tụi ∑xuòt mẻt kˇ thu™tgom cˆm khỏi niêm liờn tˆc (On-the-fly Conceptual Clustering) ∫tĐo ra mẻt cõy phõn còp khỏi niêm mó ẻc (malware concept hierarchy) Trong khung th˘c MarCHGen, cõy phõn còp khỏi niêm mó ẻc s≥ ˜ềc giỏm sỏt băng kˇ thu™t quÊn l˛t™p c™n phÍ bi∏n (Pre-largeDataset Management) ∫ trỏnh tỏi gom cˆm nhi∑u lản Cỏch ti∏p c™n cıa chỳng tụi ˜ềc ỏp dˆng cho mẻt bẻ d˙liêu mó ẻc thác t∏ và ó Đt ˜ềc k∏t quÊ thớ nghiêm ròt khÊ quan.

Các nghiên c˘u liên quan

Phõn tớch khỏi niêm hỡnh th˘c và cỏc m rẻng

Phõn tớch khỏi niêm hỡnh th˘c (Formal Concept Analysis) [22] là mẻt kˇ thu™t phõn tớch d˙ liêu nhăm xỏc ‡nh cỏc khỏi niêm hỡnh th˘c cıa mẻt ng˙cÊnh hỡnh th˘c và xõy dáng mẻt giàn khỏi niêm t˜ẽng˘ng Trong lổnh vác khai phỏ d˙liêu, kˇthu™t này cú nhi∑u˘ng dˆng phong phỳ nh˜ thụng tin sinh hÂc [102, 103], phõn tớch mĐng xó hẻi [104], tỡm ki∏m trờn web ng˙ nghổa [105], theo dừi xu h˜ểng cụng nghê [106], tỡm hi∫u lu™t k∏t hềp cıa trang web [107], ỏnh giỏ nguy cẽ khıng bậ[108], t˜ẽng thớch v´n bÊn [109] và cụng nghê phản m∑m [110] Cˆ th∫hẽn, [111] ó s˚dˆng kˇthu™t FCA ∫ phõn tớch trĐng thỏi xuòt bÊn cıa cỏc bài bỏo trong lổnh vác này.

∫ xõy dáng giàn khỏi niêm hiêu quÊ và cú ˛ nghổa hẽn, nhi∑u cÊi ti∏n ó ˜ềc ∑ xuòt.

[112] k∏t hềp FCA, Chu Space và Domain Theory ∫phõn tớch sáphˆthuẻc gi˙a cỏc thuẻc tớnh.

[113] ∑ xuòt s˚dˆng toỏn t˚bao úng (closure) ∫ phõn tớch sá phˆ thuẻc gi˙a cỏc thuẻc tớnh.

Ph˜ẽng phỏp ‡nh v‡khỏi niêm ˜ềc ∑xuòt bi [114] Trong ∑ xuòt tĐi [115], mẻt còu trỳc Đi sậ ó ˜ềc ∑ xuòt ∫ xõy dáng cõy phõn còp khỏi niêm vàontology k∏t hềp t¯giàn khỏi niêm.

Tuy nhiờn, ậi vểi cỏc lểp khỏi niêm mụ tÊ cỏc hành vi ph˘c tĐp nh˜hành vi nguy hĐi cıa mó ẻc, viêc bi∫u diπn khỏi niêm ũi h‰i nh˙ng kˇthu™t phõn tớch ∫ x˚ l˛quan hê gi˙a cỏc thuẻc tớnh ph˘c tĐp Hiên nay, cỏc cụng trỡnh ˜ềc cụng bậvđn ch˜a giÊi quy∏t ˜ềc vòn ∑này.

Phõn tớch khỏi niêm hỡnh th˘c h˜ểng ∞c tớnh

ẻc và cẽ ch∏ hoĐt ẻng cıa mó ẻc th˜èng ˜ềc bi∫u diπn băng lu™n l˛thèi gian, trong quỏ trỡnh nghiờn c˘u, chỳng tụi ∑ xuòt ph˜ẽng phỏpphõn tớch khỏi niêm hỡnh th˘c h˜ểng ∞c tớnh (Feature-driven Formal Concept Analysis - F-FCA) [116] nh˜là mẻt h˜ểng mrẻng cıa FCA ∫ xõy dáng giàn khỏi niêm, trong ú mẩi khỏi niêm cú mẻt ∞c tớnh ˜ềc bi∫u diπn băng mẻt cụng th˘c lu™n l˛thÌi gian.

Viêc s˚ dˆng lu™n l˛ thèi gian cho phộp khỏi niêm ch˘a ˜ềc nhi∑u thụng tin ng˙nghổa hẽn, tuy nhiờn, F-FCA vđn xõy dáng giàn khỏi niêm băng cỏc thuẻc tớnh i∫n hỡnh giậng nh˜FCA, dđn ∏n k∏t quÊ khụng chớnh xỏc Vểi h˜ểng ti∏p c™n hoàn toàn khỏc, ph˜ẽng phỏp chỳng tụi ˜a ra trong lu™n ỏn dáa trờn khỏi niêm tÍng quỏt hoỏ lu™n l˛, t¯ ú lu™n l˛thèi gian ˜ềc s˚ dˆng ∫ bi∫u diπn cỏc thuẻc tớnh cıa khỏi niêm thay vỡ cỏc thuẻc tớnh i∫n hỡnh Băng cỏch s˚ dˆng cụng th˘c lu™n l˛thèi gian ∫ khỏi quỏt húa t¯ng ậi t˜ềng trờn cõy phõn còp, cỏch ti∏p c™n cıa chỳng tụi trỡnh bày trong lu™n ỏn cho phộp xõy dáng giàn khỏi niêm vểi hành vi cıa mó ẻc ˜ềc mụ tÊchớnh xỏc úng gúp quan trÂng này là sá khỏc biêt rừ ràng cıa V-LCA so vểi ˛ t˜ng F-FCA ban ảu cıa chỳng tụi.

T Íng quỏt hoỏ lu™n l˛ cho phõn tớch khỏi niêm hỡnh th˘c

Vỡ sậ l˜ềng cỏc khỏi niêm hỡnh th˘c tĐo ra bi FCA là ròt lển, nhi∑u h˜ểng ti∏p c™n ó ˜ềc cụng bậ ∫tÍng quỏt hoỏ cỏc khỏi niêm t˜ẽng tá trờn giàn khỏi niêm T¯ ú, sậ l˜ềng cỏc khỏi niêm trờn giàn khỏi niêm ˜ềc giÊm l˜ềc và cỏc khỏi niêm cÙng dπ hi∫u hẽn [117] Mẻt trong nh˙ng cách ti∏p c™n theo h˜Óng này làtÍng quát hoá lu™n l˛ (logical generalization) [101], vÓi viêc bi∫u diπn mẻt t™p cỏc khỏi niêm t˜ẽng tá băng mẻt cụng th˘c lu™n l˛ Lềi th∏ cıa cỏch ti∏p c™n này là cụng th˘c lu™n l˛cú th∫ ˜ềc x˚l˛ mẻt cỏch tá ẻng ∫khỏm phỏ ra nhi∑u ki∏n th˘c hẽn Trong [109], khỏi niêm ˜ềc trớch xuòt và tÍng quỏt thành mẻt ∞c tÊlu™n l˛ –còp ẻ cao hẽn, cỏc tiờn ∑ lu™n l˛ ˜ềc trớch xuòt ra băng cỏc suy diπn h˙u hĐn trờn giàn khỏi niêm [110].

Tuy nhiờn, ∫mụ tÊ hành vi cıa mó ẻc, lu™n l˛ thèi gian là mẻt láa chÂn tật hẽn bi vỡ nú cú th∫ bi∫u diπn mẻt chuẩi cỏc lênh thác thi nh˜ ˜ềc minh hÂa trong vớ dˆ trờn Hẽn n˙a,khỏi quỏt húa cỏc cụng th˘c lu™n l˛ thèi gian ũi h‰i mẻt cẽch∏ ∫suy diπn tr¯u t˜ềng, ˜a ra ki∏n th˘c mểi ( ˜ềc trỡnh bày bi cỏc cụng th˘c) t¯ki∏n th˘c hiên cú ậi phú vểi thỏch th˘c này là mẻt úng gúp cıa lu™n ỏn.

BÊng 5.2: Mẻt sậ nhúm mó ẻc phÍ bi∏n.

STT Mụ tÊ Mó ẻc

1 Íi ‡a chứAPI Aztec, Cabanas, Highway.

2 S˚ dˆng ng≠t (SEH) Anon, Assault, Alcaul, Agent, Adson,

3 Truy c™p vào còu trỳc PEB ∫ ki∫m tra debug

Abul, Agent, Cycler, Migotrup, Gaobot, Zlob.

4 ân entry point Amon, Cjdisease, Elfinfect, Dissolution, Egypt32.

5 Self-Encryption Adson, Aldebaran, Belial, Cefet, Sasser, Yoddos.

5.1.4 ∞c tÊ và phõn loĐi mó ẻc

Trong cụng nghiêp, kˇ thu™t phÍ bi∏n hiên nay ∫ x˚l˛ phản m∑m ẻc hĐi dáa trờn ch˙ k˛, t˘c là ∞c tÊ nh˙ng oĐn mó nguÁn cıa mó ẻc ó bi∏t nh˜ ch˙k˛ và dựng ch˙k˛ này ∫ so trựng vểi cỏc t™p tin cản ki∫m tra Do l˜ềng mó ẻc t´ng nhanh, cỏc ch˙k˛ cản ˜ềc phõn loĐi thành cỏc nhúm ∫x˚l˛ ti∏p BÊng 5.2 minh hÂa mẻt sậ nhúm virus thụng th˜èng Tuy nhiờn, ậi vểi mẻt sậ mó ẻc tiờn ti∏n, phõn tớch dáa trờn ch˙ k˛ ụi khi dπ b‡ ỏnh l¯a băng cỏc kˇ thu™t làm rậi mó nh˜ ó trỡnh bày trong Ch˜ẽng 4 ∫giÊi quy∏t vòn ∑ này, cỏc ph˜ẽng phỏp hỡnh th˘c ˜ềc ∑ xuòt vểi viêc s˚ dˆng cỏc cụng th˘c lu™n l˛, ∞c biêt là lu™n l˛thèi gian ∫ mụ tÊ hành vi cıa mó ẻc [16–18] Vểi cỏc ph˜ẽng phỏp này, viêc phõn loĐi mó ẻc tr nờn khú kh´n hẽn, bi vỡ (i) thu™t toỏn phõn loĐi phÊi xem xột mậi quan hê lu™n l˛cıa cỏc cụng th˘c mụ tÊ hành vi mó ẻc; và (ii) mẻt loĐi mó ẻc phÊi ˜ềc bi∫u diπn bi mẻt cụng th˘c thớch hềp ∫ti∏p tˆc x˚ l˛.

Cỏc ‡nh nghổa ban ảu

Phõn tớch khỏi niêm hỡnh th˘c

‡nh nghổa 22 (Ng˙cÊnh hỡnh th˘c) Mẻt ng˙ cÊnh hỡnh th˘c (formal context) là mẻt bẻ ba K = (G, M, I) vểi Glà t™p cỏc ậi t˜ềng, M là t™p cỏc thuẻc tớnh vàI là t™p cỏc quan hê nh‡ phõn gi˙a Gvà M, I ✓G⇥M Mẻt ậi t˜ềngg2Gcú mẻt thuẻc tớnh m2M ˜ềc k˛ hiêu là

B£ng 5.3: Ng˙c£nh hình th˘c ˜Òc t§o ra t¯các o§n mã trong B£ng 5.1. mov ebx push call moduleA ecx xor a sub esp {[}{]} dec CopyFileA jmp 0 4

B£ng 5.3 bi∫u diπn ng˙c£nh hình th˘c ˜Òc t§o ra t¯các o§n mã trong B£ng 5.1 MÈi o§n mó ˜ềc xem nh˜mẻt ậi t˜ềng và cỏc lênh assembly ˜ềc dựng trong cỏc oĐn mó là nh˙ng thuẻc tớnh cıa ng˙cÊnh này.

‡nh nghổa 23 (Phộp dđn xuòt) Cho mẻt ng˙ cÊnh (G, M, I), phộp dđn xuòt (derivation operator) là mẻt phộp toỏn tĐo ra mẻt t™p cỏc thuẻc tớnh cú trong tòt cÊ cỏc ậi t˜ềng cıa t™p ậi t˜ềng A✓Gvà t™p ậi t˜ềng cú tòt cÊ cỏc thuẻc tớnh cıa t™p thuẻc tớnh B ✓M, vểi bi∫u diπn nh˜sau.

‡nh nghổa 24 (Khỏi niêm hỡnh th˘c) Cho mẻt ng˙cÊnh (G, M, I),(A, B) là mẻt khỏi niêm hỡnh th˘c (formal concept) khi và chứ khi A ✓ G, B ✓ M, A = B 0 và B = A 0 A ˜ềc gÂi là extent cıa khỏi niêm hỡnh th˘c (A, B) vàB ˜ềc gÂi là intent cıa khỏi niêm hỡnh th˘c (A, B).

‡nh nghổa 25 (Quan hêkhỏi niêm) Cho mẻt ng˙cÊnh (G, M, I),(A 1 , B 1 )(A 2 , B 2 ) khi và chứ khi A 1 ✓A 2 ho∞cB 2 ✓B 1 (A 1 , B 1 ) ˜ềc gÂi là khỏi niêm con (subconcept) cıa khỏi niêm hỡnh th˘c (A 2 , B 2 ) hay (A 2 , B 2 ) ˜ềc gÂi là khỏi niêm cha (superconcept) cıa ng˙ cÊnh hỡnh th˘c(A 1 , B 1 ).

‡nh nghổa 26 (Giàn khỏi niêm) Cho mẻt ng˙cÊnh (G, M, I), t™p tòt cÊ cỏc khỏi niêm hỡnh th˘c ˜ềc s≠p x∏p bi quan hêkhỏi niêm ˜ềc gÂi là giàn khỏi niêm(concept lattice).

Hỡnh 5.2 mụ tÊ giàn khỏi niêm ˜ềc tĐo ra t¯ng˙cÊnh hỡnh th˘c ˜ềc mụ tÊtrong BÊng 5.3 vểi ph˜ẽng phỏp FCA.

{mov, push, call, moduleA, a, CopyFileA, 0}

{ebx, push, call, moduleA, ecx, xor, a, dec, CopyFileA}

{mov, ebx, push, call, moduleA, a, CopyFileA, 0}

{ebx, push, call, moduleA, xor, a, CopyFileA}

{mov, push, call, moduleA, a, sub, esp, [], CopyFileA, jmp, 0, 4}

{mov,ebx,push,call,moduleA,ecx,xor,a,sub,esp,[],dec,CopyFileA,jmp,0,4}

{ebx, push, call, moduleA, a, CopyFileA}

Hỡnh 5.2: Giàn khỏi niêm mó ẻc ˜ềc tĐo ra bi ph˜ẽng phỏp FCA.

Tuy nhiờn, giàn này cÙng minh hoĐnh˙ng hĐn ch∏ cıa ph˜ẽng phỏp FCA khi ỏp dˆng cho bài toỏn phõn tớch mó ẻc Nh˜th∫hiên trong Hỡnh 5.2, ba ch˜ẽng trỡnh mđuC,E và F ˜ềc nhúm lĐi thành mẻt khỏi niêmC 8 vỡ chỳng cú cỏc thuẻc tớnh giậng nhau i∑u này khụng hềp l˛ vỡ C khụng phÊi là mó ẻc Hẽn n˙a, intent bi∫u diπn mẩi khỏi niêm cÙng khụng ıchớnh xỏc

∫xỏc ‡nh t™p mó ẻc Vớ dˆ, trong khỏi niêm C 12 , intent{ebx, push, call, M oduleA} là quỏ tÍng quỏt vỡ mẻt ch˜ẽng trỡnh bỡnh th˜èng cÙng cú th∫ s˚ dˆng cỏc lênh này nh˜ ˜ềc minh hÂa trong cỏc oĐn ch˜ẽng trỡnh C vàD Trong phản ti∏p theo, chỳng tụi giểi thiêu V-LCA vểi khÊ n´ng xõy dáng giàn mó ẻc chớnh xỏc hẽn.

L˜u ˛răng, trờn mẻt giàn khỏi niêm ˜ềc sinh ra bi FCA, s≥ cú hai khỏi niêm ∞c biêt ˜ềc gÂi là supremum S vàinfimum I Vểi mÂi khỏi niêm C bòt k˝trờn giàn, ta luụn cúC✓S vàI ✓C – hỡnh trờn, supremum và infimum t˜ẽng˘ng vểi hai khỏi niêm cú k˛ hiêu là>và?.

Phõn tớch khỏi niêm lu™n l˛ mó ẻc

∫ bi∫u diπn cỏc intent ph˘c tĐp cıa khỏi niêm, ph˜ẽng phỏp phõn tớch khỏi niêm lu™n l˛

(Logical Concept Analysis - LCA) [101] ˜ềc ∑ xuòt nh˜ là mẻt mrẻng cıa FCA vểi viêc k∏t hềp cỏc cụng th˘c lu™n l˛ ∫ tÍng quỏt hoỏ khỏi niêm Kˇthu™t này ˜ềc trỡnh bày nh˜ sau.

‡nh nghổa 27 (Ng˙cÊnh hỡnh th˘c lu™n l˛) Mẻt ng˙ cÊnh hỡnh th˘c lu™n l˛ là mẻt bẻba (O,L, i) vÓi:

• O là mẻt t™p h˙u hĐn ậi t˜ềng,

• hL;✏ilà mẻt giàn cụng th˘c lu™n l˛, vểi supremum là_˙ và infimum là^˙;L là mẻt lu™n l˛vểi quan hêdđn xuòt là ✏, vểi cỏc toỏn t˚ hẻi và giao t˜ẽng˘ng là _ và^.

• ilà mẻt phộp ỏnh xĐ mẩi ậi t˜ềng trong O vểi mẻt cụng th˘c trong L.

Intent trong LCA là mẻt cụng th˘c lu™n l˛L, õy chớnh là i∫m khỏc biêt chớnh gi˙a LCA và FCA Trờn n∑n tÊng này, chỳng tụi ∑ xuòt ph˜ẽng phỏpphõn tớch khỏi niêm lu™n l˛mó ẻc (Viral Logical Concept Analysis - V-LCA) ∫ xõy dáng giàn lu™n l˛ mó ẻc t¯t™p cỏc ch˜ẽng trình nguy h§i fi t˜ng chính cıa V-LCA là s˚ dˆng lu™n l˛ thÌi gian ∫ mô t£ Ëi t˜Òng.

V-LCA có các ∞c tính nh˜ sau.

• V-LCA s˚dˆng lu™n l˛thèi gian ∫ bi∫u diπn intent cıa cỏc khỏi niêm.

• V-LCA s˚ dˆng cỏc phộp tr¯u t˜ềng hoỏ mó ẻc dáa trờn cỏc cÊi ti∏n cıa lu™n l˛thèi gian ˜ềc ∑xuòt bi cẻng Áng nghiờn c˘u mó ẻc (nh˜ trỡnh bày trong Ch˜ẽng 4) V∑ cẽ bÊn, tr¯u t˜ềng hoỏ là quỏ trỡnh tĐo ra mẻt cụng th˘c ẽn nhòt Đi diên cho mẻt lểp cỏc cụng th˘c cú ng˙ nghổa t˜ẽng tá nhau (vớ dˆ nh˜ ta bi∫u diπn mẻt t™p cỏc cụng th˘c toỏn hÂc

{2 + 3; 4 + 7; 8 + 9 .} băng mẻt cụng th˘c tr¯u t˜ềng↵+ vểi ↵ bi∫u diπn mẻt sậchặn và bi∫u diπn mẻt sậ lƠ) Tr¯u t˜ềng hoỏ mó ẻc là phộp thay th∏mẻt t™p cỏc cụng th˘c lu™n l˛ bi∫u diπn cỏc bi∏n th∫ khỏc nhau cıa cựng mẻt loĐi mó ẻc băng mẻt cụng th˘c tÍng quỏt hẽn nh˜ng vđn bi∫u diπn ỳng hành vi nguy hĐi cıa mó ẻc này.

‡nh nghổa 28 (Ng˙cÊnh hỡnh th˘c lu™n l˛mó ẻc) Mẻt ng˙cÊnh hỡnh th˘c lu™n l˛mó ẻc là mẻt bẻ ba (O,L, i) vểi:

BÊng 5.4: Ng˙cÊnh hỡnh th˘c lu™n l˛mó ẻc cıa cỏc oĐn mó trong BÊng 5.1. Ëi t˜Òng i(O)

A EF (push(a) ^ AX(xor(ebx, ebx) ^ AX (push(ebx) ^ AX (call(GetM oduleF ileN ameA)

^ AF (push(a) ^ AXcall(CopyF ileA))))))

B EF (push(a) ^ AX(xor(ecx, ecx) ^ AF (push(ecx) ^ AX(call(GetM oduleF ileN ameA)

^AF (push(a) ^ AXcall(CopyF ileA))))))

C EF (mov(ecx, 0) ^ AX (push(ecx) ^ AX(push(a)^

AXcall(GetM oduleF ileN ameA))))

D EF (call(GetM oduleF ileN ameA) ^ AX(xor(ebx, ebx)^

E EF (push(a) ^ AX(mov(ebx, 0) ^ AX (push(ebx) ^ AX (call(GetM oduleF ileN ameA)

^AF (push(a) ^ AXcall(CopyF ileA))))))

F EF (push(a) ^ AX(sub(esp, 4) ^ AX(mov([esp], 0) ^ AX(jmp(GetM oduleF ileN ameA) ^

AF (push(a) ^ AXcall(CopyF ileA))))))

• O là mẻt t™p h˙u hĐn cỏc ậi t˜ềng bi∫u diπn t™p cỏc bi∏n th∫ cıa mó ẻc,

• hL;✏i là giàn công th˘c lu™n l˛ thÌi gian, vÓi supremum là _˙ và infimum là ^˙.

• ilà mẻt phộp ỏnh xĐ mẩi ậi t˜ềng trong O vểi mẻt cụng th˘c trong L.

BÊng 5.4 trỡnh bàyng˙ cÊnh hỡnh th˘c lu™n l˛ mó ẻc, vểi viêc s˚dˆng cỏc cụng th˘c lu™n l˛thèi gian ∫ bi∫u diπn thuẻc tớnh cıa cỏc ậi t˜ềng.

‡nh nghổa 29 (Phộp dđn xuòt lu™n l˛) Cho(O,L, i) là mẻt ng˙ cÊnh hỡnh th˘c lu™n l˛ mó ẻc, phộp dđn xuòt lu™n l˛ ˜ềc ‡nh nghổa nh˜sau.

‡nh nghổa 30 (Khỏi niêm lu™n l˛) Trong mẻt ng˙ cÊnh hỡnh th˘c lu™n l˛ mó ẻc (O,L, i),mẻt khỏi niêm lu™n l˛ mó ẻc là mẻt c∞p c= (O, f) vểi O ✓O và f 2L, sao cho O 0 =f và f 0 =O.

T™p tòt cÊ cỏc khỏi niêm cú th∫ ˜ềc xõy dáng trờn mẻt ng˙ cÊnh(O,L, i) ˜ềc k˛ hiêu C(O,L, i) và ˜ềc s≠pth˘ tá bỏn phản bi c nh˜ ‡nh nghổa sau.

‡nh nghổa 31 (Th˘ tá bỏn phản  c ) Cho (O 1 , f 1 ) và (O 2 , f 2 ) thuẻcC(O,L, i), (O 1 , f 1 )  c (O 2 , f 2 ),(O 1 ✓O 2 )_(f 2 ✏f 1 )

T¯quan hê th˘ tá bỏn phản ˜ềc nờu trong ‡nh nghổa 31, ta cú th∫ xõy dáng ˜ềc giàn khỏi niêm lu™n l˛ mó ẻc (gÂi t≠t là giàn khỏi niêm mó ẻc) t˜ẽng tánh˜FCA Hỡnh 5.3 mụ tÊ giàn khỏi niêm mó ẻc ˜ềc xõy dáng t¯ ng˙ cÊnh lu™n l˛ trong BÊng 5.4 Tuy nhiờn, ∫ làm ˜ềc i∑u này, ta cản mẻt ph˜ẽng phỏp ∫xõy dángkhỏi niêm tÍng quỏt C ⇤ = (O ⇤ , f ⇤ )t¯t™p khỏi niêm{C1= (O1, f1), , Cn= (On, fn)}sao cho Ci✓C ⇤ (8i2[1, n]) Vớ dˆ, trờn giàn trong Hỡnh 5.3, hai khỏi niêmC 1 và C 2 ˜ềc tÍng quỏt hoỏ thành khỏi niêmC 5 i∑u này ˜ềc thác hiên băng cỏch dựng mẻt toỏn t˚ ∞c biêt r, ˜ềc gÂi làtoỏn t˚ m rẻng (widening operator), sao cho f ⇤ =f 1 rf 2 r rf n vàf ⇤ ✏f i (8i2[1, n]) Trong lu™n án này, chúng tôi s˚ dˆngphép tr¯u t˜ềng hoỏ mó ẻc (viral abstractions) ∫hiên thác toỏn t˚m rẻng BÊng 5.5 trỡnh bày cỏc phộp tr¯u t˜ềng hoỏ mó ẻc Chỳng tụi ∞t tờn cỏc phộp tr¯u t˜ềng hoỏ mó ẻc này dáa trờn cỏc m rẻng t˜ẽng˘ng cıa lu™n l˛thèi gian.

Ngoài ra, cản l˜u˛răng supremum và infimum cıa giàn lu™n l˛này cÙng là> và?, vểi> ˜ềc xõy dáng băng cỏch ỏp dˆng toỏn t˚ m rẻng vểi tòt cÊ cỏc cụng th˘c lu™n l˛ f i trờn giàn và ?là k∏t quÊ cıa viêc ỏp dˆng toỏn t˚ giao cıa tòt cÊcỏc cụng th˘c lu™n l˛f i Ta dπ thòy r¨ng >✏f i vàf i ✏?,8i.

TĐi giàn lu™n l˛ ˜ềc mụ tÊtrờn Hỡnh 5.3, mẩi khỏi niêm mó ẻc ˜ềc biπu diπn băng mẻt cụng th˘c lu™n l˛thèi gian mụ tÊ chớnh xỏc hành vi nguy hĐi t˜ẽng˘ng cıa mó ẻc Nh˜ v™y, trờn giàn lu™n l˛này, ta cú th∫ tỏch biêt hoàn toàn t™p mó ẻc và t™p ch˜ẽng trỡnh vụ hĐi 1 Trong BÊng 5.6, chỳng tụi mụ tÊcỏc cụng th˘c lu™n l˛ biπu diπn cỏc khỏi niêm trờn Hỡnh 5.3 và ˛nghổa cıa chỳng.

Ví dˆ 20 Cho hai công th˘c EF(push(a)^AX(xor(ebx, ebx)^AX(push(ebx)^

AX(call(GetM oduleF ileN ameA)^AF(push(a)^AXcall(CopyF ileA)))))) và EF(push(a)^

1 ∫ phản trỡnh bày ˜ềc t˜èng minh, Hỡnh 5.3 chứ th∫ hiên cỏc khỏi niêm cıa cỏc mđu mó ẻc và khụng th∫ hiên cỏc khỏi niêm cıa ch˜ẽng trỡnh vụ hĐi.

Hỡnh 5.3: Giàn khỏi niêm mó ẻc ˜ềc tĐo ra bi V-LCA.

BÊng 5.5: Kˇthu™t tr¯u t˜ềng hoỏ mó ẻc.

Khi hai cụng th˘c lu™n l˛ thèi gian chứ khỏc nhau  thanh ghi ˜ềc s˚ dˆng, chỳng cú th∫ ˜ềc tr¯u t˜ềng hoỏ thành mẻt cụng th˘c mểi vểi thanh ghi ˜ềc bi∫u diπn băng mẻt bi∏n sậ

2 SCTPL [18] Tr¯u t˜ềng hoỏ hành vi ây mẻt giỏ tr‡ vào ứnh ng´n x∏p Vớ dˆ 21

3 SCTPL \ X [16] Hành vi thay Íi nẻi dung cıa ng´n x∏p ˜ềc tr¯u t˜ềng hoỏ băng mẻt bi∫u th˘c mụ tÊ trác ti∏p viêc thay Íi nẻi dung ng´n x∏p Vớ dˆ 22

AX(xor(ecx, ecx)^AX(push(ecx)^AX(call(GetM oduleF ileN ameA)^AF(push(a)^ AXcall(CopyF ileA)))))), hai cụng th˘c này gản giậng nhau ngoĐi tr¯ viêc s˚ dˆng hai thanh ghi khỏc nhau là ebx vàecx Viêc tr¯u t˜ềng hoỏ hành vi băng CTPL s≥ sinh ra cụng th˘c tÍng quát mÓi là9rEF(push(a)^AX(xor(r, r)^AX(push(r)^AX(call(GetM oduleF ileN ameA)^ AF(push(a)^AXcall(CopyF ileA)))))) vểi r Đi diên cho thanh ghi bòt k˝.

Ví dˆ 21 Cho hai công th˘c EF(push(a)^AX(mov(ebx,0)^AX(push(ebx)^AX(call(GetM oduleF ileN ameA)^AF(push(a)^AXcall(CopyF ileA)))))) và EF(push(a)^AX(sub(esp,4)^AX(mov([esp],0)^AX(jmp(GetM oduleF ileN ameA)^AF(push(a)^AXcall(CopyF ileA)))))), hai cụng th˘c này ∑u thác hiên mẻt hành vi là ây 0 vào ứnh ng´n x∏p, sau ó gÂi hàm GetM oduleHandle, giá tr‡ tr£ v∑ l˜u t§i as≥ ˜Òc dùng ∫ gÂi ti∏p

BÊng 5.6: Tr¯u t˜ềng hoỏ mó ẻc cho cỏc khỏi niêm trong BÊng 5.3

Khỏi niêm Cụng th˘c lu™n l˛ Tr¯u t˜ềng hoỏ mó ẻc

{A} EF(push(a) ^ AX(xor(ebx, ebx) ^ AX(push(ebx)^

AX(call(GetM oduleF ileN ameA) ^ AF(push(a) ^ AXcall(CopyF ileA))))))

{B} EF(push(a) ^ AX(xor(ecx, ecx) ^ AF (push(ecx) ^ AX(call(GetM oduleF ileN ameA) ^ AF(push(a) ^ AXcall(CopyF ileA))))))

{E} EF(push(a) ^ AX(mov(ebx, 0) ^ AX(push(ebx) ^ AX(call(GetM oduleF ileN ameA) ^ AF(push(a) ^ AXcall(CopyF ileA))))))

{F} EF(push(a) ^ AX(sub(esp, 4) ^ AX (mov([esp], 0) ^ AX(jmp(GetM oduleF ileN ameA) ^ AF (push(a) ^ AXcall(CopyF ileA)))))))

{A,B} 9rEF (push(a) ^ AX(xor(r, r) ^ AF (push(r)^

AX(call(GetM oduleF ileN ameA) ^ AF(push(a) ^ AXcall(CopyF ileA))))))

{A,B,E} 9rEF (push(a) ^ AX((r, 0) ^ AF(push(r)^

AX(call(GetM oduleF ileN ameA) ^ AF(push(a) ^ AXcall(CopyF ileA))))))

{E,F} 9 mEF (push(a) ^ AX((m, 0) ^ AX((invoke(GetM oduleF ileN ameA)

^m ⇤ ) ^ AF (push(a) ^ AXcall(CopyF ileA)))))

{A,B,E,F} 9 mEF (push(a) ^ AX((invoke(GetM oduleF ileN ameA) ^ { 0 } m ⇤ )

^ AF(push(a) ^ AXcall(CopyF ileA))))

SCTPL \ X hàm CopyF ileA Chúng có th∫ ˜Òc tr¯u t˜Òng hoá b¨ng SCTPL ∫ t§o ra công th˘c mÓi là 9mEF(push(a)^AX((m,0)^AX((invoke(GetM oduleF ileN ameA)

^m ⇤ )^AF(push(a)^AXcall(CopyF ileA))))), vểi kớ hiêu ⇤ cú nghổa là m ang năm tĐi ứnh cıa ng´n x∏p.

Ví dˆ 22 Cho hai công th˘c 9rEF(push(a)^AX(xor(r, r)^AX(push(r)^ AX(call(GetM oduleF ileN ameA)^AF(push(a)^AXcall(CopyF ileA))))))và9mEF(push(a)^ AX((m,0)^AX((invoke(GetM oduleF ileN ameA)^m ⇤ )^AF(push(a)^AXcall(CopyF ileA))))), hai cụng th˘c này thác chòt ∑u ∞c tÊ răng hàm GetM oduleHandle ˜ềc gÂi khi ứnh cıa ng´n x∏p là 0 Chúng có th∫ ˜Òc tr¯u t˜Òng hoá b¨ng SCTPL\X ∫ t§o ra công th˘c mÓi là EF(push(a)^AX((call(GetM oduleF ileN ame)^{0}m ⇤ )^AF(push(a)^AXcall(CopyF ileA)))), vểi kớ hiêu {0}m ⇤ cú nghổa là m ang năm tĐi ứnh cıa ng´n x∏p và giỏ tr‡ cıa m là0.

BÊng 5.6 diπn giÊi ng˙ nghổa cỏc cụng th˘c lu™n l˛cıa khỏi niêm mó ẻc và cỏc kˇ thu™t tr¯u t˜ềng hoỏ mó ẻc ˜ềc dựng ∫ tĐo ra chỳng.

Hê thậng hoỏ mó ẻc dáa vào V-LCA

Viral Logical Concept Analysis On-the-fly Conceptual

Frequency Monitoring Concept Hierarchy Virus Database

Hỡnh 5.4: MarCHGen - khung th˘c hê thậng hoỏ mó ẻc.

Hỡnh 5.4 bi∫u diπn khung th˘c MarCHGen ˜ềc chỳng tụi ∑xuòt vểi cỏc b˜ểc chớnh sau.

• Viral Logical Concept Analysis (V-LCA): ∫ tĐo ragiàn khỏi niêm lu™n l˛ th∫hiên quan hê gi˙a cỏc khỏi niêm lu™n l˛phỏt hiên ˜ềc t¯t™p mó ẻc ban ảu.

• On-the-fly Conceptual Clustering (OCC): giàn khỏi niêm lu™n l˛s≥ ˜ềc gÂm cˆm khỏi niêm

∫ tĐo thành cõy phõn còp mó ẻc th∫ hiên cỏc lểp mó ẻc và quan hê th˘ b™c gi˙a chỳng.

• Frequency Monitoring: b˜ểc này ˜ềc dựng ∫ quÊn l˛và c™p nh™t cõy phõn còp mó ẻc khi cú mđu mó ẻc mểi ˜ềc thờm vào t™p mó ẻc và ng˜ềc lĐi ∫ t´ng tớnh hiêu quÊ, chỳng tụi chứgiỏm sỏt và c™p nh™t cỏckhỏi niêm phÍ bi∏n trờn cõy phõn còp mó ẻc Chỳng tụi s˚ dˆng kˇthu™t quÊn l˛ t™p c™n phÍbi∏n (Pre-large Dataset Management) ∫ thác hiên viêc này mẻt cỏch hiêu quÊ.

Gom cˆm khỏi niêm liờn tˆc

Trong mˆc tr˜ểc, chỳng tụi trỡnh bày viêc s˚ dˆng V-LCA ∫tĐo ra giàn mó ẻc, trong ú cỏc khỏi niêm hỡnh th˘c ˜ềc tÍch˘c theo mẻt còu trỳc phõn còp Tuy nhiờn, vỡ sậl˜ềng khỏi niêm lu™n l˛ khỏ lển khi ỏp dˆng trờn thác t∏, chỳng tụi ∑ xuòt s˚dˆng ph˜ẽng phỏp gom cˆm khỏi niêm ∫ gom cˆm nh˙ng khỏi niêm hỡnh th˘c t˜ẽng tá nhau.

Nhăm tĐo ra cõy phõn còp khỏi niêm, hảu h∏t cỏc ph˜ẽng phỏp gom cˆm khỏi niêm ∑u dáa trên thu™t toánHierarchical Agglomerative Clustering (HAC) [78] ∫ t™n dˆng các˜u i∫m cıa cõy phõn còp cˆm d˙ liêu (dendogram) Thu™t toỏn gom cˆm khỏi niêm theo h˜ểng này bao gÁm COBWEB [118] và FOCA [119] Tuy nhiờn, cỏc thu™t toỏn gom cˆm dáa trờn HAC luụn g∞p tr ngĐi bi vòn ∑hiêu suòt vểi ẻph˘c tĐp tớnh toỏn N 2 logN trong ú N là sậ ậi t˜ềng ˜Òc gom l§i.

Hẽn n˙a, so vểi cỏc loĐi d˙ liêu khỏc ˜ềc s˚dˆng cho cˆm khỏi niêm, cỏc khỏi niêm hỡnh th˘c t§o ra bi V-LCA có các ∞c i∫m sau.

• Mẩi khỏi niêm ˜ềc bi∫u diπn bi mẻt cụng th˘c lu™n l˛.

• Cú quan hêth˘tábỏn phản gi˙a cỏc khỏi niêm.

Trong lổnh vác này, cú l≥ nghiờn c˘u liờn quan nhòt ∏n nghiờn c˘u cıa chỳng tụi là thu™t toỏn FFCA [120] Cỏch ti∏p c™n này dáa trờn FCA, do ú nú cú th∫ thác hiên ˜ềc trờn bòt k˝loĐi d˙ liêu cú còu trỳc nào Ngoài ra, cỏch ti∏p c™n này tĐo ra cõy phõn còp khỏi niêm dáa trờn bi∫u Á, ch˘ khụng phÊi là cỏc còu trỳc dĐng cõy nh˜ cỏc h˜ểng ti∏p c™n khỏc FFCA yờu cảu mẻt giàn ảy ı ˜ềc tĐo ra tr˜ểc tiờn và viêc gom cˆm khỏi niêm s≥ ˜ềc ti∏n hành ∫ tĐo ra cõy phõn còp khỏi niêm hoàn chứnh Do ú, cỏch ti∏p c™n này g∞p phÊi hĐn ch∏ bi ẻ ph˘c tĐp/chi phớ cao cıa viêc tĐo ra mẻt giàn hoàn chứnh Dáa trờn cụng bậ hiên tĐi cıa FFCA, chỳng tụi ∑xuòt mẻt thu™t toỏn gom cˆm khỏi niêm mểi gÂi làgom cˆm khỏi niêm liờn tˆc (On-the-fly Conceptual Clustering - OCC) vÓi các c£i ti∏n sau: (i) chúng tôi s˚dˆng chi∏n l˜Òc on-the-fly ∫ trỏnh viêc tớnh toỏn Áng thèi tòt cÊ cỏc khỏi niêm hỡnh th˘c trờn giàn trong quỏ trỡnh phõn cˆm; và (ii) chỳng tụi ∑ xuòtphộp nậi ậi t˜ềng dáa trờn lu™n l˛ ∫gom cỏc ậi t˜ềng vào mẻt cˆm mểi.

fi t˜ng cıa OCC là chỳng ta khụng ềi cho ∏n khi mẻt giàn hoàn chứnh ˜ềc tĐo ra rÁi mểi thác hiên viêc tĐo cˆm khỏi niêm Thay vào ú, khi mẻt khỏi niêm mểi ˜ềc phỏt hiên, chỳng ta ngay l™p t˘c gom khỏi niêm này vào cỏc cˆm hiên cú ho∞c tĐo ra mẻt cˆm mểi cho khỏi niêm này Thu™t toỏn ˜ềc mụ tÊ chi ti∏t nh˜ sau.

Phép toán./ ˜Òc s˚dˆng trong thu™t toán này vÓi mˆc ích nËi các Ëi t˜Òng thành nh˙ng cˆm khỏi niêm ∫ làm ˜ềc i∑u này, chỳng tụi giểi thiêu phộp nậi ậi t˜ềng (object-joining

Algorithm 4 Thu™t toỏn gom cˆm khỏi niêm liờn tˆc (OCC).

Input: Viral Latice, Khỏi niêm o Output: Concept Hierarchy for Khỏi niêmomểi ˜ềc phỏt hiên bi V-LCAdo Thờmo nh˜là mẻt khỏi niêm cıa giàn hiên tĐi; for Vểi mẩi cˆmc trờn cõy phõn còp hiên tĐido if o./c=o 0 6=; then Thêmo vàoc; end if okhụng th∫ ˜ềc thờm vào bòt k˝cˆm nàothen TĐo ra mẻt cˆm mểi cho o; end end end operator) nh˜sau.

‡nh nghổa 32 (Phộp nậi ậi t˜ềng) Phộp nậi ậi t˜ềng /trờn hai khỏi niêm C1 = (O1, f1) và C 2 = (O 2 , f 2 ) ˜ềc ‡nh nghổa là C 1 /C 2 ={O ⇤ , f ⇤ =f 1 rf 2 } vểi r là phộp m rẻnghai công th˘c f1 vàf2; O ⇤ ={x|x2(O1[O2)} và f ⇤ ✏(O ⇤ ) 0

Trong ‡nh nghổa 32, rlà phộp mrẻng hai cụng th˘c↵ 1 và↵ 2 Phộp m rẻng ẽn giÊn nhòt là phộp least common subsumer Vth˜èng ˜ềc dựng khi x˚ l˛cỏc khỏi niêm trờn giàn khỏi niêm Tuy nhiờn, vểi viêc dựng lu™n l˛ thèi gian ∫ bi∫u diπn hành vi mó ẻc, phộp m rẻng phÊi bao gÁm viêc tr¯u t˜ềng hoỏ mó ẻc Nh˜ v™y, mẻt khỏi niêm ˜ềc tĐo thành t¯

AV B cú th∫ ˜ềc mrẻng thành mẻt khỏi niêm tr¯u t˜ềngC n∏u tÁn tĐi mẻt phộp tr¯u t˜ềng hoỏ mó ẻc sao cho cú th∫ tr¯u t˜ềng hoỏ Avà B thành C.

Vớ dˆ 23 Khi thác hiên C 5 = C 1 / C 2 nh˜ mụ tÊ trong Hỡnh 5.3, tr˜ểc tiờn phộp least common subsume ˜Òc áp dˆng Vì công th˘c9rEF(push(a)^AX(xor(r, r)^AF(push(r)^

AX(call(GetM oduleF ileN ameA)^AF(push(a)^AXcall(CopyF ileA)))))) có th∫ ˜Òc tr¯u t˜Òng hoá t¯EF(push(a)^AX(xor(ebx, ebx)^AX(push(ebx)^AX(call(GetM oduleF ileN ameA)^AF(push(a)^AXcall(CopyF ileA)))))) và EF(push(a)^AX(xor(ecx, ecx)^AF(push(ecx)^

AX(call(GetM oduleF ileN ameA)^AF(push(a)^AXcall(CopyF ileA)))))), ta có k∏t qu£ cuËi cùng là f(C 5 ) =f(C 1 )rf(C 2 ) =9rEF(push(a)^AX(xor(r, r)^AF(push(r)^

AX(call(GetM oduleF ileN ameA)^AF(push(a)^AXcall(CopyF ileA)))))).

Hỡnh 5.5 bi∫u diπn cõy khỏi niêm hoàn chứnh ˜ềc tĐo ra băng cỏch gom cỏc khỏi niêm trờn giàn thành nh˙ng cˆm Sau khi ˜ềc g≠n nhón ảy ı, ta cú ˜ềc cõy phõn còp mó ẻc nh˜ trình bày trong Hình 5.1.

Hỡnh 5.5: Cõy phõn còp tĐo bi OCC.

Qu£n l˛ t™p c™n phÍ bi∏n

Khỏi niêm phÍ bi∏n

Trong Mˆc 5.4, chỳng tụi ó trỡnh bày mẻt ph˜ẽng phỏp ∫ gom cˆm khỏi niêm trờn mẻt giàn khỏi niêm Tuy nhiờn, trờn thác t∏, sậl˜ềng cỏc khỏi niêm hỡnh th˘c trong mẻt giàn khỏi niêm là ròt lển, làm cho chi phớ cıa viêc gom cˆm khỏi niêm vđn cũn t˜ẽng ậi cao, ngay cÊkhi ỏp dˆng h˜ểng ti∏p c™n on-the-fly nh˜trỡnh bày trờn Mẻt trong nh˙ng h˜ểng ti∏p c™n th˜èng ˜ềc ỏp dˆng trong thác t∏ là xem xột cỏct™p phÍ bi∏n (frequent itemsets) Thụng th˜èng, cỏc t™p phÍbi∏n cú th∫ ˜ềc xem ẽn giÊn nh˜là mẻt t™p cú sậ l˜ềng cỏc mˆc lển hẽn mẻt ng˜ễng nhòt ‡nh T¯ ú, chỳng tụi giểi thiêu khỏi niêm phÍbi∏n (frequent concepts) trờn mẻt giàn khỏi niêm Mẻt khỏi niêm phÍbi∏n là mẻt khỏi niêm cú t™p ậi t˜ềng là mẻt t™p phÍ bi∏n Nh˜ v™y, chỳng ta cú th∫ rỳt gÂn giàn khỏi niêm ban ảu thành mẻt giàn phÍ bi∏n (frequent lattice)

Vớ dˆ 24 GiÊ s˚ chỳng ta ‡nh nghổa khỏi niêm phÍ bi∏n là cỏc khỏi niêm cú nhi∑u hẽn mẻt ậi t˜ềng Nh˜ v™y, giàn khỏi niêm ban ảu trong Hỡnh 5.3 s≥ rỳt gÂn thành giàn phÍ bi∏n nh˜ mô t£ Hình 5.6.

Hỡnh 5.6: Giàn khỏi niêm phÍ bi∏n.

QuÊn l˛ c™p nh™t khỏi niêm phÍ bi∏n

Khi phõn loĐi mó ẻc, th˜èng g∞p phÊi tr˜èng hềp sậ l˜ềng mó ẻc thay Íi, bao gÁm hai tr˜Ìng hÒp nh˜ sau.

• Khi cú mẻt mđu mó ẻc mểi xuòt hiên, mđu mó ẻc này s≥ ˜ềc thờm vào ng˙ cÊnh.

• Khi mẻt mđu mó ẻc trnờn lẩi thèi và khụng cản phÊi giỏm sỏt Vớ dˆ nh˜khi mẻt hê i∑u hành khụng cũn ˜ềc hẩ trềbi nhà sÊn xuòt n˙a, cỏc mó ẻc ˜ềc thi∏t k∏cho hê i∑u hành này cÙng khụng cản phÊi giỏm sỏt và nờn xoỏ kh‰i ng˙ cÊnh.

Rừ ràng, thờm/bểt mẻt mó ẻc s≥làm cho toàn bẻ quỏ trỡnh xõy dáng giàn khỏi niêm mó ẻc và gom cˆm khỏi niêm mó ẻc phÊi ˜ềc thác hiên lĐi t¯ ảu, dđn ∏n chi phớ thác hiên ròt lển, ∞c biêt là khi viêc này diπn ra th˜èng xuyờn Tuy nhiờn, trong cỏch ti∏p c™n này, chỳng tụi chứgi˙ lĐi nh˙ng khỏi niêm phÍ bi∏n trờn giàn, vỡ v™y chỳng ta chứcản thác hiên lĐi toàn bẻ quỏ trỡnh n∏u viêc c™p nh™t mẻt mđu mó ẻc làm thay Íi mẻt khỏi niêm t¯ trĐng thỏi phÍ bi∏n thành trĐng thỏi khụng phÍ bi∏n và ng˜ềc lĐi M∞c dự v™y, viêc ki∫m tra lĐi tớnh phÍ bi∏n cıa tòt cÊ cỏc t™p phÍ bi∏n/khụng phÍbi∏n ậi vểi mẩi lản c™p nh™t thờm/bểt mó ẻc cÙng s≥phÊi trÊ mẻt chi phớ ròt cao ∫ giÊi quy∏t vòn ∑ này, chỳng tụi s˚ dˆng khỏi niêmt™p c™n phÍ bi∏n

(pre-large itemset) [121, 122], ˜ềc xỏc ‡nh bi mẻt ng˜ễng hẩtrề d˜ểiS L và mẻt ng˜ễng hẩ trÒ trênS U nh˜minh ho§ trong hình sau.

Hình 5.7: Xác ‡nh t™p phÍ bi∏n.

Nh˜ v™y, cỏc mđu mó ẻc cú th∫ ˜ềc thờm vào ho∞c loĐi b‰ kh‰i mẻt t™p itemset f mà khụng dđn ∏n sáthay Íi ẻphÍbi∏n cıa cỏc itemset (nghổa là khụng cản phÊi thác hiên lĐi toàn bẻ quỏ trỡnh t¯ng˙ cÊnh gậc), n∏u sậ l˜ềng cỏc mđu mó ẻc ˜ềc c™p nh™t khụng lển hẽn f =b(S U S L )⇥|D|c, vÓiS U là ng˜Ông hÈtrÒ trên, S L là ng˜Ông hÈ trÒ d˜Ói và |D|là sË l˜ềng cỏc giao d‡ch trong cẽsd˙ liêu ban ảu (trong tr˜èng hềp này chớnh là sậl˜ềng mó ẻc trong ng˙ cÊnh ban ảu).

Vớ dˆ 25 GiÊs˚ cú mẻt t™p 3000 mó ẻc, nghổa là |D 1 |= 3000 GiÊ s˚ răng S U = 20% và S L = 10% Khi ú, mẻt khỏi niêm ˜ềc xem là phÍ bi∏n khi khỏi niêm này bao gÁm ớt nhòt

20%⇥3000 = 600 mđu T˜ẽng tá, n∏u mẻt khỏi niêm bao gÁm ớt nhòt 10%⇥3000 = 300 mđu, khỏi niêm này ˜ềc xem là c™n phÍbi∏n Nh˜v™y, n∏u sậ l˜ềng mđu mó ẻc ˜ềc thờm/bểt t¯ mẻt t™p khụng lển hẽn f = ((0.2 0.1)⇥3000) = 300, thỡ khụng cản phÊi tĐo lĐi toàn bẻ giàn.

Thay vào ú, chứ cản giỏm sỏt cỏc khỏi niêm c™n phÍ bi∏n và phÍ bi∏n ∫xem n∏u cú thay Íi nào v∑m˘c ẻ phÍ bi∏n cıa nh˙ng khỏi niêm này hay khụng.

Thớ nghiêm

Hiêu suòt cıa kˇ thu™t gom cˆm dáa trờn FCA

Thu™t toỏn gom cˆm khỏi niêm ˜ềc ỏp dˆng cho thớ nghiêm này bao gÁm cỏc thu™t toỏn sau:

(i) thu™t toỏn gom cˆm khỏi niêm dáa trờn FFCA; (ii) thu™t toỏn gom cˆm khỏi niêm OCC; và (iii) thu™t toỏn OCC-phÍ bi∏n: chỳng tụi k∏t hềp OCC vểi quÊn l˛c™p nh™t khỏi niêm phÍ bi∏n.

Số lượng chương trình k-means HAC FFCA OCC

Giá tr ị Si lh ou et te

Hỡnh 5.9: Hiêu suòt cıa cỏc thu™t toỏn gom cˆm khỏi niêm.

Hỡnh 5.9(a) trỡnh bày hiêu suòt cıa cỏc thu™t toỏn gom cˆm khỏi niêm dáa trờn FCA Cỏc k∏t quÊ thác nghiêm cho thòy răng h˜ểng ti∏p c™n on-the-fly cıa OCC thác sá cÊi thiên thèi gian thác hiên gom cˆm Tuy nhiờn, OCC vđn b‡ Ênh h˜ng bi chi phớ cıa viêc tỏi gom cˆm khi bẻ d˙liêu mó ẻc ˜ềc c™p nh™t OCC-phÍ bi∏n giÊi quy∏t vòn ∑ này băng cỏch s˚ dˆng kˇthu™t quÊn l˛c™p nh™t khỏi niêm phÍ bi∏n, cho phộp chức™p nh™t giàn và xõy dáng lĐi cõy phõn còp khi cản thi∏t L˜u˛ răng cỏc cõy phõn còp tĐo ra bi OCC và OCC-phÍ bi∏n gản nh˜ giậng nhau n∏u chỳng ta chứ tớnh ∏n cỏc khỏi niêm phÍbi∏n Vỡ cỏc khỏi niêm khụng phÍ bi∏n khụng thác sáh˙u ớch nờn OCC-phÍ bi∏n ch˘ng minh răng nú là cỏch ti∏p c™n gom cˆm khỏi niêm tật nhòt trong thớ nghiêm này.

S˚ dˆng ẻ o AUP ∫ so sỏnh chòt l˜ềng gom cˆm

Average Uninterpolated Precision (AUP) [123] ˜ềc ‡nh nghổa là tÍng cıa giỏ tr‡chớnh xỏc tĐi mẩi i∫m (ho∞c ứnh) trong mẻt còu trỳc phõn còp khi xuòt hiên mẻt mđu phự hềp, chia cho tÍng sậmđu phự hềp AUP ngˆ ˛ sáphõn bật™p trung cıa cỏc mđu phự hềp trờn còu trỳc phõn còp khỏi niêm ẻ o AUP nh™n giỏ tr‡ t¯0 ∏n 1 Hỡnh 5.9(b) trỡnh bày k∏t quÊthớ nghiêm vểi ẻ o AUP Chỳng tụi so sỏnh FFCA, OCC-phÍbi∏n và thu™t toỏn gom cˆm khỏi niêm dáa trờn HAC, ˜ềc s˚dˆng bi nhi∑u ph˜ẽng phỏp gom cˆm khỏi niêm truy∑n thậng ∫ tĐo ra cõy phõn còp khỏi niêm T¯ Hỡnh 5.9(b), chỳng ta cú th∫ thòy răng cỏc ph˜ẽng phỏp dáa trờn FCA th˜èng Đt ˜ềc hiêu suòt tật hẽn HAC i∑u này ó cho thòy lềi th∏cıa viêc s˚dˆng lu™n l˛

∫bi∫u diπn thuẻc tớnh ậi t˜ềng Ngoài ra, hiêu suòt dáa trờn AUP cıa OCC-phÍbi∏n nhỡn chung là tật hẽn so vểi FCA, ch˘ng minh răng cỏc cụng th˘c lu™n l˛ ˜ềc tĐo ra cho cỏc cˆm khỏi niêm là cỏc cụng th˘c phự hềp ∫ bi∫u diπn còu trỳc phõn còp khỏi niêm.

ỏnh giỏ hiêu suòt theo chòt l˜ềng cˆm

Trong phản này, chỳng tụi ỏnh giỏ chòt l˜ềng cıa cỏc cˆm ˜ềc tĐo ra bi ph˜ẽng phỏp gom cˆm khỏi niêm cıa chỳng tụi Trong nghiờn c˘u này, chỳng tụi s˚ dˆng ẻ o Silhouette vỡ nú ˜ềc coi là mẻt trong nh˙ng ph˜ẽng phỏp hềp l˛nhòt ∫ ỏnh giỏ chòt l˜ềng cˆm [124] Giỏ tr‡Silhouette th∫ hiên ẻ t˜ẽng tá cıa mẻt mđu trờn cˆm cıa nú so vểi cỏc cˆm khỏc ẻ oSilhouette nh™n giỏ tr‡ t¯-1 ∏n 1, tuy nhiờn trong thớ nghiêm này, cỏc k∏t quÊ o ˜ềc ∑u lển hẽn 0 Chỳng tụi so sỏnh chòt l˜ềng cıa cỏc cˆm ˜ềc tĐo ra khi ỏp dˆng cỏc ph˜ẽng phỏp gom cˆm sau õy Ngoài cỏc ph˜ẽng phỏp ó ∑c™p trờn là HAC, FFCA và OCC-phÍ bi∏n, chỳng tụi cÙng so sỏnh chòt l˜ềng cˆm vểi ph˜ẽng phỏp gom cˆm nÍi ti∏ngk-means Hỡnh 5.9(c) bi∫u diπn k∏t quÊ thớ nghiêm, cho thòy răng FFCA và HAC cú k∏t quÊ Silhouette t˜ẽng ậi giậng nhau, FFCA tật hẽn mẻt chỳt Ph˜ẽng phỏp gom cˆm k-means cú k∏t quÊ khụng tật vỡ ph˜ẽng phỏp này khụng phự hềp vểi còu trỳc phõn còp cıa d˙ liêu Tuy nhiờn, k∏t quÊ o l˜èng theoSilhouette cıa nh˙ng ph˜ẽng phỏp này cÙng khụng tật l≠m, vỡ chỳng khụng phÊn ỏnh ˜ềc hành vi cıa mó ẻc, ˜ềc bi∫u diπn bi cỏc cụng th˘c lu™n l˛ Ng˜ềc lĐi, ph˜ẽng phỏp OCC-phÍ bi∏n Đt ˜ềc k∏t quÊtật vểi ẻ o Silhouette, ch˘ng minh răng ph˜ẽng phỏp này thớch hềp vểi ng˙nghổa ˜ềc truy∑n Đt bi cỏc cụng th˘c lu™n l˛ bi∫u diπn hành vi cıa mó ẻc.

Th£o lu™n

Trong Ch˜ẽng này, chỳng tụi ∑xuòt khung th˘c MarCHGen nhăm xõy dáng cõy phõn còp khỏi niêm mó ẻc t¯mẻt t™p d˙ liêu mó ẻc Thỏch th˘c năm thác t∏ là hành vi nguy hĐi cıa mó ẻc ˜ềc bi∫u diπn băng cụng th˘c lu™n l˛ thèi gian Do ú, kˇthu™t khai phỏ d˙liêu truy∑n thËng và các kˇthu™t bi∫u diπn tri th˘c g∞p khó kh´n áng k∫khi n≠m b≠t và bi∫u diπn nh˙ng hành nguy hĐi cıa mó ẻc.

∫ kh≠c phˆc nh˙ng vòn ∑ này, chỳng tụi m rẻng kˇthu™t truy∑n thậng dáa trờn FCA thành V-LCA, cho phộp cỏc cụng th˘c lu™n l˛thèi gian k∏t hềp ˜ềc vểi cỏc khỏi niêm chớnh th˘c Chỳng tụi cÙng ∑ xuòt mẻt kˇ thu™t gom cˆm khỏi niêm on-the-fly ∫ gom giàn khỏi niêm lu™n l˛vào cõy phõn còp khỏi niêm hoàn chứnh Cuậi cựng, chỳng tụi ỏp dˆng kˇ thu™t quÊn l˛c™p nh™t khỏi niêm phÍbi∏n ∫ giỏm sỏt và c™p nh™t cõy phõn còp khỏi niêm mẻt cỏch hiêu quÊ khi bẻ d˙ liêu mó ẻc cú thay Íi T¯ ú, khung th˘c MarCHGen ó Đt ˜ềc hiêu suòt v˜ềt trẻi khi thớ nghiêm vểi mẻt t™p d˙ liêu mó ẻc thác t∏, t¯ ú khỉng ‡nh ˜ềc khÊ n´ng ỏp dˆng trong cụng nghiêp.

CH◊ÃNG 6 KũT LUọN VÀ H◊ŒNG M– RÀNG

Tóm t≠t và k∏t lu™n

Lu™n ỏn ó trỡnh bày chi ti∏t cỏc vòn ∑ ang tÁn tĐi cıa h˜ểng nghiờn c˘u ỏp dˆng ki∫m tra mụ hỡnh ∫ phõn tớch mó ẻc, bao gÁm vòn ∑ bựng nÍ khụng gian trĐng thỏi, vòn ∑ làm rậi mó và nhu cảu hê thậng hoỏ mó ẻc trong bậi cÊnh hành vi nguy hĐi cıa mó ẻc ˜ềc ∞c tÊ băng cỏc cụng th˘c lu™n l˛ Cỏc úng gúp cıa lu™n ỏn trong viêc giÊi quy∏t cỏc vòn ∑ này ˜ềc tóm t≠t nh˜sau.

• ậi vểi vòn ∑ ảu tiờn là vòn ∑ bựng nÍ khụng gian trĐng thỏi kinh i∫n cıa ki∫m tra mụ hỡnh, lu™n ỏn ó ∑ xuòt ph˜ẽng phỏp ∫ giÊi quy∏t vòn ∑ này cho bài toỏn phõn tớch mó ẻc Vểi phỏt hiên quan trÂng v∑ nh˙ng lênh khụng th˜èng ˜ềc s˚ dˆng bi mó ẻc - gÂi là

!-instructions - lu™n ỏn ó khai thỏc phỏt hiên này ∫ ∑ xuòt ph˜ẽng phỏp ki∫m tra gia t´ng t¯ng phản, giỳp giÊi quy∏t vòn ∑ bựng nÍ khụng gian trĐng thỏi băng cỏch chia nh‰ ch˜ẽng trỡnh cản ˜ềc ki∫m tra thành cỏc !-regions và ki∫m tra cỏc !-regions này mẻt cỏch ẻc l™p.

Lu™n ỏn cÙng ∑ xuòt mẻt ph˜ẽng phỏp giỳp xõy dáng t™p!-instructions băng cỏch thậng kờ dáa trờn mẻt ẻ o mểi if imf K∏t quÊ thớ nghiêm ó ch˘ng minh ˜ềc tớnh hiêu quÊ cıa ph˜ẽng phỏp ki∫m tra gia t´ng t¯ng phản, giỳp khỉng ‡nh khÊ n´ng ỏp dˆng ˜ềc trong thác t∏ cıa ph˜ẽng phỏp này.

• Sau khi giÊi quy∏t vòn ∑ bựng nÍ khụng gian trĐng thỏi cho bài toỏn ỏp dˆng ki∫m tra mụ hỡnh phỏt hiên mó ẻc, thỏch th˘c ti∏p theo mà lu™n ỏn phÊi ậi m∞t ú là vòn ∑làm rậi mó làm£nh h˜ng ∏n tính chính xác cıa k∏t qu£ ki∫m tra Qua phân tích nh˙ng h§n ch∏ cıa cỏc h˜ểng nghiờn c˘u giÊi quy∏t vòn ∑làm rậi mó, lu™n ỏn ó ∑xuòt mẻt h˜ểng ti∏p c™n ỏp dˆng suy diπn tr¯u t˜ềng ∫giÊi quy∏t vòn ∑ này mẻt cỏch triêt ∫ hẽn úng gúp chớnh cıa h˜ểng ti∏p c™n do lu™n ỏn ∑ xuòt là phõn tỏch b˜ểc giÊi rậi vểi b˜ểc ki∫m tra mụ hỡnh, t¯ ú trỏnh ˜ềc viêc phÊi c™p nh™t cụng cˆ ki∫m tra mụ hỡnh mẩi khi x˚l˛cỏc kˇthu™t làm rậi mó mểi Ngoài ra, ngụn ng˙tr¯u t˜ềng mà lu™n ỏn ∑ xuòt giỳp tr¯u t˜ềng hoỏ ch˜ẽng trỡnh cản ˜ềc ki∫m tra v∑mẻt bi∫u diπn ẽn giÊn, vỡ v™y kˇ thu™t làm rậi khụng th∫ che dòu ˜ềc hành vi nguy hĐi th™t sá Khung th˘c HOPE do lu™n ỏn ∑ xuòt theo h˜ểng ti∏p c™n này cú khÊn´ng x˚l˛ cỏc kˇthu™t làm rậi phÍbi∏n vểi k∏t quÊthớ nghiêm khÊquan trờn cỏc mó ẻc thác t∏.

• ậi vểi vòn ∑hêthậng hoỏ mó ẻc trong bậi cÊnh hành vi nguy hĐi cıa mó ẻc ˜ềc ∞c tÊ băng cỏc cụng th˘c lu™n l˛, băng ∑ xuòt ph˜ẽng phỏp phõn tớch khỏi niêm lu™n l˛ mó ẻc (Viral Logical Concept Analysis (V-LCA)), lu™n ỏn ó xõy dáng ˜ềc giàn khỏi niêm mó ẻc vểi intent cıa cỏc khỏi niêm là cỏc cụng th˘c lu™n l˛thèi gian ∞c tÊhành vi nguy hĐi ∫tÍng quỏt hoỏ cỏc khỏi niêm trờn giàn, phộp tr¯u t˜ềng hoỏ mó ẻc dáa trờn cỏc m rẻng t˜ẽng˘ng cıa lu™n l˛ thèi gian ó ˜ềc trỡnh bày Ngoài ra, cõy phõn còp khỏi niêm mó ẻc cÙng ˜ềc xõy dáng và c™p nh™t hiêu quÊdáa trờn kˇthu™t gom cˆm khỏi niêm liờn tˆc (On-the-fly Conceptual Clustering - OCC) và kˇthu™t qu£n l˛t™p c™n phÍ bi∏n (Pre-large Dataset Management) do lu™n ỏn ∑ xuòt Cõy phõn còp khỏi niêm mó ẻc ˜ềc tĐo ra vểi cỏc mó ẻc trong thác t∏ ó xỏc nh™n tớnh hiêu quÊ cıa cỏc ph˜ẽng phỏp ˜ềc ∑ xuòt bi lu™n ỏn Hiêu suòt cıa khung th˘c MarCHGen do lu™n ỏn ∑ xuòt dáa trờn cỏc kˇthu™t này ó ˜ềc so sỏnh vểi cỏc ph˜ẽng phỏp khỏc thụng qua viêc thớ nghiêm trờn mẻt t™p phong phỳ cỏc mó ẻc.

Lu™n ỏn ó giÊi quy∏t ˜ềc ba vòn ∑cũn tÁn Âng cıa h˜ểng nghiờn c˘u ti∏p c™n ỏp dˆng ki∫m tra mụ hỡnh ∫ phỏt hiên mó ẻc băng cỏc ∑ xuòt mểi, ỏp ˘ng ảy ı cỏc mˆc tiờu nghiên c˘u ˜Òc ∑ra Các nghiên c˘u ˜Òc trình bày trong lu™n án ã ˜Òc công bË t§i các tĐp chớ, hẻi ngh‡chuyên ngành nh˜ trỡnh bày trong phản Danh mˆc cụng trỡnh ó cụng bậ.

H˜ểng m rẻng

Cỏc h˜ểng nghiờn c˘u cıa lu™n ỏn vđn cũn nhi∑u ti∑m n´ng ∫ mrẻng Chi ti∏t cỏc h˜ểng m rẻng là:

• ∑ xuòt !-instruction/!-region cıa lu™n ỏn cú th∫ ˜ềc m rẻng cho cỏc bài toỏn ki∫m tra cỏc lểp ch˜ẽng trỡnh khỏc băng cỏch phỏt tri∫n ẻ o if imf ∫ tỡm cỏc lênh khỏc biêt gi˙a t™p ch˜ẽng trỡnh cản ˜ềc ki∫m tra so vểi cỏc ch˜ẽng trỡnh cũn lĐi Sau khi cú ˜ềc t™p

!-instruction cho t™p ch˜ẽng trỡnh cản ˜ềc ki∫m tra, ta s≥cú th∫ phõn ró chỳng thành cỏc

• Thay vỡ s˚dˆng ph˜ẽng phỏp thậng kờ ∫ xõy dáng t™p!-instruction nh˜ ∑ xuòt trong lu™n ỏn, cỏc ph˜ẽng phỏp hÂc mỏy [125] s≥ ˜ềc nghiờn c˘u ỏp dˆng ∫xõy dáng hiêu quÊ hẽn t™p lênh này Viêc ỏp dˆng hÂc mỏy h˘a hàn s≥ em lĐi nh˙ng k∏t quÊ khÊquan cho nhúm cỏc ch˜ẽng trỡnh khụng phÊi mó ẻc, vỡ ph˜ẽng phỏp thậng kờ s≥ kộm hiêu quÊkhi sákhỏc biêt khụng cũn rừ rêt (nh˜ gi˙a ch˜ẽng trỡnh nguy hĐi và ch˜ẽng trỡnh vụ hĐi).

• M∞c dự ph˜ẽng phỏp gom cˆm khỏi niêm liên tˆc (On-the-fly Conceptual Clustering - OCC) ˜ềc ∑xuòt trong Lu™n ỏn ó ch˘ng minh ˜ềc hiêu quÊtrong viêc tậi ˜u chi phớ gom cˆm, hiên vđn cũn nhi∑u ph˜ẽng phỏp gom cˆm khỏc cú th∫ ˜ềc ỏp dˆng [126] Chỳng tụi s≥ ti∏p tˆc nghiờn c˘u cỏc ph˜ẽng phỏp gom cˆm khỏc ∫ cÊi ti∏n ph˜ẽng phỏp gom cˆm khỏi niêm lu™n l˛mó ẻc.

• ∫giÊi quy∏t hĐn ch∏v∑ sậl˜ềng cỏc phộp tr¯u t˜ềng hoỏ mó ẻc, chỳng tụi t™p trung nghiờn c˘u mrẻng cỏc phộp tr¯u t˜ềng này ∫cú th∫ tÍng quỏt hoỏ ˜ềc nhi∑u cụng th˘c ∞c tÊ lu™n l˛mó ẻc hẽn.

• ∫hê thậng hoỏ cỏc cụng th˘c mó ẻc, lu™n ỏn cÙng mrẻng nghiờn c˘u theo h˜ểng ỏp dˆng ph˜ẽng phỏp hÂc mỏy [125] õy h˘a hàn là mẻt h˜ểng nghiờn c˘u ti∑m n´ng bờn cĐnh h˜ểng nghiờn c˘u dáa trờn phõn tớch khỏi niêm hỡnh th˘c.

DANH MữC CễNG TRèNH Ã CễNG Bằ ÓNG GÓP CHÍNH

[CT1] B T Nguyen, D C Tran, T T Quan, and H M Nguyen, "MarCHGen: A Framework for Malware Conceptual Hierarchy Generation,"Expert Systems, 2019 (SCI-E).

[CT2] B T Nguyen, D C Tran, T T Quan, and H M Nguyen, "Viral logical concept analysis for malware conceptual hierarchy generation," inInternational Journal of Machine Learning and Computing (IJMLC), 2017, vol 7, no 4, pp 49-54.

T§p chí chuyên ngành trong n˜Óc

[CT2] B T Nguyen, V H Nguyen, T T Quan, and D C Nguyen, "A two-layer formal framework for handling obfuscation techniques of polymorphic virus," inJournal of Science and Technology, 2013, vol 51, pp 231-241.

Hẻi thÊo chuyờn ngành quậc t∏

[CT3] B T Nguyen, T T Quan, N M Ha, and H M Nguyen, “Incremental verification of!-regions on binary control flow graph for computer virus detection,” in2016 3rd National Foundation for Science and Technology Development Conference on Information and Computer Science, NICS 2016 Proceedings,2016, pp 68–73.

[CT4] B T Nguyen, T T Quan, and H M Nguyen, “On-the-fly abstract interpretation to handle obfuscated polymorphic virus with HOPE,” inThe Fourth Asian Conference on Information Systems, ACIS 2015, Penang, Malaysia, October 15-17, 2015 Proceedings,2015.

[CT5] B T Nguyen, D C Tran, T T Quan, and H M Nguyen, “Feature-driven formal concept anal- ysis for malware hierarchy construction,” inMulti-disciplinary Trends in Artificial Intelligence -9th International Workshop, MIWAI 2015, Fuzhou, China, November 13-15, 2015 Proceedings,2015, pp 385–396 [Online] Available: https://doi.org/10.1007/978-3-319-26181-2_36

[CT6] B T Nguyen, T T Quan, H M Nguyen, and V H Nguyen, “HOPE: a framework for handling obfuscated polymorphic malware,” in 19th International Symposium on Formal Methods, FM 2014, Singapore, May 12-16, 2014 Proceedings, 2014, pp 26-30 [Online] Available: https://dl.comp.nus.edu.sg/jspui/bitstream/1900.100/4623/2/TRA5-14.pdf

[CT7] B T Nguyen, B T Ngo, and T T Quan, “A memory-based abstraction approach to handle obfuscation in polymorphic virus,” in19th Asia-Pacific Software Engineering Conference - Workshops, APSEC 2012, Hong Kong, China, December 4-7, 2012 Proceedings, 2012, pp.

158–161 [Online] Available: https://doi.org/10.1109/APSEC.2012.78 ÓNG GÓP PH÷

[CT8] H M Nguyen, N M Ha, B T Nguyen, and T T Quan,"Toward an Approach on Probability Distribution for Polymorphic Malware Analysis,” in GSTF Journal on Computing (JOC), 2016, vol 5 (1), pp 61-68 (selected from 7th Annual International Conference on ICT: Big Data, Cloud and Security, ICT-BDCS 2016, 2016, Singapore - best paper award).

Hẻi thÊo chuyờn ngành quậc t∏

[CT9] H M Nguyen, B T Nguyen, T T Quan, and M Ogawa, “A Hybrid Approach for ControlFlow Graph Construction from Binary Code,” inProceedings of the 20th Asia-Pacific SoftwareEngineering Conference, APSEC 2013, Postgrad Symposium, Thailand, 2013.

CÁC ó TÀI NGHIÊN CŸU KHOA H≈C Ã THAM GIA TH‹C HIõN

K∏t qu£ nghiêm thu Phỏt hiên virus băng ph˜ẽng phỏp hình th˘c

2012-2013 Còp tr˜èng Chıtrỡ Tật

[1] K Chandrasekar, G Cleary, O Cox, H Lau, B Nahorney, B O Gorman, S Wallace, P Wood, C Wueest et al., “Symantec internet security threat report for 2017,” Volume 22, 2017.

[2] S Tanachaiwiwat and A Helmy, “Vaccine: War of the worms in wired and wireless networks,” inIEEE INFOCOM, 2006, pp 05–859.

[3] J Zhuge, T Holz, C Song, J Guo, X Han, and W Zou, “Studying malicious websites and the underground economy on the chinese web,” in7th Annual Workshop on the Economics of Information Security, WEIS 2008, Dartmouth College, Hanover, NH, USA, June 25-28, 2008, 2008 [Online] Available: http://weis2008.econinfosec.org/papers/Holz.pdf

[4] A Moser, C Kr¨ugel, and E Kirda, “Exploring multiple execution paths for malware analysis,” in 2007 IEEE Symposium on Security and Privacy (S&P 2007), 20-23 May 2007, Oakland, California, USA, 2007, pp 231–245 [Online] Available: https://doi.org/10.1109/SP.2007.17

[5] J O Kephart and W C Arnold, “Arnold: Automatic extraction of computer virus signatures,” in Proceedings of the 4th Virus Bulletin International Conference Virus Bulletin Ltd, 1994, pp 178–184.

[6] A Damodaran, F Di Troia, C A Visaggio, T H Austin, and M Stamp, “A comparison of static, dynamic, and hybrid analysis for malware detection,” Journal of Computer Virology and Hacking Techniques, vol 13, no 1, pp 1–12, 2017.

[7] D Uppal, V Mehra, and V Verma, “Basic survey on malware analysis, tools and techniques,”

International Journal on Computational Sciences & Applications (IJCSA) Vol, vol 4, pp.

[8] M Madou, L V Put, and K D Bosschere, “Loco: an interactive code (de) obfuscation tool,” in Proceeding of the ACM SIGPLAN 2006 Workshop on Partial Evaluation and Program Manipulation, 2006.

[9] L Ertaul and S Venkatesh, “Jhide – a tool kit for code obfuscation,” inProceeding of the Eighth IASTED International Conference Software Engineering and Application, November 2004, pp 133–138.

[10] E M Gold, “Language identification in the limit,” Information and Computation, 1967.

[11] M Egele, T Scholte, E Kirda, and C Kruegel, “A survey on automated dynamic malware-analysis techniques and tools,” ACM Comput Surv., vol 44, no 2, pp 6:1–6:42, 2012 [Online] Available: http://doi.acm.org/10.1145/2089125.2089126

[12] E M Clarke and J M Wing, “Formal methods: State of the art and future directions,”ACM Computing Surveys (CSUR) - Special ACM 50th-anniversary issue: strategic directions in computing research, vol 28, pp 626–643, December 1996.

[13] G Balakrishnan, T W Reps, N Kidd, A Lal, J Lim, D Melski, R Gruian, S H Yong, C H Chen, and T Teitelbaum, “Model checking x86 executable with codesurfer/x86 and wpds++,” in Proceedings of International Conference of Computer-Aided Verification (CAV), 2005, pp 158–163.

[14] E M Clarke and E A Emerson, “Design and synthesis of synchronization skeletons using branching time temporal logic,” D Kozen, Ed Springer Berlin Heidelberg, 1982, pp.

[15] N M Hai, N T Binh, Q T Tho, and M Ogawa, “A hybrid approach for control flow graph construction from binary code,” in Proceedings of the 20th Asia-Pacific SoftwareEngineering Conference, 2013.

[16] F Song and T Touili, “Efficient malware detection using model-checking,” in FM 2012: Formal Methods - 18th International Symposium, Paris, France, August 27-31, 2012 Proceedings, 2012, pp 418–433 [Online] Available: https:

[17] J Kinder, S Katzenbeisser, C Schallhart, and H Veith, “Detecting malicious code by model checking,” inDetection of Intrusions and Malware, and Vulnerability Assessment, Second International Conference, DIMVA 2005, Vienna, Austria, July 7-8, 2005, Proceedings, 2005, pp 174–187 [Online] Available: https://doi.org/10.1007/11506881_11

[18] F Song and T Touili, “Pushdown model checking for malware detection,” inTools and Algorithms for the Construction and Analysis of Systems - 18th International Conference, TACAS 2012, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2012, Tallinn, Estonia, March 24 - April 1, 2012 Proceedings, 2012, pp.

110–125 [Online] Available: https://doi.org/10.1007/978-3-642-28756-5_9

[19] E M Clarke, O Grumberg, S Jha, Y Lu, and H Veith, “Progress on the state explosion problem in model checking,” in Informatics - 10 Years Back 10 Years Ahead., 2001, pp.

176–194 [Online] Available: http://dx.doi.org/10.1007/3-540-44577-3_12

[20] H Garavel, F Lang, and R Mateescu, “Compositional verification of asynchronous concurrent systems using CADP,” Acta Inf., vol 52, no 4-5, pp 337–392, 2015 [Online].

Available: http://dx.doi.org/10.1007/s00236-015-0226-1

[21] E M Clarke, D E Long, and K L McMillan, “Compositional model checking,” in Proceedings of the Fourth Annual Symposium on Logic in Computer Science, 1989, pp.

[22] B Ganter and R Wille,Formal concept analysis - mathematical foundations Springer, 1999.

[23] D Moore, C Shannon, and K C Claffy, “Code-red: a case study on the spread and victims of an internet worm,” in Proceedings of the 2nd ACM SIGCOMM Internet

Measurement Workshop, IMW 2002, Marseille, France, November 6-8, 2002, 2002, pp.

273–284 [Online] Available: http://doi.acm.org/10.1145/637201.637244

[24] B Stone-Gross, M Cova, L Cavallaro, B Gilbert, M Szydlowski, R A Kemmerer, C Kruegel, and G Vigna, “Your botnet is my botnet: analysis of a botnet takeover,” in Proceedings of the 2009 ACM Conference on Computer and Communications Security, CCS 2009, Chicago, Illinois, USA, November 9-13, 2009, 2009, pp 635–647 [Online].

Available: http://doi.acm.org/10.1145/1653662.1653738

Ngày đăng: 08/09/2024, 20:34

HÌNH ẢNH LIÊN QUAN

Hình phát hiện mã độc - Luận án tiến sĩ Khoa học máy tính: Áp dụng kiểm tra mô hình và phân tích khái niệm hình thức để phân loại và phát hiện mã độc
Hình ph át hiện mã độc (Trang 22)
Hỡnh 2.1: Bi∫u diπn ch˜ẽng trỡnh. - Luận án tiến sĩ Khoa học máy tính: Áp dụng kiểm tra mô hình và phân tích khái niệm hình thức để phân loại và phát hiện mã độc
nh 2.1: Bi∫u diπn ch˜ẽng trỡnh (Trang 30)
Hỡnh 2.2: Áp dˆng ki∫m tra mụ hỡnh ∫ phỏt hiên mó ẻc. - Luận án tiến sĩ Khoa học máy tính: Áp dụng kiểm tra mô hình và phân tích khái niệm hình thức để phân loại và phát hiện mã độc
nh 2.2: Áp dˆng ki∫m tra mụ hỡnh ∫ phỏt hiên mó ẻc (Trang 31)
Hỡnh 2.3: Còu trỳc Kripke. - Luận án tiến sĩ Khoa học máy tính: Áp dụng kiểm tra mô hình và phân tích khái niệm hình thức để phân loại và phát hiện mã độc
nh 2.3: Còu trỳc Kripke (Trang 36)
Hình 2.4: Virus Avron. - Luận án tiến sĩ Khoa học máy tính: Áp dụng kiểm tra mô hình và phân tích khái niệm hình thức để phân loại và phát hiện mã độc
Hình 2.4 Virus Avron (Trang 43)
Hỡnh 2.5: Ph˜ẽng phỏp gom cˆm phõn còp. - Luận án tiến sĩ Khoa học máy tính: Áp dụng kiểm tra mô hình và phân tích khái niệm hình thức để phân loại và phát hiện mã độc
nh 2.5: Ph˜ẽng phỏp gom cˆm phõn còp (Trang 46)
Hỡnh 3.1: Ph˜ẽng phỏp ki∫m tra thành phản. - Luận án tiến sĩ Khoa học máy tính: Áp dụng kiểm tra mô hình và phân tích khái niệm hình thức để phân loại và phát hiện mã độc
nh 3.1: Ph˜ẽng phỏp ki∫m tra thành phản (Trang 52)
Hỡnh 3.2: Cỏc b˜ểc thác hiên ki∫m tra thành phản. - Luận án tiến sĩ Khoa học máy tính: Áp dụng kiểm tra mô hình và phân tích khái niệm hình thức để phân loại và phát hiện mã độc
nh 3.2: Cỏc b˜ểc thác hiên ki∫m tra thành phản (Trang 53)
Hỡnh 3.3: ASM, CFG và khụng gian trĐng thỏi cıa ch˜ẽng trỡnh. - Luận án tiến sĩ Khoa học máy tính: Áp dụng kiểm tra mô hình và phân tích khái niệm hình thức để phân loại và phát hiện mã độc
nh 3.3: ASM, CFG và khụng gian trĐng thỏi cıa ch˜ẽng trỡnh (Trang 55)
Hỡnh 3.5: Nh˙ng lênh khụng ch˘a trong mđu nh™n diên mó ẻc. - Luận án tiến sĩ Khoa học máy tính: Áp dụng kiểm tra mô hình và phân tích khái niệm hình thức để phân loại và phát hiện mã độc
nh 3.5: Nh˙ng lênh khụng ch˘a trong mđu nh™n diên mó ẻc (Trang 62)
Hỡnh 3.6: Ph˜ẽng phỏp ki∫m tra gia t´ng t¯ng phản. - Luận án tiến sĩ Khoa học máy tính: Áp dụng kiểm tra mô hình và phân tích khái niệm hình thức để phân loại và phát hiện mã độc
nh 3.6: Ph˜ẽng phỏp ki∫m tra gia t´ng t¯ng phản (Trang 64)
Hình 3.7: !-regions. - Luận án tiến sĩ Khoa học máy tính: Áp dụng kiểm tra mô hình và phân tích khái niệm hình thức để phân loại và phát hiện mã độc
Hình 3.7 !-regions (Trang 72)
Hình 3.8: Không gian tr§ng thái ki∫m tra mô hình. - Luận án tiến sĩ Khoa học máy tính: Áp dụng kiểm tra mô hình và phân tích khái niệm hình thức để phân loại và phát hiện mã độc
Hình 3.8 Không gian tr§ng thái ki∫m tra mô hình (Trang 73)
Hỡnh 3.9: Ch˜ẽng trỡnh r≥ nhỏnh ẽn giÊn và ph˘c tĐp. - Luận án tiến sĩ Khoa học máy tính: Áp dụng kiểm tra mô hình và phân tích khái niệm hình thức để phân loại và phát hiện mã độc
nh 3.9: Ch˜ẽng trỡnh r≥ nhỏnh ẽn giÊn và ph˘c tĐp (Trang 75)
Hình 3.10: So sánh tÍng thÌi gian ch§y. - Luận án tiến sĩ Khoa học máy tính: Áp dụng kiểm tra mô hình và phân tích khái niệm hình thức để phân loại và phát hiện mã độc
Hình 3.10 So sánh tÍng thÌi gian ch§y (Trang 79)
Hỡnh 3.11: So sỏnh b ẻ nhể s˚ dˆng. - Luận án tiến sĩ Khoa học máy tính: Áp dụng kiểm tra mô hình và phân tích khái niệm hình thức để phân loại và phát hiện mã độc
nh 3.11: So sỏnh b ẻ nhể s˚ dˆng (Trang 80)
Hình 4.2: Áp dˆng các kˇ thu™t làm rËi mã trên virus Avron. - Luận án tiến sĩ Khoa học máy tính: Áp dụng kiểm tra mô hình và phân tích khái niệm hình thức để phân loại và phát hiện mã độc
Hình 4.2 Áp dˆng các kˇ thu™t làm rËi mã trên virus Avron (Trang 86)
Hình 4.3: Hành vi nguy h§i. - Luận án tiến sĩ Khoa học máy tính: Áp dụng kiểm tra mô hình và phân tích khái niệm hình thức để phân loại và phát hiện mã độc
Hình 4.3 Hành vi nguy h§i (Trang 87)
Hình 4.5: Khung th˘c HOPE. - Luận án tiến sĩ Khoa học máy tính: Áp dụng kiểm tra mô hình và phân tích khái niệm hình thức để phân loại và phát hiện mã độc
Hình 4.5 Khung th˘c HOPE (Trang 88)
Hình 4.6: Các b˜Óc tr¯u t˜Òng hoá hành vi. - Luận án tiến sĩ Khoa học máy tính: Áp dụng kiểm tra mô hình và phân tích khái niệm hình thức để phân loại và phát hiện mã độc
Hình 4.6 Các b˜Óc tr¯u t˜Òng hoá hành vi (Trang 91)
Hỡnh 5.1: Cõy khỏi niêm cıa cỏc oĐn mó mụ tÊ trong BÊng 5.1. - Luận án tiến sĩ Khoa học máy tính: Áp dụng kiểm tra mô hình và phân tích khái niệm hình thức để phân loại và phát hiện mã độc
nh 5.1: Cõy khỏi niêm cıa cỏc oĐn mó mụ tÊ trong BÊng 5.1 (Trang 98)
Hỡnh 5.2 mụ tÊ giàn khỏi niêm ˜ềc tĐo ra t¯ ng˙ cÊnh hỡnh th˘c ˜ềc mụ tÊ trong BÊng 5.3 vểi ph˜ẽng phỏp FCA. - Luận án tiến sĩ Khoa học máy tính: Áp dụng kiểm tra mô hình và phân tích khái niệm hình thức để phân loại và phát hiện mã độc
nh 5.2 mụ tÊ giàn khỏi niêm ˜ềc tĐo ra t¯ ng˙ cÊnh hỡnh th˘c ˜ềc mụ tÊ trong BÊng 5.3 vểi ph˜ẽng phỏp FCA (Trang 103)
Hỡnh 5.3: Giàn khỏi niêm mó ẻc ˜ềc tĐo ra bi V-LCA. - Luận án tiến sĩ Khoa học máy tính: Áp dụng kiểm tra mô hình và phân tích khái niệm hình thức để phân loại và phát hiện mã độc
nh 5.3: Giàn khỏi niêm mó ẻc ˜ềc tĐo ra bi V-LCA (Trang 107)
Hỡnh 5.4: MarCHGen - khung th˘c hê thậng hoỏ mó ẻc. - Luận án tiến sĩ Khoa học máy tính: Áp dụng kiểm tra mô hình và phân tích khái niệm hình thức để phân loại và phát hiện mã độc
nh 5.4: MarCHGen - khung th˘c hê thậng hoỏ mó ẻc (Trang 109)
Hỡnh 5.5 bi∫u diπn cõy khỏi niêm hoàn chứnh ˜ềc tĐo ra băng cỏch gom cỏc khỏi niêm trờn giàn thành nh˙ng cˆm - Luận án tiến sĩ Khoa học máy tính: Áp dụng kiểm tra mô hình và phân tích khái niệm hình thức để phân loại và phát hiện mã độc
nh 5.5 bi∫u diπn cõy khỏi niêm hoàn chứnh ˜ềc tĐo ra băng cỏch gom cỏc khỏi niêm trờn giàn thành nh˙ng cˆm (Trang 112)
Hỡnh 5.6: Giàn khỏi niêm phÍ bi∏n. - Luận án tiến sĩ Khoa học máy tính: Áp dụng kiểm tra mô hình và phân tích khái niệm hình thức để phân loại và phát hiện mã độc
nh 5.6: Giàn khỏi niêm phÍ bi∏n (Trang 113)
Hình 5.7: Xác ‡nh t™p phÍ bi∏n. - Luận án tiến sĩ Khoa học máy tính: Áp dụng kiểm tra mô hình và phân tích khái niệm hình thức để phân loại và phát hiện mã độc
Hình 5.7 Xác ‡nh t™p phÍ bi∏n (Trang 114)
Hỡnh 5.8: Cõy phõn còp mó ẻc. - Luận án tiến sĩ Khoa học máy tính: Áp dụng kiểm tra mô hình và phân tích khái niệm hình thức để phân loại và phát hiện mã độc
nh 5.8: Cõy phõn còp mó ẻc (Trang 115)
Hỡnh 5.9: Hiêu suòt cıa cỏc thu™t toỏn gom cˆm khỏi niêm. - Luận án tiến sĩ Khoa học máy tính: Áp dụng kiểm tra mô hình và phân tích khái niệm hình thức để phân loại và phát hiện mã độc
nh 5.9: Hiêu suòt cıa cỏc thu™t toỏn gom cˆm khỏi niêm (Trang 115)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w