從程序員角度看湖南電信網絡全崩,如何防範服務器被***以及解決方案

前言

4.13號湖南電信網絡遭境外HK***,全省斷網一小時,座標長沙親身經歷。
從程序員角度看湖南電信網絡全崩,如何防範服務器被***以及解決方案程序員

正在國家大力推廣數字貨幣的時候,出現這種狀況,不知道是否是數字冷戰的預演,箇中緣由咱們不談,咱們只從程序員的角度來看看網絡被***這件事。數據庫

生活在互聯網時代,網絡安全問題時刻威脅着企業,企業價值越高就越容易被HK盯上,受到網絡***的威脅就越大。而服務器做爲存儲和支持企業數據的載體,在維護和***防範中變得愈來愈重要。緩存

絕大部分大型互聯網企業都有過被***的經歷,一旦被不法HK***或***,若是沒有有效的防禦措施,後果不堪設想。數據被盜取不只可能形成巨大的經濟損失,嚴重影響用戶口碑和企業形象,甚至可能影響企業的正常運營。安全

而對於咱們程序猿來講輕則丟飯碗,重則還可能背上官司。安全無小事,企業數據安全管理亟待增強。bash

整理了一份企業服務器安全防範筆記以及應急方案,須要的朋友能夠直擊點擊領取。

服務器有什麼做用?

廣義上來講,服務器是指網絡中能對其它機器提供某些服務的計算機系統。從狹義上講,服務器是專指某些高性能計算機,能經過網絡,對外提供服務。相對於普通PC來講,其穩定性、安全性、性能等方面都要求更高,所以在CPU、芯片組、內存、磁盤系統、網絡等硬件和普通PC有所不一樣。服務器

企業級服務器主要適用於須要處理大量數據、高處理速度和對可靠性要求極高的大型企業和重要行業,如金融、證券、交通、郵電、通訊等行業。服務器做爲網絡的節點,存儲、處理網絡上80%的數據、信息,所以也被稱爲網絡的靈魂。網絡

服務器是如何被***的?

***者***某個系統,老是由某個主要目的所驅使的。例如炫耀技術,獲得企業機密數據,破壞企業正常的業務流程等,有時也有可能在***後,***者的***行爲,由某種目的變成了另外一種目的。例如,原本是炫耀技術,但在進入系統後,發現了一些重要的機密數據,因爲利益的驅使,***者最終竊取了這些機密數據。***者***系統的目的不一樣,使用的***方法不一樣,所形成的影響範圍和損失也各不相同。運維

服務器被***後,會忽然出現不少惡意的請求或者惡意執行的腳本,來消耗服務器的資源,讓服務器達到負載狀態,從而沒法爲正經常使用戶提供服務。做爲企業來講,最好的方法就是在數據庫尚未被攻破以前就阻止***事件的進一步發展。ssh

服務器被***常見方式

常見的服務器***方式爲DDoS***、CC***、ARP***、******等,再安全的服務器也沒法完全避免網絡***。tcp

1、DDoS***

DDoS是目前最多見的網絡***方式,也是這次湖南電信全崩官方所給出的說法中提到的***方式,全稱爲分佈式拒絕服務***,DDoS***包括SYN Flood、DrDoS、HTTP Flood等多種變種***,主要是利用TCP協議的漏洞來發起***的,因此沒有辦法徹底避免。DDoS的***原理也比較簡單,***者經過大量僵屍網絡肉雞僞形成各類虛假IP地址,向目標發出大量鏈接請求,傳輸大量錯誤或特殊結構的數據包,服務器將會消耗很是多的資源(CPU和內存)來處理這種無效鏈接,最後致使資源耗盡,服務器崩潰,正常訪客沒法訪問。

2、CC***

CC***,前身名爲Fatboy***,***者主要經過代理服務器或者肉雞向被***網站發送訪問請求,迫使Web服務器超出限制範圍,形成對方服務器資源耗盡,到最後致使防火牆死機,一直到宕機崩潰。

3、ARP***

