nsfocus-筆試題

1.描述sendmail原理及通信機制

  sendmail程序接受到待發郵件後,經過關鍵字@判斷郵件的格式是否符合要求,匹配成功後提取郵件後綴域名信息並查詢DNS數據庫相關MX(郵件專用)記錄,如有匹配信息多於一條,選擇優先級更高的主機IP進行投遞,若是沒有查詢到相關域名的MX記錄則嘗試與其根域名(163.com)25端口通信並投遞郵件,成功鏈接則投遞信件,失敗則將郵件打包退還發件者。linux

2.A,B,C三類的私有IP地址範圍

  A:10.0.0.0 ~ 10.255.255.255程序員

  B:172.16.0.0 ~ 172.31.255.255web

  C:192.168.0.0 ~ 192.168.255.255正則表達式

3.主流的防病毒廠商和產品(國內,外各三個)

  國外:Mcafee,AVAST,BitDefender,Kaspersky,ESET Nod32,Symantec,AVIRA(小紅傘),Dr.web算法

  網內:金山,江民,微點,瑞星,360,VRV背信源,安鐵諾,可牛,超級巡警sql

  Mcafee:Intel antivirus software,邁克菲。shell

  AVAST:avast是一款來自捷克的殺毒軟件,已有數十年的歷史,avast在國外市場一直處於領先地位avast分爲家庭版、商業版、手機版以及專爲Linux和Mac設計的版本等等衆多版本。avast的實時監控功能十分強大,免費版的avast殺毒軟件擁有八大防禦模塊:文件系統防禦、網頁防禦、郵件防禦、網絡防禦、P2P防禦、即時消息防禦、行爲防禦、腳本防禦。免費版的須要每一年註冊一次,註冊是免費的!數據庫

  BitDefender:BitDefender(中文名:比特梵德,簡稱BD)是來自羅馬尼亞的老牌殺毒軟件,擁有超大病毒庫,防病毒引擎被業界公認領先,獨有遊戲免打擾模式,TopTenREVIEWS網站全球殺毒軟件評比排名第一!用戶遍佈100多個國家和地區,以小於4小時的新病毒響應時間在衆多防病毒軟件中獨佔鰲頭。安全

  Kaspersky:卡巴斯基服務器

  ESET Nod32:ESET這一名稱最先來源於埃及神話中的女神Isis。

Isis又稱做Aset或Eset,是地神Geb和天神Nut的女兒,是主管愛情和富庶的女神,也是負責治療和魔力的女神。ESET在英文中能夠理解爲Essential Solution Against Evolving Threats(針對病毒進化而必備的解決方案)。
ESET成立於1992年,是一家面向企業與我的用戶的全球性的 計算機安全軟件提供商。開發總部在 斯洛伐克的Bratislava,銷售總部在美國西海岸的 聖迭戈。其獲獎產品——NOD32防病毒軟件系統,可以針對各類已知或未知病毒、間諜軟件(spyware)、rootkits和其餘 惡意軟件爲計算機系統提供實時保護。ESET NOD32佔用系統資源少,偵測速度快,能夠提供有效的保護,得到了最多的 Virus Bulletin100%獎項。
  Symantec:諾頓,防病毒軟件
  Avira AntiVir:是一套由德國的 Avira公司所開發的殺毒軟件。Avira 除了商業版本外,還有免費的我的版本。它的接口沒有如此的華麗,也沒有耍噱頭而無用的多餘項目。是一款知名的免費殺毒軟件,用戶超過七千萬,它改寫許多人「免費殺毒軟件就必定比較差」的觀念,在系統掃描、即時防禦、自動更新等方面,表現都不輸給知名的付費殺毒軟件,甚至比部分商業殺毒軟件還要高,所以成爲許多用戶挑選殺毒軟件的首選。採用高效的啓發式掃描,能夠檢測70%的未知病毒。在專業測試中是全部免費且是自主 殺毒引擎的防病毒軟件中,偵測率最高的。一些知名的殺毒軟件像360,QQ電腦管家等也採用小紅傘的引擎!
  Dr.web:大蜘蛛,來自 俄羅斯安全軟件品牌,最初在1992年由 俄羅斯國家科學院開發,2003年以後由 俄羅斯Doctor Web有限公司開發及發行,大蜘蛛一直都受到 俄羅斯軍方、 俄羅斯國會、 俄羅斯總統辦公室、 克里姆林宮俄羅斯其餘安所有門以及全球數以萬計的消費者及商業用戶、企業用戶的青睞及承認,同時大蜘蛛也是 俄羅斯國防部惟一指定使用的安全產品,並同時爲國家多個機密部門和安所有門提供安全保護工做。由於不以商業而以技術和實用性爲主的理念,因此大蜘蛛在各類 安全軟件評測中排名並不很靠前,甚至常常不參與評測,可是實際論查 殺能力和防護能力倒是世界一流水準。而且其殺毒引擎在世界上很是優秀,處於頂尖引擎的位置。

