リモートチームのセキュリティのベストプラクティスのガイド

公開: 2022-03-11

私が会ったことのないクライアントのためにリモートで仕事をしていると友達に話すときはいつでも、彼らは私に尋ねます:あなたがリモートで仕事をするのは安全ですか? 私の答えは、「はい…しかし、リモートワーカーのセキュリティポリシーをどれだけうまく作成できるかによって異なります」とはっきりと答えています。

私はパキスタンに住んでおり、地球の反対側にいるクライアントにとって価値のあるコードを作成しています。 私のクライアントは私の手を振ったり、私がどこで働いているのか見たことがありません。 それでも、クライアントの秘密とコードが保護されたままであることを確認することが期待されています。 チームメンバーがあなたの顔や声に慣れていない世界で、セキュリティ違反をどのように防止しますか? 答えは次のとおりです。非常に注意することによって。

リモートワーカーのセキュリティポリシーヘッダー

少し前までは、アプリケーションのパフォーマンスとセキュリティを保証するには、プライベートデータセンターでアプリケーションを実行する必要があると考えていました。 その後、クラウドが登場し、部屋にサーバー群を維持することなく、スケーラブルなオンデマンドプラットフォームでアプリケーションを実行することによるコストとパフォーマンスのメリットを受け入れました。

よく知られている秘密を教えてください。

雲はありません。
それはただの誰かのコンピュータです。

現在、 Uber1Stripe2などの企業は、PCIコンプライアンスなどの厳格なセキュリティ基準を遵守しながら、リアルタイムの顧客位置情報、クレジットカード、および支払いをクラウドプロバイダーのサーバーに保存して処理しています。 彼らは、本番データが安全に保たれることを保証する厳格なポリシーを採用することによってこれを行います。

企業がプライベートデータセンターの外で実行しているにもかかわらず、本番環境全体が安全であることを保証できれば、リモート開発チームを使用して開発のセキュリティを確実に確保できます。 結局のところ、企業全体が完全にリモートで実行できます。 Toptalはリモートのみの会社であり、私たちは採用しています。

「セキュリティ」とは何ですか?「セキュリティを確保する」にはどうすればよいですか

この記事全体を通して、私が「セキュリティ」について話すとき、私は情報セキュリティを意味します。

「情報セキュリティ」という用語は、情報および情報システムを不正アクセス、使用、開示、中断、変更、または破壊から保護することを意味します。 –44合衆国法典§3542

完璧なセキュリティというものはありませんが、「安全であること」とは、情報セキュリティを強化するための合理的な措置を講じたことを意味します。

具体的には、「私の職場環境は安全です」とは、データ、コード、またはその他の機密情報を保護するために合理的な措置を講じ、その完全性を確保したことを意味します。 また、機密情報システムにアクセスするための特権が、この情報を所有する組織およびこれらのシステムの目標に悪影響を与える方法で、自分自身または許可されていない個人によって使用されないようにするための措置を講じました。

リモートチームは、集中型チームよりもはるかに大きな攻撃対象領域を持っています。 ファイアウォールや会社のワークステーションの背後にある機密情報を物理的にロックダウンできる一元化されたチームとは異なり、リモートワーカーとして、自分のデバイス(BYOD)を持参することをお勧めします。 さらに、ほとんどの通信はオンラインで行われるため、ソーシャルエンジニアリングや個人情報の盗難の影響をはるかに受けやすくなります。 ただし、適切な一連のポリシーを設定することで、侵害のリスクを確実に最小限に抑えることができます。

セキュリティのための特効薬はありません。 多くの場合、セキュリティの色合いと利便性の間にはトレードオフがあり、セキュリティプラクティスをどこまで実行するかはあなた次第ですが、チームは最も弱いメンバーと同じくらい安全であることを忘れないでください。 いくつかの一般的なセキュリティ攻撃、防御戦略を見て、最後にサンプルのリモートセキュリティワーカーポリシーについて説明しましょう。

敵対的攻撃の最も一般的な3つのタイプ

