N-Stalker Web Application Security Scanner X

By Mike

先前我們介紹「OWASP Zed Attack Proxy」網頁掃描工具,在文章裡我們提到檢測工具林林總總,市面上有很多工具可以選擇。那除了OWASP ZAP以外,還有哪些工具可以使用呢?各位客官有福了,今天小編再跟大家介紹另一套網頁掃描工具「N-Stalker Web Application Security Scanner X」(以下簡稱 N-Stalker X)。

N-Stalker X從名字上來看,大概可以猜出它的開發商。沒錯,就是N-Stalker。這套軟體是用於評估網頁的安全性,其結合了HTTP掃描器N-Stealth與包含39,000個網頁攻擊特徵的資料庫,以及Web應用程式的安全性評估技術可為開發者、檢測人員、IT人員進行許多不同的檢測項目。你可能會好奇到底有哪些檢測內容?N-Stalker的檢測項目遵照了許多國際標準,如OWASP Top10、PCI及SANS Top10/20。檢測內容則包含不同面向,如程式碼撰寫錯誤所衍生的漏洞、伺服器的敏感資訊外洩、備份或設定檔外洩等。

從前面的說明我們可以知道,N-Stalker X能協助執行網頁安全性評估,那什麼時候可以用到呢?N-Stalker提出了在系統發展生命週期(System Development Life Cycle, SDLC)中加入N-Stalker X以確保網頁的安全性,在設計與開發階段評估執行環境,同時檢查程式碼中的漏洞;而在測試與佈署階段,則透過工具輔助進行滲透測試,以驗證其安全性;最後於維護檢查階段,則持續並定期執行安全性評估,以管理網站的漏洞與風險。

而既然N-Stalker X和之前介紹的OWASP ZAP都是網頁安全性檢測工具,那你可能會想到底哪一套工具比較好,應該要選擇哪一個?套一句公道話「小孩子才做選擇」,每一種都試試看就知道哪一種工具比較適合你囉!


《現代加密技術 ─ 進階加密法AES》下篇

前言

在上一篇AES加密法的介紹中,我們認識到他的歷史及應用,也瀏覽在無線網路、電子商務或是軟硬體實現上的應用。而現在這一篇則是要來談談AES的元件以及其操作的原理,進一步探索該怎麼實現。

(延伸閱讀:《現代加密技術 ─ 進階加密法AES》上篇

AES加密流程

在介紹AES加密法怎麼運作之前,我們必須先了解他對於明文區塊和金鑰的長度的規範。在上篇中有提到的Rijndael演算法支援128、192或是256個位元的明文區塊,雖然原理相同,但為了方便使用,AES加密法每組只提供了128位元的區塊來存放明文資料。而金鑰長度就不一樣,由於有128、192、256三個位元長度可以選擇,因此密碼的系統有AES-128、AES-192及AES-256三種。下表可以看出三種不同長度金鑰所需要加密的輪數也有不同。

AES金鑰長度: 可分為幾個32bits區段分組長度: 128bits / 32bits加密重複次數: 6 + max(金鑰, 分組)
AES-1284410
AES-1926412
AES-2568414

那有明文跟金鑰,我們該怎麼加密呢?我們將他放在一個4*4的位元組矩陣(也稱為state)來運算,而state中的每一個元素就是明文中的一個byte,每一次加密就會進行以下四個步驟:

  1. AddRoundKey—state中的每個位元組都和金鑰做XOR運算,目的是為了混淆密文、明文和密鑰之間的關係。
  2. SubBytes—將每個位元組透過一個8位元的Substitution-box進行查找和替換輸入狀態的操作,以實現可逆的非線性變換。
  3. ShiftRows—這一步驟是讓state中每一行都偏移一些,用來提供此演算法擴散性
  4. MixColumns—將state與一個固定矩陣C相乘,使列也有擴散性。

以AES-128為例,我們已經知道總共會有10輪的加密次數,因此前面9輪其實都是重複進行上述的四個步驟,但在最後一輪中進行了特殊處理,少掉了MixColumns這一步驟,下圖簡單描述了AES-128加密的流程:

其他AES系統的做法也是依照此模型去實作,而因為加密過程有一定的規律,因此若要解密時只要照著步驟逆轉換就能得出原本的明文。或許這個加密法看似簡單、很容易就能理解,但其實它設計結構和密鑰的長度上已經達到可以保護機密資料的標準,甚至美國也已經批准將其運用在最高及國家安全機密的傳遞上。

結語

AES加密法這種被用在國家等級安全防護上的演算法,其實也可以運用在我們的日常生活中,很容易就能找到資源並利用。如果有興趣,不妨也自己嘗試使用看看這個簡單又有效的加密法吧!


HTTPS相關機制

現在許多網站為了安全性會透過HTTPS來連線,那在使用HTTPS之後,還有什麼設定能再提升網站連線安全呢?本文將會介紹HTTP強制安全傳輸技術(HTTP Strict-Transport-Security),簡稱HSTS。就算使用者是透過HTTP訪問網站,也會強制改用HTTPS,避免HTTP可能出現的風險。

HTTP vs. HTTPS

HTTP和HTTPS只差了一個「S」,而「S」指的是安全(Secure)。HTTP與HTTPS的不同,在於HTTPS傳輸時還會利用TLS/SSL來加密封包,避免被監聽造成資料外洩或是中間人攻擊等風險。

HSTS

大家可能會好奇,我的網站已經是HTTPS,就算訪客是透過HTTP來連線也會自動跳轉,那有HSTS跟沒有HSTS有什麼差別呢?

若訪客透過HTTP來訪問HTTPS網站,雖然網站可能設有自動跳轉機制,第一個連線封包仍會是未加密的。若訪問使用HSTS的網站,首次存取時瀏覽器會一併記憶,之後再訪問會自動將HTTP轉為HTTPS。

HSTS設定

Strict-Transport-Security: max-age=31536000

不同網站伺服器需有不同的設定方式,而指令意義如下:

  • max-age=<expire-time>:表示啟用的持續時間,以秒為單位。
  • includeSubDomains:(選擇性設定)瀏覽器將強制使用HTTPS的狀態套用至所有子網域。
  • preload:(選擇性設定)非HSTS規範的一部份。在訪問網站前直接使用HTTPS作為傳輸協議,能讓速度稍微加快。

Preload設定

HSTS預先載入服務由Google維護,Chrome瀏覽器中存在HSTS Preload List,會把支援HSTS網域名稱寫進去,一些主流瀏覽器(Firefox、Opera、Safari、IE 11、Edge)中也有基於Chrome清單的HSTS Preload List。

若網站確認會永久使用HTTPS協議,可主動提交網域名稱至HSTS Preload List Submission網站。不過要注意的是,將網域名稱從Preload List中移除是需要花費一段時間。Chrome可能需要幾個月的時間才能透過更新進行修改,而其他瀏覽器的狀況則無法保證。因此在新增Preload設定前,建議先評估並進行多階段的測試,確保網站沒發生問題再新增Preload設定。

在設定好HTTS後,如果還想再提升網站安全性,也許可以考慮HSTS設定。但在添加或調整任何設定前,都應該先進行評估,並確認了解所有設定的意義與影響。避免發生網站無法使用的情況。

參考資料