4.使用過的主流漏掃產品,其優缺點

   nessus:漏洞掃描器提供幾個重要的掃描特性,好比高速發現、資產概況和漏洞分析。

   Nmap:是一個用於網絡檢測或安全審計的免費開源工具。

  SAINT:漏洞掃描器只提供集成漏洞評估和滲透測試工具。

  metasploit:Metasploit Project 是已經催生了大量工具的一系列項目的總和,這些工具用途普遍,幾乎能夠完成從擊敗法規約束到躲避對其最著名軟件 —— Metasploit Framework —— 的探測的任何任務。Metasploit 的設計初衷並非做爲一個黑客工具,儘管它聽起來就像是一個黑客工具。實際上,這個工具的主要目標是研究安全性。可是,就像這種類型的其餘工具同樣,它的用途取決於使用者。記住,「權力越大,責任越大」,所以,請當心使用

  ps:

什麼是漏洞掃描器?

簡言之,漏洞掃描器 是專門設計用於查找和暴露應用程序和操做系統中的弱點的軟件。每一個掃描器可能都有本身的掃描和探測方法,但它們的結果都大同小異:報告所發現的問題或輸出信息。

  本地漏洞掃描器 host scaner有:COPS,tripewire,tiger只能掃描本地存在的漏洞。

  網絡漏洞掃描器:nsfocus的極光遠程安全評估系統,優勢:硬件設備,掃描不佔系統資源,快速高效準確。缺點:付費產品且較貴。

漏洞掃描過程能夠劃分爲一系列步驟,每一個步驟都是查找應用程序或操做系統中的弱點所需的關鍵任務:

  1. 向掃描軟件提供活動系統的主機名和 IP。這樣,掃描器能夠發現開放端口、響應的服務和當前可能正在系統上運行的任意應用程序。
  2. 掃描器生成一個報告,告知您所發現的問題。若是掃描器在這個步驟就結束,它提供的信息也許不太具備操做性並須要更多研究。使用其它掃描器,這個步驟可能只顯示端口、服務和正在運行的應用程序,以便軟件繼續進行下一步。
  3. 掃描軟件針對第 2 步中發現的端口和服務運行探測,目標是顯示關於補丁級別、軟件修改或任意潛在缺陷的信息。現代漏洞掃描器包含一些插件,它們設計用於在新的漏洞出現時發現它們。所以,也許今天運行掃描器沒有發現問題,那麼明天執行更新後可能就會發現問題。
  4. 這個掃描器可能試圖研究漏洞(若是支持該特性),但這取決於掃描器的先進程度。事實上,某些現代掃描器能夠在這個步驟配置它們的攻擊程度,以避免掃描器的攻擊性太強,以致於在掃描過程當中致使系統崩潰(它們具備這種能力,並且這種狀況也發生過)。

5.常常訪問的國內外的網絡安全方面的網址

  www.nsfocus.com

  forum.eviloctal.com

  www.xfocus.net

  www.hackline.net

  www.chinacissp.com

6.tcp和udp的區別 

TCP使用窗口機制進行流量控制
什麼是窗口?

鏈接創建時,各端分配一塊緩衝區用來存儲接收的數據,並將緩衝區的尺寸發送給另外一端

接收方發送的確認信息中包含了本身剩餘的緩衝區尺寸

剩餘緩衝區空間的數量叫作窗口

tcp創建須要三次握手,斷開須要四次揮手。包頭結構:

