システムはPHP + Mysqlです。
環境はSSL通信で検索は引っかからないようにしております。
ただし、httpからhttpsへの強制接続切り替え機能はないのでhttp通信も可能です。
サイト自体は検索に引っかからず、存在もユーザー以外には知られないなら大丈夫かなと思いましたが、結構な個人情報を含む内容のデータなので気になっています。
データベースにはユーザー(3000名ほど)とその管理者(50名ほど)、更にその上の総管理者(3名)という3者全てのIDとパスが生で保存されています。
エンジニアの皆さんから見てこの状態って危険でしょうか?
また、これを解消するにはどうするのがよいでしょうか?
システム会社にこのことを訴えるのか、それとも、そもそもそんなことをする会社に訴えかけても無駄だから新しいところに声をかけるべきなのか、そういったアドバイスを頂ければと思います。
危険です。
パスワードはハッシュ化(暗号化技術利用)をするのが一般的で、実施すべきです。
現行の対応会社に対応依頼を出すとよいです。必須対応となるべき項目です。
対応工数は重くないです。
PHPの公式マニュアルでも提示されているので、以下ご一読ください。
http://php.net/manual/ja/faq.passwords.php
以下一部抜粋です。
====
【なぜ、アプリケーションのユーザーが登録したパスワードをハッシュしなければならないのですか?】
パスワードのハッシュは、最も基本的なセキュリティ要件のひとつです。 ユーザーからパスワードを受け取るアプリケーションを設計するときには必ず考慮しなければなりません。 ハッシュしなければ、パスワードを格納したデータベースが攻撃を受けたときにパスワードを盗まれてしまいます。 それは即時にアプリケーションが乗っ取られることにつながるし、 もしそのユーザーが他のサービスでも同じアカウント・同じパスワードを使っていればさらに被害が大きくなります。
ユーザーのパスワードにハッシュアルゴリズムを適用してからデータベースに格納しておくと、 攻撃者が元のパスワードを知ることが難しくなります。 とはいえ、パスワードのハッシュ結果との比較は可能です。
しかし、ここで注意すべき点は、パスワードのハッシュ処理はあくまでもデータベースへの不正アクセスからの保護にすぎず、 アプリケーション自体に不正なコードを注入される攻撃からは守れないということです。
====
なお、今回は新会社での対応ではなく、現行の会社に依頼するのが良いと思います。
対応会社を変える場合、新会社担当にて現状のシステム解析から入ることになるので時間とお金が大きくかかる為です。
OS やミドルウェアのセキュリティーホールもあるわけですから、パスワードを生で保存するなど今どきでは考えられません。
瑕疵として請負会社に修正を請求すべきです。
最近ではSQLインジェクションの可能性があるシステムを納入した開発会社に瑕疵を認める判決がありました。
http://www.softic.or.jp/semi/2014/5_141113/op.pdf
それは本当に生のパスワードそのものだったのでしょうか?
php , mysql ならば、password_hashでハッシュ化した文字列を保存している場合の方が圧倒的に多いと思うのですが
password みたいな文字列が保存されていたのでしょうか?
5ehqfKQFfy6UMw4E8ecfic みたいな文字列ではなかったのですか?
例えば「tak0512」とか「hiroshi1234」とか
明らかにそれとわかるような文字列ばかりでした。
正確な意味は理解できておりませんが、別のものとして頭に入れておきます。
数千件程度のリスト狙いにくるリスク可能性考えたらそこまで気にする案件でもないと思うけど。
不正アクセスあったらログ見て通報すりゃおkでしょ。
なんか数千万のユーザー抱えてるシステム並にみなさん高尚な事言ってるけど、発注金額によっちゃ仕方ないレベル。
難癖つける前にそれなりの金額と事前交渉を用意する方が先なんじゃない?
生パスワード必須とか最初に言えば済む話、仕様変更するなら金積めよw
ハッシュはあくまでハッシュであって暗号化されたデータではありません。
仕事を回すために従来の部品を使い回ししていることは多いので、相手が帰りたいといっても納得できるまで聞くべきでしたね。
しかし平文はないですね。貴方の上長に報告した上で相手と交渉すべきでしょうね。