CN108351941A - 分析装置、分析方法、以及分析程序 - Google Patents
分析装置、分析方法、以及分析程序 Download PDFInfo
- Publication number
- CN108351941A CN108351941A CN201680062746.2A CN201680062746A CN108351941A CN 108351941 A CN108351941 A CN 108351941A CN 201680062746 A CN201680062746 A CN 201680062746A CN 108351941 A CN108351941 A CN 108351941A
- Authority
- CN
- China
- Prior art keywords
- script
- forwarding
- url
- website
- recorded
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/986—Document structures and storage, e.g. HTML extensions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
浏览器模拟器管理器(23)使浏览器模拟器(25)对网站进行访问。然后,浏览器模拟器(25)在对因访问网站而产生的浏览器上的内容部分解释和脚本执行进行追踪,并检测出转发时,在转发信息中记录其转发方法、转发源URL以及转发目标URL,并且,在检测出脚本执行的情况下,在转发信息中记录其执行方法和执行源脚本。并且,图形构筑部(274)根据转发信息构筑有向图。之后,图形分析部(275)通过针对有向图而进行追溯来确定作为该转发的原因的内容部分和脚本的位置。
Description
技术领域
本发明涉及分析装置、分析方法、以及分析程序。
背景技术
路过式下载攻击(Drive-by Download攻击)是指主要使用HTML(Hyper TextMarkup Language:超文本标记语言)标签和JavaScript(注册商标)等的代码,将访问了作为攻击的起点的网站(以下称作入口URL)的客户端转发给多个网站(以下称作重定向URL),之后再转发给执行攻击代码的恶意网站(以下称作攻击URL)。当客户端访问攻击URL时,会被执行针对浏览器或浏览器的插件(以下称作插件)的脆弱性而恶意使用的攻击代码,从而客户端会从特定的网站(以下称作恶意软件散布URL。)下载并安装计算机病毒等恶意程序(恶意软件)。
向特定的URL进行转发的方法有多种,例如向用HTML标签所指定的URL进行转发的方法、向使用JavaScript等代码所指定的URL进行转发的方法、和使用HTTP(Hyper TextTransfer Protocol:超文本传输协议)的300状态码进行转发的方法等。另外,还可以是,利用JavaScript等代码动态地生成HTML标签,并插入到浏览器所读入的HTML中,由此,能够向由插入的HTML标签所指定的URL进行转发(以下称作转发代码。)。在路过式下载攻击中,对各种转发代码进行组合,将访问过入口URL的客户端转发给恶意软件散布URL。
用于入口URL中的网站多数是,垃圾邮件或SNS(Social Network Service:社交网络服务)的消息服务中所分组含的URL的网站或由攻击者进行了非法篡改后的一般网站。其中,通过网站篡改使一般网站成为入口URL并参与到路过式下载攻击的事例的影响力较大,成为导致大多数恶意软件感染损害的主要原因。这样的网站篡改是无法根除的,因此需要通过尽快地检测到被进行了篡改这一情况,确定被篡改的网站的内容部分(例如通过篡改而插入的转发代码)并进行修正,从而防止路过式下载攻击导致的感染扩大。
作为对路过式下载攻击进行检测的方法而已知有,对因从恶意软件散布URL下载恶意软件而产生的文件系统的变化进行检测的方法(参照非专利文献1),或者用浏览器的模拟器(以下,称作浏览器模拟器。)执行JavaScript,并通过对执行结果进行分析来对恶意的JavaScript进行检测的方法(参照非专利文献2)等。
此外,还已知有:通过确定从入口URL到恶意软件散布URL的链接结构,并且从恶意软件散布URL反向追踪到链接结构,从而有效率地搜索存在于该恶意网站的附近的恶意网站的方法(参照非专利文献3)、或者如下URL特征码生成方法等:使用通过巡视多个网站而收集到的链接结构,确定在各链接结构中共用的URL,由此,高效率地检测和屏蔽向被设置了路过式下载攻击的攻击URL和恶意软件散布URL这样的恶意URL进行的访问(参照非专利文献4)。
然而,上述的方法都是对恶意URL进行检测的方法,无法在所检测出的恶意URL的网站中确定参与到攻击中的内容部分或脚本。即,在入口URL是被篡改后的网站的情况下,无法确定网站的内容部分中的哪个位置是被篡改的位置。
作为对网站篡改进行检测的方法,已知有将篡改之前的内容部分(原始内容部分)与篡改之后的内容部分进行比较的方法。例如,将HTML作为原始内容部分来进行比较检测的方法(参照非专利文献5)以及将JavaScript的众所周知的程序库或构架作为原始内容部分来进行比较检测的方法(参照非专利文献6)等。
此外,还存在Trip Wire这样的工具,它对被预先管理的网络服务器中所保存的文件进行监视,当检测出文件的内容变更或删除这样的操作时,向网络服务器管理者进行邮件通知(参照非专利文献7)。
现有技术文献
非专利文献
非专利文献1:L.Lu,V.Yegneswaran,P.PORras,AND W.Lee,“BLADE:An Attack-Agnostic Approach fOR Preventing Drive-By Malware Infections”,in Proceedingsof the ACM Conference on Computer AND Communications Security(CCS),2010.,[平成27年7月24日检索],因特网<URL:http://www.csl.sri.com/users/vinod/papers/blade.pdf>
非专利文献2:M.Cova,C.Kruegel,AND G.Vigna,“Detection AND Analysis ofDrive-by-Download Attacks AND Malicious JavaScript Code”,in Proceedings ofthe WORld Wide Web Conference(WWW),2010.,[平成27年7月24日检索],因特网<URL:http://www.cs.ucsb.edu/~vigna/publications/2010_cova_kruegel_vigna_Wepawet.pdf>
非专利文献3:J.W.Stokes,R.ANDersen,C.Seifert,AND K.Chellapilla,“WebCop:Locating NeighbORhoods of Malware on the Web”,in Proceedings of 3rdUSENIX conference on Large-scale exploits AND emergent threats(LEET),2010.,[平成27年7月24日检索],因特网<URL:https://www.usenix.ORg/legacy/event/leet10/tech/full_papers/Stokes.pdf>
非专利文献4:J.Zhang,C.Seifert,J.W.Stokes,AND W.Lee,“ARROW:GeneratingSignatures to Detect Drive-by Downloads”,in Proceedings of the WORld Wide WebConference(WWW),2011.,[平成27年7月24日检索],因特网<URL:http://research.microsoft.com:8082/pubs/150143/zhangArrow.pdf>
非专利文献5:K.BORgolte,C.Kruegel,AND G.Vigna,“Delta:AutomaticIdentification of Unknown Web-based Infection Campaigns”,in Proceedings ofthe ACM Conference on Computer AND Communications Security(CCS),2013.,[平成27年7月24日检索],因特网<https://www.cs.ucsb.edu/~chris/research/doc/ccs13_delta.pdf>
非专利文献6:Z.Li,S.Alrwais,X.Wang,AND E.Alowaisheq,“Hunting the RedFox Online:UnderstANDing AND Detection of Mass Redirect-Script Injections”,inProceedings of the IEEE Symposium on Security AND Privacy(S&P),2014.,[平成27年7月24日检索],因特网<http://ieeexplORe.ieee.ORg/stamp/stamp.jsp?arnumber=6956553>
非专利文献7:TripWire Inc.,“TripWire”,[平成27年7月24日检索],因特网<http://www.tripwire.ORg/>
发明内容
发明要解决的课题
但是,上述的网站篡改检测方法需要篡改之前的内容部分,并且只对应于本身被管理的网络服务器上的网站,因此存在限制。因此,在路过式下载攻击中,存在难以对作为转发的原因的内容部分的位置和脚本的位置、以及与转发相关的URL进行确定的情况。因此,本发明的课题在于,解决上述的问题,在路过式下载攻击中,对作为转发的原因的内容部分的位置和脚本的位置、以及与转发相关联的URL进行确定。
用于解决课题的方法
为了解决上述的课题,本发明是一种对网站的内容部分和脚本进行分析的分析装置,其特征在于,具有:访问部,其使用浏览器对所述网站进行访问;脚本分析部,其在因执行所述网站的脚本而向其他网站进行转发时,在转发信息中记录所述网站的URL作为转发源URL,记录所述其他网站的URL作为转发目标URL,记录在所述转发中所使用的所述脚本的函数名或属性名作为向所述转发目标URL转发的转发方法,记录所述脚本的识别信息作为执行源脚本,并且该脚本分析部在所述网站的脚本生成新的脚本时,在转发信息中记录所述新的脚本的生成源脚本的识别信息作为所述网站的执行源脚本,记录所述新的脚本的识别信息作为生成的脚本,并且记录在所述生成中所使用的所述生成源脚本的函数名或属性名作为脚本执行方法;以及图形构筑部,其以记录在所述转发信息中的转发源URL和转发目标URL作为节点,并且,以所述转发源URL的执行源脚本和所生成的脚本作为在所述转发源URL的节点内所包含的节点,以记录在所述转发信息中的转发方法和脚本的执行方法作为边,来构筑有向图,该有向图示出了所述浏览器所访问的一系列的网站的URL、向所述URL转发的转发方法、在转发中所使用的脚本、以及所述脚本的执行方法。
发明效果
根据本发明,能够对在路过式下载攻击中作为转发的原因的内容部分的位置和脚本的位置、以及与转发相关的URL进行确定。
附图说明
图1是示出本实施方式的系统结构例的图。
图2是示出浏览器模拟器管理器的结构例的图。
图3A是示出HTTP请求头的例子的图。
图3B是示出HTTP响应头的例子的图。
图4是示出参照URL的HTML标签的例子的图。
图5A是示出在JavaScript的转发中使用的函数和属性的例子的图。
图5B是示出对HTML标签和属性进行操作的JavaScript的函数和属性的例子的图。
图6是示出内部参照的JavaScript的转发的例子的图。
图7是示出外部参照的JavaScript的转发的例子的图。
图8是示出转发的有向图的构筑例的图。
图9是示出按照内含脚本执行的有向图的方式放大后的转发的有向图的例子的图。
图10A是示出通过已有方法构筑的转发的有向图的例子的图。
图10B是示出通过本实施方式的图形构筑部而构筑的转发的有向图的例子的图。
图11A是示出在分析信息数据库中存储的访问日志的例子的图。
图11B是示出在分析信息数据库中存储的转发信息的例子的图。
图12是示出系统处理顺序的例子的流程图。
图13是示出网站行为分析的例子的流程图。
图14是示出脚本的动态分析的例子的流程图。
图15是示出执行分析程序的计算机的图。
具体实施方式
以下,参照附图,对用于实施本发明的方式(实施方式)进行说明。另外,本发明不限于本实施方式。
首先,使用图1对本实施方式的系统结构例进行说明。如图1所示,系统例如具有网络1和网络2。网络1和网络2通过分组转发装置3被连接。
网络1具有分析对象网站12。网络1可以是如因特网这样的广域网,也可以是如企业网络这样的中小规模的网络,还可以是云环境或宿主环境下的网络。
分析对象网站12是浏览器模拟器管理器(分析装置)23的分析对象网站。该分析对象网站12例如是在公开的恶意网站的黑名单上所披露的网站或者是可以通过搜索引擎收集到的网站等。
另外,网络2具有浏览器模拟器管理器23、分析信息数据库24、以及图形存储部28。网络2可以是如局域网络这样的小规模的网络,也可以是如企业网络这样的中小规模的网络,还可以是云环境或宿主环境下的网络。
浏览器模拟器管理器23对1个以上的浏览器模拟器25进行管理,并且使该浏览器模拟器25访问规定的网站(分析对象网站12)。并且,浏览器模拟器管理器23将浏览器模拟器25访问过的网站的URL以及通过对从该网站取得的内容部分(contents)脚本进行分析而获得的信息存储到分析信息数据库24。
浏览器模拟器25是模拟浏览器的动作的装置。该浏览器模拟器25例如可以应用由蜜网网络工程提供的浏览器模拟器,或者作为开放源码而开发出来的HtmlUnit和PhantomJS,但并不限于此。该浏览器模拟器25的详情在后文叙述。另外,在图1中,浏览器模拟器25被描画成构筑在浏览器模拟器管理器23内部,但是,浏览器模拟器25当然也可以构筑在浏览器模拟器管理器23外部。
分析信息数据库24存储浏览器模拟器25访问过的网站的URL、以及因对从该网站取得的内容部分进行解释而产生的转发相关的信息等。该分析信息数据库24的信息的保存可以使用RDBMS(Relational DataBase Management System:关系型数据库管理系统),也可以以文本形式来进行保存。该分析信息数据库24的详情在后文叙述。
图形存储部28对表示由浏览器模拟器管理器23构筑的URL之间的转发的有向图(参照图9、图10A、图10B)进行存储。该有向图的详情在后文叙述。
另外,在本实施方式中,浏览器模拟器管理器23、浏览器模拟器25以及分析信息数据库24被配置在相同的网络中,但也可以是被分别配置在不同的网络中。另外,为了对各结构进行安全连接,可以应用已有的加密技术对通信信息进行加密,或者也可以利用VPN(Virtual Private Network:虚拟专用网络)来对配置有各功能的网络之间或者各功能之间进行连接。
接着,使用图2对浏览器模拟器管理器23和浏览器模拟器25详细地进行说明。浏览器模拟器管理器23具有浏览器模拟器25和控制部27。控制部27在浏览器模拟器管理器23所具有的主机系统26上使浏览器模拟器25进行动作。该主机系统26例如使用浏览器模拟器管理器23所具有的OS(Operating System:操作系统)。控制部27的详情在后文叙述。
(浏览器模拟器)
接着,对浏览器模拟器25进行说明。浏览器模拟器25具有客户端环境模拟部251、访问部252、HTTP头解析器部253、内容部分解析器部254、以及脚本解释器部255。HTTP头解析器部253具有HTTP头分析部256,内容部分解析器部254具有内容部分分析部257,脚本解释器部255具有脚本分析部258。该HTTP头分析部256、内容部分分析部257、脚本分析部258对浏览器模拟器25从分析对象网站12所取得的内容部分进行分析,并且在检测出向不同的网站进行转发的情况下,对转发源URL、转发目标URL、转发方法等进行记录。HTTP头分析部256、内容部分分析部257、脚本分析部258的详情在后文叙述。
客户端环境模拟部251设定由浏览器模拟器25所模拟的客户端环境(例如OS、浏览器、插件等)的信息。
访问部252与网站(例如图1中的分析对象网站12)通过HTTP或HTTPS(HyperTextTransfer Protocol Secure:超文本传输安全协议)进行通信,在该HTTP通信时,取得HTTP头信息和HTTP实体信息(内容部分)。对于该访问部252,例如使用作为免费软件而被开发的cURL。
另外,访问部252将网站的访问结果作为日志进行记录。例如,访问部252将访问过的网站的URL、访问的时间、访问时的浏览器的环境信息作为日志进行记录。另外,在日志中还记录有,当因对该网站进行的访问而产生了向不同的网站的转发时,由HTTP头分析部256、内容部分分析部257、脚本分析部258所确定的转发目标URL、转发源URL、转发方法等。即,在日志中存在2种信息,1种是访问部252访问过的网站的URL、访问该URL的时间、访问该URL时的浏览器的环境信息等信息(访问日志),1种是在产生转发的情况下的转发目标URL、转发源URL、转发方法等信息(转发信息)。该日志通过后文所述的寄存处理部273被寄存在分析信息数据库24中。
HTTP头解析器部253对由访问部252所取得的HTTP头信息进行解释。使用HTTP头分析部256来分析对HTTP头信息进行解释后得出的结果。
HTTP头分析部256为了确定HTTP的转发代码,对由HTTP头解析器部253对HTTP头信息进行解释后的结果进行分析。具体地,HTTP头分析部256在HTTP响应头的HTTP状态代码的编号是300号段(对转发进行通知的HTTP状态代码)的情况下,记录HTTP响应头的定位字段的URL作为转发目标URL、记录针对该HTTP响应的HTTP请求头的请求URL作为转发源URL,记录HTTP状态代码的编号作为转发方法。
图3A示出了HTTP请求头的例子,图3B示出了针对图3A所示的HTTP请求头的HTTP响应头的例子。例如,根据图3B所示的HTTP响应头的内容可知,HTTP响应是“HTTP/1.1301Moved Permanently”的转发代码。另外,根据图3B所示的HTTP响应头的定位字段的信息可知,转发目标URL是“http://redirect.example/”。另外,根据图3A所示的HTTP请求头的Host字段的信息可知,转发源URL是“http://landing.example/”。因此,HTTP头分析部256记录“http://redirect.example/”以作为转发目标URL,记录“http://landing.example/”以作为转发源URL,记录“HTTP/1.1301Moved Permanently”以作为转发方法。
内容部分解析器部254对由访问部252所取得的内容部分进行解释。使用内容部分分析部257来分析对内容部分进行解释而得到的结果。另外,在该内容部分中包括脚本的情况下,使用脚本解释器部255对该脚本进行解释。例如,在内容部分是HTML或XML(Extensible Markup Language:可扩展标记语言)的情况下,内容部分解析器部254使用作为开放源码而开发出的Neko HTML或Beautiful Soup等HTML/XML解析器对内容部分进行解释。
内容部分分析部257为了从内容部分中确定参照了URL的HTML标签,分析由内容部分解析器部254对内容部分进行解释得到的结果。具体地,在内容部分利用HTML而被进行记述,并且,在内容部分中包括具有对URL进行了指定的属性的HTML标签的情况下,内容部分分析部257记录该指定的URL作为转发目标URL,记录该内容部分的URL作为转发源URL,记录HTML标签名作为转发方法。
图4中示出了参照URL的HTML标签的例子。在图4的第一行示出的HTML标签(iframe标签)中,转发源URL是包括该HTML标签的内容部分的URL、转发目标URL是“http://tag.example/”,转发方法是“iframe”。因此,内容部分分析部257记录“http://tag.example/”作为转发目标URL、和包括该iframe标签的内容部分的URL,记录“iframe”作为转发方法。另外,图4示出的HTML标签并不是覆盖式地对参照了所指定的URL的HTML标签进行列举,所列举的都是在浏览器所读入的时刻自动地参照所指定的URL的HTML标签。当然,也可以将参照了图4示出的HTML标签以外的URL的HTML标签添加到分析对象中,也可以不添加。
脚本解释器部255对由内容部分解析器部254所取得的脚本进行解释。例如,在脚本是通过JavaScript而被进行记述的情况下,脚本解释器部255使用作为开放源码而开发出的Spider Monkey或V8JavaScript Engine、Rhino等的JavaScript解释器,对脚本进行解释。
脚本分析部258为了确定向不同的URL转发的脚本,而分析由脚本解释器部255对脚本进行解释所得到的结果。例如,考虑由内容部分解析器部254取得的脚本是JavaScript,并且已执行了向该JavaScript所指定的URL转发的函数调用、或属性代入的情况下的脚本分析部258进行的分析。在该情况下,脚本分析部258记录通过该JavaScript而指定的URL作为转发目标URL,记录包括该JavaScript的内容部分的URL作为转发源URL,记录通过该JavaScript而调用的函数名或属性名作为转发方法。另外,脚本分析部258记录该JavaScript的哈希值等作为执行源脚本。图5A中示出了向所指定的URL转发的函数调用和属性代入的脚本的例子。在图5A的第一行所示的属性代入的脚本的情况下,转发源URL是包括该脚本的内容部分的URL,转发目标URL是“http://js.example/”,转发方法是“location.href”。另外,在以下的说明中,作为脚本的识别信息而使用了该脚本的哈希值,但当然也可以使用除此之外的识别信息。
另外,在脚本中还存在如下脚本:该脚本生成HTML标签,并且将生成的HTML标签插入到读取了该脚本的内容部分中,该脚本还会操作生成的HTML标签的属性。在图5B中示出了这样的脚本(JavaScript)的例子。
例如,在由JavaScript插入到内容部分中的HTML标签是图4所示的任意一个HTML标签的情况下,会产生向由生成的HTML标签所指定的URL的转发。例如,在图5B的第一行所示的JavaScript的情况下,转发源URL是包括该JavaScript的内容部分的URL,转发目标URL是script标签所指定的URL,转发方法是“script”。此时,为了区分单纯的HTML标签的转发与通过JavaScript而插入的HTML标签的转发,针对所插入的HTML标签设定标识符(例如,HTML标签所指定的URL),从而使其能够与转发方法“document.write”一同被唯一地确定。即,在图5B的第一行所示的通过JavaScript而插入script标签的情况下,脚本分析部258记录“document.write和script”作为转发方法,而不是记录“script”。由此,后文叙述的图形分析部275能够确定向转发目标URL的转发不是单纯的HTML标签的转发,而是通过脚本而插入的HTML标签的转发。
另外,脚本分析部258的分析对象当然也可以是除了图5A和图5B示出的JavaScript的函数和属性以外的函数和属性。
另外,对于由上述那样的脚本进行的HTML标签的生成和插入,如果是同一内容部分中的HTML和脚本,则能够准确地确定转发源URL和转发目标URL。例如,如图6所示,考虑访问部252所访问的URL是URL1,并且通过执行该URL1的内容部分中的JavaScript而生成iframe标签((1)),并且根据该iframe标签来参照URL2((2))的情况。在该情况下,转发源URL(URL1)和转发目标URL(URL2)根据现有技术也可以准确地进行确定。但是,在由脚本进行的HTML标签的生成和插入参照了外部的网站的内容部分的HTML和脚本的情况下,根据现有技术,有时会丢失转发源URL的信息。
使用图7来说明上述内容部分。在图7中,将访问部252首先访问的URL设为URL1,将URL1的script标签的参照目标URL设为URL2,将通过URL2的JavaScript的执行而生成的iframe标签的参照目标URL设为URL3。此时,当访问部252访问URL1时,根据该URL1的内容部分中的script标签参照URL2((1)),通过URL2的JavaScript的执行而生成iframe标签((2)),根据生成的iframe标签参照URL3((3))。
此时,通过内容部分分析部257对HTML标签进行的分析,能够确定转发源URL是URL1,转发目标URL是URL3。另外,即使在通常的浏览器的安装中,在记录有参照源URL的HTTP请求头的参照页(Referer)字段内,如果是向URL2的请求则设定URL1,如果是向URL3的请求也设定URL1。即,实际上,由于因URL2的JavaScript的执行而产生了向URL3的请求,因此需要转发源URL为URL2、转发目标URL为URL3这样的从URL2向URL3转发的转发信息。然而,根据现有技术中的由HTML标签进行的确定或由参考页信息进行的确定,该转发信息会丢失。
因此,脚本分析部258在执行外部网站的脚本时,会单独记录包括该脚本的网站的URL(例如,上述的URL2),并且将该URL设定为转发源URL。并且,当脚本分析部258捕捉到因该脚本的执行而产生了向其他的URL(例如URL3)的请求时,脚本分析部258记录如下转发信息:转发源URL为上述的外部的网站(例如URL2),转发目标URL为该脚本的执行的请求目标的URL(例如URL3)。即,脚本分析部258记录从上述的URL2向URL3的转发信息。
另外,在JavaScript等脚本中,还存在生成新的脚本的脚本。这样的脚本的动态生成被应用到代码的模糊化或隔开规定时间间隔的代码执行等中,该动态生成使用eval、setInterval、setTimeout等函数。
脚本分析部258为了确定像上述那样动态生成的脚本所进行的转发,监视在该脚本的执行中所调用的函数,并且对执行处理进行追踪。例如,当脚本分析部258捕捉到在该脚本的执行中使用了上述的eval、setInterval、setTimeout等函数这一情况时,会对作为新生成的脚本的生成源的脚本的哈希值、新生成的脚本的哈希值、作为生成源的脚本的执行方法(例如,被生成源脚本调用的函数名或属性名)进行记录。另外,在脚本分析部258对脚本的执行进行追踪时,当然也可以是对脚本本身进行记录,而不记录脚本的哈希值。
(控制部)
接着,对控制部27进行说明。控制部27具有URL列表生成部271、访问指示部272、寄存处理部273、图形构筑部274、以及图形分析部275。
URL列表生成部271生成巡视对象URL列表,该巡视对象URL列表是各浏览器模拟器25所巡视的网站(分析对象网站12)的URL列表。例如,URL列表生成部271根据公开的恶意网站的黑名单上所披露的网站的URL来生成巡视对象URL列表。
访问指示部272指示各浏览器模拟器25的访问部252向巡视对象URL列表(URL列表)所示出的URL进行访问。
寄存处理部273取得各浏览器模拟器25的日志,并且寄存于分析信息数据库24中。
图形构筑部274结合分析信息数据库24的转发信息,构筑了有向图,该有向图示出因向分析对象网站12进行的访问而产生的转发。并且,图形构筑部274将构筑出的有向图输出给图形存储部28。该有向图是以转发信息中示出的转发源URL和转发源URL为节点,以转发方法为边的有向图,例如是图8所示的有向图。
图8所示的有向图示出了根据“http://a.example/”的ifram标签,向“http://b.example/red1”转发,并且根据该“http://b.example/red1”的脚本的location.href这一函数,向“http://b.example/red2”转发,根据该“http://b.example/red2”的脚本的location.replace这一函数,向“http://b.example/exploit”转发。
另外,图形构筑部274向上述这样的有向图中以内含的方式添加反映了脚本执行处理的追踪结果的有向图。例如,图形构筑部274以图8所示的有向图为基础,向该有向图中以内包的方式添加了反映脚本执行处理的追踪结果的有向图,从而构筑出图9所示的有向图。即,图形构筑部274参照分析信息数据库24的转发信息,将“http://b.example/red1”中所包含的脚本“JavaScript A”的节点添加到节点“http://b.example/red1”中。另外,图形构筑部274将“http://b.example/red2”中所包含的脚本“JavaScript B”的节点添加到节点“http://b.example/red2”中,并且,还将根据脚本“JavaScript B”所生成的脚本“JavaScript C”添加到节点“http://b.example/red2”中。另外,图形构筑部274利用表示在脚本“JavaScript C”的执行中所使用的函数(eval)的边将脚本“JavaScript B”的节点与脚本“JavaScript C”进行连接。另外,图形构筑部274将“http://b.example/exploit”中所包含的脚本“JavaScript D”的节点添加到“http://b.example/exploit”的节点中。
这样,图形构筑部274根据分析信息数据库24的转发信息,针对基于HTML标签的转发,在转发源URL的内容部分中找出指定了转发目标URL的转发方法的HTML标签,并且将该HTML标签作为从转发源URL的节点到转发目标URL的节点的边。另外,图形构筑部274针对基于脚本的转发,在转发源URL的内容部分中找出指定了转发目标URL的转发代码的执行源脚本。并且,图形构筑部274将该执行源脚本所使用的函数作为从转发源URL的执行源脚本的节点到转发目标URL的节点的边。另外,在动态地生成了脚本的情况下,图形构筑部274从最终生成的脚本追溯到生成源脚本,并且利用边来连接根据生成源脚本所生成的脚本。
图形分析部275对图形存储部28中所存储的有向图进行分析,并且输出分析结果。例如,在图9所示的有向图的节点“http://b.example/exploit”中检测到包括攻击代码的JavaScript D的情况下,图形分析部275以该JavaScript D为出发点,针对有向图而进行反向追溯,从而能够确定在图9的节点“http://b.example/red2”中生成的“JavaScript C”及其生成源“JavaScript B”、节点“http://b.example/red1”所包含的“JavaScript A”、节点“http://a.example/”所包含的iframe标签参与了攻击。并且,将该结果作为分析结果输出。
即,图形分析部275能够确定“http://a.example/”是入口URL,“http://b.example/red1”和“http://b.example/red2”是重定向URL,“http://b.example/exploit”是攻击URL,并且,能够确定“http://a.example/”中所包括的iframe标签参与了攻击。由此,例如在a.example域名的网站是一般网站的情况下,系统能够向该网站的管理者通知上述所确定的iframe标签(即,被认为是进行了篡改的位置),并且能够推荐删除该标签等。
另外,在进行参照外部的网站的内容部分的转发时(参照图7),图形构筑部274按照以下方式构筑有向图。这里,为了进行比较,在图10A中示出了通过现有方法构筑的转发的有向图的例子。另外,在图10B中示出了通过本实施方式的图形构筑部274构筑的转发的有向图的例子。
这里,以如下情况为例进行说明,通过执行“http://c.example/c.js”中所包含的“JavaScript E”的document.write这一函数,将向“http://d.example/red3”转发的iframe标签插入到“http://c.example/test.html”中,在根据该iframe标签转发到“http://d.example/red3”之后,通过HTTP301从“http://d.example/red3”转发到“http://d.example/exploit”。
在这种情况下,根据图10A中所示出的现有方法,由于将实际上产生转发的iframe标签插入到节点“http://c.example/test.html”中,因此生成了,以节点“http://c.example/test.html”为起点,具有朝向节点“http://c.example/c.js”和节点“http://d.example/red3”的边的有向图。另一方面,根据本实施方式的图形构筑部274,由于在转发信息中记载有根据“JavaScript E”的document.write这一函数而插入iframe标签这样的情况,因此能够确定图10B中例示出的、向节点“http://d.example/red3”的转发是基于节点“http://c.example/c.js”中所包含的“JavaScript E的document.write+iframe标签(document.write/iframe)”而进行的转发。由此,图形构筑部274能够构筑以节点“http://c.example/test.html”为起点,具有经由节点“http://c.example/c.js”而朝向节点“http://d.example/red3”的边的有向图。
这样,即使是对于图形构筑部274参照了外部网站的内容部分的转发,也能够通过构筑表现该传送的有向图而获得如下效果。例如,在图10B所示的有向图中的节点“http://d.example/exploit”中检测到包含攻击代码的JavaScript F的情况下,图形分析部275通过针对图10B所示的有向图而进行逆向追溯,能够确定节点“http://d.example/red3”、节点“http://c.example/c.js”、该节点“http://c.example/c.js”中所包含的JavaScriptE、通过该JavaScript E而插入的iframe标签、节点“http://c.example/test.html”中所包含的script标签等参与了攻击。
并且,假设在c.example域名的网站是一般网站的情况下,系统能够将上述中被确定的script标签(即,被认为进行了篡改的位置)通知给该网站管理者,并且能够推荐删除该标签。另外,被认为进行了篡改的位置可以是在针对有向图进行反向追溯的过程中,产生了使域名发生变更的转发所处的位置(例如,JavaScript E的document.write),或者是基于特定的方法的转发(例如,基于document.write的转发)发生的位置。
(分析信息数据库)
接着,对分析信息数据库24进行说明。分析信息数据库24储存访问日志和转发信息以作为分析信息。如图11A所示,访问日志例如是使访问日志的识别信息即“ID”、浏览器模拟器25访问分析对象网站12的URL时所访问到的URL即“访问URL”、表示访问该URL的日期的“时间戳”、以及表示在访问该URL时浏览器模拟器25所模拟的客户端环境信息的“环境信息”等相对应的信息。另外,如图11B所示,转发信息例如是使“ID”、“时间戳”、“转发源URL”、“转发目标URL”、“方法”、“执行脚本”、“生成的脚本”相对应的信息,“ID”示出了将哪个ID的访问日志所示的访问URL作为入口URL的转发信息、“时间戳”表示转发或脚本被执行的日期、“转发源URL”表示转发源URL、“转发目标URL”表示转发目标URL、“方法”表示转发方法或执行方法、“执行脚本”记录执行了转发代码的脚本的识别信息(例如哈希值)、“生成的脚本”记录通过脚本执行所动态地生成的脚本的识别信息(例如哈希值)。另外,访问日志和转发信息当然也可以包括上述信息以外的信息。
这里,对使用了图11A所示的访问日志和图11B所示的转发信息的、图形构筑部274的图形构筑方法的例子进行说明。
例如,根据与图11B中的ID=1对应的信息可知,在向与图11A中的ID=1对应的“http://a.example/”的访问中,根据“http://a.example/”的iframe标签,从“http://a.example/”向“http://b.example/red1”进行转发。并且可知,接下来在“http://b.example/red1”中,执行脚本“0123456789abcdef”,并且根据location.href向“http://b.example/red2”进行转发。且可知接下来在“http://b.example/red2”中,脚本“abcdef9876543210”根据eval而生成脚本“012345678901234”。且可知,然后执行脚本“012345678901234”,并且根据location.replace向“http://b.example/exploit/”进行转发。
图形构筑部274通过以此方式来追溯分析信息数据库24的转发信息,从而构筑出从入口URL“http://a.example/”到“http://b.example/exploit/”的有向图(参照图9)。
另外,根据与图11B的ID=51对应的信息可知,在向与图11A的ID=51对应的“http://c.example/test.html”的访问中,根据“http://c.example/test.html”的script标签,从“http://c.example/test.html”向“http://c.example/c.js”进行转发。并且可知,接下来在“http://c.example/c.js”中执行脚本“fedcbaaaaaabcdef”,通过document.write,将向“http://d.example/red3”转发的iframe标签插入到“http://c.example/test.html”中。且可知,然后,当向作为转发目标的“http://d.example/red3”进行访问时,通过HTTP301的自动转发向“http://d.example/exploit”转发。
图形构筑部274通过以此方式追溯分析信息数据库24的转发信息,从而构筑出从入口URL“http://c.example/test.html”到“http://d.example/exploit”的有向图(参照图10B)。
根据以上所说明的系统,在因向网站进行访问而自动地向不同的网站被转发的情况下,对网站的内容部分解释处理或内容部分中所包含的脚本的执行处理进行追踪,记录转发信息,并对之进行存储。并且,在最终转发到了设置有路过式下载攻击的恶意网站的情况下,根据所存储的转发信息构筑有向图,并且通过针对该有向图进行逆向追溯,能够确定作为转发原因的内容部分的位置和脚本的位置以及参与转发的网站的URL。
(处理顺序)
接着,使用图12,对系统的处理顺序的例子进行说明。
首先,URL列表生成部271生成巡视对象URL列表(S1)。例如,URL列表生成部271根据公开的恶意网站的黑名单或通过搜索引擎能够收集到的网站等,生成巡视对象URL列表。
然后,访问指示部272向浏览器模拟器25输入巡视对象URL列表的URL(S2),浏览器模拟器25通过访问部252对在S2中所输入的URL进行访问(S3)。
访问部252通过HTTP头解析器部253、内容部分解析器部254、脚本解释器部255对所访问的网站的内容部分进行解释,并且基于解释的结果,分别通过HTTP头分析部256、内容部分分析部257、脚本分析部258进行分析(S4:网站动作分析)。另外,对于因向循环对象URL进行访问而发生被转发的情况的网站,也同样取得内容部分,并实施分析。该S4的处理的详情在后文叙述。
另外,在S2中,访问指示部272可以使1个浏览器模拟器25访问多个URL,也可以使多个浏览器模拟器25分别访问不同的URL。
在S4之后,访问部252输出访问日志(S5)。即,访问部252将向由访问指示部272所输入的URL进行访问的访问结果作为访问日志输出。接着,寄存处理部273对在S5中输出的访问日志和S4中的分析结果(转发信息)进行整形,并存储到分析信息数据库24(参照图11A和图11B)中(S6)。
在S6之后,如果在巡视对象URL列表中存在下一个巡视URL(S7中为是),则返回S2。另一方面,如果在巡视对象URL列表中不存在下一个巡视URL(S7中为否),则结束处理。
如上述那样,当访问日志和转发信息被存储到分析信息数据库24中时,图形构筑部274根据分析信息数据库24中所存储的访问日志和转发信息来构筑表示URL之间的转发的有向图,并存储到图形存储部28中。然后,图形分析部275参照图形存储部28的有向图来确定例如作为转发原因的内容部分位置和脚本位置、或参与到攻击中的URL。
接着,使用图13,对图12中的S4的网站动作分析的处理详细地进行说明。
首先,访问部252根据在访问循环对象URL时产生的HTTP通信,使HTTP头解析器部253解释HTTP头,并且使HTTP头分析部256对解释的结果进行分析。即,HTTP头分析部256对HTTP头信息进行分析,该HTTP头信息是从向巡视对象URL进行的HTTP通信中取得的(S8)。
这里,在HTTP头分析部256的分析的结果为、HTTP响应头的HTTP状态代码是300号段(表示重定向(转发)的编号)的情况下(S9中为是),记录如下转发信息:转发源URL是HTTP请求头的请求URL,转发目标URL是HTTP响应头的定位字段的URL,转发方法是该HTTP状态代码(S10:基于HTTP头信息的转发信息的记录),并且结束处理。另一方面,在HTTP响应头的状态代码不是300号段的情况下(S9中为否),向S11前进。
在S11中,访问部252根据在访问循环对象URL时产生的HTTP通信,使内容部分解析器部254解释HTTP实体,并且使内容部分分析部257对解释的结果进行分析。即,内容部分分析部257对通过上述的HTTP通信所取得的HTTP实体信息(内容部分)进行分析(S11)。这里,在内容部分分析部257的分析的结果为HTTP实体信息包含HTML的情况下(S12中为是),向S13前进。另一方面,在HTTP实体信息不包含HTML的情况下(S12中为否),向S17前进。
在S13中,在该HTML包含具有对URL进行了指定的属性的HTML标签的情况下(S13中为是),向S14前进。另一方面,在HTML中不包含具有对URL进行了指定的属性的HTML标签的情况下(S13中为否),向S17前进。
在S14中,在该HTML标签是通过脚本被插入的HTML标签的情况下(S14中为是),脚本分析部258记录如下转发信息:转发源URL是该内容部分(即该脚本所属的内容部分)的URL,转发目标URL是该HTML标签所指定的URL,转发方法是脚本的函数名或属性名(即,在用于该HTML的插入的函数的函数名或被代入的属性名)+该HTML标签名(S15:基于转发方法是脚本的函数名或属性名+HTML标签名的HTML标签的、转发信息的记录)。
另一方面,在该HTML标签不是通过脚本而被插入的HTML标签的情况下(S14中为否),脚本分析部258记录如下转发信息:转发源URL是该内容部分(即,该HTML标签所属的内容部分)的URL,转发目标URL是该HTML标签所指定的URL,转发方法是该HTML标签名(S16:基于转发方法是HTML标签名的HTML标签的转发信息的记录)。之后,向S17前进。
在S17中,在根据内容部分分析部257对HTTP实体信息进行分析的分析结果而判断出HTTP实体信息中包含脚本的情况下(S17中为是),使脚本解释器部255解释该脚本,并且在解释的过程中执行由脚本分析部258进行的脚本的动态分析(S18)。另一方面,在HTTP实体信息中不包含脚本的情况下(S17中为否),结束处理。S18中的脚本的动态分析的处理的详情在后文叙述。另外,在上述的网站行为分析处理结束时产生了向不同的URL进行的转发的情况下,浏览器模拟器25对该URL的网站进行与上述相同的分析。
接着,使用图14,对图13中的S18的脚本的动态分析的处理详细地进行说明。
首先,脚本分析部258执行从HTTP实体信息(内容部分)取得的脚本的动态分析(S19),判定该脚本是否是外部的网站的文件中所包含的脚本。即,脚本分析部258判定该脚本是否是进行了外部参照的脚本(S20)。这里,在脚本分析部258判定为该脚本是进行了外部参照的脚本的情况下(S20中为是),单独对外部参照目标URL(即,该脚本所属的网站的URL)进行保存(S21),向S22前进。另一方面,在脚本分析部258判定为该脚本不是进行了外部参照的脚本的情况下(S20中为否),向S22前进。
在S22中,当脚本分析部258在该脚本的执行过程中检测出向指定的URL进行转发的函数调用或属性代入时(S22中为是),向S23前进。另一方面,当脚本分析部258没有检测出向指定的URL进行转发的函数调用和属性代入时(S22中为否),向S26前进。关于S26在后文叙述。
在S23中,在保存有外部参照目标URL的情况下(S23中为是),脚本分析部258记录如下转发信息:转发源URL是外部参照目标URL,转发目标URL是由进行了外部参照的脚本所指定的URL,转发方法是进行了外部参照的脚本的函数名或属性名(即,通过该脚本所调用的函数的函数名或代入的属性名)。另外,脚本分析部258将执行源脚本(外部参照的脚本)记录在转发信息中(S24:基于外部参照的脚本的执行进行的转发信息的记录)。之后,向S26前进。
另一方面,在S23中,在没有保存外部参照目标URL的情况下(S23中为否),脚本分析部258记录如下转发信息:转发源URL是该内容部分(即,该脚本所属的内容部分)的URL,转发目标URL是由该脚本指定的URL,转发方法是该脚本的函数名或属性名(即,通过该脚本调用的函数的函数名或代入的属性名)。另外,脚本分析部258在转发信息中记录执行源脚本(该脚本)(S25:基于从内容部分取得的脚本的执行进行的转发信息的记录)。之后,向S26前进。
另外,此后,与上述相同,如果保存有外部参照目标URL,则脚本分析部258优先记录外部参照目标URL,如果没有保存外部参照目标URL,则脚本分析部258在转发信息中记录正在执行的脚本所属的内容部分的URL。
在S26中,当脚本分析部258在脚本的执行过程中检测出对该内容部分(即,该脚本所属的内容部分)的内容进行变更的函数调用或属性代入时(S26中为是),脚本分析部258针对变更对象内容部分设定标识符(S27)。即,脚本分析部258预先记录对哪一个内容部分施加了变更。之后,向S28前进。另一方面,当脚本分析部258没有检测出对该内容部分的内容进行变更的函数调用和属性代入时(S26中为否),向S28前进。
另外,上述的内容部分的内容的变更是指例如在内容部分中插入新的HTML标签。在插入了新的HTML标签的情况下,在被插入的HTML标签中也同样执行从S13到S18的处理。另外,对于S27中的、针对变更对象内容部分所设定的标识符,例如可以考虑使用作为该内容部分的内容被变更的原因的脚本的哈希值或URL的方法等,但当然也可以是除此之外的其他方法。
在S28中,当脚本分析部258在该脚本的执行过程中检测出了执行新生成的脚本的函数调用时(S28中为是),在转发信息中记录生成源脚本、生成的脚本、以及执行方法(生成源脚本的执行方法)(S29)。即,脚本分析部258在检测到因执行脚本而生成了新的脚本时,记录如下转发信息:转发源URL是生成源脚本所属的内容部分的URL,执行方法是生成源脚本的执行方法,生成的脚本是通过生成源脚本而生成的脚本,执行脚本是生成源脚本。
另一方面,在S28中,在脚本分析部258在脚本的执行过程中没有检测出执行新生成的脚本的函数调用的情况下(S28中为否),结束处理。
另外,在上述的S22、S26、S28中,脚本分析部258在脚本执行过程中所监视的函数调用或属性代入等各处理可以按照图14示出的顺序执行,当然也可以更换顺序。
根据以上所说明的系统,在因向网站进行访问,而自动地向不同的网站被转发的情况下,对网站的内容部分解释处理或内容部分中所包含的脚本的执行处理进行追踪,记录转发信息并对其进行存储。然后,在最终转发到设置有路过式下载攻击的恶意网站的情况下,根据存储的转发信息构筑有向图,并且通过针对该有向图进行逆向追溯,能够确定作为转发的原因的内容部分的位置和脚本的位置以及参与转发的网站的URL。
另外,对于上述的实施方式中所记载的浏览器模拟器管理器23,可以通过将执行上述处理的浏览器模拟器管理器23安装到所需的信息处理装置(计算机)中来完成安装。例如,能够通过使信息处理装置执行作为软件包或在线软件而提供的上述的浏览器模拟器管理器23,使信息处理装置作为浏览器模拟器管理器23发挥作用。这里所说的信息处理装置包括台式机或笔记本电脑。另外,除此之外,对于信息处理装置而言,智能电话、手机或PHS(Personal Handy phone System:个人手持电话系统)等的移动通信终端、甚至PDA(Personal Digital Assistants:个人数字助理)等的平板型终端等都包括在该范畴中。另外,浏览器模拟器管理器23也可以作为Web服务器或云进行安装。
(程序)
图15是示出执行分析程序的计算机的图。如图15所示,计算机1000例如具有存储器1010、CPU(Central Processing Unit:中央处理单元)1020、硬盘驱动器接口1030、磁盘驱动器接口1040、串行端口接口1050、视频适配器1060、以及网络接口1070。上述各部件通过总线1080而被连接。
存储器1010包括ROM(Read Only Memory:只读存储器)1011和RAM(Random AccessMemory:随机存取存储器)1012。ROM1011例如对BIOS(Basic Input Output System:基本输入输出系统)等引导程序进行存储。硬盘驱动器接口1030与硬盘驱动器1090相连接。磁盘驱动器接口1040与磁盘驱动器1100相连接。在磁盘驱动器1100中例如插入有磁盘或光盘等的可拆装的存储介质。串行端口接口1050例如连接有鼠标1110和键盘1120。视频适配器1060例如连接着显示器1130。
这里,如图15所示,硬盘驱动器1090例如对OS1091、应用程序1092、程序模块1093以及程序数据1094进行存储。上述实施方式中所说明的各信息、数据例如存储在硬盘驱动器1090和存储器1010中。
另外,将分析程序例如作为记述有由计算机1000执行的指令的程序模块1093存储到硬盘驱动器1090中。具体地,将记述有在上述实施方式中所说明的由浏览器模拟器管理器23执行的各处理的程序模块1093存储在硬盘驱动器1090中。
另外,将在分析程序的信息处理中所使用的数据作为程序数据例如存储到硬盘驱动器1090中。并且,CPU1020根据需要、将存储在硬盘驱动器1090中的程序模块1093和程序数据1094读出到RAM1012中,并以上述各顺序执行。
另外,分析程序的程序模块1093和程序数据1094并不限于存储到硬盘驱动器1090中,例如也可以存储到可拆装的存储介质中,并经由磁盘驱动器1100等由CPU1020读出。或者,分析程序的程序模块1093和程序数据1094还可以存储到经由LAN(Local AreaNetwork:局域网)或WAN(Wide Area Network:广域网)等的网络而连接的其他计算机中,并经由网络接口1070而由CPU1020读出。
标号说明
1、2:网络;3:分组转发装置;12:分析对象网站;23:浏览器模拟器管理器;24:分析信息数据库;25:浏览器模拟器;26:主机系统;27:控制部;28:图形存储部;251:客户端环境模拟部;252:访问部;253:HTTP头解析器部;254:内容部分解析器部;255:脚本解释器部;256:HTTP头分析部;257:内容部分分析部;258:脚本分析部;271:URL列表生成部;272:访问指示部;273:寄存处理部;274:图形构筑部;275:图形分析部。
Claims (7)
1.一种分析装置,其对网站的内容部分和脚本进行分析,其特征在于,具有:
访问部,其使用浏览器对所述网站进行访问;
脚本分析部,其在因执行所述网站的脚本而向其他网站进行转发时,在转发信息中记录所述网站的URL作为转发源URL,记录所述其他网站的URL作为转发目标URL,记录在所述转发中所使用的所述脚本的函数名或属性名作为向所述转发目标URL转发的转发方法,记录所述脚本的识别信息作为执行源脚本,并且该脚本分析部在所述网站的脚本生成新的脚本时,在转发信息中记录所述新的脚本的生成源脚本的识别信息作为所述网站的执行源脚本,记录所述新的脚本的识别信息作为生成的脚本,并且记录在所述生成中所使用的所述生成源脚本的函数名或属性名作为脚本执行方法;以及
图形构筑部,其以记录在所述转发信息中的转发源URL和转发目标URL作为节点,并且,以所述转发源URL的执行源脚本和所生成的脚本作为所述转发源URL的节点内所包含的节点,以记录在所述转发信息中的转发方法和脚本的执行方法作为边,来构筑有向图,该有向图示出了所述浏览器所访问的一系列的网站的URL、向所述URL转发的转发方法、在转发中所使用的脚本、以及所述脚本的执行方法。
2.根据权利要求1所述的分析装置,其特征在于,该分析装置还具有:
HTTP头分析部,其在访问所述网站时的HTTP响应是通知转发的HTTP响应的情况下,在转发信息中记录所述网站的URL作为转发源URL,记录来自所述网站的HTTP响应头中所包含的转发目标URL作为转发目标URL,记录所述HTTP响应头中所包含的HTTP状态代码编号作为向所述转发目标URL转发的转发方法;以及,
内容部分分析部,其在访问所述网站时的HTTP响应不是通知转发的HTTP响应的情况下,在因对所述网站的内容部分的HTML标签的解释而向其他网站进行转发时,在转发信息中记录所述网站的URL作为转发源URL,记录所述其他网站的URL作为转发目标URL,记录所述HTML标签作为向所述转发目标URL转发的转发方法。
3.根据权利要求1所述的分析装置,其特征在于,
在因执行所述脚本而在所述网站的内容部分中插入指示向其他网站进行转发的HTML标签时,所述脚本分析部在转发信息中记录所述网站的URL作为转发源URL,记录所述其他网站的URL作为转发目标URL,记录所述HTML标签和插入了所述HTML标签的脚本的函数名或属性名作为向所述转发目标URL转发的转发方法,记录所述脚本的识别信息作为执行源脚本。
4.根据权利要求1所述的分析装置,其特征在于,
在因对所述网站的内容部分的解释而执行从其他网站读入的脚本,并且向不同的网站转发时,所述脚本分析部在转发信息中记录所述其他网站的URL作为转发源URL,记录所述不同的网站的URL作为转发目标URL,记录所述转发中所使用的脚本的函数名或属性名作为转发方法,记录所述脚本的识别信息作为执行源脚本。
5.根据权利要求1所述的分析装置,其特征在于,
所述分析装置还具有分析部,该分析部通过以构成所述有向图的任意节点作为起点进行逆向追溯、直到作为所述有向图的根的节点为止,从而对从作为所述有向图的根的节点到作为所述起点的节点的转发过程、脚本的执行过程、以及作为产生向作为所述起点的节点进行转发的原因的内容部分的位置或脚本的位置进行分析。
6.一种分析方法,该分析方法是对网站的内容部分和脚本进行分析的分析方法,该分析方法的特征在于,包括以下步骤:
使用浏览器对所述网站进行访问;
在因执行所述网站的脚本而向其他网站进行转发时,在转发信息中记录所述网站的URL作为转发源URL,记录所述其他网站的URL作为转发目标URL,记录在所述转发中所使用的所述脚本的函数名或属性名作为向所述转发目标URL转发的转发方法,记录所述脚本的识别信息作为执行源脚本,并且,在所述网站的脚本生成新的脚本时,在转发信息中记录所述新的脚本的生成源脚本的识别信息作为所述网站的执行源脚本,记录所述新的脚本的识别信息作为生成的脚本,并且记录在所述生成中所使用的所述生成源脚本的函数名或属性名作为脚本执行方法;以及
以记录在所述转发信息中的转发源URL和转发目标URL作为节点,并且以所述转发源URL的执行源脚本和生成的脚本作为所述转发源URL的节点内所包含的节点,以记录在所述转发信息中的转发方法和脚本的执行方法作为边,来构筑有向图,该有向图示出了所述浏览器所访问的一系列的网站的URL、向所述URL转发的转发方法、在转发中所使用的脚本、以及所述脚本的执行方法。
7.一种分析程序,该分析程序是对网站的内容部分和脚本进行分析的分析程序,该分析程序的特征在于,使计算机执行以下步骤:
使用浏览器对所述网站进行访问;
在因执行所述网站的脚本而向其他网站进行转发时,在转发信息中记录所述网站的URL作为转发源URL,记录所述其他网站的URL作为转发目标URL,记录在所述转发中所使用的所述脚本的函数名或属性名作为向所述转发目标URL转发的转发方法,记录所述脚本的识别信息作为执行源脚本,并且,在所述网站的脚本生成新的脚本时,在转发信息中记录所述新的脚本的生成源脚本的识别信息作为所述网站的执行源脚本,记录所述新的脚本的识别信息作为生成的脚本,并且记录在所述生成中所使用的所述生成源脚本的函数名或属性名作为脚本执行方法;以及
以记录在所述转发信息中的转发源URL和转发目标URL作为节点,并且以所述转发源URL的执行源脚本和生成的脚本作为所述转发源URL的节点内所包含的节点,以记录在所述转发信息中的转发方法和脚本的执行方法作为边,来构筑有向图,该有向图示出了所述浏览器所访问的一系列的网站的URL、向所述URL转发的转发方法、在转发中所使用的脚本、以及所述脚本的执行方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015-215469 | 2015-11-02 | ||
JP2015215469 | 2015-11-02 | ||
PCT/JP2016/080708 WO2017077847A1 (ja) | 2015-11-02 | 2016-10-17 | 解析装置、解析方法、および、解析プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108351941A true CN108351941A (zh) | 2018-07-31 |
CN108351941B CN108351941B (zh) | 2021-10-26 |
Family
ID=58661839
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680062746.2A Active CN108351941B (zh) | 2015-11-02 | 2016-10-17 | 分析装置、分析方法、以及计算机可读存储介质 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10701087B2 (zh) |
EP (1) | EP3340097B1 (zh) |
JP (1) | JP6450022B2 (zh) |
CN (1) | CN108351941B (zh) |
WO (1) | WO2017077847A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111814006A (zh) * | 2020-07-27 | 2020-10-23 | 深圳壹账通智能科技有限公司 | 图网络结构的分析方法、装置和计算机设备 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107729223A (zh) * | 2017-08-31 | 2018-02-23 | 福建天晴数码有限公司 | 一种在移动终端上记录用户操作的方法及装置 |
JP7013297B2 (ja) * | 2018-03-22 | 2022-01-31 | 株式会社セキュアブレイン | 不正検知装置、不正検知ネットワークシステム、及び不正検知方法 |
US20210026969A1 (en) * | 2019-07-23 | 2021-01-28 | Chameleonx Ltd | Detection and prevention of malicious script attacks using behavioral analysis of run-time script execution events |
CN112702331A (zh) * | 2020-12-21 | 2021-04-23 | 赛尔网络有限公司 | 基于敏感词的恶意链接识别方法、装置、电子设备及介质 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040158800A1 (en) * | 2002-07-27 | 2004-08-12 | Samsung Electronics Co., Ltd. | Apparatus and method for reproducing content and information storage medium therefor |
CN1797400A (zh) * | 2004-12-27 | 2006-07-05 | 国际商业机器公司 | 用于向网站添加个人化的值的系统、Web服务器和方法 |
US20070150556A1 (en) * | 2005-12-22 | 2007-06-28 | Kentarou Fukuda | Method for analyzing state transition in web page |
CN101409937A (zh) * | 2008-01-25 | 2009-04-15 | 聂沫平 | 一种将脚本转换成目标系统支持的数据格式的方法及装置 |
CN101667230A (zh) * | 2008-09-02 | 2010-03-10 | 北京瑞星国际软件有限公司 | 一种监控脚本执行的方法和装置 |
US20100186088A1 (en) * | 2009-01-17 | 2010-07-22 | Jaal, Llc | Automated identification of phishing, phony and malicious web sites |
JP2011013974A (ja) * | 2009-07-02 | 2011-01-20 | Kddi Corp | ウェブサイト評価装置およびプログラム |
CN102460428A (zh) * | 2009-06-05 | 2012-05-16 | 惠普开发有限公司 | 用于表示与web服务的用户交互的系统和方法 |
CN103281387A (zh) * | 2013-05-31 | 2013-09-04 | 北京奇虎科技有限公司 | 处理网页中子资源的方法、服务器、客户端和系统 |
CN103959285A (zh) * | 2011-08-26 | 2014-07-30 | 亚马逊技术有限公司 | 远程浏览会话管理 |
US20150222657A1 (en) * | 2013-09-27 | 2015-08-06 | The University Of North Carolina At Charlotte | Moving target defense against cross-site scripting |
US20150261955A1 (en) * | 2014-03-17 | 2015-09-17 | Proofpoint, Inc. | Behavior profiling for malware detection |
CN105243159A (zh) * | 2015-10-28 | 2016-01-13 | 福建亿榕信息技术有限公司 | 一种基于可视化脚本编辑器的分布式网络爬虫系统 |
WO2016060110A1 (ja) * | 2014-10-14 | 2016-04-21 | 日本電信電話株式会社 | 解析装置、解析方法、および、解析プログラム |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6976210B1 (en) * | 1999-08-31 | 2005-12-13 | Lucent Technologies Inc. | Method and apparatus for web-site-independent personalization from multiple sites having user-determined extraction functionality |
US8176556B1 (en) * | 2008-10-31 | 2012-05-08 | Symantec Corporation | Methods and systems for tracing web-based attacks |
US8789178B2 (en) * | 2009-08-03 | 2014-07-22 | Barracuda Networks, Inc. | Method for detecting malicious javascript |
TWI439097B (zh) * | 2011-08-26 | 2014-05-21 | Univ Nat Taiwan Science Tech | 跨站腳本攻擊產生方法 |
US20150200962A1 (en) * | 2012-06-04 | 2015-07-16 | The Board Of Regents Of The University Of Texas System | Method and system for resilient and adaptive detection of malicious websites |
-
2016
- 2016-10-17 JP JP2017548698A patent/JP6450022B2/ja active Active
- 2016-10-17 WO PCT/JP2016/080708 patent/WO2017077847A1/ja active Application Filing
- 2016-10-17 US US15/768,624 patent/US10701087B2/en active Active
- 2016-10-17 EP EP16861914.6A patent/EP3340097B1/en active Active
- 2016-10-17 CN CN201680062746.2A patent/CN108351941B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040158800A1 (en) * | 2002-07-27 | 2004-08-12 | Samsung Electronics Co., Ltd. | Apparatus and method for reproducing content and information storage medium therefor |
CN1797400A (zh) * | 2004-12-27 | 2006-07-05 | 国际商业机器公司 | 用于向网站添加个人化的值的系统、Web服务器和方法 |
US20070150556A1 (en) * | 2005-12-22 | 2007-06-28 | Kentarou Fukuda | Method for analyzing state transition in web page |
CN101409937A (zh) * | 2008-01-25 | 2009-04-15 | 聂沫平 | 一种将脚本转换成目标系统支持的数据格式的方法及装置 |
CN101667230A (zh) * | 2008-09-02 | 2010-03-10 | 北京瑞星国际软件有限公司 | 一种监控脚本执行的方法和装置 |
US20100186088A1 (en) * | 2009-01-17 | 2010-07-22 | Jaal, Llc | Automated identification of phishing, phony and malicious web sites |
CN102460428A (zh) * | 2009-06-05 | 2012-05-16 | 惠普开发有限公司 | 用于表示与web服务的用户交互的系统和方法 |
JP2011013974A (ja) * | 2009-07-02 | 2011-01-20 | Kddi Corp | ウェブサイト評価装置およびプログラム |
CN103959285A (zh) * | 2011-08-26 | 2014-07-30 | 亚马逊技术有限公司 | 远程浏览会话管理 |
CN103281387A (zh) * | 2013-05-31 | 2013-09-04 | 北京奇虎科技有限公司 | 处理网页中子资源的方法、服务器、客户端和系统 |
US20150222657A1 (en) * | 2013-09-27 | 2015-08-06 | The University Of North Carolina At Charlotte | Moving target defense against cross-site scripting |
US20150261955A1 (en) * | 2014-03-17 | 2015-09-17 | Proofpoint, Inc. | Behavior profiling for malware detection |
WO2016060110A1 (ja) * | 2014-10-14 | 2016-04-21 | 日本電信電話株式会社 | 解析装置、解析方法、および、解析プログラム |
CN105243159A (zh) * | 2015-10-28 | 2016-01-13 | 福建亿榕信息技术有限公司 | 一种基于可视化脚本编辑器的分布式网络爬虫系统 |
Non-Patent Citations (3)
Title |
---|
G.RAMESH 等: "Performance Analysis of Most Common Encryption Algorithms on Different Web Browsers Web of Scienc", 《INTERNATIONAL JOURNAL OF INFORMATION TECHNOLOGY AND COMPUTER SCIENCE》 * |
张凡: "跨站脚本攻击特性分析和防御技术研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
陈江勇: "Web应用测试模型及其自动化测试研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111814006A (zh) * | 2020-07-27 | 2020-10-23 | 深圳壹账通智能科技有限公司 | 图网络结构的分析方法、装置和计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
EP3340097A1 (en) | 2018-06-27 |
JPWO2017077847A1 (ja) | 2018-03-08 |
JP6450022B2 (ja) | 2019-01-09 |
US10701087B2 (en) | 2020-06-30 |
EP3340097B1 (en) | 2019-08-07 |
WO2017077847A1 (ja) | 2017-05-11 |
EP3340097A4 (en) | 2019-04-10 |
US20180316696A1 (en) | 2018-11-01 |
CN108351941B (zh) | 2021-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9992217B2 (en) | Methods, systems, and computer readable media for detecting malicious network traffic | |
US9509714B2 (en) | Web page and web browser protection against malicious injections | |
US10567407B2 (en) | Method and system for detecting malicious web addresses | |
US9712560B2 (en) | Web page and web browser protection against malicious injections | |
US11941054B2 (en) | Iterative constraint solving in abstract graph matching for cyber incident reasoning | |
US8515918B2 (en) | Method, system and computer program product for comparing or measuring information content in at least one data stream | |
CN103279710B (zh) | Internet信息系统恶意代码的检测方法和系统 | |
CN108351941A (zh) | 分析装置、分析方法、以及分析程序 | |
US8176556B1 (en) | Methods and systems for tracing web-based attacks | |
WO2012166113A1 (en) | Automated security testing | |
JP6687761B2 (ja) | 結合装置、結合方法および結合プログラム | |
CN106022126B (zh) | 一种面向web木马检测的网页特征提取方法 | |
JP6114480B2 (ja) | 構築装置、構築方法、および、構築プログラム | |
US20210112082A1 (en) | Computer security system for ingesting and analyzing network traffic | |
JP6527111B2 (ja) | 解析装置、解析方法および解析プログラム | |
CN108763930A (zh) | 基于最小缓存模型的web页面流式解析方法 | |
JP6666475B2 (ja) | 解析装置、解析方法及び解析プログラム | |
Cabaj | Visualization as support for web honeypot data analysis | |
Pradhan | Browser Analysis and Exploitation | |
Misra et al. | Browser Analysis and Exploitation | |
Pan | Proactive Web Security and Privacy Systems without Breaking Compatibility | |
CN115964713A (zh) | 大型企业内部自开发信息系统代码的安全测评方法及系统 | |
De Santis et al. | Using HTML5 to prevent detection of drive‐by‐download web malware | |
Mendoza et al. | Tracking Malware using Internet Activity Data | |
Brewer | Detecting Web robots with passive behavioral analysis and forced behavior |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |