研究人員證實蘋果iOS的聯繫人應用易受SQLite攻擊
安全會議Def Con 2019的研究人員展示了利用常規數據庫搜索產生惡意結果的方法,並使用蘋果的標準iOS Contacts應用程序來證明這一點。安全公司Check Point已經證明了可以利用的行業標準SQLite數據庫格式的漏洞。在Def Con 2019上,該公司展示了該技術用於操縱iOS Contacts應用程序。在這些情況下搜索“聯繫人”應用程序足以使設備運行惡意代碼。
“SQLite是世界上分佈最廣的數據庫引擎,”公司在一份聲明中表示。“它適用於所有操作系統,台式機和手機。Windows 10,macOS,iOS,Chrome,Safari,Firefox和Android上都有非常大數量的SQLite用戶。”“簡而言之,我們可以控制任何查詢SQLite控制數據庫的人。”
當您在應用程序中搜索聯繫人或查找信息時,您實際上正在搜索數據庫,並且這種數據庫通常就是SQLite。在一份4000字的報告中,該公司的研究人員成功地偽造了應用程序內搜索的結果,它依賴於一個已知的漏洞,奇怪的是,該漏洞在發現四年後尚未修復。“因為這個功能只被認為是易受攻擊的,而非危急漏洞,因此它沒有收到很大的關注。但是,SQLite的用法如此多樣,以至於我們實際上仍然可以在許多情況下觸發它。 ”
換句話說,該錯誤被認為是不重要的,因為它被認為只能由訪問數據庫的未知應用程序觸發,而在像iOS這樣的封閉系統中,沒有這種未知的應用程序。然而,Check Point的研究人員隨後設法讓一個受信任的應用程序發送代碼來觸發此錯誤並利用它。
他們替換了聯繫人應用程序的特定組件,發現雖然應用程序和任何可執行代碼必須經過蘋果的啟動檢查,但SQLite數據庫不可執行。
“持續性[在重啟後將代碼保留在設備上]很難在iOS上實現,”他們說,“因為所有可執行文件都必須作為蘋果安全啟動的一部分進行簽名。幸運的是,SQLite數據庫沒有簽名。”
不過,他們必須能夠訪問未鎖定的設備才能為部分聯繫人安裝此替代品。在那之後,他們能夠在搜索聯繫人數據庫時選擇他們想要發生的事情。出於演示的目的,他們只是讓應用程序崩潰。研究人員表示他們可以製作應用程序來竊取密碼。
“我們確定,簡單地查詢數據庫可能不如您預期的那麼安全,”他們說。“我們證明了SQLite中的內存損壞問題現在可以被利用了。”“我們的研究和方法都已經向蘋果公司負責任地披露。”