惡意程式檢測vs防毒軟體 (下)

上期介紹了惡意程式、防毒軟體(靜態分析)以及病毒檢測(動態分析)。靜態分析是透過研究並分析程式碼內容,找出其中唯一的程式碼作為辨識特徵之病毒碼,搭配防毒軟體中之掃描功能,方能自遭受感染的電腦中,找出有問題的惡意程式。

相對於透過特徵值分析惡意程式的靜態分析方法,動態分析方法是將惡意程式放置於沙箱(SandBox)──一個幾乎與實體主機隔絕的環境──中,並於其中促使惡意程式實際執行,觀察該惡意程式的行為並記錄。動態分析本身是著重於惡意程式執行時的行為觀察,即便駭客將惡意程式的程式碼進行更動,則因其執行時仍然進行對受害電腦產生影響的惡意行為,因此不會被混淆分析,仍然可以判斷出該程式為惡意程式。

 

惡意程式vs靜態分析

在此方法中,研究者會先將惡意程式進行反編譯──亦即將惡意程式轉換回程式碼的樣態,並取得惡意程式可能執行的行為及命令等進行相關分析,研究人員會將其中特殊之程式碼片段,指定為特徵辨識用途之病毒碼,彙整之後放入防毒軟體資料庫中供使用者進行病毒防護。若電腦不幸接觸到該惡意程式,則防毒軟體在掃描到惡意程式後,會將其進行反編譯,將程式碼和資料庫中的病毒碼進行比對,若該程式擁有和病毒碼相同之程式片段,則防毒軟體會認定此為惡意程式,並且進行相關處置動作。在以上行為中,研究人員僅是對於惡意程式中的程式碼進行「預測」,判斷此程式是否為惡意程式,因此並未真正執行惡意程式。

而惡意程式為了避免被反編譯、阻止反向工程,在其程式碼中,經常會包含「程式隱匿技術 (Code Obfuscation technique)」,讓解析者無法知道該程式的運作流程和行為。程式隱匿技術原本的作用是用於一般合法軟體中,用來保護程式內容、智慧財產權等,避免軟體的商業機密被他人反編譯後,損害公司之商業利益,或是避免機密性質之內容遭到第三者的竊取和窺視。然而,此種技術卻經常被用於惡意程式中,將自身偽裝成一般正常之程式,規避防毒軟體的偵測。

除了程式隱匿技術之外,阻止軟體被反編譯的還有加殼(Packer)技術,也就是將程式碼用另一段正常的程式碼包裹,保護其中的程式碼不會輕易地被反編譯。在最初,加殼的目的主要是為防止檔案被破解,保護軟體的版權等,但是若此技術被應用於惡意程式中,便是一個防止惡意程式被破解及分析的便利工具。而這樣的加殼,會使得研究人員難以反編譯,進行近態分析動作。

除了以上兩種方法,還有一種透過加密技術(Crypter),將程式碼進行加密,使得惡意程式難以被反編譯以及分析。在加密技術的運行下,會使得研究人員無法順利分析之外,也會因為程式碼經過加密,而規避了防毒軟體的偵測,導致電腦受到惡意程式的侵駭。

雖然靜態分析所需工具和資源較少,並且有一定的準確率,但由於靜態分析並沒有真正執行惡意程式,僅僅是分析程式碼的架構和行為,因此,只要將惡意程式中的惡意行為程式碼隱匿起來,靜態分析便難以準確偵測惡意程式。

 

惡意程式 vs 動態分析

相較於研究程式碼為主的靜態分析,動態分析是實際將程式在幾乎與實體主機隔絕的環境執行,並記錄該程式的行為,若有任何惡意之行為,便可以清楚判斷該程式為惡意程式,可抵禦靜態分析困難的隱匿技術、加殼及加密等,彌補靜態分析的缺陷。在動態分析方法中,多半是以建立沙箱的方式,將惡意程式在其中執行以取得更準確的惡意程式行為。然而,這種方法因需讓惡意程式實際執行,因此所需花費的時間較長,且建立沙箱以及運作所需要的資源和技術都較靜態分析高。此外,若惡意程式裡包含了偵測虛擬環境之功能,則可能被惡意程式偵測到本身處於虛擬環境中,進而不執行或不進行惡意行為以規避研究人員的分析。

為了規避動態分析,最為直接的方式便是偵測程式本身所在的環境是否為虛擬沙箱。由於虛擬化技術往往並非直接與硬體溝通,因此惡意程式便可監測到環境的行為,因而認為自己處於虛擬監測環境中,導致惡意程式停止運作或隱藏其惡意行為,待惡意程式入侵正常電腦後,方開始其惡意行為。

另一種迴避動態分析的方式,是拉長執行時間。有些惡意程式本身會有一定時間的潛伏期,例如電腦遭感染後數天才開始運作、進行惡意行為。由於無從得知、不固定的潛伏時間,即便研究人員將惡意程式放入沙箱中執行,也無法確定該程式是單純的程式或處於潛伏期,待條件滿足後,便會立刻進行竊取或破壞等惡意行為,因此,此種惡意程式對動態分析而言有一定之難度。

除上述兩種規避模式外,還有一種「無檔案攻擊」,顧名思義,這種攻擊一般無實際檔案或下載檔案,而是直接於受害電腦的記憶體中執行。由於此種攻擊無實際檔案,導致研究人員也無實際檔案可供分析,是反制動態分析的一種方式。在動態分析的過程中,一般沙箱會對內部檔案進行隨機掃描,但無檔案攻擊因不使用檔案,使得沙箱無法掃描含有惡意之檔案;並且,此種攻擊不似其餘惡意程式將本身包裝為應用程式,透過應用程式介面(API)進行溝通和惡意行為,無檔案攻擊多半躲藏於系統執行序中,即便沙箱攔截API的資訊,也無從取得惡意程式的訊息;無檔案攻擊通常也包含潛伏之功能,延後惡意行為的執行,招致沙箱有限的觀察時間中,無法順利觀察到惡意程式真正執行惡意行為;甚至此種攻擊往往會移除在記憶體內的感染痕跡,使得研究人員在事後要進行鑑識分析都有其難度。

 

靜態分析 & 動態分析

雖然目前分析技術及設備越來越完備,以及相關工具的進化,針對大部分的惡意程式已可以順利分析。但惡意程式隨著防護及鑑識工具的提升,也會為了避免被分析而增添更多的防護功能。若僅僅透過一種分析方式,難免會因其分析特性的弱點,而產生誤判或無法處理之狀況。因此,必須透過將兩種分析方式結合、互補,方能達到最好之惡意程式防護成效。

靜態分析可能因為隱匿技術而無法判斷,然而,若將該程式放入動態分析環境中,即便該惡意程式經過加殼方式而規避了靜態分析,但該程式要執行時,勢必得自行進行解殼並開始執行,此時,便可以透過動態分析對惡意程式進行分析和判斷,取得準確的判斷結果。

相反地,當惡意程式本身有潛伏期,需數天時間方進行惡意行為。此時,則可以將其程式碼直接進行反編譯,以靜態分析方式觀察並分析,取得其病毒碼,並以此作為判斷之特徵值。

透過靜態分析及動態分析的搭配,可以有效且正確地對惡意程式進行辨識以及後續處理。

為了有效將靜態分析(防毒軟體)與動態分析(沙箱)結合,Virus Check系統透過國家實驗研究院高速網路與計算中心的沙箱以及趨勢科技的防毒軟體,達到全面且完整地對檔案進行分析,減少惡意程式對使用者的威脅。

首先,此系統致力於保護檔案之機密性,由於國際上檢測系統多會將使用者所上傳之檔案分享給付費使用者,導致隱私和機密的流失。

收到檔案後,系統會以防毒軟體進行檢測,同時交予沙箱進行動態分析,將靜態以及動態分析同時且互補地檢驗,以達到最佳檢測成效。

待檢驗完畢後,系統會透過風險值告知使用者該檔案可能為惡意程式之風險為多少,並且附上完整檢測報告供使用者下載。

Virus Check相較於僅進行靜態分析之國際檢測系統,更增添了動態分析之優勢,補足了防毒軟體的不足之處,以獲得完整之分析成果。除此之外,此系統可透過上傳之檔案,建構專屬於台灣之惡意程式資料庫,完整國家資安防線。

為了提高台灣整體資安防護能量、減少感染惡意程式之風險,除了不要下載來路不明之檔案,對於下載之檔案,最好透過檢測系統完整分析,避免電腦遭到惡意程式之威脅。台灣資安能量,需要大家共同參與和努力。

資料來源:

  1. https://www.nccst.nat.gov.tw/ArticlesDetail?lang=zh&seq=1108
  2. http://140.125.45.29/courses/files/network%20security/network%20security%20ch%2016.pdf
  3. https://ithelp.ithome.com.tw/articles/10188209
  4. https://www.itsfun.com.tw/加殼/wiki-9332436-9719216
  5. https://www.itread01.com/content/1551727225.html
  6. https://paper.seebug.org/222/#33
  7. http://speed.cis.nctu.edu.tw/~ydlin/miscpub/indep_study_cywu.pdf
  8. https://www.easyatm.com.tw/wiki/電腦病毒
  9. https://blog.trendmicro.com.tw/?p=49025

惡意程式

惡意程式、Malware,為有心人士撰寫一對電腦或各種電子設備可能產生影響、未經授權存取、竊取資料,甚至破壞的程式碼。而惡意程式又包括最常聽聞的電腦病毒、蠕蟲、木馬病毒、間諜軟體、惡意廣告、後門程式以及近期極為常見的勒贖軟體等。

隨著電腦及網際網路的越發便利,使用的普及率不斷攀升,但相對的,欲從電腦使用者取得非法利益者也逐漸增長,使得惡意程式的成長率相當驚人。根據AV-Test於2019年六月的統計報告指出,近五年來,惡意程式的數量成長率高達約92.97%,代表使用者即便已安裝相關防護軟體,仍需更加小心提防,以免遭受性能暫時優於防護系統的惡意程式入侵。

 

狹義的電腦病毒 (Computer Virus) 是一種會自我複製的惡意程式,相較其他惡意程式,較為人所知、造成之影響也較明顯,經常附著在檔案或程式上,待電腦下載並開啟後即有可能遭受病毒感染。並且在受感染電腦啟動時,隱密地進行作業,較為常見的行為是破壞受感染電腦上之檔案。

電腦蠕蟲 (Computer Worm),基本與電腦病毒相似,均會自我複製。除此之外,病毒必須透過人為發送遭感染的檔案或程式讓使用者啟動後方遭感染;然而蠕蟲不須人為操縱,本身就具備自行傳播的能力,蠕蟲會搜尋連接之主機或其他機器是否為遭受感染,並且透過受感染系統上內建的傳播功能—例如檔案傳遞功能—達到感染下一個受害主機的可能性。

木馬病毒 (Trojan),全稱為特洛伊木馬 (Trojan Horse),名字是源自於古希臘特洛伊戰爭之典故,亦即模仿神話故事中的木馬,將惡意程式包裝成擁有特定使用者感興趣功能的工具程式,然而在程式中卻包含了可以控制受害電腦、存取受害電腦資料、甚至造成受害電腦危害的惡意程式碼。這種惡意程式類似電腦病毒,擁有很高的隱密性,往往會隨著受害者電腦作業系統啟動而啟動,影響受感染電腦。

