APP本地服务安全测试

一、安全测试基本分类:

1、系统安全

系统加固

安全加固:比如linux中关闭telnet端口,修改ssh端口

检测一些不必要的服务(需要卸载一个ping)--保证系统的最小集

app安全加固:加一层外壳

补丁

消息中间件:activityMQ,rabbitMQ,safMQ(关闭页面,非业务端口,默认用户)

防火墙规则(iptables)

防病毒

2、应用安全(安装包,服务,业务)----用户(人和服务)口令、敏感信息

(1)黑白名单(IP:port)----访问控制

(2)消息层面:数据加密和签名

(3)加密算法的安全性(对称、非对称)

3、管理安全

业务层面:面向普通用户

管理层面:管理节点创建虚拟机(对资源的管理,虚拟机创建成功后进行提供业务)

运营层面:对业务的处理

运维层面:针对管理员(线上,线下)

4、网络安全:关注数据传输安全(数据源头和目的),是否加密,检测数据的正确性和一致性(有无伪造)

(传输)----加密(hppts+ssl)

不是重点关注的:丢包后的处理 数据一致性(udp)

5、云安全测试

A用户--安全组A

B用户--安全组B

(1)将A进入B,或者将B加入A

(2)规则:a->b(ip/udp/icmp) b->a 单通 多通

安全:

1、硬件

防火墙,交换机

2、软件

二、app本地服务安全测试

问题1:app当前的现状,会遇到哪些安全类的问题

1、远程控制(木马)

2、恶意推广(付费)

3、外挂(程序的后门)

4、敏感、隐私信息被窃取

5、本地进程注入(四大组件没有权限控制)

6、钓鱼(盗版的应用)

账户安全

文件安全:文件权限的最小集,文件是否需要加密,脱敏处理(大数据的清洗)

支付安全:账户安全,日志安全(用户信息泄露),数据存储(加密存储),安全加密算法

进程安全:是否有状态资源监控,进程管理,脚本是否安全

文件存储:

app的四大组件安全(drozer工具)

activity:生命周期,服务的机制需要掌握

启动,恢复,停止,完成等各种状态的切换

service:

context provider:

broadcast:一对一,多对多

1、安装包安全

1.1安装包是否可以反编译

apk-->dex-->运行

反编译:dex->java->反编译(user/pwd/password等敏感信息)

编码:(1)用户敏感信息硬编码

(2)代码混淆

对于支持反射的语言,代码混淆有可能与反射发生冲突。

代码混淆并不能真正阻止反向工程,只能增大其难度

对于对安全性要求很高的场合,仅仅使用代码混淆并不能保证源代码的安全。

(3)代码扫描(fortify)

Fortify SCA 是一个静态的、白盒的软件源代码安全测试工具;

它通过内置的五大主要分析引擎:数据流、语义、结构、控制流、配置流等对应用软件的源代码进行静态的分析,分析的过程中与它特有的软件安全漏洞规则集进行全面地匹配、查找,从而将源代码中存在的安全漏洞扫描出来,并给予整理报告。

1.2、安装包是否有签名

(1)发布前校验签名使用的key是否正确

(2)使用命令:jarsigner –verify –verbose –certs apk包路径

验证结果:jar已验证

1.3、安装包是否完整

包发布:

(1)发布平台下载安装包

(2)安装包完整性校验:一般采用md5校验方式,通过md5工具和md5密钥进行校验

例如app下载后进行完整性校验

1.4、安装包中申请的权限问题

认证机制:android--manifest.xml中看各个组件的权限

对APP申请的权限进行检查,在Android工程的AndroidManifest.xml文件中查询申请的权限,删除不必要的权限,例如用户定位/通讯录/信息等权限,保留APP可用权限即可

2、软盘劫持

(1)安全问题:

用户安装了第三方不可信的键盘输入法,当涉及到隐私或者金融 类操作时需要应用进行校验提示

(2)建议:

使用应内部提供的软键盘

定期对手机进行病毒扫描

3、账户安全(最重要)

账户分类:

用户账户(管理员,普通用户),

服务账户(多个服务之间的交互需要使用口令)

docker(各种服务,通信可能是通过消息组建、配置文件---ip/port/user/password)

硬件账户(硬件动态库)

(1)密码是否明文存储(数据库/配置文件)

(2)密码加密算法是否安全

(3)密码是否加密传输

(4)是否支持账号锁定策略---3次,第四次锁定

(5)是否支持多点登陆

(6)注销后不能访问(session、cookies是否删除)

(7)账户权限控制(纵向越权和横向越权)

纵向越权:一个低级别攻击者尝试访问高级别用户的资源

横向越权:攻击者尝试访问与他拥有相同权限的用户的资源;(不同部门或者不同公司之间)

(8)密码安全要求(长度、字符,数字)

4、文件安全

(1)文件权限

dwrx 0,0,0 读,写,执行

用户、本组、其他组

根据业务需要赋予文件最小权限

(2)文件内容

敏感信息(用户名、密码),加密的方法,加密的安全要求

包括对外提供的用户名和密码信息以及程序内部交互的认证信息:需要满足密码不能是明文,并且需要安全加密算法进行加密配置,密码长度和格式满足安全要求

文件上传和下载:

要不要脱敏处理(医院上传证件照)

传输过程中加密

完整性校验(hash值校验)

文件存储

5、日志安全

(1)业务日志----交易的流水号,交易的过程

(2)系统内部交互日志 a--->b---->c 记录整个交互过程

debug/interface/run/security

log.debug(message.toString())----打印所有的信息

(3)统计/审计日志---系统的入口记录每分钟接收的消息数

(4)重点考虑:敏感信息的存储(密码等)

(5)日志管理平台:收集各个系统中的日志

日志中不能打印密码信息;

日志中不能打印用户隐私信息;

需要有安全日志功能;

日志需要有清理机制;

日志不能随意删除。

日志安全的测试手段:

自己写脚本去扫描日志文件(user/pwd/password/userName/userpwd)

shell/python/search工具

6、进程安全

1、启动

(1)权限问题:win10经常遇到自己运行exe报没有权限

一般使用普通用户启动服务

linux:不能使用root用户启动服务

在start.sh中判断只能当前用户启动

(2)启动过程中数据问题(有时候进程启动的时候会生成一下临时文件,需要考虑临时文件中是否涉及安全信息)

启动过程中的临时文件需要删除

(3)启动完成后对外端口启动在业务网络上,对内端口启动在本地网络上

端口的启动机制

问题:当前端口有什么安全风险

0.0.0.0 全网监听,内网的会被外部网络访问到

2、运行

(1)运行过程中的缓存信息涉及隐私需要加密

(2)需要记录运行日志

(3)运行过程中需要有监控认证

运行监控:vcs/hacs----提供守护服务

(4)多进程之间的交互需要认证

3、停止

(1)清理临时文件

(2)安全断开相关连接

7、数据存储/文件存储安全

功能:数据完整性;数据备份;容错与冗余

AI--机器学习

(1)数据的重要性---机密性,完整性,防丢失

目的:保护机密数据;防止数据丢失;确保数据完整性

python爬虫:统计从10年到现在当前歌手的歌曲:

a:有多少唱季节,春,夏,秋,冬

b:多少唱城市的歌曲,成都,北京,上海.....

最终生成一个报表

(2).数据的介质(硬件)

介质:单个文件、数据库、文件服务器、缓存服务

数据库

功能:数据完整性

数据存储:加密存储

访问控制

监控机制(服务监控,数据监控)

备份恢复

(3)数据库安全

DCL DDL DML 数据库扫描--NGSSquirrel(全球公认的数据库扫描软件)/DatabaseScanner

代码安全:扫描(fortify)

时间: 2024-10-16 09:36:39

APP本地服务安全测试的相关文章

本地服务,测试接口

开启本地服务器,本地测试接口数据: 1.安装服务器,启动服务器(在json文件的当前目录启动) http-server.cmd -c-1 2.新建.json的文件夹,将所需要的接口返回值放到这个文件夹下 3.然后将项目中的接口地址替换为本地的地址,即可测试 http://192.168.3.206:8080/dayliy.json 原文地址:https://www.cnblogs.com/wangjinger/p/sever.html

移动APP安全在渗透测试中的应用

http://netsecurity.51cto.com/art/201403/433726_all.htm 以往安全爱好者研究的往往是app的本地安全,比如远控.应用破解.信息窃取等等,大多人还没有关注到app服务端的安全问题,于是在这块的安全漏洞非常多. 移动app大多通过web api服务的方式跟服务端交互,这种模式把移动安全跟web安全绑在一起.移动app以web服务的方式跟服务端交互,服务器端也是一个展示信息的网站,常见的web漏洞在这也存在,比如说SQL注入.文件上传.中间件/ser

SharePoint 2013 搭建app本地开发环境

原文:SharePoint 2013 搭建app本地开发环境 使用SharePoint App,如果要通过应用程序目录分发 SharePoint 相关应用程序,如具有完全控制权限的 SharePoint 相关应用程序(无法部署到 Office 365 网站),则将需要使用本地计算机上完整安装的SharePoint 2013.我们在本文中提供了用于设置SharePoint 2013 的本地安装以及开始开发SharePoint 相关应用程序的步骤. 一.配置前准备 1. 请确定已经安装好ShareP

Azure Stack技术深入浅出系列5:在Azure Stack上使用Web App PaaS服务及其背后原理窥探(开发案例)

App Service 是微软Azure的PaaS产品. 为任何平台或设备创建Web App PaaS服务和mobile App PaaS服务. 将应用与SaaS解决方案集成.与本地应用程序进行连接,以实现业务流程的自动化.在我们日常开发中,经常会使用Web App PaaS服务来承载企业的业务. 本文试图通过一个案例来分别详细说明Azure Web App业务的下列几大特点: 应用服务计划 多种语言和框架 持续集成和部署 连接数据库服务 可用性全局缩放 就在本文撰写过程中,Azure Stac

Android APP性能及专项测试(个人整理)

移动测试. Android测试 .APP测试   Android篇 1. 性能测试 Android性能测试分为两类:1.一类为rom版本(系统)的性能测试2.一类为应用app的性能测试 Android的app性能测试包括的测试项比如:1.资源消耗2.内存泄露3.电量功耗4.耗时5.网络流量消耗6.移动终端相关资源利用率7.帧率8.渲染等等.... 工具:(工具的原理都是基于调用android底层的一些api来获取到测试所用到的值)GT等 测试方法:1.设计场景 :手工或自动化场景2.获取数据:可

网站的优化----首页优化---app调取服务端数据

高并发经常会发生在有大活跃用户量来访问网站的某个点,例如用户高聚集的业务场景中,如:抢购,促销等.为了让用户流畅的访问网站,来根据自己的业务设计适合系统的处理方案. //对于APP网站首页数据,通常是有APP请求服务端数据在本机进行绘制.APP越少的请求服务端的,就会减少服务器压力:资源和带宽. 1.服务端给APP下发的数据越少,减少无用字段的下发.就是APP需要什么,服务端下发什么. 2.APP每次请求服务端数据,服务端下发最新数据和数据版本号,APP可以缓存到本地,每次接口请求数据的时候,上

App的网络环境测试和性能优化

1. 网络环境测试一般是先用网络损伤模拟仪或mock工具模拟常见的七种损伤和5种网络环境,然后再国内外城市采样的方式(带宽和延时)组合测试生成报告, 下面是一些统计图 2. 采样点的选择一般都是根据自己server收集的用户信息.如果新app就要参考近品/竞品或第三方的统计数据拍脑袋 3. 从测试的角度,应该建立实时监控的web portal.其实测试的目的除了保证产品发布的质量.更重要的是为优化提供依据,所以report最后一部分都是issue list 和optmize advice,当然测

Android Service学习之本地服务

Service是在一段不定的时间运行在后台,不和用户交互应用组件.每个Service必须在manifest中 通过来声明.可以通过contect.startservice和contect.bindserverice来启动. Service和其他的应用组件一样,运行在进程的主线程中.这就是说如果service需要很多耗时或者阻塞的操作,需要在其子线程中实现. service的两种模式(startService()/bindService()不是完全分离的): 本地服务 Local Service

wp8人人监督app开发历程 - (前期调研 > app策划 > 代码编写 >测试 > 上架到商店)

前言 一直想为社会做一点事情,却一直都不知道做什么,策划已久的"人人监督"app终于做了一小半了. 开发了好几款app了,一直没写博文记录在开发app中遇到的问题和技术,这次"人人监督"不能在错过了,一定要坚持把整个开发历程写下来,同大家分享在代码世界中的快乐. "人人监督" 是一款供民众投诉.检举.监督的一款app,其目的是人人监督以营造和谐的社会! 项目技术 开发环境:Windows8  + Visual Studio 2012 + SQl