大家好,我是 LINE Tech Evangelisgt – Evan Lin。LINE 一直以來不遺餘力地提升資訊安全,除了以 DevSecOps 的概念為基礎,將資安 DNA 注入 LINE 產品與服務,更積極促進整體資安生態圈的成長。 而 Beer is beautiful, hacks is amazing, BECKS is gold. BECKS是Beer與Hacks兩個字所組成。 透過一系列的 BECKS.IO – Security Meetup 資安社群活動,為韓國、日本、台灣等地的優秀資安人才提供當面交流、建立良好連結的機會! 本次 BECKS.IO 小聚選於台北的 Avenue 舉辦,邀請台灣的講者們,在輕鬆開放的氛圍中,暢談不同企業與個人的資安思維及實務經驗,並展望相關技術的未來發展。
KKTIX 活動網頁: 活動網址
Detect and track Apple devices for fun and profit - Ta-Lun Yen / TXOne Networks (Trend Micro) Threat Researcher
來得太晚,只聽到後半段。主要講解關於 Apple裝置的一些溝通與互動方式。不論是討論的 BLE 還是 Hotspot 的溝通方式。也有提到 Airdrop 的部分。
內容大多是溝通方式,可能有的資安疑慮。 現場也展示了透過軟體來掃出所有在場藍牙裝置的 uuid 與 MAC address。
From NLP to Neural Network based Malware Detection - aaaddress1 / Chroot member
原始論文: https://github.com/Lancern/asm2vec
講者網站: https://30cm.tw
惡意程式 (malware) 的 syntax pattern (from assembly call)
- uExitCode -> intterup
如何防禦 Malware
- 把程式切塊,找尋可疑區塊。
是否可以借助「語義學」模型來找出 malware 判斷方式
缺點:
- 指令與指令間的關係 (for loop 回傳 pattern)
- 大量改版,變種的 malware 。
- 根據舊的 malware 新增索引包,很容易被判斷跳脫
語義學(semantics)介紹
- 根據一個詞的前後文來判斷文字本身的意思
- e.g.
- I
drink
beer, Idrink
wine. - I
guzzle
beer, Iguzzle
wine.
- I
- 透過共生矩陣表 (tokenFeq) 來找出前後文出現頻率,有出現 +1 。
- 透過詞頻率畫出的折線圖,可以找出類似的詞。 (e.g. drink and guzzle)
- cosine similarity
為何不直接用 semantics 分析方式?
- 如果有新的詞出現,造成 tokenFeq 得重新建立(訓練)
所以,本次分享將用 distributed memory sharing 方式來建立,而非使用共通的 tokenFeq 。
透過相關 dimention 來分類,而非直接緊接的詞。
e.g.
- Apple -> 技術相關的品牌
- NBA -> 運動類別
- Apple Watch -> 運動心跳 -> 技術品牌
- China -> 政治類別
- 華為 -> 科技品牌 -> 政治類別
- 接下來就可以計算兩個單詞的相似度 similarity
- China x 華為 –> 相似度就會很高。
- 經常使用到的方式 : sigmoid 將無限大的數值, normalize 0~1 。
- 不斷的 sigmoid 會造成相似會聚合一起 (over-fitting)
- 解決方式:
- Google 採取方式,也要計算錯誤的方式。
- 透過一整段詞的 average ,來確認是中間詞的數值。
- 解決方式:
Asm2Vec
那麼要如何透過 word2vec 來判斷 malware ?
- 指令的詞分佈性
- 透過完整 asm 指令前後文的相似分佈
要能完整拿到指令前後文,需要使用靜態掃描,在動態執行狀況要如何取得前後文?
- 透過分區塊的方式分群
- 透過區塊間的流程 block a -> block b -> block c -> block b
-
code block 之間透過丟骰子的方式,來判斷前後文的關係。 (Random walking)
- 這樣也可以透過三個詞的平均,來判斷中間詞的是否相似
是否要用 push rbp
來建立 tokenFeq?
sub rsp, 138h
- sub -> op
- Rsp -> 參數
- 138h -> 參數
- 補齊參數,作為矩陣操作用
- 對於 asm 經常出現的指令
mov rax 8h
- 需要透過一個
- Loss function theda 來調整,作為相似度的 sigmoid 調整用
成果
- 用 25 隻 mirai 樣本,來訓練出來。來預測四萬多隻的樣本:
- MIPS 96%
- x86 96%
Challenge
- malware 只要套上「殼」(shellcode),就不容易被抓到
- dll side-loading 方式,就無法找出 control graph
- mov 語意相當的薄弱
- 動態修改自身程式碼
- 95% 是正常的程式碼,只有最後 5% 是 malware
相關的 Q&A
- Q: Random walking 如何確認正確? 順序一錯,完全就是不同東西。
- A: 原本論文 30 ~ 40% 正確性
- Q: 為何相關成果不公布?
- A: 論文還在研究,跟原本作者想法有一些不同。
議程小結:
將者將原始作者論文 repdroduce 後,發現其中有一些有問題的算式部分。加以修改後,得到更好的效果。算是一個相當有趣議程。
活動小結
今晚的聚會邀請到國內外資安專家,不藏私分享資安策略和經驗,幫助與會者在短短數小時內,從不同角度領略實現資安的各種可能。BECKS 是由 Beer 與 Hacks 兩個字所組成,透過本次小聚,我們再度凝聚資安社群,讓資安專家分享最新研究,並讓各領域的資安研究員進行面對面討論,除了幫助更多人了解 LINE 的安全設計,更希望透過交流,讓多元的資安思維得以迸發出精彩的火花!
立即 follow「BECKS」活動訊息,就能收到第一手 Meetup 活動最新消息的推播通知。▼
「BECKS」活動專頁:https://becks.io
關於「LINE開發社群計畫」
LINE今年年初在台灣啟動「LINE開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,已經舉辦30場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看:
- 2019 年LINE 開發社群計畫活動時程表
- LINE Taiwan Developer Relations 2019 回顧與 2019 開發社群計畫報告
- 2020 年LINE 開發社群計畫活動時程表
徵才訊息
《LINE 強力徵才中!》與我們一起 Close the Distance 串聯智慧新世界 » 詳細職缺訊息