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 安装教程 ...
随机推荐
- HTTPS学习笔记一----HTTPS的基础理论知识
首先推荐一本书,<HTTP权威指南>我就是看这本书入门的,对http协议有了更好的理解,学习https的理论知识我认为需要了解以下几点,需要一步步的深入学习: 1.HTTPS的基本概念? ...
- GCD(IV)
死锁:2个任务相互等待造成的. - (void) GCD { NSLog(@"begin"); dispatch_queue_t queue = dispatch_queue_cr ...
- bootloader研究最后一关(上)
2011-03-12 17:03:17 把map文件也仔细看了下.代码及map文件及段分配的关系,可以参考我总结的图.暂时堆栈我就不放在ZI上了.不是今天的重了点 今天重点研究2440的nandfla ...
- 根据MAC地址获取网络地址及ZDP_NwkAddrReq函数的用法
1..对于设备需要获取本设备的网络地址和MAC地址: NLME_GetShortAddr()——返回本设备的16位网络地址 NLME_GetExtAddr()—— 返回本设备的64位扩展地址 2.使 ...
- 20190408Linux权限管理week1_day5
权限概述 Linux系统一般将文件可存/取访问的身份分为3个类别:owner(拥有者).group(和所有者同组的用户).others(其他人,除了所有者,除了同组的用户以及除了超级管理员),且3种身 ...
- Qt::WindowFlags枚举类型解析
在使用Qt设计的时候经常会看到QWidget控件的构造函数出现下面这样一句话: QWidget(QWidget *parent=0,Qt::WindowFlags f=0) QWidget *pare ...
- Solr全文检索框架
概述: 什么是Solr? Solr是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务.Solr可以独立运行在Jetty.tomcat.webLogic.webSh ...
- ELK学习笔记之基于kakfa (confluent)搭建ELK
0x00 概述 测试搭建一个使用kafka作为消息队列的ELK环境,数据采集转换实现结构如下: F5 HSL–>logstash(流处理)–> kafka –>elasticsear ...
- 1、Storm集群安装
1.下载 本次选择1.2.2版本进行安装 解压安装到/opt/app目录下 2.配置环境变量 export STORM_HOME=/opt/app/apache-storm-1.2.2 export ...
- 配置firewalld端口转发
题:在系统 system1 设定端口转发,要求: 1.在172.24.8.0/24网络中的系统,访问system1的本地端口 5423 将被转发到 80 2.此设置必须永久有效 答: # 配置转发端口 ...