急増するlinux被害を最小に抑えるセキュリティ情報まとめ

  • このエントリーをはてなブックマークに追加
0000

Webサーバに使用されているLinux OS。そのLinuxを狙う攻撃が急増しており、Linuxのセキュリティ対策が急務となっています。ここ数年、不正アクセスによる情報漏えいやWebサイトのサービス停止といったニュースをよく耳にしますが、これらの攻撃はLinuxの脆弱性を突くものがほとんどです。

攻撃を受けて顧客情報などの漏えいが発生してしまうと、その補償はもちろん、ブランドイメージの失墜や売り上げの低下、銀行の信用評価が下がるなど、多大な影響を受けることになってしまいます。Linuxはオープンソースのためコストを低く抑えることができますが、ソースが公開されているので攻撃者に弱点を研究されるというデメリットもあります。ここでは、Linuxに必要なセキュリティ対策を説明します。

1:Linuxに必要なセキュリティ対策

Linuxを使用している環境においては、大きく「ソフトウェア」「ユーザー」「運用」「ネットワーク」の4点でセキュリティ対策が必要になります。

1-1:ソフトウェア管理

1-1-1:ソフトウェアのアップデート情報をチェックする

使用しているLinuxの情報を常にチェックして、最新のアップデートがあれば適用します。Linux OSには、Red Hat LinuxやSUSE Linux、TurboLinuxなど多くのディストリビューターから提供されていますが、カーネルと呼ばれる基本機能をベースに、ディストリビューターごとにさまざまな機能がパッケージされています。ディストリビューターからの情報をこまめにチェックして、アップデートがあれば適用します。

Linuxは複数のディストリビューターが提供している

Linuxは複数のディストリビューターが提供している

アップデートが必要な理由には、Linuxがオープンソースであることが挙げられます。プログラムのソースがすべて公開されているのです。これにより、誰でもプログラムに変更を加えて使いやすくすることができます。しかしその一方で、サイバー攻撃者も同様にソースを研究して、攻撃に使える脆弱性を探しています。アップデートの多くは脆弱性の解消のために行われますので、攻撃を受けないためにもアップデートは重要です。

1-1-2:不要なソフトウェアをインストールしない

新規にLinuxをインストールする際には、パッケージグループの選択で「最小(Minimal)」を選びましょう。そこから必要なパッケージのみを個別にインストールするようにします。システムにインストールするソフトウェアが増えれば、それだけ脆弱性を抱える可能性が高くなります。一般的にLinuxはサーバー用途に使用されるため、その用途に必要最小限のソフトウェアで構成するようにしましょう。

インストールの際のパッケージに 最小構成(Minimal)を選びます

インストールの際のパッケージに
最小構成(Minimal)を選びます

1-2:ユーザー管理

1-2-1:不要になったユーザーアカウントは削除する

退職などの理由により使用されなくなったユーザーアカウントは、「userdel」コマンドによって削除しましょう。情報漏えい事件の多くは、退職した元社員などが在籍中に使用していたアカウントでログインしたことが原因です。このため、不要になったユーザーアカウントはすぐに削除するようにします。

なお、ユーザーアカウントが利用を再開する可能性がある場合は、「passwd」コマンドでログインできないように設定することが望ましいとされています。「/etc/passwd」を直接編集することも可能ですが、編集ミスが発生する可能性があるため、「passwd」コマンドを使用する方が確実で安全といえます。

「passwd」コマンドでユーザーアカウントをロックします

「passwd」コマンドでユーザーアカウントをロックします

1-2-2:パスワード漏えい対策に有効期限を設定する

ユーザーのログインパスワードは、「chage」コマンドで有効期限を設定します。一般的にログイン時に使用するアカウントはメールアドレスなど想定しやすいものとなっていますが、その対になるパスワードを定期的に変更することで不正アクセスを防止します。

パスワードの定期的な変更は、いわゆる「パスワードリスト攻撃」の対策にはなりません。しかし、メモすることや背後から盗み見される「ショルダーハッキング」などによって社内でパスワードが漏れる可能性もあるので、これを防ぐわけです。

1-2-3:ユーザーによる権限昇格を防止する

「pam_wheel.so」を設定して、「su」コマンドを使用できるユーザーを制限します。一般ユーザーの権限でログインしていても、「su」や「sudo」コマンドを実行することでroot権限に昇格させることができます。root権限はどんな設定も変更できる特権アカウントですので、重要なファイルにもアクセスできてしまいます。情報保護の観点からも、権限昇格の制限は重要です。

また、利用者が増えるとユーザーの管理が複雑になりますが、共通のアカウントを作成するのはやめましょう。確かに管理の手間は大幅に減らすことができますが、適切なパスワード管理が困難になることや、操作した人の特定が難しくなります。アカウントの共有はパスワードの漏えいや、なりすましのリスクを高めてしまいます。特にrootなどの管理者権限の共有には注意しましょう。

1-3:運用管理

1-3-1:アクセス権を適切に設定する

ファイルやディレクトリには適切なパーミッションを設定しましょう。パーミッションとは、ファイルやディレクトリに対するアクセス権のことで、「chmod」コマンドによって「読み込み」「書き込み」「実行」の権限を設定できます。基本的に必要最低限のパーミッションに設定しておくことで、ファイルやディレクトリをのぞき見されないようにできます。

特に/etc/securetty、/etc/shadow、/etc/sudoersなどはセキュリティ上重要なファイルですので、不要な権限を与えないよう注意しましょう。まや、アクセス権と同時にファイルを所有するユーザやグループについても、誰がどのような操作をするのかを検討した上で適切に設定しましょう。

1-3-2:不要なデーモンを起動させない

WebサーバなどでGUIを使ったサーバ管理ツールを使わないのであれば、ランレベルを3に設定し、不要なデーモンを起動しないようにします。Linuxで不必要なデーモンを起動させたままにすると、使用しないポートが開いた状態となるので、攻撃を受ける危険性が高くなります。CPUなどのリソースも消費してしまうので、不要なデーモンが起動しないよう適切に設定しましょう。

ランレベルを3に設定します

ランレベルを3に設定します

1-3-3:不要なSUIDを削除する

「find」コマンドを使用して、不要なSUIDが付与されているファイルがないかを確認し、削除します。SUIDは、実行ファイルに設定される権限に関する属性です。SUIDが設定されている実行ファイルは、誰が実行してもファイル所有者の権限で処理が実行されるので、不要な実行ファイルからSUIDを削除することで思わぬ操作を防ぐことができます。また、グループの権限で実行ファイルを動作させる属性であるSGIDも同様に対策しましょう。

1-3-4:ログを正確に残す

ログファイルはできる限り保存するようにしましょう。攻撃を受けた場合や構成行為が発覚したときなどは、ログファイルを分析することで具体的に何が起きたのかなどの原因を把握することができます。ログファイルの保存はストレージ容量を圧迫していきますので、一定の量になったら別のディスクに移すなどの工夫が必要になります。また、ログには時刻の情報が非常に重要になります。NTPを使用してサーバの時刻を正確に維持するようにしましょう。

1-4:ネットワーク管理

1-4-1:パケットフィルタリングを行う

iptablesなどでパケットフィルタリングを行いましょう。パケットの中には、ポートスキャンなど攻撃の前段階に行われるものや、不正侵入しようとするもの、ネットワークウイルスなども含まれています。そこで、パケットのヘッダに含まれるポートやIPアドレス情報、通信の方向などをチェックし、不要なものは拒否や破棄します。その判断はポリシーによって決定されます。ポリシーのチューニングも定期的に行いましょう。

1-4-2:不要なポートを閉じる

