大家好,我是 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, I drink wine.
    • I guzzle beer, I guzzle wine.
  • 透過共生矩陣表 (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場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看:

徵才訊息

《LINE 強力徵才中!》與我們一起 Close the Distance 串聯智慧新世界 » 詳細職缺訊息


Buy Me A Coffee

Evan

Attitude is everything