CMU: 三個月的訪問學者之旅
這趟旅程其實是我撿來的,本來打算派兩位 symbolic execution / fuzzing 的人去,但因為原本要去的人跑到 G 社實習了,我就幸運的撿到這個機會能去 CMU 做短期的移地研究,這是個多麼難得的機會!原本是打算暑假去,不過我們太晚開始聯絡教授跟弄簽證,幾番 email 來回之後我們就決定 9 月底去,12 月底回來,大概去三個月。所以這篇文章,是寫在回來的兩個月後,其實一直有打算要寫一篇記錄一下這三個月的所見所聞,但直到現在才好好把他寫完 XD
Carnegie Mellon University
這趟行程除了我之外,還有咱們的 Balsn 大隊長 @sces60107 一同前往,他做 symbolic execution 我做 privacy & web security。我們這個計畫是科技部贊助的,科技部屬於台灣政府,所以 subject to 212(e),這點頗麻煩….. 如果不打算待兩年就必須要申請 J1 waive,非常難弄。如果你也是 J1 visiting 的同學,若家裡能負擔的話,建議能自費就自費,就不用處理這個條款帶來的問題了。
決定要去之後,2018年中,我們跌跌撞撞的跑簽證流程,請不同單位開立文件,然後寄信到 CMU ,來回跟對方系辦人員通信,但這些其實都還好,最可怕的魔王關是 AIT 面試,我們是做 security 相關的研究,非常有可能被面試官認為需要進一部審查 (俗稱紅單),這一拿又不知道要拖多久…….好在天公伯保庇,面試一切順利,之後的 2 - 3 天就拿到護照跟簽證了:)
因為不是以學生的身份去,因此我們的身份是 “visiting scholar” (訪問學者),但其實比較像 short-term researcher.
CMU
CMU 在 Computer Science 這一塊絕對是赫赫有名的學校,在 security 的研究方面當然也是數一數二的。但其實我很想來這裡的第二個原因,是因為想朝聖 PPP 的關係。PPP 是美國知名 CTF 隊伍,拿下了多次 DEFCON CTF (大概就是 CTF 界的奧運) 冠軍,而大部分的成員都來自 CMU ! 因此對我個人而言,除了 CMU 在 CS, security 研究上的成果吸引我之外,還有就是 PPP 的卓越戰績了,我很希望能參加他們的讀書會一窺 PPP 的人有多強。
撇開學術的東西先不談,CMU Pittsburgh 總校區的校園其實不大,稍微逛一下就逛完了,唯一比較有地標性,可供拍照打卡的就是這個 “Walking to the sky”:
然後就是每一棟建築無論是內外都很有特色,我最喜歡的就是 Cohon University Center 的大廳了~
學生方面,跟我原本想像真的是大相逕庭,CMU 的華人跟印度人超級多,我估計這兩者大概佔了1/2吧。華人的部份以中國人為主,校園隨便逛一逛就可以聽到不少說著「普通話」的中國人,印度人也不少不過我認為沒有中國人多。至於 CMU 的台灣人,與美國其他地方相比應該算是很多了,光是 Information Networking Institute (INI) 這一屆的人大概就有 5-6 個台灣人,都在念 master。
來 CMU 念 Master 的人,以 INI 為例,大家未必都是 CS 相關科系畢業,有很多人都是跨科系來的,這點不得不讓人佩服,想想看一個連 python 都不會的人必須要在兩個禮拜寫出一個 project….但他們就是做的到 。因此我會說,在國外念 Master 的人未必有很強的背景知識,但韌性絕對不會輸給任何人,只要犧牲睡眠跟生活品質就行……不誇張的說,如果你能一天睡滿 8 hr,那是很幸福的XD 其他人大部分醒著的時間,大概都要忙作業、小組討論或是準備面試。這部份可能比較武斷,畢竟我觀察的樣本實在太窄了,僅供參考。
CyLab
我待的實驗室是 Electrical and Computer Engineering (ECE) 底下的 CyLab,這個實驗室跟台灣的那種實驗室不一樣,他大到基本上有整整一層樓,因此 researcher / PhD students / professor 都非常多。
CyLab 主要做 Security 跟 Privacy 的研究為主,我跟的 CMU 教授主要做 password 跟 privacy,近期也有涉獵 adversarial machine learning,但我不是很想做 machine learning……所以就挑了一個探討 tracking behavior 的 project 來做。這個 project 從 9 月底開始吧,到現在 (隔年 2 月) 還在進行,希望能夠在這個學期把他變成紙。
CMU 的博士生自然是臥虎藏龍,跟我做同一個 project 的博士生,做事乾淨俐落,meeting 或 seminar 都超認真在問問題,無形中激勵了我不少;而我同學的 project,一同合作的是一位快要畢業的博士生,手上已經有 2 篇 top conference paper,一篇是當年的 best paper,另外一篇我有讀過,的確也有非常卓越的 contribution,改 Chrome V8 不知道要花多少心力……
你可能會想問在這樣的環境下做研究,壓力會不會很大?我認為這還是很看教授,我幸運的能夠與沒這麼 push 的教授一起合作,因此大部分的進度壓力,比較像是自己給自己的。例如很多時候在某些 implementation 上我希望要做到最好,然而常常礙於時間因素,或是還有更重要的東西要先做就先擱置,但我還是會希望能夠把他做完…… 總而言之,研究的過程是開心的,我還記得那時候有人問我研究如何,我回答還蠻快樂的XD ,主要原因是,這個 project 有很大一部份需要寫 code 完善 infra,而我剛好蠻喜歡寫 code 弄架構之類的東西。
Life in Pittsburgh
CMU 總校區在賓州 (Pennsylvania) 的一個小城匹茲堡 (Pittsburgh),之所以說是一個小城是因為,這裡比起那些大都市,只是一個普通的大學城而已,整個城市讓我有印象的只有可以眺望整個城市的纜車(還不是你想像中的那種纜車),有幾個風景不錯的公園,然後……就沒了。雖然研究內容並不枯燥,但這三個月的整體生活對我來說,還真的是蠻苦悶的。
天氣的部份,大概十月底會出現攝氏 0 度,不過這邊的冷是乾冷,我個人覺得匹茲堡 0 度跟台北 12, 13 度感覺差不多,唯一的差別是手不能放在外面,0 度的話如果不戴手套、手也不放口袋的話,會失去知覺,我還記得某次做公車的時候,我大概花了 1 分鐘才用我那沒知覺的手,把錢包裡的公車卡拿出來 XD ,聽同學說匹茲堡 1, 2 月的時候出現了攝氏 -25 度,我很慶幸那時候已經回台灣了。
剛開始很不習慣這種低溫的天氣,後來訓練的不錯,我大概穿個兩件長袖 + 外套就夠了,跟台北 10 度的穿法差不多,穿羽戎衣應該更溫暖一點,但我忘記帶了,後來也懶得買,總之我還是活的好好的。
People
真的是來到美國才發現自己英文口說有多爛,尤其只要對方語速加快+口音不同,或是有美國俚語,我大概就只剩下不到五成能夠聽懂。最讓我挫折的一次是去 Subway 點潛艇堡,店員的非洲腔調我真的是完全聽不懂……後來某天在系館的角落,看到 CMU 圖書館有舉辦給 non-native speakers 一起練習說英文的活動,我就想說要跳脫舒適圈,嘗試看看練習英文口說就去參加了。
在那裡我認識了很多有趣的人,大家幾乎都來自不同的國家。有支持共產主義的宏都拉斯人,我跟一個台灣人嘗試跟他解釋 Taiwan 是什麼…;遠赴重洋來美國訂婚的韓國女生,很樂意分享遠距離戀愛的心得;來自北京的大叔,看起來就是一個樂天仔;深愛匹茲堡而決定在這裡定居的紐約人……
除了這個活動認識的人,還有就是在 INI 交的朋友了,來匹茲堡之前,其實有一大堆事情需要一位在美國的人幫我們處理 (e.g. 拿房東鑰匙,當我們的在美聯絡人…) ,我們就拜託之前在 DEFCON 認識的 @S_S,她正好在 CMU 念 security,真的是我們的大貴人。S_S 幫我們太多了,對她的感謝實在是溢於言表,幫我們 apartment hunting、找傢俱、詢問保險心得等等,我還混進 INI 騙吃騙喝,認識了不少朋友,我大概就只差沒跟 S_S 借錢了吧 (笑
Boredom
一如我上面說的,在匹茲堡這個小鎮真的是蠻無聊的,所以我嘗試找了一大堆事情來做:
- 玩遊戲: 趁夏季特賣的時候,我買了一款美式 RPG (Fallout New Vegas),大概玩了 120 hr 左右
- 看美劇: 找了喜劇 Silicon Valley 看了幾季,還可以但沒有太推
- 閒晃:基本上六日白天比較能閒晃,我大概就逛公園,或單純戴者耳機在路上亂走
- 寫 project: 沒錯,我無聊到寫了一個 slackbot side project
- 寫網站: 我還寫了你現在看到的這個網站,改了一堆 css 跟寫模板,以及我們 CTF 隊伍 Balsn 的網站
- 聽音樂: 聽了一堆國內團,以及國外的 math rock,有一天還無聊到在抓鼓譜
- 打 CTF: 這的確打很多,但可惜的是大部分 CTF 都辦在週末,CTF 也不是每週都有,有打進決賽也不能去,因為在美國QQ
其中最讓我不習慣的,就是沒有人可以一直跟我講幹話,我是那種,一個禮拜不找人講幹話,就會渾身不對勁,所以那時候找了很多人聊天,因為我發現這樣心情會好一點~
Eat
這邊的物價大概是台北的三倍左右,一餐約在 8 - 12 美金之間,所以我大部分晚餐都會自己煮比較便宜,中餐通常在學校所以就會去外面買。匹茲堡華人太多了,所以處處可見亞洲餐廳,在 Tepper 外面還有一排賣台灣便當的,中午 $9 晚上 $10。這邊比較常吃的是中式的菜、炸雞、漢堡、潛艇堡,至於晚餐就隨便亂煮一通反正能吃就好了。
學校很多 seminar / workshop,通常結束後都會剩下一堆食物,因此很多時候可以吃到免費的 seminar 餐。不過我是覺得參加一下 seminar 又有免費的餐可以吃 (至少這解決了「等一下要吃什麼」的千古難題),一舉兩得,所以後來 CyLab 的 seminar、教授的 group meeting 我幾乎都全勤XD
至於自己煮的部份,假日會去附近的超市買雞胸肉跟菜回來放冰箱,肉的話我都是跟飯一起丟電鍋,平底鍋再炒個菜或蛋就可以吃粗飽了。不過自己下廚才知道,煮飯炒菜其實蠻花時間的,我 6:30 開始弄的話,吃完飯洗完碗大概已經 8:30 了,而且會有點累。貌似可以稍微體會那種一下班,卻還要下廚煮飯的無力感,有時候太累就懶得煮直接出去吃……
Conclusion
對我而言,這三個月最大的成長,大概就是研究能力了,survey paper 跟做 project 過程中,我覺得都蠻順利的,每周都有不錯的 progress,開會也能會明確的說出上一週做了什麼、下一週打算做什麼,並在 meeting 中把要討論的東西/遇到問題拿出來。在CTF 方面,就大概觀摩了一下 PPP 讀書會的運作模式,聽大家 share 題目的 writeup,PPP 強的人很多,很多畢業的學長姐也仍然會回來打,我想這就是 PPP 強大的原因。有嘗試幾場比賽一起打,但畢竟大部分的比賽我還是要回 Balsn 打,所以沒學到太多。
至於英文方面,口說多少有成長一點,我自認為口說程度還遠不及這裡的留學生,例如印度腔我還很不習慣,看來接下來要好好練英文口說了。而其他非學術上的成長,比較是個人的成長吧,因為時間突然變的很多,會有更多可以跟自己對話的機會,也有更多時間能靜下心來思考到底未來要幹麻,是要工作?還是要繼續升學?申請國外學位?要不要離開台灣到國外工作?考慮移民到其他國家嗎?總之這些問題,在這三個月未必讓我有明確的答案,不過至少我能看的更清楚並思考更多面向。
還是那句老話,去過國外生活才知道台灣的好,在接受文化衝擊的同時,能夠看到每個國家的優缺點,台灣的治安、健保、生活機能,絕對是勝過美國的,當然相反的台灣在工作環境與條件上,就沒有美國的健全。總體而言,我認為跳脫自己的舒適圈,到國外看一看拓展視野,無論未來有沒有考慮要到國外唸書,都絕對是是一筆很棒的經驗,希望以後還有機會再回來這裡。