1. 程式人生 > >安全基礎 基於SSH的惡意登入攻擊分析

安全基礎 基於SSH的惡意登入攻擊分析

  近幾年,在一些網路日誌中出現了大量的基於SSH的惡意登入的攻擊記錄。本文將利用蜜罐(honeypot)陷阱對這類攻擊進行分析,最後,本文提供了一些關於如何防範這類攻擊的建議。

  蜜罐的使用方法研究

  位於紐西蘭的Honeynet聯盟的分支機構:紐西蘭Honeynet聯盟,主要致力於通過蜜罐技術來研究黑客的行為,攻擊方法以及他們所使用的工具,從而改善網路和計算機系統的安全。蜜罐本身也是計算機系統,但和其它的計算機系統不同的是蜜罐是專門用於引誘黑客進行攻擊的計算機系統。蜜罐通過裝扮成其它有價值的計算機系統來使黑客對其進行攻擊,以使這些攻擊記錄儲存下來。有了這些攻擊記錄,我們可以對其進行分析,也可利用蜜罐來保護真正的計算機系統不受到攻擊,也就是說讓黑客去攻擊蜜罐計算機系統,而不是真正的計算機系統,這就相當於計算機系統“影子”。

  為了研究發生在紐西蘭大學的網路攻擊行為,我們已經在惠靈頓的維多利亞大學安裝了一個蜜罐系統。這個蜜罐系統具有高度可互動性,這個系統在網路上就象其它正常的機器一樣,黑客完全不會察覺他們所攻擊的是蜜罐還是真正的計算機系統。我們可以通過這個蜜罐系統來監視所有從這個系統流出和流入的資料。另外,所有的系統事件都會被這個系統的日誌所記錄。

  這個系統執行在一個標準的RedHat 9 Linux的SSH伺服器上,而且這個伺服器可以通過Internet訪問到。SSH可以使使用者以加密的方式登入到另外一臺計算機上。在發現遭遇到SSH惡意登入攻擊後,我們通過安裝蜜罐系統來防止這一切。我們使用這個系統將所有登入的使用者名稱和密碼記錄了下來。這個系統在2006-7-11上線,在2006-8-1日停止使用。在這22天中,蜜罐系統被攻擊了多次。我們通過對黑客的攻擊記錄進行分析,並推薦了一些可以改善SSH安全性的解決方案。

    SSH惡意登入分析

  我們在這部分將分析在7月11日至8月1日被蜜罐捕捉到的資料。這些資料完全來源於蜜罐的日誌系統。這個日誌系統截獲了很多向伺服器的登入請求資訊,這其中包括日期、時間、IP地址、請求的結果(成功或失敗)以及用於登入請求的帳戶名和密碼。下面是一個簡單的登入請求日誌。

以下是引用片段:
Jul 13 09:37:59 basta sshd[22308]: PW-ATTEMPT: fritz Jul 13 09:37:59 basta sshd[22308]: Failed password for root from 10.0.160.14  port 39529 ssh2 Jul 13 09:38:02 basta sshd[22310]: Illegal user fatacunike from 10.0.160.14 Jul 13 09:38:02 basta sshd[22310]: PW-ATTEMPT: fatacunike Jul 13 09:38:02 basta sshd[22310]: Failed password for illegal user fatacunike  from 10.0.160.14 port 40444 ssh2
  首先,我們來分析用於登入的帳戶名。上面的日誌只是攻擊記錄的一小部分,其中在這期間共有2741次不同的攻擊嘗試。這其中他們使用了一般的使用者名稱、系統使用者名稱以及按字母順序進行排序的使用者名稱。但我們發現,有15個帳戶使用非常頻繁。這些帳啟如表1所示。這個表顯示的帳戶在一般的系統上大部分都存在,如root、admin、guest等。在圖1將顯示本系統中存在和不存在的帳戶比例。
