今回はpodcast対談形式にて “webセキュリティやわらか「超入門」” のお話をしましたので、そのレジュメをご共有します。
webサイト公開時や、自前サーバーでサービスを公開するときに気になるwebセキュリティ。一般的な内容で、初心者の方向けにwebセキュリティを解説。
具体例として、オープンソースでインストールするWordPressなどを想定してお話しています。
ゲストは沖縄県宮古島市にてヤギ、ウシなどの産業動物診療・診療関連システム開発を営まれる株式会社VET代表取締役の内田様です。
経営者として、事業の大きなリスクとなりうるwebセキュリティの概要を解説しています。 エピソード最後には「誰でもできる一般的なセキュリティ対策3点」もご紹介。
それでは下のプレイヤーからラジオ音声をお聞きください。本文には、ラジオの内容を見出し・レジュメ形式でまとめてあります。
目次
セキュリティ被害の実態
クライアントのWordPressサイトが乗っ取られた
WordPressを最新版に保っておらず、脆弱性を突かれたことが原因のよう
サーバー管理会社からメールが届き、強制停止となった
復旧不可能な状態に
バックアップはとっていたので復元はできた
NakataのプライベートTwitterも乗っ取り被害に
Twitterはユーザー名が公開されているので、実質パスワードのみ
ブルートフォースアタックの可能性?
なぜクラッカーは攻撃をしてくるのか。攻撃者にとっての2つのメリット
1: サーバー上の情報を取得したい
- 顧客情報、管理者情報
- メールアドレス
- 氏名
- 住所
- 電話番号
2: 他サイト・他サーバーを攻撃する踏み台サーバーとして利用したい
「ウチのwebサイトは顧客情報を取り扱っていないから平気!」ではない
こちらがメインの目的であることも多い
甚大な被害を引き起こしてしまう可能性。場合によっては損害賠償責任を負う可能性
踏み台”にされた企業に賠償責任? | 日経クロステック(xTECH)
会社と社会に責任とれますか?情報漏えい・損害賠償の重み : 富士通
セキュリティのために試しておくべきこと、学ぶべきこと
最も効果的な防御方法は、まず自分で攻撃してみること。ペネトレーションテスト
ハッキング技術をwebセキュリティに活かす人を「ホワイトハッカー」(Ethical Hacker)と呼ぶ。
ただし、ネットワーク上で行ってはいけない。利用規約に違反し、プロバイダから警告される恐れ。
セキュリティ競技CTF
Capture The Flag
情報セキュリティのスキルを競い合うセキュリティコンテスト
CTF for Beginners: What is CTF and how to get started! DEV
主なセキュリティ実装先3つのレイヤー
1: ソフトウェア
各パッケージを最新版に保つ
管理画面があるものについては、ログインID・pw対策を徹底。2段階認証ログイン機能の実装も検討する。
実装面では、攻撃者に情報を与えないことを意識
何のOSS・CMSを使っているか、バージョン数などの情報をコード上で出力させない
メンテナンス時を除き、エラー表示はエラーの詳細を出力させないようにする
OSSやフレームワークを使用しないスクラッチ開発をする場合は、脆弱性が生じる可能性も大きくなるのでよりセキュリティ意識が必要
2: サーバー
適切なユーザー・グループ権限
パーミッション権限を適切に
rootによるリモートアクセス禁止など
3: ネットワーク((ファイアウォール・WAF))
海外IPからのアクセスを禁止(ブロック)することも検討する。効果大
技術選定も必要
ポートとは?
港、発着場のイメージ
ファイアウォールの主要なものとして、通常のLinux側で設定するファイアウォールと、アプリケーション周辺に設置するWAF(ウェブアプリケーション・ファイアウォール)とがある。
この3つだけはやってほしい!誰でもできる一般的なセキュリティ対策
一般ユーザーでも触れる、ソフトウェア上での対策
1: 各パッケージを最新版に
たとえばWordPressならWordPress本体とプラグインを最新版に
2: ID・パスワード対策
パスワードは12桁以上を推奨
「パスワードは12文字以上でより強固に」、不正ログイン防ぐための設定・管理方法をJPCERT/CCが解説 INTERNET Watch
「パスワードは複雑さより長さが大切」 FBIが指南 ITmedia NEWS l
英数字のみならず、大文字の英字・記号を含めるとベター
他人から推測されにくいものにする
同じものを使い回さない
また、総当たり攻撃(ブルートフォースアタック)への現時点における強い防御策として、2段階認証を用いることも検討しましょう。
2段階認証とは、ID・passwordによる通常の認証に加えて、別端末で生成される一定時間ごとに書き換わるパスワードの入力を要求することです。たとえば、銀行口座のweb講座へのログイン時に、「パスワードカード」のようなアプリの利用を求められることがあります。これも2段階認証の一例です。
たとえば、WordPressではWordfenceというセキュリティプラグインを用いると無料で2段階認証ログイン機能を実装できます。
2段階認証のパスワード管理アプリとしてはAuthyを推奨しています。
下記の記事でWordPressへの2段階認証の実装方法・設定方法を詳細を解説しています。
WordPressの2段階認証ログインをAuthyとWordfenceを用いて実装。設定方法と手順 | まほウェブ
3: 重要機密情報をweb上で保持しない設計に
たとえば、決済情報、クレジットカード情報などは外部の決済システムや決済APIと連携し任せることを検討
カード決済代行会社
決済APIを提供している決済サービス
- Amazon Pay
- Paypal
- Stripe
データベースをMySQLなどのRDBMSではなく、セキュアなデータ管理システム”kintone”と紐付けて利用する
kintoneを使うなら知っておこう!セキュリティレベルとチェック項目 | クラウドセキュリティチャネル
セキュリティ対策は、コストと効果を天秤にかけ、どこまでやるかポリシーを決めてから実装する
受けるダメージの大きさ
どれくらい機密情報を持っているか
攻撃対象となる可能性
サービス展開規模
利用しているパッケージのシェアの高さ
いかがでしたでしょうか?webセキュリティは範囲も広くどこまでやるか、何から手を付けるかが大変なところ。
しかし、一般的なレベルで出来ることで防げることも多いです。セキュリティ意識を高め、被害に遭わないように日頃から気をつけていきましょう。
Leave a Reply