一、填空題
1.?軟件安全中,軟件安全測試和開發(fā)過程包括:軟件安全(??)、軟件安全(??)、軟件安全(??)、軟件安全(??)、軟件安全(??)。
- 我的答案:
- (1) 需求分析
- (2) 設(shè)計
- (3) 編碼
- (4) 測試
- (5) 部署
2.?網(wǎng)絡(luò)空間包含電子設(shè)備、基礎(chǔ)設(shè)施、應(yīng)用、數(shù)據(jù),還有(??)。
- 我的答案:
- (1) 人
3.?網(wǎng)絡(luò)安全框架的核心PDRR模型中,P指(? ? )、D指(? ?)。
- 我的答案:
- (1) Protection
- (2) Detection
4.?Win32系統(tǒng)中,進(jìn)程空間按功能分為4個區(qū)域,從低地址到高地址依次為()、()、()、()。
- 我的答案:
- (1) 棧區(qū)
- (2) 堆區(qū)
- (3) 代碼區(qū)
- (4) 數(shù)據(jù)區(qū)
5.?棧增長方向是從()地址到()地址;堆增長方向是從()地址到()地址。
- 我的答案:
- (1) 高
- (2) 低
- (3) 低
- (4) 高
6.?數(shù)據(jù)區(qū)存儲()變量和()變量。
- 我的答案:
- (1) 全局
- (2) 靜態(tài)
7.?緩沖區(qū)溢出指向緩沖區(qū)寫數(shù)據(jù)時,沒有做()檢查,緩沖區(qū)的數(shù)據(jù)超過預(yù)先分配的(),使得一簇數(shù)據(jù)覆蓋在合法數(shù)據(jù)上引起的系統(tǒng)異常。
- 我的答案:
- (1) 邊界
- (2) 邊界
8.?下列程序的的運(yùn)行結(jié)果是(),如果不相等,第二空填寫修改后的判斷語句(不敲空格,不敲結(jié)束的分號),如果相等,第二空填無。
char *s1="abcd";
char s2[5];
strcpy(s2,s1);
if(s1==s2){
printf("equal!");
}
else{
printf("not equal!");
}
- 我的答案:
- (1) not equal!
- (2) if(strcmp(s1,s2)==0)
9.?補(bǔ)充for循環(huán),實(shí)現(xiàn)任意元素數(shù)組的遍歷打印,填寫完整的for()語句,不加任何空格。
int a[]={..............};
for(int i=0; )
{
System.out.println(a[i]);
}
- 我的答案:
- (1) for(int i = 0; i < a.length; i++)
10.?定義數(shù)組,使用下列語句對嗎?對則回答對,不對則修改該語句,語句中不加空格。
int *a=new int(10);
- 我的答案:
- (1) int*a=newint[10]
11.?下列語句,根據(jù)注釋填空,不敲空格。
Obj * obj=new Obj[10];
delete //釋放
OObj * obj=new Obj(10);
delete //釋放
- 我的答案:
- (1) []obj
- (2) obj
12.?下列程序有無漏洞,無則填無,有則把該代碼行拷貝到答案中。
void foo(const char *s){
}
void main(int a, char *v[]){
static char buf[10];
static void(*p)(const char * s);
p=&foo;
strncpy(buf,v[1],strlen(v[1]));
(void )(*p)(v[2]);
}?
- 我的答案:
- (1)?strncpy(buf,v[1],strlen(v[1]));
13.?下列代碼有錯嗎,無則填無,有則把錯誤行修改填入空中。
class Foo{
private:
int id;
char * name;
public:
Foo(int i){
id=i;
name=new char [20];
}
~Foo()(
delete []name;
}
};
void delete_object(void * p){
delete p;
}
int main(){
Foo * f=new Foo(100);
delete_object(f);
}
- 我的答案:
- (1) delete f;
14.?下列程序打印出的結(jié)果分別是什么?
unsigned short int a =32768;
short int i=a;
printf("%d",i);
a=65535;
i= a;
printf("%d",i);?
- 我的答案:
- (1) -32768
- (2) -1
15.?下列程序打印的結(jié)果是什么?
int bigint=2147483647;
printf("%d",bigint++);
unsigned int z=0;
printf("%d",--z);
- 我的答案:
- (1) 2147483647
- (2) -1
16.?程序的打印結(jié)果是什么?
unsigned int i=ULONG_MAX;
int c= -1;
printf("%d", c==i);?
- 我的答案:
- (1) 1
17.?下列程序的打印結(jié)果是什么?如何修改(只改一句)?
unsigned short s=4;
while (--s >=0)
{
printf("%d",s);
}
- 我的答案:
- (1) 無限循環(huán)
- (2) while(--s>0)
18.?在32位系統(tǒng)中,size_t相當(dāng)于類型???????最大值是???????
- 我的答案:
- (1) unsigned int
- (2) 4294967295
19.?下列代碼有漏洞嗎?把有漏洞的行進(jìn)行改正,每一句改正的代碼填一個空。
char s1[5];
char s2[5];
char s3[10];
strcpy(s1,"12345");
strcpy(s2,"abcde");
strcpy(s3,s1);
strcat(s3,s2);
cout<<s1<<endl;
cout<<s2<<endl;
cout<<s3<<endl;
- 我的答案:
- (1) char s1[6]
- (2) char s2[6]
- (3) char s3[11]
20.?下列代碼段有漏洞,把有漏洞的行進(jìn)行改正,每一句改正的代碼填一個空。
char s[10];
puts("input a string:") ;
gets(s);
cout<<s<<endl;?
- 我的答案:
- (1) fgets(s,sizeof(s),stdin);
21.?下列程序有漏洞嗎?第幾行的程序有漏洞,問題在哪里?(把有漏洞的語句粘貼在答案里)
void test(char *c)
{
short s=strlen(c);
char buf[100];
cout << "strlen(c)=" << strlen(c)<<endl;
if(s<100){
strcpy(buf,c);
}
else{
cout<<"overflow!" <<endl;
}
}?
- 我的答案:
- (1) short s=strlen(c)
22.?整數(shù)n的初值為10,寫出下列語句n的值是多少?
n=(2* ++n)*(n = 'a')+ (n>0?1:-1);?
- 我的答案:
- (1) 2135
?
二、單選題
1.?下列程序是否存在內(nèi)存泄露?
int **a =new int *[3];
for (int i=0;i<3;i++){
a[i]=new int[2];
}
delete []a;
- A. 不存在
- B. 存在
我的答案:?B
?
三、討論
1.C語言為什么容易產(chǎn)生棧溢出漏洞?我們在編程中怎么防止棧溢出漏洞?
1.棧溢出是由于C語言系列沒有內(nèi)置檢查機(jī)制來確保復(fù)制到緩沖區(qū)的數(shù)據(jù)不得大于緩沖區(qū)的大小,因此當(dāng)這個數(shù)據(jù)足夠大的時候,將會溢出緩沖區(qū)的范圍。
2.為了防止棧溢出攻擊,最直接和最根本的辦法當(dāng)然是寫出嚴(yán)謹(jǐn)?shù)拇a,剔除任何可能發(fā)生棧溢出的代碼。但是當(dāng)程序的規(guī)模大到一定的程序時,代碼錯誤很難被發(fā)現(xiàn),因此操作系統(tǒng)和編譯器采取了一些措施來防護(hù)棧溢出攻擊,主要有以下措施。
①棧不可執(zhí)行機(jī)制:操作系統(tǒng)可以利用cpu硬件的特性,將棧設(shè)置為不可執(zhí)行的
②棧保護(hù)機(jī)制:檢查查棧上的數(shù)值有沒有被改寫,若被改寫了,則中止程序運(yùn)行。
③內(nèi)存布局隨機(jī)化機(jī)制:用戶程序都是加載到固定位置運(yùn)行。
?
2.人臉識別有哪些安全性問題?
?
1.人臉識別技術(shù)濫用無度,人臉特征隨意采集。公民的隱私受到極
大威脅,在使用人臉識別技術(shù)之前,信息采集者和持有者并未有效評
估了人臉識別應(yīng)用的必要性。
2.人臉識別技術(shù)中對用人臉特征數(shù)據(jù)的保密性、完整性和可用
性維護(hù)值得懷疑
保密性、完整性和可用性被稱為信息安全的 CIA 三要素。App 違
法違規(guī)收集使用個人信息專項(xiàng)治理工作組在 2020 年 9 月曾曝光某些
APP 使用明文傳輸人臉圖片數(shù)據(jù);“深網(wǎng)視界”被曝出人臉識別數(shù)據(jù)
庫,可供任何人查找,并允許完全訪問,上述兩個案例嚴(yán)重違背了保
密性原則;目前幾乎所有的 APP 在用戶注銷 APP 賬號之后,APP 未
提供用戶刪除人臉信息的渠道,此項(xiàng)違背了數(shù)據(jù)可用性原則。
3.人臉識別技術(shù)的安全技術(shù)標(biāo)準(zhǔn)和使用規(guī)范滯后于技術(shù)的發(fā)展
規(guī)制在人臉數(shù)據(jù)采集、使用與銷毀等方面的缺位,讓人臉識別技
術(shù)看起來很高大上,但實(shí)際上危險性極大。雖然《中華人民共和國網(wǎng)
絡(luò)安全法》明確將個人生物特征納入個人信息保護(hù)范圍,但個人信息
的使用、存儲、運(yùn)輸、管理相關(guān)的法律條例仍需進(jìn)一步細(xì)化,目前手
機(jī) APP 未在明確告知用戶的情況下就對用戶的人臉數(shù)據(jù)進(jìn)行收集的
現(xiàn)象比比皆是,甚至還出現(xiàn)移動 APP 存在強(qiáng)制收集用戶的人臉信息,
否則 APP 無法正常使用的情況;
4.地下黑色產(chǎn)業(yè)鏈導(dǎo)致用戶數(shù)據(jù)被非法販賣
黑客或者內(nèi)部員工將非法獲得的人臉身份數(shù)據(jù)販賣給人臉識別
資源商,資源商將身份信息販賣給無法或不想用自己信息完成人臉識
別認(rèn)證的客戶,以幫助其通過人臉識別實(shí)名認(rèn)證,進(jìn)而牟取巨額暴利。
大威脅,在使用人臉識別技術(shù)之前,信息采集者和持有者并未有效評
估了人臉識別應(yīng)用的必要性。
2.人臉識別技術(shù)中對用人臉特征數(shù)據(jù)的保密性、完整性和可用
性維護(hù)值得懷疑
保密性、完整性和可用性被稱為信息安全的 CIA 三要素。App 違
法違規(guī)收集使用個人信息專項(xiàng)治理工作組在 2020 年 9 月曾曝光某些
APP 使用明文傳輸人臉圖片數(shù)據(jù);“深網(wǎng)視界”被曝出人臉識別數(shù)據(jù)
庫,可供任何人查找,并允許完全訪問,上述兩個案例嚴(yán)重違背了保
密性原則;目前幾乎所有的 APP 在用戶注銷 APP 賬號之后,APP 未
提供用戶刪除人臉信息的渠道,此項(xiàng)違背了數(shù)據(jù)可用性原則。
3.人臉識別技術(shù)的安全技術(shù)標(biāo)準(zhǔn)和使用規(guī)范滯后于技術(shù)的發(fā)展
規(guī)制在人臉數(shù)據(jù)采集、使用與銷毀等方面的缺位,讓人臉識別技
術(shù)看起來很高大上,但實(shí)際上危險性極大。雖然《中華人民共和國網(wǎng)
絡(luò)安全法》明確將個人生物特征納入個人信息保護(hù)范圍,但個人信息
的使用、存儲、運(yùn)輸、管理相關(guān)的法律條例仍需進(jìn)一步細(xì)化,目前手
機(jī) APP 未在明確告知用戶的情況下就對用戶的人臉數(shù)據(jù)進(jìn)行收集的
現(xiàn)象比比皆是,甚至還出現(xiàn)移動 APP 存在強(qiáng)制收集用戶的人臉信息,
否則 APP 無法正常使用的情況;
4.地下黑色產(chǎn)業(yè)鏈導(dǎo)致用戶數(shù)據(jù)被非法販賣
黑客或者內(nèi)部員工將非法獲得的人臉身份數(shù)據(jù)販賣給人臉識別
資源商,資源商將身份信息販賣給無法或不想用自己信息完成人臉識
別認(rèn)證的客戶,以幫助其通過人臉識別實(shí)名認(rèn)證,進(jìn)而牟取巨額暴利。
3.Web系統(tǒng)對安全有很高的要求,例如登錄口令應(yīng)該具有強(qiáng)口令的設(shè)計,你認(rèn)為應(yīng)該從哪些方面設(shè)計強(qiáng)口令?請列舉出你能想到的所有設(shè)計點(diǎn)。
1.口令長度大于等于14位且包含數(shù)字、大小寫字母及特殊字符;
2.不使用個人信息;
3.不對每個帳戶使用相同的密碼;
4.避免使用字典中可以找到的單詞;
5.使用密碼生成器生成隨機(jī)密碼。
?
?
?
?
?
?
?
本文摘自 :https://www.cnblogs.com/