帳戶名 嘗試登入的次數
root 1049
admin 97
test 87
guest 40
mysql 31
info 30
oracle 27
postgres 27
testing 27
webmaster 27
paul 25
web 24
user 23
tester 22
pgsql 21
表1 頻率最高的15個帳戶 安全基礎基於SSH的惡意登入攻擊分析(2) 圖1 存在和不存在的帳戶的比例   接下來,讓我們看看他們進行惡意登入所使用的密碼。攻擊者使用的大多數密碼都和帳戶名有關。在這些資料中攻擊者使用了3649個不同的密碼。並不是每個使用者都使用了這些密碼。這些密碼有的是連續的數字或字母,有的是按鍵盤順序的字元(如’asdfg’)。還有一些更復雜的密碼,如r00t或[email protected]@lin。表2顯示了使用頻率最高的15個密碼。  
密碼 使用的次數
123456 331
Password 106
Admin 47
Test 46
36
12345 34
administrator 28
Linux 23
Root 22
test123 22
1234 21
123 20
Mysql 19
Apache 18
Master 18
表2 使用頻率最高的15個密碼

  然後我們分析了是誰在攻擊蜜罐系統,以及這些攻擊有什麼規律。在這次攻擊中有23個不同的IP進行惡意登入。這些攻擊者有的攻擊的次數並不多,但有的卻是棄而不捨。表3顯示了這23個IP的攻擊情況。在這些IP中有10個IP的攻擊次數小於50,有5個IP的攻擊次數在170左右,還有8個IP的攻擊次數在1450以上。圖2顯示了這些IP攻擊次數分佈圖。

