竇桂英
【摘要】 通過一個(gè)實(shí)際案例---一個(gè)公司服務(wù)器遭到攻擊,來剖析在現(xiàn)實(shí)生活中,我們?cè)庥龅骄W(wǎng)絡(luò)安全時(shí)的應(yīng)對(duì)策略,并詳細(xì)介紹了網(wǎng)絡(luò)安全加固以及怎么預(yù)防的方法。在民航中,民航氣象的飛速發(fā)展,使得民航氣象信息在民航中占有非常重要的地位,民航信息安全也就顯得尤為重要。
【關(guān)鍵字】 操作系統(tǒng) ssh arp攻擊
一、前言
在計(jì)算機(jī)網(wǎng)絡(luò)安全的圈子里流傳著這么一句話:“計(jì)算機(jī)并沒有漏洞,漏洞在于人的身上?!?其實(shí)網(wǎng)絡(luò)是人、組織機(jī)構(gòu)與電腦之間相互聯(lián)系的迷宮。網(wǎng)絡(luò)攻擊最簡單的方式就是找出關(guān)系中的薄弱環(huán)節(jié)。通常人是這三者中最弱的一環(huán),因此也就成了攻擊進(jìn)入任何電腦網(wǎng)絡(luò)最簡單的方式。
現(xiàn)代黑客已經(jīng)將攻擊目標(biāo)由組織機(jī)構(gòu)的系統(tǒng)轉(zhuǎn)為人類的操作系統(tǒng)。由于個(gè)體攻擊需要一套不同的工具和從蠻力轉(zhuǎn)變?yōu)椴呗缘募记?,而網(wǎng)絡(luò)攻擊就利用了人的弱點(diǎn)和個(gè)人習(xí)慣。俗話說:積習(xí)難改。我們長期養(yǎng)成的薄弱的網(wǎng)絡(luò)安全意識(shí)和帶有明顯個(gè)人及組織特征的網(wǎng)絡(luò)操作習(xí)慣,就往往成為個(gè)人與所維護(hù)設(shè)備組成的一體系統(tǒng)中最大的安全漏洞。下面以一個(gè)案例為背景,淺談下網(wǎng)絡(luò)安全加固。
二、案例背景
2014年10月份公某司一臺(tái)服務(wù)器異常,且經(jīng)網(wǎng)絡(luò)特征分析得出此服務(wù)器成為“肉雞”的結(jié)論。
由于此服務(wù)器為私網(wǎng)地址,是與外網(wǎng)隔離的,從安全性上來說是比架設(shè)在公網(wǎng)上的平臺(tái)穩(wěn)固性高的。維護(hù)人員對(duì)此服務(wù)器進(jìn)行檢查,發(fā)現(xiàn)所謂的私網(wǎng)其實(shí)并不封閉,此服務(wù)器就是一個(gè)公網(wǎng)接入點(diǎn)。原來此服務(wù)器為綜合網(wǎng)管告警監(jiān)控系統(tǒng)的前置機(jī),為了完成與監(jiān)控系統(tǒng)采集機(jī)的連接,前置機(jī)映射了公網(wǎng)地址,而采集機(jī)是在公網(wǎng)上的。這樣,就給外網(wǎng)對(duì)私網(wǎng)提供了一個(gè)攻擊通道。連接了公網(wǎng)就一定要受到攻擊么?那架設(shè)在公網(wǎng)上的平臺(tái)怎么辦?我們的個(gè)人計(jì)算機(jī)平時(shí)就與公網(wǎng)連接的,有沒有一些安全措施來保證我們電腦不被攻擊或減少攻擊的可能性呢?
鑒于這些想法,我們根據(jù)網(wǎng)絡(luò)安全知識(shí)在主機(jī)層面進(jìn)行安全加固工作。下面就對(duì)本案例的問題解決過程所涉及的內(nèi)容對(duì)網(wǎng)絡(luò)安全分析進(jìn)行分享,提供一些簡單通用的安全加固內(nèi)容。
三、問題解決方案及安全分析
3.1 服務(wù)器斷網(wǎng)并更換操作系統(tǒng)
不聯(lián)網(wǎng)的設(shè)備是無法進(jìn)行攻擊的,在檢查時(shí)將傀儡服務(wù)器斷網(wǎng)。對(duì)服務(wù)器,原操作系統(tǒng)為windows 2003。根據(jù)設(shè)備硬件信息可以更換操作系統(tǒng)為Linux。
通常評(píng)定網(wǎng)絡(luò)安全等級(jí)的客觀的方法是跟蹤一個(gè)特定的操作系統(tǒng)發(fā)布的修復(fù)漏洞的補(bǔ)丁數(shù)量。而windows與Linux進(jìn)行比較發(fā)現(xiàn),Windows似乎安全漏洞似乎更多。一份美國計(jì)算機(jī)應(yīng)急反應(yīng)小組發(fā)表的安全漏洞測(cè)評(píng)報(bào)告表明,Windows出現(xiàn)了250次安全漏洞,而Red Hat Linux只有46次安全漏洞。而兩者存在這種差別是有充分理由的。原因是Linux的開放源代碼的軟件開發(fā)方式有助于更容易地暴露錯(cuò)誤,而Windows由于其許多應(yīng)用程序依靠遠(yuǎn)程程序調(diào)用,遠(yuǎn)程程序調(diào)用是計(jì)算機(jī)內(nèi)部的一種通信方式,無法提前預(yù)知和主動(dòng)地分配通信方法。而Linux是限制使用遠(yuǎn)程程序調(diào)用的,相比之下,就迫使Windows的防火墻沒有Linux那樣嚴(yán)格
由于維護(hù)人員熟悉windows系統(tǒng)的操作,因此也往往形成對(duì)windows的習(xí)慣性依賴。而且,現(xiàn)在網(wǎng)絡(luò)上的攻擊多是針對(duì)windows操作系統(tǒng)的,我們不妨換一種操作系統(tǒng),既有較高的安全性又能豐富我們的維護(hù)知識(shí)。
3.2 更換遠(yuǎn)程登錄方式telnet為ssh
在更換操作系統(tǒng)后,對(duì)服務(wù)器的遠(yuǎn)程登錄進(jìn)行設(shè)置,禁用Telnet,使用SSH遠(yuǎn)程登錄。
1、#chkconfig telnet off (關(guān)閉telnet)
#chkconfig --del telnet(開機(jī)不啟動(dòng)命令)
2、#service xinet restart (重啟)
3、#rmp -e telnet -server –nodeps(刪除包)
4、#vi /etc/services (注釋掉23端口)
由于物理距離的限制,很多維護(hù)人員都是通過遠(yuǎn)程登錄進(jìn)行設(shè)備維護(hù)的。一般的網(wǎng)絡(luò)服務(wù)程序,如:telnet、ftp和pop在本質(zhì)上都是不安全的,原因是在網(wǎng)絡(luò)上它們都是用明文傳送數(shù)據(jù)和口令。而SSH(安全外殼協(xié)議) 是建立在傳輸層和應(yīng)用層基礎(chǔ)上的安全協(xié)議,是目前較為可靠,專門為遠(yuǎn)程登錄會(huì)話和其他網(wǎng)絡(luò)服務(wù)提供安全性的遠(yuǎn)程登錄協(xié)議。簡言之:Telent是明碼傳輸,SSH是加密傳輸。
而Telnet訪問遠(yuǎn)程計(jì)算機(jī)用的TCP/IP協(xié)議是以控制網(wǎng)絡(luò)設(shè)備,就好比在離開某個(gè)建筑時(shí)大喊用戶名和口令。就會(huì)有人進(jìn)行監(jiān)聽,并且會(huì)利用你安全意識(shí)的缺乏,把這些數(shù)據(jù)和口令截獲了。同時(shí)這些服務(wù)程序的安全驗(yàn)證方式也是有弱點(diǎn)的,也就是很容易受到“中間人”的攻擊。就是“中間人”冒充真的服務(wù)器接收你傳給服務(wù)器的信息,然后再冒充你把信息傳給真的服務(wù)器。你和服務(wù)器之間的信息傳送被“中間人”做了手腳之后,就會(huì)出現(xiàn)很糟糕的問題。
而SSH提供的一種基于密鑰的安全認(rèn)證,則為自己創(chuàng)建一對(duì)密匙,并把公用密匙放在需要訪問的服務(wù)器上。用這種方式,你必須知道自己密匙的口令,而口令是不需要在網(wǎng)絡(luò)上傳送的。這種認(rèn)證方式不僅加密所有傳送的信息,而且“中間人”這種攻擊方式也是不可能的(因?yàn)樗麤]有你的私人密匙)。
3.3 弱口令問題
弱口令問題恐怕是最能體現(xiàn)個(gè)人習(xí)慣和暴露個(gè)人信息的。有人說破解密碼的高手都是一個(gè)優(yōu)秀的心理學(xué)家,他可以通過對(duì)你個(gè)人的所有網(wǎng)絡(luò)信息和生活習(xí)慣的了解經(jīng)過縝密的推理來破解你的密碼。而你是防不勝防的。因?yàn)槊艽a是我們最容易麻痹和偷懶的網(wǎng)絡(luò)信息。
這就要說到密碼破解方法。攻擊者一般都會(huì)使用一些常用的弱口令先進(jìn)行手工試探,我們平時(shí)所用的一些系統(tǒng)服務(wù)、數(shù)據(jù)庫、web應(yīng)用等都有其默認(rèn)的弱口令,這更是需要我們注意和更改的地方。
手工試探失敗,是可以暴力破解的。理論上密碼都是可以破解的,但是理論歸理論,現(xiàn)實(shí)歸現(xiàn)實(shí),暴力破解是需要成本的,稍微復(fù)雜的密碼,一臺(tái)普通設(shè)備都要破解很長時(shí)間。
因此,關(guān)于登錄密碼最好的弱口令問題的解決方案:不使用空口令或系統(tǒng)缺省的口令;口令長度不小于8個(gè)字符;口令應(yīng)該為大寫字母、小寫字母、數(shù)字和特殊字符的組合;不使用與自己個(gè)人信息有關(guān)的密碼,如生日、姓名簡寫等;定期更換口令密碼,防止未被發(fā)現(xiàn)的入侵者繼續(xù)使用該口令等等。這些措施都能給攻擊者破解密碼帶來很大的障礙,保證了口令破解的難度。
為了防止維護(hù)人員偷懶,可以進(jìn)行密碼復(fù)雜度配置:
參數(shù)含義:常識(shí)次數(shù)5;最少不通字符4;最小密碼長度8;最少大寫字母1;最少小寫字母:1;最少數(shù)字1。
參數(shù)含義:
PASS_MAX_DAYS 90 #密碼最長過期天數(shù)
PASS_MIN_DAYS 80 #密碼最小過期天數(shù)
PASS_MIN_LEN 8 #密碼最小長度
PASS_WARN_AGE 7 #密碼過期警告天數(shù)
3.4 更改遠(yuǎn)程登錄端口號(hào)
從一臺(tái)設(shè)備到另一臺(tái)設(shè)備或幾臺(tái)設(shè)備可能建立多個(gè)連接,所以需要某種多路復(fù)用功能區(qū)分不同連接。多路復(fù)用確保傳輸層可以從某個(gè)應(yīng)用程序?qū)?shù)據(jù)發(fā)送到恰當(dāng)?shù)慕邮照?,并且從接收站接受?shù)據(jù)時(shí),把數(shù)據(jù)傳送到恰當(dāng)?shù)膽?yīng)用程序。為了擁有這種本領(lǐng),傳輸層為每個(gè)連接分配一套唯一的號(hào)碼,這些號(hào)碼成為端口(prot)。每個(gè)連接有一個(gè)源端口號(hào)和一個(gè)目的端口號(hào)。發(fā)送方設(shè)備所指定的目的端口號(hào)成為公共端口號(hào),公共端口號(hào)中包括一些常用應(yīng)用程序的“默認(rèn)端口號(hào)”。比如:FTP,默認(rèn)端口號(hào)為21;SSH,默認(rèn)端口號(hào)為22;Telnet,默認(rèn)端口號(hào)為23;TFTP(Trivial File Transfer Protocol ),默認(rèn)端口號(hào)為69;QQ,默認(rèn)的端口號(hào)為1080;…
遠(yuǎn)程攻擊所使用的端口號(hào)基本都是默認(rèn)的端口號(hào),我們?cè)诰S護(hù)工作中也習(xí)慣于記憶和使用默認(rèn)端口號(hào)。而修改遠(yuǎn)程端口號(hào),會(huì)使得該遠(yuǎn)程登錄只能在此更改的端口進(jìn)行,即使知道賬號(hào)和口令,端口號(hào)不對(duì)依然無法登錄,這就使得我們的遠(yuǎn)程登錄安全又增加了一份防護(hù)。
修改ssh端口號(hào)的方法:步驟一修改/etc/ssh/sshd_config文件
[root@localhost ssh]# more sshd_config#$OpenBSD: sshd_config,v 1.69 2004/05/23 23:59:53 dtucker Exp$
# This is the sshd server system-wide configuration file. See# sshd_config(5) for more information.
# This sshd was compiled with PATH=/usr/local/bin:/bin:/usr/ bin
# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options change a
# default value.
#Port 22 //先把22注釋掉
port 2501 //添加一個(gè)新的端口
#Protocol 2,1
步驟二
[root@localhost ~]# service sshd restart
Stopping sshd:[ OK ]
Starting sshd:[ OK ]
步驟三
用SecureCRT測(cè)試3.5 ARP攻擊防護(hù)
在此案例中維護(hù)人員還發(fā)現(xiàn)同一網(wǎng)段中的一些設(shè)備存在嚴(yán)重的丟包行為,甚至影響了客戶端正常登錄平臺(tái)。最后的故障判斷為:存在ARP攻擊。所謂ARP攻擊就是通過偽造MAC地址和IP地址實(shí)現(xiàn)ARP欺騙,同時(shí)在網(wǎng)絡(luò)上產(chǎn)生大量的ARP通信量使網(wǎng)絡(luò)阻塞,攻擊者只要不斷的發(fā)出偽造的ARP響應(yīng)包就能更改目標(biāo)主機(jī)ARP緩存中的IP-MAC條目,造成網(wǎng)絡(luò)中斷或中間人攻擊。
為了保證服務(wù)器的順暢和業(yè)務(wù)的正常運(yùn)行,對(duì)于ARP攻擊的防范工作必須要做,在此介紹三種常用的防范措施:一是在路由器和終端上都進(jìn)行IP-MAC地址綁定,這可以對(duì)ARP欺騙的兩邊偽造網(wǎng)關(guān)和截獲數(shù)據(jù),都具有約束的作用。二是通過在防火墻軟件中開啟ARP防護(hù)來對(duì)終端電腦上網(wǎng)關(guān)進(jìn)行綁定,以防止不受網(wǎng)絡(luò)中假網(wǎng)關(guān)的影響,實(shí)現(xiàn)保護(hù)自身數(shù)據(jù)不被竊取。三是通過劃分VLAN和交換機(jī)端口綁定來實(shí)現(xiàn)。做法是通過細(xì)致地劃分VLAN,以減小廣播域的范圍,從而使ARP在小范圍內(nèi)起作用,不至于發(fā)生大面積影響。而針對(duì)一些網(wǎng)管交換機(jī)具有MAC地址學(xué)習(xí)的功能,學(xué)習(xí)完后,再關(guān)閉這個(gè)功能,就可以把對(duì)應(yīng)的MAC和端口進(jìn)行綁定,避免了病毒利用ARP攻擊篡改自身地址。
四、結(jié)論
通過對(duì)本案例的解決方案分析,回頭再去看前言的第一句話,不禁感受頗深。以上的安全加固策略其實(shí)都是基本的安全常識(shí),也并不是多么復(fù)雜的操作。但是維護(hù)人員自身所具有的安全意識(shí)程度,卻反映了設(shè)備存在的漏洞大小和多少。在維護(hù)人員和設(shè)備組成的一體系統(tǒng),具有了良好的安全操作和維護(hù)習(xí)慣以及預(yù)警意識(shí),你就會(huì)成為維護(hù)設(shè)備外面一層最堅(jiān)實(shí)的“防火墻”。
參 考 文 獻(xiàn)
[1] 鳥哥 著 鳥哥的Linux私房菜:服務(wù)器架設(shè)篇(第三版)機(jī)械工業(yè)出版社2012.7出版
[2] 閆宏生 王雪莉 楊軍等編著計(jì)算機(jī)網(wǎng)絡(luò)安全與防護(hù)(第二版)電子工業(yè)出版社 2010.11出版
[3]俞朝暉 王長征 趙怡程著 系統(tǒng)防護(hù)網(wǎng)絡(luò)安全與黑客攻防實(shí)用寶典中國鐵道出版社 2013.2出版