管理者権限で「netstat」コマンドを実行し、現在開いているポート番号を確認して、不要なポートを閉じましょう。開いているポートは外部からの侵入や、脆弱性の悪用に利用される可能性があるため、不要なポートを閉じて不正侵入されないようにします。使用しないデーモンがポートを開いているケースもありますので、不要なデーモンも終了しておきます。

「netstat」コマンドを実行して現在開いているポート番号を確認し、不要なポートを閉じます

「netstat」コマンドを実行して現在開いているポート番号を確認し、不要なポートを閉じます

1-4-3:リモートアクセスで管理する場合はSSHを利用する

サーバが自社内でなくクラウド上などにある場合は、リモートアクセスの通信にSSHを使用しましょう。以前はtelnetがリモートアクセスに使用されていましたが、telnetは通信が暗号化されないため、第三者に通信の内容を盗聴されパスワードなどの情報を取得される危険性がありました。SSHは通信内容が暗号化されるため安全ということです。

なお、多くのLinuxディストリビューションでは、SSH接続を行うためのソフトウェアとしてOpenSSHというパッケージが提供されています。さらに最近では、より安全性を高めるために証明書を利用した認証方法も導入されています。

さらに詳細な情報については、Linux技術者認定機関であるLPI-JAPANが「Linux セキュリティ標準教科書」を公開していますので、参考にするとよいでしょう。

http://www.lpi.or.jp/

2:Linuxにおける脅威

Linuxにおけるセキュリティのポイントについて述べましたが、これらの対策を行っていない場合、どのような被害を受ける可能性があるのでしょうか。ここでは主に、Webサーバや社内のサーバが受ける脅威について紹介します。

2-1:Webサイトを改ざんされる

組織のWebサイト(ホームページ)が改ざんされる可能性があります。サイトの改ざんは、以前はホームページをまったく異なる内容に差し替える被害が中心でした。これは、攻撃者が改ざんしたことをアピールするためで、自分の技術を誇示することが主な目的でした。それが最近では金銭目的になったため、利用者に気づかれないように改ざんするようになりました。

見た目はいつもとまったく変わらないのに、悪意のあるコードがサイトに埋め込まれ、アクセスした利用者のPCに脆弱性があるとマルウェアに感染させようとする例や、別の場所に攻撃者が用意した偽のサイトにリダイレクトされる例などがあります。実際の改ざんは、管理者のログイン情報を盗み出したり、不正アクセスによって行われます。

Webサイトの改ざん

Webサイトの改ざん

2-2:社内の情報を盗まれる

社内にある重要な情報や、保持している個人情報を盗まれる可能性があります。その手法は複数ありますが、攻撃としてもっとも多いのはSQLインジェクションという手法です。SQLインジェクションとは、WebサーバへのリクエストにSQLのコマンドを加えることで、社内のデータベースサーバから情報を引き出す手法です。

また、不正アクセスやマルウェアによって社内に侵入し、重要な情報を盗み出すケースもあります。最近では、他のサービスから漏えいしたログイン情報(IDとパスワードの組み合わせ)を使ってログイン試行する「パスワードリスト攻撃」も多発しています。この場合は、サイトで提供しているサービスの利用者が被害に遭うことになります。

さらに、大手出版社で発生した情報漏えい事件のように、内部犯罪によって情報が漏えいする可能性もあります。社員などの教育はもちろん、ユーザーやファイルの権限管理を厳密に行い、退職者など不要になったアカウントを使用停止にするといったシステム的な対策も重要です。

情報漏えい

情報漏えい

2-3:マルウェアに感染する

Linuxに感染するマルウェアはほとんどありません。しかし、Linuxの脆弱性を突いてマルウェアを潜り込ませ、クライアントのWindowsやMacに感染される手法は広く使用されています。また、クライアントパソコンがマルウェアに感染した場合、そのマルウェアが社内のネットワークを利用して感染を拡大しようとします。マルウェアの感染はサイトの改ざんや情報漏えい、システムの乗っ取りや攻撃の踏み台にされるといった大きな影響を受ける危険性があります。

Linuxに対応したセキュリティソフトも複数ありますので、クライアントOSとしてLinuxを使用している場合は導入を検討しましょう。また、サーバOSとして使用している場合は、ゲートウェイでセキュリティ対策を行うという方法もあります。

マルウェア感染

マルウェア感染

3:Linuxの特徴と対策のキモ

Linuxは、ディストリビューターごとにさまざまな機能がパッケージされて提供されています。さらに独自に機能を追加していくと、システムが非常に複雑になってしまいます。たとえカーネルやパッケージに脆弱性が発見され、それを解消するアップデートが公開されても、すぐには適用できないのが実情です。また、サーバOSとして利用されるケースが多いため、攻撃への対策も重要なポイントとなります。ここではLinux環境ならではの対策について紹介します。

3-1:アップデートを検証するための環境を用意する

クラウドサービスなどを利用し、同じシステム環境を用意できるようにしておきましょう。ひとつの機能をアップデートすることで、別の機能に影響が起きる可能性があるので、同じ環境で検証するというわけです。この場合、クラウドサービスなどの仮想環境が適しています。検証の結果、不具合があれば修正した後に、本番環境にアップデートを適用します。

アップデート検証用のテスト環境を用意する

アップデート検証用のテスト環境を用意する

3-2:外部の脆弱性検査サービスを利用する

多くのセキュリティベンダーやSIerなどでは、Webサイトやシステムの脆弱性を検査する「脆弱性診断」や「ペネトレーションテスト」といったサービスを提供しています。脆弱性診断は、外部から実際にサイトやシステムに疑似攻撃を行い、重大な脆弱性がないかをチェックします。ペネトレーションテストは、サイトやシステムに対して侵入テストを行うものです。システムが複雑になりがちなLinuxに適したサービスといえます。

外部の脆弱性検査サービスを利用する

外部の脆弱性検査サービスを利用する

3-3:ゲートウェイ対策を行う

LinuxにもファイアウォールやIPSといった侵入検知・防止機能が搭載されていますが、これらの機能を搭載したセキュリティアプライアンスをゲートウェイに設置することで、Linuxの負荷を減らしセキュリティ強度を上げることができます。セキュリティアプライアンスには、ファイアウォールやIPSのほかに、VPNやIPフィルタリング、マルウェア対策など多層防御を実現するUTMもあり、同様の機能を提供する次世代ファイアウォールも提供されています。また、アプライアンスにはハードウェアのほかソフトウェア型や仮想型もあります。より強固なセキュリティを実現したいなら検討しましょう。

ゲートウェイ対策を行う

ゲートウェイ対策を行う

3-4:人材教育に注力する

社内でのセキュリティ教育に重点を置きましょう。多くの情報漏えい事件のように、社内の人間が罪の意識なく会社のデータを外部に持ちだしているという現状があります。シマンテックの調査によると、過去12カ月に仕事を辞めた、または解雇された従業員の半数が企業の機密データを保持したままであり、40%が新しい仕事にそれを利用しようと計画していることが明らかになっています。結果として、多くの従業員の知的財産の取り扱いに関する態度と認識は、企業ポリシーに大きく違反しています。そのためにも、教育や機密保持契約の徹底、監視技術の強化などが必要です。

人材教育に注力する

人材教育に注力する

4:最後に

Linuxはオープンソースであるため柔軟性が高く、また低コストで導入できるため企業などの組織で多く利用されています。しかし、さまざまな機能を追加していくことでシステムが複雑になり、脆弱性が発見されてもすぐにアップデートを適用できない状況になってしまいます。一方、サーバOSとしての利用が多いため、サイバー攻撃者の標的になっていることも事実です。特に管理と運用、そして社員の意識向上を意識してLinuxを活用していきましょう。

 

※記事内容の利用実施は、ご自身の責任のもとご判断いただくようお願い致します。

  • このエントリーをはてなブックマークに追加

NS_Mac/Brand-LP-for-Mac1