今日のアプリケーション経済において、ソフトウェア開発への需要はますます高まっています。ソフトウェアとアプリケーションはフロントオフィス業務にまで浸透し、納期遅延は収益損失につながり、機能不全は顧客喪失を招く可能性があります。企業はスピードへのニーズに応えるため、DevOpsを積極的に導入し、これまで別々だった開発チームと運用チームを統合しています。
同時に、脆弱なソフトウェアやアプリケーション関連のデータ漏洩に関するニュースが絶えず報じられる中、DevSecOpsへの注目が高まっています。DevSecOpsは、ソフトウェアの開発とテストにセキュリティを統合することで、より迅速で高品質、かつ安全な成果を実現します。
従来、開発者の役割はコードが機能することを保証することでした。この慣習は、開発、運用、セキュリティチーム間の分断によってさらに強化されていました。アプリケーションが納期通りに納品され、正常に動作すれば、開発者の仕事は完了したとみなされていたのです。セキュリティチームはセキュリティを確保し、運用チームはシステムを安定稼働させる役割を担っていました。
しかし、DevOpsへの移行により、開発者はコードの品質とセキュリティの両方を確保する上で、より積極的な役割を担う必要に迫られています。これは、これまでコードのセキュリティをせいぜい後回しにしてきた開発者にとって、新たな課題を生み出しています。
正式な教育の欠点
DevOps、そしてますます普及しつつあるDevSecOpsへの移行は、今日のITおよび開発専門家向けの正式な教育が、企業の実践に沿って進化していないことを浮き彫りにしました。VeracodeとDevOps.comが委託した最近の調査によると、https://info.veracode.com/analyst-report-devsecops-global-skill-survey.html調査によると、DevOps専門家の65%がIT業界に入る際にDevOpsの知識を持つことが非常に重要だと考えている一方で、回答者の4分の3は、DevSecOpsで成功するために必要なトレーニングを正規の教育課程で受けていないと回答しています。
多くの大学のコンピュータサイエンスコースでは、コードのセキュリティ上の欠陥を軽減する方法に関する実践的な指導が現状では提供されていません。これは、新しいDevSecOps開発者の役割において不可欠な要素です。回答者の約80%が学士号または修士号を取得しているにもかかわらず、70%がセキュリティ教育が現在の職務要件を満たしていないと回答しています。
大学が現在の理論中心の教育に加え、より実践的な学習をカリキュラムに取り入れるべきかどうかという議論はありますが、短期的には別の解決策が必要です。
開発者やソフトウェアエンジニアに対し、より安全なコードの構築方法を教えることに正式な教育機関が重点を置くようになるまでは、DevOpsを導入する組織が、開発者の脆弱性コードの特定と対策に関するスキルを向上させる必要があるでしょう。
開発チームのスキルアップ
私自身、開発チームを管理してこのセキュリティスキルギャップを解消してきた経験から、特効薬はないことを痛感しています。技術的なトレーニング要件はもちろんのこと、開発チームマネージャーは、既存の組織文化の中でセキュリティを優先事項とすることが、おそらく最大の障壁であることを理解しています。
では、開発チームマネージャーは、開発者のコーディングのセキュリティスキルを向上させ、組織文化の反発を避けるために、どのような対策を講じれば良いのでしょうか?私が最も効果的だと感じた3つのアプローチをご紹介します。
サードパーティによるトレーニング
回答者の3分の1が、教室での研修またはeラーニングによるサードパーティのトレーニングを、新しいスキルを習得する最も効果的な方法として挙げています。しかし残念ながら、調査対象者のうち、実際にこの機会を得たのはわずか4%でした。
教室での研修は間違いなく高額なため、多くの組織がeラーニングを選択していますが、投資を行う組織は最低限のROIを確保するためのプロセスを構築することが重要です。
セキュアコーディングのような重要なスキルについては、組織は新入社員向けの必須コースを導入し、チーム全体の最低限の能力基準を設定すべきです。年間目標を設定することで、従業員が特定のコースを受講することを確実にすることもできます。
DevOpsパイプラインへの静的スキャンの統合
開発者が安全なコードを作成していることを保証する最善の方法は、Microsoft Wordの赤い波線が10年以上もの間、タイプミスを防ぐのに役立ってきたように、開発者が書いているコードに対して常にフィードバックを提供することです。
DevOpsパイプラインに静的スキャンを統合することで、開発者は脆弱性のあるコードをその場で修正できるようになり、脆弱性が発見されてから後から修正しなければならない長大なセキュリティレポートを作成する必要がなくなります。これは開発者がミスを発見し、その場で修正するのに役立つだけでなく、開発マネージャーが納期を守るか、セキュリティ上の問題があるアプリケーションやアップデートをリリースするかという判断を迫られる事態を回避するのにも役立ちます。
セキュリティチャンピオンの育成
すべての開発者がセキュリティ専門家である必要はありません。しかし、セキュリティに関する知識を持ち、開発者の作業方法を理解している人物にアクセスできる環境は必要です。少数のセキュリティ専門家チームが、特定の開発者にセキュアコーディングの基礎をトレーニングすることで、そのスキルを活用し、セキュリティチャンピオンを育成してチーム全体にセキュリティ意識を高めることができます。
このモデルでは、チームは日常的なセキュアな設計やコーディングに関するアドバイスをセキュリティチャンピオンに求めます。セキュリティチャンピオンは、スクラムチームがソフトウェア開発ライフサイクル(SDLC)においてセキュリティを優先するよう促し、特に困難なセキュリティ問題への対応を支援します。セキュリティチャンピオンは、スキル不足によって脆弱性が見過ごされることを防ぎ、開発者が自分たちの言葉を理解し、課題に共感してくれる同僚からセキュリティに関するアドバイスを受けられるようにします。
今こそ行動を起こすべき時
DevOpsおよびDevSecOpsの実践を採用する組織が増えるにつれ、従来のセキュリティプロセスはもはや時代遅れとみなされるようになるでしょう。サイバー犯罪者が脆弱なアプリケーションやソフトウェアを悪用する脅威が存在する以上、組織は開発手法の変化に伴う新たな要件を満たすために、開発者のスキルアップに今すぐ取り組む必要があります。どのようなセキュリティスキルアップのアプローチを取るにせよ、その必要性は明白です。
執筆者:マリア・ラフリン