置顶随笔

[置顶]Safe3SG安全网关

摘要: 1. 产品简介 Safe3SG安全网关系统(简称:Safe3SG)是Safe3 Network Center结合多年应用安全的攻防理论和应急响应实际经验积累的基础上自主研发完成安全产品。传统的防火墙及入侵检测产品简单地通过WEB等应用的流量,Safe3SG是一种无缝地、透明地嵌入网络的嵌入式设备。当数据包通过IPS时,它们能被完全检测出来以判断它们是合法的还是恶意的。这种实时防护是最有效的防止有...阅读全文

posted @ 2009-05-04 12:27 Safe3 阅读(580) 评论(0) 编辑

2012年4月24日

Using Internet Explorer from .NET

摘要: 5.0IntroductionEarlier in this book we have looked at how to read HTML from websites, and how to navigate through websites using GET and POST requests. These techniques certainly offer high performance, but with many websites using cryptic POST data, complex cookie data, and JavaScript rendered text阅读全文

posted @ 2012-04-24 11:51 Safe3 阅读(30) 评论(0) 编辑

2011年11月30日

Safe3 WEB安全网关 v3.9.1

Safe3WAF是国内第一款免费的Linux轻量级的反向代理Web安全网关,采用类似nginx的占有内存少、高并发架构。作为网页服务器的前置,不但可以抵御各种黑客攻击,还可以高速内存cache服务器缓存相关请求来提高Web服务器的速度,并且具备网站集群负载均衡等功能。目前中国大陆使用Safe3WAF网站有游久网、联合早报等。
主要功能:
1.拦截GET sql注入
2.拦截POST sql注入
3.拦截Cookie sql注入
4.拦截XSS跨站攻击
5.拦截web溢出攻击
6.拦截网站信息泄露攻击
7.拦截非法http请求方法攻击
8.web负载均衡功能
9.拦截上传web后门功能
10.拦截webserver漏洞
黑客攻击日志记录: /usr/local/safe3waf/log/attack.log

 

v3.9.1更新说明
1.新增自定义拦截跳转url
2.新增拦截IIS脚本解析执行漏洞
3.新增svn、htaccess、mdb等信息泄露拦截

4.新增struts2框架XSLTResult本地文件代码执行漏洞拦截 

posted @ 2011-11-30 10:53 Safe3 阅读(285) 评论(0) 编辑

2011年10月19日

scrapy结合webkit抓取js生成的页面

1 scedule

scrapy 作为抓取框架,包括了spider,pipeline基础设施

2 webkit

scrapy 本身不能作为js engine,这就导致很多js生成的页面的数据会无法抓取到,因此,一些通用做法是webkit或者xmi_runner(firefox)。通过这个手段可以对于js生成的数据进行抓取。需要安装的包有

python-webkit (相关依赖自行解决)

Xvfb (用于非Xwindow环境)

3 开发downloader middleware

from scrapy.http import Request, FormRequest, HtmlResponse
 
import gtk
import webkit
import jswebkit
import settings
 
class WebkitDownloader( object ):
    def process_request( self, request, spider ):
        if spider.name in settings.WEBKIT_DOWNLOADER:
            if( type(request) is not FormRequest ):
                webview = webkit.WebView()
                webview.connect( 'load-finished', lambda v,f: gtk.main_quit() )
                webview.load_uri( request.url )
                gtk.main()
                js = jswebkit.JSContext( webview.get_main_frame().get_global_context() )
                renderedBody = str( js.EvaluateScript( 'document.body.innerHTML' ) )
                return HtmlResponse( request.url, body=renderedBody )

4 配置

在scrapy的settings.py中加入:

#which spider should use WEBKIT
WEBKIT_DOWNLOADER=['ccb']
 
DOWNLOADER_MIDDLEWARES = {
    'rate_crawler.dowloader.WebkitDownloader': 543,
}   
 
import os
os.environ["DISPLAY"] = ":0"

5 使用

启动 Xvfb (假设DISPLAY=:0)

要与settings.py中的DISPLAY对应(本例中是:0)。

scrapy crawl xxx

posted @ 2011-10-19 18:34 Safe3 阅读(608) 评论(0) 编辑

快速构建实时抓取集群

定义:
首先,我们定义一下定向抓取,定向抓取是一种特定的抓取需求,目标站点是已知的,站点的页面是已知的。本文的介绍里面,主要是侧重于如何快速构建一个实时的抓取系统,并不包含通用意义上的比如链接分析,站点发现等等特性。

在本文提到的实例系统里面,主要用到linux+mysql+redis+django+scrapy+webkit,其中scrapy+webkit作为抓取端,redis作为链接库存储,mysql作为网页信息存储,django作为爬虫管理界面,快速实现分布式抓取系统的原型。

名词解析:
1.  抓取环:抓取环指的是spider在存储中获取url,从互联网上下载网页,然后将网页存储到数据库里面,最后在从存储里面获取下一个URL的一个流程。
2.  Linkbase:链接库的存储模块,包含一般的链接信息;是抓取系统的核心,使用redis存储。
3.  XPATH:一门在 XML 文档中查找信息的语言,XPath 可用来在 XML 文档中对元素和属性进行遍历, 是 W3C XSLT 标准的主要元素。使用XPATH以及相关工具lib进行链接抽取和信息抽取。
4.  XPathOnClick:一个chrome的插件,支持点击页面元素,获取XPATH路径,用于编辑配置模板。
5.  Redis:一个开源的KV的内存数据库,具备很好的数据结构的特征和很高的存取性能。用于存储linkbase信息
6.  Django:爬虫管理工具,用于模板配置,系统监控反馈。Django在这里主要是用来管理一个数据库,使用Admin功能。
7.   Pagebase:页面库,主要是存储网页抓取的结果,以及页面抽取的结果,和dump交互,使用mysql实现。
8.    Scrapy:一个开源的机遇twisted框架的python的单机爬虫,该爬虫实际上包含大多数网页抓取的工具包,用于爬虫下载端以及抽取端。
9.     列表页:指的商品页面之外的所有页面
10.    详情页:比如商品B2C的抓取中,特指商品页面,比如:http://item.tmall.com/item.htm?id=10321272374

系统架构
一:存储 redis+mysql
链接库(linkbase)是抓取系统的核心,基于性能和效率的考虑,本文采用基于内存的redis和磁盘的mysql为主,对于linkbase主要是存储抓取必须的链接信息,比如url,anchor,等等;对于mysql,则是存放抓取的网页,便于后续的抽取和处理。
a)      PageBase:使用Mysql分库分表,存放网页,如下图:

b)     Linkbase     使用Redis集群,存储linkbase信息。
几个基本的数据结构:
1:抓取队列 (candidate list)
分为待抓取的url队列和更新的url队列;队列存放urlhash,使用redis的list数据结构,对于新提取的url,push到对应的列表里面,对于spider抓取模块,从list pop得到。对于一个站点而言,抓取队列有两种类型:列表页抓取队列和详情页抓取队列。
2:链接库 (linkbase)
链接库实际上是存储链接信息的DB;Key是urlhash,Value是linkinfo,包含url,purl,anchor,xpath。。。;在redis使用hash存储,直接存放在redis的里面。KV链接库,不区分页面类型。
3:已抓取集合(crawled_set)
已抓取集合指的是当前已经下载的页面的urlhash,存放已经抓取的网页,使用redis的set实现,set的key是urlhash,score是时间戳,已抓取集合主要是用来记录哪一些页面已经抓取和抓取的时间,用于后续的更新页面调度以及抓取信息的统计。同抓取队列一样,每一个站点有两种类型的已抓取集合,详情页和列表页

二:调度模块:
调度模块是抓取系统的关键,调度系统的好坏决定了抓取系统的效率;这块是主要是在redis linkbase之上的数据结构,主要有抓取队列、抓取集合、抓取优先级等等数据结构组成;对于一个抓取循环来说:获取URL,提交到抓取模块的待抓取队列,启动抓取,抓取完成之后对新链接进行抽取,最后进入等待抓取的队列里面。
调度系统的基本配置:
a)     频率(间隔多少秒)
b)     各个抓取列表的选取比例:get_detail,mod_detail,get_list,mod_list
链接抽取:抽取页面的链接,进行除重,对于新的链接,插入到待抓取列表里
内容抽取:按照模块的配置XPATH,抽取页面信息,并写入到pagebase中。
离线调度:按照更新的比例,从crawled_set里面,定期选取url进入Mod队列里面进行刷新。

