<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Android14應用安全措施

哆啦安全 ? 來源:哆啦安全 ? 2023-09-09 14:14 ? 次閱讀

一、前臺服務類型

targetSdkVersion 34 的情況下,必須為應用內的每個前臺服務(foreground-services) 指定至少一種前臺服務類型。

前臺服務類型是在Android10引入的,通過android:foregroundServiceType 可以指定 的服務類型,可供選擇的前臺服務類型有:

camera
connectedDevice
dataSync
health
location
mediaPlayback
mediaProjection
microphone
phoneCall
remoteMessaging
shortService
specialUse
systemExempted

  
二、Android14應用安全

1.對pending/implicit intent的限制

對于面向Android14的應用,Android通過以下方式限制應用向內部應用組件發送隱式intent:

(1).隱式intent僅傳遞給導出的組件,應用必須使用明確的intent來交付給未導出的組件,或者將組件標記為已導出(exported)。

(2).如果應用創建一個mutable pending intent,但intent未指定組件或包,系統現在會拋出異常。

這些更改可防止惡意應用攔截只供給用內部組件使用的隱式intent,例如:


如果應用嘗試使用隱式intent啟動該 activity,則會拋出異常:

//Throws an exception when targeting Android 14.
context.startActivity(Intent("com.example.action.APP_ACTION"))

要啟動未導出的Activity,應用應改用顯式Intent:

//This makes the intent explicit.
val explicitIntent =
       Intent("com.example.action.APP_ACTION")
explicitIntent.apply {
   package = context.packageName
}
context.startActivity(explicitIntent)

2.運行時注冊的廣播接收器必須指定導出行為

以Android14為目標,并使用context-registered

receivers(ContextCompat.registerReceiver)應用和服務的需要指定一個標志,以指示接收器是否應導出到設備上的所有其他應用:分別為RECEIVER_EXPORTED或RECEIVER_NOT_EXPORTED。

val filter = IntentFilter(APP_SPECIFIC_BROADCAST)
val listenToBroadcastsFromOtherApps = false
val receiverFlags = if (listenToBroadcastsFromOtherApps) {
   ContextCompat.RECEIVER_EXPORTED
} else {
   ContextCompat.RECEIVER_NOT_EXPORTED
}
ContextCompat.registerReceiver(context, br, filter, receiverFlags)

3.僅接收系統廣播的接收器例外

如果應用僅通過Context#registerReceiver方法為系統廣播注冊接收器時,那么它可以不在注冊接收器時指定標志,例如 android.intent.action.AIRPLANE_MODE。

4.更安全的動態代碼加載

如果應用以Android14為目標平臺并使用動態代碼加載(DCL),則所有動態加載的文件都必須標記為只讀,否則,系統會拋出異常。

建議應用盡可能避免動態加載代碼,因為這樣做會大大增加應用因代碼注入或代碼篡改而受到危害的風險。

如果必須動態加載代碼,請使用以下方法將動態加載的文件(例如:DEX、JAR或APK文件)在文件打開后和寫入任何內容之前立即設置為只讀:

val jar = File("DYNAMICALLY_LOADED_FILE.jar")
val os = FileOutputStream(jar)
os.use {
   // Set the file to read-only first to prevent race conditions
   jar.setReadOnly()
   // Then write the actual file content
}
val cl = PathClassLoader(jar, parentClassLoader)

5.處理已存在的動態加載文件

為防止現有動態加載文件拋出異常,我們建議可以嘗試在應用中再次動態加載文件之前,刪除并重新創建這些文件。

重新創建文件時,請按照前面的指導在寫入時將文件標記為只讀,或者將現有文件重新標記為只讀,但在這種情況下,強烈建議首先驗證文件的完整性(例如,通過根據可信值檢查文件的簽名),以幫助保護應用免受惡意操作。

6.Zip path traversal

對于針對Android14的應用,Android通過以下方式防止Zip路徑遍歷漏洞

如果zip文件條目名稱包含".."或以"/"開頭,則ZipFile(String)和ZipInputStream.getNextEntry()會拋出一個ZipException。

應用可以通過調用dalvik.system.ZipPathValidator.clearCallback()選擇退出驗證。

7.從后臺啟動活動的附加限制

針對Android14的應用,系統進一步限制了應用在后臺啟動Activity的時間

