2017.W09 - CSRF 的攻與受 - 資安

Agatha avatar
By Agatha
at 2017-02-28T10:45

Table of Contents

2017.W09 - CSRF 的攻與受
> 弔念 228 一早起來就開始寫扣

## 前言 ##
一直沒有人想投稿 內容越寫越廣了 ...

再沒人投稿 下一次可能就要寫 OS 了 QQ


## 內容 ##
CSRF (Cross-Site Request Forgery)[0],中文稱之為跨站請求偽造

是一種偽造使用者操作的攻擊手法

因為攻擊形式又被叫做 one-click attack [1]




攻擊的方式 利用偽造使用者正常的請求 (HTTP Request) 而達到攻擊的目的

一般來說透過瀏覽器的請求 都用 HTTP[2] 的 GET、POST 等請求來完成

除了一些些特例之外

網站的設計者 對於某些敏感的操作 (e.g. 刪除、匯款) 都會驗證身份

這裡的驗證身份 在食物上都會用 session 來確認使用者是已經登入的帳號

(題外話 有興趣的人記得要了解 Cookie 與 Session 的差別)



因為 Browser 的特性 會將可以使用的 cookie 一併包含在 HTTP 請求當中

攻擊者就用這個特性來做到 one-click attack 的攻擊

可以參考此文章[3] 的情境 發現攻擊者可以利用以下方式來發送 CSRF:

1. 一個圖文不符的假 Link (<a>、<img> 等)
2. 你看不到的 iframe
3. JavaScript 自動幫你 Submit 一個 POST 請求


## 防禦方式 ##
一個好的網站設計者 會提供一個 CSRF Token 或者 state token

來確定這次的 HTTP 請求真的是 user 當下 送出的

Token 可以根據實作上的方式 分為綁定 session 或者是每次都不一樣

前者可以防禦 CSRF 的攻擊 而後者則可以防禦重放攻擊 (Reply Attack)[4]


重放攻擊是重複執行上一次使用者合法的操作

像是 Alice 匯款給 Bob

Bob 就可以利用 Reply Attack 讓 Alice 一直匯 一直匯 一直匯...




另一種則是 Chrome 最新提出來的 SameSite Cookie[5]

也就是 Browser 只會在 Host 跟請求網站一致的時候 才會將 Cookie 包含在請求當中

透過這種方式 就可以完全避免掉 CSRF


[0]: https://en.wikipedia.org/wiki/Cross-site_request_forgery
[1]: https://www.owasp.org/index.php/One-Click_Attack
[2]: https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol
[3]: http://blog.techbridge.cc/2017/02/25/csrf-introduction/
[4]: https://en.wikipedia.org/wiki/Replay_attack
[5]: https://www.chromestatus.com/feature/4672634709082112

--
Tags: 資安

All Comments

Necoo avatar
By Necoo
at 2017-03-03T17:30
讚 謝謝 無意間看到這個 這系列的教學是什麼活動嗎
Linda avatar
By Linda
at 2017-03-07T05:45
其實只是當初當上版主 承諾的每週分享
William avatar
By William
at 2017-03-10T19:54
原來如此 感謝分享
Daph Bay avatar
By Daph Bay
at 2017-03-11T10:33
感謝分享

2017.W08 - Side-Channel Attack

Sandy avatar
By Sandy
at 2017-02-21T23:06
2017.W07 - Side-Channel Attack (旁道攻擊) andgt; 非正規的攻擊,只要有效也可以使用 ## 前言 ## 有沒有人想要投稿了 每個禮拜想主題其實比寫內容還累啊 QQ ## 內容 ## Side-Channel Attack[0] 泛指那些非使用暴力破解[1]或設計上 ...

新北市學生個資外洩

Charlotte avatar
By Charlotte
at 2017-02-19T11:16
※ [本文轉錄自 Gossiping 看板 #1OgGj-GF ] 作者: Sean64 (Sean) 看板: Gossiping 標題: [爆卦] 新北市學生個資外洩 時間: Sun Feb 19 11:05:22 2017 這次出事的是學生用校務行政系統 and#34;可將 stdid 換為其他數字 ...

python 網路 推薦書

Anthony avatar
By Anthony
at 2017-02-16T08:20
請問各位大大 不知道 python 講解網路部分的書 有無推薦的? 目前市面上看的 鮮少專講網路的部分 而且 python3 的更是沒找到... 不知道有沒有大大推薦的書 或 網站 ? 如果是 灰帽 黑帽 python 也是可以 因為那種也蠻多專攻網路的領域 謝謝大家 - ...

2017.W07 PPTP - (Point to Point Tunneling Protocol

Bennie avatar
By Bennie
at 2017-02-14T20:50
2017.W07 - PPTP (Point to Point Tunneling Protocol) andgt; 時代的眼淚 也讓他變成眼淚吧 ## 前言 ## 慢慢的 慢慢的 VPN 已經變成很常用的一個功能 記得! PPTP 不要再用了 ## 內容 ## PPTP (Point to ...

外交部出國登錄資料遭攔截 萬筆個資恐已外洩

Lucy avatar
By Lucy
at 2017-02-08T11:13
外交部出國登錄資料遭攔截 萬筆個資恐已外洩 ... 外交部今天證實,領務局近期在資通安全檢查時偵測,發現領務作業電子郵件系統有異常活動情形, 初步研判領務局發送給駐外館處部分民眾出國登錄資料有可能遭不明人士攔截。 ... Ref: goo.gl/7Uts04 - ...