2021年3月5日

2021年3月5日

2021年3月5日(金) 

漠然とした不安との素敵な付き合い方

株式会社 Flatt Security
米内   貴志

 

 
  
 
   漠然とした不安とうまく付き合うのは難しいことだ、と強く思います。そんな中、新型コロナウイルス感染症の拡大に伴う社会変容と共に、サイバーセキュリティがより多くの人にとっての漠然とした不安のタネになりつつあることがIPAの実態調査(※1)を始めとしたいくつかの統計により示唆されています。
 
   そこで本稿では、テスト駆動開発(Test-Driven Development)というソフトウェア開発における考え方からの類推を通して、この漠然とした不安との付き合い方を模索してみたいと思います。
 
   テスト駆動開発は、これから書くコード片の動作をテストするためのコードを全てに先んじて書く、というソフトウェア開発のスタイルです。このスタイルの利点は、書籍『テスト駆動開発』(Kent Beck著/和田卓人訳) のまえがきに登場する次の一文に凝縮されています。

 
「テスト駆動開発は、プログラミング中の不安をコントロールする手法だ。」

 
   いわゆる「テストファースト」なこの様式のもとでは、事前にテストコードを定義することで、自分がこれから書くコード片に期待されるふるまいを明確にしながら開発を進められます。また、コード片が期待した通りにふるまうかを、そのコードを書いている最中に繰り返し確認することができます。つまりプログラマは、プログラミング中の思考を「何をするコードを書くべきか」と「どうコードを書くべきか」の 2 つに分割し、細かく不安を解消しながら仕事を進められるのです。向き合っている問題が複雑であればあるほど、このような思考分割の価値が光ることでしょう。
 
   また、プログラムを書き終えた後も、テストコードは継続的なチェックに利用することができます。品質を継続的に保証するための資産を積み上げていけるのです。テストファーストな様式は継続して不安をコントロールするのにも有益だ、と捉えることができます。
 
   さて、ここまではプログラミング中の不安をコントロールする手法としてのテスト駆動開発を紹介しました。この考え方を少しだけ拡張して考えると、サイバーセキュリティに関する不安とうまく付き合うためには、以下の 3 つのステップが重要だといえるのではないでしょうか:
 

    1. 漠然とした不安を明確なものにする: 脅威を知り、自分や自組織が何を守るべきかを明確にする。
    2. 明確な不安を安心に変えていく: 実際に守るための行動を起こす。
    3. 安心を維持する: セキュリティに関する知見や行動を積み上げ、継続運用する。

 
   これはまさにサイバーセキュリティ月間のキャッチフレーズ「知る・守る・続ける」そのものです。「知る」ことで漠然とした不安を明確なものに変え、「守る」ことで明確な不安を安心に変え、「続ける」ことで慢心を避けながら安心を維持する。そんな「知る・守る・続ける」のプロセスこそが、サイバーセキュリティにまつわる不安との素敵な付き合い方なのでしょう。
 
(※1)ニューノーマルにおけるテレワークとITサプライチェーンのセキュリティ実態調査(独立行政法人情報処理推進機構) 
 

※記載内容は執筆者の知見を披露されているものであり、著作権は本人に帰属します。

 コラム一覧に戻る