この四半世紀で、オープンソース運動は着実に発展してきた。しかし、その成功とコミュニティに根付く開放性が、大きな課題――セキュリティをもたらした。開発されるソフトウェアが増えるほど、脆弱性が存在する可能性も高まる。
さらに悪いことに、オープンソースの世界は、開放性と透明性を誇りとしている。そのため、セキュリティ上の脆弱性はすべて公に開示される。サイバー犯罪者の組織的な集団が暗躍する今日、それは攻撃を求める広告を出すようなものだ。
この状況から、多数のオープンソースセキュリティツールが生まれた。これらは、オープンソースコンポーネントのセキュリティ管理のあらゆる側面に対応し、依存関係を調査し、コードのバグを修正して、リスクを低減する。
ただし、ツール自体の対象範囲、洗練度、機能は大きく異なる。eSecurity Planetの編集部が特に有用だと判断したオープンソースセキュリティツールを、以下に20種類紹介する。オープンソースのものも商用のものもあるが、いずれもオープンソース環境に適したセキュリティの選択肢だ。
オープンソースセキュリティについてさらに詳しく知りたい方は、こちらの書籍をご覧いただきたい。
最高のオープンソースセキュリティツール
WhiteSource
WhiteSourceは、推移的依存関係を含む、脆弱なオープンソースコンポーネントを200以上のプログラミング言語で検出する。報告された脆弱性とコード内のオープンソースライブラリを照合し、アラートの数を減らす。2億7,000万を超えるオープンソースコンポーネントと130億件のファイルを収録する脆弱性データベースは、複数のリソースと幅広いセキュリティアドバイザリー、課題トラッカーを継続的に監視している。WhiteSourceはCVE採番機関でもあり、自社の調査で見つかった新たなセキュリティ脆弱性を責任ある形で開示できる。最も重大なオープンソースセキュリティ脆弱性を特定して優先順位を付け、ユーザーが重要な問題から先に修正できるようにする。
Metasploit
Metasploitは脆弱性のスキャンとテストに対応する。既知のエクスプロイトを収録した巨大なオープンソースデータベースを基盤に、IT部門に対してペネトレーションテストの結果を分析して、効率的に対策を実施する機能も提供する。ただし、エンタープライズ規模への拡張性はなく、一部の新規ユーザーは、最初は使いにくいと感じている。
詳しくはこちら:
Revenera
ReveneraのFlexNet Code Awareは、オープンソースコードに含まれるセキュリティ脅威と知的財産(IP)のコンプライアンス上の問題を検出できる。Java、NuGet、NPMのパッケージをスキャンする。さらに同社は、主要なソフトウェア言語をすべてサポートする、オープンソースのセキュリティとライセンスコンプライアンス向けのエンタープライズプラットフォームを提供している。70以上の拡張機能と、1,400万を超えるオープンソースコンポーネントを収録したナレッジベースを備える。
Synopsys
SynopsysのBlack Duckソフトウェアコンポジション分析(SCA)は、アプリケーションやコンテナでオープンソースコードやサードパーティーコードを使用することに伴う、セキュリティ、品質、ライセンスコンプライアンスのリスク管理を支援する。MavenやGradleなどのビルドツールと統合し、JavaやC#など、アプリケーションで使用される言語の宣言済みおよび推移的なオープンソース依存関係を追跡する。文字列、ファイル、ディレクトリの情報をBlack Duck KnowledgeBaseにマッピングし、CやC++などで構築されたアプリケーション内のオープンソースおよびサードパーティーコンポーネントを特定する。SCAツールは、コンパイル済みアプリケーションのライブラリや実行可能ファイル内のオープンソースも特定できる(ソースコードやビルドシステムへのアクセスは不要)。さらに、オープンソースコードの一部がプロプライエタリコード内にコピーされている箇所を見つけ、ライセンス違反や競合につながる可能性を明らかにする。
Portswigger Burp
PortswiggerのBurp Suite Community Editionは、多くの組織で利用されている人気のWeb脆弱性スキャナーのオープンソース手動版だ。熟練したセキュリティ専門家が、脆弱性を迅速に発見するために利用できる。
詳しくはこちら:
OSSEC
OSSECはオープンソースで、無料で利用できる。設定オプションによってセキュリティ要件に合わせて調整でき、カスタムアラートルールや、アラート発生時に対応するスクリプトを追加できる。Linux、Solaris、AIX、HP-UX、BSD、Windows、Mac、VMware ESXなど複数のプラットフォームで、包括的なホストベースの侵入検知を提供する。さらに、PCI-DSSなど、組織固有のコンプライアンス要件への対応を支援する。ファイルシステムの不正な変更や、コンプライアンス違反につながり得る悪意ある挙動を検出し、警告する。
Acunetix
Acunetixは主にWebアプリケーション向けのセキュリティスキャナーだが、ネットワークインフラのスキャン機能も備える。スキャンエンジンには、人気のオープンソース脆弱性スキャンプロジェクトであるOpenVASを使用する。マルチスレッドスキャナーは数十万ページを迅速にクロールでき、一般的なWebサーバーの設定問題も特定する。特にWordPressのスキャンに適している。
Sonatype
Sonatypeは、オープンソースのセキュリティ監視をソフトウェアサプライチェーン全体に拡張できるツールを提供している。既知の脆弱性を収録した更新型データベースにより、攻撃を受ける前に脅威や不整合を検出できる。機能には、オープンソース依存関係の脆弱性の自動検出と修正、既存のGitリポジトリへのセキュリティ脆弱性ツールの統合、開発チームと運用チーム全体で安全な開発手法を大規模に実践して攻撃を回避する機能などがある。
Fiddler
TelerikのFiddlerは、Webデバッグ、Webセッションの操作、セキュリティおよびパフォーマンステストに対応する手動ツールの便利なコレクションだ。ただし、.NET Framework上で有料版を導入するユーザーにとって最も有用だろう。有料版には多数の自動化機能が搭載されているためだ。
詳しくはこちら:Fiddler:ペネトレーションテスト製品の概要と分析
OWASP ZAP
OWASP Zed Attack Proxy(ZAP)は、最も広く使われているWebアプリケーションスキャナーだとされている。ソフトウェアのセキュリティ向上に取り組むOWASP Foundationから生まれた。同財団は、コミュニティ主導のオープンソースソフトウェアプロジェクト、世界各地の支部、会員基盤、地域および世界規模のカンファレンス開催を通じて活動している。
Nmap
Nmapはポートスキャナーであり、攻撃時に標的とすべき最適な領域を示すことで、ペネトレーションテストにも役立つ。そのため、倫理的ハッカーがネットワークの弱点を特定するのに有用だ。オープンソースなので無料で利用できる。オープンソースの世界に慣れたユーザーには便利だが、この種のアプリケーションに不慣れな人には難しいかもしれない。主要なOSすべてで動作するが、Linuxユーザーにはより馴染みやすいだろう。
詳しくはこちら:
Security Onion
Security Onion SolutionsはSecurity Onionを開発・保守している。これは,無料でオープンなプラットフォームで、脅威ハンティング、ネットワークセキュリティ監視、ログ管理に対応する。 Suricata、Zeek、Wazuh、Elastic Stackなど、最上級の無料・オープンソースツールも多数含まれている。
Wireshark
Wiresharkは、ネットワークで何が起きているかを把握し、リアルタイムでトラフィックの脆弱性を評価するためによく使われる。接続レベルの情報に加え、データパケットの構成要素を確認することで、特徴、送信元、宛先などを明らかにする。潜在的な弱点を示すことはできるが、それを悪用するにはペネトレーションテストツールが別途必要だ。
詳しくはこちら:Wireshark:ペネトレーションテスト製品の概要と分析
Aircrack-ng
Aircrack-ngは、無線ネットワークの分析とクラッキングに適した定番ツールだ。内部の各種ツールはすべてコマンドラインインターフェースを使用し、スクリプト実行に対応している。Wi-Fiセキュリティのさまざまな領域に焦点を当てており、パケットキャプチャーと、サードパーティーツールでさらに処理するためのデータのテキストファイルへのエクスポート、パケットインジェクションによるリプレイ攻撃・認証解除・偽アクセスポイントなど、Wi-Fiカードとドライバーの機能確認(キャプチャーとインジェクション)、WEPおよびWPA PSK(WPA 1および2)のクラッキングに対応する。
詳しくはこちら:Aircrack-ng:ペネトレーションテスト製品の概要と分析
VeraCrypt
VeraCryptは、Windows、Mac OSX、Linux向けの無料・オープンソースのディスク暗号化ソフトウェアだ。Idrixが開発したもので、TrueCrypt 7.1aを基盤としている。ファイル内に仮想暗号化ディスクを作成し、実ディスクとしてマウントする。 USBフラッシュドライブやハードドライブなどのパーティションまたはストレージデバイス全体、あるいはWindowsがインストールされているパーティションやドライブを暗号化できる。暗号化は自動的に、リアルタイムで実行される。
「VeraCryptを使ってフラッシュドライブを暗号化する方法」を参照。
John the Ripper
John the Ripperは、パスワードの脆弱性確認に最もよく使われるツールだ。複数のパスワードクラッキング手法を1つのパッケージに統合している。Unix系OS(Linux、*BSD、Solaris、AIX、QNXなど)、macOS、Windows、「Webアプリ」(WordPressなど)、グループウェア(Notes/Dominoなど)、データベースサーバー(SQL、LDAPなど)のユーザーパスワード、ネットワークトラフィックのキャプチャー(Windowsネットワーク認証、WiFi WPA-PSKなど)、暗号化された秘密鍵(SSH、GnuPG、暗号資産ウォレットなど)、ファイルシステムとディスク(macOSの.dmgファイルや「スパースバンドル」、Windows BitLockerなど)、アーカイブ(ZIP、RAR、7z)、ドキュメントファイル(PDF、Microsoft Officeなど)を含め、数百種類のハッシュと暗号に対応する。
詳しくはこちら:John the Ripper:ペネトレーションテストツールレビュー
Nikto
NiktoはWebサーバースキャナーで、6,400件を超える危険な可能性のあるファイルやCGI、1,200を超えるサーバーの古いバージョン、270を超えるサーバーのバージョン固有の問題など、複数の項目についてWebサーバーをテストする。また、複数のインデックスファイルの存在やHTTPサーバーオプションなど、サーバー設定項目も確認し、インストールされているWebサーバーやソフトウェアの特定を試みる。スキャン項目とプラグインは頻繁に更新され、自動更新も可能だ。
Snort
Snortはオープンソースの侵入防止システム(IPS)だ。ルールを使って悪意あるネットワーク活動を定義し、それに一致するパケットを検出してユーザーにアラートを出す。インラインで展開して、こうしたパケットを阻止することもできる。主にパケットスニファー、パケットロガー、または本格的なネットワーク侵入防止システムとして利用される。
Open SSH
OpenSSHは、SSHプロトコルによるリモートログインのための接続ツールだ。すべてのトラフィックを暗号化し、盗聴、接続ハイジャック、その他の攻撃を排除する。さらに、安全なトンネリング機能一式、複数の認証方式、設定オプションを提供する。
Tcpdump
Tcpdumpは強力なコマンドラインパケットアナライザーで、ネットワークトラフィックキャプチャー用の移植性に優れたC/C++ライブラリであるlibpcapと同じ開発者によって作られた。ネットワークインターフェース上のパケットの内容を、タイムスタンプを付けて表示する。パケットデータを後で分析できるようファイルに保存したり、ネットワークインターフェースからパケットを読み取る代わりに保存済みのパケットファイルから読み取ったりできる。保存済みパケットファイルのリストを読み取ることも可能だ。





