Skip to main content

知っておきたいオープンソースセキュリティに関する5つのよくある誤解

著者
Headshot of Karl Hopkinson-Turrell

Karl Hopkinson-Turrell

free annoucment feature

2020年4月24日

0 分で読めます

オープンソースは、大企業から中小企業、個人や愛好家まで、幅広い人々がテクノロジーを利用するための非常に一般的な方法です。個人やビジネスのコンピューティング上の課題を解決できそうなオープンソースの依存関係を見つけ、ダウンロードしてインストールするだけです。

大企業も、エンタープライズアプリケーションのポートフォリオを強化するためにオープンソースを活用しています。それでも、オープンソースセキュリティに関する誤解と事実を知っておく必要があります。

オープンソースを採用することは、将来にわたって柔軟性を保てるビジネスモデルにとって適切な選択ではないと懸念する専門家もいます。 

オープンソースのメリットと誤解

オープンソースに関する誤解の一つは、無料だというものです。多くのソフトウェアではそのとおりですが、ライセンスが必要なものもあります。

ライセンスによって、コードの権利者は誰がソフトウェアを使用しているかを把握できます。また、変更や更新があった際にユーザーへ通知することもできます。多くのオープンソースソフトウェアは作者によって署名されているため、ユーザーはコードの出所と真正性を確認できます。

オープンソースが広く利用されている理由は数多くあります。

  • 既存のオープンソースライブラリを活用した迅速な開発

  • 導入のしやすさ

  • 開発者リソースへの投資を最小限に抑えられる

  • 問題解決や質問に対応するコミュニティ

オープンソースの大きなメリットは、ユーザーがコードを自由に確認して機能の詳細を理解し、用途に合わせて適切に変更できることです。コードによって提供されるセキュリティを追加または改善する更新も可能です。

オープンソースセキュリティに関する5つのよくある誤解

オープンソースが広く利用される一方で、利用可能なオープンソースプログラムや機能を使ったアプリケーションのセキュリティについて、必ずしも正確とは言えない懸念も数多くあります。

1. オープンソースプログラムはプロプライエタリソフトウェアより安全性が低い

オープンソースコードは誰でも読めるため、ハッカーがコードを分析して脆弱性を見つけ、自由に悪用できるのではないかと考える人もいるでしょう。

事実:実際には、多くのユーザーがコードを詳しく読んでいるため、欠陥や潜在的な弱点がより早く発見される可能性があります。プロプライエタリソフトウェアの場合、ソースコードに関わるセキュリティプロセス(静的解析ツールや手動のコードレビューなど)はベンダーやそのパートナーに頼ることになります。また、適時のパッチ適用や、パッチ公開までの暫定的な緩和策も、ベンダーやパートナーに依存します。

オープンソースセキュリティでは、多くのユーザーがコードをレビューするため、セキュリティ上の「穴」が発見されやすいとも言えます。特定のオープンソースプログラムを何百人ものユーザーが利用している場合、たった一人がセキュリティ上の問題を見つけるだけで、作者やオープンソースコミュニティに問題が共有されます。

2. オープンソースコードの完全性には疑問がある

多くの開発者がオープンソースプロジェクトの開発に貢献していると、コードが複雑で一貫性に欠け、品質やパフォーマンスの基準を満たさないこともあると考えられます。その結果、さらなる変更が難しくなったり、時間がかかったりする可能性があります。

事実:実際には、その逆であることのほうが多いです。多くの開発者がオープンソースプログラムのコードをレビューすることで、継続的な機能強化や改善が取り入れられています。開発者の多くは自身のプログラミングスキルに誇りを持ち、コードの改善、そしてもちろんセキュリティ脆弱性の修正を目指して変更に取り組みます。オープンソースコードは読みにくくなるどころか、構造やパフォーマンスが改善されることもあります。

3. オープンソースは一時的な流行にすぎず、いずれ使われなくなる。セキュリティは後回し

当初、オープンソースソフトウェアがこれほど普及し、人気を集め、企業に広く活用されるようになるとは予想されていませんでした。また、製品に外部のコードを使うことで生じるセキュリティや運用上のリスクを企業が受け入れるとも考えられていませんでした。しかし、実際にはまったく異なる展開となりました。

事実:オープンソースライブラリの飛躍的な増加に加え、膨大な数のオープンソースプロジェクトやコミュニティが存在します。調査によると、ほとんどの組織がオープンソースソフトウェアをすでに導入しているか、導入を検討しています。一方で、オープンソースの利用が広がるにつれ、信頼性、パフォーマンス、セキュリティに対する精査も進んでいます。オープンソースの発展とともに、こうした課題に注力し、特化したソリューションを提供するベンダーも登場しました。たとえばSnykは、開発者がオープンソースを安全に利用できるよう支援し、npm、Maven、NuGet、RubyGems、PyPIなどの脆弱性を継続的に検出して修正することを目指しています。

4. オープンソースはサポートが不十分

家庭向け、ビジネス向け、エンタープライズ向けのアプリケーションでソフトウェアを選ぶ際には、サポートや機能強化も検討事項の一つです。サポートが不十分であれば、オープンソースは最適な選択肢ではないかもしれません。脆弱性や欠陥が見つかっても、対応が遅れる可能性があります。その結果、アプリケーションの障害やダウンタイムにつながることもあります。

事実:確かに、オープンソースのサポートは通常、ボランティア(メンテナーやコミュニティ)による「最善努力」の範囲です。しかし、多くの企業が有料サポートプランを提供してオープンソースを商用化しており、企業は必要なときに、ニーズに合わせた迅速かつ専門的なサポートを受けられます。

5. 外部で開発されたコードには本質的に高いリスクがある

コードを導入する企業が直接関与したり監督したりできない場合、オープンソースの品質は大きな未知数となります。コードのエラーや非効率性、セキュリティ上の欠陥が潜んでいる可能性があり、ベストプラクティスが守られている保証もありません。

事実:オープンソースの透明性により、効率性や品質、脆弱性を徹底的に検証できます。使いやすさ、コーディングのベストプラクティスへの準拠、さらには論理上の問題について、多くの人がオープンソースを検証しています。アマチュアが作成したオープンソースプログラムも数多くありますが、簡単なコードレビューによって、組織に適さない、または受け入れられないコードを見つけることができます。選定や導入の手順は増えるかもしれませんが、社内で開発するより大きなメリットが得られる可能性もあります。

オープンソースセキュリティの誤解を解消する

アプリケーションのポートフォリオに統合する前に、オープンソースのコンポーネントを慎重に選定、評価することで、セキュリティリスクを管理し、ベストプラクティスを実践できます。

オープンソース機能の導入を検討している組織は、Snykの無料アカウントに登録して、オープンソース脆弱性スキャナーでコードの脆弱性を簡単に検出できることをご確認ください。Snykを活用すれば、リスクをさらに抑え、アプリケーションセキュリティを強化できます。

CTFを始めよう

オンデマンドのバーチャル入門ワークショップを視聴して、CTFの課題の解き方を学びましょう。