草榴社区

close search bar

Sorry, not available in this language yet

close language selection

サイバー?セキュリティの実现方法:重力は无慈悲な夜の女王

草榴社区 Editorial Team

Jun 23, 2022 / 1 min read

最先端のソフトウェア开発は素晴らしい无限の可能性を秘めています。コンピュータとインターネット接続があれば、谁でもコードを作成できます。人类の歴史が始まって以来、今ほど、ソフトウェアで何かを构筑し、思いついたアイデアを実现する力を谁もが持っている时代はありません。

それと同时に、オープンソース?ソフトウェア?コンポーネントのエコシステムの繁栄により、私たちは先人の伟业を手本にして既存の机能の膨大な部品をすばやく组み立て、目标に向かって一気に駆け上がることができます。

当然、いつかは现実的な问题にぶつかります。&苍产蝉辫;ですから、建物を建てる场合、崩れないようにする必要があります。飞行机を造る场合、着陆の準备が整うまで上空にとどまるようにする必要があります。
ソフトウェアを作成する场合、过失や攻撃が発生しても障害が起こらないようにする必要があります。

チャンスを台无しにしない

ある意味で、开発チームはのようなものです。何と言っても、开発チームは収益をもたらすソフトウェアを生产する创造的な人材です。

ただし、セキュリティの脆弱性は基本的に开発チームのミスです。时々、ガチョウは失败作を产みます。

开発チームとセキュリティの脆弱性のこの関係が、経営阵の判断の误りにつながることもあります。脆弱性の原因が开発チームにあるならば、开発チームに対してセキュリティに関するトレーニングを行い、以后、间违いを犯さないようにする方法が理に适っています。

しかし、それでは問題は 解決しません。

ソフトウェアセキュリティに関する开発チームの知识を强化することは确かにセキュリティの向上につながりますが、大きな课题に対する対策としては限定的で安直な方法です。

ソフトウェア?サプライチェーン

ソフトウェアは开発チームが作成するものと考えるのは、あまりにも単纯化しすぎです。ソフトウェアは多种多様な贡献者の努力によって作られています。

  • ソフトウェアの机能や构造を考え出すのは设计者とアーキテクトです。コードを记述する前のこの段阶で、多くの脆弱性が入り込みます。设计レビュー、胁威モデリングアーキテクチャ?リスク分析はすべて、可能な限りセキュリティの高い完成された设计を目指して実施する必要があります。
  • 开発チームはコードを作成しますが、基本的な机能を提供するために、事前に构筑されたコンポーネント(多くの场合はオープンソース?パッケージ)を多用します。开発チームが记述するコードは、多くの场合、すべてをとりまとめて特定の机能を提供する比较的薄い层です。本质的に、开発チームは、使用しているコンポーネントに贡献したすべての开発者で构成される影の集団に依存しています。
  • 运用エンジニアは、ソフトウェアをデプロイ、构成、保守し、セキュリティに広范な影响を与える多くの决定を下します。
  • ユーザーは、ソフトウェアを使用する际にセキュリティ関连の决定を下します。

アイデアの段阶からユーザーの手元に届くまでの工程がソフトウェア?サプライチェーンです。开発工程は重要ですが、サプライチェーン全体の1つのリンクに过ぎません。セキュアなソフトウェアを构筑するには、サプライチェーン全体にわたってリスクを軽减するための措置を讲じることが重要です。

机械を使用する

大きな土の山をシャベルで移动することもできますが、ショベルカーがあれば作业は格段に速くなります。ソフトウェアのセキュリティを强化すれば、これと同様の効果があります。脆弱性を手动で探し出すこともできますが、自动化ツールを使用できれば、作业ははるかに効率的になります。

特にアプリケーションにオープンソース?コンポーネントを追加している场合などには、単一のソフトウェアアプリケーションに数千行、时には数百万行のコードが含まれている可能性があります。开発チームがセキュリティの脆弱性を手动で探し出すやり方は现実的ではありません。

セキュリティツールは(今のところ)人间ほど贤くありませんが、比较的短时间で膨大な量の分析を行うことができます。効果的なセキュリティプログラムは、ツールによる処理と手动による作业の利点を活用します。ツールを用いることで幅広い领域を迅速にカバーし、手动による作业でターゲットを绞った分析を行うことができます。

単纯に自动化できないアクティビティもあります。例えば、设计段阶で行われるセキュリティ分析のほとんどは手动で実行する必要がありますが、开発、テスト、デプロイ、保守のフェーズを通して、セキュリティの脆弱性を洗い出すのに便利な様々な自动テスト手法があります。

开発チームが开発に専念できる环境を整える

开発チームは困难な问题を解决する创造的な人材の集まりです。その仕事の核となるのは、何らかの処理を実行するコードを作成することです。セキュリティはアプリケーションを构筑する上で重要な要素ですが、开発チームの仕事の中心ではありません。

したがって、开発者にセキュリティの知識があれば、それに越したことはありませんが、本当に必要なのは、開発チームがプロアクティブなセキュリティプロセスに組み込まれていることです。開発チームが誤りを犯したとき、自動化ツールがエラーを通知して修正を支援する必要があります。その際、開発チームが既に使用しているツールにセキュリティを組み込むことで、できるだけ作業の邪魔にならないようにしなければなりません。

适切に実装されたソフトウェア开発プロセスでは、开発チームはセキュリティをほとんど意识することなく、通常どおりに日常业务を遂行できます。彼らがコードの作成に専念できるのは、実装している设计がセキュリティの観点から既に评価され、强化されていることを确信しているからです。コーディングエラーが発生すると、开発环境のプラグイン(Code Sight?など)が脆弱性情报を通知し、修正方法に関する指针を提供します。コードをソース?リポジトリにコミットすると、颁辞惫别谤颈迟测?静的アプリケーション?セキュリティ?テスト(SAST)、Black Duck?ソフトウェア?コンポジション解析(SCA)、厂别别办别谤?インタラクティブ?アプリケーション?セキュリティ?テスト(IAST)などの自动化ツールが脆弱性を検出し、既に使用している问题追跡システム(闯颈谤补など)を介して开発チームにフィードバックされます。

結局のところ、セキュリティでは、开発者を改善するのではなく、开発者を中心により良いプロセスを構築することが求められます。

 

Continue Reading

トピックを探索する