2014年4月8日火曜日

OpenSSLの脆弱性 への緊急対応 (1.0.1gへのアップデート : CentOS6.5)

OpenSSLの重大バグが発覚。インターネットの大部分に影響の可能性

以下、引用
セキュリティー研究者らが “Heartbleed“と呼ぶそのバグを悪用すると、
過去2年以内のあらゆるバージョンのOpenSSLが走るシステムで、システムメモリー上にある大量のデータを暴露することが可能だ。

問題のバグは、OpenSSLの “heartbeat” という機能の実装に存在する。そこから “Heartbleed” と名付けられた。

このバグは、OpenSSLに2年以上存在していたが(2011年12月以来、OpenSSL 1.0.1~1.0.1f)、今日初めて発見され公表された。
さらに悪いことには、このバグを悪用してもその痕跡はログに残らないようだ。
つまり、システム管理者は自分のサーバーが侵入されたかどうかを知る術がない。されたと仮定するほかはない。

元記事
IPA OpenSSL の脆弱性対策について(CVE-2014-0160)
IT media OpenSSLに脆弱性、クライアントやサーバにメモリ露呈の恐れ


これは大変ですね。

Can attacker access only 64k of the memory?

There is no total of 64 kilobytes limitation to the attack, that limit applies only to a single heartbeat.
Attacker can either keep reconnecting or during an active TLS connection keep requesting arbitrary
number of 64 kilobyte chunks of memory content until enough secrets are revealed.

1回あたりは64KBのデータしか取れないようですが、繰り返し続けることでデータも盗り続けられるとの事です。

影響範囲は、(Affected 1.0.1f, 1.0.1e, 1.0.1d, 1.0.1c, 1.0.1b, 1.0.1a, 1.0.1) 1.0.2-beta, 1.0.2-beta1

公式Fixed in OpenSSL 1.0.1gが既に公開済みとなっています。
というか、Heartbleedとか名前かっこいい……。中二心がくすぐったい。

以下、CentOS6.5で対応したログです。


openssl-1.0.1gのインストール

現在のバージョン確認

# openssl
OpenSSL> version
OpenSSL 1.0.1e-fips 11 Feb 2013

最新版のインストール

# cd /usr/local/src/

# wget https://www.openssl.org/source/openssl-1.0.1g.tar.gz

# tar -xzf openssl-1.0.1g.tar.gz

# cd ./openssl-1.0.1g

# ./config --prefix=/usr --openssldir=/etc/ssl --libdir=lib shared zlib-dynamic

# make

# make install 

最新版インストール後のバージョン確認

# openssl
OpenSSL> version
OpenSSL 1.0.1g 7 Apr 2014

あとは、リポジトリのファイルが最新になるのを待ちましょう。(・ω・´)


脆弱性のチェックツール

チェックツールのインストールと使用方法について。

インストール

# wget http://gobuild.io/github.com/titanous/heartbleeder/master/linux/386 -O output.zip

# unzip output.zip

# ls
heartbleeder LICENSE README.md

使い方

# ./heartbleeder www.fu*itv.co.jp
INSECURE - www.fu*itv.co.jp:443 has the heartbeat extension enabled and is vulnerable

あああああ。 フ○テレビさん ><;

(現在は修正済みです。[does not have the heartbeat extension enabled])

HP Proliant RAIDを監視する

RAIDステータスの取得(監視)

環境説明

最近、部室に設置したHP製のサーバー。ML350p Gen8

(画像はwww8-hp.comから)

ハードウェア(サーバー) HP Proliant ML350p Gen8
ハードウェア(RAIDカード) HP Smartアレイ P420
オペレーションシステム CentOS 6.5 (2.6.32-431.el6.x86_64)

ソフトウェアのダウンロード

HPサポートセンターから、P420(別のRAIDカードの場合は、その製品名)で検索。
検索結果から「この製品に対応するすべてのドライバー、ソフトウェア、ファームウェアを表示してダウンロードします。 」のリンクを押下。
対象となるオペレーションシステムを選択し、必要なソフトウェアをダウンロードします。
または、ProLiant Support Pack(PSP) v9.10から、Proliant Support Packをダウンロードして下さい。
今回は、こちらのパック(psp-9.10.rhel6.x86_64.en.tar.gz)を取得しました。

psp-9.10.rhel6.x86_64.en.tar.gzを解凍すると、カレントディレクトリにワサッっと大量のファイルが展開されてしまうので注意。
解凍後、必要なファイルを選んで直接インストールしました。

hpacucli

インストール

hpacucliコマンドを使う為、hpacucli-9.40-12.0.x86_64.rpmをインストールします。

# rpm -ivh ./hpacucli-9.40-12.0.x86_64.rpm

使い方

hpacucliコマンドを使って、現在のRAIDの状態を表示・確認することが出来ます。 (対話型でも可能)

// ディスクの確認
# hpacucli  ctrl all show config

Dynamic Smart Array B120i RAID in Slot 0 (Embedded)



Smart Array P420 in Slot 2                (sn: XXXXXXXXXXXXXXX)

   array A (SATA, Unused Space: 0  MB)


      logicaldrive 1 (1.8 TB, RAID 1+0, OK)

      physicaldrive 1I:0:1 (port 1I:box 0:bay 1, SATA, 1 TB, OK)
      physicaldrive 1I:0:2 (port 1I:box 0:bay 2, SATA, 1 TB, OK)
      physicaldrive 1I:0:3 (port 1I:box 0:bay 3, SATA, 1 TB, OK)
      physicaldrive 1I:0:4 (port 1I:box 0:bay 4, SATA, 1 TB, OK)

   SEP (Vendor ID PMCSXXXX, Model SRCXXXX) 380 (WWID: XXXXXXXXXXXXXXX)



