前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >安全测试笔记《二十四》——静态代码分析理论基础和主要技术

安全测试笔记《二十四》——静态代码分析理论基础和主要技术

作者头像
顾翔
发布2022-09-23 20:27:55
5650
发布2022-09-23 20:27:55
举报
文章被收录于专栏:啄木鸟软件测试

实验代码:

链接:https://pan.baidu.com/s/14XsCng6laiSiT_anuwr5dw?pwd=78dy

提取码:78dy

环境

Windows上安装tomcat、Apache和MySQL

Linux上安装tomcat、Apache和MySQL

操作

1、把tomcat中的sec拷贝到tomcat目录下,比如%TOMCAT-HOME%\webapps\

2、把Apache中的sec拷贝到Apache目录下,比如\htdocs\

3、tomcat中的sec目录下

include.jsp

代码语言:javascript
复制
<%
String
Windows_IP="127.0.0.1";
String
Linux_IP="192.168.0.150";
String
JSP_PORT="8080";
String
PHP_PORT="8100";
%>

String Windows_IP:Windows的IP地址

String Linux_IP:Linux的IP地址

String JSP_PORT:JSP的端口号

String PHP_PORT:PHP的端口号

3、Apache中的sec目录下include.php

代码语言:javascript
复制
<?php
$windows_ip="http://127.0.0.1";
$linux_ip="http://192.168.0.150";
$jsp_port="8080";$php_port="8100";
?>

$windows_ip:Windows的IP地址

$linux_ip=:Linux的IP地址

$jsp_port=:JSP的端口号

$php_port:PHP的端口号

打开浏览,输入http://192.168.0.106:8080/sec/

为本机IP地址

数据库配置

在建立MySQL下建立sec数据库,root/123456。将DB下的4个csv文件导入sec数据库中

渗透测试操作系统虚拟机文件vmx文件

1)Windows 2000 Professional

链接:https://pan.baidu.com/s/13OSz_7H1mIpMKJMq92nEqg?pwd=upsm

提取码:upsm

2)Windows Server 2003 Standard x64 Edition

链接:https://pan.baidu.com/s/1Ro-BoTmp-1kq0W_lB9Oiww?pwd=ngsb

提取码:ngsb

3)Windows 7 x64

链接:https://pan.baidu.com/s/1-vLtP58-GXmkau0OLNoGcg?pwd=zp3o

提取码:zp3o

4)Debian 6(Kali Linux)

链接:https://pan.baidu.com/s/1Uw6SXS8z_IxdkNpLr9y0zQ?pwd=s2i5

提取码:s2i5

安装了Apatche、Tomcat、MySQL、 vsftpd并且配套Web安全测试练习教案,

启动Tomcat

#/usr/local/apache-tomcat-8.5.81/bin//startup.sh

启动MySQL

#service mysql start

启动Apache

#/etc/init.d/apache2 start

打开浏览器输入127.0.0.1:8080/sec/

5)Metasploitable2-Linux (with vsftpd 2.3.4)

链接:https://pan.baidu.com/s/1a71zOXGi_9aLrXyEnvkHwQ?pwd=17g6

提取码:17g6

解压后直接为vmx文件,直接可用

静态代码分析理论基础和主要技术

静态代码分析原理分为两种:分析源代码编译后的中间文件(如Java的字节码);分析源文件。主要分析技术如下:

缺陷模式匹配

事先从代码分析经验中收集足够多的共性缺陷模式,将待分析代码与已有的共性缺陷模式进行匹配,从而完成软件安全分析。优点:简单方便;缺点:需要内置足够多的缺陷模式,容易产生误报。

类型推断/类型推断

类型推断技术是指通过对代码中运算对象类型进行推理,从而保证代码中每条语句都针对正确的类型执行。

模型检查

建立于有限状态自动机的概念基础上。将每条语句产生的影响抽象为有限状态自动机的一个状态,再通过分析有限状态机达到分析代码目的。

校验程序并发等时序特性。

数据流分析

从程序代码中收集程序语义信息,抽象成控制流图,可以通过控制流图,不必真实的运行程序,可以分析发现程序运行时的行为。

动态检测技术

原理

动态检测技术是一种不同于静态检测技术的动态的检测技术,它通过调试器运行被检测的软件的某项功能,检查运行结果与预期结果的差距,来确定被测软件此功能是否存在安全缺陷。

构成

这是一种针对软件功能的检测技术,它主要由构造测试用例,调试软件程序,分析软件程序三个部分构成。

缺陷注入(Defect injection)具有自动化程度高的显著优点,但是其测试具有盲目性,测试用例量大,时间效率低;内存映射(Memory mapping)通过对内存映象进行管理来发现与内存相关的漏洞,该检测技术需要修改操作系统内核策略,在Windows平台下实用意义不大;安全共享库(Safety shared libraries)是针对与系统调用相关的漏洞,检测准确率高,但是类型单一,对其他类型漏洞扩展性不佳;堆栈控制(Stack Control)是针对缓冲区溢出型漏洞的检测技术,对大部分漏洞具有很好的效果,但是对早期的程序兼容性不佳,且有较高的系统开销;沙箱(Sandbox)和程序释义(Interpretation Procedure)分别是过滤型和伴随型的安全策略检测技术,控制严格,检测准确率较好,但是制订安全策略复杂,缺少实用度高的算法。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-08-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 静态代码分析理论基础和主要技术
    • 缺陷模式匹配
      • 类型推断/类型推断
        • 模型检查
          • 数据流分析
          • 动态检测技术
            • 原理
              • 构成
              相关产品与服务
              云数据库 MySQL
              腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档