間諜軟體 (Spyware),主要功能就如同字面意思,潛伏在受感染電腦中,未經授權便收集並回傳使用者相關資訊—從網際網路瀏覽活動到鍵盤錄製、盜竊信用卡資訊等,均可以稱作間諜軟體。此種惡意程式的範圍非常廣泛,只要是顯示任何會影響使用者的行為,若未經使用者同意,依然可被稱做間諜軟體。更遑論記錄使用者鍵盤、取得使用者帳號密碼,更是極為嚴重的惡意程式。

惡意廣告是透過網頁或APP等所顯示之廣告來散播惡意程式的廣告,例如瀏覽網頁時的彈出是廣告、或是文章段落間安插的廣告,甚至手機應用程式使用時夾帶的廣告,都有可能是惡意廣告。此外,有心人士也可能於安全網站中植入惡意廣告,讓使用者在不知情的情況下被導至相似的惡意釣魚網頁,誘騙使用者輸入個資甚至金融資訊等。

後門程式 (Backdoor),就如同替受害電腦開啟後門,可以透過程式的撰寫或其餘方式繞過系統的安全檢測和安全性控制,導致受害電腦在認為安全的情況下遭受惡意程式的侵襲。但對於開發者而言,後門程式是開發後預留的修整渠道,當開發的程式有任何漏洞或問題時,開發者便可以透過該後門進入並進行修正。然而,當這個後門被有心人士探測或聽聞,或是發行後未將後門移除,則可能遭受他人利用,進而對使用者的電腦或手機造成極大的威脅。

勒贖軟體 (Ransomware) 可說是在近幾年最廣為人知的惡意程式,相較其他惡意程式多半以破壞以及取得機敏資料為主,勒贖軟體則是顯而易見地以取得受害者的贖金做為目標而運行。其他的惡意程式—如電腦病毒、蠕蟲等—都可以明顯察覺該電腦以遭受感染,反觀勒贖病毒,受害電腦感染後,並不會大肆破壞或影響電腦的運作,卻會在毫無徵兆的狀況下加密受害電腦中的檔案,直到一段時間後,才跳出視窗告知受害者其電腦中的檔案已被勒贖軟體加密為特殊格式,必須透過惡意程式指定的方式支付款項,才能自攻擊方取得解密金鑰以解鎖電腦中的重要檔案。除此之外,許多類型的勒贖病毒會有解密時間限制,若到指定時限,受害方還未支付贖金,則勒贖軟體會將解密的金鑰刪除,導致使用者電腦中的資料再也無法透過金鑰解密還原。勒贖病毒的變種速度極快,即便許多資安廠商或組織—例如No More Ransom等—已經持續在製作勒贖病毒的解藥,但若受害者不幸感染到最新的病毒,恐無法及時還原電腦中的重要資料。因此,建議使用者必須要定期備份電腦中的檔案至硬碟/雲端硬碟或是其他的異地儲存空間中,若真不幸感染勒贖軟體,可以透過備援方式還原重要資料。同時,不論是作業系統、防毒軟體或其他防禦系統,均會持續針對新穎的惡意程式進行更新,因此,使用者必須定期更新相關系統的版本,提高惡意程式的檢測範圍和其準確性,減少中毒的風險。除此之外,使用者必須要有基本的資安警覺性,並定期追蹤近期病毒動態、新的感染途徑、減少感染風險的方式等,同時,對於來路不明的檔案、程式等,除非真正必要,否則不要隨意下載、安裝。

 

防毒軟體

「防毒軟體 (Antivirus Software)」是大部分電腦使用者都知道並使用過的電腦防禦軟體,通常用於偵測電腦中是否有病毒存在或入侵,並且協助移除入侵的病毒,例如電腦病毒、蠕蟲、木馬病毒等惡意程式。一般所言防毒軟體基本上應含有防範、尋找以及清除惡意軟體的功能,是電腦資通安全防護中,相當重要的防護軟體。

病毒碼 Virus Pattern

許多人在安裝並啟動防毒軟體後,便認為電腦已達到100%的防護。然而,相當多的使用者在安裝了防毒軟體後,還是遭受了惡意程式的感染及攻擊,使得某些使用者對防毒軟體產生不信任感。

相對地,防毒軟體在安裝時,會有「病毒碼 (Virus Pattern)」的資料庫設置其中,用以辨識該電腦的檔案及程式中,是否有惡意程式的存在。防毒軟體公司在發覺新的惡意程式後,會在該惡意程式中,擷取一段特殊且該惡意程式唯一的特徵碼,由於該特徵碼是獨一無二的,因此,只要電腦檔案中出現了這段特徵碼,防毒軟體便可清楚知道電腦遭到此種惡意程式的侵害,並且進行進一步的處理。此獨一無二的特徵碼,即為該惡意程式的病毒碼。

掃描引擎 Scan Engine

除病毒碼之外,在防毒軟體中,其掃描引擎 (Scan Engine) 亦同樣重要,掃描引擎也可以說是防毒軟體運行的重要核心。掃描引擎就如同汽車的引擎一般,被華美的外殼包裝起來,一般人較少會直接接觸。然而,引擎卻是決定該汽車性能的重要關鍵,也是影響使用者使用觀感的最大因素。

由於防毒軟體主要的功能是掃描電腦中所有檔案/程式,並且和背後含大量病毒碼資料庫中的資訊進行比對,用以檢視是否有惡意程式的存在。因此,防毒軟體在對電腦進行整體掃描行為時,其運作是否順暢、是否影響使用者的操作、花費的時間長短,甚至是否會對該電腦造成永久性的影響,都是使用者評估防毒軟體的重要因素。

一個防毒軟體即便設計的再華美、再直覺化,若該掃描引擎令使用者感到不便或是影響到電腦地運作,勢必會對該防毒軟體的評價大打折扣。因此,掃描引擎可以說是防毒軟體的核心,搭配著病毒碼的辨識,方能有效達到檢測並控管惡意程式的功能。