攻擊次數 IP
< 50 10
50 <= x <= 200 5
> 200 8
表3 不同的IP攻擊的次數 安全基礎基於SSH的惡意登入攻擊分析(3) 圖2 不同的IP攻擊次數分佈圖   讓我們更進一步地分析一下這些黑客是如何進行攻擊的。有的黑客使用一個單獨的帳啟和一個和帳戶名差不多的密碼進行登入,然後又換一個帳戶(如test/test)。還有一些黑客採用了不同的方法。如IP為10.0.179.148的黑客每一個帳戶試了5個密碼。這些被使用的密碼是一些帳戶名和數字的組合(如admin/admin1、admin/admin123、admin/)。而IP為10.0.105.52的黑客主要使用root進行嘗試登入。他使用的密碼涵蓋的範圍非常廣,如(root/[email protected]#, root/123abc, root/default)。   為了瞭解黑客所使用的工具和攻擊方法,我們測試了每個IP在兩次登入嘗試的平均間隔時間和變化。我們可以通過這些資料很容易地檢測出黑客所使用的工具。如果我們得到的資料沒有什麼規律,那就說明黑客並沒使用工具,只是手工進行登入嘗試。圖3顯示了這些IP在兩次登入嘗試之間的間隔時間(單位是秒)。 安全基礎基於SSH的惡意登入攻擊分析(3) 圖3   從上圖可以看出,前5個IP的登入間隔在2到4秒之間,這說明他們可能使用了黑客工具,為了不過於頻繁登入而引起系統的注意,因此,將工具的攻擊間隔設為2到4秒。而我們也可注意到10.0.192.15每7秒進行一次登入,這說明他可能是通過人工方式進行攻擊的。從圖3可以看出,大多數的黑客都使用了工具進行攻擊。

  “成功”的惡意登入攻擊

  在上面的分析中,我們只是分析了未成功的登入攻擊。這些分析使我們長了不少見識,知道了黑客是怎樣進行攻擊的。但還有很多問題沒解決。這些問題之一就是這些攻擊是否是通過工具進行的。在7月2日,一名黑客成功地通過猜到的使用者名稱和密碼進入了蜜罐系統。被截獲的資料將回答這些未解決的問題。   首先讓我們來看看黑客在成功登入蜜罐後做了什麼。一但黑客進入蜜罐後,他們就開始以蜜罐系統作為跳板通過SSH掃描工具來掃描其它的SSH伺服器。但由於蜜罐系統的網路輸出已經用防火牆封死了。因此,掃描並未找到任何SSH伺服器。   在掃描後,黑客在蜜罐系統上安裝了一個IRC服務端。黑客可以通過這個IRC服務端來控制被攻擊的伺服器。使用IRC工具控制伺服器可比使用SSH進行登入方便多了。黑客可以通過這個工具同時控制很多這樣的伺服器。   通過監視IRC資料流,我們發現黑客正在使用這個工具來掃描我們的B類網路。在幾個小時之內,黑客通過這個工具掃描了4個B類網路,在這4個B類網路中包含了數千臺SSH伺服器。在掃描其間共使用了160,324個帳戶和密碼。這些使用者名稱和密碼和在攻擊蜜罐系統時使用的使用者名稱和密碼類似,但它們的範圍更廣。   建議   在前幾部分我們通過分析瞭解了黑客的一些企圖和攻擊方法。在這一部分讓我們看看如何來防範他們的攻擊。 其實有很多簡單的方法可以阻止這些攻擊。最直接的方法用是關閉daemon服務,這個服務在許多系統中預設是啟動狀態。當然,如果你不想這麼做,那麼還有其它的方法。   你還可以使用Unix或Linux系統中的/etc/hosts.allow和/etc/hosts.deny檔案來限制對daemon服務的訪問。還可以在SSH伺服器上安裝一個防火牆,用於隔離內部和外部的網路。

  使SSH伺服器只可以被指這的使用者訪問

  將SSH伺服器的監聽埠從22改為其它的埠。當然,這麼做並不能防止伺服器被攻擊,但它可以降低發現SSH daemon服務的可能性,因為,一般的SSH掃描工具的預設埠都是22。   更改登入驗證的方式,即不使用密碼進行登入。如果你沒有這個條件,那就將密碼設成強密碼。   SSH為我們提供了一種更安全的加密方法,通過這種加密方法可以有效地緩解這種攻擊方式。這種方法是基於金鑰的,也就是所謂私鑰和公鑰。公鑰被放在伺服器上,供登入使用者訪問。這個公鑰只有和相應的私鑰相匹配後成功才能登入。一但你使用了金鑰,那麼就只有自己才可以通過私鑰進行登入,而黑客由於沒有私鑰,而且這些種私鑰又很難猜測,因此,黑客的任何登入都會以失敗告終。雖然大多數伺服器在預設情況下都提供了金鑰登入,但有些管理員並沒有將基於密碼的登入關閉,這就給黑客留了一個後門。因此,在配置伺服器時,切記只啟動金鑰登入,而不要啟動密碼登入,這樣才能萬無一失。   如果必須採用密碼驗證方式,那就將帳戶名起得複雜一點。我們通過蜜罐系統觀察到,大概有96.3%的預設帳戶被猜到,一旦帳戶被黑客猜到,那麼黑客就已經將一隻腳踏進了你的門。因此,在設定帳戶時不要使用簡單的名子,如’Peter’, ‘Mike’等,而要使用姓名的組合,如’seifer_chr’。這樣可以降低帳戶被黑客猜到的可能性。   另外,這個’root’帳戶在大多數服務上都存在。我們推薦你將這個使用者關閉,而使用其它的帳戶來管理伺服器。   黑客一般使用大多數系統都存在的帳戶進行攻擊,如ftp或mysql。如果這些帳戶和系統帳戶有什麼聯絡的話,那將是非常危險的。所以我們建議在不需要這些帳戶時,將FTP或MySQL以及其它服務關閉。   除了需要複雜的帳戶名外,擁有強壯的密碼也非常重要。我們發現有很多伺服器的密碼就是帳戶名後加一些數字,更有甚者密碼和帳戶名完全一樣。當然,這可以是一些系統管理員或使用者的習慣。我想最好的辦法是在伺服器安裝一些工具軟體,如passwd+,以強制使用者使用強密碼。

相關推薦

安全基礎 基於SSH惡意登入攻擊分析

紹   近幾年,在一些網路日誌中出現了大量的基於SSH的惡意登入的攻擊記錄。本文將利用蜜罐(honeypot)陷阱對這類攻擊進行分析,最後,本文提供了一些關於如何防範這類攻擊的建議。   蜜罐的使用方法研究   位於紐西蘭的Honeynet聯盟的分支機構:紐西蘭Honeyne

小隱隱於野:基於TCP反射DDoS攻擊分析

客戶 系統 developer title 不必要 lock memcached 發布 而是 歡迎大家前往騰訊雲+社區,獲取更多騰訊海量技術實踐幹貨哦~ 作者:騰訊DDoS安全專家、騰訊雲遊戲安全專家 陳國 0x00 引言 近期,騰訊雲防護了一次針對雲上某遊戲業務的混合

區塊鏈安全基於區塊鏈網路攻擊的方式原理詳解

目前對區塊鏈網路安全威脅最大的3種攻擊方式:Sybil攻擊、Eclipse攻擊和DDoS攻擊。 本文將重點講解上述三種攻擊方式的原理,以供有關機構參考,在開發基於區塊鏈網路的應用系統時採取措施加強防範。 1 基於區塊鏈網路的 Sybil攻擊 Sybil攻擊最初是由Douceur在點對點網路環境中提出的,他指

惡意代碼分析實戰》之基礎步驟

讀寫 註冊表 二次 hook peid 響應 install 持久化 文件 靜態分析: 1,virus total反病毒引擎搜索2,MD5計算哈希值3,用PEid檢測是否加殼,並進行脫殼操作4,stringe.exe查看惡意代碼的字符串,從中可以看到是否含有特殊的網址,IP

伺服器運維:Centos-設定ssh安全只允許指定使用者登入

自己的伺服器若被別人隨意登入就會十分的不安全,為此我們可以選擇通過設定ssh安全來只允許指定使用者登入,就會安全很多。   一、獲取需要指定的使用者ip         本機ip獲取方法:開始 --> 執行 --> 

[轉]python3之paramiko模組(基於ssh連線進行遠端登入伺服器執行命令和上傳下載檔案的功能)

轉自:https://www.cnblogs.com/zhangxinqi/p/8372774.html 閱讀目錄 1、paramiko模組介紹 2、paramiko的使用方法 回到頂部 1、pa

讀取系統"安全"日誌中的失敗登入嘗試 + 新增攻擊者IP到防火牆策略

Private Sub btnRead_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt

SSH登入日誌分析指令碼(Python)

好久沒有更新部落格了,寫了很早的一個指令碼存下檔,一個用於分析使用者登入日誌 /etc/auth.log的指令碼,可以分析 成功、失敗次數,以及來自的IP地址和登入失敗的使用者名稱,可以用於監控是否有暴力攻擊,多了就可以用於收集字典,用來避免密碼過於簡單的問題 #/usr

基於SSH的使用者名稱密碼驗證和免密登入原理

關於SSH你只需要瞭解這些 SSH即安全外殼協議:專為遠端登入會話和其他網路服務提供安全性的協議,通過使用SSH,你可以把所有傳輸的資料進行加密。 瞭解OpenSSH OpenSSH是SSH的免費開源實現,是使用SSH透過計算機網路加密通訊的實現。它是

[Linux][入門系列]CentOS 的基礎使用-SSH安裝設定與使用大全(下)-SSH的公祕鑰登入及免密登入設定

上一篇blog介紹了我們正常使用SSH進行連線的設定等操作。 SSH同時還支援使用公鑰和祕鑰的方式進行登入,本篇講著重介紹ssh的這項功能 什麼是公祕鑰? 先來一段百科的定義~ 公鑰(Public Key)與私鑰(Private Key)是通過一種演算法得到的一個金

SSH原理和基本使用:ssh 安全配置 以及ssh key 認證登入

一、什麼是 SSH ?      SSH全稱(Secure SHell)是一種網路協議,顧名思義就是非常安全的shell,主要用於計算機間加密傳輸。早期,網際網路通訊都是基於明文通訊,一旦被截獲,內容就暴露無遺。1995年,芬蘭學者Tatu Ylonen設計

基於SSH埠轉發實現telnet的安全傳輸

學過一點Linux的人看到這題目,可能就感覺有點白痴。確實,SSH的一大功能就是加密的遠端登入,何必多此一舉。 在此,不得不先宣告,本文的重點是實現SSH安全埠轉發的功能。熟悉SSH的人都知道,埠轉發也是SSH的一大功能。此功能可以加密非安全的TCP連線,如:FTP,IMAP,HTTP等協議。之所以選

網路安全基於流量的攻擊型別

DoS 拒絕服務DDoS 分散式拒絕服務DRDoS 分散式反射拒絕服務:公網上有很多公共的服務如redis、mongodb、memcache、NTP、UPnP等,攻擊者對這些服務傳送偽造的請求。如:Hi memcache,請把快取的資料發給我。我的IP是受害者。 這種攻擊叫

基於SSH實現員工管理系統登入許可權的過濾器與攔截器的綜合使用

需要實現的功能:判斷使用者是否已登入,未登入使用者禁止訪問任何頁面或action,自動跳轉到登入頁面。 過程很艱辛,雖然是挺簡單的應用,但是自己也弄了好久才有些許弄明白,結合網上搜索到的內容寫下這篇總結,待日後可回頭檢視。 剛開始是先搜了攔截器如何攔截未登入

java基礎系列之ConcurrentHashMap源碼分析基於jdk1.8)