何に直面するのかわからなければ、準備はできていません。 敵は攻撃に多くの戦略を使用できますが、ほとんどは3つのカテゴリに分類されます。 このリストは網羅的ではありませんが、悪意のあるハッカーが使用する可能性のある3つの一般的なタイプの攻撃ベクトルです。

  • ソーシャルエンジニアリング
  • フィッシング
  • マルウェア感染

リモートワーカーのセキュリティポリシーに対する脅威

ソーシャルエンジニアリング

また、人間のハッキングと見なされるソーシャルエンジニアリングは、人々を操作して、彼らの最善の利益とはならない方法で行動することです。 これには、機密情報の漏えいが含まれる場合があります。

ソーシャルエンジニアリング攻撃は、あなたに良い習慣を回避させようとしてあなたの思いやりを悪用しようとするか、あなたが従わない場合にあなたに対する否定的な行動を恐れることによってあなたにベストプラクティスを回避させる緊急性の感覚を作り出すことができます。

ソーシャルエンジニアリングの例は次のとおりです。

  • 女性が携帯電話会社に電話をかけ、泣いている赤ちゃんのYouTubeクリップがバックグラウンドで再生されている間、サポートエージェントに誰かのアカウントを変更するように話しかけます。
  • 攻撃者はCFOの電子メールアドレスを介してCEOに電子メールを送信し、180万ドルの資金移動を承認します。

フィッシング

フィッシングは、資格情報を盗むための最も一般的な方法です。 Facebookのように見えるWebサイトを想像してみてください。そこでは、本物だと思ってログインします。 フィッシングとは、攻撃者が正当に見えるがそうではないWebサイトを作成することです。

偽のFacebookを見つけることができますか? ヒント:Facebook.comにないものです。

ハッカーがインターネットを汚染し、FacebookドメインにWebサイトを挿入することがあります。これは中間者攻撃と呼ばれますが、心配しないでください。ブラウザがこれらについて警告することがあります。

スピアフィッシングは、フィッシングページがあなたやあなたの組織のためにカスタムメイドされる可能性があるフィッシングの別の形式です。 これにより、特にソーシャルエンジニアリングと組み合わせると、それに陥る可能性が高くなります。

話をしましょう。私が学校に通っていたとき、最近フィッシングについて学んだ人が偽のFacebook Webサイトを作成し、コンピューターラボのホームページを彼の作成に変更しました。 彼が次に知ったのは、この人は300のFacebookアカウントのパスワードを持っていたということです。 この攻撃は特に私の学校を標的にしており、スピアフィッシング攻撃の成功であることが判明しました。

そして、誰かがアドレスバーをわざわざ調べていたら、これらすべてのパスワードは安全であっただろうと考えること。

マルウェア感染

そこには何百もの異なるタイプのマルウェアがあります。 無害または単に迷惑なものもありますが、非常に危険なものもあります。 注意すべき最も重要な種類のマルウェアは次のとおりです。

  • スパイウェア:キーストローク、画面、オーディオ、およびビデオをサイレントにインストールして記録します。
  • リモート管理ツール(RAT):コンピューターを完全に制御できます。
  • ランサムウェア:すべての重要なファイルを暗号化し、復号化キーの料金を支払います。

意図的にカスタムマルウェアをコンピューターにインストールさせるために、攻撃者は通常、ソーシャルエンジニアリングを使用します。

  • 攻撃者は、従業員のログイン資格情報を収集するために、会社の駐車場周辺でUSBドライブを「紛失」しました。
  • 履歴書にコーヒーをこぼした男性は、面接を受けたため、受付係に何かのコピーを印刷するように依頼しました。その結果、会社のコンピューターがUSBの悪意のあるペイロードに感染しました。 (人間のハッキングの芸術からの例)。

今必要な7つのサイバー防衛戦略

最も一般的な敵対攻撃の方法について説明しましたが、どうすればそれらから安全を保つことができますか?

戦略1:適切なパスワード管理

私はパスワードが嫌いです。 そこで、私はそれを言いました。 ユーザー名とパスワードの組み合わせは、存在するユーザー認証の最も弱い形式であると確信しています。 パスワードは、存在する最悪の疑似乱数ジェネレーターである人間の心によって生成された短い文字列にすぎません。