防毒軟體安裝後為何仍有感染風險?

許多使用者會認為只要安裝防毒軟體,便可完全抵禦惡意程式的入侵,但實際上,惡意程式正以極快的速度推陳出新,而這些新的惡意程式則需透過防毒軟體廠商進行病毒碼的製作,該防毒軟體方能偵測到新種惡意程式並予以移除。而此時,若使用者並沒有針對防毒軟體的版本進行更新,則即便防毒軟體廠商已進行新種惡意程式病毒碼製作完成,使用者未即時更新防毒軟體中的掃描引擎和病毒碼,一樣無法偵測到最新的惡意程式,因此即便安裝了防毒軟體,仍然有可能遭受惡意程式的侵害。

除此之外,由於病毒碼的製作以及掃描引擎的更新和製作有其難度。由於現今的惡意程式越來越多,要找到真正獨一無二的病毒碼相當困難,甚至有時候還會誤判正常程式為惡意程式,導致相關資料被防毒軟體移除。因此,防毒軟體廠商會在取出病毒碼並建立資料庫之後,對最常見的至少百種軟體進行病毒測試,必須均不能出現誤判以及都需準確偵測出相對應的惡意程式,才算真正完成一個新種惡意程式的病毒碼檔案。而掃描引擎同樣也隨著電腦檔案的多元化而不斷演化中,甚至攻擊者僅需針對惡意程式進行些微的修改,且仍保留該惡意程式運作行為的情況下,會因為特徵值的變動,使得防毒軟體無法辨識出惡意程式。因此防毒軟體廠商除了必須跟進電腦中的各種檔案類型之外,也必須針對其掃描的模式以及效率等不斷進行優化,否則除了掃毒效率不彰外,對某些可能藏有惡意程式的新檔案類型,恐無法順利偵測並進行後續處理。

惡意程式檢測

由於防毒軟體是廠商透過工具快速辨識該程式是否為惡意程式,再取出該惡意程式的相關特徵值作為病毒碼供防毒軟體更新後辨識。然而,靜態分析雖然有其一定的準確率,但對惡意程式而言,目前數不勝數的惡意程式中,要找到真正獨一無二的成分相當困難,因此在實務上,病毒碼的製作是頗為棘手的。同樣地,對於使用者而言,若未針對所安裝的防毒軟體定期進行更新,恐造成防毒軟體地分析困難以及準確率的下降,導致使用者即便安裝了防毒軟體,卻仍遭受到惡意程式的威脅。

相對於防毒軟體,惡意程式檢測並非透過特徵值進行判斷,而是實際運作,以獲得更加完整且詳細的惡意程式行為資訊。若有新惡意程式的產生,實際讓惡意程式在「沙箱 (Sandboxes)」運作,紀錄並取得該惡意程式的行為、運作模式、是否和攻擊者進行聯繫、甚至取得可能為惡意程式開發者/攻擊者的相關訊息。

惡意程式動態分析平台

為了減少如防毒軟體等較為耗費人力以及特徵值分析困難等問題,惡意程式檢測是採取直接運行惡意軟體,並分析其行為的策略。

其分析方式為建立一虛擬、與真實系統隔離的環境,將惡意程式放入該虛擬環境中,觸發惡意程式在該環境中運作,除避免惡意軟體對實際系統造成影響外,同時可以詳盡地分析該惡意程式的所有行為。

惡意程式動態檢測分析的環境,必須是一安全、可靠,不會對實體系統造成任何影響,且可以相當容易地將該環境回復至惡意程式運作前的初始狀態,方可順利進行其他惡意程式測試的運行。在此種動態分析的模式中,均是以沙箱建立其所需的虛擬環境。

在針對惡意程式動態分析的技術上,建立環境的沙箱種類相當繁多,並且每一種沙箱針對惡意程式的防護和屏障等級也有所差異。此種技術為透過建立一個能夠執行惡意程式、不影響實體系統運作的環境,並讓程式在其中運作,透過沙箱觀察運作的行為以及對環境造成的影響,判斷該程式是否為惡意程式。在這種環境中,多半是和實體系統隔離或有所管控及限制,即便運行惡意程式亦不會對實體環境造成影響,因此可以透過惡意程式的完整執行,分析其行為及相關訊息,作為判別惡意程式的基準資訊。

動態分析平台運作

在建立環境後,研究人員會將可能為惡意之程式放入虛擬環境中,並觸發該程式執行,檢測該程式是否有進行惡意行為,且記錄下該程式的功能以及包括網域名稱、IP位址、文件路徑以及在系統或網路上與其相關的其餘檔案等特徵值。此外,若該惡意程式欲與攻擊者/惡意程式開發者進行通信,也會記錄下與外部伺服器聯繫的指令、控制或試圖下載其餘的惡意軟體之相關內容。

此種分析模式,可以快速地辨識並分析其中之惡意程式。但由於需要一與外界隔絕之虛擬環境,因此,在製作、準備相關環境時的耗費較大,且需要較多的硬體資源。但相對而言,可以清楚且詳細地取得該惡意程式從產生到結果一系列過程中地各項細節,雖資料量相當龐大,但透過適當的工具,便可以快速且正確地分析該惡意程式,更有效率地辨識並大幅降低惡意程式的威脅。

 

資料來源:

何謂Phishing?

Phishing,又稱為網路釣魚,是一種有心人士透過偽裝、假冒真實的網頁,騙取受害者信任,進而達到獲取受害者個人資料、帳號密碼甚至信用卡資訊等行為。受害者可能會收到熟識的友人寄來的email或網址,讓使用者點選email或該網站,並且在受害者進入釣魚網站之後,要求使用者輸入個人的帳號密碼等資訊,就這樣將自己的資訊給了有心人士。

