今や、組織が高度に機密性の高いデータを獲得することを目的としたセキュリティ侵害に常にさらされている世界で生活しています。このデータは非常に価値が高く、莫大な財政的報酬をもたらします。
潜在的に壊滅的なサイバー攻撃を受けるリスクが高いにもかかわらず、ほとんどの企業が適切に準備されていないか、単に赤信号を見落としていることはかなり驚くべきことです。その結果、しばしば壊滅的な結果を招きます。
2016年、エクイファックスは、一連のセキュリティのミスに続いて、数百万の極めて機密性の高い顧客記録が盗まれるという壊滅的なデータ侵害に見舞われました。詳細な報告書によると、エクイファックスのセキュリティチームが適切なセキュリティ対策を実施していれば、この侵害は防げたとされています。
実際、侵害の数か月前に、エクイファックスは、ウェブポータルに潜在的な脆弱性があることを警告されましたが、残念ながら、その警告は無視され、重大な結果をもたらしました。多くの他の大手企業も攻撃の被害者となっており、その複雑さは増す一方です。
Linuxシステムのセキュリティがいかに重要かを強調することはできません。あなたが侵害の潜在的な標的である高名な金融機関であるかどうかに関わらず、警戒を怠るべきではないことを意味します。
セキュリティは、特にインターネットに接続され、リモートでアクセスされる場合には、Linuxサーバーを設定する際に重要です。基本的なセキュリティスキルを持つことは、Linuxサーバーを保護するために不可欠です。
このガイドでは、システムを不正侵入者から保護するために取ることができる基本的なセキュリティ対策に焦点を当てます。
サイバー攻撃のベクトル
不正侵入者は、Linuxサーバーにアクセスするためにさまざまな攻撃技術を悪用します。システムを保護するためのいくつかの対策について掘り下げる前に、ハッカーがシステムに浸透するために使用できる一般的な攻撃ベクトルを悪用しましょう。
1. ブルートフォース攻撃
A brute-force attack is an attack where the hacker uses trial and error to guess the login credentials of the user. Usually, the intruder will use automated scripts to continuously gain entry until the right combination of the username and password is obtained. This kind of attack is most effective where weak & easily guessable passwords are used.
2. 弱い資格情報
先に述べたように、弱い資格情報(password1234のような短くて推測しやすいパスワードなど)は、システムに潜在的なリスクをもたらします。パスワードが短く、複雑でないほど、システムが侵害される可能性が高くなります。
3. フィッシング
フィッシングは、攻撃者が被害者に、正規の機関や知っている人物、取引を行っている相手からのように見せかけた電子メールを送信する社会工学技術です。
通常、メールには、被害者に機密情報を漏らすように促す指示が含まれているか、企業のサイトに見せかけた偽のサイトに彼らを誘導するリンクが含まれています。被害者がログインしようとすると、その資格情報は攻撃者によって捕獲されます。
4. マルウェア
マルウェアは、悪意のあるソフトウェアの略です。ウイルス、トロイの木馬、ワーム、ランサムウェアなど、広範な範囲の害悪なアプリケーションをカバーしており、被害者のシステムを人質に取り、身代金を支払うように要求します。
このような攻撃は、組織のビジネスを麻痺させることができます。画像、動画、Word、またはPowerPoint文書などのドキュメントに挿入できるマルウェアもあり、フィッシングメールにパッケージ化されています。
5. サービス拒否攻撃 (DoS)
A DoS attack is an attack that limits or impacts the availability of a server or computer system. The hacker floods the server with traffic or ping packets that render the server inaccessible to users for prolonged durations.
A DDoS (Distributed Denial of Service) attack is a kind of DoS that employs multiple systems that flood a target with traffic rendered it unavailable.
6. SQLインジェクション攻撃
略称構造化照会言語、SQLは、データベースと通信するために使用される言語です。ユーザーがデータベースのレコードを作成、削除、更新できます。多くのサーバーは、SQLを使用してデータベースと対話するリレーショナルデータベースにデータを格納します。
SQLインジェクション攻撃は、悪意のあるSQLコードを注入することで、サーバーが通常は明かさないであろう機密データベース情報を明かす既知のSQL脆弱性を利用します。データベースがクレジットカード番号、社会保障番号、パスワードなどの個人情報を格納している場合、これは大きなリスクになります。
7. 中間者攻撃
略称としてMITMとしてよく知られていますが、中間者攻撃は、攻撃者が2つのポイント間の情報を傍受し、2つの当事者間のトラフィックを盗聴したり改ざんしたりすることを目的としています。目標は、被害者をスパイし、データを破損させ、または機密情報を盗むことです。
Linuxサーバーをセキュリティ保護するための基本的なヒント
システムを侵害するために攻撃者が利用できる潜在的なゲートウェイを見てきたので、システムを保護するためにとることができる基本的な対策のいくつかを説明しましょう。
1. 物理的なセキュリティ
サーバーの物理的な場所とセキュリティについてあまり考えられていませんが、サーバーをオンプレミス環境に置く場合、これが通常始めるところです。
サーバーがバックアップ電源、冗長インターネット接続、十分な冷却を備えたデータセンターに安全に保管されていることを確認することが重要です。データセンターへのアクセスは、許可されたスタッフだけに限定されるべきです。
2. システムリポジトリとパッケージを更新する
サーバーが設置されたら、次のようにリポジトリとアプリケーションソフトウェアパッケージを更新することが最初のステップです。パッケージを更新することで、アプリケーションの既存のバージョンに存在する可能性のある脆弱性を補うことができます。
Ubuntu/Debianディストリビューションの場合:
$ sudo apt update -y $ sudo apt upgrade -y
RHEL/CentOSディストリビューションの場合:
$ sudo yum upgrade -y
3. ファイアウォールを有効にする
A firewall is an application that filters incoming and outgoing traffic. You need to install a robust firewall such as the UFW firewall and enable it to only allow the required services and their corresponding ports.
たとえば、Ubuntuで次のコマンドを使用してインストールできます。
$ sudo apt install ufw
一度インストールされたら、以下のように有効にしてください:
$ sudo ufw enable
たとえばHTTPSのようなサービスを許可するには、コマンドを実行してください;
$ sudo ufw allow https
また、対応するポートである443を許可することもできます。
$ sudo ufw allow 443/tcp
その後、変更が有効になるようにリロードしてください。
$ sudo ufw reload
ファイアウォールのステータス(許可されたサービスや開いているポートを含む)を確認するには、実行してください
$ sudo ufw status
4. 不要なサービス/ポートをオフにする
さらに、ファイアウォール上で使用されていないまたは不要なサービスやポートをオフにすることを検討してください。使用されていないポートが多数あるだけで、攻撃対象範囲が広がります。
5. SSHプロトコルをセキュアにする
デフォルトのSSH設定はセキュアではないため、いくつかの調整が必要です。以下の設定を強制することを確認してください:
最初のポイントについては、/etc/ssh/sshd_configファイルを編集し、以下のパラメータを示すように変更してください。
PermitRootLogin no
ルートユーザーのリモートログインを無効にした後、通常のユーザーを作成し、sudo権限を付与してください。例を挙げると。
$ sudo adduser user $ sudo usermod -aG sudo user
SSH鍵ペアを生成するために、まず別のLinux PCにアクセスしてください。最適なのは、あなたのPCです。
$ ssh-keygen
次に、公開鍵をサーバーにコピーしてください。
$ ssh-copy-id user@server-IP
ログインしたら、パスワード認証を無効にするために、/etc/ssh/sshd_configファイルを編集し、表示されているパラメータを変更してください。
PasswordAuthentication no
ssh秘密鍵を失わないように注意してください。それはログインできる唯一の方法です。安全な場所に保管し、できればクラウドにバックアップしてください。
最後に、変更を有効にするためにSSHを再起動してください。
$ sudo systemctl restart sshd
まとめ
サイバー脅威が進化する世界では、Linuxサーバーを設定する際にセキュリティを最優先事項にするべきです。このガイドでは、サーバーを強化するために取ることができる基本的なセキュリティ対策のいくつかを強調しました。次のトピックでは、さらに深く掘り下げて、サーバーを強化するための追加ステップを見ていきます。