浅谈企业信息安全如何从0到1-(一)

企业信息安全体系,包括了技术和管理这两个方面。建设和完善这个体系是保障公司或企业所有信息系统能安全,稳定,正常运行和线上业务顺利开展的前提。

1.技术体系

技术体系可以分拆成二个能力,其中一个是建设跟安全相关的基础设施和系统的能力,另外一个是安全运营的能力。

第一个能力有哪些?比如防火墙的设计,WAF的建设,抗D的建设,CC的防护,红蓝对抗等,才能抵御来自网络边界的攻击。 当然这部分能力,作为企业来说,可以外采相关的安全设备,产品,服务,也可以自行研发相关的系统。

第二个能力对于企业来说也是相当重要的,因为当研发或者采购了安全设备和产品之后,需要部署和使用起来,才能真正保障,但是这个过程实操的难度是比较高的,涉及到相关的安全人员的技术能力和经验,攻防对抗程度,企业的发展阶段,以及企业IT基础设施的支撑能力等许多因素,比如如何nginx的访问日志都还没有接入到ELK中,怎么对日志进行研判,发现攻击行为呢?安全运营是技术体系落地的重要保障。

2.管理体系

管理体系也包含两个层面,一个是发布和维护信息安全相关的制度,规范,流程,策略

另外一个是落地能力。企业常常面临的问题是安全管理制度和流程无法落地。其中涉及高层的重视程度和外部监管,合规要求,部门之间的协作,企业IT基础设施的支撑能力,安全自动化等。

管理体系能否落地以及落地程度是衡量安全管理能力的标准。

我在宠物电商做企业安全建设-业务风控篇(1)

进入到某电商宠物之后,我就开始接触各种羊毛党和黑产,原因是公司的运营人员对风控这档事儿好像漠不关心,前后被大大小小的搞了很多次,没有复盘,没有总结,结果还是好了伤疤忘了痛,压根没想过如何把实惠给到真实用户,而是只关心营销数据或者GMV这些指标去了,让人感觉不理解。

那么我是怎么关心起业务风控的呢? 我记得有一次,我在测试一个用户活动,好像是个签到的功能,我就简单地用脚本重复请求了一次,结果也成功,成功之后就会获取一种官方的虚拟抵扣币,暂且叫e币吧 ,而官方的使用规则就是,这个e币可以抵扣总商品价格的10%,简单来说 就是100元的商品,我可以用10个e币抵扣10元,只需要付款90元。这种获取e币的渠道多种多样,主要是鼓励用户多参加官网的活动,提升用户的活跃度,从出发点来看,是ok.

但是这里有个问题,就是这些参与活动的渠道是否都有被严格做过安全测试,我当时也是严重怀疑,然后就自己去灰盒测试了几个活动,果不其然,其中一部分活动存在被绕过或者可以重复参加的情况,可能很多人(包括开发人员+产品经理+测试人员 )都没有发现。

这些对于专业的羊毛党和黑产来说,是他们所愿意看到的。更严重的是,除了我之外,还没有人去追踪过这些e币的合理性,比如说到底有多少真实用户参与了某个活动,获得了多少个e币的奖励。

说实在的,看到这样的情况,也是很无语的,从实际价值来看,这些e币其实都是公司的营销成本,如果没有这些e币,那么用户就需要追加商品被抵扣的部分,对于公司来说,是资金的损失,但是一些人对待这些e币的态度,认为就是一些虚拟币,公司想发多少,就发多少,即使被薅羊毛了,也问题不大。

有这种看法的人不在少数,而且天真地以为这种情况对公司的危害不大。其实我当时也挺震惊的,因为跟钱相关,真金白银,我想对于公司损失不只是现金流,而重要是那些实实在在的优惠被羊毛党和黑产所窃取。

我在宠物电商做企业安全建设之运维安全篇(1)

我记得当时进入某宠物电商的时候,当时是以PHP开发工程师的角色,本来以为所做的工作也会是以PHP开发为主,不过命运使然,在多次跟当时技术总监“沟通交流”之后,我被赋予了更有挑战性的角色-运维安全,就这么顺理成章成为运维组的一员。

其实没有什么的私下沟通,而是当时我几乎每天都会在公司官方上找到了几个Bug,于是就整理成文档,通过邮件抄送给技术总监,而技术总监也希望有人把公司的安全的管理起来,所以一切看起来都是很自然而然。