秘密の言葉が必要ですよね? 私のミドルネームと生年月日はどうでしょう、きっと誰もそれを推測することはできません! –これまでのすべての人間

さらに悪いことに、便宜上、人々はパスワードを再利用する傾向があります。 これにより、誰かが銀行のログインと自宅のWiFiに同じパスワードを使用できるようになりますが、パスワードはお気に入りのバンドの名前で終わる可能性が高くなります。 ホラー!

数年前、私は次のことを行うことを決心しました。

  1. パスワードマネージャーを使用する
  2. パスワードの代わりに強力なパスフレーズを使用する

パスワードマネージャーを使用する

セキュリティと利便性の間にトレードオフがあると言ったとき、それはここでは当てはまりません。 安全でパスワードマネージャーを使用しているか、そうでないかのどちらかです。 間にはありません。 パスワードのセキュリティを確保するには、パスワードマネージャーを使用する必要があります。 説明します。

  1. すべてのパスワードは一意ですか?
  2. 一部のパスワードを発見した場合、残りのパスワードは安全に保たれますか?
  3. すべてのパスワードは、少なくとも32ビットのエントロピーを使用して作成されましたか?
  4. パスワードは暗号化された形式でのみ保存されていますか?
  5. サインアップ時に使用したすべてのパスワードを完全に覚えていますか?
  6. このウェブサイトでのパスワード漏洩に前向きになりますか?

上記の質問のいずれかに「いいえ」と答えた場合は、パスワードマネージャーが必要です。 優れたパスワードマネージャーは、ランダムにパスワードを生成し、安全に保存します。 パスワードマネージャーを使用している限り、どのパスワードマネージャーを使用してもかまいません。

私はLastPassを使用しています。なぜなら、彼らのインシデントレポートの透明性、友人との資格情報の共有、いつでも共有を取り消す機能、そしてモバイル同期が彼らの無料プランの一部であるという事実が気に入っているからです。

私はLastPassを何年も使用していますが、彼らのセキュリティ上の課題から、私はセキュリティを意識しているユーザーの上位1%に入っていることがわかります。

パスワードの代わりに強力なパスフレーズ

tl; dr:これを使用してパスフレーズを生成します。 12語で十分です。

上記のパスワードマネージャーを使用するように依頼したので、これは直感に反するように聞こえるかもしれませんが、パスワードが避けられない場合があります。パスワードマネージャーの強力なマスターパスワードが必要になるか、コンピューターにログインします。 このような場合は、エントロピーの高い安全で記憶に残るパスフレーズを使用してください。

エントロピーと言えば、それについて少し話しましょう。 私が話すこの「エントロピー」とは何ですか?

エントロピーは、ある意味で、その言語のテキストの各文字に対して平均してどれだけの情報が生成されるかを測定する統計パラメータです。 言語が最も効率的な方法で2桁(0または1)に変換される場合、エントロピーHは、元の言語の1文字あたりに必要な2桁の平均数です。 –クロード・シャノン

その引用が消化しづらかったとしても大丈夫です。 基本的に、セットからランダムに選択されたパスワードのエントロピーは、基数2で表されたセット内の要素の総数です。例:パスワードが4文字の場合、小文字のアルファベットのみを含めることができます。ランダムに生成されたパスワードは19ビットになります。理由は次のとおりです。

  1. 小文字のアルファベットには26個の要素があります
  2. これらの文字で構成される4文字の文字列は、 26^4 =456,976です。
  3. 2進数で表される456,976は、 log(456,976) / log(2) = 19ビット(最も近いビットに丸められます)です。

エントロピーの高いパスワードの問題は、 c05f$KVB#*6yのように覚えにくいパスワードになることです。 それらをより思い出深いものにするために、単一の文字を使用する代わりに、代わりに単語全体を使用した場合はどうなりますか? そして千の言葉の辞書を使いましたか? 突然、アルファベットが1000要素の長さになり、11文字の場合と同じエントロピーを7語で実現できます。

現在の違いは、パスワードを使用する代わりに、長さがはるかに長いパスフレーズを使用していることです。

次のXKCDコミックは、この概念を最もよく説明しています。

パスワードとパスフレーズ

安全なランダムパスフレーズを生成する最も簡単な方法は、ここにアクセスすることです。

戦略2:多要素認証(MFA)を使用する

二要素認証(2FA)または2段階認証は、すべて同じものの名前です。 これは少し慣れる必要があることの1つですが、2FAのセキュリティ上の利点はコストをはるかに上回り、個人的にアカウント違反から2回節約できました。

MFAの背後にある考え方は単純です。 あなたを認証するために使用できるものは3つあります。

  1. あなたが知っていること(秘密)
  2. あなたが持っているもの(トークン)
  3. あなたが何か(あなたの生物学)

2つを使用する方が、1つだけを使用するよりも安全です。

ほとんどのWebサイトは、パスワードを要求することで認証の最初の要素をサポートしていますが、2番目の要素もサポートするサービスが増えています。 3番目の要素は、特殊なハードウェアを必要とするため、通常はWebサービスによって除外されます。 お使いの携帯電話の指紋センサーのように。

チームの管理者である場合は、ユーザーが2FAを設定するための必須ポリシーを作成することを検討してください。 これにより、パスワードの侵害によってアカウントが侵害されることはありません。

「あなたが持っているもの」には2つの人気のある形式があります。

  1. あなたの電話
  2. U2Fキー

2FAに携帯電話を使用する

これをすぐに言いたいのですが、2FAにはSMSコードを使用しないでください。 悪意のある人々があなたの電話番号を乗っ取るのは一般的な習慣になりつつあります。 話はほとんどいつも同じです:誰かがあなたの電話番号を別のキャリアに移植するようにキャリアをソーシャルエンジニアリングしました。 私はこの攻撃の犠牲になった人を少なくとも1人知っています。

代わりに、「Google認証システム」方式とも呼ばれる時間ベースのワンタイムパスワード(TOTP)を使用してください。 ただし、Google Authenticatorを使用する代わりに、クラウド上の2FAトークンを暗号化してバックアップするAuthyを使用することをお勧めします。 その後、デバイスを変更した場合でも2FAトークンを復元できます。実際、複数のデバイスで同じトークンを使用できます。 とても便利です。

2FAのU2Fキーの使用

これは、最も単純で最も強力な2FA方式です。 私は自分の携帯電話とコンピューターで使用できるYubikeyNeoを持っています。 身元を証明するために、ハードウェアトークンを接続してボタンを押すだけです。 私のトークンは一意であり、物理的なトークンです。 キーホルダーや財布に入れて持ち運べます。

戦略3:絶え間ない警戒

自分がどれほど安全であると信じているかにかかわらず、健康的な疑いは良いことです。 いつもと違うことをするように言われる人には注意してください。 パスワードをリセットするように求めるテキストメッセージを誰かから受け取りましたか? ちょっと待って、彼らとビデオ通話に飛び乗ってください。 彼らに彼らの身元を証明するように頼みなさい。 誰もあなたが用心深いことを責めることはできません。

彼らが本当にあなたを捕まえようとしているのなら、それはパラノイアではありません。 –ハロルド・フィンチ、関心のある人

彼らは本当にあなたを手に入れるために出ています。 悪意のあるユーザーがやる意志を除けば、やる理由がない場合もあります。

私の友人はかつて、古い知人から、Facebookで「信頼できる連絡先」になりたいかどうかを尋ねるメッセージを受け取りました。 私の友人は同意し、電話で受け取るコードで返信するように求められました。これは私の友人がすぐに与えたものです…そしてそれが私の友人が自分のGmailアカウントにリセットトークンを与えるようにソーシャルエンジニアリングされた方法です。 私の友人が最初から警戒していたら、彼女はメールを失うことはなかっただろう。

戦略4:最小特権の原則に従ったシステムの設計

最小特権の原則では、コンピューティング環境の特定の抽象化レイヤーで、すべてのモジュール(サブジェクトに応じて、プロセス、ユーザー、プログラムなど)が必要な情報とリソースのみにアクセスできる必要があります。その正当な目的のために。 –ウィキペディア

