课程:《密码与安全新技术专题》程序员
班级: 201892
姓名: 郭开世
学号:20189221
上课教师:谢四江
上课日期:2019年2月26日
必修/选修: 选修web
学科背景:
随着信息技术的不断发展(通讯→计算机→网络→网络化社会),网络安全技术一直在不断进步(斯巴达加密榜→密码技术、通讯保密、内容篡改)。算法
典型攻击方式:sql
威胁方-防御方的非对称性shell
常见的Web漏洞:数据库
张健毅老师讲课节奏很好,声音颇有磁性。以前本科时学习过一些web和数据库相关的课程,当时的课程主要是功能上的实现,对于安全方面确实没有进行很好的设计与考虑。既然已经进行安全、密码方面的研究生学习,在从此的课程设计、项目实现等具体工做是要时刻保持安全的思惟。这学期我还选修了《网络攻防实践》,相信这次课程对于这门课也有很大的启发。编程
因论文库的限制,我找的论文都是IEEE中的,具体信息见参考文献。安全
SQL注入攻击对数据库驱动的Web应用程序构成严重的安全威胁。这种攻击使攻击者能够轻松访问应用程序的底层数据库以及这些数据库包含的潜在敏感信息。黑客经过专门设计的输入,能够访问数据库的内容,不然没法这样作。这一般经过更改Web应用程序中使用的SQL语句来完成。服务器
攻击者的意图是绕过身份验证并从Web应用程序数据库中提取信息。在这种类型的攻击中,黑客将代码注入一个或多个条件语句,以便这些语句的执行结果老是评估为真[6]。若是攻击成功,代码将显示全部返回的记录或执行某些操做,前提是至少返回一条记录。通常返回true的经常使用语句是1 = 1.这意味着经过在原始查询语句中附加“或1 = 1”,查询结果将始终为true。cookie
攻击目的是识别可注射参数,执行数据库指纹打印以及提取机密数据。此类攻击基于编写生成错误消息的查询语句。拒绝查询时,将从数据库返回一条错误消息,其中包含有助于攻击者的有用调试信息。
绕过身份验证过程并经过将union运算符插入到普通查询中来提取数据。
此攻击插入恶意SQL查询,这将致使在与数据库的一个链接中执行一系列SQL语句。若是运算符能够处理许多SQL查询; 在每一个查询结束后添加。
例:SELECT * FROM users WHERE user name = admin AND password = 3333; DROP TABLE用户; - ;.
此攻击经过使用IF语句完成,有三种类型:基于时间,基于错误和基于内容。
例:http://www.vulnerable.com/goods。a?id = 34; if +(system user = sa)+ WAITFOR + DELA Y +0:0:10。
攻击者试图用恶意输入执行数据库中存在的存储过程
静态分析是在到达执行阶段以前在系统源代码中找到弱点和恶意代码,主要是语言特定的。
静态分析缺点包括:
动态方法技术可用于分析由Web应用程序使用用户输入数据生成的动态或运行时SQL查询。
动态技术下在运行时生成的SQL注入检测方法,在将查询发布到数据库服务器以前执行查询,查询的异常性质致使它甚至不会传递到数据库执行。
动态分析的主要缺点是在运行时生成模型所涉及的开销。
组合方法利用静态分析和动态分析方法的优点来检测和防止SQL注入。在静态阶段,识别热点,以后建立模型,指示能够在该热点处进行的全部有效查询。在运行时,将检查运行时查询以查看它们是否与其模型匹配。若是不是,则不会将查询发送到数据库以供执行。
Padma N Joshi ; N. Ravishankar ; M. B. Raju ; N.CH. Ravi等提议开发一个用于身份验证访问的安全系统并应用SQL注入攻击来检查其安全性。换句话说,设想的系统不从文本框中得到任何狂野的字符。
算法设计以下:
Rajashree A. Katole ; Swati S. Sherekar ; Vilas M. Thakare等介绍了保护Web应用程序免受SQL注入攻击的SQL注入检测机制。他们提出了使Web应用程序可以在丢失任何数据以前检测代码注入(SQL注入)攻击的新方法。该经过使用组合的静态和动态分析来检测注射攻击。参数值在动态即运行时从SQL查询中删除,并与固定或静态分析的SQL查询进行比较,即提早进行比较。
陈平提出的方法基于ISR(指令集随机化)检测二阶SQL注入攻击。该方法随机化Web应用程序中包含的可信SQL关键字,以动态构建新的SQL指令集,并在DBMS以前添加代理服务器,代理检测收到的SQL指令是否包含标准SQL关键字以查找攻击行为。
该方法采用在Web服务器和数据库服务器之间构建代理服务器。代理服务器有两个主要功能,一个是检测SQL注入攻击,另外一个是将无害指令去标准化为标准SQL语句并将其转发给DBMS。
Qais Temeiza ; Mohammad Temeiza ; Jamil Itmazi等提出了一种基于密码学和语法感知来防止SQL注入的新方法。
使用两种方法来防止SQL注入攻击:
使用了快速安全的SHA-l algorthim。这种方法是经过删除查询属性值,而后散列查询并将哈希值与先前生成和散列的普通查询哈希值进行比较。实如今使用散列机制的嵌入式查询中防止SQL注入。若是两个哈希值相同则执行SQL查询,若是不是SQL查询将被拒绝。
使用语法感知(在易受攻击的存储过程当中阻止SQL注入)来经过搜索特定的SQL注入签名,shell命令以及可用于执行攻击的任何Unicode字符来阻止存储过程当中的SQL注入攻击。
Ahmad Ghafarian等在An emulation of sql injection disclosure and deterrence中提出了一种新的混合方法来检测和防止SQLIA,是静态和动态方法的结合。该方法包括三个阶段,即数据库设计,实现和公共网关接口(CGI)。