開発者とサイバーセキュリティが対立する時

巧妙なコードの作成を好む開発者もいれば、特殊なコードベースや非公式のサービスを利用する開発者もいます。これらすべてが、ビジネスとユーザーを保護しようとするサイバーセキュリティチームとの絶え間ない攻防を生み出しています。ここでは、機能とセキュリティのバランスを適切に保ち、両者が比較的平和に共存するための方法をご紹介します。

開発者がWindowsやLinuxのアプリケーション、モバイルアプリ、クラウドサービス、チャットボット、Dockerユーティリティ、あるいはプログレッシブウェブアプリ(PWA)のどれを構築しているかにかかわらず、多くの場合、時には知らず知らずのうちに大きなリスクが冒されています。

サイバーセキュリティチームは、アプリケーションやそれが接触するあらゆるサービスにたった一つの弱点があるだけで、ビジネスや顧客がハッカーやその自動化ツールの軍勢に対して脆弱になる可能性があることを熟知しています。

コーディングチームの経歴に関係なく、リスクは生じます。スター級の開発者から大学を卒業したばかりの新人まで、ポート参照を一つ見落としたり、内部ルールを一つ無視したり、問題を解決するために疑わしいコード片を一つ借用したりするだけで、ビジネスに甚大な被害をもたらす可能性があります。

コーディングの仲間になろう

この方程式の両側がプレッシャーにさらされています。ビジネスリーダーは、開発者がアプリやツールを量産し、すぐにでも利用または販売することを望んでいます。一方で、サイバーセキュリティチームは、ファイアウォールの外側に潜む闇の軍勢から全員を守りつつ、可能な限り目立たず、摩擦のない存在であることを求められています。

成功の鍵は、メッセージの明確化と、各プロジェクトに対する明確に定義された計画です。セキュリティは、あらゆるプロジェクトが経る品質チェックリストにおいて、対等な役割を果たす必要があります。多くの開発現場では、モジュール化された目標ベースのマイルストーンがプロジェクトのライフサイクルを特徴づけるDevOpsモデルへと移行しています。

アジャイル開発と並行することで、プロジェクトを迅速に進めながらも、品質、目標達成、機能管理のための構造的に定義されたプロセスを維持できます。そのリストにセキュリティを加えることで、企業はすべてのセキュリティ要件を満たし、整合性がテストされ、業界や政府の基準に準拠したアプリ開発を進めることができます。

これを実現するには、セキュリティ責任者と開発チームの両方が共通認識を持ち、「品質としてのセキュリティ」というメッセージを強調する必要があります。セキュリティチェックやコードの検証を組み込み、すべての開発者に脆弱性に関するトレーニングを行い、完成までの過程で定期的なチェックインを実施することで、アプリケーションの安全な成果が保証されます。

すべてのビジネスにセキュリティの達人が必要

大企業で一般的になりつつある役割が、最高デジタル/情報セキュリティ責任者(またはそれに類する役職)です。中小企業においては、適切な資格を持つ誰かがその役割を担い、セキュリティソリューション、リスク、欠陥の報告、カタログ化、管理に責任を持つ必要があります。

その人物は、開発チームをビジネスのセキュリティニーズに適合させるための理想的な中心人物となります。この人物は開発チームの一員である場合もあり、将来の問題に対する責任を負うことで、チームの取り組みをより厳格に監視するようになります。両者の間に強い絆を築くために、開発プロジェクトを立ち上げる際、チームはセキュリティチームが設定した基本ルールに従わなければなりません。

コーディングの基本ルール

セキュリティの必要性を強調し、それが無視された場合に何が起こるかを示し、ハッキングにつながるコーディング手法の主要な欠陥や軽微な欠陥を浮き彫りにするトレーニングや研修日は、開発者にリスクを認識させ、問題を明確にするのに役立ちます。

コードバウンティ(報奨金)や報酬制度は、開発者がプロジェクトのコードベース全体から欠陥を見つけ出す動機付けになります。また、企業はハッキングや欠陥、その他ハッカーがネイティブコードにアクセスする可能性のある手法を特定するためのトレーニングを全社的に提供すべきです。

これらのガイドラインと、「借用」されたコード、外部サービスの利用、その他の弱点となりやすい箇所に関する厳格なルールを組み合わせることで、あらゆる企業がより強力で安全なアプリケーションを開発できるようになります。