ユーザー、アプリケーション、またはサービスが特定の特権を必要としない場合は、それらに与えないでください。 この原則から多くのルールを導き出すことができますが、セキュリティポリシーに関する次のセクションのためにそれらを保存します。

話をしましょう。私はかつて、ユーザー専用に生成されたアドレスでユーザーからのビットコイン支払いを受け入れ、中央の安全なストレージアドレスに転送するアプリケーションを設計していました。 ビットコインの仕組みに慣れていない場合は、簡単な説明を次に示します。ビットコインを受け取るには公開鍵(アカウント番号など)と、ビットコインを使用するための対応する秘密鍵(アカウントピンなど)が必要です。 ビットコインの口座番号とピンは暗号でリンクされており、変更することはできません。

このシステムを設計するためのいくつかのオプションがありましたが、少し長いルートを取ることにしました。 ユーザーに支払いを促すために、アプリケーションは秘密鍵にアクセスする必要がないと判断しました。 そこで、ビットコインの支払いを受け取って転送する1つの大きなシステムを設計する代わりに、2つのシステムを作成しました。

  1. 受信システム:これはユーザーからビットコインを受信し、パブリックインターネットでホストされていました。 アドレスの公開鍵のみが含まれていました。
  2. 転送システム:これは完全に独立したロックダウンされたシステムであり、その唯一の仕事は、ビットコインネットワークでアドレス上のトランザクションを監視し、それらを安全なアドレスに転送することでした。 アドレスの公開鍵と秘密鍵の両方が含まれていました。

しばらくして、アプリのメンテナンスをやめた後、公共の受信システムが侵害されました。 私はすぐにシャットダウンしましたが、公開システムに秘密鍵がまったく含まれていなかったため、攻撃者はビットコインを盗むことができませんでした。

戦略5:常識的なベストプラクティスを使用する

いくつかの慣行は説明を必要としません。 あなたはおそらくそれらが重要であることを知っているでしょう、しかし私は(私を含む)多くの人々がいくつかのスイッチを入れるのを忘れていることに常に驚いています。 このチェックリストはここに残しておきます。

  1. ファイアウォールをオンにします
  2. ディスクを暗号化する
  3. 暗号化されたバックアップを有効にする
  4. SSHキーを使用する
  5. 安全なインターネット接続を使用する

ファイアウォールをオンにします

ファイアウォールは、一連のルールに基づいて、コンピューターとの間のネットワークトラフィックを制御します。 これは、新しいプログラムがネットワークにアクセスすることを許可するかどうかを明示的に尋ねることによって機能し、防御の最前線です。

オペレーティングシステムにはファイアウォールが組み込まれている可能性があります。ファイアウォールがオンになっていることを確認してください。

ディスクを暗号化する

フルディスク暗号化は、パスワードなしでディスク全体のコンテンツを役に立たなくするこの魔法の機能です。 ノートパソコンを紛失したり盗まれたりした場合でも、誰もあなたのデータにアクセスできないので安心できます。 これを有効にするのは、MacでFileVaultをオンにするのと同じくらい簡単です。

最近の携帯電話でも、デフォルトでフルディスク暗号化が有効になっています。

バックアップを暗号化する

ハードウェアに障害が発生しました。これは事実です。 ある日、マシンが故障したり、ウイルスがPCに感染したり、(震えながら)ランサムウェアウイルスがPCを乗っ取ったりします。 しかし、実用的な人として、あなたはおそらくすでにバックアップフローの設定を持っているでしょう、私は確信しています…そうではありませんか?

ただし、バックアップを使用する場合でも、警戒を怠らないようにする必要があります。 バックアップが紛失または盗難にあった場合でも、委託されたデータの安全性を保護するために合理的な措置を講じたので安心できるように、バックアップが暗号化されていることを確認してください。

Macを使用している場合、MacのTimeMachineアプリはバックアップを自動的に暗号化します。

SSHキーを使用する

この記事から何かを取り上げる場合は、パスワードを使用してマシンにSSH接続するのをやめてください。 パスワードを共有することは困難であり、パスワードが漏洩した場合、マシン全体が危険にさらされます。 代わりに、 ssh-keygenを実行するだけでSSHキーを作成します。

