什麽是社會工程學?
定義:社會工程學是關於建立理論通過自然的、社會的和制度上的途徑並特別強調根據現實的雙嚮計劃和設計經驗來一步一步地解决各種社會問題。
總體上來說,社會工程學就是使人們順從你的意願、滿足你的欲望的一門藝術與學問。它並不單純是一種控製意志的途徑,但它不能幫助你掌握人們在非正常意識以外的行為,且學習與運用這門學問一點也不容易。
它同樣也藴涵了各式各樣的靈活的構思與變化着的因素。無論任何時候,在需要套取到所需要的信息之前,社會工程學的實施者都必須:掌握大量的相關知識基礎、花時間去從事資料的收集與進行必要的如交談性質的溝通行為。與以往的的入侵行為相類似,社會工程學在實施以前都是要完成很多相關的準備工作的,這些工作甚至要比其本身還要更為繁重。
你也許會認為我們現在的論點衹是集中在證明“怎樣利用這種技術也能進行入侵行為”的一個突破口上。好了,其實這樣夠公平的了。無論怎麽說,“知道這些方法是如何運用的”也是唯一能防範和抵禦這類型的入侵攻擊的手段了。從這些技術中提取而得出的知識可以幫助你或者你的機構預防這類型的攻擊。在出現社會工程學攻擊這類型攻擊的情況下,像cert發放的、略帶少量相關信息的警告是毫無意義的。它們通常都將簡單地歸結於:“有的人通過‘假裝某些東西是真的’的方式去嘗試訪問你的係統。不要讓他們得逞。”然而,這樣的現象卻常有發生。
那又如何呢?
社會工程學定位在計算機信息安全工作鏈路的一個最脆弱的環節上。我們經常講:最安全的計算機就是已經拔去了插頭(註釋:網絡接口)的那一臺(註釋:“物理隔離”)。真實上,你可以去說服某人(註釋:使用者)把這臺非正常工作狀態下的、容易受到攻擊的(註釋:有漏洞的)機器接上插頭(註釋:連上網絡)並啓動(註釋:提供日常的服務)。
也可以看出,“人”這個環節在整個安全體係中是非常重要的。這不像地球上的計算機係統,不依賴他人手動幹預(註釋:人有自己的主觀思維)。由此意味着這一點信息安全的脆弱性是普遍存在的,它不會因為係統平臺、軟件、網絡又或者是設備的年齡等因素不相同而有所差異。
無論是在物理上還是在虛擬的電子信息上,任何一個可以訪問係統某個部分(註釋:某種服務)的人都有可能構成潛在的安全風險與威脅。任何細微的信息都可能會被社會工程學使用者用着“補給資料”來運用,使其得到其它的信息。這意味着沒有把“人”(註釋:這裏指的是使用者/管理人員等的參與者)這個因素放進企業安全管理策略中去的話將會構成一個很大的安全“裂縫”。
一個大問題?
安全專傢常常會不經意地把安全的觀念講得非常的含糊,這樣會導致信息安全上的不牢固性。在這樣的情況下社會工程學就是導致不安全的根本之一了。我們不應該模糊人類使用計算機或者影響計算機係統運作這個事實,原因我在之前已經聲明過了,地球上的計算機係統不可能沒有“人”這個因素的。幾乎每個人都有途徑去嘗試進行社會工程學“攻擊”的,唯一的不同之處在於使用這些途徑時的技巧高低而已。
方法
試圖驅使某人遵循你的意願去完成你想要完成的任務是可以有很多種方法的。第一種方法也是最簡單明了的方法,就是目標個體被問到要完成你的目的時給予其一個直接的“指引”了。毫無疑問這是最容易成功的,也是最簡單與最直觀的方法了。當然,被指引的個體也會清楚地知道你想他們幹些什麽。
第二種就是為某個個體度身訂造一個人為的(註釋:通過捏造的手段)特定情形/環境。這種方法比你僅僅需要考慮到了某個個體的相關信息狀況附帶更多的因素,例如如何說服你的對象,你可以設定(註釋:刻意安排)某個理由/動機去迫使其為你完成某個非其本身意願的行為結果。這包括了遠至於為某個特定的個體創造一個有說服力的企圖而進行的工作,與大量你想得到的“目標”的相關知識。這意味着那些特定的情況/環境必須建立在客觀事實的基礎上。少量的謊言會使效果更好一些。
社會工程學中最精煉的手段之一就是針對現實事物的良好記憶能力。在這個問題上黑客與係統管理員會更為側重一點,特別是在某種事物與他們的領域有所關聯的情況下。為了說明上述的方法,我準備列舉一個小型的範例.......
[範例如下,當你把某個個體“置於”群體/社會壓力(註釋:其類型如輿論壓力等)下的處境/形勢時,個體很有可能會做出符合群體决定的行為,儘管這個决定很明顯是錯誤的。]
一致性
若在某些情況下有人堅信他們群體的决定是對的話,那麽這將有可能導致他們做出不同於往常的判斷/行為。比方說如果我曾發表過某個結論,論點的理由非常充分(註釋:這裏指的是符合群體中多數人的意願),那麽往後無論我花多大的精力去嘗試說服他們,都不可能令他們再改變自己的决定了。
另外,一個群體是由不同位置/層次的成員組成的。這個位置/層次問題被心理學者稱之為“demand charac-teristics”(註釋:“意願的特徵性”),這個位置/層次問題在參與者的行為上受其濃厚的社會約束性所影響。不希望得罪其他的成員的、不想被其他人看出自己在會議中想睡覺的、不想破壞與自身關係良好的夥伴的觀點等的心態最終都會成為“隨波逐流”現象的形成因素。這種運用到特徵的處理方式是引導人們行為的一種有效途徑。
情形
無論怎麽說,大多數的社會工程學行為都是被一些單獨的個體所運用的,因此諸如社會壓力與其它的一些影響因素都必須建立在和目標有一定的可信關係的情況下進行的。
如果處於這樣的情形下,當有了真實或者虛構出來的固有特徵時目標個體就很可能會遵循你的意願而工作了。這些固有特徵包括:
·目標個體以外的壓力問題。如讓個體相信某個行為的後果並不是他一個人的責任。
·藉助機會去迎合某人。這些行為更多取决於此個體是否認為某個决定能為某人帶來“好處”。這樣的行為可以使你與老闆的關係更為融洽。
·道德上的責任。個體會遵從你是因為他們覺得自己(註釋:在道德上)有義務這麽做。這就是利用了內疚感。人們比較願意逃避內疚感,因此如果有一個“可能”會讓他們覺得有內疚感的話他們都會盡可能地去避免這個“可能”。
個人的說服力
個人的聲望/說服能力是一種常被用於促使某人配合/順從你的有利手段。使用個人說服力的目的並不是要別人強行接受你所指派的“任務”,而是增強他們對完成你所指派的任務的主動順從意識。
其實這是有些矛盾的。基本上,目標衹是被我們簡單地引導到一個已經設置好的、特定的(註釋:故意安排的)思維模式上去。目標會認為他們可以控製住局面,在此同時他們也通過他們的力量幫助了你。
事實上,目標所得到的利益與他間接幫助你得到的利益此兩者是沒有衝突的。社會工程學使用者的目的是說服目標,使其有充分的理由去相信衹需花費小量的時間與精力就可以“換取”得到利益了。
合作
存在着多個因素可以促使一個社會工程學使用者增加與目標“合作”的機會。
盡量少與目標發生衝突。使用平和的態度去面對對方可以提高達成目的成功幾率。拉攏關係或者發展新的關係,共同的煩惱又或者是一些比較特殊的任務都可以有效地迫使目標與你合作。
在這裏‘走嚮成功’的因素往往集中在你是否有能力去掌握與處理好你的說服力。這是非常重要的,這一點常被“騙子”(註釋:常常使用欺騙手段的人)認為是萬試萬靈的手段。心理學研究指出如果人們先前曾經遵照過某個極小的指引而工作(註釋:並獲得成功)時現在他/她就更可能會去遵照一個更大的(註釋:指引)了。在這裏如果曾有過合作的前科的話,那麽這次再合作,達成的機會就很大了。
更好的方法是讓社會工程學者給予合作對象一些比較敏感的信息。尤其是一些非常逼真的視聽感觀,目標能夠現場看到或聽到你給他們的信息要比他們僅僅可以通過電話聽到你的聲音更能令他們信服。這個觀點一點也不稀奇,以書寫形式或電子方式進行交流的信息是很難讓人信服的。這就如同拒絶某人進行某個irc風格的通信一樣。
關聯
不管怎麽說,社會工程學運用是否能成功也有取决於目標個體與你的目的有多大關聯的因素的。我們可以說係統管理員、計算機安全執行官、技術研究人員、那些依靠計算機/網絡進行工作又或者通過其進行通信的人與大多數黑客使用社會工程學進行攻擊的目標都是有莫大的關聯的。
有高度關聯性的個體大多會被強而有利的論據所說服。事實上你可以給予他們更多強而有利的論據來支持你的觀點。當然,那些觀點也有薄弱的一面。你是否將論點薄弱的一面展現給有高度關聯的人知道將極大可能地决定你是否能說服此人。當某人有可能直接被社會工程學攻擊所影響,若此時出現薄弱的論據將有可能會導致其思想上産生“相反”的意識。所以面對與你的目的有關聯的人時你必須給予強而有力的論據,而避免出現理由薄弱的論據。
相對於對你的指引或你想得到的結果並不敢興趣的人,你可以把他們列入“低關聯的人”這個類別中去。相關的例子如:一個網絡係統機構中的保安人員、清潔工人、又或者是前臺接待小姐等。因為低關聯類別的個體並不會直接對你的目的/結果造成影響,而且他們往往不會去分析你用來說服他們的論點的雙面性問題。他們的决策往往會遵循你的意願又或者是完全不受其它的“意識”所影響。這些的“意識”如:社會工程學所提供的理由、表面形勢上的迫急性又或者是在某人強烈的說服下。憑經驗而論,在這樣的情況下我們衹能盡可能地給予其更多的論據與理由了,估計這樣的效果會更好一些。基本上,對於那些與你的意識不一致的人,試圖用大量的論據和指引去說服他們更勝於他們與你的目的的關聯程度。
有一點是需要註意的:在進行某些工作的時候,能力低的個體更多會去仿效能力高的個體的行為模式。在計算機係統管理方面,“能力低的個體”大多是指上文所提到的“低關聯的人”。站在上述的觀點上考慮,不要試圖對係統管理員這類別的個體進行社會工程學攻擊,除非其能力不及你,不過這樣的可能性非常的低。
防禦他人的攻擊
綜合上述的資料能否讓讀者更好地保障他們整個計算機係統的安全呢?其實踏出“美好的”第一步就是要視乎員工們能否在自己的工作崗位上保障自己的計算機係統的信息安全。這不但需要你無條件地增強他們的安全防範意識,而且你自身也必須具備更高的警惕性。打個比方,如果你讓某人專門負責保護你的計算機係統安全的話,那麽就有便利於那個人在沒有正常許可的情況下訪問你係統的可能了。
無論如何,對付與防禦這類型攻擊的最有效手段,也作為最常見的手段,就是“教育/培訓”了。第一步是教育你的雇員與那些有可能被利用作為社會工程學實施目標的人關於計算機/信息安全的重要性。直接給予容易攻擊的人們一些預先的警告已經足以讓他們去辨認社會工程攻擊了。不過要記着,在教育他們計算機信息安全的時候可以使用一些故事及其“雙面性”來作為例子。這並不是我自己的個人喜好哦。當個體明白了這個焦點的“雙面性”以後他們基本上就不會動搖他們所處的立場了。而且如果他們是專註於計算機安全技術的話,那麽他們更有可能會站在維護你的數據安全的立場上。
也有不會遵從人們的說服力傾嚮而作出行動的思維因素的。在這裏你必須有清晰的思維、高度的創造力、可以應付和處理壓力的能力與適當的自信。壓力的處理能力與自信可以通過後天培養。至於自身的主張和見解常常被用於對員工的管理方面,訓練它可以減少某些個體被施行社會工程學攻擊的機會,也有助於其他方面的工作。
瞭解各種使人們的信息安全意識降低與威脅你的安全策略的因素。其實這方面衹需要投入小量的精力就可以在降低安全風險方面産生很大的成效了。
結論
與普遍的思想觀念相反,運用社會工程學捕捉人們的心理狀態的技巧要比入侵一個sendmail容易得多。但如果你想讓你的員工去預防與檢測社會工程學攻擊的話,其效果絶對不會比你讓他們去維護unix係統安全的效果明顯。
站在係統管理員的立場上,不要讓“人之間的關係”問題介入你的信息安全鏈路之中,以至於讓你的努力前功盡弃。站在黑客的立場上呢,當係統管理員的“工作鏈”上存放有你所需要的數據時,千萬不要讓他“擺脫”自身的脆弱環節。
社會工程學(social engineering),一種通過對受害者心理弱點、本能反應、好奇心、信任、貪婪等心理陷阱進行諸如欺騙、傷害等危害手段,取得自身利益的手法,近年來已成迅速上升甚至濫用的趨勢.那麽,什麽算是社會工程學呢?它並不能等同於一般的欺騙手法,社會工程學尤其復雜,即使自認為最警惕最小心的人,一樣會被高明的社會工程學手段損害利益.
社會工程學陷阱就是通常以交談、欺騙、假冒或口語等方式,從合法用戶中套取用戶係統的秘密,例如:用戶名單、用戶密碼及網絡結構。衹要有一個人抗拒不了本身的好奇心看了郵件,病毒就可以大行肆虐。mydoom與bagle都是利用社會工程學陷阱得逞的病毒。從社會工程學慢慢伸延出以其為首要核心技術的攻擊手法,網絡釣魚攻擊、密碼心理學以及一些利用社會工程學滲入目標企業或者內部得到所需要信息的大膽手法.社會工程學是一種與普通的欺騙/詐騙不同層次的手法,因為社會工程學需要搜集大量的信息針對對方的實際情況,進行心理戰術的一種手法.係統以及程序所帶來的安全往往是可以避免得,而在人性以及心理的方面來說,社會工程學往往是一種利用人性脆弱點,貪婪等等的心理表現進行攻擊,是防不勝防的.藉此我們從現有的社會工程學攻擊的手法來進行分析,藉用分析來提高我們對於社會工程學的一些防範方法.
瞭解更多請閱讀《欺騙的藝術》一書。 |