「コードさえ書ければOK」だと思っていませんか?実は僕もそうでした。
でも、技術以前に「信頼」を守るセキュリティ意識も非常に大切です。
エンジニア未経験の方々が、最初の一歩で躓かないための「守りの本質」を、社内の情報セキュリティを守る活動もしている私の経験を交えて共有します。
はじめに
「セキュリティ? ああ、ウイルス対策ソフトを入れておけば大丈夫でしょ」
「そもそも、僕みたいな新人の書くコードを誰が狙うっていうんだ」
エンジニアになりたての頃、僕は本気でそう思っていました。プログラミング言語の構文を覚えるのに必死で、セキュリティなんて「すごいエンジニアがどこか遠い場所でやってくれていること」だと思い込んでいました。
でも、その考えは大きな間違いでした。現代のサイバー攻撃は、特定の有名人を狙うだけではなく、システムの「隙」を探して無差別に襲いかかってきます。
一度情報が漏れてしまえば、どれだけ便利な機能を作っても、積み上げてきた「信頼」は一瞬で崩れ去ります。現場を経験してようやくわかってきたのは、セキュリティは単なる知識ではなく、エンジニアとしての「マナー」であり、自分を守るための「最強の盾」だということです。
1. 攻撃者は「コード」より「人の隙」を狙ってくる
エンジニアになると、ついつい「最新の脆弱性を突いた高度な攻撃」を警戒しがちです。もちろんそれも大事ですが、実は最大の弱点は「人間」だったりします。
これを 人的脅威 と呼びます。
現場での経験
セキュリティがかなり厳しい現場でのこと。そこは建物のフロアごとに扱う情報のセキュリティレベルが決められており、そのフロアごとに入室できる人が厳密に管理されている現場でした。
僕は作業がひと段落し、コーヒーを買いに席を離れました。
その時、PCの画面はロックせず、エディタには本番環境に近い設定ファイルが開かれたまま。
これ、実はめちゃくちゃ危険な行為なんです。
ショルダーハッキング :背後を通りかかった人に設定情報を盗み見られる。
「ほんの数分だから」が命取り
机の上に放置した、サーバーのログインIDやパスワードを書いた付箋をスマホで撮られるだけで、セキュリティ被害を受ける可能性が格段に上がります。
「システムは完璧でも、運用する人間がガバガバ」では意味がありません。
先輩に「さっき画面ロックしてなかったよね。もし悪意のある人がいたら、今頃うちの会社のバックドアを作られてますよ」と真顔で言われたとき、深く反省したのを今でも覚えています。
2. 全方位を守るのは無理。だからこそ戦略的に優先順位をつける
完璧なセキュリティなんて、この世には存在しません。すべての脅威に対応しようとすれば、開発が止まってしまいます。
そこで僕たちがやるべきなのが、 リスクマネジメント です。
「賢く守る」ための考え方
- 特定 :どんなトラブルが起きそうか洗い出す(例:DBのバックアップ漏れ、APIの認証不備)。
- 分析 :「発生する確率」と「起きた時の損害」を天秤にかける。
- 評価 :優先順位をつけ、どこにコストをかけるか決める。
例えば、「顧客のクレジットカード情報が漏れるリスク」は損害が甚大なので、多層的な防御を敷きます。一方で、「社内勉強会のランチメニューが消えるリスク」は損害が小さいので、そこまでガチガチに対策はしません。
リスクへの4つの向き合い方
- 回避 :危ない橋を渡らない(例:個人情報を誰でもアクセスできるサーバーに保存しない設計にする)
- 低減 :被害を最小化する(例:WAFやウイルス検知ツールを導入する)
- 移転 :専門家に託す(例:認証部分だけAuth0などの外部サービスに任せる)
- 保有 :対策コストが見合わないため、発生時の影響を許容する(あるいは、発生してから対応する)
新人の頃の僕は「とにかく全部ガードしなきゃ!」とパニックになっていましたが、この「優先順位をつける」考え方を知ってから、冷静にコードが書けるようになりました。
3. 迷ったら立ち返る。セキュリティの三原則「CIA」
エンジニアとして設計や運用で判断に迷ったとき、僕がいつも心の中で唱えている呪文があります。
それが、世界基準の指標である CIA です。(以下の各英単語の頭文字をとってCIAと呼びます)
-
機密性 (Confidentiality)
「アクセス権がある人だけが見られる」状態。暗号化でデータを秘匿するのがこれです。先ほど例で挙げた画面ロックの話は、この機密性にあたります。 -
完全性 (Integrity)
「データが正確で、改ざんされていない」状態。デジタル署名やハッシュ値で「中身が正しいか」を保証します。 -
可用性 (Availability)
「使いたい時に、いつでもシステムが動いている」状態。DoS攻撃などでサービスが止まらないようにサーバーを強化することです。
例えば、セキュリティを厳しくしすぎて、正規のユーザーさえログインしにくくなったら、それは「可用性」を損なっていることになります。この3つのバランスを保つことこそが、セキュリティに強いシステムを作る上で大切です。
4. 今日からできる第一歩は多要素認証
いろいろ難しいことを話しましたが、結局何から始めればいいの?と思いますよね。
僕からのアドバイスはシンプルです。
「関わるすべてのアカウントで多要素認証(MFA)を有効にすること」。これに尽きます。
今の時代、パスワードだけでは、総当たり攻撃(ブルートフォース)などの餌食になります。
またAIの進化が凄まじいこの時代では、攻撃者もAIを駆使して脆弱性を自動で探し出すなど、進化のスピードが非常に速くなっています。従来のウイルス対策ソフトやOSのパッチ適用といった「一度守れば安心」という対策だけでは追いつかないケースも増えています。
そのため「スマホへの認証通知(所有)」や「指紋・顔認証(生体)」を組み合わせることで、防御力は桁違いに跳ね上がります。
たとえあなたのパスワードがどこかで漏れたとしても、犯人はあなたの指紋やスマホを持っていないので、侵入を阻止できます。これはすごく心強く、強力なセキュリティ対策になりえます。
おわりに
「自分は大丈夫、関係ない」という過信を捨て、リスクを正しく評価し、多層的な防御を築く。この基本を理解しているエンジニアは現場で心から信頼されます。まずは多要素認証をオンにする小さな一歩から始めてみましょう。その積み重ねが、皆さんが現場で信頼される人材へと成長させてくれるはずです。
PRUMのエンジニアの95%以上は未経験からの採用です。
よければコーポレートサイトにも遊びに来てください。
▶ コーポレートサイト
エンジニアの方に役立つ記事をまとめたサイトも運営しています。もしご興味あれば覗いてみてくださいね。
▶ エンジニアに役立つ記事サイト