kali-rolling安装使用sonarqube教程(docker方式)
一、说明
最近要找一款代码审计工具,Fortify SCA太贵,VisualCodeGrepper不太好用。在freebuf上看到可用sonarqube来建代码自动化扫描系统所以也来试一试。
直接安装没启起来,懒得分析填接用了docker装。
二、安装
sonarqube扫描是c/s模式,sonarqube自己是服务器装在kali上,sonarqube scanner是扫描客户端装在哪都可以,我这里装在windows机上。
2.1 服务端安装docker
docker安装可参考:https://www.cnblogs.com/lsdb/p/6844750.html
2.2 服务端sonarqube安装
docker search sonarqube
docker pull sonarqube
docker run -d -p : -p : sonarqube
docker ps
2.3 客户端安装sonarqube scanner
下载页面:https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
我这里是windows,自己下自己系统对应的版本。
下载后直接解压,然后将其bin目录加到path环境变量即可。
三、sonarqube界面
3.1 登录sonarqube
启动时我们做了映射,所以访问装在的主机的9000端口即可进入sonarqube。我这里是http://10.10.16.92:9000/。
点击左上角的Log in进行登录,默认用户名密码admin/admin
首次登录会进入项目创建向导,我们后续自己创建,这里直接跳过
要退出,点击右上角的A标志即会出现“Log Out”菜单
3.2 sonarqube菜单介绍
sonarqube进入后主要有以下6项菜单:
Projects----项目菜单,登录后默认进入项面。所谓项目和eclipse等上的项目是类似的意思,由于在上边我们直接跳过所以现在还没有任何项目。
Issues----扫描到的问题列表。
Rules----sonarqube对各语言使用的扫描规则说明。我们自己并不能对规则进行增删改,也可能只是社区版没有。
Quality Profiles----扫描规则集合,这里的profile和awvs等的profile是类似的意思。我们自己也不能对规则集进行增删改,也可能只是社区版没有。
Quality Gates----似乎是扫描策略说明,不是很了解不过也没什么配置项。
Administration----管理员菜单项。只有当登录用户为管理员时才会显示,包括基本配置、账号管理、项目管理、系统信息和插件管理等四大子项。
四、创建扫描项目
4.1 创建项目
Name感觉只是为了方便记用的,Key才是相当于项目id,扫描要用到的也是key。
4.2 创建token
在弹出的对话框中,随便输一个token名称然后点击Generate生成真正的token即可(所谓token名称应该是token的种子)
点击Copy复制和保存token后边扫描需要用。这里的token和restful的access token是类似的。
由于之后再也不会显示所以要注意保存。当然如果真忘了重新生成一个token即可。
4.3 进行扫描
这里以dvwa为例。客户端进到dvwa解压目录,执行以下命令进行扫描。
sonar-scanner.bat----前面sonarqube scanner的bin目录下的脚本,我们已加path环境变量。
-Dsonar.projectKey----指定上边4.1设定的项目key。改成自己的。
-Dsonar.sources----要扫描的文件夹。改成自己的。
-Dsonar.host.url----sonarqube的url。改成自己的。
-Dsonar.login----指定的是上边4.2生成的token。改成自己的。
sonar-scanner.bat -Dsonar.projectKey=phpkey -Dsonar.sources=. -Dsonar.host.url=http://10.10.6.92:9000 -Dsonar.login=fd71c19d46683bbd847fa450579b096f79b22593
扫描成功类似如下图:
对于java项目要求是使用maven和gradle的项目,但用maven+webgoat来试一直报错;然后直接使用类似上边的命令可以成功进行扫描。
但完全直接用会报ERROR: Please provide compiled classes of your project with sonar.java.binaries property错误,需要多加“-Dsonar.java.binaries=.”参数(什么用没搞清楚)
4.4 扫描结果查看
回到projects主菜单即可看到本次扫描的结果总览
切换到Issues菜单即可查看具体问题
可点击右边的各种过滤条件进行过滤
点击问题后的“...”,在下方会出现问题的具体说明(其实就是Rules的说明)
五、总结
开始的时候很奇怪,为什么所有文档----包括官方自己----一直把sonarqube叫做“代码质量管理工具”,而不叫代码审计工具。使用下来看主要是以下三个原因
首先,sonarqube的规则很多是针对编码风格的(比如某个字符串如果出现多次就要求你定义一个变量而不是反复写这个字符串)而不是针么漏洞的。
其次,sonarqube说是开源免费的但其实免费版本只有Java/C#/Python/PHP/Go/JavaScript的插件(插件的本质是规则)c/c++/oc/sql等的扫描插件收费版才支持。(造成的结果就是免费版注入类漏洞都报不了)
再次,即便是收费版本其代码审计能力感觉也只能是超过VCG,上下文分析还是达不到Fortify SCA的水平。
参考:
http://www.freebuf.com/articles/web/185148.html
https://docs.sonarqube.org/display/SONAR/Installing+the+Server
https://hub.docker.com/_/sonarqube/
kali-rolling安装使用sonarqube教程(docker方式)的更多相关文章
- kali Rolling 安装QQ和虚拟机
环境: kali Rolling 64位 WPS 官网linux版下载链接:http://community.wps.cn/download/ 使用dpkg命令安装,遇到依赖问题,用apt-get ...
- kali Rolling 安装QQ
------------------------------------------------------------------- 环境: kali Rolling 64位 所需软件包: Wi ...
- kali Rolling安装之后的一些常用配置总结
添加普通用户 useradd -m -G sudo,video,audio,cdrom -s /bin/bash OKing把某个用户添加到组中: sudo usermod -a 用户名 -G 组名 ...
- kali Rolling安装之后的一些常用配置总结(更新)
原文: https://ssooking.github.io/kali-rolling-an-zhuang-zhi-hou-de-yi-xie-chang-yong-pei-zhi-zong-jie/ ...
- SonarQube - 以Docker方式启动SonarQube
1 - SonarQube镜像 https://hub.docker.com/_/sonarqube/ Dockerfile - 7.9.1-community https://github.com/ ...
- kali rolling 安装typecho
#1 apt-get install nginx php7.0 php7.0-mysql php7.0-gd php7.0-cgi php7.0-cli php7.0-curl php7.0-fpm ...
- Kali linux 2016.2(Rolling) 的详细安装(图文教程)附安装VMare Tools 增强工具
写在前面的话 因读研期间,实验室团队需要,所以,接触上了Kali Linux,需去获得网络安全方面的数据,即数据和信息收集.以便为后续的数据处理和分析,准备! 用到hadoop和spark.机器学习等 ...
- Windows下VMware虚拟机使用Centos,Docker方式安装openstf的小坑
今天使用docker方式安装openstf碰到了一小坑,坑了我半天.特此记录! docker方式安装stf就不说了,网上教程一大把. 但是... 安装完之后.进入web控制界面,手机连接的好好的.但硕 ...
- 【工具安装】kali linux 安装教程
日期:2019-07-14 16:36:21 介绍:使用最新版的 VMware 来安装 kali linux 0x01.下载镜像 首先需要安装 VMware,安装步骤点这里. VMware 安装教程 ...
随机推荐
- 实验隐藏参数"_allow_resetlogs_corruption"的使用
实验环境:OEL 5.7 + Oracle 10.2.0.5 Tips:该参数仅在特殊恢复场景下使用,需要在专业Oracle工程师指导下进行操作. 1.隐藏参数说明 2.故障场景再现 3.非常规恢复 ...
- SV class
SV中的class通过new来创建实例,new函数可以传递多个参数: packet P1: P1 = new:创建一个P1的对象: P2 = P1:P2也指向同一个对象: P2 = new P1:P ...
- 浅谈react的初步试用
现在最热门的前端框架,毫无疑问是 React . 上周,基于 React 的 React Native 发布,结果一天之内,就获得了 5000 颗星,受瞩目程度可见一斑. React 起源于 Face ...
- 微信小程序上传与下载文件
需要准备的工作: ①.建立微信小程序工程,编写以下代码. ②.通过IDE建立springboot+web工程,编写接收文件以及提供下载文件的方式,并将上传的文件相关信息记录在mysql数据库中.具体请 ...
- matlab将rgb图转为灰度图的原理代码
MyYuanLaiPic = imread('e:/image/matlab/Cluo.jpg');%读取RGB格式的图像 MyFirstGrayPic = rgb2gray(MyYuanLaiPic ...
- openwrt修改hosts
不同于标准linux主机,openwrt使用dnsmasq来管理dns和dhcp. 修改dnsmasq的配置文件 vi /etc/config/dhcp 在config dnsmasq这组下面添加 l ...
- WindowsAPI每日一练(2) 使用应用程序句柄
WindowsAPI每日一练系列 :https://www.cnblogs.com/LexMoon/category/1246238.html WindowsAPI每日一练() WinMain Win ...
- Kerberos 常用命令
最近项目组用CDH搭建数据开发环境,有用到Kerberos安全组件.如下是相关命令,请参考: 进入kadmin kadmin.local / kadmin 创建数据库 kdb5_util create ...
- pageUtil分页工具
分页工具: https://www.cnblogs.com/ggq-insist-qiang/articles/10095603.html
- 网站基础html javascript jquery
第二章HTML HBuilder的使用 边改边看模式 chrome浏览器看. HTML的基本格式 超文本标记语言 HyperText Markup Language HyperText 超文本 Mar ...