源端口 16位
目標端口 16位
序列號 32位
迴應序號 32位
TCP頭長度 4位
reserved 6位
控制代碼 6位
窗口大小 16位
偏移量 16位
校驗和 16位
選項  32位(可選)
這樣咱們得出了TCP包頭的最小長度,爲20字節。

udp 用戶數據包協議

(1) UDP是一個非鏈接的協議,傳輸數據以前源端和終端不創建鏈接,當它想傳送時就簡單地去抓取來自應用程序的數據,並儘量快地把它扔到網絡上。在發送端,UDP傳送數據的速度僅僅是受應用程序生成數據的速度、計算機的能力和傳輸帶寬的限制;在接收端,UDP把每一個消息段放在隊列中,應用程序每次從隊列中讀一個消息段。
(2) 因爲傳輸數據不創建鏈接,所以也就不須要維護鏈接狀態,包括收發狀態等,所以一臺服務機可同時向多個客戶機傳輸相同的消息。
(3) UDP信息包的標題很短,只有8個字節,相對於TCP的20個字節信息包的額外開銷很小。
(4) 吞吐量不受擁擠控制算法的調節,只受應用軟件生成數據的速率、傳輸帶寬、源端和終端主機性能的限制。
(5)UDP使用盡最大努力交付,即不保證可靠交付,所以主機不須要維持複雜的連接狀態表(這裏面有許多參數)。
(6)UDP是面向報文的。發送方的UDP對應用程序交下來的報文,在添加首部後就向下交付給IP層。既不拆分,也不合並,而是保留這些報文的邊界,所以,應用程序須要選擇合適的報文大小。
咱們常用「ping」命令來測試兩臺主機之間TCP/IP通訊是否正常,其實「ping」命令的原理就是向對方主機發送UDP數據包,而後對方主機確認收到數據包,若是數據包是否到達的消息及時反饋回來,那麼網絡就是通的。
UDP的包頭結構:
源端口 16位
目的端口 16位
長度 16位
校驗和 16位

區別
      TCP UDP
是否鏈接 面向鏈接 面向非鏈接
傳輸可靠性 可靠   不可靠
應用場合 傳輸大量數據 少許數據
系統資源 多      少
結構   複雜    簡單
數據正確性 有序    無序
速度   慢       快

7.防火牆的三種技術 
 1).應用代理技術
  2).電路層網關技術
  3).自適應代理技術
8.使用linux的安全風險有哪些?
  多用戶系統帶來的帳戶及權限安全。包括多用戶帶來的帳戶權限,文件歸屬管理的難度。linux自身安全及上端應用程序所面臨的威脅。未通過專業人員安全加固過的廚師linux系統在攻擊者面前,顯得很脆弱,運行在上端的開源程序有着跟新維護不及時,存在漏洞的狀況。系統自身服務安全性,運行在linux上的默認服務有着相互依存,安全設置有相互獨立的現象,對於廣大普通用戶來講,根本沒法制定出適合且有效的安全策略。
9.主流的防火牆廠商和產品
國外:1.checkpoint firewall-1
   2.Cisco cisco pix
   3.Netscreen netscreen
國內:1.360 360安全衛士
   2.聯想 網禦
3.天融信 網絡衛士
4.中網 黑客愁
10.使用select查詢語句的不安全之出在哪?

例如db_datareader,它授予對數據庫裏面全部對象的select權限。雖然你能夠用db_datareader角色授予select權限,而後有選擇地對個別用戶或組拒絕select權限,但使用這種方法時,你可能忘記爲某個用戶或者對象設置權限
11.實現純文本操做
  要求:程序可新建文件,打開文件,查看文件,在某一行插入文件,刪除某行的文字,運行時的顯示菜單。提示用戶選擇操做或退出操做,輸入文件名,行號或文字,選擇退出,程序結束,不然完成後應返回菜單繼續。
  
/**
 *            File name               :file.c
 *            Author                  :kangkangliang
 *            File desc               :file operator
 *            Mail                    :liangkangkang@yahoo.com
 *            Create time             :2016-09-19
 */

/**
 *                     headfile
 */
#include <stdio.h>
#include <stdlib.h>


