或許有些人不知道,一般人口中的「駭客」,還細分成幾類:
- 白帽駭客(White Hat)
有能力破壞電腦安全但不具惡意目的的駭客。白帽子一般有清楚的定義道德規範並常常試圖同企業合作改善被發現的安全弱點。 - 黑帽駭客(Black Hat)
可視為犯罪分子,他們的出發點是惡意的。在未經邀請下,他們就侵入受害者的電腦系統獲取自己的利益。也被稱為Cracker(破壞者),因為他們侵入電腦系統的行為就像銀行搶匪破壞保險箱一樣。 - 灰帽駭客(Gray Hat)
對於倫理和法律界線曖昧不清,游走於黑帽與白帽之間。 - 激進駭客(Hacktivist)
主要是為了表達抗議而入侵企業或政府組織的電腦網路和系統,例如有名的駭客組織Anonymous - 指令碼(工具)小屁孩(Script Kiddie)
嚴格來說不算駭客。對技術沒什麼熱情也不太深入研究,多靠著在網路上找尋現成工具或範例從事入侵或破壞,並以「駭客」自居且沾沾自喜。
早些年被SQL Injection嚇到,從此十年怕井繩,寫過幾篇討論SQL Injection、XSS…等資安議論的部落格與雜誌文章〔參考〕。也不知哪來的使命感,只要看到別人的程式碼出現SQL Injection,就要衝上去唸個兩句;看到有人大喇喇用MSN/Mail傳送密碼或連線字串明碼,也不免嘮叨碎唸一番〔註〕;對於團隊程式碼撰寫風格我一向看得很開,連Copy & Paste都能忍耐,唯一不能踩的紅線是SQL Injection,堅持「故意犯唯一死刑(阿魯巴到死)」的規定。
不過,十幾年過去了,SQL Injection仍是駭客的最愛,資安漏洞界的一哥,不曾在網路上絕跡。有時逛網站發現,肯定要雞婆地寫信問候對方老母提醒網站管理員,期盼儘早修正。但我得坦白說,一路下來受傷不少,很多信石沈大海;有些則是窗口客氣回覆,感謝之餘說會立刻告知技術人員,然後… 石沈大海;更氣人的是這種:一段時間後接到窗口回覆,工程師已研究過確認不會有風險,但仍衷心感謝我的雞婆提醒 orz。每每氣到拎杯很想用漏洞下兩行指令給他個痛快,讓禍首刻骨銘心永世不忘。但入侵或破壞都已踰越法律道德界線,而且做壞事不難,做壞事不被抓很難,不想為此惹來一身腥。人生苦短,混口飯吃已不容易,哪來的閒功夫為這種事傷神冒險。講了沒人要聽,又沒膽硬幹的下場是:白帽駭客一當再當,臉頰比人屁股燙,幼小心靈受了傷,好不窩囊~
直到前陣子,總算有一次不錯的白帽駭客經驗。從FB看到朋友提及某個PHP網站有SQL Injection漏洞,不但在QueryString加單引號就能引爆,錯誤畫面還直接噴SQL語法,一整個Hacker Friendly~ 問題頁面有附連絡Email,二話不說,當然要寫信提醒承辦人員。原本沒抱期望,以為又是一次對牛彈琴,寫完信還在FB上小小抱怨自己一路受挫的白帽經驗;隔了一天,意外接到回信,說明已轉告工程師。很好,至少是好的開始。
收到回信就壓根忘記這事兒(切記,當白帽要抱平常心,沒有期待才不會失望。可惡!我的失敗經驗多到人都變豁達了)後來,在信箱發現一封信:
再次檢查網站,SQL Inection漏洞已被補上!希望網路另一端的工程師已感受到我當年初識SQL Injection的震憾,從此永不再犯!地球減少(至少)一位寫出SQL Injection的開發者,開心!
(嚴格來說,白帽駭客的定義是靠技術發掘網站弱點,敲單引號就會爆的SQL Injection似乎不需要「駭」就能發掘,這一回其實只能算(偽)白帽吧!靠點本事才找出漏洞的經驗也不是沒有,但,唉… 甭提了)
註:前面提到用Email/即時通傳密碼可能會當豬隊友,那敏感資訊要怎麼傳才安全?最簡單的做法是拆成多個管道遞送,例如:Mail寄前半截Skype講下半截,或是寄成加密壓縮檔再電話告知解密密碼。我知道有人會嫌麻煩,但小心駛得萬年船,你知道的,Blah Blah Blah…(以下省略三千字)