进入公司的第一个挑战,就是很多PHP开发的开发环境都在本地使用的wamp或者phpstudy搭建的集成环境,每个开发配置的php.ini也不尽相同,导致跟线上测试环境,线上生产环境的差异比较大。所以领导希望运维组能想办法解决此事。

其实当时我们组内沟通了一下这个问题的解决方案,最后给出的方法是,在本地服务器上部署一套跟线上测试环境差不多的PHP环境,然后给每个PHP开发人员创建一个Web根目录,然后根据开发机的IP来进行区分,映射到不同的根目录里面去,这样开发人员在保存代码的同时,会通过ftp将代码上传到本地服务器,然后在本地完成host的绑定。

比如 程序员A(192.168.2.1) 将www.xx.com 的host绑定到 192.168.2.11 ,然后在本地浏览器访问www.xx.com的时候,会访问192.168.1.1这台主机,这台主机上的配置nginx的转发功能,根据192.168.2.1将请求转发到 /www/htdocs/a/www.xx.com/下。

程序员B(192.168.2.2) 将www.xx.com 的host也绑定到 192.168.2.11 ,然后在本地浏览器访问www.xx.com的时候,会访问192.168.1.1这台主机,这台主机上的配置nginx的转发功能,根据192.168.2.2将请求转发到 /www/htdocs/b/www.xx.com/下。

但是都是使用的同一套PHP环境,唯一的不足点,是会导致硬盘数据量会增加,不过从实际效果来看,达到了预期,有点瑕疵也是能接受的。

Python项目中调试执行单文件的注意点

有时候 ,我们在一个python项目做单文件调试的时候,会发现想单独执行某个文件,但是直接执行的话,会导致module not found 问题,这些文件从系统的path路径找不到,程序的引入文件,所以在这个时候,需要用到sys这个库。

你需要让代码告诉编译器,我引入的自定义的库文件在哪里,所以 一般的解决方案:

import sys

sys.path.append(‘./pathfile’)

#pathfile代表程序需要引入文件的相对路径或者绝对路径,

这样编译器就知道除了path以外,还需要去哪里引入库文件。

CentOs如何快速安装Chrome

The Easy Way

Universal Installation Script for RHEL/CentOS 6.X/7.X

All you need to do is run our installer script and you should be good to go.

curl https://intoli.com/install-google-chrome.sh | bash

This will automatically configure and enable the official Google repository, import Google’s signing key, and install the latest google-chrome-stable executable in your path. If you’re on a RHEL 6.X flavor the it will also automatically find and install all of the unmet dependencies that would normally make the installation fail. You can rerun the script whenever you want to grab the latest version of Google Chrome and, if you’re using RHEL 7.X, then you can update the package using yum as you would with any other package.

RHEL/CentOS 7.X

Alternatively, you can add the repository manually if you’re using a 7.X version. If you’re using Amazon Linux AMI then you’re definitely on a 6.X version and need to use the installation script. Otherwise, you can run

cat /etc/redhat-release

and check the output for the version number to confirm that you’re using 7.X. For example, if you’re using RHEL 7.0 then you would expect to see something like:

Red Hat Enterprise Linux Server release 7.0 (Maipo)

You can use the official Google repository if you see a 7.X version there. To add it to your system, simply create a file called /etc/yum.repos.d/google-chrome.repo with the following contents.

[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub

Then you just need to run

sudo yum install google-chrome-stable

to install the Chrome package. This will add the google-chrome-stable script in /usr/bin/. Note that this is the same thing that the installation script does on 7.X flavors, so it’s safe to use the script regardless of which version you’re on.

Selenium如何定位到canvas以及如何单击canvas上的元素

最近在做一个自动化的上传项目,碰到了Selenium需要点击canvas上的元素关闭网页蒙层的问题? 想了好久一直没有解决,在网上搜索和实践,终于找到解决方法。

1.定位canvas

这个比较简单,有很多方法,比如 find_element_by_id()

2.点击canvas中的元素,关闭蒙层

这里需要用到 ActionChains 这个类,它是继承selenium.webdriver这个父类,

使用方法也比较简单,主要是操作鼠标,移动到那个关闭按钮的坐标上

ActionChains(driver).move_to_element_with_offset(canvas,590,190).click().perform()

这里做下简单的解释,driver是浏览器的实例,move_to_element_with_offset() 通过相对定位找到元素,canvas是这个canvas画布,click()是鼠标的单击操作,perform()是执行操作,590是元素到左边边框的距离,190是元素到顶部边框的距离。

这样一行命令就完美解决了问题,关闭了网页上的canvas蒙层!

给出参考链接: https://www.pythonf.cn/read/99311