源碼掃描 – Password Management: Empty Password 密碼管理 – 空白密碼

前言

依然是源碼掃描的一天,今天繼續來講講遇到的問題

今天的主題是空白密碼,在Fortify掃描中也是被歸類在風險等級 「高」 的項目

Empty Password 空白密碼

看到空白密碼,大家一定會有點疑惑這是什麼問題吧!?

那讓我們直接看看以下的範例

這是從Fortify官網抄來的哈哈,因為比較好講解

    String storedPassword = "";
    String temp;

    if ((temp = readPassword()) != null) {
        storedPassword = temp;
    }

    if(storedPassword.equals(userPassword))
        // Access protected resources
        ...
    }

在這支程式中,將儲存的密碼先設為空白字串

然後在後面透過 readPassword 這個 function 去資料庫(?)撈取並賦值給變數

但Fortify提出了問題

要是不幸這個時候DB有問題? 或是readPassword這一支回傳的寫法出現error但可能被catch

總之成功繼續下去,但stordPassword卻沒有成功得到密碼呢?

➡這樣就會導致,攻擊者可以使用空白字串來嘗試,而可能會誤打誤撞的成功略過檢核機制

該怎麼修正

至於修正的話其實也比較簡單

直接設個default給它就好,這樣就可以避免出現empty的問題

String storedPassword = "storedPass";
.
.

(像是這樣子就好)

至於你說會不會就是那麼剛好符合,呃…這個容我再去想想


結論

空白密碼這個問題,我是連想都沒想到是這一回事哈哈

密碼這種敏感訊息,總是可以觸發一大堆的資安議題

(包括變數不要取password這個名字,還有之前的記憶體洩漏,不要存在String…等等)

最近每天上班完,到家都快不想動了

Python報表功能進度嚴重落後ing,更遑論幫它找一個線上環境上架了

周末有空的話想去看看密碼學,應該會對掃描類的修正以及文章深度有幫助

另外另外,最近必比登公布了新的餐廳名單…應該久違的來寫寫美食了(吧)

參考文章 :

🧡希望文章能幫您上一點小忙,有的話麻煩留個言!

🧡幫我分享給朋友或是在底下留下您寶貴的意見,都是對我的支持

✅如有任何疑問,歡迎透過留言或messenger讓我知道 !

越來越多的筆記。以及。越來越老的我QQ

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *