摘要:本文浅谈了盗取比特币的黑客技术,并在此基础上运用编程和一些工具对自有网站和主机进行了攻击实践,希望能为普通用户的数字货币资产安全防护提供一点参考。
黑客盗取比特币的活动屡见报道,这不光使得个人和机构资产出现巨额损失,而且其中的交易所被盗事件还会对市场行情产生影响,引发价格波动。在这样的形势下,资产安全防护已成为个人和机构考虑的首要问题。
因此,对于普通用户而言,了解一些黑客基础技术或许是有一定意义的。本文对网站渗透、木马、宏病毒和DDoS攻击进行了相关的浅显的介绍,为了更形象地说明问题,编写了较为简单的程序并利用一些工具对自有网站和主机进行了攻击实践。 一、网站渗透[1]- [3] (一)网站渗透——Web应用威胁分析
Web应用程序的体系构架一般被分为上、中、下三个层次,其中上层是与业 务相关的应用程序,中间层是通用组件及Web服务器相关的服务如数据库服务, 底层为操作系统。若其中任何一层出现安全问题或存在安全隐患都会导致整个 Web应用受到安全威胁。
由于现阶段发现和公布安全漏洞的实时性,时不时会有不法分子利用公开的漏洞对各个层次的服务进行攻击,如(1)对底层——利用操作系统漏洞对底层的操作系统进行远程攻击;(2)对中间层——利用运行在Web服务器上的脚本程序(asp、jsp、php等)的漏洞、Web服务器漏洞、数据库服务器漏洞对中间层进行攻击;(3)对上层——利用SQL注入漏洞、XSS漏洞等对网页程序进行攻击。
另一方面,即使Web应用部署了防护设备并采取了一定的防护手段,安全威胁一样可能随时产生,究其原因是因为防火墙或IDS无法实时进行阻断攻击,且受配置参数影响检测精度有限,仅起到亡羊补牢的作用,因此,Web应用程序自身存在漏洞、程序关键参数配置不当及缺少安全防护手段等安全隐患是导致Web应用程序安全事件频发的主要原因。
Web应用受到威胁还有一部分原因可归结为以下几点:一是有的网站建设人 员在建站过程中使用了自身存在安全漏洞的建站模块对网站进行架设;二是在自主开发Web应用程序时,编程人员安全意识不高,未对用户的输入数据进行处理,导致数据过滤不严;三是缺少专业技术人员对Web应用程序进行管理,导致Web应用程序自身参数配置不当;四是Web应用管理人员技术水平不高或者未能履行自身职责,未能对应用程序进行定期安全加固及安全检查;五是没有一个高效的Web应用安全防范策略给管理员进行参考。
现在很多的企业给自己的网络应用了入侵检测系统、网络防火墙、VPN、网络防病毒系统等,但往往不能实现有效的安全。虽然我们应用了诸多的安全设备,但是Web服务还是要对外开放的,也就是说80、443端口需要开放——80及443是HTTP及HTTPS服务的端口。由于防火墙一般不会对经过80端口的数据包进行拦截,所以从研究攻击路径的角度出发,黑客会选择从HTTP等协议端口进行入侵,扫描Web应用程序和服务器等漏洞,发动网络攻击。
(二)主要的几种网站漏洞
根据世界知名的Web安全与数据库安全研究组织OWASP提供的报告,目前对 Web业务系统,威胁最严重的两种攻击方式是SQL注入攻击(SQL Injection)和跨站脚本攻击(XSS)。
攻击者在SQL注入成功后,可能会拥有整个系统的最高权限,可以修改页面和数据,在网页中添加恶意代码,还可以通过查看数据库来获得所有关键数据信息,危害极大。跨站脚本攻击是向Web系统提交恶意脚本,当访问者浏览受到攻击的网页时,会导致恶意脚本被执行,从而泄露用户密码等敏感信息。如果访问者是管理员,则Web系统的管理员权限将有可能泄露,使得攻击者可以提升权限,甚至控制整个网站,其威胁程度更大,威胁波及面更广,同时攻击过程也更加复杂多变。
下面我们先对以上两种漏洞进行介绍,然后再介绍上传漏洞和旁注漏洞:
1、SQL注入漏洞
这种漏洞对网站最具威胁性,一旦攻击成功将能得到网站后台数据库中的所有数据,在这些数据中很有可能包括网站管理员的用户名以及密码,据此进而可能进一步控制整个网站服务器。
该漏洞的成因主要是由于网页编程人员在编写动态脚本页面的时候没有对用户输入的数据进行合法性的判断以及必要的过滤,把用户输入的数据原原本本的提交到后台数据库,并且后台数据库在查询时仅仅是使用预存的SQL查询语句与用户提交的语句进行拼接。那么当该页面需要进行数据库查询时,攻击者可以在提交给数据库的命令中添加自己的数据库查询语句,而这时由于页面没有对于用户的输入进行判断过滤,使得这些数据将会被提交到数据库中执行,并返回相应的数据给代码提交者。这样攻击者便能通过一次次的数据库查询得到整个数据库中的所有数据。通过这种方法不仅能得到攻击者想要得知的数据库数据,还能达到绕过登录验证、执行系统命令和上传监控软件的目的。