(1).當應用使用PendingIntent#send()發送PendingIntent以及類似行為時,如果應用想要授予其自己的后臺service啟動權限以啟動pending intent,則該應用現在必須選擇加入一個 ActivityOptions,具體為帶有

setPendingIntentBackgroundActivityStartMode(MODE_BACKGROUND_ACTIVITY_START_ALLOWED)
(2).當一個可見應用使用bindService()綁定另一個在后臺運行的應用的服務時,如果該可見應用想要將其自己的后臺activity啟動權限授予綁定服務,則它現在必須選擇加入 BIND_ALLOW_ACTIVITY_STARTS 標志。

這些更改擴展了現有的一組限制 ,通過防止惡意應用濫用 API 從后臺啟動破壞性活動來保護用戶。

8.Android14將禁止修改系統內置根證書

Android14不再允許開發者修改系統內置根證書進行調試,這意味著開發者無法通過諸如替換證書或中間人劫持的方式來檢測某些流量。

Android系統的證書存儲庫位于/system/etc/security/cacerts/,盡管從Android7.0開始開發者無法直接修改證書庫,但如果root了那么還可以修改證書庫路徑,直接注入自己需要的證書,比如自簽名的泛證書。

而在Android14中,谷歌做了一項可以快速反應的安全措施:通過Google Play更新安卓系統的證書庫。

這樣做也不是沒有原因,以前證書綁定在系統里,谷歌無法直接更新,這導致有些證書被吊銷后谷歌也無法及時操作,這也導致注入Let's Encrypt 因為需要兼容舊版安卓系統,不得不推遲證書更新,因為新證書不受舊版安卓系統的信任。

后續谷歌可以隨時通過Google Play更新證書庫,包括加載新的ROOT CA和吊銷某些ROOT CA,這讓谷歌可以快速應對CA行業的某些問題。

然而問題在于這種新的更新方法不再從/system/etc/security/cacerts/讀取證書,而是從另一個路徑/apex/com.android.conscrypt/cacerts/讀取證書。

而APEX容器背后確切的機制很難完全理解,因為存在很多細節沒有公布出來,而在測試的時候開發者也發現嘗試修改這個目錄是沒用的,系統會直接忽略修改。

因此即便注入自簽名的證書也無法被系統讀取,所以也沒法再使用中間人之類的手段進行劫持,來達到調試某些TLS流量的目的。

好消息是Android14的這項變化有助于大幅度提高Android對CA行業的響應速度,例如快速吊銷或信任證書,這將有助于提高Android設備的安全性。 ?
?
壞消息就是對開發者和安全研究人員來說這就很難受了,因為無法讓系統信任自簽名證書,這將對調試和安全分析工作產生嚴重影響。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Android
    +關注

    關注

    12

    文章

    3875

    瀏覽量

    125814
  • 接收器
    +關注

    關注

    14

    文章

    2220

    瀏覽量

    70845
  • 谷歌
    +關注

    關注

    27

    文章

    5965

    瀏覽量

    103390
  • 廣播
    +關注

    關注

    1

    文章

    297

    瀏覽量

    22884

原文標題:Android14或更高版本(安全措施)

