亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    搭建基于SornaQube的自動化安全代碼檢測平臺

    一、背景和目的

      近年來,隨著新業(yè)務、新技術的快速發(fā)展,應用軟件安全缺陷層出不窮。雖然一般情況下,開發(fā)者基本都會有單元測試、每日構建、功能測試等環(huán)節(jié)來保證應用的可用性。但在安全缺陷方面,缺乏安全意識、技能和工具,最終導致了安全缺陷的出現(xiàn)。

      對于軟件開發(fā)安全意識和軟件開發(fā)安全技能方面本文中不再做詳述,軟件開發(fā)者可通過培訓和實踐提高自身意識和技能,本文目的主要是提供一種思路和方法,讓軟件開發(fā)者像測試軟件功能一樣,測試軟件安全缺陷,并且能夠融入到整個的軟件開發(fā)過程中。

    二、自動化安全代碼檢測平臺概述

    2.1. 什么是安全代碼審計工具?

      代碼安全審計工具是以靜態(tài)的方式在程序中查找可能存在的安全缺陷,如:緩沖區(qū)溢出、空指針引用、資源泄露和SQL注入等。安全代碼測試工具目前比較多,例如Fortify、FindBugs等,大家感興趣可以通過互聯(lián)網(wǎng)搜索到這些工具的一些描述,本文中也不再贅述。

    2.2. 軟件開發(fā)人員是否可以自行直接利用這些安全代碼審計工具完成測試?

    答案在理論上是可以的,但是在實踐中基本是很難落地。原因有如下幾點:

      1)工具眾多,很難選擇;

      2)工具誤報較高,如何提高準確率,軟件開發(fā)人員很難處理;

      3)單一工具如何與開發(fā)過程進行結合。

      4)安全代碼審計工作在企業(yè)里很有可能是安全專業(yè)人員的職責,這樣企業(yè)里會出現(xiàn)安全和開發(fā)隔離的情況。

    2.3. 什么是自動化安全代碼檢測平臺

    自動化安全代碼檢測平臺應該具有以下的幾個功能:

      1)能夠融入到軟件開發(fā)的過程中

      2)自動、高效、準確的進行檢測

      3)自動生成檢測報告,供項目管理者和開發(fā)人員查看

    三、搭建基于SonarQube的自動化安全代碼檢測平臺搭建實踐

    3.1. 檢測平臺概述

    這個平臺環(huán)境主要是基于Jenkins、SVN、Maven、SonarQube集成搭建的,下面分別大概介紹一下這幾個軟件:

    Jenkins(本次環(huán)境使用的是:sonarqube-6.7.6)是一個開源軟件項目,是基于Java開發(fā)的一種持續(xù)集成工具,用于監(jiān)控持續(xù)重復的工作,旨在提供一個開放易用的軟件平臺,使軟件的持續(xù)集成變成可能。先了解一下持續(xù)集成的概念:持續(xù)集成是一種軟件開發(fā)實踐,即團隊開發(fā)成員經(jīng)常集成它們的工作,通過每個成員每天至少集成一次,也就意味著每天可能會發(fā)生多次集成。每次集成都通過自動化的構建(包括編譯,發(fā)布,自動化測試)來驗證,從而盡早地發(fā)現(xiàn)集成錯誤。而 Jenkins就是基于Java開發(fā)的一種持續(xù)集成工具,用于監(jiān)控持續(xù)重復的工作。

    SVN(本次環(huán)境使用的是:Subversion1.9.7)是Subversion的簡稱,是一個開放源代碼的版本控制系統(tǒng),用于多個人共同開發(fā)同一個項目,共用資源的目的。

    Maven(本次環(huán)境使用的是:Maven 3.5.2)是通過一小段描述信息來管理項目的構建,報告和文檔的軟件項目管理工具。Maven主要做了兩件事:統(tǒng)一開發(fā)規(guī)范與工具、統(tǒng)一管理jar包。

    SonarQube(本次環(huán)境使用的是:6.7.6)是一個用于代碼質量管理的開源平臺,用于管理源代碼的質量,可以從七個維度檢測代碼質量通過插件形式,可以支持包括java,C#,C/C++等二十幾種編程語言的代碼質量管理與檢測。

    3.2. 自動化安全代碼檢測平臺搭建的核心思路。

    在基于SonarQube的平臺中,SVN是檢測的入口,SonarQube是檢測的主要工具和檢測報告生成出口,Jenkins作為一個持續(xù)集成工具將SVN和SonarQube關聯(lián)起來,監(jiān)控SVN的動作并適時觸發(fā)SonarQube對提交的代碼進行檢測。SonarQube類似一個路由器,以插件的形式集成了許多缺陷檢測工具,由于大多數(shù)檢測工具要求對輸入的項目進行編譯并提取相關的信息,因此,在本平臺上也安裝了Maven。在SonarQube開始檢測之前,Jenkins首先調用Maven對代碼進行編譯,然后將源代碼和編譯的輸出信息送給SonarQube進行檢測。

    將這些工具集成在一起的好處在于:

    1. 在代碼審計融入到軟件項目的持續(xù)開發(fā)過程中,自動生成高質量的檢測報告,無需人工干預,提高了軟件開發(fā)效率;

    2. SonarQube以插件的形式可以集成眾多的檢測工具,目前已知可以支持XX種工具。檢測工具的更新升級,不會影響到正常的軟件開發(fā)流程;

    3. 以阿里云鏡像的方式提供給大家使用,最大限度的保護了個人和公司的知識產(chǎn)權,方便工具的落地使用。

    目前,我們的團隊還在不斷地集成新的工具,以及開發(fā)更加高效和精確的檢測器,保證了平臺的持續(xù)更新升級,大家在簡單配置之后,能夠體檢到最好的代碼審計服務。

    3.3. 搭建方法和步驟

    3.3.1. 基礎環(huán)境準備

    硬件要求:

      CPU:1核心

      內存:4G(最少4G)

      操作系統(tǒng):linux(Ubuntu,CentOS均可)

    然后,系統(tǒng)啟動后,使用root安裝jdk1.8和MySQL,并修改環(huán)境配置文件,具體操作命令可參考如下: 

    1. 安裝JDK1.8.0_151,操作如下:

    a. 在官方網(wǎng)站上下載tar包,并上傳至目錄/usr/bin下,然后是用tar命令解壓;

    b. 添加環(huán)境變量配置,命令如下:

    vi /etc/profile

    在該文件的末尾加上以下內容后保存:

    #JDK  JAVA_HOME=/usr/bin/jdk1.8.0_151  JRE_HOME=/usr/bin/jdk1.8.0_151/jre  CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH  PATH=$JAVA_HOME/bin:$PATH

    c. 更新生效,并測試,命令如下:

    source  /etc/profile       jave -version

    如果返回了java的版本信息,即設置成功。

    2. 安裝MySQL 5.7.20,操作如下:

    yum update  yum install -y mysql-server mysql-client

    在安裝過程中,會要求設置root密碼,設置的密碼為:mysql

    安裝完成后,使用root用戶登錄MySQL數(shù)據(jù)庫,登陸成功即安裝成功,命令為:

    mysql -u root -p

    3.3.2. 新建用戶

    一般情況下,開發(fā)者不能直接使用root用戶來管理和使用系統(tǒng),最好通過一個專有用戶來進行操作,因此我們新建一個用戶qube,具體命令為:

    adduser qube

    本鏡像中,qube用戶的密碼設置為admin

    如果需要給qube用戶sudu權限,可修改/etc/sudoers文件,具體操作如下:

     vi /etc/sudoers

    修改文件內容如下:

    # User privilege specification  root    ALL=(ALL:ALL) ALL  qube    ALL=(ALL:ALL) ALL

    保存退出,qube用戶就擁有了sudo權限

    添加好此用戶后,我們就使用該用戶登錄并完成后續(xù)的操作。

    3.3.3. 安裝SVN服務端

    1. 安裝SVN服務端

     yum install subversion 

    2. 配置SVN服務端

    mkdir -p /opt/svn/repos  svnadmin create /opt/svn/repos 

    接下來,進行身份認證、權限等相關配置。配置文件都在/opt/svn/repos/目錄下,我們主要關心的是conf和db文件,conf文件夾下是存放主配置文件和用戶、權限位置,db文件夾是存放svn轉儲后的數(shù)據(jù)、在conf目錄下authz文件是設置用戶權限,passwd文件是存儲用戶及密碼,svnserve.conf是主配置文件,先配置主配置文件:

    vim svnserve.conf

    anon-access = none     /**匿名用戶不可讀不可寫**/  auth-access = write    /**授權用戶可寫**/  password-db = passwd   /**指定賬號密碼配置文件**/  authz-db = authz      /**指定權限配置文件**/  realm = /opt/svn/repos   /**指定版本庫所在目錄**/

    再配置passwd文件:

    vim passwd
    #格式是用戶名=密碼,采用明文密碼。這里設置了一個用戶admin,密碼為admin

    [users]     admin = admin

    最后配置authz文件

    vim authz
    #增加以下信息,admin擁有根目錄所有權限

    [/]  admin = rw

    3. 啟動服務

    輸入命令:

    svnserve -d -r /opt/svn/repos

    4. 驗證

    輸入命令:

    netstat -antp |grep svnserve 

    出現(xiàn)以下信息,即正常:

    tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 28967/svnserve 

    3.3.4. 安裝SonarqubeSonar-scanner

    1. 下載SonarQube和Sonar-scanner

    可從以下信息得到下載:

    點擊這個http://www.linuxidc.com/Linux/2013-12/93755.htm 鏈接關注 Linux公社官方微信,關注后回復數(shù)字157962。即可得到網(wǎng)友的分享密碼。

    如果取消關注Linux公社公眾號,即使再次關注,也將無法提供本服務!

    鏈接:https://pan.baidu.com/s/13Xq93FJ0RWFkLre2ILQdlA  密碼:獲得見上面的方法,地址失效請在下面留言。

    ——————————————分割線——————————————

    官網(wǎng)下載如下,要登陸的

    首先,在本機打開網(wǎng)站http://www.sonarqube.org/downloads/,

    找到下載地址:https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-6.7.1.zip

    和https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.0.3.778.zip

    然后下載:

    cd /opt  wget  https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-6.7.1.zip wget https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.0.3.778.zip

    2. 安裝SonarQube和Sonar-scanner

    安裝比較簡單,直接解壓即可:

    yum install unzip unzip sonarqube-6.7.1.zip unzip sonar-scanner-cli-3.0.3.778.zip

    由于解壓以后文件目錄名稱較長,可以使用mv命令來更改名稱,更改為:

    /opt/sonarqube//opt/sonar-scanner 

    3. 配置環(huán)境變量

    vim /etc/profile

    加入以下內容:

    #SonarQube  export SONAR_HOME=/opt/sonarqube/  export SONAR_RUNNER_HOME=/opt/sonar-scanner/  export PATH=$PATH:$SONAR_RUNNER_HOME/bin

    保存退出vi后,更新:

    .  /etc/profile

    4. 創(chuàng)建數(shù)據(jù)庫sonar

    登陸MySQL

    mysql -u root -p

    創(chuàng)建sonar數(shù)據(jù)庫和用戶(用戶名和密碼都為sonar)

    mysql> CREATE DATABASE sonar DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;  Query OK, 1 row affected (0.00 sec)  mysql> CREATE USER 'sonar' IDENTIFIED BY 'sonar';  Query OK, 0 rows affected (0.10 sec)

    mysql> GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';  Query OK, 0 rows affected, 1 warning (0.00 sec)  mysql> GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';  Query OK, 0 rows affected, 1 warning (0.00 sec)

    mysql> FLUSH PRIVILEGES;  Query OK, 0 rows affected (0.00 sec)  mysql>

    5. 配置sonarqube,修改配置文件sonar.properties

    cd /opt/sonarqube/conf
    vim sonar.properties

    修改內容:

    sonar.jdbc.username=sonar     數(shù)據(jù)庫用戶名  sonar.jdbc.password=sonar      數(shù)據(jù)庫密碼  sonar.jdbc.url=jdbc:mysql:// localhost:3306/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false  sonar.web.port=9000 

    6. 配置sonar-scanner,修改配置文件sonar-scanner.properties

    cd /opt/sonar-scanner/conf
    vim sonar-scanner.properties

    修改內容:

    sonar.host.url=http://localhost:9000  sonar.jdbc.username=sonar  sonar.jdbc.password=sonar  sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false

    7. 運行sonarqube

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號