リモートマシンにログインするには、ローカルの~/.ssh/id_rsa.pubの内容をリモートマシンの~/.ssh/authorized_keysにコピーするだけです。 リモートマシンでSSHサービスを再起動する必要があるかもしれませんが、それだけです。

チーム全体のSSHキーをリモートマシンに追加すると、誰もパスワードを再度入力する必要がなくなります。 チームメンバーのキーを取り消すのは、リモートマシンからキーを削除するのと同じくらい簡単です。

安全なインターネット接続を使用する

あなたが誰かとインターネット接続を共有するとき、あなたはあなたの帯域幅以上のものを共有します。 Webサイトとインターネットの構成によっては、少なくともアクセスしたWebサイトを検出でき、最悪の場合、パスワード、メッセージ、電子メールなど、送信したすべての情報を読み取ることができます。

これは非常に簡単に有効にでき、非常に簡単に混乱させることができます。 接続がプライベートであることを確認するために、合理的な予防策を講じてください。 許可されていない人があなたのインターネット接続にアクセスできないようにしてください。

WPA2を使用して、個人のWiFiをパスワードで保護します。地元のコーヒーショップ(または公共のWiFi)で作業している場合は、監視されていると想定し、VPNプロキシを使用します。

サブスクリプションベースのVPNを使用することを躊躇します。特に、独自のVPNを使用するのは非常に簡単だからです。 この1行のVPNソリューションを使用して、独自のVPNソリューションをホストします。

戦略6:秘密を慎重に扱う

秘密は開示されることを意図していません。 それが彼らが秘密と呼ばれる理由です。 それにもかかわらず、FacebookMes​​sengerを介して本番のPostgreSQLデータベースにパスワードを送信したことで罪を犯したことは何回ありますか? 常に次のことを確認してください。

  • 転送中の秘密を暗号化する
  • それらを頻繁に回転させる

転送中の秘密を暗号化する

チャットなどのチャネルを介してシークレットを共有する必要がある場合は、暗号化されていることを確認してください。 演習として、頻繁に使用する最も古いチャットクライアントにアクセスしてください。 FacebookメッセージまたはWhatsappの可能性があります。 それが何であるかに関係なく、メッセージ内の「パスワード」というフレーズを開いて検索します。

これらのシークレットが暗号化されていた場合、メッセージにアクセスできる人は誰もそれらを利用できません。

秘密を頻繁にローテーションする

シークレットが長く存在するか、共有されるほど、セキュリティが侵害される可能性が高くなります。 一定期間後にシークレットとパスワードをローテーションすることをお勧めします。

戦略No.7:暗号化IDを確立する

これは確かに高度な戦略ですが、なぜこれが広く行われていないのか私は個人的に理解していません。 これを考慮してください:あなたの同僚はあなたが危険にさらされていると信じています。 彼らはどのようにして本物のあなたにメッセージを伝えますか? インターネットの誰かが重要な脆弱性情報を共有する必要がある場合、どのようにして安全に送信しますか? 従業員が転送中の情報を安全に共有できるようにするにはどうすればよいですか?

私のお気に入りの例は、Coinbaseのキーベースプロファイルです。このプロファイルでは、従業員のPGPキーに暗号で署名します。 彼らはさらに進んで、コンプライアンス部門にPGPキーを与えました。 真剣に、Coinbase、素晴らしい仕事です!

私個人としては、誰かが私のオンラインIDが危険にさらされていると合理的に疑う場合は、キーベースプロファイルで利用可能なPGPキーを使用してメッセージに署名するように依頼してください。 このPGPキーにアクセスできるのは私だけであり、他のIDが危険にさらされた場合でも、このキーが安全に保たれるように合理的な予防策を講じています。

メッセージの信憑性に疑問がある場合は、署名するように依頼してください。 シークレットを送信する必要がある場合は、公開鍵で暗号化してください。

明確なリモートワーカーセキュリティポリシーを実装する

