bashというプログラムに脆弱性が深刻な影響を与えるとして新聞に大きく報じられていました。しかし、ほとんど耳にしたことがなく、どのようなソフトウェアかわかりません。実際にどのような危険で、対策を施す必要があるのでしょうか。
A
bashは、多くのサーバーや機器にインストールされているシステムプログラムのひとつです。意識的に利用していなくても、bashがインストールされているPCやシステムも無数に存在しており、影響範囲が大きいため問題となりました。
そもそもbashシェルとは
まず、「bash」とはどんなプログラムなのでしょうか。bashは、「シェルプログラム」の一種です。シェルプログラムとは、WindowsやLinuxのようなオペレーティングシステムをユーザーが操作するためのプログラムです。
現在のコンピュータは、PCにしてもスマートフォンにしても、キーボードやマウス、タッチスクリーンなどで行ったユーザーの操作がオペレーティングシステム(OS)に伝わり、動作しています。シェルは、そうしたユーザーの操作をOSに伝えるインタフェースのひとつであり、情報(操作命令)を受けとり、ファイルをコピーしたりアプリを実行したりしています。
Linux/Unixなどで動作するシェルプログラムにはsh、csh、bsh、tcshなど多数ありますが、今回注目を集めたbashは、その中でもLinuxに標準的に採用されているシェルプログラムのひとつです。
影響を受ける範囲
bashは、Linuxが稼働しているWebサーバーやPCなどの多くにインストールされています。さらにユーザーが意識せず利用している場合もあります。たとえば、ルーター、NAS、Wi-Fiアクセスポイント、プリンタ、複合機など、組込みLinuxを搭載したシステムで利用されていることもあります。
WindowsやMac OS Xなら安全なのかといえば、そうでもありません。システム構成によってはWindows Serverでシェルをbashにしている場合もあります。さらにMac OS Xに至っては、bashをデフォルトで採用しています。
このように多くの環境で利用されているbashですが、想定外の操作でコマンドを実行されてしまう脆弱性「Shellshock」問題が判明したことから大きな騒ぎとなりました。サーバーからbashにデータを渡す「環境変数」経由でコマンドを実行させてしまうことが可能となってしまうものです。
当初、WebサーバーのCGIスクリプトを呼び出す機能を使って、外部から任意のコマンドを実行できてしまうことが確認され、問題が表面化しました。その後、DHCPやDNSなど、さまざまな環境が影響を受ける可能性が判明しています。
「外部から任意のコマンドが実行できる」ということは、サーバー外部から遠隔操作が可能になることです。たとえば、マルウェアをダウンロードさせて、それを実行させたり、システムファイルや重要なデータを読み出すといった危険にさらされることになります。
![bashの脆弱性を利用した攻撃](/files/user/malware_info/images/qa/141224_1/images/img01.jpg)
どのように対策を取るべきか
今回問題となったbash問題ですが、サーバーやシステムの管理者、セキュリティ担当者は、社内のシステムや契約している外部のサーバーといったシステムについて、脆弱性の影響の有無を調査し、必要に応じて対策を講じなければなりません。
今回のbashに発見された脆弱性に関しては、すでに修正するためのパッチや、対策済みの新バージョンもリリースされています。すみやかにアップデートすることが重要となります。
またパッチが適用できない場合の回避策として、1)bashを別のシェルに置き換える。2)IPS/IDSの設定により危険なリクエストを監視、ブロックする。 3)継続的なシステム監視といった方法もあります。
この脆弱性についての詳細や影響の受ける範囲、対策方法は、JPCERTコーディネーションセンターのホームページに注意喚起として掲載されています。また、使っている機器や製品が影響を受けるかどうか不明な場合は、その機器ベンダーに問い合わせるか、ホームページに公開されているサポート情報などを参照してください。