アプリにハードコードされた認証情報を明らかにしたドイツの開発者に「ハッキング」有罪判決
(infosec.exchange/@WPalant)- ドイツで、ある開発者が業務中にソフトウェアのログを調査していて ベンダーのDB接続情報 を発見し報告したが、裁判所はこれをハッキングと判断した
- 問題のソフトウェアはベンダーのデータベースサーバーに MySQL接続 を作成しており、そこには開発者の顧客企業だけでなくベンダーの全顧客データが入っていた
- 認証情報はアプリケーション内に 平文でハードコード されており、逆コンパイルすら不要なほど露出していた
- 裁判所は、パスワードが存在するという事実だけで 保護メカニズム があったとみなし、それを回避した行為がハッキングに当たると判断した
- このような判決は正当なセキュリティ研究を萎縮させ、ずさんなセキュリティを持つ企業が責任を免れつつ、ユーザーをさらに危険にさらす可能性がある
発見から告訴まで
- ドイツ法がセキュリティ研究を危険な行為にしかねないとの懸念が出ている事例
- ある開発者は、ログメッセージが過剰に発生するソフトウェアを調査する業務を任されていた
- 調査の過程で、そのソフトウェアがベンダーのデータベースサーバーへ MySQL接続 を作成していることを確認した
- データベースには自分の依頼人のデータだけでなく ベンダーの全顧客データ も入っていた
- 開発者はこれを確認した後、ただちにベンダーへ通知し、ベンダーは脆弱性を修正したが、開発者に対して刑事告訴を行った
裁判所が見た保護メカニズム
- 争点は、アプリケーションにハードコードされたデータベース認証情報が、ハッキング容疑を正当化するほどの保護手段に当たるかどうかだった
- 当該認証情報は 平文で露出 しており、逆コンパイルも必要なかった
- 裁判所は、パスワードがあった以上は保護メカニズムが存在し、それを回避した行為はハッキングだと判断した
セキュリティ研究に残るリスク
- 上級審で判決が覆ることを望む反応が出ているのは、保護手段がどれほど不十分でも、その存在だけでセキュリティ研究がドイツ法上の 犯罪的ハッキング になり得るため
- 正当な研究が萎縮すれば、企業は 不適切なセキュリティ を維持したまま責任を回避でき、最終的にユーザーが危険にさらされる
1件のコメント
Hacker News のコメント
記事タイトルは少し紛らわしく、ほとんど釣りタイトルに近く見える。正しく理解しているなら、彼の罪は露出していたデータベース認証情報を使って第三者のデータベースサーバーにログインしたことだった
つまりタイトルのように単に認証情報を「露出」させたとして起訴されたのではなく、実際にそれを使って中を見て回った、という方に近い
建物の入館証を受け取ったとき、開くドアは入ってよい部屋だと仮定するのに似ている。警備チームが入ってはいけない部屋で私を見つけたとして、それが私の落ち度なのか、それとも誤った権限のカードを渡した人の落ち度なのかは曖昧だ
ドアを開けて中を見た後、すぐに「ここは入ってはいけない場所だ」と気づいて警備チームに報告したのなら、処罰されるべきなのかも疑問だ
しかし核心は、ログインする前にそれを知ることができたのかという点だ。認証情報がアプリ内にあるなら、その会社のセキュリティがそこまでずさんで、全顧客データにアクセスできてしまうと想定すべきなのだろうか。彼にはアプリを使う権利があり、アプリがその認証情報を使っているのだから、自分もそれを使ってよいと考えるのは、それほど大きな飛躍ではない
いずれにせよ、この判決の結果はコンピューターセキュリティに明確に悪影響を及ぼすだろう。今後このような脆弱性を発見した人が、法的報復を恐れて報告しなくなるかもしれない
開発者の観点では、パスワードは正規ユーザーではなく非ユーザーのアクセスを防ぐためのものだと見るのが自然だ。そもそも認証情報は隠されていたわけでも難読化されていたわけでもなかった
ユーザーがアクセスしてはいけないことが明らかになると、ベンダーに報告した。私が何か見落としているだろうか。一方には自分の仕事をした開発者がいて、もう一方には恥をかかされた会社が報復し、潜在的なバグ報告者を脅している姿がある。何が起きているのかは非常にはっきりしているように見える
データベース名もそのように見えたらしい。その後、全顧客のデータが入っていることに気づくとすぐに接続を切った
重要なのは、アクセスした後にそのデータで何をしたかだ。何もしなかったなら犯罪であるべきではなく、犯罪はそのデータを実際に悪意を持って使用したときに成立すべきだ
これはドイツではかなり大きな問題だ。引用されている StGB 202 以下の条項 のため、民間部門のセキュリティ研究は事実上不可能、少なくとも非常に魅力のない仕事になってしまった
ほぼ20年の空白が生じ、若いエンジニアがこの分野に関心を持ったり訓練を受けたりすることがほとんどなかった。最も資金力のある大企業が見つけられる人材をさらっていき、最上位の人材は海外へ行った。そのため、ドイツ企業の多数を占める中小企業は日々ますますハッキングされている。誰も監査しない。今ではネットワークにつながっているものはすべてセキュリティリスクだ
上級審で覆ると期待するのは非常にナイーブな考えだと思う。被告は AG から LG、OLG、BGH まで進み、何年もの時間を無駄にすることになりかねない。費用も10万ユーロほど飛ぶと見ている。いったい何のために。会社が自分たちのデータを適切に保護できておらず、それを知らせてあげたら、「ありがとう」の印として法廷に立たされたというわけだ
私の助言はこうだ。明確なバグバウンティプログラムがない、または自分の会社ではない、あるいはその会社が明示的に文書で依頼し費用を支払った仕事でないなら、その問題を自分の問題にするな。善きサマリア人コンプレックスを抑え、すべてのファイルを削除し、誰にも話すな。特に職場ではなおさら話すな。訴訟が始まれば、質問された人は「ああ、DevOps の Mike がヘックスダンプでそれを見つけました」と言うだろうし、後悔することになる
ドイツの古参の情報セキュリティの達人の中には、この問題に非常に腹を立て、政府機関で事故が起きても支援を拒む人もいる。苦痛を通じて学べ、というわけだ
この事件は何年も続いてきた
昨年夏、裁判所は検察の事件を棄却した。この制度では検察が事件を裁判所に提出し、裁判所が速やかに審査して明らかに不十分なら公判日程を組む前に棄却できるのだが、これはかなり珍しい。検察は上級裁判所でこれを覆し、そのため同じ下級裁判所で裁判が開かれたが、最初に事件を棄却した裁判官とは別の裁判官が担当することになった
「2023年5月10日の Jülich 地方裁判所の決定によれば、セキュリティ研究者に対する刑事手続きは棄却された。裁判所は、セキュリティ研究者がアクセスしたデータは十分に保護されていなかったため、刑事犯罪は成立しないと見ている。『無断アクセスに対して特別に保護されたデータだけが、当該犯罪の保護範囲に属する。これは、データアクセスを防ぐのに客観的に適した措置が講じられていたことを前提とする』と裁判所の決定は述べた。『裁判所は、パスワード保護そのものだけで十分だという検察の見解には同意しない。たとえばパスワードが単純すぎる場合や、特定のアプリケーションで標準化された形で使われている場合、パスワードが常に有効なデータ保護を提供するわけではない。そのような場合、データアクセスの提供は犯罪を構成しない。』」
「heise online は Modern Solution のソフトウェアを独自に調査した結果、実際に埋め込まれたデフォルトパスワードが含まれていることを確認できた。これは、同社のウェブサイトから自由にダウンロードできるソフトウェアを調べた人なら誰でも、Modern Solution のサーバー上のデータにアクセスできたことを意味する。」
いや、彼はその認証情報を使ってデータベースに接続した罪で有罪判決を受けた。ドイツ法は知らないが、少なくとも英国では Computer Misuse Act 違反が明白なので、結論が見えている事件だ。
好むと好まざるとにかかわらず、こういう調査をする立場にいるなら、法律の基本くらいは知っておくべきだ。
開発者はセキュリティ研究をしていたのではなく、バグを調査していたように聞こえる。データベースに接続して、それが何なのかに気づいた後、すぐに切断して責任を持って報告したことが処罰につながるべきではない。
他の人も言っているように、こんなやり方では、人々はこの知識を実際に「悪用」する人たちへ売るよう誘導されてしまう。
何が違うのか分からない。利用規約違反くらいならまだしも、これを「ハッキング」と呼ぶには程遠い。
パスワードがあるからといって、人々を締め出そうとしていたという意味ではない。彼らはそのパスワードを一緒に配布していたのだ。
建物に入るときにキーカードを渡されて、「行ってはいけない場所には行かないでください」と言われたら、実はそれがマスターキーだった、というのと同じだ。そもそもそのカードが入ってはいけない場所まで開けられると、どうやって分かるというのか。
私にも Google サービスの認証情報はあるが、それは私のものにだけアクセスできるようにするものだ。
そのデータの送信元と思われる別サービスのコネクタを実行し、ファイアウォール上でリモートの MySQL サーバーへの平文接続が開かれるのを観察した。中を見てみると、使われていた認証情報が MySQL DB の全テナントで同一だった。つまり、露出していたのはその顧客のデータだけでなく、全テナントのデータだった。
その後、彼はユーザーデータのハッシュを作ってそれをエクスポートし、当局に通報するとともに、ユーザーが自分が侵害されたと見なすべきシステムに含まれているか確認できるようにしようとした、と私は理解している。その DB は約70万人のエンドユーザーデータを露出していた。また、この問題を DB 運営会社にも知らせた。
そのコネクタの提供元は TLS を使う新しいクライアントを出し、彼は問題が依然として有効であることを示すために、それも回避した。
クライアントソフトウェアをデコンパイルしてパスワードを得たという容疑もかけられたが、私の記憶では、彼は単にファイルをメモ帳で開いただけだと主張していた。
意図より多くのデータにアクセスできることに気づくと、接続を切った。
私も似た状況でまったく同じことをしたことがある。問題のあったデスクトップソフトウェアのベンダーがあり、設定ファイルにデータベース認証情報が平文で保存されているのを見て接続した。私の場合、そのデータベースは当社専用のシングルテナントだったので、やりたい作業を処理できた。
こういう事件に法律を適用する際には、当然意図が考慮されるべきではないのか。この開発者に、制限されたシステムへアクセスしようとする意図があったようには見えない。
そういう法律は書き直すべきだと思う。意図が重要で、この「ハッカー」が害を及ぼそうとしていたようには見えない。
会社はセキュリティ上の穴が露呈して恥をかき、それを公開した人を罰したがっているのだ。
この一件だけでも、開発者としてドイツで働きたいとは思わないし、セキュリティ分野ならなおさら行きたくない。
彼らは「農民」が自分の立場をわきまえ、貴族の窓をのぞき込まないことを望んでいる。世論の光を弁護士たちが何とか当てない限り、国家はほとんど常に最も金を持つ側につく。だからこういうことは匿名でやるべきだ。
オランダで食品スタートアップをしていたことがある。
郵便発送を担当する大手で、かつて政府組織だった PostNL と仕事をしていた。毎週、私たちの注文を彼らのシステムにアップロードし、自社の履歴を見ることができた。
ところがある日突然、他のすべての顧客の履歴にアクセスし、ユーザーデータをエクスポートできるようになった。その多くは直接の競合で、彼らのメーリングリストは私たちにとってかなり価値があったはずだ。
私のパートナーは、より多額の投資を受けていた競合 Marley Spoon の全データと、ほかのいくつかのデータを Excel にエクスポートした。彼が私に話したとき、私はすぐに削除するよう言った。面白いかもしれないが、法的責任を作るべきではないからだ。とはいえ、それを使っていたら数週間で10〜30%成長できたかもしれない。
彼らは EU 法上の義務があったにもかかわらず、絶対に報告しなかった。
結局、城の鍵を手に入れたなら、使わない方がいい場合もある。あるいは使ってもいいのかもしれないが。
価格交渉でそれを使うこともできたし、もしかするとそうすべきだったのかもしれない。彼らはその後数か月で私たちへの料金をほぼ2倍に引き上げ、容赦がなかった。注文の3〜8%を誤処理しても返金しなかったことは言うまでもない。
だが私たちは代わりに別の配送サービス数社へ移り、そこにもそれぞれ欠陥はあった。
個人情報が漏えいしている証拠を含むスクリーンショットなら間違いなく役に立つだろうし、PostNL があのひどいシステムを直したとは思えない。
オランダ法では、同僚が自分にはアクセスしてはいけないと知りながら、漏えいの有無を確認するために必要な範囲を超えてデータをダウンロードしたなら、犯罪を犯したことになる。
交渉でこの情報を「使った」なら、それは恐喝であり、特にあれほど大きな会社で、実質的な競争相手もいない相手に対しては絶対にやりたくないことだ。彼らは警察に通報し、あなたは終わりだ。
私の住んでいるところで起きた事件と似て聞こえる
https://www.techdirt.com/2022/02/25/turns-out-it-was-actuall...
その「ハッキング」は、Base64 の社会保障番号をデコードしたものだった
怠惰なプログラマーたちがオンラインの Base64 デコーダにあれこれ貼り付ける場面を想像してみてほしい。そのペイロードの中にどれだけのものが入っているだろうか
base64decode.org のようなサイトを運営すれば、優れたハニーポットになるはず
実際にデータを暗号化していたなら問題なかっただろうが、Base64 エンコードは暗号化ではない。Base64 は非常に簡単にデコードできる: https://developer.mozilla.org/en-US/docs/Glossary/Base64#the...
多くの「ハッキング」は、どこかの間抜けが玄関のドアを全開にしておいたようなもの
玄関のドアを全開にしておいて盗まれたなら世間は同情しないだろうに、企業が基本的なセキュリティのベストプラクティスを更新・維持・強制するための費用を惜しんで何もしなかったときには、人々はハッカーに怒鳴る
あなたが玄関のドアを全開にしていて、私が入って盗んだなら、私は犯罪を犯したことになる。「ドアが開いていた」は言い訳にならない
私は非難されて当然だろうが、私から盗んだ人も相応の処罰を受けるべきだ
たとえ彼らが「すべて安全か確認しようとした」と主張したとしても同じだ
これは善きサマリア人の法の逆ではないか? 何かを見ても何も言わず、何もしないでおけ、という感じだ
こうした問題を見つけることが違法なら、問題があるかもしれないと気づいたあとで立ち止まり、その会社の株を空売りするのは合法なのか気になる
実際にやろうとすると直面する問題は、投資家がセキュリティ問題をほとんど気にしないことだ。だから脆弱性を公開しても株価は下がらない可能性が高い。しかも、この会社は上場企業でもないようだ。ドイツ語ができないので断言は避けるべきだが、おそらくこちらだと思う: https://www.modernsolution.net/
「こんにちは、偶然このアプリのオフセット X にパスワードがあることに気づきました。こちらのヘックスダンプのスクリーンショットにパスワードが見えています。横にはユーザー名とホストもあり、SQL 接続であることを示す明確な表示もありますが、私はそのパスワードが何なのか確認できません。このユーザー名とパスワードでこの IP に接続しないでください。よろしくお願いします!」みたいな感じだ
また、米国企業の例では、大規模なデータ流出や侵害が会社の財務に悪影響を与えない場合も多い
刑法202a条はこうなっている
https://www.gesetze-im-internet.de/stgb/__202a.html
大まかに言えば、「無断アクセスに備えて特別な方法で保護されたデータに、自分または他人のためにアクセスを得る行為」だ
どうやら、クライアントに埋め込まれているハードコードされたパスワードもこれに該当するらしい
だが現実はこうで、2050年ごろには直すかもしれない