OSSを介したサプライチェーン攻撃、どうすれば防げるのか:パッケージ管理システムには要注意
オープンソースソフトウェアを介したサプライチェーン攻撃には十分な危険性がある。ソフトウェア開発者向けにどのような対策があるのか、WhiteSourceが解説した。
オープンソースセキュリティとライセンスコンプライアンス管理プラットフォームを手掛けるWhiteSourceは2021年6月10日(ポーランド時間)、オープンソースソフトウェア(OSS)を介したサプライチェーン攻撃の危険性に警鐘を鳴らし、ソフトウェア開発者がこうした攻撃を防ぐための9個の対策を紹介した。これがDevSecOpsの第一歩となるのだという。
ソフトウェア開発者がオープンソースソフトウェアを使用する際に特に注意しなければならない点がある。「npm」「PyPI」「RubyGems」といったパッケージ管理システムやソフトウェアリポジトリを用いてパッケージやライブラリをインストールしようとすると、それだけで悪意あるコードが仕込まれてしまう恐れがあるという。
ソフトウェア開発者がオープンソースソフトウェアを介したサプライチェーン攻撃を防ぐためには、次のようなコツがあるとした。
(1)確認済みのパッケージソースのみを使う
タイポスクワッティングやブランドジャッキングは、最もよく使われる攻撃手法だ。タイポスクワッティングとは紛らわしいつづり(タイプミス)を利用して、ユーザーが意図したのとは異なるURLに誘導する攻撃手法。
下図に挙げたのはさらに面倒なIDN(Internationalized Domain Names )ホモグラフ攻撃の一例だ。あるローマ字とよく似た非ローマ字を含むドメイン名を使うため、目視ではなかなか見分けることができない。
(2)使用するパッケージのオープンソースライセンスを調べる
多くのパッケージレジストリは、パッケージのライセンス情報を提供している。パッケージの新版では、オープンソースライセンスが変わっている可能性がある。
(3) 放棄されたパッケージの利用を中止する
メンテナーがおらず放棄されたパッケージは、サイバー攻撃者に乗っ取られる可能性が高い。十分な注意が払われていないソフトウェアを使っている場合は、使うのをやめるか、別のパッケージに乗り換えるか、開発を引き継ぐことを考えるとよい。
(4)公開直後のパッケージを使わない
公開されてから30日未満のパッケージには注意が必要だ。コミュニティーに属するセキュリティ研究者によって安全が確認されるまで、使わないようにしよう。WhiteSourceによれば、悪意のあるパッケージをさまざまなレジストリに公開しようとする試みが何度かあったという。
(5)CVE通知をセキュリティアラートワークフローに組み込む
本番環境で使うソフトウェアについて、CVE通知からアラートが上がる仕組みを作っておこう。そうすれば本番環境に影響する重大な脆弱(ぜいじゃく)性を認識できる場合がある。
(6)自動化ツールにまかせきりにしない
自動化ツールを使ってパッケージの依存関係を更新している場合、まかせきりにしてはいけない。更新プログラムが自動的にインストールされる前に、そのパッケージの安全を確認する必要がある。
(7)CIステージを分離して使用する
Amazon Web Services(AWS)やDockerレジストリなど全ての環境変数を含む単一のCI(継続的インテグレーション)パイプラインを使わない。スペックの実行やコンテナの構築、更新プログラムの配布などを全て同じ環境で行っていると、環境はもちろん、自社や顧客を危険にさらすことになる。
(8)開発サイクル全体を保護する
脅威防止の第一歩は、正しい認識を広めることにある。パッケージを適当に検索してダウンロードしてはならない。これをチームの共通認識にすべきだ。作者をチェックするまで、パッケージをインストールしないことを標準プラクティスとする。
(9)Gitリポジトリの説明を読むだけでは不十分
使おうとしているオープンソースプロジェクトを調べる際、Gitリポジトリの説明だけでは不十分だ。実際にパッケージをダウンロードして、安全を確認するために内容をチェックする必要がある。レジストリの掲載情報だけに頼ってはならない。パッケージのセキュリティや品質上の問題を検出するツールを利用する手もある。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- Google、OSSパッケージの依存関係を可視化した実験的サービスを発表
Googleはオープンソースプロジェクトの依存関係などを可視化した実験的サービス「Open Source Insights」を提供開始した。「変更のペースが速く、ついていくのが難しい場合がある」「大きなプロジェクトが依存するソフトウェアパッケージが頻繁にアップデートされ、明確な現状把握ができない場合がある」といったOSSの課題を解消するのが目的だ。 - サプライチェーン攻撃とは何か
サイバー攻撃の深化はとどまるところを知らない。2019年は企業に対する「サプライチェーン攻撃」が話題となっている。サプライチェーン攻撃とは何か、何が狙われるのか、どのような対策が考えられるのだろうか。 - 君のコンパイラや開発環境は侵害されていないか?――開発者が「サプライチェーン攻撃」に加担しないためにすべきこと
セキュアな開発やコードスキャンに取り組むだけでは防ぎ切れないリスクとして「サプライチェーン攻撃」がある。Kaspersky Labは、2019年4月9〜10日に開催した「Security Analyst Summit 2019」で、その実態を紹介した。