Một phương pháp mới dự đoán lỗ hổng phần mềm

62 159 0
Một phương pháp mới dự đoán lỗ hổng phần mềm

Đ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

B GIO DC V O TO TRNG I HC S PHM H NI Lấ H MINH MT PHNG PHP MI D ON L HNG PHN MM Chuyờn ngnh: Khoa hc mỏy tớnh Mó s: 60480101 LUN VN THC S NGI HNG DN KHOA HC PGS.TS TRN NG HNG H NI - NM 2017 Trng i hc S phm H Ni Lun thc s MC LC MC LC LI CAM OAN LI CM N DANH MC HèNH V DANH MC BNG DANH MC T VIT TT M U CHNG 1: GII THIU 12 1.1 Bo mt phn mm 12 1.2 L hng phn mm 12 1.3 D oỏn l hng phn mm 19 1.4 Cỏc phng phỏp d oỏn l hng phn mm ó cú 19 1.5 Mc tiờu ca lun 23 1.6 Kt lun Chng 24 CHNG 2: C S Lí THUYT 25 2.1 Tng quan v hc mỏy (Machine Learning - ML) 25 2.2 Bi toỏn phõn lp 32 2.3 Mt s phng phỏp (mụ hỡnh) phõn lp 34 2.4 ỏnh giỏ cỏc mụ hỡnh phõn lp 43 2.5 Bi toỏn gim chiu d liu 45 2.6 Mt s phng phỏp gim chiu d liu 46 2.7 Kt lun Chng 47 CHNG 3: Mễ HèNH D ON L HNG PHN MM S DNG PHNG PHP PHN LP D LIU 48 3.1 Gii thiu bi toỏn 48 Trng i hc S phm H Ni Lun thc s 3.2 Mụ hỡnh xut 48 3.3 D liu v tin x lý d liu 51 3.4 p dng mụ hỡnh v d liu vo thc nghim 53 3.5 Kt qu thc nghim 55 3.6 Tho lun 56 3.7 Kt lun Chng 58 KT LUN 59 TI LIU THAM KHO 60 Trng i hc S phm H Ni Lun thc s LI CAM OAN Tụi xin cam oan bn lun ỏn ny l kt qu nghiờn cu ca cỏ nhõn tụi Cỏc s liu v ti liu c trớch dn lun ỏn l trung thc Kt qu nghiờn cu ny khụng trựng vi bt c cụng trỡnh no ó c cụng b trc ú Tụi chu trỏch nhim vi li cam oan ca mỡnh H Ni, thỏng 05 nm 2017 Lờ H Minh Trng i hc S phm H Ni Lun thc s LI CM N hon thnh chng trỡnh cao hc v lun ny, tụi ó nhn c s hng dn, giỳp v gúp ý nhit tỡnh ca quý thy cụ Khoa Cụng ngh thụng tin, Trng i hc S phm H Ni Trc ht, tụi xin chõn thnh cm n n quý thy cụ Khoa Cụng ngh thụng tin trng i hc S phm H Ni, c bit l nhng thy cụ ó tn tỡnh dy bo tụi sut thi gian hc Tụi xin gi li bit n sõu sc v chõn thnh nht n PGS.TS Trn ng Hng ó dnh rt nhiu thi gian v tõm huyt hng dn nghiờn cu v giỳp tụi hon thnh lun tt nghip Cui cựng, tụi xin gi li cm n ti nhng ngi thõn gia ỡnh tụi, b m, ch gỏi cựng bn bố ó luụn ng viờn tụi quỏ trỡnh hc v hon thnh khúa lun ca mỡnh Mc dự cú nhiu c gng hon thin lun bng tt c s nhit tỡnh v nng lc ca mỡnh, nhiờn khụng th trỏnh nhng thiu sút, rt mong nhn c nhng úng gúp quý bỏu ca quý thy cụ v cỏc bn Trng i hc S phm H Ni Lun thc s DANH MC HèNH V Hỡnh 2.1 í tng ca hc mỏy 25 Hỡnh 2.2 dc ca mt ng thng 27 Hỡnh 2.3 Tớnh bin thiờn ca th 27 Hỡnh 2.4 dc gia im trờn th 28 Hỡnh 2.5 dc ca mt im trờn th 28 Hỡnh 2.6 Giỏ tr J() ti mt im 29 Hỡnh 2.7 Thay i J() 29 Hỡnh 2.8 Thay i J() t cc tiu a phng 30 Hỡnh 2.9 J() thay i tht thng 30 Hỡnh 2.10 Nhc im ca gii thut gradient descent 31 Hỡnh 2.11 th cú th tỡm cc tiu 31 Hỡnh 2.12 th lý tng tỡm cc tiu 31 Hỡnh 2.13 Siờu mt phng mt chiu v hai chiu 38 Hỡnh 2.14 Siờu mt phng phõn cỏch ti u 38 Hỡnh 2.15 Siờu mt phng vi biờn cc i 39 Hỡnh 2.16 Thờm d liu mi lm thay i siờu mt phng vi biờn cc i 40 Hỡnh 2.17 Cỏc im d liu phõn lp sai theo biờn v siờu mt phng 40 Hỡnh 2.18 D liu khụng th phõn tỏch tuyn tớnh 41 Hỡnh 2.19 Vớ d phõn tỏch phi tuyn tớnh 42 Trng i hc S phm H Ni Lun thc s DANH MC BNG Bng 1.1 Cỏc nghiờn cu v d oỏn l hng phn mm ó cú 22 Bng 2.1 Cỏc hm nhõn thụng dng 43 Bng 2.2 Ma trn nhm ln 44 Bng 3.1 D liu thc nghim 51 Bng 3.2 Cỏc bc tin x lý d liu 52 Bng 3.3 Vớ d v vector c trng ca mt ng dng 53 Bng 3.4 Kt qu thc nghim 55 Bng 3.5 Kt qu thc nghim 56 Trng i hc S phm H Ni Lun thc s DANH MC T VIT TT Cm t vit tt Cm t chi tit ML Machine Learning SVM Support Vector Machine V&V Verification & Validation SQL Structure Query Language HTTP HyperText Transfer Protocol FTP File Transfer Protocol SAG Security Activity Graphs CSDL C s d liu MLE Maximum Likelihood Estimation Trng i hc S phm H Ni Lun thc s M U Phn mm l thnh phn ph bin ca cỏc thit b hoc h thng chỳng ta s dng hng ngy trờn mỏy tớnh Nhng h thng ny thng phc v c phỏt trin bi cỏc lp trỡnh viờn khỏc Thụng thng cỏc lp trỡnh viờn mc li quỏ trỡnh xõy dng mó ngun cú th to cỏc l hng phn mm L hng phn mm l l hng hoc khuyt im quỏ trỡnh xõy dng phn mm cú th b khai thỏc bi mt k tn cụng cú c mt s c quyn h thng Hay núi mt cỏch khỏc l hng phn mm cung cp mt im cú th vo h thng S lng cỏc l hng phn mm c bỏo cỏo ngy ang tng lờn ỏng k ó tr thnh lý m bo mt phn mm tr thnh mt lnh vc nghiờn cu quan trng S cú mt ca cỏc l hng sn xut phn mm dn n cn thit phi cú cỏc cụng c cú th giỳp nh phỏt trin trỏnh hoc phỏt hin l hng quỏ trỡnh xõy dng phn mm Xõy dng phn mm an ton l mt khú khn, tn nhiu thi gian, cụng sc v tin bc Vic s dng cỏc k thut Verification v Validation (V&V) nh Security Testing, Code Review, Formal Verification ó tr thnh mt phng tin hiu qu gim s lng cỏc l hng cỏc sn phm phn mm õy l mt thnh tu quan trng bi vic sa cha mt li sau phn mm ó c phỏt hnh tn chi phớ nhiu hn so vi vic gii quyt li ú ti thi im phỏt trin Tuy nhiờn, V&V cng l mt cỏch khỏ tn kộm c tớnh ban u ó ỏnh giỏ rng V&V tn thờm n 30% cho chi phớ phỏt trin Vỡ vy, nhng nm gn õy ngi ta a ý tng xõy dng cỏc mụ hỡnh d oỏn cỏc l hng phn mm Cụng vic ny a mt c s nh hng cho cỏc hot ng V&V T ú giỳp gim thi gian v n lc chi phớ cn thit bo m phn mm Mt s loi mụ hỡnh d oỏn l hng phn mm ó c xut sut thp k qua, ú k thut hc mỏy ó c s dng nh l phng tin xõy dng mụ hỡnh d oỏn Mt s nghiờn cu ch yu trung vo vic tỡm kim cỏc mi quan h gia cỏc l hng phn mm v cỏc thuc tớnh ca mó ngun Trong Trng i hc S phm H Ni Lun thc s trng hp ny, mt mụ hỡnh c xõy dng da trờn hiu bit trc giỏc rng: mt thnh phn phc hoc c sa i thng xuyờn cú nhiu kh nng cha cỏc v bo mt, hay mt phn mm cú l hng thỡ cú liờn quan n vic s dng mt s th vin phỏt trin nú Vỡ vy, vic la chn cỏc thuc tớnh d oỏn c c xỏc nh bi nhng d oỏn ca hiu bit mang tớnh cỏ nhõn Mt phng phỏp d oỏn khỏc c xut da trờn k thut khai phỏ bn Bt u t vic quan sỏt thy mt ngụn ng lp trỡnh l mt ngụn ng vi th cỳ phỏp tng ng vi t, cỏc nh nghiờn cu ó a k thut khai thỏc bn vo phõn tớch mó ngun Cỏc thuc tớnh c s dng mụ hỡnh húa l khụng c nh hay xỏc nh trc m chỳng ph thuc vo cỏc t vng c s dng bi cỏc nh phỏt trin Vỡ vy phng phỏp ny gim thiu s ph thuc vo lý thuyt c bn ca vic d oỏn iu gỡ s xy Tuy nhiờn, vic thuc tớnh ph thuc vo cỏc t vng ca nh phỏt trin dn n vic d liu s dng cho mụ hỡnh hc mỏy l cú s chiu ln v khụng ng b gia cỏc mó ngun Do ú em chn nghiờn cu ti "Mt phng phỏp mi d oỏn l hng phn mm" vi mong mun a mt phng phỏp mi kt hp k thut khai phỏ bn vo phõn tớch mó ngun ca phn mm v phng phỏp gim chiu d liu trc ỏp dng cỏc k thut hc mỏy xõy dng mụ hỡnh d oỏn l hng phn mm nhm a nh hng tt hn cho kim th phn mm Ngoi phn m u v kt lun, lun c chia thnh chng, c th ni dung mi chng nh sau: Chng 1: Gii thiu Trỡnh by cỏc khỏi nim c bn v bo mt phn mm, l hng phn mm Gii thiu ni dung bi toỏn d oỏn l hng phn mm v cỏc phng phỏp, mụ hỡnh hin ó cú gii quyt bi toỏn ny Chng 2: C s lý thuyt Trỡnh by cỏc c s lý thuyt phc v cho vic xõy dng mụ hỡnh thc nghim thụng qua vic gii thiu v bi toỏn phõn lp, bi toỏn gim chiu d liu 10 Trng i hc S phm H Ni Lun thc s CHNG 3: Mễ HèNH D ON L HNG PHN MM S DNG PHNG PHP PHN LP D LIU Trong chng ny, chỳng tụi xut quy trỡnh gii bi toỏn d oỏn l hng phn mm v thc nghim ỏnh giỏ trờn mt s d liu thc t Trong mụ hỡnh xut bao gm c chuyn i d liu t mó ngun thnh d liu vector, ri gim chiu d liu trc a vo hun luyn v kim th vi cỏc mụ hỡnh hc mỏy ph bin Sau ú tin hnh thc nghim, ỏnh giỏ v nhn xột kt qu ca cỏc mụ hỡnh d oỏn 3.1 Gii thiu bi toỏn Bi toỏn d oỏn l hng phn mm ó gii thiu Chng l bi toỏn phõn lp thnh phn ca phn mm thnh hai loi cú l hng hay khụng cú l hng (vulnerable hay non-vulnerable) Trong nghiờn cu ny, chỳng tụi la chn mó ngun l thnh phn phn mm cn phõn loi Mt mó ngun c nh ngha l cú l hng nu nú cha mt hoc nhiu l hng c cnh bỏo, c gỏn nhón l Ngc li mt mó ngun khụng cha l hng cnh bỏo no c gi l mó ngun sch, c gỏn nhón l 3.2 Mụ hỡnh xut 3.2.1 Phõn tớch mó ngun la chn c trng Cỏc thut toỏn hc mỏy thng s dng cu trỳc vector, ú cỏc c trng c chn lc cú h thng v d liu c bin i thnh cỏc vector nhiu chiu Trong nghiờn cu ny, chỳng tụi s dng k thut khai phỏ bn n-gram bin i d liu cỏc mó ngun thnh cỏc vector N-gram l mt dóy liờn tip ca n phn t mt bn cho trc Trong ngụn ng lp trỡnh hng i tng, n v mó ngun cha cỏc nh danh (identifiers), t khúa (keywords), toỏn t (operators), literals, chỳ thớch (comment), phõn cỏch (seperators) d tớnh toỏn, chỳng tụi loi tr cỏc toỏn t v 48 Trng i hc S phm H Ni Lun thc s phõn cỏch phõn tớch mó ngun Mó ngun sau phõn tớch s bao gm cỏc lp (class), i tng (object), phng thc (method), i s (argument), bin s (variable) Nhn thy rng, mó ngun ca mt ng dng cng nh mt bi vit chỳng ta hay c cuc sng hng ngy, cỏc cm t, cỏc cõu s cú ý ngha hn so vi cỏc t c lp Chớnh vỡ vy, bờn cnh s dng cỏc t n chỳng tụi cũn s dng cỏc cm t bng vic ỏp dng k thut n-gram vo phõn tớch mó ngun Sau phõn tớch mi mó ngun thnh cỏc t, cm t, chỳng tụi xõy dng vector thụ i din cho mi mó ngun ú bng cỏch m s ln t, cm t xut hin Khi s dng n-gram phõn tớch cỏc c trng, mt chỳng tụi gp phi ú l s lng c trng l rt nhiu, iu ny ng ngha vi vic s chiu ca vector c trng l rt ln gii quyt ny, chỳng tụi s dng k thut gim chiu d liu nh ó cp n Chng 2: La chn c trng da trờn vic xp hng c trng s dng k thut Wilcoxon rank-sum test o mc nh hng ca tng c trng lờn mi lp c mụ t hỡnh di õy: Hỡnh 3.1: Mc nh hng ca tng c trng lờn mi lp D liu c t chc theo ma trn, mi ct l mt c trng, mi hng l d liu ca mt mó ngun Cỏc mó ngun thuc lp c xp lờn u tiờn, t n I Cỏc mó ngun thuc lp c xp t I+1 n I+J Chỳng tụi xõy dng 49 Trng i hc S phm H Ni Lun thc s vector Cn v Cv th hin mc nh hng ca tng c trng lờn lp v lp o p-value s c tớnh da trờn vector ny 3.2.2 La chn ng dng thc nghim Trong nghiờn cu ny, chỳng tụi a vo thc nghim cỏc ng dng chy trờn nn web c vit bng hai ngụn ng Ruby v Scala Ruby l mt ngụn ng lp trỡnh hng i tng i cỏch õy khong hn 20 nm, nhiờn khong nm tr li õy mi bt u ph bin ti Vit Nam õy l mt ngụn ng thụng dch, nú s dng h thng kiu ng (dynamic type) Scala l mt ngụn ng lai gia lp trỡnh hng i tng v lp trỡnh hm Ngụn ng ny i t nm 2003, c k tha v phỏt trin t Java kt hp vi tớnh nng ca ngụn ng lp trỡnh hm hin i õy l ngụn ng biờn dch, s dng h thng kiu tnh (static type) 3.2.3 Ngun d liu l hng Chỳng tụi la chn cỏc cụng c phõn tớch tnh a nhón cho d liu hun luyn cng nh d liu kim tra mụ hỡnh ny i vi Ruby, chỳng tụi s dng Brakeman [21] i vi Scala chỳng tụi s dng FindBugs [22] Scala c xõy dng da trờn Java, chy Scala c biờn dch JVM bytecode nờn cú th s dng c FindBugs 3.2.4 La chn thut toỏn hc mỏy Cú rt nhiu thut toỏn hc mỏy khỏc ó c s dng gii quyt bi toỏn d oỏn l hng phn mm nh: Logistic Regression, Naive Bayes, Random Forest, Decission Tree, Support Vector Machine Tuy nhiờn vic s dng thut toỏn no hiu qu ph thuc vo c trng ca d liu cn phõn loi Logistic Regression l mt thut toỏn nm nhúm Regression Algorithms nhng thut toỏn ny c ỏp dng nhiu bi toỏn phõn lp Trong thng kờ v cỏc nghiờn cu trc õy vi bi toỏn d oỏn l hng phn mm (Bng 1.1), nhiu nghiờn cu 50 Trng i hc S phm H Ni Lun thc s cng ó ỏp dng thut toỏn ny Trong nghiờn cu ca Scandariato [17] ó ch rng, thut toỏn Naive Bayes em li hiu qu tt i vi bi toỏn d oỏn l hng phn mm da trờn k thut khai phỏ bn Support Vector Machine l mt nhng thut toỏn ph bin c ỏp dng cho bi toỏn phõn lp Vi d liu cú c trng nh bi toỏn d oỏn l hng phn mm, chỳng tụi tin rng Support Vector Machine s l mt thut toỏn em li hiu qu tt Chớnh vỡ vy, nghiờn cu ny, chỳng tụi s dng thut toỏn Logistic Regresstion, Naive Bayes v Support Vector Machine vo hun luyn mụ hỡnh phõn lp 3.2.5 Phng phỏp ỏnh giỏ mụ hỡnh Chỳng tụi xõy dng ma trn nhm ln nh ó gii thiu Chng vi mi mụ hỡnh thc nghim v a kt qu ỏnh giỏ da trờn i lng Precision, Recall v F1 score 3.3 D liu v tin x lý d liu 3.3.1 D liu Cỏc ng dng web chỳng tụi a vo thớ nghim c lit kờ theo bng: Tờn Ngụn ng lp trỡnh S lng Dung lng MDI Ruby 5069 12MB SANWA Ruby 4617 13.6MB AMIX Ruby 4800 11.3MB SACTORY Scala 239 440KB CAMS Scala 259 642KB Bng 3.1 D liu thc nghim õy l cỏc ng dng qun lý chy trờn nn web Ba ng dng vit bng Ruby l cỏc ng dng ó hon thnh, ang quỏ trỡnh hnh v bo trỡ Hai ng dng vit bng Scala l cỏc ng dng ang quỏ trỡnh phỏt trin 51 Trng i hc S phm H Ni Lun thc s 3.3.2 Tin x lý d liu Bng 3.2 Cỏc bc tin x lý d liu Chỳng tụi tin hnh xõy dng vector c trng i din cho tng mó ngun ca tng ng dng c lp theo cỏc bc sau: Bc 1: Trớch chn c trng t mó ngun T mó ngun ca c ng dng, chỳng tụi vit chng trỡnh nh, s dng k thut n-gram (vi c 5) xõy dng t in cỏc t v cm t cha mó ngun Bc 2: Xõy dng vector c trng thụ Vi mi d liu, chỳng tụi vit chng trỡnh m s lng xut hin ca tng t t in xõy dng bc cú cha d liu ú v xõy dng vector c trng thụ nh sau: - V trớ th i bng nu t/cm t ú khụng xut hin mó ngun - V trớ th i bng k nu t/cm t xut hin k ln mó ngun 52 Trng i hc S phm H Ni Lun thc s Bc 3: Gỏn nhón cho tng vector c trng thụ S dng cỏc cụng c phõn tớch tnh, chỳng tụi a nhón - mó ngun sch, - mó ngun cha l hng cho tng mó ngun Sau ú, chỳng tụi ghộp nhón ny vi vector c trng thụ thu c Bc Bc 4: La chn c trng bng k thut Wilcoxon rank-sum test S dng Octave [23], chỳng tụi vit chng trỡnh ỏp dng k thut Wilcoxon rank-sum test vo xp hng c trng trờn tng nhúm c trng (c chia da vo s lng t ca tng c trng: cỏc t n thuc mt nhúm, cỏc cm t gm t thuc mt nhúm) Ch 1/5 c trng cú hng cao nht c gi li Sau ú, chỳng tụi b sung thờm mt c trng gi l unknown i din cho cỏc t/cm t cú xut hin mó ngun nhng khụng cú t in c trng sau xp hng c trng unknown c xp vo v trớ cui cựng ca vector c trng Sau quỏ trỡnh x lý d liu, vector c trng thu c ca tng mó ngun ca mt ng dng cú cu trỳc nh sau: Bng 3.3 Vớ d v vector c trng ca mt ng dng Vi cỏc phn mm vit bng Ruby, sau quỏ trỡnh tin x lý d liu, chỳng tụi cú vector c trng cho tng mó ngun l khong 12000 chiu i vi phn mm vit bng Scala, s chiu vo khong 8000 3.4 p dng mụ hỡnh v d liu vo thc nghim Vi mụ hỡnh v d liu nh ó trỡnh by trờn, chỳng tụi tin hnh hai thc nghim d oỏn l hng phn mm trờn mt ng dng v d oỏn chộo trờn cỏc 53 Trng i hc S phm H Ni Lun thc s ng dng Chỳng tụi s dng Octave [23] v Scikit-learn [24] cựng cỏc th vin h tr ú vit cỏc chng trỡnh hun luyn mụ hỡnh 3.4.1 D oỏn l hng trờn mt ng dng Vi mi ng dng, chỳng tụi tin hnh thớ nghim theo phng phỏp 10-fold cross validaiton Chia d liu thnh 10 ngu nhiờn, lp li 10 ln thớ nghim, mi ln s dng lm d liu hun luyn, lm d liu kim tra Mi ng dng chỳng tụi ln lt thc nghim qua thut toỏn Naùve Bayes, Logistic Regression v SVM C th cỏc tham s a vo tng thc nghim nh sau: - Naùve bayes: khụng cn tham s a vo - Logistic Regression: p = 0.06 - SVM o S dng hm nhõn linear (Bng 2.1): Khụng cn tham s a vo o S dng hm nhõn polynomial (Bng 2.1): ũ = 18, ĩ = 1, ệ = 39 3.4.2 D oỏn l hng trờn nhiu ng dng Khỏc vi loi thớ nghim trc, thớ nghim ny chỳng tụi s dng ton b d liu ca ng dng A nh l d liu hun luyn Sau ú s dng d liu ca ng dng B nh l d liu kim tra thc hin c thớ nghim ny, chỳng tụi phi xõy dng li vector c trng ca tng ng dng theo c trng ca ng dng c s dng hun luyn mụ hỡnh Do cu trỳc ngụn ng lp trỡnh khỏc gia Ruby v Scala, nờn chỳng tụi ch tin hnh kim tra chộo trờn cỏc ng dng thuc cựng mt ngụn ng lp trỡnh Sau thớ nghim th nht, chỳng tụi thy rng mụ hỡnh d oỏn s dng thut toỏn SVM em li kt qu tt nht, vỡ vy chỳng tụi ch ỏp dng thut toỏn SVM thớ nghim ny 54 Trng i hc S phm H Ni Lun thc s 3.5 Kt qu thc nghim 3.5.1 Kt qu thc nghim trờn tng ng dng Thut toỏn SVM Logistic Regression Naive Bayes ng dng Precision Recall F1 score MDI 91.1% 91.9% 91.4% SANWA 90.9% 89.4% 90.1% AMIX 95.6% 89.3% 92.3% SACTORY 95.6% 90.8% 93.1% CAMS 93.7% 91.5% 92.6% MDI 84.5% 83.2% 83.8% SANWA 83.2% 84.5% 83.8% AMIX 83.5% 82.2% 82.8% SACTORY 85.4% 86.7% 86.0% CAMS 85.2% 88.5% 86.8% MDI 82.8% 92.3% 87.3% SANWA 87.0% 92.3% 89.6% AMIX 89.4% 86.3% 87.8% SACTORY 86.3% 83.4% 84.8% CAMS 80.8% 86.3% 83.5% Bng 3.4 Kt qu thc nghim Vi thc nghim th nht trờn tng ng dng, hiu qu d oỏn ca mụ hỡnh u ln hn 80% c ba thụng s Precision, Recall v F1 score i vi c ba thut toỏn Trong ú, thut toỏn em li hiu qu cao nht l SVM, c ba thụng s u t trờn 89% Hai thut toỏn Logistic Regression v Naive Bayes cng t c hiu qu tt, F1 score t trờn 82% 55 Trng i hc S phm H Ni Lun thc s 3.5.2 Kt qu thc nghim trờn nhiu ng dng ng dng A ng dng B Precision Recall F1 score MDI SANWA 73.5% 71.2% 72.3% MDI AMIX 72.5% 73.5% 73.0% AMIX MDI 72.4% 73.3% 72.8% AMIX SANWA 70.4% 70.4% 70.4% SANWA MDI 71.3% 74.8% 73.0% SANWA AMIX 72.6% 70.4% 71.5% SACTORY CAMS 64.0% 64.7% 64.3% CAMS SACTORY 63.7% 64.5% 64.1% Bng 3.5 Kt qu thc nghim Vi thc nghim th hai, hiu qu d oỏn ca mụ hỡnh c ba thụng s u ln hn 60% Cỏc phn mm vit bng ngụn ng Ruby (MDI, AMIX, SANWA) t hiu qu cao hn (F1 score xp x 70%) Cỏc phn mm vit bng Scala ch t hiu qu khong 64% 3.6 Tho lun Chỳng tụi ó tin hnh thc nghim trờn xỏc nh cõu tr li cho cõu hi: Q1: Mụ hỡnh xõy dng cú em li hiu qu d oỏn l hng phn mm hay khụng? Q2: Vic ỏp dng d oỏn l hng cho cỏc phn mm mi t ngun d liu ca cỏc phn mm c (cựng s dng chung ngụn ng) cú hiu qu hay khụng? Vi thc nghim th nht, hiu qu d oỏn ca mụ hỡnh vi c thut toỏn tng i cao (Bng 3.2) Trong ú, thut toỏn em li hiu qu cao nht l SVM Kt qu ny cú th d oỏn c, bi SVM l thut toỏn phự hp vi d liu nhiu chiu, thut toỏn ny x lý tt d liu cú nhiu hay mt cõn bng Nh vy cú 56 Trng i hc S phm H Ni Lun thc s th thy rng, mụ hỡnh ca chỳng tụi xut em li hiu qu cao vi bi toỏn d oỏn l hng phn mm Vi thc nghim th hai, kt qu d oỏn chộo i vi ba ng dng vit bng ngụn ng Ruby cao hn so vi d oỏn chộo ca hai ng dng vit bng ngụn ng Scala Trong thc t, ba ng dng AMIX, SANWA v MDI cú mó ngun tng i ging nhau, vỡ chỳng cựng l ng dng qun lý bt ng sn, ch thay i phự hp cho tng cụng ty khỏc Ngc li, hai ng dng CAMS v SACTORY hon ton khỏc v mó ngun Hn na, ba ng dng AMIX, SANWA v MDI l cỏc ng dng ó hon thnh, d liu dựng hun luyn ln hn nhiu ln so vi hai ng dng CAMS v SACTORY Tuy nhiờn, kt qu d oỏn chờnh lch khụng quỏ ln Mc dự kt qu d oỏn chộo gia cỏc phn mm thụng qua mụ hỡnh chỳng tụi xut cha c cao, nhng cú th tin tng rng õy l mt hng phỏt trin cho tng lai chỳng ta cú th s dng mó ngun cỏc phn mm c xõy dng mụ hỡnh hun luyn d oỏn cho cỏc phn mm ang c xõy dng Chỳng ta cú th thy rng, nu so sỏnh vi cỏc phng phỏp truyn thng chỳng tụi ó gii thiu Chng thỡ vic ỏp dng hc mỏy vic phỏt hin l hng phn mm l mt xu hng em li hiu qu tớch cc C th, i vi k thut tnh, chỳng ta khụng cn chy phn mm, nhiờn cú th phõn tớch c cn s can thip khỏ sõu ca ngi nh tỡm cỏc pattern gõy li (cn thu thp d liu l hng v ch phõn tớch c vi cỏc l hng ó c bỏo cỏo), hay xõy dng mụ hỡnh c t h thng (mt cụng vic tn thi gian v cụng sc) Cỏc k thut ng cng cn s can thip ca ngi vic cu hỡnh chy phn mm, sau ú phõn tớch kt qu chy thu c Vic ny hin cng tn khỏ nhiu chi phớ cho vic xõy dng mụi trng mu chy phn mm, phn mm thay i, cú th mụi trng chy cng cn c cp nht cho phự hp Ngc li, s dng hc mỏy, chỳng ta ch mt cụng xõy dng mụ hỡnh v hun luyn mụ hỡnh vo thi gian u, sau ú phn mm c phỏt trin, mó ngun c cp nht, chỳng ta cú th s dng mụ hỡnh ó hun luyn phỏt hin l hng phn mm Kt qu d oỏn 57 Trng i hc S phm H Ni Lun thc s l hng i cho vic kim th, giỳp gim chi phớ Cha k vic s dng hc mỏy s cú th tỡm cỏc l hng cha c bỏo cỏo Vi cỏc lý trờn, chỳng ta cú th thy vic ỏp dng hc mỏy vo d oỏn l hng phn mm l mt xu hng tớch cc kim tra phn mm Nu nghiờn cu tt, nú s mang li li ớch ỏnh k 3.7 Kt lun Chng Trong chng ny, chỳng tụi ó gii thiu mt mụ hỡnh d oỏn l hng phn mm da trờn phng phỏp phõn lp, ỏp dng cỏc thut toỏn hc mỏy, k thut khai phỏ bn n-gram v phng phỏp Wilcoxon thu gim chiu d liu nh ó gii thiu chng Chng ny cng mụ t cỏch thc tin hnh thc nghim, ỏnh giỏ cỏc kt qu thu c 58 Trng i hc S phm H Ni Lun thc s KT LUN Trong lun ny, chỳng tụi xut mt mụ hỡnh d oỏn l hng phn mm bng cỏch kt hp k thut khai phỏ bn n-gram, k thut gim chiu d liu Wilcoxon v cỏc phng phỏp phõn lp da trờn cỏc thut toỏn hc mỏy Chỳng tụi chn tng mó ngun l thnh phn phn mm cn d oỏn cú cha l hng hay khụng cng ỏc t, cm t mó ngun c chn l c trng i din cho tng mó ngn S dng k thut phõn tớch n-gram, chỳng tụi ó la chn c trng thng kờ hu ớch cho tng mó ngun ny Kt hp vi k thut Wilcoxon khụng gian vector c trng ó c gim ỏng k Chỳng tụi ó tin hnh thc nghim cho mụ hỡnh xut trờn hai loi ngụn ng lp trỡnh hng i tng v lp trỡnh hm Da trờn kt qu thc nghim, chỳng tụi rỳt kt lun rng mụ hỡnh c xut em li hiu qu phõn lp cao trờn c hai loi ngụn ng chỳng tụi ó chn Tuy nhiờn, kt qu thc nghim cng cho thy vic ỏp dng d oỏn chộo gia cỏc ng dng khỏc cha em li hiu qu cao nh mong mun Vỡ vy cn tin hnh thờm cỏc thc nghim xỏc nhn kt qu thu c lun ny v tỡm cỏch thc iu chnh phự hp ỏp dng d oỏn chộo Ngoi ra, ý tng ca mụ hỡnh ny c a da trờn cỏc thut toỏn phõn lp lnh vc hc mỏy nhng chỳng tụi mi la chn ba thut toỏn da trờn cỏc kt qu nghiờn cu trc ú v t ý kin ch quan ca bn thõn ngi nghiờn cu Do ú, cn tin hnh thc nghim cho cỏc thut toỏn khỏc xỏc nh thut toỏn ti u Vi cỏc hng nghiờn cu tip theo nh trờn, hi vng tng lai chỳng tụi cú th ci tin v a mt mụ hỡnh d oỏn l hng phn mm em li hiu qu cao hn 59 Trng i hc S phm H Ni Lun thc s TI LIU THAM KHO [1] ISO/IEC, "Information technology Security techniques Information security risk management," ISO/IEC FIDIS 27005:2008 , IT Sercurity 2011 [2] The Internet Engineering Task Force (IETF) (2000, May) RFC 2828 [Online] https://tools.ietf.org/html/rfc2828 [3] ENISA [Online] https://www.enisa.europa.eu/topics/threat-risk- management/risk-management/current-risk/risk-managementinventory/glossary#G52 [4] The Open Group, "Technical Standard Risk Taxonomy ISBN 1-931624-77-1," 2009 [5] Sokratis Katsikas, Information Systems Security: Facing the information society of the 21st century London [6] Cigital (2016) Cigital [Online] http://www.cigital.com/its4/ [7] Y Shin, A Meneely, L Williams, and J A Osborne, "Evaluating complexity, code churn, and developer activity metrics as indicators of software vulnerabilities," IEEE Transactions on Software Engineering, vol 37, no 6, pp 772-787, Nov-Dec 2011 [8] Y Shin and L Williams, "Can traditional fault prediction models be used for vulnerability prediction?," vol 18, no 1, pp 25-29, Feb 2013 [9] Y Shin and L Williams, "Is complexity really the enemy of software security?," in The 4th ACM workshop on Quality of protection, New York, NY, USA, 2008, pp 47-50 [10] Y Shin and L Williams, "An empirical model to predict security vulnerabilities using code complexity metrics," in The 2nd ACM-IEEE International Symposium on Empirical Software Measurement, New York, NY, USA, 2008, pp 315-317 60 Engineering and Trng i hc S phm H Ni Lun thc s [11] I Chowdhury and M Zulkernine, "Using complexity, coupling, and cohesion metrics as early indicators of vulnerabilities," Journal of Systems Architecture, vol 57, no 3, pp 294-313, Mar 2011 [12] T Zimmermann, N Nagappan, and L Williams, "Searching for a needle in a haystack: Predicting security vulnerabilities for windows vista," in 2010 Third International Conference on Software Testing, Verification and Validation, Paris, France, 2010, pp 421-428 [13] P Rotella, and L Williams M Gegick, "Toward non-security failures as a predictor of security faults and failures," in The 1st International Symposium on Engineering Secure Software and Systems, Springer-Verlag Berlin, 2009, pp 135-139 [14] V H Nguyen and L M S Tran, "Predicting vulnerable software components with dependency graphs," in The 6th International Workshop on Security Measurements and Metrics, New York, NY, USA, 2010, p [15] B Smith and L Williams, "Using SQL hotspots in a prioritization heuristic for detecting all types of web application vulnerabilities," in IEEE International Conference on Software Testing, Verification and Validation (ICST), Berlin, Germany, 2011, pp 220-229 [16] M Alenezi and I Abunadi, "Evaluating Software Metrics as Predictors of Software Vulnerabilities," International Journal of Security and Its Applications, vol 9, no 10, pp 231-240, Oct 2015 [17] R Scandariato, J Walden, A Hovsepyan, and W Joosen, "Predicting vulnerable software components via text mining," IEEE Transactions on Software Engineering, vol 40, no 10, pp 993-1006, Mar 2014 [18] Chih-Chung Chang and Chih-Jen Lin (2016, Dec) LIBSVM [Online] https://www.csie.ntu.edu.tw/~cjlin/libsvm/ [19] Wikipedia Kernel method https://en.wikipedia.org/wiki/Kernel_method 61 [Online] Trng i hc S phm H Ni Lun thc s [20] X Xue, Y Pang, and A S Namin, "Feature selections for effectively localizing faulty events in gui applications," in 2014 13th International Conference on Machine Learning and Applications, Detroit, MI, USA, 2014, pp 306-311 [21] Brakeman (2016, Jun) Brakeman - Rails Security Scanner [Online] http://brakemanscanner.org/ [22] FindBugs (2015, Jun) FindBugs - Find Bugs in Java Programs [Online] http://findbugs.sourceforge.net/ [23] John W Eaton (1998) GNU Octave https://www.gnu.org/software/octave/ [24] INRIA and others Scikit learn [Online] http://scikit-learn.org/stable/ 62 [Online] ... 12 1.1 Bảo mật phần mềm 12 1.2 Lỗ hổng phần mềm 12 1.3 Dự đoán lỗ hổng phần mềm 19 1.4 Các phương pháp dự đoán lỗ hổng phần mềm có 19 1.5 Mục tiêu... khái niệm bảo mật phần mềm lỗ hổng phần mềm Đồng thời, giới thiệu nội dung toán dự đoán lỗ hổng phần mềm số phương pháp, mô hình có để giải toán 1.1 Bảo mật phần mềm Phần mềm phần tách rời hệ... thuật dự đoán lỗ hổng phần mềm Kĩ thuật đưa thành phần tệp có khả gây lỗ hổng phần mềm giúp định hướng cho người kiểm thử nên kiểm tra phần trước phần mềm Dự đoán lỗ hổng phần mềm toán phân lớp

Ngày đăng: 14/06/2017, 10:40

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan