Interpret Technique to PM|Chapter7:Secure

Abstract:产品研发过程中的一些计算机安全方面的知识。如web安全,信息攻击,加密,信息安全等。

撞库

  • 利用在a网站盗取的账户密码登b网站(大部分人喜欢在不同网站上用同一组账户密码)
  • 防范:1.网站:从其他维度检验(如若不在常用城市登录,则发个短信进行二次验证);2.用户:密码记忆工具or给自己定一个密码规则便于记忆;

web安全

SQL注入攻击

  • 原因:开发者未对用户提交的内容进行过滤,导致恶意SQL语句的执行;
  • 防范:设置过滤机制,如只允许使用字母和数字;(永远不要相信外界输入的数据);

    XSS漏洞

  • XSS(cross site script):跨站脚本攻击,即利用js产生的一个网站攻击另一个网站的安全问题;
  • dom-based xss(基于dom的xss漏洞)
  • stored xss:只要看过某网页的人的cookie都被发送到b网站;
  • 根源:未对参数货一些可执行代码进行校验货过滤;
  • 解决方法:进行校验(如手机号不是11位不让提交到服务器)或对可执行代码变普通文本废掉可执行能力;不对输入参数进行防护都会造成xss漏洞,可用工具扫描;

CSRF攻击

  • CSRF:cross site request forgery,跨站点请求伪造;即a网站对用户建立信任关系后在b网站利用这种信任关系、跨站点向a发起一些伪造的用户操作请求以达到攻击的目的;
  • 原因:服务器对浏览器过于信任,未区分请求是用户主动发出的还是模拟发出的;
  • 防范:1.关键数据操作的请求使用post请求,限制get请求的数据;2.关键数据操作时加上验证码验证用户身份;3.Anti CSRF token:在真正表单面里隐藏一个随机的每次都变化的token,当用户提交表单时,将token提交到后台进行验证,若验证通过则执行操作(b拿不到a表单里的token);

黑产系列

ARP攻击

  • mac地址(网卡地址):当网络上相邻的两台网络设备通信时必须明确知道对方的mac地址才能通信;
  • 局域网中的主机可以利用ARP(地址解析协议)来获取局域网IP对应主机的mac地址;
  • ARP协议的请求过程:主机A在局域网中发送ARP请求,内容为请主机B把mac地址告诉我——局域网中所有主机和网关都会收到这个消息,但只有主机B会回答这个消息(我是主机B,我的mac地址是xxx)——主机A获得B的mac地址并将其保存在自己的ARP缓存表里
  • 被攻击的根源:请求过程有漏洞;
  • ARP攻击能达到的目的:1.制造网络中断(how:使至少一方无法获得对方的正确mac地址,如攻击者主动回复A ARP消息);2.ARP欺骗,中间人攻击(how:攻击者主动回复病将自己的mac地址放入应答消息里伪装成网关,则A发送的所有收发消息都被窥探);
  • ARP攻击的主要手段:让被攻击主机的ARP缓存表中加入攻击者期望的错误信息;

android应用之二次打包

  • what:把Google play上的应用进行二次打包分发到国内市场,通过广告植入等手段牟利;
  • 流程:下载应用——反编译——篡改代码——重新打包——国内分发;
  • defend:1.校验签名(在应用的关键节点进行签名校验);2.加固处理(使无法被反编译或即使反编译了也无法打包);

年产百亿的DDoS攻击

  • 原理:通过对服务器发送大量无用的请求,耗尽服务器资源(CPU,内存等)导致服务器无法正常运行,正常请求无法得到响应;
  • 实现DDoS攻击需要:攻击者比被攻击者拥有更多的硬件资源(更好的CPU和更大的带宽),实现途径:1.通过流量平台租赁流量实现流量攻击;2.种植肉鸡,构建僵尸网络,利用云控指令对被攻击者发起攻击;
  • 可怕之处:被攻击者无法正确地区分哪些是攻击者发来的请求,哪些是正常的请求;
  • 攻击方式的切入点:利用TCP等协议栈或系统本身的缺陷达到最大化利用攻击资源的效果;
  • TCP协议的三次握手:客户端向服务器发送一个SYN报文(我要跟你建立TCP连接)——服务器向客户端发送一个SYN+ACK报文(ACK是对第一次握手中SYN报文的确认:同意建立连接)——客户端向服务器发送一个ACK报文(确认第二次握手的SYN报文被成功接收)——TCP连接成功建立,服务器和客户端开始数据的传输;

ROOT权限:裸奔模式

  • app遵循系统开发框架:开发框架定义了app获取系统能力的通道,app通过获取系统提供的能力来完成自己产品对应的功能;用户所做的每一个操作都要经过这个通道,由操作系统处理后完成;【通道是实现功能的必经之路】
  • 风险:如果通道被挟持/篡改,我们的敏感信息就可能暴露「这种技术叫:动态注入」
  • 动态注入:所有数据都会被某个「其他应用」窥视一遍,然后才会到达系统;
  • root的风险:手机root+安装某具有动态注入功能的应用——结果:信息被窥探;
  • 动态注入监控应用的实现过程:应用启动,A使用动态注入将自己的窥视代码注入应用进程中——窥视代码注入后会针对性拦截应用到系统的通道——应用使用通道时数据会先被A窥视,然后才会交给操作系统;
  • 好的作用:通过获取用户的使用习惯来做针对性的体验优化;

诈骗短信和伪基站

  • 原理:伪基站(核心原理:模拟正常基站的频率来吸引手机连接,然后对用户手机发送诈骗短信;GSM模式下手机与基站是单向认证,手机天生信赖所有基站)
  • 基站:手机能接入网络的桥头堡,所有用户的通话和上网行为都要通过基站连接网络;

家庭wifi防蹭网指南

  • 定期更换密码
  • 使用加密效果更好的加密方式:加密方式(WEP/WPA/WPA2/WPASK/WPA2-PSK;WEP加密弱,WPA/WPA2需要额外的认证服务器,不适合家庭网络,WPAPSK/WPA2-PSK最适合加密强)
  • 隐藏无限网络SSID:SSID是Wi-Fi名称,在路由器里关闭SSID广播即可防蹭,自连Wi-Fi时手动输入SSID即可;
  • 关闭DHCP服务:控制IP地址的分配,手动给自己的设备配IP地址;
  • 开启mac地址过滤:只允许自己的mac地址通过路由器;

设计windows病毒

  • 伪装:提高用户主动启动病毒源文件的可能性;
  • 释放主程序:感染计算机时病毒源文件需要将主程序释放到计算机的其他目录里(为了防止用户删除源文件导致病毒被清除);
  • 添加自启动:释放主程序的同时将主程序添加到注册表(windows系统里的“数据库”,存储着操作系统的一些关键设置,包括自启动设置)定义的启动项中;
  • 深度隐藏:设置病毒主程序所在的文件夹为隐藏+修改注册表、屏蔽常规恢复文件可见性的操作;
  • 自我复制:备份病毒的可执行程序——拷贝病毒的exe文件到各个磁盘的根目录+修改autorum.inf文件内容(打开磁盘=触发病毒运行);
  • 传播:通过windows提供的远程登录功能,利用管理员账户的弱口令来登陆到局域网中的其他计算机并拷贝病毒到计算机;

公共Wi-Fi

  • 无密码wifi:无任何加密保护;
  • 带WEP加密的wifi:可被窃听的;
  • 带WPA加密的Wi-Fi:不易被窃听的;
  • 钓鱼wifi
  • 蜜罐wifi:下次自动连接;
  • 风险:窃听重要信息,篡改信息;

加密

  • 密钥:一堆参数,把参数与明文信息按一定算法混到一起,把原始信息整的像代码一样;
  • 加密类型:对称加密(加解密双方的密钥相同),非对称加密(公私钥,不同,不可推导);

android系统权限管理

  • 常用权限:网络访问;读取手机状态和身份;开机启动;修改货删除外置存储中的相机/内容;
  • app调用相机权限的步骤:把需要的权限写在程序清单文件里——把文件打包到APK里——用户下载APK——安装时弹出一个权限说明——用户选择是否安装(选择安装=同意app调用权限)——app自调用

微信如何校验分享的合法性

  • 应用获取分享功能的过程:在微信平台上注册自己的信息(应用名称/包名/签名的公钥信息:使微信有校验应用的能力)——签名校验信息无法通过则拒绝分享;
Thanks!