回覆列表
  • 1 # 找本好書

    一、Java線上診斷工具——Arthas

    Arthas是阿里巴巴 2018 年 9 月開源的一款 Java 線上診斷工具。Arthas 支援 JDK 6+,支援 Linux/Mac/Windows,採用命令列互動模式,同時提供豐富的 Tab 自動補全功能,進一步方便進行問題的定位和診斷。

    二、混沌實驗注入工具——ChaosBlade

    ChaosBlade 是一款遵循混沌工程實驗原理,提供豐富故障場景實現,幫助分散式系統提升容錯性和可恢復性的混沌工程工具,可實現底層故障的注入,提供了延遲、異常、返回特定值、修改引數值、重複呼叫和 try-catch 塊異常等異常場景。

    三、靜態開源站點搭建工具——Docsite

    Docsite 一款集官網、文件、部落格和社群為一體的靜態開源站點的解決方案,具有簡單易上手、上手不撒手的特質,同時支援 react 和靜態渲染、PC端和移動端、支援中英文國際化、SEO、markdown 文件、全域性站點搜尋、站點風格自定義、頁面自定義等功能。

    四、效能測試工具——PTS

    PTS 可以模擬大量使用者訪問業務的場景,任務隨時發起,免去搭建和維護成本,支援 JMeter 指令碼轉化為 PTS 壓測,同樣支援原生 JMeter 引擎進行壓測。

    五、架構視覺化工具——AHAS

    AHAS 為 K8s 等容器環境提供了架構視覺化的功能,同時,具有故障注入式高可用能力評測和一鍵流控降級等功能,可以快速低成本的提升應用可用性。

    六、資料庫連線池——Druid

    Druid是Java語言下的資料庫連線池,它能夠提供強大的監控和擴充套件功能,是程式設計師常用的工具之一。

    七、iOS 類工具——HandyJSON

    HandyJSON 是一個用於 Swift 語言中的JSON序列化/反序列化庫。與其他流行的 Swift JSON 庫相比,HandyJSON 的特點是,它支援純 Swift 類,使用也簡單。它反序列化時(把 JSON 轉換為 Model)不要求 Model從 NSObject 繼承(因為它不是基於 KVC 機制),也不要求你為 Model 定義一個Mapping 函式。只要你定義好 Model 類,宣告它服從 HandyJSON 協議,HandyJSON 就能自行以各個屬性的屬性名為 Key,從 JSON 串中解析值。

    八、Android平臺上的秒級編譯方案——Freeline

    Freeline 可以充分利用快取檔案,在幾秒鐘內迅速地對程式碼的改動進行編譯並部署到裝置上,有效地減少了日常開發中的大量重新編譯與安裝的耗時。Freeline 最快捷的使用方法就是直接安裝 Android Studio 外掛。

    九、IDE外掛——Cloud Toolkit

    Cloud Toolkit 是一款 IDE 外掛,可以幫助程式設計師更高效地開發、測試、診斷並部署應用。透過 Cloud Toolkit,開發者能夠方便地將本地應用一鍵部署到任意機器(本地或雲端),並內建 Arthas 診斷、高效執行終端命令和 SQL 等,提供 IntelliJ IDEA 版,Eclipse 版,PyCharm 版和 Maven 版。

    十、模擬庫——Mockito

    如果你想用乾淨和簡單的API編寫測試,Mockito應該就是程式設計師的首選。Mockito本質上是一個模擬庫,可以幫助你建立、驗證和清除模組——Java開發的幾個重要方面。

  • 2 # 修煉IT基本功

    如果是學習某個工程的原始碼,可以使用IDEA,github上clone最新的程式碼,然後在本地執行工程中的示例程式碼,然後一步步地去debug,去思考中間的原理,這樣看原始碼速度是最快的

  • 3 # 昱旻

    靜態原始碼安全檢測工具比較

    1. 概述

    隨著網路的飛速發展,各種網路應用不斷成熟,各種開發技術層出不窮,上網已經成為人們日常生活中的一個重要組成部分。在享受網際網路帶來的各種方便之處的同時,安全問題也變得越來越重要。駭客、病毒、木馬等不斷攻擊著各種網站,如何保證網站的安全成為一個非常熱門的話題。

    根據IT研究與顧問諮詢公司Gartner統計資料顯示,75%的駭客攻擊發生在應用層。而由NIST的統計顯示92%的漏洞屬於應用層而非網路層。因此,應用軟體的自身的安全問題是我們資訊保安領域最為關心的問題,也是我們面臨的一個新的領域,需要我們所有的在應用軟體開發和管理的各個層面的成員共同的努力來完成。越來越多的安全產品廠商也已經在考慮關注軟體開發的整個流程,將安全檢測與監測融入需求分析、概要設計、詳細設計、編碼、測試等各個階段以全面的保證應用安全。

    對於應用安全性的檢測目前大多數是透過測試的方式來實現。測試大體上分為黑盒測試和白盒測試兩種。黑盒測試一般使用的是滲透的方法,這種方法仍然帶有明顯的黑盒測試本身的不足,需要大量的測試用例來進行覆蓋,且測試完成後仍無法保證軟體是否仍然存在風險。現在白盒測試中原始碼掃描越來越成為一種流行的技術,使用原始碼掃描產品對軟體進行程式碼掃描,一方面可以找出潛在的風險,從內對軟體進行檢測,提高程式碼的安全性,另一方面也可以進一步提高程式碼的質量。黑盒的滲透測試和白盒的原始碼掃描內外結合,可以使得軟體的安全性得到很大程度的提高。

    原始碼分析技術由來已久,Colorado 大學的 Lloyd D. Fosdick 和 Leon J. Osterweil 1976 年的 9 月曾在 ACM Computing Surveys 上發表了著名的 Data Flow Analysis in Software Reliability,其中就提到了資料流分析、狀態機系統、邊界檢測、資料型別驗證、控制流分析等技術。隨著計算機語言的不斷演進,原始碼分析的技術 也在日趨完善,在不同的細分領域,出現了很多不錯的原始碼分析產品,如 Klocwork Insight、Rational Software Analyzer 和 Coverity、Parasoft 等公司的產品。而在靜態原始碼安全分析方面,Fortify 公司和 Ounce Labs 公司的靜態程式碼分析器都是非常不錯的產品。對於原始碼安全檢測領域目前的供應商有很多,這裡我們選擇其中的三款具有代表性的進行對比,分別是 Fortify公司的Fortify SCA,Security Innovation公司的Checkmarx Suite和Armorize公司的CodeSecure。

    2. 工具介紹

    2.1. Fortify SCA(Source Code Analysis)

    Fortify Software公司是一家總部位於美國矽谷,致力於提供應用軟體安全開發工具和管理方案的廠商。Fortify為應用軟體開發組織、安全審計人員和應用 安全管理人員提供工具並確立最佳的應用軟體安全實踐和策略,幫助他們在軟體開發生命週期中花最少的時間和成本去識別和修復軟體原始碼中的安全隱患。 Fortify SCA是Fortify360產品套裝中的一部分,它使用fortify公司特有的X-Tier Dataflow™ analysis技術去檢測軟體安全問題。

    優點:目前全球最大靜態原始碼檢測廠商、支援語言最多

    缺點:價格昂貴、使用不方便

    2.2. Checkmarx CxSuite

    Checkmarx 是以色列的一家高科技軟體公司。它的產品CheckmarxCxSuite專門設計為識別、跟蹤和修復軟體原始碼上的技術和邏輯方面的安全風險。首創了以查詢語言定位程式碼安全問題,其採用獨特的詞彙分析技術和CxQL專利查詢技術來掃描和分析原始碼中的安全漏洞和弱點。

    優點:利用CxQL 查詢語言自定義規則

    缺點:輸出報告不夠美觀、語言支援種類不全面

    2.3. Armorize CodeSecure

    阿碼科技成立於2006年,總部設立於美國加州聖克拉拉市,研發中心位於臺灣的南港軟體工業園區。阿碼科技提供全方位網路安全解決方案,捍衛企業免於受到駭客利用 Web 應用程式的漏洞所發動的攻擊。阿碼科技 CodeSecure可有效地協助企業與開發人員在軟體開發過程及專案上線後找出 Web 應用程式風險,並清楚交代風險的來龍去脈 (如何進入程式,如何造成問題) 。CodeSecure內建語法剖析功能無需依賴編譯環境,任何人員均可利用 Web操作與整合開發環境雙介面,找出存在資訊保安問題的原始碼,並提供修補建議進行調整。CodeSecure依託於自行開發的主機進行遠端原始碼檢 測,在保證速度穩定的同時方便使用者進行Web遠端操作。

    優點:Web結合硬體,速度快、獨具特色的深度分析

    缺點:支援語言種類較少、價格不菲

    3. 對比

    Fortify SCA簡寫為SCA,Checkmarx CxSuite簡寫為CxSuite,Armonize CodeSecure簡寫為CodeSecure。

    SCA CxSuite CodeSecure

    廠商 Fortify Software Checkmarx 阿碼科技

    支援語言 Java,JSP,ASP.NET,C#,

    VB.NET,C,C++,COBOL,

    ColdFusion,Transact-SQL,

    PL/SQL,JavaScript/Ajax,

    Classic,ASP,VBScript,VB6,PHP JAVA、ASP.NET(C#、VB.NET)、JavaScript、Jscript、C/C++、APEX ASP.NET(C#、VB.NET)、ASP、JAVA、PHP

    風險種類 400種 300種 參考CWE

    漏報率 最低 低 低

    誤報率 稍高 低 低

    是否支援SaaS 否 否 是

    軟硬體型別 純軟體 純軟體 Web結合硬體裝置

    執行平臺 無限制 WindowsNET Framework 2.0 無限制

    執行速度 取決於電腦配置速度不定 取決於電腦配置速度不定 由主機配置決定速度恆定

    報告格式 PDF PDF、XML、CSV、HTML Web、PDF

    報告內容 完整按照風險級別不同分為多個檔案 核心內容完整掃描資訊等缺失 非常完整但修改建議放於最後

    報價 100萬/軟體 70萬/軟體 100萬/軟硬體

    價效比 中 高 低

    從軟體支援的原始碼語言上來說,Fortify SCA(下文簡稱SCA)支援多達17種語言,Checkmarx CxSuite(下文簡稱CxSuite)其次,而Armonize CodeSecure(下文簡稱CodeSecure)在三款軟體中支援的最少,僅僅支援幾種最常見語言,不過這幾種基本涵蓋了絕大多數應用中使用的程式語言,基本上可以支援現在大多數應用的原始碼掃描。

    從風險的分類來說,各個廠商都有其自己獨特的分類方式和不同的種類數量,不過從實際應用中可以看出,總體上仍為OWASP公佈的幾類風險,如SQL注入、跨站指令碼等,已經可以滿足實際中開發人員和測試人員的需求,對於各個廠商不同的部分,一般來說主要的區別在於理解不同,看問題的角度不同,並無誰錯誰對之原則性問題。

    從執行平臺 的角度,CodeSecure這個產品目前看來已經將SaaS的理念很好的融合進來,整個軟體的操作介面為Web方式,使用者可以透過網頁進行操作,B/S 的方式可以將作業系統的影響降到最低,只要有一臺可以上網的電腦和瀏覽器,無論什麼作業系統都可以使用CodeSecure遠端進行原始碼掃描,CodeSecure依託的是一臺Armonize自行研製的主機,使用硬體裝置的好處在於可以適用於多種場合,不會因為測試人員或是開發人員的電腦配置影響掃描速度,掃描的速度完全取決於主機的效能。而SCA和CxSuite主要還是單機軟體,但目前也在不斷地向SaaS的方向進行過渡,並且提供了相當全面的貫徹整個軟體開發流程(SDLC)的解決方案與服務給使用者。其中CxSuite這個產品標明瞭使用該軟體的硬體配置,為Windows作業系統 和.NET框架,這個產品目前應該為利用.NET框架進行開發,所以執行環境有一定的侷限性。同時,SCA和CxSuite因為是單機軟體,一方面在使用 前需要安裝,另一方面其執行速度取決於執行軟體的電腦效能,對於使用該軟體的電腦配置有一定的要求。

    三種產品都使用了各自的技術對於威脅進行檢測,SCA使用的是已獲得專利的X-Tier™資料流分析器,這三種產品中只有CxSuite聲稱可以達到零誤報率,因為 其對於風險的理解是風險必須在外形上呈現出來才被考慮為實際的風險,這種理解方式可以說是別出心裁,從程式碼安全的角度來說,檢測的目的是為了發現問題並及時改正,同時要針對於最關鍵的問題進行改正,這也是這三款軟體都包含TOP X的統計的目的,從這一點上講,CxSuite的風險報告是非常謹慎的。SCA在以前的使用中發現有一定的誤報率,不過換個角度想,誤報相比漏報是可以容 忍的,規則越嚴格,誤報率就會相應的上升而漏報率就會相應的下降,原始碼檢測工具目前均為靜態的進行程式碼的掃描,即所有的檢測均是按照“規則”來進行,任 何一款產品都不可能達到真正的零誤報、零漏報。所以可以說SCA的規則檢查稍顯簡單,CxSuite和CodeSecure的檢查比較謹慎。

    而從漏報率上來看,謹慎的查詢勢必會導致漏報率的提升,這一點上SCA和CodeSecure只說明瞭低漏報率,而CxSuite內部包含了一種類似於C#稱為 CxQL的查詢語言,支援使用這種語言進行查詢,方便使用者進行特定的查詢。另兩款軟體使用的都是規則的方式,其本質上應該是相類似的,這一點上規則似乎更 容易被使用者接收,但是CxQL的方式確實增強了使用者的操作性。

    從結果輸出 上來說,三款軟體都支援多種輸出方式,而作為報告PDF格式可以說是最書面的一種格式。在這一點上,三款軟體輸出格式略有不同。

    SCA報告構成如下:掃描概述、按風險的分類進行詳細描述,包括每個風險的發現位置,程式碼上下文,風險源和風險輸出,以及改進方法,各類風險描述之後是按照風險類別 的所有風險的統計和按照風險等級的統計圖表。SCA的每種型別的檔案生成一個PDF檔案,便於使用者對於風險嚴重程度的不同採取不同的策略。

    CxSuite 報告構成如下:風險按照不同分類方式的統計圖、風險的資料統計情況、風險最高的檔案TOP 10、按照類別進行風險詳述,包括風險的名稱、描述、常見危害、在軟體開發各階段的相應處理方式、詳細示例,列舉每一個風險的傳輸路徑和相應位置程式碼。

    CodeSecure 報告構成如下:目錄、重點精華,包括檢測資訊、弱點密度規範分佈趨勢、弱點最多的檔案TOP 5,弱點索引,弱點的詳細資訊,包括弱點的全程跟蹤,最後是弱點資訊及修改建議、所有的進入點。

    三款軟體的 報告中以SCA的最有特色,將不同級別的風險分檔案顯示對於程式設計師進行修改是極為方便的;CodeSecure的報告最為規範,整個文件包括目錄,結構完 整,唯一的不足是將風險的修改建議放在了最後,查閱有些不便;CxSuite的內容可以說是最概要的,只包含了風險的最關鍵內容,對於程式設計師來說應該是最 簡潔的。

    4. 總結

    這三款靜態原始碼掃描工具都有其各自特色,SCA支援的語言多達17種,基本上涵蓋了絕大多數的應用,具有相 當廣泛的適用性,但同時也使得其價格非常昂貴;CxSuite支援的語言包括常見Web應用的語言,適用範圍基本上包括了大部分的應用,其使用獨創的語言來自定義規則非常有特色,價格較之SCA有一定的優勢;CodeSecure支援的語言較少,不過基本上可以適用於當前大多數的B/S結構應用,它是唯一 的軟硬體結合的產品,在免除使用者安裝步驟的同時將掃描運行於特定裝置之上,有助於提高執行速度,也因為包括硬體的緣故,其價格不菲。

    SCA極廣的適用性使其適用於橫跨多種語言的開發和測試人員,CxSuite的較高性價比使其適於基於Web 的開發人員和測試人員,CodeSecure穩定的速度和B/S的獨特結構使得Web開發或測試的多人同時使用變得極為方便。

    隨著應用的安全性越來越受到人們的重視,靜態原始碼掃描和動態掃描將逐漸融合,未來將會有更多更優秀的原始碼掃描工具誕生,讓我們拭目以待吧。

    附錄A 其他靜態原始碼檢測產品

    公司 產品 支援語言

    art of defence Hypersource JAVA

    Coverity Prevent JAVA .NET C/C++

    開源 Flawfinder C/C++

    Grammatech CodeSonar C/C++

    HP DevInspect JAVA

    KlocWork Insight JAVA .NET C/C++,C#

    Ounce Labs Ounce 6 JAVA .NET

    Parasoft JTEST等 JAVA .NET C/C++

    SofCheck Inspector for JAVA JAVA

    University of Maryland FindBugs JAVA

    Veracode SecurityReview JAVA .NET

    FindBug PMD/Lint4

  • 中秋節和大豐收的關聯?
  • 二十八九歲的你生活應該是什麼樣子?