// バッテリーの確認
# hpacucli controller all show status

Dynamic Smart Array B120i RAID in Slot 0 (Embedded)
   Controller Status: OK

Smart Array P420 in Slot 2
   Controller Status: OK
   Cache Status: OK
   Battery/Capacitor Status: OK


cciss_vol_status

インストール

cciss_vol_statusを使用するためには、kmod-hpahcisr-1.2.6-13.rhel6u1.x86_64.rpmをインストールする必要があります。
(こっち[2]もあったので入れておきました。kmod-hpahcisr-1.2.6-13.rhel6u2.x86_64.rpm)

# rpm -ivh kmod-hpahcisr-1.2.6-13.rhel6u1.x86_64.rpm

# rpm -ivh kmod-hpahcisr-1.2.6-13.rhel6u2.x86_64.rpm

使い方

# cciss_vol_status -V /dev/sg0
Controller: Smart Array P420
  Board ID: 0x9999999c
  Logical drives: 1
  Running firmware: 5.22
  ROM firmware: 5.22
/dev/sda: (Smart Array P420) RAID 1 Volume 0 status: OK.
  Physical drives: 4
         connector 1I box 0 bay 1          ATA     XXX XXXXXXXX-00L           XX-XXXXXXXXXXXX 01.01A01 OK
         connector 1I box 0 bay 2          ATA     XXX XXXXXXXX-00L           XX-XXXXXXXXXXXX 01.01A01 OK
         connector 1I box 0 bay 3          ATA     XXX XXXXXXXX-00L           XX-XXXXXXXXXXXX 01.01A01 OK
         connector 1I box 0 bay 4          ATA     XXX XXXXXXXX-00L           XX-XXXXXXXXXXXX 01.01A01 OK

こんな感じです。 cciss_vol_statusの方より、hpacucliの方が使い勝手良さそう。

SNMPエージェントもインストールして試してみたいですね!!(・ω・`)


関連する記事

mdadmを使ったソフトウェアRAID1+0の実装

2014年4月3日木曜日

日本語形態素解析(mecab + php)

日本語形態素解析の導入方法

日本語の形態素解析には、いくつかの方法があると思います。
今回は、PHPで作成された掲示板に実装されているNGワード判定処理への苦情が多く寄せられた為、急遽対応しました。


mecabのインストール

# cd /usr/local/src/

# wget http://mecab.googlecode.com/files/mecab-0.996.tar.gz
# tar xzf mecab-0.996.tar.gz
# cd mecab-0.996
# ./configure --with-charset=utf8
# make
# make install

mecabライブラリ(IPA)のインストール

# wget http://mecab.googlecode.com/files/mecab-ipadic-2.7.0-20070801.tar.gz
# tar xzf ./mecab-ipadic-2.7.0-20070801.tar.gz
# cd ./mecab-ipadic-2.7.0-20070801
# ./configure --with-charset=utf8
# make
# make install

PHP用ライブラリのインストール

# pear channel-discover pecl.opendogs.org
# pear remote-list -c opendogs
# pear install opendogs/mecab-beta
specify pathname to mecab-config [no] : /etc/mecab/mecab-config
...
You should add "extension=mecab.so" to php.ini

php.iniの設定

# locate mecab.so
/usr/lib64/php/modules/mecab.so

# vi /etc/php.d/mecab.ini
extension=mecab.so


使用例・結果

ばか えろ の単語を含む文字列を指定してみました。

<?php
$mecab = new MeCab_Tagger();
var_dump($mecab->parse("君ばかりがバグを出している。環境を考えろと言われても困ります。"));
?≶

君ばかりがバグを出している。環境を整えろと言われても困ります。
君      名詞,代名詞,一般,*,*,*,君,キミ,キミ
ばかり  助詞,副助詞,*,*,*,*,ばかり,バカリ,バカリ
が      助詞,格助詞,一般,*,*,*,が,ガ,ガ
バグ    名詞,一般,*,*,*,*,バグ,バグ,バグ
を      助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
出し    動詞,自立,*,*,五段・サ行,連用形,出す,ダシ,ダシ
て      助詞,接続助詞,*,*,*,*,て,テ,テ
いる    動詞,非自立,*,*,一段,基本形,いる,イル,イル
。      記号,句点,*,*,*,*,。,。,。
環境    名詞,一般,*,*,*,*,環境,カンキョウ,カンキョー
を      助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
整えろ  動詞,自立,*,*,一段,命令ro,整える,トトノエロ,トトノエロ
と      助詞,格助詞,引用,*,*,*,と,ト,ト
言わ    動詞,自立,*,*,五段・ワ行促音便,未然形,言う,イワ,イワ
れ      動詞,接尾,*,*,一段,連用形,れる,レ,レ
て      助詞,接続助詞,*,*,*,*,て,テ,テ
も      助詞,係助詞,*,*,*,*,も,モ,モ
困り    動詞,自立,*,*,五段・ラ行,連用形,困る,コマリ,コマリ
ます    助動詞,*,*,*,特殊・マス,基本形,ます,マス,マス
。      記号,句点,*,*,*,*,。,。,。