針對網路釣魚,又分為幾種技術—

  1. 假冒網址:針對釣魚網站的網址幾個字元進行修改(1與l、0與O、m與rn…),讓網址看起來容易被誤認為原本的網址,但其實已非使用者所欲前往之網站。例如google.com,有心人士可將其改為www.go0gle.com或www.g00gle.com,乍看之下似乎為正常網站,但實際上卻已落入假網站之陷阱中。
  2. 網頁偽造:釣魚網站的排版、圖案、標示,與原本使用者所欲前往之網站極為相似或相同。因此,使用者若不小心連到假冒的釣魚網站,輸入登入之帳號密碼或個人資料,就會讓有心人士收集到受害者的個人資料。
  3. 電話網釣:雖然稱作『網路釣魚』,但並非所有攻擊手法均需透過電腦完成。有心人士也可能透過電話致電到受害者家中或手機,表示自己是某家公司或銀行等受害者曾使用過的網站,並且告知受害者其帳戶有問題,要求受害者輸入或告知相關資訊。甚至有些電話網釣在撥通後,就會要求使用者鍵入自己之相關資訊,導致其個人資料和敏感資料之洩漏。而這些電話網釣,有些已不似過往會顯示『不明來電』等隱蔽的電話系統,現已有使用假冒的相關資訊,降低受害者的戒心,進而達到更佳的詐騙率。
  4. WiFi免費熱點網釣:在人人都有智慧型手機的時代,到了咖啡廳、活動場地、甚至捷運等大眾運輸工具時,都會有免費的WiFi提供一般民眾連線。此時就會有駭客,開啟名稱相似相似/相同的熱點,例如台北常見的Taipei Free免費公共熱點,有心人士可能會於鄰近台北市的地區、將熱點名稱改為TPE-Free,讓曾經使用該熱點的使用者,毫無戒心地使用了TPE-Free熱點。而此時,當受害者連入該假冒熱點,後續所瀏覽的網頁、填入的資訊、自己的帳號密碼、甚至信用卡資訊等重要資料的傳輸,若沒有經過https的加密,就會經由該熱點傳入網際網路,因此,有心人士只要攔截下使用者寄出之封包,便能查看裡面所有訊息,並且用於其他用途中。

HINT:

釣魚網站可以想做一家黑心公司,想要讓客人去到錯的店家、花費更多的錢去買類似的商品。

因此 (1)店家有可能將路上的路標進行更改,例如將鼎泰豐的名字改為頂太風,並且放置顯眼的路標,讓一般人信以為真並且前往了假冒的頂太風 (連結操控)。

(2)並且在受害者進入店家之後,其裝潢和網路上查到的照片相差無幾,除了價格的差別之外,菜單內容也和其他人士提供的一樣,因此受害者就會輕信這一家是真的鼎泰豐。並且店家可能將價格比真正店家提高之外,還可能要求受害者進行申辦會員卡或餐與優惠活動等,取得受害者資料、好進行後續的詐騙(網頁偽造)。

(3)確認會員資料過後,該假冒店家會在受害者用餐後幾天,致電給消費者,除了進行一般制式化的消費者滿意度調查以確保消費者下次的到訪外,還可能謊稱當初使用者刷的信用卡有問題,請使用者提供相關資料。而真的有前往該假冒店家用餐的使用者往往不疑有他,就將私人相關資訊給了店家,而該店家便可以透過這些資訊做盜用、偽造、甚至轉賣個人資訊等用途賺上一筆 (電話網釣)。

(4)除此之外,該假冒店家可以告知消費者店裡有促銷活動,邀請消費者再次前往該店家用餐,並且在消費者前來之後,紀錄下消費者和友人的對話,便可以取得受害者談話中提到的個人訊息,例如交友狀況、生日、學歷、公司等資訊,甚至可以透過店家的誘導話術,取得更加隱密的其餘資訊,讓店家可以以此延伸詐騙該受害者相關人士,甚至販賣給其餘對個資有興趣之有心人士 (WiFi免費熱點網釣)。

釣魚網站

在數種網路釣魚手法中,最為常見的非「網頁偽造」莫屬。亦即透過上述的技術,先製作出一假冒的相似網址,網站內不論是其色彩、放入之圖片、相關可使用之功能均與真正的網站相差無幾。甚至有些釣魚網站僅偽造首頁/登入頁,當受害者於假冒的首頁/登入頁鍵入私人資訊並登入後,釣魚網頁會將使用者導入真正的網頁,導致使用者因後續均使用真正網頁進行相關運作,因此對於被詐騙的事實毫無察覺。

當駭客架設釣魚網站後,接著可透過Email、通訊軟體、社群媒體等方式進行散播,通知所有目標受害者宣傳釣魚網頁、誘使受害者點擊進入釣魚網站並登錄相關之個人資訊。此時,不僅僅因為受害者鍵入了自己的私人資料而導致個資的外洩,同時極有可能當受害者點擊了該網站,就使得電腦進行了惡意軟體的自動下載,使得電腦因此感染了惡意病毒等威脅。

對於一般人而言,釣魚網站的最簡單辨識方式可能是網址列上的鎖頭,有鎖頭代表著該網站的連線過程是有進行加密的,但是不代表這個網站是安全的。根據Phishlab於2018/12月的統計指出,大約有49%的釣魚網站一樣是有使用https進行加密。因此使用者也可以將滑鼠移到鎖頭上檢視,若該網站使用的憑證為公開且安全的,瀏覽器會告知使用者該網站的憑證是公開且安全的憑證,若顯示為不安全的憑證就有可能是釣魚網站,建議可經由google搜尋後進入該網站之官網,較容易避免進入釣魚網站。網站的安全性。