ARP***經過僞造IP地址和MAC地址實現ARP欺騙,可以在網絡中產生大量的ARP通訊量使網絡阻塞,且可以讓網絡上特定計算機或全部計算機沒法正常鏈接。***者只要持續不斷的發出僞造的ARP響應包,就能更改目標主機ARP緩存中的IP-MAC條目,形成網絡中斷或中間人***。ARP協議又稱「地址解析協議」,簡略來講,便可通過IP地址來查詢方針主機的MAC地址,一旦這個環節犯錯,就不能正常和方針主機進行通信,導致所有網絡癱瘓。

4、******

不法HK經過網絡開發的端口、破解用戶密碼、程序漏洞等,把***程序、惡意腳本插入正常的軟件、郵件等宿主中運行。在受害者執行這些軟件的時候,***就能夠悄悄地進入系統,向HK開放進入計算機的途徑,取得服務器控制權,讓被***服務器作挖礦機,從而致使服務器資源消耗殆盡。

企業如何避免服務器被***?

以上只是一些最多見的***方式,HK的***手法天天都在不斷「進化」,做爲企業服務器安全運維人員,須要作到提升網絡安全意識,修改各類默認用戶名和密碼,接入專業的網絡防火牆,天天按期檢測安全漏洞更新服務器系統漏洞補丁,作好各類數據信息備份,爲企業受到網絡***後提供數據恢復,保證公司業務正常運行。同時,在系統遭受***後可以迅速有效地處理***行爲,最大限度地下降***對系統產生的影響。

一、按期掃描,將服務器和桌面電腦上安裝防毒軟件,設置自動下載最新的病毒庫,更新病毒補丁。要按期掃描現有的網絡主節點,清查可能存在的安全漏洞,對新出現的漏洞及時進行清理。服務器級別的計算機由於具備較高的帶寬,是HK利用的最佳位置,所以增強主機安全是很是重要的。若是掃描到含有病毒的文件,必須當即隔離查殺,這樣作能夠避免被感染。

二、針對服務器上的數據進行先備份後加密,在備份的同時要查看這些數據中是否隱藏着不安全因素。若是數據中有不安全因素存在,必定要先完全清除後再備份加密,同時對此備份產品進行補丁更新以及病毒查殺。

三、爲企業配置防火牆,防火牆在計算機和網絡空間之間起着過濾和保護做用,防火牆自己能抵禦網絡HK的***。換句話說,防火牆至關於一個嚴格的門衛,掌管系統的各扇門(端口),負責對全部進出程序進行身份覈實,只有獲得許可才能夠自由出入。每當有不明程序想要進入系統時,防火牆都會在第一時間進行攔截並檢查身份,若是檢測到這個程序並無被許可放行,則自動報警,並提示用戶是否容許這個程序經過,若是是病毒程序則直接拒之門外。

四、過濾沒必要要的服務和端口,禁用遠程管理。爲了保證服務器的安全,嚴格限制開放的端口是很是必要的,通常來說,非必要的端口/服務都應該關閉,例如13五、13九、445端口等。經過關閉不經常使用的端口,能夠有效的將HK拒之千里以外。關閉了一個端口等於關閉一扇用不到的門,HK天然也就少了一個***點。

系統遭受***並不可怕,可怕的是面對***一籌莫展,在企業的網絡安全建設中,若是想全面提升自身的網絡安全防禦能力,就須要一套總體的安全解決方案,這樣才能把企業的安全風險降到最低,保護企業自身的安全。

服務器被***了該怎麼辦?

整理了一份企業服務器安全防範筆記以及應急方案,須要的朋友能夠直擊點擊領取。

1、處理服務器遭受***的通常思路

1.切斷網絡

全部的***都來自於網絡,所以,在得知系統正遭受HK的***後,首先要作的就是斷開服務器的網絡鏈接,這樣除了能切斷***源以外,也能保護服務器所在網絡的其餘主機。

2.查找***源

能夠經過分析系統日誌或登陸日誌文件,查看可疑信息,同時也要查看系統都打開了哪些端口,運行哪些進程,並經過這些進程分析哪些是可疑的程序。這個過程要根據經驗和綜合判斷能力進行追查和分析。下面的章節會詳細介紹這個過程的處理思路。