void show()
{

	printf("------------------\n");
	printf("1.show line code\n");
	printf("2.insert line code\n");
	printf("3.delete line code\n");
	printf("4.show all line code\n");
	printf("0.exit\n");
	printf("------------------\n");
}

void printLine(FILE *fp ,int line)
{
	int		count = 0;
	char	buf[1024];

	// read line
	while(!feof(fp)){
		if(count == line){
			fgets(buf,1024,fp);
			printf("%d %s\n", line,buf);
			break;
		}
		if(fgets(buf,1024,fp) != NULL)
			++count;
		else if(fgets(buf,1024,fp) == NULL && count < line){
			printf("your line too big over file line number");
			break;
		}
	}
}

void insertLine(FILE *fp,int line,char *buf)
{
	int		count = 0;

	// 保證在行的範圍內
	// read line
	while(!feof(fp)){
		if(count == line){
			fprintf(fp, "%s\n", buf);
			break;
		}
		if(fgets(buf,1024,fp) != NULL)
			++count;
	}
}

void deleteLine(FILE *fp,int line)
{
/*
*   1、最簡單的辦法,建議讀到鏈表裏,刪除其中一個節點。而後再覆蓋寫回到文件。
	2、找到要刪除的位置,fseek到該位置,將以後須要保留的文件內容,從這裏開始寫。
	3、利用內存映射,將文件映射到內存,直接對內存修改,可是對內存修改,也是須要相似於方法2,將須要保留的內容從新移動位置。
*/
	int		count = 0;
	char	buf[1024];

	// 保證在行的範圍內
	// read line
	while(!feof(fp)){
		if(count == line){
			break;
		}
		if(fgets(buf,1024,fp) != NULL)
			++count;
	}

}


void showAll(FILE *fp)
{
	char	buf[1024];
	int		count = 0;
	while(!feof(fp)){
		count++;
		fgets(buf,1024,fp);
		printf("%d %s",count, buf);
	}
}

/**
 *                    main function
 */
int
main(int argc,char **argv)
{

	char file_name[10];
	printf("please input filename:\n");
	scanf("%s",file_name);

	FILE *fp;

	if((fp = fopen(file_name,"rw")) == NULL){
		printf("open file error\n");
		exit(-1);
	}

	int		code;
	int		line;
	char	buf[1024];
	while(1){
		fseek(fp,0,0);
          // rewind(fp);  // 把文件內部的位置指針移到文件開頭的地方,該函數沒有返回值 show(); printf("input operateor code:"); scanf("%d",&code); if(0 == code) break; switch(code){ case(1): { printf("input line number:"); scanf("%d",&line); if(line <= 0){ printf("your line invalid\n"); break; } printLine(fp,line); break; } case(2): { printf("input line context:"); scanf("%s",buf); insertLine(fp,line,buf); break; } case(3):    { printf("input delete line number:"); scanf("%d",&line); deleteLine(fp,line); break; } case(4): { showAll(fp); break; } default: printf("input error\n"); break; } } return 0; }
 

  12.linuxshell 實現

  假設主機沒有防火牆,該主機ip地址由命令帶人,判斷主機哪些端口開放,並將結果輸入到文件中

  使用netstat命令,就能夠解決這個問題

# netstat -tln

 netstat -tln 命令是用來查看linux的端口使用狀況 

  /etc/init.d/vsftp start 是用來啓動ftp端口~!
  看文件/etc/services
  netstat
  查看已經鏈接的服務端口(ESTABLISHED)
  netstat -a
  查看全部的服務端口(LISTEN,ESTABLISHED)
  sudo netstat -ap
  查看全部的服務端口並顯示對應的服務程序名
  nmap <掃描類型><掃描參數>

13.139端口和445端口
139端口: NetBIOS File and Print Sharing 經過這個端口進入的鏈接試圖得到NetBIOS/SMB服務。這個協議被用於Windows"文件和打印機共享"和SAMBA。在Internet上共享本身的硬盤是多是最多見的問題。 
445端口:445端口是一個譭譽參半的端口,他和139端口一塊兒是IPC$入侵的主要通道。有了它咱們能夠在局域網中輕鬆訪問各類共享文件夾或共享打印機,但也正是由於有了它,黑客們纔有了可乘之機,他們能經過該端口偷偷共享你的硬盤,甚至會在悄無聲息中將你的硬盤格式化掉!咱們所能作的就是想辦法不讓黑客有隙可乘,封堵住445端口漏洞。
15.Cisco中哪一個命令可讓登錄密碼是明文顯示
  service password xxxxx

 16.指定ping數據包的大小

  默認是4個數據包,咱們能夠經過-n來指定:ping baidu.com -n 100 

 17.ACL列表number分別支持的協議

  1-99 基於IP的標準訪問控制列表
  100-199 基於IP的擴展訪問控制列表
  200-299 基於協議類型碼的訪問控制列表

  18.列舉Unix,Linux,FreeBSD各個版本的歷史發行版本

  Unix:V1,V4,V6,V7

  著名,流行的Linux發行版本:Red hat Centos SUSE,Debian,GNU/Linux,Ubuntu,Fedora

  FreeBSD:1.x 從386BSD0.1發展而來,2.x版從4.4BSD lite而來。

 19.名詞解釋

  Ddos:(Distirbuted Denial of service)分佈式拒絕服務

  Worm:蠕蟲,網絡傳播類計算機惡意代碼

  IP Spoof:IP欺騙,假裝成可信任的IP地址,對目標實施信息欺騙以達到目的。

  SYN Flood:SYN洪水攻擊,拒絕服務攻擊的一種。經過大量僞造TCP三次握手中的SYN包達到對目標拒絕服務攻擊的目的。

  Brute Attack:強力攻擊

  Social Engineering:社會工程學,經過非技術的其餘任意手段達到最終的目的

  Honeybot:蜜罐系統,一般指經過對不設防的虛擬主機(蜜罐)進行監控,達到追蹤攻擊者(蜜蜂)的目的

  ShellCode:溢出代碼,一般指能對某系統溢出漏洞獲取特定權限的指針位代碼

  20.網絡安全的標準

  iso9000:ISO9000質量管理體系是企業發展與成長之根本,ISO9000不是指一個標準,而是一類標準的統稱。是由TC176(TC176指質量管理體系技術委員會)制定的全部國際標準,是ISO12000多個標準中最暢銷、最廣泛的產品。

  BS7799:BS 7799(ISO/IEC17799):即國際信息安全管理標準體系,2000年12月,國際標準化組織ISO正式發佈了有關信息安全的國際標準ISO17799,這個標準包括信息系統安全管理和安全認證兩大部分,是參照英國國家標準BS7799而來的。

  sql注入:

所謂SQL注入,就是經過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令。具體來講,它是利用現有應用程序,將(惡意)的SQL命令注入到後臺數據庫引擎執行的能力,它能夠經過在Web表單中輸入(惡意)SQL語句獲得一個存在安全漏洞的網站上的數據庫,而不是按照設計者意圖去執行SQL語句。[1]  好比先前的不少影視網站泄露VIP會員密碼大多就是經過WEB表單遞交查詢字符暴出的,這類表單特別容易受到SQL注入式攻擊. 20.數據庫的漏洞如何挖掘

原理

SQL注入攻擊指的是經過構建特殊的輸入做爲參數傳入Web應用程序,而這些輸入大都是SQL語法裏的一些組合,經過執行SQL語句進而執行攻擊者所要的操做,其主要緣由是程序沒有細緻地過濾用戶輸入的數據,導致非法數據侵入系統。
根據相關技術原理,SQL注入能夠分爲平臺層注入和代碼層注入。前者由不安全的數據庫配置或數據庫平臺的漏洞所致;後者主要是因爲程序員對輸入未進行細緻地過濾,從而執行了非法的數據查詢。基於此,SQL注入的產生緣由一般表如今如下幾方面:①不當的類型處理;②不安全的 數據庫配置;③不合理的查詢集處理;④不當的錯誤處理;⑤轉義字符處理不合適;⑥多個提交處理不當。

攻擊

當應用程序使用輸入內容來構造動態sql語句以訪問數據庫時,會發生sql注入攻擊。若是代碼使用 存儲過程,而這些存儲過程做爲包含未篩選的用戶輸入的字符串來傳遞,也會發生sql注入。sql注入可能致使攻擊者使用應用程序登錄在數據庫中執行命令。相關的SQL注入能夠經過測試工具 pangolin進行。若是應用程序使用特權太高的賬戶鏈接到數據庫,這種問題會變得很嚴重。在某些 表單中,用戶輸入的內容直接用來構造動態sql命令,或者做爲 存儲過程的輸入參數,這些表單特別容易受到sql注入的攻擊。而許多網站程序在編寫時,沒有對用戶輸入的合法性進行判斷或者程序中自己的 變量處理不當,使應用程序存在安全隱患。這樣,用戶就能夠提交一段數據庫查詢的代碼,根據程序返回的結果,得到一些敏感的信息或者控制整個服務器,因而sql注入就發生了。
 
防禦
概括一下,主要有如下幾點:
1.永遠不要信任用戶的輸入。對用戶的輸入進行校驗,能夠經過 正則表達式,或限制長度;對單引號和
雙"-"進行轉換等。
2.永遠不要使用動態拼裝sql,可使用參數化的sql或者直接使用 存儲過程進行數據查詢存取。
3.永遠不要使用 管理員權限的數據庫鏈接,爲每一個應用使用單獨的權限有限的數據庫鏈接。
4.不要把機密信息直接存放,加密或者hash掉密碼和敏感的信息。
5.應用的異常信息應該給出儘量少的提示,最好使用自定義的 錯誤信息對原始錯誤信息進行包裝
6.sql注入的檢測方法通常採起輔助 軟件或網站平臺來檢測,軟件通常採用sql注入檢測工具jsky,網站平臺就有億思 網站安全平臺檢測工具。MDCSOFT SCAN等。採用 MDCSOFT-IPS能夠有效的防護SQL注入,XSS攻擊等

  21.一次典型的網絡攻擊分爲幾個階段,每一個階段採用什麼技術

  攻擊的基本步驟:蒐集信息 實施入侵 上傳程序、下載數據 利用一些方法來保持訪問,如後門、特洛伊木馬 隱藏蹤影 【 信息蒐集 】  在攻擊者對特定的網絡資源進行攻擊之前,他們須要瞭解將要攻擊的環境,這須要蒐集彙總各類與目標系統相關的信息,包括機器數目、類型、操做系統等等。踩點和掃描的目的都是進行信息的蒐集。 

  攻擊者蒐集目標信息通常採用7個基本步驟,每一步均有可利用的工具,攻擊者使用它們獲得攻擊目標所須要的信息。找到初始信息 找到網絡的地址範圍 找到活動的機器 找到開放端口和入口點 弄清操做系統 弄清每一個端口運行的是哪一種服務 畫出網絡圖

22.知道的掃描器有哪些?

  Retina:Retina是eEye公司(www.eeye.com)的產品,強大的網絡漏洞檢測技術能夠有效的檢測並修復各類安全隱患和漏洞,而且生成詳細的安全檢測報告,兼容各類主流操做系統、防火牆、路由器等各類網絡設備。曾在國外的安全評估軟件的評測中名列第一。

  iss:(internet security scanner)ISS公司開發和維護的商業漏洞掃描程序,它的可移植性和靈活性很強,衆多的UNIX的平臺上均可以運行ISS。

  22.動態路由和靜態路由

靜態路由
  是在路由器中設置的固定的路由表。除非網絡管理員干預,不然靜態路由不會發生變化因爲靜態路由不能對網絡的改變做出反映,通常用於網絡規模不大、拓撲結構固定的網絡中。靜態路由的優勢是簡單、高效、可靠。在全部的路由中,靜態路由優先級最高。當動態路由與靜態路由發生衝突時,以靜態路由爲準

動態路由
  是網絡中的路由器之間相互通訊,傳遞路由信息,利用收到的路由信息更新路由器表的過程。它能實時地適應網絡結構的變化。若是路由更新信息代表發生了網絡變化,路由選擇軟件就會從新計算路由,併發出新的路由更新信息。這些信息經過各個網絡,引發各路由器從新啓動其路由算法,並更新各自的路由表以動態地反映網絡拓撲變化。動態路由適用於網絡規模大、網絡拓撲復雜的網絡

相關文章
相關標籤/搜索