除此之外,有些有心人士本身還會自行偽造看似正常的網址列圖片,放置在網頁的頂端。即便該網站是假冒的釣魚網站,如此一來,其不僅是擁有看起來正常的鎖頭,該網站更是擁有一切正常的網址顯示。尤其是透過手機瀏覽網頁的使用者,由於手機本身有自動隱藏網址列的特性,因此對於有心人士而言,要偽造出一個讓使用者看的假網址列是非常簡單且不易被發現的事情。對於一般使用者看來,就跟正常網站並無二致,導致使用者將自己的個人資訊洩漏給釣魚網站。

小心防範釣魚網站

由於網路的發展逐漸往「簡單」、「方便」的方向發展,為了減少使用者的麻煩,網際網路上的協定和設計越來越簡潔,導致越來越容易產生的詐騙釣魚漏洞。但對於一般使用者而言,信任於網際網路給予的便利性,反而會疏於防範可能的危險,尤其是這些以假亂真的釣魚網站。因此,一般使用者須注意以下幾點,以防範落入釣魚網站的陷阱中。

1. 注意網域名稱:
對一般使用者而言,最先能夠、也最需要注意的便是網址列上列出的網域名稱(網址)。雖然有心人士常常會用讓人容易產生混淆的網址,讓使用者在不注意的情況下落入陷阱,例如www.twcert.org.tw轉為www.twecrt.org.tw或www.tw-cert.org.tw等極為相近的網址。建議可以將常用的網站存成我的最愛,或是自己於網址列中輸入常用網址,都可以減少遇上釣魚網站的風險。

2. 不亂點擊來路不明的連結:
一般使用者,在收到標題看起來聳動、吸引人,甚至看起來相識的人所寄之電子郵件或訊息時,都會因好奇心而點擊訊息中的網址連結。然而,這些通常標明「特價」、「贈品」、「公務聯繫」等訊息,多半都是利用人們的好奇心,引誘人點擊之後,蒐集個人資料之外,更有可能會讓電腦感染上惡意程式。由於email的寄件者是非常容易偽造的,因此看似正常的公務email訊息,也有可能是駭客假冒的釣魚信件,例如收到了tw-cert@cert.org.tw的訊息,或許看起來正常,但tw-cert@cert.org.tw不代表真的是由cert的人所發出的郵件,也曾經發生過有心人士透過假冒供應商的email寄信給公司業務承辦人員,要求承辦人員進行付款等作業並提供匯款帳戶作業。而處理該事件的承辦人未仔細進行比對,因而將應付款項匯款置假帳戶中,直到合作廠商前來請款,承辦人才發現遭受有心人士詐騙。

3. 仔細觀察網站:
對於常用的網站,一般使用者就算沒有真的仔細觀察過,多少也會對該網站有所記憶。因此進入一網站時,可以先觀察該網站的狀況,查看是否有圖片或是字體等,和原本的網站是不同的,留心是否進入了釣魚網站,提高警覺。

4. 檢閱網站的安全鎖頭:
檢閱網址列上的網址旁是否有鎖頭。若沒有鎖頭、甚至出現了『不安全』字樣時,使用者就必須要特別注意,是否有可能落入釣魚網站。然而,正如前述所說,即便該網站有鎖頭,也不代表能夠完全信任該網站,因為鎖頭僅代表該網站有使用HTTPS,而目前約有一半左右的釣魚網站同樣有使用HTTPS,即便獲得了SSL憑證,也必須要小心進入了錯誤的釣魚網頁。

5. 安裝防毒軟體、定期更新系統:
除了以上的防範方式之外,本中心也建議使用者在電腦中安裝可信的防毒軟體或防火牆,許多防毒軟體同時都有內建惡意網頁、釣魚網頁的黑名單,當使用者連線到釣魚網頁時,防毒軟體會在瀏覽器上提出警告,同時,由於電腦系統的更新通常都是用以提升電腦的功能和防護力,因此建議定期更新電腦或手機系統,以取得最新、較為安全的作業系統,以免上了釣魚網站的當,讓電腦感染了惡意病毒,影響電腦正常的運作。

6. 定期更新瀏覽器:
現在主要的瀏覽器都有提供黑名單的功能,當使用者連線到有人通報的釣魚網站或惡意網頁時,都會再次提示使用者所連線之網頁為有問題之網頁,並再次確認是否要進行連線。

參考資料:

DNS (下)

網域名稱系統安全擴充(DNSSEC)

經歷上述的資安問題,為了解決使用者無法辨識收到的資訊是否有遭到竄改,因此,網際網路中,出現了「網域名稱系統安全擴充 (Domain Name System Security Extensions, DNSSEC)」。

在DNSSEC中,為了確保網路DNS的使用安全,使用了兩項相關技術:數位簽章以及DNS延伸安全協定(Extension Mechanisms for DNS, EDNS)。

DNSSEC與數位簽章

數位簽章

此協議主要是確保DNS 權威主機中的資料都是未經有心人士竄改之資料。當DNS權威主機收到請求後,在回覆訊息中,會放入含憑證之RRSIG。此時,DNSSEC並不會直接傳遞明文之資訊,會透過加密密鑰對發送之DNS訊息透過雜湊函式(hash function) 進行雜湊運算,經雜湊後之文件稱作「雜湊摘要 (Digest)」。並將此雜湊摘要(明文經雜湊後產生之雜湊值),以DNS權威主機之金鑰進行加密,此時,權威主機將訊息明文及加密後之雜湊摘要同時傳給DNS伺服器。

DNS伺服器收到後,會透過DNS權威主機金鑰(DNSKEY)進行解密。同時,為了確認該金鑰確實屬於此網域所有,因此將位於上一層之DNS權威主機中之DS (Delegation Signer) 進行驗證,確保金鑰沒有被偽裝或竄改。

DNS伺服器確認過後,將加密過之雜湊摘要以權威主機的金鑰解密,以取得完整雜湊摘要。此時若成功解碼,則代表此封包確實為該DNS權威主機所傳遞;否則若該封包非該權威主機傳遞,以該權威主機之金鑰無法解密。同時,再以同樣雜湊函式將明文進行雜湊運算,取得其雜湊摘要。最終,DNS伺服器會將本身運算出之雜湊摘要,和收到的雜湊摘要進行比對,若經他人竄改,即便是肉眼難以辨別之空格,均會造成雜湊數值之大幅變動;若相同則代表未經他人竄改。

如此,DNS伺服器便可透過以上動作確認:(1)該訊息確實為該DNS權威主機發送、(2)訊息未經他人竄改、(3)DNS權威主機無法否認發送此封包。

目前,各大DNS廠商均開始進行DNSSEC之運作,以確保大眾使用之安全性。同時,網際網路名稱與數字位址分配機構(ICANN)也於本月發文公告,敦促全球網域相關產業全面採用DNSSEC。DNSSEC可以完全相容於舊有DNS架構,並且可以大幅避免DNS紀錄被竄改之問題。為了DNS的安全,ICANN正努力進行推廣和執行,希望能及早促成DNSSEC之普及。

👉HINT:DNSSEC可以看做寄送機密信件。傳送者為了保護手中機密文件,因此將內容以中英文鍵盤對照轉換的方法編撰成一般人看不懂的密碼,然後再用帶鎖的盒子鎖起來,和機密文件一起送出去。接收者會將從傳送者那收到的鑰匙將盒子解鎖,代表確實是傳送者所寄。接著將收到的機密信件透過同樣方式編撰成密碼,再和帶鎖盒子中加密文件比對,若相同則代表沒有被任何人修改其中文字。

NSEC

以舊有DNS而言,若使用者查詢之網址並不存在,DNS權威主機僅會回覆使用者「不存在」之訊息。但未添加任何驗證訊息的「不存在」封包,很有可能會被有心人士擷取後,用以對一般使用者在查詢正常網域時,發送該網域不存在之訊息,導致使用者無法取得正確網域資訊及連接該網站。

因此,除了上述DNS訊息外,此機制會替此「不存在」之訊息進行簽章,以保障使用者取得「不存在」訊息,代表此網頁是確實不存在,而非他人偽造該訊息。回應並包含驗證之「不存在」之紀錄,稱作NSEC。

NSEC,全名為Next Secure,主要用以解決負面回應訊息(「不存在」訊息)之問題。此紀錄主要是將該網域下,所有的網域名稱進行排序,並透過兩者網域間之空隙,取得該被查詢網域之前後網域名稱做為紀錄並回傳。

這樣描述有些難以理解,因此舉例而言,若在twcert.org.tw網域下,有a.twcert.org.tw、ma.twcert.org.tw、pop.twcert.org.tw、te.st.twcert.org.tw、let.twcert.org.tw、move.twcert.org.tw等6筆網域名稱,則在該網域下,此些網域名稱會被排序為:

twcert.org.tw

a.twcert.org.tw

let.twcert.org.tw

ma.twcert.org.tw

move.twcert.org.tw

pop.twcert.org.tw

te.st.twcert.org.tw

此時,若使用者查詢love.twcert.org.tw,則使用者會獲得理論上於該查詢網域的前一筆和後一筆,亦即前一筆let.twcert.org.tw以及後一筆之ma.twcert.org.tw,代表兩者之間並無love.twcert.org.tw網域,因此驗證確實該網域並不存在。同時,若該訊息被有心人士擷取,由於有網域之驗證,此訊息也無法用於一般使用者查詢網域之偽造訊息,保障「不存在」之訊息正確性。

👉HINT:NSEC可看作將號碼牌按照上面數字排放,例如已經排放了1、2、3、5、6、7、8、10、12,若此時,有一位一號使用者來信要求取得9號號碼牌,負責人卻發覺並無9號號碼牌,因此回信給一號使用者說明並無此號碼牌之狀況。若該信中僅說明沒有9號號碼牌,而無其他驗證資訊,則一號使用者可以在另外的二號使用者要求10號號碼牌時,將那封信偽造成負責人所寄,告訴二號使用者沒有10號號碼牌,導致二號使用者拿不到該號碼牌。而若當初負責人告之一號使用者的信中除了告知沒有9號號碼牌之外,同時也說明前面是8號、後面是10號,確定中間無任何號碼牌,則收到此封信的一號使用者,即便他想欺騙二號使用者,卻會因為裡面的驗證訊息(8號和10號號碼牌資訊)而偽造不成,避免了一次詐騙。

DNSSEC與EDNS

EDNS,又稱為EDNS0,全名為Extension Mechanisms for DNS,譯為DNS延伸安全協定。是DNSSEC中的一項技術,主要用於提升DNS運作之安全性。

有鑒於DNSSEC的建立和發展,其所需之功能訊愈來愈多,若維持以往之DNS形式,所需的功能標示將難以以舊有格式完整表達。因此,在舊有的DNS封包中,延伸出更多的區段,用以支持未來期望表達的特徵值。

例如當初的DNS封包是使用UDP Port 53封包進行傳輸,本身大小限制為512 bytes。若以過往的DNS封包所應傳輸之內容而言是足夠的,但在DNSSEC中,由於增添了數位簽章的部分,其封包大小在包含數位簽章資料後已不足以負荷。而若此時使用EDNS,可以將其封包大小上限大幅增加,可容納4,096 bytes的資料,如此,方可將DNSSEC所需資料內容完整地進行傳輸。

DNS封包

在DNS所傳輸的封包中,分為許多欄位,例如表頭(Header)、查詢區域(Question Section)、回覆區域(Answer Section)、授權區域(Authority Section)以及額外紀錄區域(Additional Records Section)。