三:抓取模块:
抓取模块是抓取的必要条件,抓取模块来说,重要的是应付互联网上各式的问题,以及如何实现对对方站点的ip平衡,当然,这块是和调度系统的紧密结合的,对于抓取模块而言,本文主要使用scrapy工具包里面的下载模块。
首先,抓取模块从linkbase获取对应站点的抓取url,进行页面下载,然后将页面信息写回到pipeline中,并完成链接抽取和页面抽取,同时调用调度模块,插入到linkbase和pagebase中。
下载端设计:
IP:每台机器需要配置多个物理公网IP,下载的时候,随机选择一个IP下载
抓取频度调整:读取配置文件,按照配置文件的抓取频率进行选取url

四:配置界面:
配置界面主要是对抓取系统的管理和配置,包括:站点feed、页面模块抽取、报表系统的反馈等等。

类似于通用的抓取架构,本文提到的抓取系统架构如下图:


一个完整的抓取数据流:
1:用户提供种子URL
2:种子URL进入linkbase中新URL队列中
3:调度模块选取url进入到抓取模块的待抓取队列中
4:抓取模块读取站点的配置文件,按照执行的频率进行抓取
5:抓取的结果返回到pipeline接口中,并完成连接的抽取
6:新发现的连接在linkbase里面进行dedup,并push到linkbase的新URL模块里面
7:调度模块选取url进入抓取模块的待抓取队列,goto 4
8:end

系统扩展
本文提到的抓取系统,核心是调度和存储模块;其中,抓取,存储,调度都是通过数据进行交互的,因此,模块之间可以任意平行扩展,对于系统规模来说,只需要平行扩展mysql和redis存储服务集群以及抓取集群即可。当然,简单的扩展会带来一些问题:比如垃圾列表页的泛滥,链接库的膨胀等等问题,这些问题后续在讨论吧。

posted @ 2011-10-19 18:31 Safe3 阅读(187) 评论(0) 编辑

2011年8月5日

Safe3 Web漏洞扫描系统 v9.6免费版

Safe3 Web漏洞扫描系统是安全伞网络推出的网站安全检测工具,传统的方法往往依靠渗透测试(黑箱、白箱测试),往往局限于测试人员的技术水准高低。
 

软件界面截图 

  目前,大多是采用一系列已知攻击手段进行手工检测,且工作量巨大,由于时间关系以及各类网站系统的复杂性程度不同,通常得不到真正有效的评估,国内能从事此类工作的技术人员往往较少,用户最终得到的评估报告往往仅是找到几个系统已知漏洞、某个注入点或者跨站脚本攻击漏洞等常规漏洞。由于评估人员的知识面局限性使得整体评估不够全面,且深度不足。网站的应用逐步增多,更新较快,每隔一段时间应做一次全面检测,若采用传统渗透测试方法,花费昂贵,且往往得不到真正意义上的风险报告。Safe3 Web Vul Scanner使用领先的智能化爬虫技术及SQL注入状态检测技术,使得相比国内外同类产品智能化程度更高,速度更快,结果更准确。

 

系统适用领域:

国内金融、证券、银行、电子政务、电子商务、教育、网游、综合行业门户、IDC等网站必备检测工具。

 

技术优势:

SQL注入网页抓取
网页抓取模块采用广度优先爬虫技术以及网站目录还原技术。广度优先的爬虫技术的不会产生爬虫陷入的问题,可自定义爬行深度和爬行线程,网站目录还原技术则去除了无关结果,提高抓取效率。并且去掉了参数重复的注入页面,使得效率和可观性有了很大提高。

 

SQL注入状态扫描技术
不同于传统的针对错误反馈判断是否存在注入漏洞的方式,而采用状态检测来判断。所谓状态检测,即:针对某一链接输入不同的参数,通过对网站反馈的结果使用向量比较算法进行比对判断,从而确定该链接是否为注入点,此方法不依赖于特定的数据库类型、设置以及CGI语言的种类,对于注入点检测全面,不会产生漏报现象。并且具备绕过WAF、IPS、IDS检测功能,扫描到隐藏的注入点。

 