3.分析***緣由和途徑

既然系統遭到***,那麼緣由是多方面的,多是系統漏洞,也多是程序漏洞,必定要查清楚是哪一個緣由致使的,而且還要查清楚遭到***的途徑,找到***源,由於只有知道了遭受***的緣由和途徑,才能刪除***源同時進行漏洞的修復。

4.備份用戶數據

在服務器遭受***後,須要馬上備份服務器上的用戶數據,同時也要查看這些數據中是否隱藏着***源。若是***源在用戶數據中,必定要完全刪除,而後將用戶數據備份到一個安全的地方。

5.從新安裝系統

永遠不要認爲本身能完全清除***源,由於沒有人能比HK更瞭解***程序,在服務器遭到***後,最安全也最簡單的方法就是從新安裝系統,由於大部分***程序都會依附在系統文件或者內核中,因此從新安裝系統才能完全清除***源。

6.修復程序或系統漏洞

在發現系統漏洞或者應用程序漏洞後,首先要作的就是修復系統漏洞或者更改程序bug,由於只有將程序的漏洞修復完畢才能正式在服務器上運行。

7.恢復數據和鏈接網絡

將備份的數據從新複製到新安裝的服務器上,而後開啓服務,最後將服務器開啓網絡鏈接,對外提供服務。

2、檢查並鎖定可疑用戶

當發現服務器遭受***後,首先要切斷網絡鏈接,可是在有些狀況下,好比沒法立刻切斷網絡鏈接時,就必須登陸系統查看是否有可疑用戶,若是有可疑用戶登陸了系統,那麼須要立刻將這個用戶鎖定,而後中斷此用戶的遠程鏈接。

1.登陸系統查看可疑用戶

經過root用戶登陸,而後執行「w」命令便可列出全部登陸過系統的用戶,以下圖所示。
 
經過這個輸出能夠檢查是否有可疑或者不熟悉的用戶登陸,同時還能夠根據用戶名以及用戶登陸的源地址和它們正在運行的進程來判斷他們是否爲非法用戶。

2.鎖定可疑用戶

一旦發現可疑用戶,就要立刻將其鎖定,例如上面執行「w」命令後發現nobody用戶應該是個可疑用戶(由於nobody默認狀況下是沒有登陸權限的),因而首先鎖定此用戶,執行以下操做:
[root@server ~]# passwd -l nobody
鎖定以後,有可能此用戶還處於登陸狀態,因而還要將此用戶踢下線,根據上面「w」命令的輸出,便可得到此用戶登陸進行的pid值,操做以下:

[root@server ~]# ps -ef|grep @pts/3
531   6051  6049  0 19:23 ?  00:00:00 sshd: nobody@pts/3
[root@server ~]# kill -9 6051

這樣就將可疑用戶nobody從線上踢下去了。若是此用戶再次試圖登陸它已經沒法登陸了。

3.經過last命令查看用戶登陸事件

last命令記錄着全部用戶登陸系統的日誌,能夠用來查找非受權用戶的登陸事件,而last命令的輸出結果來源於/var/log/wtmp文件,稍有經驗的***者都會刪掉/var/log/wtmp以清除本身行蹤,可是仍是會露出蛛絲馬跡在此文件中的。

3、查看系統日誌

查看系統日誌是查找***源最好的方法,可查的系統日誌有/var/log/messages、/var/log/secure等,這兩個日誌文件能夠記錄軟件的運行狀態以及遠程用戶的登陸狀態,還能夠查看每一個用戶目錄下的.bash_history文件,特別是/root目錄下的.bash_history文件,這個文件中記錄着用戶執行的全部歷史命令。

4、檢查並關閉系統可疑進程

檢查可疑進程的命令不少,例如ps、top等,可是有時候只知道進程的名稱沒法得知路徑,此時能夠經過以下命令查看:
首先經過pidof命令能夠查找正在運行的進程PID,例如要查找sshd進程的PID,執行以下命令:

[root@server ~] # pidof sshd
13276 12942 4284