threshold 主存 類比 tile num method 過程 參數 nsf 1、前提   在閱讀這篇博客之前,希望你對HashMap已經是有所理解的;另外你對java的cas操作也是有一定了解的,因為在這個類中大量使用到了cas相關的操作來保證線程安全的。   

(資料科學學習手札78)基於geopandas的空間資料分析——基礎視覺化

本文對應程式碼和資料已上傳至我的Github倉庫https://github.com/CNFeffery/DataScienceStudyNotes 1 簡介   通過前面的文章,我們已經對geopandas中的資料結構、座標參考系以及檔案IO有了較為深入的學習,在拿到一份向量資料開始分析時,對其進行視覺

20145207 Exp9 web安全基礎實踐

強制 inpu family gets 再看 images clas bsp 基礎實踐 Exp9 web安全基礎實踐 實驗後回答問題 (1)SQL註入攻擊原理,如何防禦(還不會做。。看的別人的感覺是這個意思) 攻擊原理:修改信息 防禦:禁止輸入 (2)XSS攻擊的原理,

20145311王亦徐 《網絡對抗技術》 Web安全基礎實踐

檢測 mage bottom 字符串 backdoor 隱私 port pda 寫入 2014531王亦徐 《網絡對抗技術》 Web安全基礎實踐 實驗內容 利用WebGoat平臺嘗試了一些XSS、CSRF、SQL註入攻擊 基礎問題回答 1、SQL註入攻擊原理,如何防禦

20145216史婧瑤《網絡對抗》Web安全基礎實踐

數據 轉碼 釣魚網站 常用 用戶修改 nbsp mit 當前頁 fun 20145216史婧瑤《網絡對抗》Web安全基礎實踐 實驗問題回答 (1)SQL註入攻擊原理,如何防禦 攻擊原理: SQL註入攻擊指的是通過構建特殊的輸入作為參數傳入web應用程序,而這些輸入大都是S

20145309李昊《網絡對抗技術》實驗9 web安全基礎實踐

ons ava transfer mysql 要求 占用 nsf 工具 1.0 本實驗在同學幫助下完成 一、實驗準備 1.0 實驗目標和內容 Web前端HTML。能正常安裝、啟停Apache。理解HTML,理解表單,理解GET與POST方法,編寫一個含有表單的HTML。