セキュリティポリシーは、システム、組織、またはその他のエンティティに対してセキュリティを確保することの意味を定義したものです。 組織の場合、ドア、ロック、鍵、壁などのメカニズムによって敵に課せられる制約だけでなく、メンバーの行動に対する制約にも対処します。 –ウィキペディア

セキュリティポリシーは、アクションを実行するときに従わなければならない必須のルールまたはプロトコルです。 上記の戦略は役に立ちますが、従うのを簡単にするために、チームに従うべき一連の簡単なルールを与えてください。 チームが何をすべきかを正確に知っていると、セキュリティを台無しにするのは難しくなります。

実装するリモートワーカーのセキュリティポリシーの例について説明しましょう。

従業員のために実装するポリシー:

  • NDAと契約:適切な法的根拠がない限り、従業員が機密リソースにアクセスできないようにします。
  • 緊急連絡先情報:リモートチームメンバーが応答しなくなった場合に備えて、従業員の完全な緊急連絡先情報を削除します。
  • 重要な特権のみを付与する:チームメンバーが機能を実行するために特定の領域にアクセスする必要がない場合は、アクセスを許可しないでください。 営業チームのメンバーは、コードリポジトリにアクセスする必要はありません。
  • パスワードマネージャー:従業員がパスワードマネージャーにアクセスできることを確認します
  • 強力な認証ポリシー
    • パスワードの強度を最小限に抑える:私は個人的にパスワードが嫌いです。管理者である組織では、50文字以上の英数字のパスワードが必要です。 パスワードマネージャーを使用している場合は、このポリシーに従うのは簡単です。
    • 必須のパスワードリセット:シークレットを頻繁にローテーションするために、従業員のパスワードが頻繁に期限切れになるようにします。
    • 二要素認証:どこでも2FAを使用
  • PGPキー
  • 暗号化されたハードディスク
  • 暗号化されたバックアップ

従業員は去りますが、あなたの情報を一緒に持っていくべきではありません。 従業員が会社を辞めた後もデータを保持するように、これらのポリシーを適応させます。

  • 企業の電子メールアカウント:自分のドメインに従業員の電子メールアカウントを与えると、通信を無効にして監査することができます。
  • リアルタイムのコミュニケーション:メールはすばらしいものですが、チームがリアルタイムで話す必要がある場合もあります。 チームに一元化されたSlackまたはIRCチャネルがあることを確認します。 これにより、必要に応じて通信を無効化または監査することができます。
  • 一元化されたコードリポジトリ:すべての会社コードが会社コードリポジトリに保存されていることを確認してください。 GitHubなどのパブリックSaaSオファリングに関する会社の計画は、すべての従業員コードをきめ細かく制御する必要があるまでは問題ありません。 後者の場合、独自のGitLabインスタンスを取得することを検討してください。

インフラストラクチャを保護するためのポリシー:

  • システムを最新の状態に保つ:セキュリティの脆弱性は毎日発見され、パッチが適用されます。これらの修正を確実に適用するのはあなたの仕事です。 数週間前にパッチが適用された脆弱性が侵害の原因であることを発見することほど悪いことはありません。
  • 本番環境とステージング環境をロックダウンする:従業員が本番環境またはステージング環境にアクセスできないようにする必要があります。 時々彼らはただ台無しになります。
  • 強力なCI/CDフローを作成する:常に「優れた」コードを展開する必要があり、単純なCI/CDプロセスが常にこれを保証します。
  • 祝福されたリポジトリを保護する:自動化されたCI / CDプロセスがある場合は、祝福されたリポジトリがプロジェクトマネージャーによってのみ編集可能であることを確認してください。
  • レビュープロセスを定義する: 「悪い」コードが見過ごされないようにするには、レビュープロセスを作成します。 これは、マージする前に、最後に1つの独立した「Looksgood to me」(LGTM)コメントを要求するのと同じくらい簡単です。
  • SSHキー:アプリケーションでSSHアクセスを許可する必要がある場合は、パスワードの代わりにSSHキーを使用するようにしてください。
  • BYODの廃止を検討する:予算チームは、BYODがペーパーレスオフィス以来の最高のポリシー革新であると考えるかもしれませんが、余裕があれば、厳格なセキュリティポリシーを実装できる企業のマシンをチームに提供することを検討してください。
  • 暗号化されたバックアップ:データは重要です。

