AN TOÀN BẢO MẬT TRONG CÔNG NGHỆ THÔNG TIN AN TOÀN PHẦN MỀM – LỖI PHẦN MỀM.An toàn thông tin là sự cân bằng của 3 mục tiêu: Bí mật (confidentiability), toàn vẹn (Intergrity), và sẵn dùng (availability).Bí mật (Confidentiability): tài sản chỉ được truy nhập bởi những người có quyền.Toàn vẹn (Intergrity): tài sản chỉ được tạoxóasửa đổi bởi những người có quyền Sẵn dùng (Availability): tài sản sẵn sàng để đáp ứng sử dụng cho những người có quyền
!"#$ !"#" %&'(&)$ $%&"'(&)*+ ,-"."/ &)*01&23 4&5!."6! 7+89:" *$ ;&&"<=";&=8>?@ ABC>ADE +&,+& > /!01232'4*5636 7)62'4*5636 =(F=";&=8GFHI!2JK&!L9E36!=8+)MN3O=?!(P8QR=89J8G8=*@S=(FTU ?=R&8=*@STFHVQW&?9T98G9J8G8=*@ X (Confidentiability): tài sản chỉ Y$Z!=)*"O[J\8"]&&$^8!_`)*a X (Intergrity): tài sản chỉ Y$Z!=b(cd_9cHe9Yf8J\8"]&&$^8!_`)*a X (Availability): tài sản sẵn HF&YgY#[ &HeQ6&!"("]&&$^8!_`)*a ! &=h&_!"-!L9&$^8GO[=-"T8+ST8<!d#!Yi"Y$Z!3j=["3a3S3j=="F" ["["3a3GFY'3J'(Y$Z!=N"9=(F=";&=8GFT8<!d#!Yi"["3a3!_Y'3J'( Y$Z!EYk!=N"=+3j=!#!"!2JK&"l="9*m";& 8. 9*5636 _3j=HI="I!GF["3a3F(Y$Z!GF39!,&!_G48748["3a3!_"8a)G(b8_ "]&G48=";&="$^&Sm";&'""$\&Yn=N"9=(F!L9["3a3_"]&G48Gb8&2* '""$\&&"8+3=5&S!_="gJimodl)GZ8Q6&Ygm"98="#!2*GF"]&G48["3a3 m"8n!"(3j="9*3j=TF8=N"!"l=mg=+JiT8["b3 E "#$%&'()!*+' -"=+GF3j=HpTNQ6TaG48["3a3":;:&'GFG(b8G48!_="gm"8nmodl)GZ8 Q6&Yg!"q3rYj!S`)9Y_="I!="83rYj!S!"8n3`)*aY8a)m"8g"(k!="I!"8<!#!="9( =#!=#8["s[Tpm";&YL="t3`)*aYg="I!"8<"_3G48F*T8["b3=N"=(FTUTF=N" J'(3O=!L9"<="p& !<":2'GF3j="-"=" !=l!;&=h!"p8Qi!"T6S=l!;&TF(["3a3\uRJ HRTR2*GFG(b8=l!;&&e83j=Hp!#!&_8=8[8&3RHH9&R!_["j8Q)&l=Gv=v8uRJ HRTRQI9=+&89(=" !w.."3a3\HRTRm"8"OY$Z!&_8=8F*HxdeGyJiG48 &2*YfTz!"$%&=-"hY_&$^8QW&"Z[G<m";&=)*"O[Y$Z!TF(=F8&)*+!="8n= 748F*T8["b3=N"HVQW& =:>?2GF3j=Rd=RH8(!L9["3a3CHRTR!L9w@h&JiG48TFJim"98="#!S m"8n3!"8n3`)*aY8a)m"8gHRTR7F33l==N"JN3O=TF=(FTU _="g="l*GF"8a)G(b8G489={9["3a3m"#!"9)S=)*"8+=(&JF8=-"JF*F* !"|=O[=)&TF(EG(b8G48["3a3!fY8gTF="$^&&k[GFM X 748=FJjY<3 X 748m";&Y*YL X 748Y1&Jj 8. @'AB,9*5636'C!!D* 8 9'E4>@F)6 8 /!0123,9'E4>@F)6 748=FJjY<3!_=")O=&]=8n&"GF“Buffer Overflow. jY<3Y$Z!Yi"&":9GF3j= TW&"vG8+=6!!_mN!"="$v!&8v8"bjY<3="$^&QW&=(&GF3j='&jY<3Y$Z! HeQ6&YgG$)=]!#!&8#=i=b3="^8!L93j=d2)["6!T6!"(`)#=-"deGy FJjY<3Y$Z!"8g)3j=!#!"Y%&8'GFT8<!H9(!"s[3j=Y(bQ]G8<)!_mN!"="$v! GvTF(3j=JjY<3!_mi!"="$v!"}3Fm";&="I!"8<="9(=#!m8g3=9Q~=v8TW&"v ["N9H9)JjY<3Ji&"8YqSTW&"vF*!_="gGb8GF3j=JjY<3m"#!"(k!GFTW&"v!L9"< ="p&O)`)'!L9`)#=-"F*GFGF3!"(!"$%&=-""59=Yj&m";&!"N"d#!"(k!JiYf Tz 748=FJjY<3!_="gJimodl)m"98="#!Yg="I!"8<"]&36!YN!"dl)odl)"9{ =(F!_="g!"q3rG<"TF(3j=!"$%&=-"!_&)*!%Ji=FJjY<3TF="I!="83rG<" Y_)"n=!#!T8)H"9*H2)["#==#=+Q8<j&Ya)m"98="#!="R(G48F*_!_="g!"L Yj&["#==#3Fm";&!HI!9="8<[!L9&$^8QW&?&8p&"$T8)HG2*P8GR="$^&="I! "8<GF!!_HI="9(=#!!L9&$^8QW&@odl)m"8Yrm"98="#!Y$Z!G48F*!_="g="I!"8< l="8a)="9(=#!m"#!"9)"$3\!f&Yg!"8n3`)*aY8a)m"8gTFY8a)m"8g=hd9S!F8Yk= • 3j=J9!mQ((G+HRTRSYk=["3a3&8#Y8<[(€9"9*!F8mR*G(&&RYgGl*!•[=F8m"(' !L9&$^8QW& ."b3T8'""$\&!L9G48=FJjY<3=W*=")j!TF(`)*a!L9&$^8QW&Y‚&"O[TF( "<="p&_=$^&"Z[modl)=)*m"98="#!Y)Z!G48F*"]&m";&GF3Y$Z!&-"$&!,& !_"]&=$^&"Z["O)`)'GFT;!W&&"8+3=5&NQ6!#!Qi!"T6"<="p&"$.C R3(=R.(!RQ)R9GGHGF!#!8Q!"€T6`)9=5&!L9"<="p&!L9u8Q(u#!Qi!"T6 F*Y$Z!!"b*=IYj&Q$v8`)*a!L9)HRƒwC3j=)HRt!L9"<="p&!_`)*a!9( =(&"<Y8a)"F"n)Qi!"T6F*JiYfTzS"<="p&Hx&h&"(b=Yj& jY<3!_"98!#!"=f!" !G$)=]Y_GF=+H=9!m?QW&YgG$)!#!J8n=:"@TF"R9[?G$) !#!J8nY$Z!!l[["#=Yj&=";&`)9!(=}@„(Y_=FJjY<3!,&!_"98G(b8m"98="#! m"#!"9)M X FH=9!mM o "8YqG+Y89!"|='Ta!L9"F3M2*GF3j==(&"]&m:=")O=!%J'"l=!L9 =FJjY<3…=$\&!L9["$%&["#[m"98="#!F*Y_GF&"8YaG+Yi9!"|='Ta !L9"F3K3=(&H=9!m(&=$^&"Z[Gy=$\&S"F3="9*T-=\TaG<"=8n[ ="R(H9)G^8&58"F3S_Hx"'*=v83rG<"3Fmodl)3(&3)pS`)9Y_="I!"8< Y(b3rdl)Y_ o "8YqG+ƒ?=)!=)RQƒd!R[=8(9QG8&@ƒGF!l)=/!`)'GyRd!R[=8( =(&u8Q(u_!" 9!#!!(=}=}=v8!#!"F3deGyRd!R[=8(m"8!_Rd!R[=8( d'*9NQ6"$=";&J#(&(b8G<F*G+3F"-":=")O=m"98="#!F*Hx!p &•&&"8YqG+!#!!(=}F*Yg=}=v83j="F3="I!="8dl)TF&2*9Rd!R[=8( =$%& &†)9Y_="I!"8<Y$Z!Y(b3r="I!="8dl) X FR9[MF"R9[GFm:=")O=m"98="#!m"_"%TF\3 !Yj!9("%wj=Hpm:=")O= "8<9*m"98="#!J9(&13&"8YqG+!(=}=}=v8"F3=Gƒ=R8=8!9GR!=8(=(&.ƒ "9*&"8YqG+"9QRQƒd!R[=8(9QGR (&["b3T8!L9JF8T8n=S"_3!"|d8=-"JF*TF(m:=")O=!%J'"l=GF"8YqG+Yi9 !"|='Ta!L9"F3=(&=FH=9!m 8 8. @'ABG"+'(&'H3'E4>@F)6 748=FJjY<3Y$Z!m"98="#!=+Q8<j&TFY$Z!!;&Jp"F&&F*=+!#!=9& uRJH8=RJ'(3O="$38Gu(3!(3SHR!)89(&SHR!)8=*P(!)H‡#!T8)H"9*H2)3)p["#= =#=+Q8<j&="$^&HeQ6&!#!"F* 2)G9H=R!{Y$Z!&58GF7(TH9"9*7(TRH9Y$Z!["#==#TF("18="#&ˆ‚3>AAES =+!#!"<="p&3#*!"b*"<Y8a)"F"‰8Q(uHŠ.TF‰8Q(uHHRTR>AAA!L9w8!(H(P= _Y$Z!["#="8<TF(&F*DDcAˆc>AAETF!_=p!YjG2*"803=‚&QYnY|"Y8g3TF(&F* DEcAˆc>AAEw6!YN!"!L9H2)F*GF=l!;&=h!"p8Qi!"T6=9&uRJu8Q(uH)[Q9=R!(3 2)F*GZ8Q6&G4"f&=FJjY<3=(&&89(=" !„w.Yg["#==#‹BŒ B wj=TNQ6m"#!!L9G48=FJjY<3GFG4"f&=(&!" !‚&9TRH!L9((&GR"(3R ["8+J'A>DD••>Ž2*GF3j==(&"]&["8+J'Y)=8+!L9((&GR"(3RY)Z! Y$99="i=$^&TF(="#&•‚3>AAˆ)*"8+["8+J'F*=1=b8G4"f&=FJjY<3m"8 H9TR3j=T‚J'l=Gvodl)!_="gGZ8Q6&!"q3rYj!TF("]&=9&uRJH8=RYg!"/& Y$Z!="I!"8<m"8&$^8QW&9TR"]&=9&uRJF*Ta3#*!L93-"748F*Y$Z!7+ !"C3j=H8"T8+!L9=$^&Yb8"5!#!""(9Fj8m"8Y_["#="8<9-"Q$v8 3;='=";&=8TaG48F*Y$Z!!;&Jp=+R!)8=*•(!)H!(3 ,# -()!.$/012(33 8 I. J&K'&L2,9'E4>@F)6 Šs=3j=TNQ6Y%&8'"$H9)M =398?@ • =99*‹BŒ‘•DS>SES•SB’“ .8=P?”•Q–—S99*‹BŒ@“ ’ "8="I!"8<J8+Qi!"!"$%&=-"F*"(F=(Fm";&!_G48)*"8+Y8a)&-d'*9 m"8!"$%&=-"Y$Z!="I!"8<<="p&Hx="I!"8<H98Q(["=e99*‹BŒm";&!_=(& 3'&99*Y$Z!m"98J#(["N9=+"$%&=-"F*!" &=}K&=-"J8+Qi!"m";&"a m8g3=9Y8a)m8<J8+!L93j=3'& 2*&8^!"/&=9dR3ds=Jj"vY$Z!=f!" !"$="nF(+3#*=:"dˆ˜?E>J8=@!#! ="9"&"8!_YjQF8E>J8=.!_="g`)'GyY$Z!=p8Y9™wYi9!"|(&Y_>Yi9 !"|!9(=hˆAAAAAAAYn••••••••HxY$Z!QF"!"("2!L9"<Y8a)"F"TF!#!!l)=/!Q] G8<)Q)*=-"59=Yj&!L9"<="p&W&Q]G8<)=hAAAAAAAAYnŽ•••••••HxQF"!"(!#! &Q6&["3a3HeQ6&Yg!$–&* 9j8Q)&!L9P8GRRdRY$Z!b[TF(SH=9!m!L9!"$%& =-"!" 9!#!J8nY$Z!m"98J#(=N""83j=!"$%&=-"Y$Z!!"b*S"<="p&Hxb[={9Jj ˜ Sep 05 2008 !"#$%%&' Discoverer:()*#+,-.% Descripon : ,$%%&'%//&$/'"/%&00 1 %%%2"%&'&34&5&%6,7(89&2 &.*$/!" /.%&2%$1:.&;&$%&'/ '& <=:2>>"""%&'1>%>>? Sep 05 2008 !"#$%%&' Discoverer:()*#+,-.% Descripon : ,$%%&'%//&$/'"/%&00 1 %%%2"%&'&34&5&%6,7(89&2 &.*$/!" /.%&2%$1:.&;&$%&'/ '& <=:2>>"""%&'1>%>>? P8GR"i["2TF(TW&Yi9!"|J•=Y)GFAA•AAAAA-"Q$v8="g"8<=f!" !Jj"v=(&"< ="p& 4567.$8 8n[="R(S!"/&=9=-3"8g)Yn`)#=-"&58"F3!L93j=!"$%&=-"=(&"<="p& -"Q$v83;='`)#=-"F*8'He3j=!"$%&=-"Y$Z!b[TF(=(&Jj"vTFY9&="I! "8<Yn!2)G<"=" B(&"<Y8a)"F"!_="9"&"8.?H=)!=8([(8=R@GF="9"&"8 !" 9Yi9!"|!L9!2)G<"Y$Z!="I!"8<=8n[="R("8!2)G<"=" BY$Z!="I!"8<<Y8a) "F"Hx!l[["#=3j=H=9!mP93R3v8Yg="I!"8<!"("F3PY$Z!&58(&P93RF*!_ 3j=Hp="F"["=)*"8+`)9=5&"l=GFJ9="F"["M Ž 9:;!7<= X ƒMR=)T9G)RM!" 9Yi9='TaH9)m"8"F3PY$Z!="I!"8<d(& X 7$)Gb8.?=9!m[(8=R@M.GF!(=}HeQ6&=(&H=9!m8<!G$)Gb8.&8/[T8<!`)' GyJj"v=:"=(&H=9!m!L9"F3&58!"N"d#!m"8"F3P="I!"8<d(& X )PPRMjY<3Y$Z!!l[["#=!"(!#!J8n=(&"F3P?="93J8nS="93Hp@ +!b"T8<!!l[["#=3j=H=9!mP93RS="9"&"8.!,&!" 9j8Q)&GFYi9!"|Y)=8+ !L9Y(bJj"v!" 9j8Q)&"F3P8n[Y_"F3PY$Z!="I!"8<"8='mn=`)'TaS=9!m P93RY$Z!!l[["#=HxY$Z!&8'8["_&"9"&"8.HxGl*&8#=i!L9ƒS!#!="9"&"8. Y$Z!["6!"18hY_!")tJi="I!"8<!2)G<"=8n[="R(GF!2)G<"=" ˜=(&!"$%&=-" !"N" >?!.$/0@!/A/BC-' 7Z8Q6&!#!"=" !"59=Yj&=+Smodl)!_="g&"8TF(j8Q)&!L9J)PPRTv8mN!"="$v! l=Gvm"8nJjY<3Ji=FH9(!"(=b8Y(b"v!" 9ƒHxJi&"8YqG+&8#=i=W&Tv8Yi9 !"|!L9Y(b3rYj!"$TO*Sm"8"F3PY$Z!="I!"8<d(&S="9"&"8.Hx"O&8#=iGF Yi9!"|!L9Y(b3rYj!="9*T-Yi9!"|!L9!2)G<"=" ˜=b8"F3&58!"$%&=-"2)G<" =8s[="R(Y$Z!="I!"8<HxGF!2)G<"Y)=8+!L9Y(b3rYj! ˆ 8.8. 9MN!F5OFL 8.8 /!0123,9MN!F5OFL 748m";&Y*YL!_=")O=&]=8n&"GF“Incomplete Mediation.748m";&Y*YLGFG48 G8+`)9!"k=!"xYn!#!&8#=iY)TF(!L9!"$%&=-"["3a3TF="$^&Y$Z!Yi" &":9J\8"]&&$^8QW&Jl=m-?m"_!_="g=8=$\&Y$Z!@#! &Q6&uRJGF3j==(& "]&TNQ6Y8g"-"!L9"_3!"$%&=-"["3a3F*NQ6Sm"8Y$Z!*+)!)"O[3j= Yi9!"|R398GS&$^8QW&!_="g"O[!#!&8#=i"$89&š!9H9999!92*m";&["'8GF3j= Yi9!"|R398G"Z[G<wj=!"$%&=-"["3a3!["'8m8g3=9Yg!"•!!"•K&&$^8 QW&Yr"O[&8#=iY)TF(GF"Z[G<hY_S"]&*+)!)!L9&$^8QW&3v8!_y&":9GF Y$Z!="I!"8<3j=!#!"Y/&Y•†)#=-"m8g3=9F*&58GF3RQ89=8( 748m";&Y*YLd'*9m"83F3j= &Q6&["3a3!"l["O"]&&8#=iY)TF( m";&!"N"d#!?Ta3k=m8g)Q]G8<)SYi"Qb&Q]G8<)Sj8Q)&TT@S†)9Y_!"$%&=-" ["3a3F*Hx="I!"8<m";&!"N"d#!NQ6"$m"8Y$Z!*+)!)"O[HpY8<="(b8S &$^8QW&="9*T-"O[HpBD•ˆˆ˜•B˜Ž="-Gb8"O[&8#=iBD•Xˆˆ˜X•B˜Ž2*GF3j=&8#=i "O[TF(!_y&":9"$&Gb8m";&Y/&Yi"Qb&_="gm"8n!"(["3a3deGym";& !"N"d#!‹DDŒ (&G48m";&Y*YL!"/&=9=O[=)&=-3"8g)TF(!#!&8#=iY)TF(m";&!"N"d#! J9(&13M X ";&Y/&Yi"Qb&M„?Q9*(PJ(@MD•ˆAXA•XED X ";&!_y&":9M„"O&8#=iDˆŽ˜XDAXD>wj=&$^8Y9&Hp&"8<=b8m";&="g!_ &F*H8"TF(‚3DˆŽ˜ X ";&Y1&"l=Tv8!#!&8#=im"#! „(Y_S=(&="I!=nSYg["{&!"p&G48m";&Y*YLSYk!J8<=Tv8!#!["3a3auRJS !"/&=9["'8#[Q6&m8g3=9&8#=i!L9J8n=b8!'"98["N9!G8R=TFHRTR"$%&=-"["'8 m8g3=9Yp8Tv8!#!Q]G8<)Y$Z!"O[J\8&$^8QW&+!b"Y_!"$%&=-"["'8m8g3=9 T8<!&$^8QW&!_Y8a)!"|"Q]G8<)"9*m";&Yp8Tv8!#!=b&="#8Y$Z!&$^8QW&G$)Gb8 8.8.8. PG"+'(&'H3,9MN!F5OFL Šs=3j=TNQ6Y%&8'M "9J)P‹ˆAŒ“ (8QT)GR9JGR?@• =GR‘R9Q›8=›P(3›R=u(m?@“ "9œ[‘R9Q›H=8&›P(3›R=u(m?@“ P?GR•H8žR(PJ)P@• ƒ(?”GR&="=((G9&R—@ R=)“ • ’ wR3![*?J)PS[SGR@“ ’ (&TNQ6F*S"F3T)GR9JGRGF3"8<3T6Y5!3j=Y(bQ]G8<)=hJj"vTF(J)PTv8 YjQF8"O[=hJF["N3Šs=!2)G<"R9›8=›P(3›R=u(m?@ŸF&&8#=i!L9GR3j=!#!" G(&8!["'8"O&8#=iQ$%&)*"8+T8<!"O&8#=i=h3b&"(F=(F!_="gd'*9=$^& "Z[&8#=iF*GF3j=Hp23!_Q]G8<)Y$Z!&e8=v8=h&$^8QW&m";&Y#&=8"(k!Q]G8<) JiH98Q(`)#=-"=)*a=8=+3b&"8Y_!2)G<"3R3![*HxG);Y$Z!="I!"8<"8 F*GRY$Z!s[m8g)H9&"F"Hp&)*+m";&Ql)="-3j=Hp23Hx="F"3j=Hp&)*+l= Gv„(Y_!"$%&=-"Hx="I!"8<H98S="O3!"N"<="p&!_="gYfTz Šs=3j=TNQ6m"#!=(&="I!=n"8&H!(3GFuRJH8=R=h&3•!G48F*‹ŽŒ=(&3j=G8m Yk="F&"$H9)M 78mYk="F&=+="8&H!(3 "==[Mccuuu="8&H!(3c(QRcP89G !)H=„‘DAD [9=‘BBB `*‘>A [8!R‘DA H"8[‘J(9= H"8 [!(H=‘B =(=9G‘>AB "==[Mccuuu="8&H!(3c(QRcP89G !)H=„‘DAD [9=‘BBB `*‘>A *E&:Q- H"8[‘J(9= H"8[ !(H=‘B ''2,Q8R 78mF*3k!QW!" 9!#!=";&=8TaYk="F&S="9"=(#"$&Gb8m";&m8g3=9Gb8&8# =i!L9Y%"F&¡Y2*!6="gGFm";&m8g3=9Gb8!#!&8#=i&8#J#=$%& &Tv83r3k= "F&odl)!_="gGZ8Q6&YgHe9Gb8&8#=hDA™="F"D™Tv8!#!=";&=8Yk="F&=$%& & †)9Y_&8#3)9 DAH'["t3!"|!{>B™="9*T->AB™=(&="I!=n748F*Yrm"8n ="8&!(3H="8<="b8k&m"8!"$9["#="8<9 8.8.I. J&K'&L2,9MN!F5OFL "$Yr=-"JF*=(&"98["=+SG48m";&Y*YLTaJ'!"l=GFm";&m8g3=9!#!&8# =iY)TF(3j=!#!""Z[Gy748m";&Y*YLd'*9m"83F3j= &Q6&["3a3!"l["O "]&&8#=iY)TF(m";&!"N"d#!?Ta3k=m8g)Q]G8<)SYi"Qb&Q]G8<)Sj8Q)&TT@748 m";&Y*YL!_="g["{&!"p&JK&T8<!m8g3=9m:=l=!'!#!&8#=iY)TF(!_["W"Z[Tv8 *+)!)!L9"F3Y$Z!&58"9*m";& 8.I. 9FS!>@ 8.I /!0123,9FS!>@ 748Y1&Jj?*!"(8ž9=8(@S=(&G:"TI!["3a3!{Y$Z!&58GF?=83R =(!"R!m=(=83R(P)HR@SGF3j=Gv[G48["3a3&2*9J\8HI="9*Yf8"<="p&&8]9T8<!m8g3 =9?!"R!m8&@3j=Y8a)m8<F(Y_?TNQ6"$3j=!" &!"|J'(3O=@TFT8<!HeQ6&!#!mn= `)'m8g3=9Y_ "98="#!3j=Y8a)m8<Y{8"}8="^8&89!"N"d#!Yg!"•!!"•K&!#!"(b= Yj&!"qTF(!L9mo=l!;&Y/&Tv8!#!b"2(&TNQ6=+Smo=l!;&["'8="I! DA [...]... testing) Đảm bảo an toàn phần mềm thông qua kiểm định hình thức (formal verification) Đảm bảo an toàn phần mềm thông qua lập trình an toàn (secure coding) Phần dưới đây, người viết xin trình bày cụ thể về ba phương pháp này 3.1 Kiểm thử phần mềm Kiểm thử phần mềm còn gọi là software testing là một phương pháp phổ biến được thực hiện nhằm đảm bảo an toàn phần mềm Kiểm thử phần mềm có thể được... lỗi phần mềm cổ điển, đơn giản là lỗi tràn bộ đệm, lỗi không đầy đủ và lỗi đồng bộ Trong phần tiếp theo này, người viết xin đề cập đến vấn đề làm thế nào để đảm bảo được an toàn phần mềm Có nhiều biện pháp đảm bảo an toàn phần mềm khác nhau Tuy nhiên có thể phân chia ra thành ba nhóm biện pháp như sau: 12 - Đảm bảo an toàn phần mềm thông qua kiểm thử phần mềm (software testing) Đảm bảo an. .. Hình dưới thể hiện ba hướng tiệp cận cơ bản trong kiểm thử phần mềm: Hình 8:Kiểm thử an toàn phần mềm [4] - Lập kế hoạch kiểm thử và thực hiện kiểm thử: Giống với quá trình kiểm thử phần mềm thông thường qua các bước kiểm thử như: o Kiểm thử đơn vị (Unit Testing): Phần lớn các phương pháp thiết kế phần mềm đều dẫn đến chia phần mềm thành những mô- đun hay chương trình nhỏ... tác (lấy thông tin, sửa đổi thông tin) của một đối tượng phải thông qua các phương thức đối tượng đó cung cấp hay thông qua các giao diện (interface) Sử dụng tính đóng gói có thể che dấu được thông tin về cách cài đặt, thông tin dữ liệu nhạy cảm, hạn chế Từ đó giảm thiểu được những truy cập không kiểm soát được, những thay đổi vô tính, thay đổi không cần thiết, giảm thiếu được lỗi phần mềm... đủ để lập 19 - trình là một quy tắc quan trọng trong lập trình an toàn Quy tắc này đảm bảo được kẻ xấu dù có lợi dụng được một đoạn code lập trình không an toàn thì cũng không thể tiếp tục lan ra thực hiện những thao tác xấu khác do không có quyền truy nhập bị hạn chế Có chiến lược kiểm tra an toàn phần mềm: Trong các dự án phần mềm, kiểm thử an toàn phần mềm thường không được coi trọng... xác trong khoảng thời gian nhỏ, nhưng kẻ tấn công vẫn có khả năng thực hiện được Vấn đề ở đây là người lập trình viên không thể chắc chắn được là hệ thống có thay đổi hay không giữa hai câu lệnh access và open Có thể gây ảnh hưởng với việc kiểm tra truy nhập Kẻ tấn công có thể lợi dụng để chiếm quyền điều khiển hoặc thực hiện thao tác bất hợp pháp 3 Các biện pháp an toàn phần mềm Trong phần. .. Testing): là việc kiểm tra đảm bảo chất lượng công nghiệp của phần mềm Nó tập trung vào việc khách hành cần làm gì để cài đặt và thiết lập phần mềm mới thành công Quá trình kiểm thử có thể bao gồm đầy đủ, một phần hoặc nâng cấp cài đặt/gỡ bỏ cài đặt các quy trình Phân tích tĩnh: Là quá trình phần tích phần mềm dựa trên mã code: Bao gồm code scanning (quét mã nguồn dựa trên các công. .. dung vào /etc/passwd Nếu như kẻ tấn công biết được nội dung ghi vào, có thể lợi dụng để vượt quyền 11 Hình 7: Ví dụ về lỗi đồng bộ[12] Trong ví dụ này, kẻ tấn công có thể khai thác các điều kiện giữa các truy cập và mở để lừa các nạn nhân setuid vào ghi đè một thông tin truy cập trong cơ sở dữ liệu mật khẩu hệ thống, lỗi này có thể được sử dụng để leo thang đặc quyền, để có được truy cập... lặp E thì mệnh đề {A} sẽ bất biến đối với P trong điều kiện E, tức là {A,E}P{A}, kết thúc vòng lặp ta có mệnh đề {A,!E} Lúc này ta viết: {A} while E do P; {A,!E} 3.3 Lập trình an toàn Trong phần 3.1 và 3.2, nhóm đã trình bày hai biện pháp để xác định tính an toàn của phần mềm, chương trình phần mềm Hai phương pháp này đều được thực hiện sau khi phần mềm được phát triển, và đã hình thành... thiên về xác định phần mềm có hợp lệ hay không Biện pháp thứ ba nhóm trình bày trong phần tiếp sau đây là biện pháp được tiếp cận từ hướng người lập trình viên – những người phát triển phần mềm Hướng tiếp cận này dựa vào việc lập trình an toàn của người lập trình viên, qua đó giảm thiểu lỗi phần mềm có thể xảy ra đối với hệ thống Xét trên khía cạnh nào đó, lập trình an toàn là một . J&K'&L2,9'E4>@F)6 Šs=3j=TNQ6Y%&8'"$H9)M =398?@ • =99*‹BŒ‘•DS>SES•SB’“ .8=P?”•Q–—S99*‹BŒ@“ ’ "8="I!"8<J8+Qi!"!"$%&=-"F*"(F=(Fm";&!_G48)*"8+Y8a)&-d'*9 m"8!"$%&=-"Y$Z!="I!"8<<="p&Hx="I!"8<H98Q(["=e99*‹BŒm";&!_=(& 3'&99*Y$Z!m"98J#(["N9=+"$%&=-"F*!". !"$="nF(+3#*=:"dˆ˜?E>J8=@!#! ="9"&"8!_YjQF8E>J8=.!_="g`)'GyY$Z!=p8Y9™wYi9!"|(&Y_>Yi9 !"|!9(=hˆAAAAAAAYn••••••••HxY$Z!QF"!"("2!L9"<Y8a)"F"TF!#!!l)=/!Q] G8<)Q)*=-"59=Yj&!L9"<="p&W&Q]G8<)=hAAAAAAAAYnŽ•••••••HxQF"!"(!#! &Q6&["3a3HeQ6&Yg! $–& amp;* 9j8Q)&!L9P8GRRdRY$Z!b[TF(SH=9!m!L9!"$%& =-"!" 9!#!J8nY$Z!m"98J#(=N""83j=!"$%&=-"Y$Z!!"b*S"<="p&Hxb[={9Jj ˜ Sep. &!"|J'(3O=@TFT8<!HeQ6&!#!mn= `)'m8g3=9Y_ "98="#!3j=Y8a)m8<Y{8"}8="^8&89!"N"d#!Yg!"•!!"•K&!#!"(b= Yj&!"qTF(!L9mo=l!;&Y/&Tv8!#!b"2(&TNQ6=+Smo=l!;&["'8="I! DA "8<!#!!)j!&58"<="p&G8+mn==$Z&=$&!"N"d#!&8]9!#!accessTFopen"(!)j!=l !;&!")&"l=Smo=l!;&["'8Y$Z!G+mn"(b!"Yg="I!"8<H9)348"(b=Yj&!L9&$^8 Ji"b8S!{Y$Z!&58GF"single – stepping” ¢=")O=QW&3j=J$v!3j=!"$%&=-"b"2J9(&133+!)&"<="p&=O[=8TF !#!!)j!=l!;&["