超线程和内存回收技术

市面上web漏洞扫描系统通常不能完成腾讯、搜狐等类似门户网站的扫描,原因是第一扫描进度非常慢,第二 随着扫描占用系统内存非常高,最终因为系统内存不够而崩溃退出,Safe3 web漏洞扫描系统在这方面表现尤为出色,软件不仅采用线程池等技术保证了很低的CPU占用,还使用自动内存回收功能回收无用的内存,另外软件内部采用独特存储算法,可以在存储千万url地址时扫描速度依然不减,所以如果你的网站非常大,那么Safe3 web漏洞扫描系统是你的首选。

 

 

企业扫描报表截图 

 

 

软件运行需要Microsoft .NET Framework v2.0

新版功能:
v9.6
1.新增错误模式扫描功能 (适合有报错显示的网站)
2.增强企业报表显示 
3.增强Form智能识别提交功能

下载地址:  http://www.safe3.com.cn/safe3wvs.rar  (免费版支持GET型sql注入和XSS漏洞扫描)

 

posted @ 2011-08-05 09:44 Safe3 阅读(774) 评论(0) 编辑

2011年7月22日

Varnish+Xcache构建高性能WEB构架初探

本文主要讲述web优化方案和缓存工具的调研及使用。根据目前的测试结果来看,采用varnish+xcache作为 apache和 

php缓存这种架构具有高并发、高稳定性,易扩展等优点,服务器的动态请求处理能力是之前的7倍之多。通过分析发现,

目前对服务器的负载主要是在cpu使用方面,随着流量的增加瓶颈也将出现在cpu方面,而内存和IO方面都不是问题。

针对这样的情况,我们就要研究怎么去降低cpu的负载,消除或降低系统的瓶颈。

业务特点分析
U服务采用的是LAMP(Linux Apache mysql php)架构,而服务本身的逻辑比较简单,就是根据不同的url返回特定的页面内容,而这些页面内容基本是不会变的。整个过程是由php动态完成的,不需 要和其他服务器交互。在一个请求的响应过程中,系统cpu的消耗基本都在php处理上面。我们要做的就是尽量减少php的动态处理。

优化方案调研
性能优化通常的方法是采用缓存策略。根据U服务的业务特点,优化主要从两个方面进行,php缓存和前端缓存,原理图如下: 


Php缓存调研
每次HTTP请求PHP页面时,PHP代码都会被解析和翻译为操作码(PHP 引擎直接执行的原语指令--类似于汇编语言)再执行。在要求很低或可忽略的情况下,服务器看上去能立即执行这个复杂的解释过程。但是一旦处理的页面增加, 重复工作就会对服务器造成很大的负担。在某些情况下,“编译”PHP代码的时间会远远超过执行该代码所需的时间,并且会对服务器负载造成很大压力。Php缓存主要是缓存opcode,避免重复编译PHP代码。目前针对php的内存缓存策略主要有 memcache 、 eAccelerator 、 xcache 和 APC 。Memcache是一种基于网络的缓存策略,是 一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检 索的结果等。从memcache的特点来看,更适合用于分布式数据库和分布式计算领域。光从页面缓存和加速角度来说远不及eAccelerator、 xcache和APC。eAccelerator、 xcache 和 APC 差 不多,都是自由开放源码php加速器,优化和动态内容缓存,能够大大提高php脚本性能。它使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除。 其中xcache是一种比较新的加速器,是eAccelerator的替代产品,更加稳定和高效,目前shifen前端已在使用。

Http前端缓存调研
针对HTTP的内存缓存策略使用得比较多就是 squid 和 varnish 。Squid 是一种在Linux下使用得比较 多的优秀的代理服务器,针对web用户来说,它还是一个高性能的代理缓存服务器,它将数据缓存在内存中,同时也缓存DNS的查询结果,可以加快网络浏览的 速度,提高客户机的访问命中率。Squid是目前使用的最广的HTTP加速器之一,目前在百度使用得还很少。Varnish 是另一种高性能的开源 HTTP加速器。Varnish 的作者Poul-Henning Kamp是FreeBSD的内核开发者之一,他认为现在的计算机比起1975年已经复杂许多。在1975年时,储存媒介只有两种:内存与硬盘。但现在计算 机系统的内存除了主存外,还包括了CPU内的L1、L2,甚至有L3快取。硬盘上也有自己的快取装置,因此Squid Cache自行处理物件替换的架构不可能得知这些情况而做到最佳化,但操作系统可以得知这些情况,所以这部份的工作应该交给操作系统处理,这就是 Varnish cache设计架构。目前国内有些门户网站如新浪,腾讯正在使用。

