厳格なウイルス対策ポリシーを持つ会社で働いています。各コンピュータには、すべてのベルとホイッスルをオンにした最新のアンチウイルスが必要です。
しかし、開発者として、これは私たちに問題を与えています。
最も顕著なのは、パフォーマンスの低下です。大きなソリューションを構築することは、多くのファイルを作成、削除、移動することになる可能性があるため、アンチウイルスはそれぞれをチェックする傾向があり、処理が遅くなります。
第2に、開発者のマシンまたはCIビルドマシンのいずれかでのランダムな障害は、目立ちにくく、問題が多くなります。これは、アンチウイルスが分析のためにファイルをロックしているが、ビルドがそのファイルにアクセスしようとしているときによく発生します。多くのファイルが移動されるため、これは非常に予測不可能で非決定性になります。この問題が原因で、ビルドの5-10%だけが失敗する場合があります。
推奨される解決策は、ビルド実行可能ファイルとビルドフォルダーをウイルス対策分析から除外することです。しかし、これまでのところ、セキュリティ部門にそれを実行するように説得することに成功していません。
私の質問は次のとおりです。開発者とビルドマシンのウイルスリスクを最小限に抑えるためのベストプラクティスは何ですか?その質問の範囲が広すぎる場合、ウイルス対策でビルドフォルダーを除外することで考えられるセキュリティリスクは何ですか?
これは一般的な問題であり、さまざまな開発チームがこれをさまざまな方法で解決します。
ベストプラクティスは、リスクを軽減することですappropriately。それは質問を回避する方法のように聞こえますが、このような場合、それは問題に取り組む唯一の実際の方法です。
「適切」とは何ですか?
脅威は次のとおりです。
つまり、ビジネスにとって重要度の低い開発マシン(ショットガンで撃つことができ、ハードウェアの交換コスト以外は気にしない)を、最も重要な価値を持つものから保護するために、ビジネスでは、ある程度の制御/保護/防御が必要です。ある種のリスク軽減。
つまり、どのような緩和策を講じても、ある程度の許容差の定義内にある開発者に影響を与え、開発者が生産性目標を達成する能力をサポートする必要があります。
これらの脅威を考えると、アンチウイルスはどのように適合するのですか?
ウイルス対策は、マシンが侵害されたときに自動的に応答するのに役立ちます。 「ホイッスルとベル」がオンになるほど、対応できる妥協の種類が増えます。 AV保護を減らすと、開発マシンと「王冠」の間の保護が減ります。
リスク#1を軽減する現在のAVレベルの保護がリスク#2を増加させている場合、リスク#2を許容範囲に戻すために保護レベルを下げることができるように、リスク#1を新しい方法で削減することから始める必要があります。
開発環境でリスク#1を削減するには、次のようにします。
開発用のマシンがonlyであり、個人的な活動ではないほど、そのマシンが危険にさらされる可能性は低くなります。開発者は、コーディング以外にも、開発マシンで他の多くのことをしたいと思います。音楽、ビデオ、電子メール、ソーシャルメディア、ブラウジング、ゲーム、好きなサイトで見つけたランダムツールのインストールです。それらがコーディングマシンまたはコーディング環境から離れて実行できる場合は、開発マシンが危険にさらされる可能性を低くします。次に、AV保護レベルをより許容できるレベルに下げることができます。
あるいは、コーディング活動をマシン自体から分離することもできます。これは通常、保護されたリモート環境にコーディング環境があることによって行われます。そうすることで、開発マシンをマルウェアでいっぱいにすることができ、本番環境のコードは影響を受けません。このように、極端な例では、開発マシンにAVがまったく存在しない可能性があります。リモートのコーディング環境でも、侵害の可能性がはるかに低いため、同様に保護が低下する可能性があります。
ただし、開発者にマシンでやりたいことを実行させたい場合はandコードおよび必要なコードをCIプロセスにアップロードします。リスクを維持しながら、保護メカニズムによって導入される遅延やバグの許容度を上げることが唯一の方法です。許容レベルで#1。
特定の設定
ラップトップのような動的ファイルシステム環境では、アクセスされたとき(CIステップで移動または実行されたとき)に各ファイルをチェックすることが重要です。環境がより静的で予測可能であれば、オンアクセススキャンをオフにできます。
AVがファイルをスキャンできるようにするCIサーバーにファイルアップロード領域があり、CIプロセスはそれを残りのCIプロセスに渡す必要があります。または、コンパイル済みのバイナリではなくコードを渡す場合、アクセス時に各ファイルでAVを実行する必要はありませんが、スキャンをスケジュールできます。ただし、バイナリはCIで実行する前にスキャンする必要があります。
ファイルまたはファイルの場所を除外するということは、マルウェアの死角を意図的に設定して永久に隠し、リスク#1を許容できないほど増加させることを意味します。代わりに、環境の安全性の予測可能性を高めれば、オンアクセス、オンデマンド、および動的保護を自由に減らすことができます。
リスク#1の許容範囲の拡大についてはどうですか?
完全を期すために、これについても取り上げます。
開発者は、リスク#1の許容レベルを制御できず、完全に管理者の手に委ねられます。ただし、許容レベルについて質問したり、挑戦したりする必要があります。マシンが危険にさらされていることによってビジネスに対して正直かつ正確に評価されたリスクは、他のすべての関連リスクを引き起こします。そのため、それを正しいレベルにすることが重要です。 「悪いことは起こらない」ことが誰にも役に立たず、会社の時間とお金を浪費することを期待して、緩和/保護を最高レベルで投げるだけです。
開発者がセキュリティ部門にニーズをどのように表現できるか