Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何保护Android应用

如何保护Android应用
EN

Stack Overflow用户
提问于 2020-05-07 05:56:55
回答 2查看 268关注 0票数 0

为了应用程序内部的安全性,我使用下面的方法来生成Keyhash。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private String getKeyHash() {
        PackageInfo info;
        String keyHash = null;
        try {
            info = getPackageManager().getPackageInfo(BuildConfig.APPLICATION_ID, PackageManager.GET_SIGNATURES);
            for (Signature signature : info.signatures) {
                MessageDigest md;
                //md = MessageDigest.getInstance(hashStretagy);
                md = MessageDigest.getInstance("SHA");
                //md = MessageDigest.getInstance(getK);
                md.update(signature.toByteArray());
                keyHash = new String(Base64.encode(md.digest(), Base64.NO_WRAP));
                Log.v("KeyHash : " , keyHash);

            }
        } catch (PackageManager.NameNotFoundException e1) {
            Log.v("name not found" , e1.toString());
        } catch (NoSuchAlgorithmException e) {
            Log.v("no such an algorithm" , e.toString());
        } catch (Exception e) {
            Log.v("exception" , e.toString());
        }
        return keyHash;
    }

在调用API时,除了上述保护应用程序安全的方法之外,有没有其他有效的方法来生成密钥散列。

我们可以创建APK密钥吗,这个SHA256密钥在构建APK之后可以进行反向工程吗?请提前在this.Thanks上帮我。

EN

回答 2

Stack Overflow用户

发布于 2020-05-07 14:49:20

插装框架

为了应用程序内部的安全性,我使用下面的方法来生成

无论您对哪种类型的代码进行了多少混淆,攻击者只需在运行时使用开源工具框架(如Frida )连接到您的移动应用程序即可

将您自己的脚本注入黑盒进程。钩子任何函数,监视加密API或跟踪私有应用程序代码,不需要源代码。编辑,点击保存,并立即看到结果。所有这些都无需编译步骤或程序重启。

所以攻击者发现了你正在调用的函数,然后挂上它来监听返回结果,并将其提取到命令和控制服务器,或者只是将其修改为他喜欢的任何值。

逆向工程

我们可以创建SHA256密钥吗,这个SHA256密钥可以在构建APK后进行逆向工程吗?

是的,您可以这样做,我首选的工具是MobSF - Mobile Security Framework

移动安全框架是一个自动化的,一体化的移动应用程序(安卓/iOS/Windows)笔测试框架,能够执行静态分析,动态分析,恶意软件分析和web API测试。

您可以阅读文章How to Extract an API Key from a Mobile App with Static binary Analysis来了解我是如何使用MobSF来提取API的,但是过程将类似于查找和提取任何其他类型的密钥。

您可以通过使用JNI/NDK将秘密隐藏在本机C代码中,从而使静态分析很难找到它

使用Android Studio2.2和更高版本,您可以使用

将C和C++代码编译到本地库中,并使用集成开发环境的集成构建系统Gradle将其打包到您的APK中。然后,您的Java代码可以通过Java native Interface (JNI)框架调用本机库中的函数。

有关示例实现,请参阅Currency Converter Demothis folder,这是文章Steal that API Key with a Man in the Middle Attack的配套移动应用程序

为了帮助演示如何窃取应用程序接口密钥,我在Github中构建并发布了适用于安卓系统的货币转换器演示应用程序,它使用了我们在早期的安卓隐藏秘密应用程序中使用的相同的JNI/NDK技术来隐藏应用程序接口密钥。

因此,在本文中,您将学习如何设置和运行MitM攻击来拦截您控制的移动设备中的https流量,以便窃取API键。最后,您将在较高的级别上了解如何减轻MitM攻击。

本文向您展示了如何使用代理来进行中间人攻击,这是另一种广泛用于从移动应用程序中提取秘密的技术。当我无法通过静态分析找到秘密时,我发现它非常有用。

在本文中,我使用了一个非常流行的开源工具mitmproxy

是为渗透测试人员和软件开发人员提供的一种交互式的、支持TLS的拦截HTTP代理。

将API锁定到移动应用程序

在调用

时,有没有其他有效的方法来生成密钥散列,以保护应用程序的安全。

我认为你正在寻找的是锁定你的应用程序接口服务器,只接受来自你的移动应用程序的请求,如果是这样的话,请阅读我给问题如何保护移动应用程序的API REST?中关于保护应用程序接口服务器的部分和一个可能的更好的解决方案。

基本上,在这个回复中,您可以学习几种技术来保护您的API服务器,并尝试以高度的信心将其锁定到您的移动应用程序。

你想走更远的路吗?

在回答任何安全问题时,我都觉得有必要参考OWASP基金会的优秀工作。

适用于移动应用

OWASP Mobile Security Project - Top 10 risks

是一个集中的资源,旨在为开发人员和安全团队提供构建和维护安全移动应用程序所需的资源。通过该项目,我们的目标是对移动安全风险进行分类,并提供开发控制,以减少其影响或利用的可能性。

OWASP - Mobile Security Testing Guide

移动安全测试指南是一本全面的移动应用安全开发、测试和逆向工程手册。

对于APIS

OWASP API Security Top 10

OWASP API安全项目旨在通过强调不安全API中的潜在风险,并说明如何减轻这些风险,为软件开发人员和安全评估人员提供价值。为了促进这一目标,OWASP API Security Project将创建并维护前10个API安全风险文档,以及在创建或评估API时的最佳实践的文档门户。

票数 0
EN

Stack Overflow用户

发布于 2020-09-24 06:11:13

首先,请参考Google HEREOWASP Mobile top 10 guide的最佳实践指南。

但是,从个人经验来看,以上内容只会帮助您解决基本和常见的安全问题。作为高技能开发团队的一员,由于手头的开发任务,我们仍然跟不上现代网络攻击的进步和发展。Proguard也只在基础级别上工作,更高级的攻击确实设法绕过了。

最终为我们工作的是与一个安全解决方案的合作。我们选择了AppSealing。还有其他可用的解决方案。我记得Arxan,Appdome,Protectmyapp,Promon。我相信还有更多。这些解决方案还将处理最新的攻击,同时您可以专注于开发工作。集成也非常简单。AppSealing要求您上传您的apk,然后下载受保护的文件进行分发。

如果你有一个处理个人和财务信息的应用程序,你绝对应该考虑这些,而不是试图在内部管理安全。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61650869

复制
相关文章
Google Play Store启动漏洞赏金计划保护Android应用
Google终于发布了Google Play Store的漏洞赏金计划,安全人员可以寻找或者报告Android应用中存在的漏洞。 这个项目的名称为 “Google Play安全奖金”,赏金会发放给那些
FB客服
2018/02/27
1.1K0
Google Play Store启动漏洞赏金计划保护Android应用
如何使用Tarian保护Kubernetes云端应用的安全
Tarian是一款针对Kubernetes云端应用程序的安全保护工具,该工具可以通过预注册可信进程和可信文件签名,保护在Kubernetes上运行的应用程序免受恶意攻击。Tarian能够检测未知进程和注册文件的更改,然后发送警报并采取自动操作,从而保护我们的K8s环境免受恶意攻击或勒索软件的侵扰。
FB客服
2022/02/25
6200
如何使用Tarian保护Kubernetes云端应用的安全
如何移除Android应用广告
0x00 前言 我用以前做过的一个小游戏为例,源代码地址:http://git.oschina.net/androidsourcecode/parity,如果不想自己编译,其中已有编译好的APK包(Parity-release-signed.apk)。这个游戏内使用了google的插页广告。我的目的是逆向破解这个apk,去掉其中的广告。 Android逆向工程基本环境设置 0x01 下载APP 如果要破解的应用已经安装到了手机里,我们需要使用adb pull从手机里下载这个app。 确保手机已打开usb调
用户1467662
2018/03/30
1.9K0
如何移除Android应用广告
如何使用 HTTP Headers 来保护你的 Web 应用
开发者可以利用 HTTP 响应头来加强 Web 应用程序的安全性,通常只需要添加几行代码即可。本文将介绍 web 开发者如何利用 HTTP Headers 来构建安全的应用。虽然本文的示例代码是 Node.js,但基本所有主流的服务端语言都支持设置 HTTP 响应头,并且都可以简单地对其进行配置。
IT大咖说
2020/07/09
1.2K0
如何构建Android MVVM 应用框架
概述 说到Android MVVM,相信大家都会想到Google 2015年推出的DataBinding框架。然而两者的概念是不一样的,不能混为一谈。MVVM是一种架构模式,而DataBinding是一个实现数据和UI绑定的框架,是构建MVVM模式的一个工具。 之前看过很多关于Android MVVM的博客,但大多数提到的都是DataBinding的基本用法,很少有文章仔细讲解在Android中是如何通过DataBinding去构建MVVM的应用框架的。View、ViewModel、Model每一层的职责如
美团技术团队
2018/03/12
4.6K1
如何构建Android MVVM 应用框架
Spring认证指南:了解如何使用 LDAP 保护应用程序
原标题:Spring认证中国教育管理中心-了解如何使用 LDAP 保护应用程序(Spring中国教育管理中心)
IT胶囊
2022/02/07
9420
Spring认证指南:了解如何使用 LDAP 保护应用程序
如何保护多云环境
IT团队可能会为某些业务功能选择私有云,从而考虑云计算供应商数据中心的位置和合规性基础。同时,公共云可能是基于成本、易部署、覆盖和性能等因素托管面向互联网的Web应用程序的理想环境。这种新设置可以利用低延迟的边缘计算为不同的用户提供功能。
CloudBest
2019/08/02
5580
如何保护多云环境
如何获取Android系统应用的Action
2.此处以获取安装软件应用的action为例,在文件管理器里面随便点击一个安装包(提前下载好一个apk应用),让手机处于安装界面,如下图所示:
程序员飞飞
2020/02/27
1.8K0
如何获取Android系统应用的Action
应用安全思维系列之一:如何保护密码才安全
【本文背景】 近几年,国内一些企业的后台用户信息被黑客公布,相信大家都有耳闻,这只是公布了的,没公布的呢?还有多少,你想想诸多中国互联网企业保存了多少用户的数据,它们往往都是黑客们的“余粮”,这些事件导致的损失咱就不耸人听闻了,在类似事件当中,有诸多的用户隐私信息,其中最敏感的莫过于密码本身了,今天就讲讲对于企业应用来说,如何保护用户的密码才安全。 使用“安全思维”一词,源于我认为这些原则不需要背诵,而是你应用安全思维形成后的信手拈来。 【密码保护的原则】 1. 永远不要在数据库、会话及本文当中保存明
FB客服
2018/02/01
6760
如何保护 Windows RPC 服务器,以及如何不保护。
PetitPotam技术在人们的脑海 中仍然记忆犹新。虽然它不是直接的利用,但它是一个有用的步骤,可以从特权帐户获取未经身份验证的 NTLM 以转发到 AD CS Web 注册服务之类的东西以破坏 Windows 域。有趣的是,在微软最初对修复这些问题不屑一顾之后,他们发布了一个修复程序,尽管在撰写本文时似乎还不够。
Khan安全团队
2022/01/18
3.2K0
如何构建Android MVVM应用程序
Databinding 是一种框架,MVVM是一种模式,两者的概念是不一样的。我的理解DataBinding是一个实现数据和UI绑定的框架,只是一个实现MVVM模式的工具。ViewModel和View可以通过DataBinding来实现单向绑定和双向绑定,这套UI和数据之间的动态监听和动态更新的框架Google已经帮我们做好了。在MVVM模式中ViewModel和View是用绑定关系来实现的,所以有了DataBinding 使我们构建Android MVVM 应用程序成为可能。   之前看了很多关于DataBinding的博客和相关的一些Demo,大多数就是往xml布局文件传入一些数据,然后把这些数据绑定到控件上( 如TextView binding:text=“@{user.name} ),接着在这些控件上(如Button binding:setOnClickListener="@{user.listener}") 设置一些事件到控件上,基本讲述都是DataBinding的基本用法。但是并没有人告诉你把一个onClickListener 写到一个类并把这个listener绑定到xml里面上是不是不太好,也没有人告诉你这个和xml布局绑定的ViewModel类应该放哪些数据,应该做什么事?应该如何设计?更是很少有博文来告诉你在Android 中如何通过Data Binding 去构建MVVM 的应用框架。这也就是是本篇文章的重点。接下来,我们先来看看什么是MVVM,然后在一步一步来设计整个应用程序框架。
developerHaoz
2022/05/13
1.3K0
如何构建Android MVVM应用程序
TenSec 2019:腾讯安全数盾如何用AI应用实践数据保护
伴随产业互联网的不断推进,数据已经成为企业发展的核心资产,如何守护好企业的数据资产安全,也由此成为产业升级下所有企业务必要思考的全新命题。 在6月11日-12日召开的2019腾讯安全国际技术峰会上,腾讯安全专家研究员彭思翔带来议题《AI在数据安全中的实践》,介绍了腾讯安全数盾以AI为核心,构建的包含外部攻击防护、数据交换保护、内部防泄露等全流程的数据安全保护方案。 (腾讯安全专家研究员彭思翔在TenSec 2019现场演讲) 腾讯安全国际技术峰会由腾讯安全发起,腾讯安全科恩实验室和腾讯安全平台部联合
腾讯云安全
2019/06/14
1.7K0
TenSec 2019:腾讯安全数盾如何用AI应用实践数据保护
如何开启保护模式
实模式下的内存访问形式是段基址左移16位+段内偏移地址,实模式下的寄存器是16位,也就是说CPU最大可以放到的地址是0xFFFF0+0xFFFF,即0x10FFEF。
shysh95
2021/07/16
1K0
如何加强数字版权保护
随着网络和传媒业的发展,数字版权也成为了人们关注的焦点。以前看电视都要守着电视机,听音乐要买CD。现在随着数字技术的成熟,人们有了更多的选择,有各式各样的视频平台,音乐平台,咨询平台等等。人们消遣的渠道也从线下发展成了线上。各种数字化产品的侵权、盗版等问题也是不断的接踵而来。墨者安全认为加强数字版权保护是刻不容缓的,可以从以下几个方面来加强数字版权的保护。
墨者安全科技
2019/07/16
1K0
如何加强数字版权保护
如何保护移动应用免受运动鞋机器人的侵害
自动购买机器人,也被称为“运动鞋机器人”、“点击机器人”、“Instacart机器人”和其他名字,正在毁掉消费者和工人的网上购物和零工经济体验。这些机器人会对移动业务的声誉和底线造成相当大的损害。
用户8054111
2020/12/14
5040
Traefik 如何保护应用免受 Log4j2 漏洞的影响
2021 年 12 月 10 日,Apache Log4j2 中的一个被称为 “Log4Shell” 的漏洞被发布(CVE-2021-44228),引入了严重的安全风险。作为 Java 应用程序日志库中的一个核心组件,其广泛用于著名的开源项目以及企业级后端应用程序。在本文中,我们将向您展示 Traefik 如何基于插件系统帮助我们的业务缓解此问题。
Luga Lee
2021/12/21
1K0
Traefik 如何保护应用免受 Log4j2 漏洞的影响
如何hack和保护Kubernetes
Kubernetes是一种宝贵的资源,也是全球开发流程中领先的容器管理系统,但它也不能免受恶意攻击。使用 Kubernetes 需要深入了解 Kubernetes 环境,包括在集群中创建、部署或运行应用程序时可能遇到的不同漏洞。
用户5166556
2023/08/09
2080
如何hack和保护Kubernetes
如何实现Spark过载保护
前言 因为我司将Spark大规模按Service模式使用,也就是Spark实例大多数是7*24小时服务的,然后接受各种ad-hoc查询。通常最难受的就是被bad query 给拖死了,然后导致服务不可
用户2936994
2022/07/21
4660
如何实现Spark过载保护
如何保护PostgreSQL免受攻击
服务器刚搭建,流量少,没有任何对黑客有价值的东西,你可能就会忽视相关的安全问题。但是,许多漏洞攻击都是自动化的,专门用于查找你服务中的BUG。这些服务器主要目的就是攻击,与你服务器中的数据并无多大关系。
独钓寒江雪_Ly
2018/08/02
1.5K0
[译] 如何优化您的 Android 应用(Go 版)
原文地址:How to optimize your app for Android (Go edition) 原文作者:Raj Ajrawat 译文出自:掘金翻译计划 本文永久链接:github.co
Android 开发者
2018/07/02
1.8K0

相似问题

android应用卸载保护

40

保护android应用程序

42

保护android应用程序

11

Android:应用授权,拷贝保护

11

Android:保护付费应用免受盗版?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文