ローマは一日にして成らず。ソフトウェアも同じです。ソフトウェアプロジェクトが完了するまでに要する時間はさまざまで、Soltechの推定によると、一般的な所要期間は4~9か月と言われています。一方で、プロセスの多くの側面は一貫しています。非常に漠然とした要件や、Gibberish++で記述された古いコードなど、開発には多くの問題が伴います。
チームが何か月間も取り組んできたコードが漏えい、削除、または盗まれた場合、あなたの1日がどんなにひどいものになるか想像してみてください。GitHubは、開発がどれほど大変な仕事であるかということを理解しており、開発者が本当に重要なこと、つまりそれらのコードに集中して取り組めるようにしたいと考えています。GitHub Enterpriseで、コードへのアクセス権をもつユーザーとそのアクセス権で実行できる操作を制御する機能を設定することで、安全なソフトウェア開発のベストプラクティスを実施できます。
SSO
多くの企業において、安全なソフトウェア開発はログイン時から始まります。これは、Azure AD、Okta、またはOneLoginのようなアイデンティティプロバイダー(IdP)のサービスを使って社内システムにログインすることで、1日の業務を開始することを意味しています。GitHubでは、管理者がEnterpriseアカウントレベル、またはさらに細かいOrganizationレベルでSSOフローを設定できます。また、GitHub EnterpriseのSAML連携はGitHubで確立されるさまざまな構造とワークフローに対応しています。
認証の設定は最初のステップにすぎません。選択したプロバイダーによるチームの同期やSCIMプロビジョニングといった追加機能を利用して、ユーザー管理とセキュリティを向上させることができます。
社内で利用しているIdPを連携するもう1つのメリットは、そのIdPのアクセス制御とサインオンポリシーを適用できるということです。こうした機能は、GitHubの下流に影響を与えます。たとえば、Azure ADを利用することで、IPに基づく条件付きのアクセス要件や多要素認証要件を設けられます。
追加認証
IdPにてアクセス制御やポリシーの変更を行いたくない場合、GitHubに実装されている機能を使うことも可能です。
GitHubのIP許可リストを使用すると、Organizationの管理者は承認されたIP範囲のリストを設定でき、Organizationの資産へのアクセスを制限することができます。このようにして、不必要な露出を制限し、ユーザーがネットワークの特定の部分にいること、またはVPNを介して接続していることを保証できます。
GitHubが対応しているもう1つの重要なアクセス制御は2要素認証(2FA)です(2FAについての詳細は、こちらのブログ投稿をご覧ください)。2FAの設定は簡単に行え、この設定によってセキュリティ性を強化できます。重要な注意事項としては、2FAを有効にしていないOrganizationのメンバーおよびコラボレータはこのアクセス制御によってOrganizationへのアクセスができなくなります。そのため、管理者はこの設定を有効にする前にユーザーと連携することを強く推奨します。
データ損失を最小限に抑えるためのポリシー
適切な認証設定に加えて、適切な権限を定義することは、GitHub Organizationを保護するために不可欠なもう1つのステップです。GitHub Enterpriseは、EnterpriseアカウントまたはOrganizationの両レベルで設定可能なポリシーを用意しており、どれも簡単に適用できます。この設定により、管理者はデータ漏えいの可能性を最小限に抑えられます。
適切なアクセス制御の設定を行うにあたり、以下の点を確認してください。
リポジトリの作成
リポジトリのフォーク
リポジトリの可視性の変更
リポジトリの削除とリポジトリの移譲
このような、ユーザーによるポリシー設定やアクセス制御も重要ですが、開発者へのサポートを継続しながら、GitHubのセキュリティ機能を改善し続けることも重視しています。
リポジトリの作成フローにおける改善例の1つは、リポジトリ可視性のデフォルト設定です。例えば、プライベートリポジトリが必要なときに開発者が誤ってパブリックリポジトリを作成したことがあります。これは、多くの方に思い当たる節があると思います。実際、こういったミスは誰にでもありえます。現在では、SAML SSOが設定されている場合、デフォルトでプライベートリポジトリを作成するようになっています。 もちろん、ユーザーがこのデフォルト設定を変更することも可能です。
GitHubは開発プラットフォームのセキュリティが重要であることを認識しています。GitHubは、SAML 2.0プロバイダーとの連携、またはデフォルトの可視性を使用して新しいリポジトリを作成するときのユーザーフローの改善など、さまざまなユースケースに配慮し、開発者と管理者両方のエクスペリエンスを念頭に置いて、インテグレーションとワークフローをシームレスなものにすることを最優先しています。
セキュリティトレーニングの実施:意図しない情報漏えいに備える
本ブログで紹介したようなセキュリティ機能を活用することで開発環境におけるセキュリティレベルを上げることが可能ですが、システムだけで防止することは難しい点があります。
各企業において、このようなセキュリティの設定を行うだけでなく、公共の場所ではパソコンのスクリーンにカバーをして画面の閲覧ができないようにする、ソースコードを許可なく持ち出したり、外部サイトに投稿しないようにするなど、ソフトウェア開発部門のセキュリティトレーニングの実施も必要です。このようなトレーニングは、一度だけ行うのではなく、定期的に行うことで各開発者のセキュリティに対する意識を高めることができます。
GitHub Enterpriseで安全なソフトウェア開発を始める
GitHubでは、企業における安全なソフトウェア開発を進めるためのソリューションを提供しています。本ブログで紹介した機能は、GitHub Enterpriseで利用できる機能です。ご相談がある場合は、GitHubセールスチームにお問い合わせください。
また、以下の資料も参考にしてください。
オンデマンド動画
ホワイトペーパー