『後からセキュリティ』では遅すぎる!? 今、注目の「システム開発の新常識」とは
「パスワードが流出!」「個人情報が漏洩!」最近、このようなニュースを目にする機会が増えていませんか。便利なネットショッピングやSNSも、ひとたびセキュリティの問題が起これば、私たちの日常生活に大きな影響を及ぼします。実は、多くの事件は「後回し」にされがちなセキュリティ対策が原因で起きています。スマートフォンでいえば、最初から指紋認証やパスコードを設定するように、システム開発でもセキュリティは「最初から」考える時代になってきているのです。今回は、安全なシステムを作るための新しい考え方「DevSecOps(デブセックオプス)」と「セキュリティバイデザイン」について、身近な例を交えながらご紹介します。システム開発に携わった事がない方も多いと思いますので、難しい用語は極力避けて、誰でもわかるように解説していきます。
目次
セキュリティ対策はなぜ後回しになるのか
「とりあえず動くものを作って、セキュリティは後で...」これは、多くの開発現場でよく聞かれる言葉です。皆さんの会社でも、似たような経験はありませんか。
よくある「後回しにされる理由」
目に見えにくく、後回しにされがちです。「納期に間に合わない!」とかも良くある事例です。開発の現場では、期限との戦いが常にあります。「まずは期限までに完成させなければ」という焦りから、セキュリティチェックが後回しにされることも。また、セキュリティ対策に対しての重要性をあまり理解しておらず、「そんなに急ぐ必要ある?」「今までも大丈夫だったから」「うちは小さな会社だから狙われない」といった油断が、セキュリティ対策を遅らせる原因にもなっています。
ある会社の失敗例
例えばの例として、後回しが引き起こした、ある通販サイト会社の失敗例をご紹介します。開発チームは納期に追われ、まず商品の写真や説明を見やすく表示する機能を完成させることに集中。セキュリティ対策は「リリース直前に行う」という計画でした。ところが、リリース2週間前のセキュリティチェックで重大な脆弱性が発見され、修正に3ヶ月もの時間が必要に。その為リリース遅延による広告費用の無駄や競合他社に出遅れる結果となってしまったのです。この問題は、最初からセキュリティ対策をしていれば防げたのでした。
私たちの生活への影響
セキュリティ対策の後回しは、システムを使う私たちの生活にも直接影響します。例えば、「クレジットカード情報の流出」、「個人情報の漏洩」、「なりすまし被害」、「サービスの突然の停止」など、これらは、「後でよい」と先送りにされたセキュリティ対策が、取り返しのつかない事態を招いた例です。
変わりつつある考え方
最近では、「セキュリティは最初から考えるべき」という認識が広がってきています。例えば皆さんがスマートフォンを買ったとき、最初に求められるのは何でしょうか?「パスコードの設定」、「指紋認証の登録」、「各種セキュリティ設定」などを普通に実施してませんか?これと同じように、システム開発でも「最初からセキュリティを考える」という方法が注目されているのです。
次の章では、この「最初からセキュリティを考える」アプローチについて、具体的な方法をご紹介していきます。
スマートフォンに学ぶ「最初からの対策」
スマートフォンを買ったとき、みなさんは何をしますか?「さっそくアプリを入れよう!」「好きな壁紙に変えたい!」...その前に、必ず行うことがあります。そう、セキュリティの初期設定です。新しいスマートフォンを使い始める時、私たちは当たり前のように、「パスコードを設定する」、「指紋認証を登録する」、「Face IDを設定する」など、これらの設定をしないと、次の画面に進めない仕組みになっています。なぜでしょうか?それは、「セキュリティは後からでは遅い」という考えに基づいているからです。
ではここで「セキュリティバイデザイン」についてご紹介します。
簡単に言うと、システムや製品の企画・設計段階からセキュリティ対策を組み込むことで、情報セキュリティを確保する考え方です。セキュリティバイデザインは、内閣サイバーセキュリティセンター(NISC)から「情報セキュリティを企画・設計段階から確保するための方策」として定義されており、またデジタル庁からセキュリティに関するガイドラインの1つである「政府情報システムにおけるセキュリティ・バイ・デザインガイドライン」が発行されているほど、セキュリティバイデザインがいかにシステム開発や調達に重要なものであるかが分かっていただけると思います。
ではスマートフォンを例にした話に戻しますが、新しいアプリをインストールする時、こんな画面を見たことありませんか?「このアプリは以下の機能へのアクセスを要求しています」(カメラ、位置情報、連絡先 ・・・)。
これも「セキュリティバイデザイン」の一例です。つまり、「使う前に権限を確認」、「必要な機能だけを許可」、「いつでも設定を変更可能」といったように、最初から安全性を考えて設計されているのです。これは、アプリの権限設定に見る「セキュリティバイデザイン」のアプローチによるものです。
スマートフォンの設定を例に説明しましたが、システム開発でも同じことが必要ととなります。では、なぜシステム開発でも「最初からの対策」が必要なのでしょうか。スマートフォンを例に考えてみましょう。
【後からセキュリティを追加する場合】
1. スマートフォンを作る
2. 完成後にセキュリティ機能を追加しようとする
3. 「指紋認証のセンサーを付ける場所がない!」
4. 「画面の設計をやり直さないと!」
5. 結果:大幅な手戻りが発生
【最初からセキュリティを考える場合】
1. 設計段階で指紋認証の位置を決める
2. 必要なセンサーを組み込んで製造
3. 自然な形で認証機能が実装される
4. 結果:スムーズな開発が実現
このように、「後付け」ではなく「設計段階から」、「必要に迫られて」ではなく「当たり前」として、「面倒なもの」ではなく「必須の機能」としてセキュリティを考えるアプローチが、「セキュリティバイデザイン」という考え方です。
ここまで「最初からのセキュリティ」の重要性を見てきましたが、「具体的にどうやって実現するの?」という疑問が浮かぶかもしれません。次の章では、それを実現する「DevSecOps」という新しい開発方法について、分かりやすく解説していきます。
新しい開発方法「DevSecOps」って何?
「DevSecOps」の3つの要素
皆さんは「DevSecOps」という言葉をご存知でしょうか?近年、システム開発の現場で注目を集めているこの概念は、開発(Development)、セキュリティ(Security)、運用(Operations)の3つの要素を統合的に進める手法を指します。
システム開発は開発だけにとどまらず、システムを運用することが必要です。また近年のセキュリティ事案を例にとっても、セキュリティを考慮した開発を行うことが重要となっています。そんな中、従来の開発では、開発チーム、セキュリティチーム、運用チームがバラバラに動いており、効率的は作業が進められないことがよくありました。
例えば、開発チームは「便利な振込機能を作りました!」と言ったところセキュリティチームが「でも、セキュリティ上の問題が…」がと言い出し、運用チームは「こんな仕様だと管理が大変...」と言う始末。結局作り直しの繰り返しを行い、コストも時間もかかり、とても非効率な作業となってしまいます。
そこで、3つのチームが最初から協力しあい、開発チームは使いやすい振込機能を提案、セキュリティチームは不正アクセス対策を事前に組み込み、運用チームはシステムの監視方法を確認するといった形で、3見一体となって開発を進めることで、結果的に安全で使いやすいサービスが早く完成するのです。
家づくりで考える「DevSecOps」
「DevSecOps(デブセックオプス)」という言葉は聞き慣れないかもしれませんし、先ほどの説明だとわかりづらい方々もいらっしゃると思います。しかし、家を建てることに例えると、とても分かりやすい考え方となります。
【従来の家づくり】
1. 家を建てる
2. 完成後に防犯カメラを付ける
3. 「あれ?窓の位置が悪くて死角ができた...」
4. 「センサーライトを付ける場所がない!」
5. 結果:追加工事が必要に...
【DevSecOpsの家づくり】
1. 設計図を描く時から防犯を考える(死角のない窓の配置、防犯カメラの設置場所を確保、センサーライトの配線を計画)
2. 建築中も定期的に安全確認(図面通りに進んでいるか、新しい防犯技術に対応できるか、ご近所の環境変化への対応)
3. 完成後も継続的に防犯強化(定期的な防犯設備の点検、新しいセキュリティ機器の導入、住人の使い勝手の確認)
いかがでしょうか?家づくりを例にしましたが、運用(つまり住んでから)やセキュリティを考慮せずに家を建てると、後々大変になることがわかりますし、事前に対策しておく事で家に住み始めてからも使い勝手の良い、安全な家が建てられます。
実際にどう変わるのか具体例で見てみる
「最初からセキュリティを考える」とは、実際の開発現場ではどう変わるのでしょうか。例えばフリマアプリを作る場合を例に見ていきます。
■ 従来の開発方法の場合
【Step1:機能を作る】
- 商品の出品機能、購入手続きの流れ、メッセージのやり取り、決済の仕組み
【Step2:デザインを整える】
- 見やすい商品一覧、使いやすい検索機能、おしゃれな画面デザイン
【Step3:セキュリティチェック】
ここで問題発覚!例えば、「個人情報が簡単に見える!」、「不正ログインを防げない!」などです。
結果として、「設計からやり直し」、「リリースが3ヶ月遅れ」、「開発コストが2倍」にといったリスクが発生します。
■ DevSecOpsの場合
【Step1:企画・設計段階】
機能とセキュリティを同時に検討します。
例えば機能として「商品出品」、セキュリティとして「投稿者の本人確認方法」、「画像の個人情報チェック」、「不適切商品の自動検知」などです。
【Step2:開発中】
例えばプログラムコードの自動チェックツールを活用して、即修正・開発ができるようにします。
【Step3:テスト段階】
セキュリティテストや負荷テスト、ユーザービリティテストなどを同時進行し、小さな問題を早期発見できるようにします。
以上のように初めから取り組むことで、予定通りのリリース、 安全性が高い、 手戻りが少ないといったシステム開発が実現できます。
■ 実際のサービスではどうなるかフリマアプリの機能別に見てみます。
1. ユーザー登録時
【従来】
まず機能を作る。後からセキュリティ対策。
【DevSecOps】
最初から本人確認を組み込む。なりすまし対策を実装。不正登録の防止策を導入。
2. 商品出品時
【従来】
写真投稿機能を作る。後から個人情報チェック。
【DevSecOps】
画像の自動スクリーニング。位置情報の自動削除。禁止商品の自動検知。
3. メッセージのやり取り
【従来】
チャット機能を作る。後からフィルター追加。
【DevSecOps】
暗号化通信を標準実装。不適切表現の自動検知。なりすまし対策を組み込み。
■ 開発チームの体制も変化します。
【従来の開発チーム】
開発チーム → セキュリティチーム → 運用チーム(バトンリレー方式)
【DevSecOpsの開発チーム】
開発チーム←→セキュリティチーム←→運用チーム(チームワーク方式)
従来のように上流から下流へ流れるのではなく、常にチームワークを取り合い作業を進めていくのです。
■ ユーザーにとってのメリット
ユーザーにとっては、個人情報漏洩や不正利用のリスクが低減する為、安心して使えるアプリになります。開発遅延も起こしづらいので便利な新機能が早く使える可能性が出てきます。また、不具合の早期発見や修正が可能となり、安定したサービス提供がされるようになるのです。
DevSecOpsの導入で開発の手戻りが減少しセキュリティ品質が向上、更にサービスの信頼性が増加します。結果として、私たちユーザーが「安心」で「使いやすい」サービスを早く利用できるようになります。
私たちの生活にどう影響するのか
ここまで「DevSecOps」と「セキュリティバイデザイン」について見てきましたが、これらが私たちの日常生活にどんな影響をもたらすのでしょうか。
スマートフォンのアプリやネットショッピング、オンラインバンキングなど、私たちが日常的に使うデジタルサービスは、開発段階から安全性が組み込まれることで、より安心して利用できるようになっています。例えば、アプリの新機能がリリースされる際も、セキュリティチェックが自動的に行われているため、個人情報の漏洩リスクを最小限に抑えることができます。また、サービスの開発者たちは、私たちユーザーの声に素早く反応し、セキュリティの問題にも迅速に対応できるようになりました。
さらに、これらの取り組みは私たちの目には見えにくいものの、デジタル社会の信頼性向上に大きく貢献しています。例えば、電子マネーでの支払いやオンライン診療といった新しいサービスも、セキュリティが確保されているからこそ、安心して利用できるのです。このように、DevSecOpsとセキュリティバイデザインの考え方は、私たちが普段何気なく使っているデジタルサービスの安全性を支える重要な土台となっており、より便利で安全なデジタル社会の実現に貢献しているのです。
まとめ
「早めの対策」が、これからのセキュリティの常識です。スマートフォンを買ったらすぐにパスコードを設定するように、システム開発でも「後付け」ではなく「最初から」セキュリティを組み込む時代になってきました。私たちユーザーにとって、DevSecOpsやセキュリティバイデザインが広がることは、とても良いニュースです。なぜなら、より安全なサービスを、待たされることなく使えるようになるからです。例えば、新機能のリリースの度にセキュリティチェックで数週間待たされる...といった状況が減り、安全性が確認された機能をスピーディーに利用できるようになります。
企業にとっても、開発の後戻りが減り、信頼される製品・サービスを効率的に提供できるメリットがあります。セキュリティ事故による信頼失墜や対応コストを考えれば、最初からセキュリティに投資する方が賢明な選択といえるでしょう。今後は、AIやIoTの発展により、私たちの生活はますますデジタル化が進んでいきます。その中で、DevSecOpsやセキュリティバイデザインの考え方は、より重要性を増していくはずです。
私たち利用者も、プライバシーポリシーの分かりやすさや、二段階認証の有無など、セキュリティを重視しているかどうかを意識してサービスを選ぶことが大切です。
安全なデジタル社会は、開発者と利用者が共に意識を高めることで実現します。本コラムで紹介したDevSecOpsとセキュリティバイデザインの広がりが、その大きな一歩となることを願っています。