コードを書くときのポリシー:

  • コードに秘密がない:バージョン管理の性質上、秘密鍵を見つけるのが非常に簡単なコードに追加すると、データを削除するのが非常に困難になる可能性があります。
  • パスワードを保存するときのBcrypt:認証システムを設計するときは、システムを設計する代わりに、bcryptを使用してパスワードをハッシュおよびソルトするか、プレーンテキストで保存します。
  • ログから機密情報をフィルタリングする:グローバルペッパー、アプリケーションのセッション署名キー、ユーザーのログイン試行など、アクセス権を持つユーザーが読み取ることができるシステムログファイルに機密情報が漏洩しないようにします。
  • 必要最小限の特権を付与する:アプリケーションにREAD特権のみが必要な場合は、 WRITE特権を付与しないでください。 最小特権の原則を順守します。

対応計画を作成する

セキュリティ違反は時折発生します。事後分析では学習する時間が十分にありますが、重要なのは、すべてのデジタル資産を保護するための明確な道筋があることです。

セキュリティ違反が発生した場合に備えて、時間をかけて緊急時対応計画を立ててください。 次のシナリオでのアクションを検討してください。

  • 機密データを含むデバイスを紛失します。
  • 許可されていない第三者がインフラストラクチャにアクセスした可能性があります。
  • チームの誰かが自分とは違った振る舞いをしているのを観察します。
  • セキュリティの脆弱性が発見されました。

対応計画に含めるもの:

  • 入念なドキュメント:画面の記録を有効にし、チームが遭遇したすべてのものを共有するためのWikiを設定します。
  • 侵害の封じ込め:侵害の範囲によっては、これは、ユーザーアカウントを無効にする、サーバーをオフラインにする、本番環境をシャットダウンしてユーザーに連絡するなどの簡単な場合があります。
  • 内部コミュニケーションを確立する:専用のSlackチャネルを開始するか、誰かが遭遇したことを報告する方法を見つけます。
  • 助けをもたらす:違反の影響を受けたすべてのチームに電話をかけます。 これは当局にも連絡する良い機会かもしれません。
  • 調査:何が侵害されたか、どの程度、そして通常の運用を再開するために何ができるかを把握します。
  • オンラインに戻る:修正を作成、テスト、公開して、通常の操作をできるだけ早く再開します。 ユーザーはサービスの機能に依存しており、安定した安全なサービスを保証できるようになった瞬間に、オンラインに戻ります。
  • ユーザーと話す:ユーザーを暗闇に放置しないでください。 あなたができる最悪のことは、ユーザーに何が起こっているのかを説明せずにサービスを停止することです。 ライブアップデートチャネルを確立します。 これは、Twitterを使用して情報を提供するのと同じくらい簡単かもしれません。 インシデントが処理された後、何が起こったのか、どのように起こったのか、そして将来同様の違反を防ぐために何をしたのかを説明する事後レポートを公開します。

セキュリティインシデントが発生します。 重要なのは、応答をどのように処理するかです。 私のお気に入りの応答の1つは、LastPassが異常なネットワークアクティビティを検出したときに必須のマスターパスワードのリセットを発行した2015年でした。 私はLastPassを長年使用してきましたが、最近のセキュリティの問題にもかかわらず、顧客のニーズを最優先することで顧客に対応する方法が大好きです。

おすすめの読み物

繰り返しになりますが、完璧なセキュリティというものはありません。 重要なのは、データを安全に保つために合理的な努力を払ったことを確認することです。

これらのセキュリティ慣行により、あなたとあなたのリモートチームはハッキングが非常に難しくなります。

法から逃亡中の逃亡者ハッカーの実話を読みたい場合は、KevinMitnickによるGhostintheWiresをお勧めします。

反対側の考え方についてもっと知りたい場合は、以下を読むことをお勧めします。

  • 社会工学:クリストファー・ハドナジーによる人間のハッキングの芸術
  • ケビン・ミトニックとウィリアム・L・サイモンによる欺瞞の芸術

私の犯罪は好奇心の犯罪です。