簡體   English   中英

如果您設法找出相關的 API 端點,是否可以在移動應用程序上偽造進度?

[英]Is it possible to fake progress on a mobile app if you managed to figure out the relevant API endpoints?

在許多移動應用程序中,需要完成任務才能將它們標記為完成/獲得進度。 范圍從在 Duolingo 等語言學習應用程序上完成課程,到完成雇主可能法律要求的培訓課程。

我的問題是,如果您設法弄清楚相關移動應用程序的 API 端點是什么,那么偽造完成這些任務會很簡單嗎? 據我了解,無法確定 HTTP 請求來自受信任的移動應用程序。 那么,如果有人有這樣做的動機,是否可以向“我已完成任務 X”端點發送請求,並在不實際執行工作的情況下輕松獲得應用程序的進展? 例如,在 Duolingo 上運行一個機器人每天完成 10 節課。

我懷疑你無法阻止惡意用戶做這樣的事情。 在這種情況下,公司是否會采取任何策略來增加此類用戶不誠實干預的難度? 想到的事情是在應用程序代碼中嵌入一個 API 密鑰並使用它來簽署請求。 盡管如果深入研究整個應用程序代碼仍然可以找到此密鑰,但似乎它可能需要做更多的工作,因此會阻止某些人。 但是,如果只有一個人投入工作來弄清楚如何欺騙您的后端,他們可以輕松地分發這個。 我想如果在 TOS 中規定這將是非法的。

我的主要觀點是:

  • 這很容易做到嗎?
  • 如果是這樣,可以做些什么來防止它/使它變得更加困難?
  • 如果在 TOS 中規定這樣的事情是否違法?

謝謝!

如果通過例如測驗來檢查用戶的知識(例如 Duolingo 這樣做)來跟蹤進度,他們可以在服務器端驗證答案以防止作弊。

但是,是的,有些應用程序您只需向其中一個端點發送請求即可獲得“進度”。 但通常這只有在數據完整性不那么重要時才有可能。 您提到的那些進度跟蹤應用程序是用於自助的,因此作弊沒有太大意義。

你的問題

我的問題是,如果您設法弄清楚相關移動應用程序的 API 端點是什么,那么偽造完成這些任務會很簡單嗎? 那么,如果有人有這樣做的動機,是否可以向“我已完成任務 X”端點發送請求,並在不實際執行工作的情況下輕松獲得應用程序的進展? 例如,在 Duolingo 上運行一個機器人每天完成 10 節課。

是的。 從您對移動應用程序如何與其后端進行通信進行反向工程的那一刻起,您就處於 position 中,可以通過機器人或 cURL 或 Z6F061E19CAD5E27843CEAZ0 等工具的一次性請求來自動完成此類通信。

這很容易做到嗎?

中間人攻擊是用於了解移動應用程序如何與其后端通信的最流行的技術,您可以閱讀我的文章Steal that Api Key with a Man in the Middle Attack了解攔截對后端的 HTTP5 調用有多么容易:

In order to help to demonstrate how to steal an API key, I have built and released in Github the Currency Converter Demo app for Android, which uses the same JNI/NDK technique we used in the earlier Android Hide Secrets app to hide the API key .

因此,在本文中,您將學習如何在您控制的移動設備中設置和運行中間人攻擊以攔截 https 流量,從而竊取 API 密鑰。 最后,您將了解如何緩解中間人攻擊。

雖然本文是在從請求中提取 API 密鑰的上下文中,但學習移動應用程序如何與其后端通信的步驟是相同的。

如果移動應用程序使用證書鎖定來防止中間人攻擊,那么您可以通過閱讀我的文章How to Bypass Certificate Pinning with Frida on an Android App來了解如何繞過它,向您展示如何做到這一點:

今天我將展示如何使用 Frida 檢測框架在運行時掛鈎到移動應用程序並檢測代碼以執行成功的中間人攻擊,即使移動應用程序已經實現了證書鎖定。

繞過證書鎖定並不太難,只是有點費力,並且允許攻擊者詳細了解移動應用程序如何與其 API 通信,然后使用相同的知識來自動化攻擊或圍繞它構建其他服務。

一個可能的解決方案

據我了解,無法確定 HTTP 請求來自受信任的移動應用程序。

當您使用移動應用程序證明解決方案時,您可以非常確信請求確實來自您的移動應用程序的真實且未經修改的版本。

如果是這樣,可以做些什么來防止它/使它變得更加困難?

我建議您閱讀我對如何保護移動應用程序的 API REST問題給出的答案 ,尤其是強化和屏蔽移動應用程序保護 API 服務器可能更好的解決方案等部分。

簡而言之,移動應用程序證明將允許后端高度確信傳入的請求不是來自機器人或任何其他類型的自動化,也不是來自移動應用程序之外的重放攻擊或一次性手動請求.

您想要額外的里程嗎?

在回答安全問題時,我總是喜歡參考 OWASP 基金會的出色工作。

對於 APIS

OWASP API 安全前 10 名

OWASP API 安全項目旨在通過強調不安全 API 中的潛在風險並說明如何減輕這些風險,為軟件開發人員和安全評估人員提供價值。 為了實現這一目標,OWASP API 安全項目將創建和維護前 10 名 API 安全風險文檔,以及創建或評估 API 時最佳實踐的文檔門戶。

對於移動應用

OWASP 移動安全項目 - 十大風險

OWASP 移動安全項目是一個集中資源,旨在為開發人員和安全團隊提供構建和維護安全移動應用程序所需的資源。 通過該項目,我們的目標是對移動安全風險進行分類並提供開發控制以減少其影響或被利用的可能性。

OWASP - 移動安全測試指南

移動安全測試指南 (MSTG) 是移動應用安全開發、測試和逆向工程的綜合手冊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM