プロが教える店舗&オフィスのセキュリティ対策術

htaccessを利用したベーシック認証で会員向けサイトを運営しております。

8/27、9/3と2週続けてhtpasswdファイルに異常が発生し認証できなくなるというトラブルに見舞われています。

具体的にはhtpasswdファイルにユーザーごとにID:パスワード(改行)で1行ずつ記載されているファイルの改行コードがすべて半角スペースに置き換わり、ファイルの先頭にある一人分のID・パスワードとして記録されておりました。このため全ユーザーの認証ができなくなりました。

その後の調査でわかったことは以下の3つです。

1.トラブル発生中に行われたクレジット決済で認証情報が新たに書き込みがあり、この認証意情報は既存の情報の一番最後に追記され最後に改行が行われていました。そしてその次の決済による情報の追記は問題なく行われていたためトラブル発生から2件目以降のユーザーは問題なく認証できる状態になっていました。

2.トラブルが発生したと思われる時間帯のCPU負荷がかなり増大していた。(サーバーのHDDへのアクセスが集中して処理できずに負荷が上昇していると思われます。)

3.トラブル発生時はhtpasswdに直接書き込みを行う操作は行われていない(認証情報の追加や削除は行われていない)

当初、CPU負荷が増大している最中にhtpasswdに書き込みがあったためにファイルが破損したものと思っておりました。が、ファイルの中身を見ると「改行が半角スペースに置き換わっているだけ」であったためにファイルの破損ではないと判断しました。

またCPU負荷の増大はトラブル発生時のみではなく、毎日起こっているものです。

たまたま土曜日に重なったのか外部からの攻撃もしくはウィルスによって意図的にhtpasswdの改ざんなどが行われたのか、その判断はできません。

何か思い当たることがある方はいらっしゃいますでしょうか?また具体的な対策(回避策)はありますでしょうか?

A 回答 (2件)

承認情報を追加書き込みするプログラムのバグでしょうね。



改行コードが入っているファイルをhtmlファイルとして扱って読み込んで、htmlとして整形し直すと、改行コードが半角スペースに置き換わるので、どう考えても「読み込んで、新しい承認情報を追加書き込みしているプログラムのバグ」です。

原因が判りませんが、何らかの原因で、特定条件が揃った時のみ「.htpasswordファイルをhtmlファイルとして扱って読み込んで改行を半角スペースに整形し直してしまうバグ」が発生するのでしょう。

承認情報の追加中に、別セッションで承認情報の追加をしようとしたとか、多重アクセスによるバグ発生の可能性が高いです。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

私も別の人間も同じことを考えていたのですがトラブルが発生した時間には承認情報の書き込みが行われていないんですよね。

各種ステータスを見た限りではトラブルの発生が16時頃でその時間にアクセスが突然なくなっています。
(DiskI/Oがほぼゼロになった時間=トラブル発生と認識しています)

新規ユーザーの追加、または退会によるデータ削除が行われたタイミングでのトラブル発生ならプログラムのバグかな・・・と思うのですがバグの発生する要因となる「書き込み」が行われていないのでバグが原因であるという判断に至っていません。

ただ「htmlとして整形し直すと、改行コードが半角スペースに置き換わる」とのことなのでやはりpasswdファイルに対して何らかの操作が行われたと考えるべきですよね。

もう少し調べてみます。

ありがとうございました。

お礼日時:2011/09/07 15:36

ファイルが更新されていないと判断したのはタイムスタンプでしょうか?


それとも、追加・削除処理が該当の時間になかったからでしょうか?

外部からやられたにせよ、バグにせよ
タイムスタンプは更新されますよね??


追加・削除では無く
”更新”と言う可能性はありませんか?
パスワードの変更 とか。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

>ファイルが更新されていないと判断したのは

これは単純に追加=新規入会と削除=退会がなかったという判断です。

htpasswdファイル自体はトラブル後に入会があったためにタイムスタンプは更新されています。

追加・削除を伴わない「更新」は100%とは断言できませんが管理人の私以外に行う人間はいないため「ない」と思われます。

ユーザー自身が変更することはできず、またカード決済代行会社での変更が行われた場合は必ず報告がありますがその報告もないです(ちなみにサイト開設の9年前からカード決済代行会社の判断でパスワードの変更が行われたことはありません)

こちらで「更新」が行われていないとすれば外部からの何らかの改ざんなどが考えられるかもしれないですね。

状況としてはファイルに何らかの手が加えられなければ起こりえないトラブルと考えて良さそうですね。

お礼日時:2011/09/07 18:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!