表頭主要標示此封包之編號、描述此訊息封包的功能,例如此封包為查詢或是回應用等、以及相關紀錄的數量。查詢區域,則是用以描述問題名稱、型態(是查詢IP位址、名稱伺服器……等等),以及問題類別(是否為IP位址格式)。

回覆區域則是記錄權威主機所回應之資料,例如資源名稱(針對哪一個問題進行回覆)、資源型態(對應查詢區域中的型態)、資源類別(對應查詢區域中的問題類別)、存活時間(封包傳送時存活的時間,若過久未到達目的地則會進行刪除)、資源資料長度(表示資源資料的長度),以及資源資料(詢問回覆之答案)。

第三、授權區域,此區域並非使用者詢問問題之確切答案,而是在DNS詢問中,上層之其他DNS權威主機之資訊,引導DNS伺服器對上層之DNS權威主機進行詢問,直到得到答案為止。

最後,額外記錄區域則是當授權區域有除上述訊息外之額外訊息,方放入額外紀錄區域。

EDNS

對於EDNS,DNS伺服器不一定有支援EDNS,因此,為了標示該伺服器是否有支援EDNS,會在Additional Records Section中,加入一「opt」資訊。此時,若權威伺服器收到該封包,發覺額外紀錄區域有「opt」資訊,則可知使用者之DNS伺服器有支援EDNS,並且於回覆時,也會於額外紀錄區域加上opt資訊進行回覆,代表此為EDNS封包。

但此封包為EDNS封包,卻不一定為DNSSEC封包,必須於EDNS訊息中的「do」區域被設定為1時,方為DNSSEC封包。

支援EDNS後,由於擴展了針對其他的DNS所需功能表達之特徵值欄位,並且亦擴增了封包大小限制,因此,除了DNS訊息傳遞時,可以包含數位簽章之資訊內容外,亦可以包含舊有DNS未能包含之特殊特徵值,讓DNS的運作更加安全。

由於意識到EDNS的重要性,在今年的二月一日,Clouflare、Google、IBM等大型公共DNS業者進行了EDNS的符合性驗證。雖此次驗證僅有一天時間,但同時也是期盼未來EDNS發展的起點。

👉HINT:EDNS就像是一小手拿包,雖然平常放錢包手機已經足夠,但是當外面天氣不好、下雨時,雨傘便放不進去;或者帶著讀到一半的書籍,想去舒適的咖啡廳閱讀,但是A5大小的書籍,一般小型手拿包亦放不下去。因此,可以拿一較大的包,將手拿包放入大包中,並且將雨傘、書籍都排放進去,如此一來,便可容納所需的大部分東西,甚至不需對手拿包進行改造便可。

DNSSEC

透過數位簽章及EDNS的運作,DNSSEC額外確保三項資訊安全項目:

  1. 資料完整性 (Data Integrity):確保收到的資料是完整的,未經有心人士等第三者進行竄改。
  2. 來源可驗證性 (Origin Authenti-cation of DNS Data):確保資訊的寄送者為正確之DNS權威主機/DNS伺服器,而非收到有心人士偽造出之假資訊,被導入錯誤之釣魚網站。
  3. 可驗證之不存在性(Authenti-cated Denial of Existence):確保當使用者收到「該網址/位址不存在」訊息,可透過NSEC進行驗證,驗證該網域確實不存在,而非遭他人竄改。

為了彌補DNS亦遭受有心人士攻擊之問題,開啟了DNSSEC的技術。如此一來,可以大幅減少DNS相關駭侵攻擊,保障使用者的運作安全。在台灣,許多電信業者已紛紛跟進,根據台灣網路資訊中心(TWNIC)之註冊機構資訊,截至目前,中華電信、亞太電信、pchome、新世紀資通、台灣大哥大、Neustar、中華國際通訊網路、Gandi SAS、Key-Systems GmbH等,均已註冊並使用DNSSEC服務。期盼未來有更多相關業者參與及使用DNSSEC,令使用者擁有一個完整且安全的完善網路,不再被不法人士劫持,能真正自由安心地使用網路服務。

資料來源:

  1. http://www.cc.ntu.edu.tw/chinese/epaper/0022/20120920_2206.html
  2. http://www.myhome.net.tw/2011_03/p03.htm
  3. https://www.lijyyh.com/2012/07/dnssec-introduction-to-dnssec.html
  4. https://medium.com/@sj82516/dnssec-%E5%9F%BA%E6%9C%AC%E5%8E%9F%E7%90%86%E4%BB%8B%E7%B4%B9-65841439d0a5
  5. https://blog.longwin.com.tw/2019/01/dnssec-dns-sign-edns-check-2019/
  6. https://blog.twnic.net.tw/2019/01/23/2286/
  7. https://blog.csdn.net/star_xiong/article/details/40429457
  8. http://net.ndhu.edu.tw/~net/DL/20110330.pdf
  9. https://en.wikipedia.org/wiki/Extension_mechanisms_for_DNS
  10. http://dnssec.nctu.edu.tw/images/DNSSEC/DNSSECtech.pdf
  11. http://www.myhome.net.tw/2011_07/p05.htm
  12. https://www.twnic.net.tw/dnservice_company_intro.php

DNS (上)

何為網域名稱系統(DNS)?

有使用過網際網路的使用者,應該對網址(URL)不陌生,例如前往Google,使用者可於搜尋列中輸入「https://www.google.com」,前往Google頁面。但對電腦本身而言,機器所認識的並非一般使用者所見之「https://www.google.com」這個字串,而是IP 172.217.27.132。因此,為了讓電腦知道該網址所對應之IP,網域名稱系統(Domain Name System, DNS)為此而生。

👉HINT:DNS就像是人和電腦之間的翻譯機,因為人很難記憶IP,電腦不認識網址,所以需要經過翻譯機的努力,才能順利連上該網站。

閱讀全文 “DNS (上)”