缓存工具性能对比及选择
测试平台: HOST:tc-un-ct00.tc OS: Linux 2.6.9_5-4-0-2 #1 SMP CPU: Intel(R) Xeon(R) CPU 5150 @ 2.66GHz × 4 MEM: 8GB 测试数据 : jx-rcv00 20081028日18:00 – 19:00 间的数据 压力工具 : pfmtest
Php缓存工具对比测试
几个主流php缓存工具性能对比测试如下: 


前端缓存工具对比测试
apache,squid+apache,varnish+apache 性能对比如下: 


测试结论
Php缓存工具测试中,xcache在响应时间,cpu占用的方面均有最佳的表现;另一方面,从前端缓存测试结果来看,varnish更适合U服务的全动态服务。
Varnish及xcache的使用
Varnish的使用
varnish 工具的介绍及详细使用方法参见http://varnish.projects.linpro.no/
Xcache的使用
Xcache的介绍及详细使用方法参加http://xcache.lighttpd.net/

posted @ 2011-07-22 10:00 Safe3 阅读(461) 评论(0) 编辑

2011年7月17日

IIS监控请求脚本

摘要: {3a2a4e84-4c21-4981-ae10-3fda0d9b0f83} 0 5 IIS: WWW Server{06b94d9a-b15e-456e-a4ef-37c984a2cb4b} 0 5 IIS: Active Server Pages (ASP){dd5ef90a-6398-47a4-ad34-4dcecdef795f} 0 5 Universal Listener Trace{a1c2040e-8840-4c31-ba11-9871031a19ea} 0 5 IIS: WWW ISAPI Extension{AFF081FE-0247-4275-9C4E-021F3DC1DA阅读全文

posted @ 2011-07-17 08:55 Safe3 阅读(282) 评论(0) 编辑

2011年7月13日

酒店宾馆IP冲突解决办法

摘要: 客人在我所供职的酒店上网的时候,经常会弹出一个对话框,显示一些提示,如上网的注意事项和消费标准等信息;并且有自己的电影和歌曲服务器,DHCP-server也是其中的一台服务器,宾馆、酒店就是用这台机器,为客户分配IP地址提供上网功能,即客户把自己的计算机连上网线,网卡配置自动获取IP地址,就会从动态主机配置协议(DHCP)服务器分配到一个IP地址;采用DHCP server可以自动为用户设置网络IP地址、掩码、网关、DNS、Wins 等网络参数,简化了用户网络设置,提高了管理效率。 那么我们的问题也出现了:常见的,很多用户抱怨用这种方法上不了网,但不是所有客户都上不了网。经过调查发现,住宾馆、阅读全文

posted @ 2011-07-13 14:29 Safe3 阅读(619) 评论(0) 编辑

2011年6月23日

Safe3 Web应用防火墙14.1版评测

摘要: 四年前的今天,一款名为“Safe3Web应用防火墙”的网站安全防护软件华丽面世,从这时开始国内服务器安防领域开始进入到全新时代。昨天安全伞网络科技公司正式发布了Safe3Web应用防火墙14.1企业版,版本号也由之前的13.X升级为14.1周年预览版。 一般来说如此大幅度的版本升级常常都意味着重大功能的加入,那么这次Safe3Web应用防火墙又会给我们带来哪些惊喜?下面就让我们一同来看一看。软件名称:Safe3Web应用防火墙软件版本:14.1周年版预览版软件大小:4.9M软件授权:试用版适用平台:Win2000Win2003Win2008(32、64位)下载地址:Safe3Web应用防火墙.阅读全文

posted @ 2011-06-23 14:31 Safe3 阅读(823) 评论(0) 编辑

2011年6月3日

SQL Injection

    该文被密码保护。

posted @ 2011-06-03 21:12 Safe3 阅读(1) 评论(0) 编辑