而後進入內存目錄,查看對應PID目錄下exe文件的信息:

[root@server ~] # ls -al /proc/13276/exe 
lrwxrwxrwx 1 root root 0 Oct  4 22:09  /proc/13276/exe  ->  /usr/sbin/sshd

這樣就找到了進程對應的完整執行路徑。若是還有查看文件的句柄,能夠查看以下目錄:

[root@server ~]# ls -al /proc/13276/fd

經過這種方式基本能夠找到任何進程的完整執行信息,此外還有不少相似的命令能夠幫助系統運維人員查找可疑進程。例如,能夠經過指定端口或者tcp、udp協議找到進程PID,進而找到相關進程:

[root@server ~] # fuser -n tcp 111
111 /tcp :              1579
[root@server ~] # fuser -n tcp 25
25 /tcp :               2037
[root@server ~] # ps -ef|grep 2037
root      2037     1  0 Sep23 ?        00:00:05  /usr/libexec/postfix/master
postfix   2046  2037  0 Sep23 ?        00:00:01 qmgr -l -t fifo -u
postfix   9612  2037  0 20:34 ?        00:00:00 pickup -l -t fifo -u
root     14927 12944  0 21:11 pts /1     00:00:00  grep  2037

在有些時候,***者的程序隱藏很深,例如rootkits後門程序,在這種狀況下ps、top、netstat等命令也可能已經被替換,若是再經過系統自身的命令去檢查可疑進程就變得絕不可信,此時,就須要藉助於第三方工具來檢查系統可疑程序,例如前面介紹過的chkrootkit、RKHunter等工具,經過這些工具能夠很方便的發現系統被替換或篡改的程序。

5、檢查文件系統的無缺性

檢查文件屬性是否發生變化是驗證文件系統無缺性最簡單、最直接的方法,例如能夠檢查被***服務器上/bin/ls文件的大小是否與正常系統上此文件的大小相同,以驗證文件是否被替換,可是這種方法比較低級。此時能夠藉助於Linux下rpm這個工具來完成驗證,操做以下:

[root@server ~] # rpm -Va
....L...  c  /etc/pam .d /system-auth
S.5.....  c  /etc/security/limits .conf
S.5....T  c  /etc/sysctl .conf
S.5....T     /etc/sgml/docbook-simple . cat
S.5....T  c  /etc/login .defs
S.5.....  c  /etc/openldap/ldap .conf
S.5....T  c  /etc/sudoers
..5....T  c  /usr/lib64/security/classpath .security
....L...  c  /etc/pam .d /system-auth
S.5.....  c  /etc/security/limits .conf
S.5.....  c  /etc/ldap .conf
S.5....T  c  /etc/ssh/sshd_config

對於輸出中每一個標記的含義介紹以下:

  • S 表示文件長度發生了變化
  • M 表示文件的訪問權限或文件類型發生了變化
  • 5 表示MD5校驗和發生了變化
  • D 表示設備節點的屬性發生了變化
  • L 表示文件的符號連接發生了變化
  • U 表示文件/子目錄/設備節點的owner發生了變化
  • G 表示文件/子目錄/設備節點的group發生了變化
  • T 表示文件最後一次的修改時間發生了變化

若是在輸出結果中有「M」標記出現,那麼對應的文件可能已經遭到篡改或替換,此時能夠經過卸載這個rpm包從新安裝來清除受***的文件。

不過這個命令有個侷限性,那就是隻能檢查經過rpm包方式安裝的全部文件,對於經過非rpm包方式安裝的文件就無能爲力了。同時,若是rpm工具也遭到替換,就不能經過這個方法了,此時能夠從正常的系統上覆制一個rpm工具進行檢測。
對文件系統的檢查也能夠經過chkrootkit、RKHunter這兩個工具來完成,關於chkrootkit、RKHunter工具的使用,若是感興趣下篇將展開介紹。

本文就寫到這了,但願對你有所啓發。

整理了一份企業服務器安全防範筆記以及應急方案,須要的朋友能夠直擊點擊領取。
相關文章
相關標籤/搜索