
サーバー管理者が考える、優先度の高い「個人情報漏えい対策」
こんにちは。セルバ中山です。
先日コーヒーチェーン店の個人情報漏えいがニュースになりましたが、今回は「なぜ個人情報漏えいが起きるのか」をサーバー管理者側の視点で解説し、どう対策すれば良いのかについてお話します。
セルバでは現在100以上のサイトを運営しており、サーバー管理を日々行っています。
サーバー管理をすると分かるのですが、ネットにサーバーを公開すると攻撃を受けます。
そしてどういった攻撃を受けるのか、その手口にも詳しくなります。
サイト運営者の方はぜひ最後まで読んで、サーバーのセキュリティ対策に役立ててください!
個人情報漏洩の原因数ランキング
個人情報漏えいの原因数ランキングが東京商工リサーチから発表されています。
1位:ウイルス感染・不正アクセス
2位:誤表示・誤送信
3位:不正持ち出し・盗難
4位:紛失・誤廃棄
今回は1位のウイルス感染・不正アクセスの原因について触れていきます。
2位から4位の原因はサーバーというより、人の問題ですね。
人なのでミスは付き物ですが「個人のPCに個人情報のデータを入れない」は意識した方がよいです。
僕もPCに個人情報のデータは入れていません。
データを加工するためにPCにデータをダウンロードすることはありますが、加工し終わったらすぐにサーバーにアップして、PCからは削除しています。
ウイルス感染・不正アクセスの原因
ウイルス感染・不正アクセスが起こる原因として、主なものは下記となります。
パスワードの漏えい
ソフトウェアの脆弱性
原因その1 パスワードの漏えい
ウイルス感染・不正アクセスと聞くと「ソフトの脆弱性を突かれたのが原因」と思われることが多いですが、実際はもっと単純で、大半の原因はパスワードの漏えいです。
★★★★★★★★★★★★★★★★★★★★
ランサムウェア(身代金要求型)もファイル改ざんも、多くはパスワード漏れでサーバーにログインされるのが原因です。
★★★★★★★★★★★★★★★★★★★★
推測されるような単純なパスワードや、既に漏れたパスワードと同じものを利用していることによってID・パスワードを入力されて不正ログインされます。
パスワード総当たり攻撃(ブルートフォース)
パスワード総当たり攻撃とは、文字通り全通りのパスワードを試してログインしようとする攻撃です。
これの亜種としてユーザーの名前や誕生日など、パスワードで使われがちな文字列を推測する「辞書攻撃」というものもあります。
この記事書くにあたって、管理しているサーバーのログを改めて確認すると1日平均1万件以上攻撃されていました。
これは弊社のサイトが特別多く攻撃されているわけではなく、他のサーバーも同様に攻撃されています。
以下はNordPass社が発表した2024年によく使われているパスワードです。
これらのパスワードを使っていると簡単にログインされてしまいます。
1位:123456
2位:admin
3位:12345678
4位:123456789
5位:2134
6位:12345
7位:password
8位:123
9位:Aa123456
10位:1234567890
パスワードリスト攻撃
どこかのサイトからユーザーデータとパスワードが漏れて、それを他のサイトのログインでも利用されるケースです。
最近はハッシュ化されて保存が標準になっていますが、10年以上前に作られたシステムではそうなっていないものも珍しくありません。
Facebookでも、数年前まではパスワードが平文のシステムが動いていたようです。
Googleでも同様に、平文で保存している機能が数年前まであったようです。
パスワード漏えいの対策
パスワードを複雑なものにする
シンプルな話で、誰もが思いつくような簡単なパスワードだと簡単に不正ログインされます。
単純なパスワードは登録しない(できない)ように設定しましょう。
「大文字、小文字、数字を組み合わせた8文字以上」でなおかつ、Aa123456みたいな推測される文字列も許可しないようにするのが望ましいです。
パスワードの強度をチェックするライブラリを入れてチェックすることをおすすめします。
ログイン試行回数を制限する
試行回数を制限するのは総当たり攻撃が有効です。
たとえば3回ログインに失敗すると10分間はアクセス出来なくするなど。
アクセス可能なIPアドレスを制限する
アクセスする人が限られているのであれば、IPで制限するのも有効です。
秘密鍵を使ったログイン
SSHを使ったログインなどはパスワード認証を許可せず、秘密鍵を使った認証を行いましょう。
またポート番号は通常の22番から別の番号に変更を推奨します。
原因その2 ソフトウェアの脆弱性
ソフトウェアの脆弱性を突かれるケースも多いです。
中でもWordPressは使っている人数が多く、プラグインも多く提供されている分、脆弱性が見つかることが多くあります。
また独自で制作したプログラムだと、SQLインジェクションなどの脆弱性が含まれるケースがあります。
ソフトウェア脆弱性の対策
WAFを導入する
代表的な対策としては、WAFを導入することです。
WAF(ワフ)は”Web Application Firewall”の略で、「Webアプリケーションの脆弱性を悪用した攻撃」からWebサイトを保護するセキュリティ対策です。Webサーバーの前段に設置して通信を解析・検査し、攻撃と判断した通信を遮断することで、Webサイトを保護します。
有名なのは「攻撃遮断くん」や「SiteGuard」などです。
これを入れることにより、SQL文などの攻撃が目的のデータを塞いでくれます。
WordPressを使う場合は常に最新バージョンにして余計なプラグインを入れない
Wordpressを使う場合は、常にバージョンは最新にしておくことをおすすめします。
自動アップデートはONにしておきましょう。
入れるプラグインはできるだけ減らして、同じ機能のプラグインが複数あるなら頻繁にアップデートされているものを選びましょう。
WordPressではWAFの「SiteGuard」のプラグインもあるので、入れておくことをおすすめします。
サーバーに改ざん検知ソフトを入れる
先日コーヒーチェーン店の個人情報漏えいがニュースになりましたが、サーバーに改ざん検知ソフトを入れていれば早期に発見出来た可能性が高いです。
改ざん検知ソフトは有名なものだと「シマンテック」「マカフィー」があります。
定期的にサイト脆弱性診断ツールで検査
代表的なものだと「Zed Attack Proxy」などはSQLインジェクションなどの診断をしてくれます。
旧名は「OWASP ZAP」なので、こちらの名前の方が馴染みがある人が多いかも。
ただ「Zed Attack Proxy」の設定には経験やスキルがいるので、スキルがない人でも使えるものだと以下もおすすめです。
脆弱性のあるソフトウェアを使っていないか診断してくれます。
お名前.com ネットde診断
https://www.onamae.com/option/shindan/
SHODAN
https://www.shodan.io/
Webサーバーでもセキュリティを高める設定を行っておく
Webサーバーでもセキュリティを高める設定を行っておきましょう。
代表的なものだと「Apache」「Nginx」などがあります。
Apacheだと、デフォルトの設定で運用しているとセキュリティ診断ツールで引っかかります。
以下のサイトではApacheの基本的な設定について解説されています。
サーバーのセキュリティチェックシート
セルバではセキュリティチェックシートを作っています。
良ければ参考にしてください。
まとめ
サーバー管理者側の視点で、個人情報漏えいが起きる主な原因とその対策について解説しました。
セキュリティ対策は費用や手間がかかりますが、個人情報漏えいが起きると損害が大きく、場合によっては会社が傾くのでケチらないようにした方がよいです。
知識がないと難しいこともあると思いますので、わからない場合はお気軽にセルバまでご相談ください!