文章出處:【微信號:哆啦安全,微信公眾號:哆啦安全】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    電子發燒友網站新上線賬號安全措施:異地登陸檢測提醒

    論壇在被各種攻擊折磨,最近新上線一項賬號安全措施:1.異地登陸檢測提醒,根據大家登錄是否跨省做異地登錄提示,需要驗證后才可以登錄成功。2.驗證頁面,用戶只需要將自己綁定的郵箱或手機號完整填寫即可完成
    發表于 06-15 18:24

    嵌入式系統的安全性問題是什么?有什么安全措施嗎?

    嵌入式系統的安全性問題是什么?有什么安全措施嗎?
    發表于 04-28 06:54

    NTAG 424 DNA復制更改后的值本身并將其放在不同的標簽中不會損害安全措施嗎?

    我正在考慮為我的產品使用身份驗證標簽,例如 NTAG 424 DNA 芯片,我對其防止復制的能力有疑問,我想創建一個安全的解決方案,但我擔心NTAG 424 DNA 芯片生成的 URL。我聽說由于安全措施,每次執行讀取操作時值都會改變。但是,復制更改后的值本身并將其放在不
    發表于 03-30 09:00

    將GPIO輸出設置為高電平,然后將GPIO連接到GND,是否有任何安全措施?

    您好, 如果我將 GPIO 輸出設置為高電平,然后將 GPIO 連接到 GND,是否有任何安全措施? 任何事情都可能出錯,或者不會有任何問題? 有人建議我應該在 GPIO 和 GND 之間使用一個 10K 的電阻作為電流限制,以避免損壞 GPIO Ps - GPIO 將用于連接按鈕
    發表于 05-25 07:54

    不停電作業,安全措施要保證

    不停電作業,安全措施要保證    變電所低壓帶電作業,一要求開工作票,完成保證安全的組織措施;二要求穿戴好防護用品,使用絕彖工具,站在絕彖
    發表于 04-17 12:25 ?1629次閱讀

    相對2G系統,3G在信息安全措施上有哪些改進?

    相對2G系統,3G在信息安全措施上有哪些改進? 2G系統的加密機制是針對空中接口的,只有在無線接入部分的信息被加密,而在網絡內
    發表于 06-30 08:49 ?1694次閱讀

    如何采取安全措施防止物聯網攻擊影響您的數據

    這些年來,隨著越來越多的用戶選擇聯網的小工具和電器,物聯網設備在市場上迅速激增。為了滿足用戶日益增長的需求,制造商們正在將他們的設備送出倉庫,而沒有采取適當的安全措施。 缺乏安全措施是物聯網
    發表于 06-03 16:19 ?862次閱讀

    物聯網數量增加 安全措施需得加強

    如今,全球各地應用的物聯網設備已經達到數十億臺,并且數量每年都在大量增加。不幸的是,正在開發和部署的許多物聯網設備卻缺乏關鍵的安全功能,這使得它們很容易成為黑客和僵尸網絡的目標。如果沒有適當的安全措施,這些物聯網設備可能會導致災難性事件。
    發表于 03-20 15:48 ?422次閱讀

    3D打印機助力生物特征識別安全措施

    指紋識別曾被認為是保護電腦、筆記本電腦和移動設備的終極安全措施。
    的頭像 發表于 04-13 15:36 ?3313次閱讀

    電池的安全性問題有哪些安全措施?

    ,還可能造成火災、爆炸等安全事故。因此,電池的安全性問題必須得到重視。 ? 針對電池的安全性問題,研究人員提出了很多安全措施。其中,最常用的安全措施
    的頭像 發表于 02-24 16:54 ?1913次閱讀

    Testin云測開發者云測試平臺國內首發Android14

    近日,谷歌發布了 Android 14 的首個開發者預覽版(Android 14 Developer Preview 1),和以往版本一樣,Andr
    的頭像 發表于 03-10 15:02 ?1294次閱讀

    手持回路電阻測試儀接線方法與安全措施

    木森電氣手持回路電阻測試儀推出以來,受到廣大電力用戶的歡迎,一年多的廣泛應用獲得好評,電站B超在此分享手持回路電阻測試儀接線圖與安全措施,尤其是手持回路電阻測試儀安全措施,簡單易操作。
    的頭像 發表于 11-18 15:21 ?1081次閱讀
    手持回路電阻測試儀接線方法與<b class='flag-5'>安全措施</b>

    電容放電前安全措施

    電容放電前安全措施? 電容放電前的安全措施是十分必要的,因為電容能夠存儲大量的電荷,電容內的電荷釋放可能會引起電擊、火災等安全隱患。因此在進行電容放電之前,需要采取一系列安全措施來確保
    的頭像 發表于 09-08 11:35 ?856次閱讀

    smt加工焊接時需要注意幾點安全措施

    一般在smt加工中,手工焊接是最常見的,但是焊接過程中要注意一些安全措施,才能更有效率的工作。
    的頭像 發表于 09-15 09:14 ?680次閱讀

    谷歌發布Android14 將源代碼推送到AOSP(Android開源項目)

    在 2023 年 2 月發布的第一個 Android 14 開發者預覽版 中引入的,其中包括性能改進、更好的隱私和安全性以及其他用戶端自定義選項。 自首屆 Android
    的頭像 發表于 10-12 15:56 ?717次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>