分はじめに過去の連載「業務を改善する情報共有の仕掛け」の第1回と第2回では,DevOps実現のための基盤作りについてお話をしました。今年はDevOpsにセキュリティの観点を加えたDevSecOpsにフォーカスし,前回の「DevOpsからDevSecOpsへの近道」で,Sec領域を担うソフトウェアコンポジション解析(注1)ツールWhiteSourceについて紹介しました。今回は,WhiteSourceのコンポジション解析の流れを確認したあと,DevOpsを支援するツールとWhiteSourceの統合について紹介します。注1)開発するアプリケーションに含まれるオープンソースコンポーネントの脆弱性やオープンソースライセンスの法的チェックを行うこと。WhiteSourceの解析のしくみWhiteSourceはバージョン管理システムやCIツールと連携し,さまざまなタイミングでコンポジション解析を実行できます。Agentと呼ばれるツールを使った解析の流れについて紹介します。1.8系がインストールされている必要があります。アプリケーションと設定ファイルはGitHubで配布されており,curlをインストールしておけば次のコマンドで最新版を取得できます。https://github.com/WhiteSource/unified-agent-distribution/raw/master/standAlone/wss-unified-agent.config取得したリソースを開発環境の任意のディレクトリに配置し,wss-unified-agent.configにWhiteSourceサーバのURL,APIKey,解析対象のリソースの拡張子などのパラメータを設定します。アプリケーションはJavaコマンドで実行でき,次のように-dオプションでスキャン対象のディレクトリパスを指定します。Agentは,指定されたディレクトリを再帰的にスキャンし,検出したコンポーネントのハッシュ値を算出します。開発環境のスキャンが完了すると,取得したハッシュ値をWhiteSourceサーバに送信します。WhiteSourceの特長は,ソースコードを外部に送信せずにハッシュ値だけを送信することにあります。WhiteSourceのサーバでは,受け取ったハッシュ値を元にデータベース(注2)とマッチングし,オープンソースコンポーネントの情報をインベントリに登録します。WhiteSourceの利用者は,図1のようにインベントリに登録されたオープンソースコンポーネントのライセンス,脆弱性,バグなどに関するアラートや統計情報を確認できます。WhiteSourceのダッシュボードWhiteSourceのサーバはSaaSとオンプレミスで提供されていますが,ソースコードなどの重要性が高い情報をWhiteSourceサーバに送信しない作りとなっているため,手軽に導入できるSaaS版が人気を集めています。注2)WhiteSourceは,オープンソースコンポーネントのライセンス,セキュリティ,品質に関する独自のデータベースを所有し,日々アップデートしています。Prioritizeを使った脆弱性解析Prioritizeは,WhiteSourceの脆弱性解析に関するオプション機能です。従来の解析手法では,脆弱性が報告されているオープンソースコンポーネントを特定することはできますが,報告された脆弱性が内在するエンティティが,開発対象のソースコードからどのように参照されているかについては識別できませんでした。Prioritizeでは,開発対象のソースコードをスキャンして,コードがオープンソースコンポーネントとどのように相互作用するかを分析し,オープンソースコンポーネントの脆弱性を含むソースコードが開発対象のソースコードからコールされているか明確にできます。これにより,報告された脆弱性が本当のリスクになるかどうかの確認が容易になり,脆弱性への対応に関する工数を大幅に削減し,開発プロセスを効率化できます。現在は,次に示す環境における分析をサポートしており,今後のリリースでサポート環境の追加が検討されています。Agentの設定ファイルで,Prioritize解析の実行フラグ,Maven/Gradleなどの利用環境に応じたオプションを追加で設定します。ツールを実行する際,スキャン対象のディレクトリパスに加えて,次のように-appPathオプションでbuild後のアプリケーションを指定します。source/sample-software/target/SampleSoftware.jar処理が完了すると,指定したWhiteSourceのサイトに解析の結果が表示されます。Prioritizeオプションが有効になっている環境では,図2のように脆弱性の影響を確認するうえでの指標となるシールドマークが表示されます。脆弱性の指標となるシールドマークまた,図3のように脆弱性の詳細情報として,CVE(脆弱性情報⁠)⁠,脆弱性を含むソースコードのコールトレースなどが確認できます。以上がWhiteSourceが行うソフトウェアコンポジション解析の大まかな流れです。後編では,診断結果に対するアクションを指定できるポリシー設定についてと,DevOpsを支援するツールとWhiteSourceとの統合について紹介します。日本だけでなく,アジア圏でもアトラシアン製品販売のトップエキスパートであるリックソフトのWebサイトでは,各アトラシアン製品の体験版を提供しているほか,アトラシアン製品専用のコミュニティも運営しています。著者プロフィール古守花織(こもりかおり)リックソフト株式会社アトラシアン製品のプリセールスを担当。アトラシアン認定プロフェッショナル(ACP)の資格取得のための勉強をしつつ,愛犬と一緒に登山を楽しんでます。動物占いは「虎」ですが,そこまで肉は食べません。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。