
国立感染症研究所のWebサーバーでCGIに脆弱性、踏み台として使われる 30
ストーリー by hylom
いにしえの 部門より
いにしえの 部門より
国立感染症研究所のサーバーに脆弱性があり、このサーバーを踏み台とした不正行為に使われていたことが発覚した(日経xTECH)。
問題のサーバーは2012年まで公式Webサイトで使われていたもので、その後ファイルサーバーとして使われていたという。このサーバー上で動いていた「20年以上前にPerl言語で作られたCGIプログラム」に脆弱性があり、これを狙った攻撃によってサーバーが外部から操作されてしまったという。
20年以上前にPerl言語で作られたCGI (スコア:4, 興味深い)
ネコも杓子もPerlでCGI、っていう狂った時代だったので、
unixとかシェルとかの基礎知識もないままに、
コピペでコード書いてCGIとして動かしちゃってる人間がたくさんいた。
CGIの解説ページとかがたくさんあって、
わかりやすく説明するために単純化されたコードが公開されてたりして、
入力検証とかエラー処理とかが省かれた危険なコードなんだけど、
そのままでも一応動くもんだから、そのままコピペして動かしてたり。
CGIを作って公開してるWebページがたくさんあって、
そこからダウンロードしてWebサーバにアップすればそのまま動く、ってことだったけど、
ソース追っかけてみたら色々やばすぎだったり。
思い出してみると、恐ろしいというか牧歌的というか……
Re:20年以上前にPerl言語で作られたCGI (スコア:1)
人数だけなら当時より今の方が同じようにコピペでやったる人は多いかも。
コピペ元の質が当時と比べて上がってるのかどうかは知らん。
Re:20年以上前にPerl言語で作られたCGI (スコア:1)
おっと、とほほ先生の悪口はそこまでだ。
Re: (スコア:0)
Re: (スコア:0)
おいらもかなりばら撒いた…
まだPerl4の時代…
Re: (スコア:0)
サンプルならキモの動作だけ示せば良いかと思って。
Re: (スコア:0)
当時だとそれしかなかった、ような状況ですねえ……
某ポータルサイトに関わってた頃ですが、そこでは C でがりがりに書いた CGI を、しかも DB が MySQL 3.23 の、それもベータ版で開発してた。
※サブクエリが使えなくて難儀するわ、ベータ版ならではというかバグ引いたりもした記憶が……
-- To be sincere...
Re: (スコア:0)
Delphiがあっただろ!
Re: (スコア:0)
牧歌的な時代は「HTMLタグ何でも使える」って感じだった。
HTML自体が低機能だったので、荒らされてもせいぜいブラクラぐらいだし。
Re: (スコア:0)
若い方に向けて補足しておくと、20年以上前は、今のブログシステム、CMS(ワードプレスなど)は無いので、HTMLエディタ(またはウィンドウズのメモ帳)やホームページビルダーというソフトウェアを使って作られた個人運営のWEBサイトが林立していた時代です。素人がPerlプログラムをHTML感覚でいじっていました。それがふつうでした。大抵の目的はアクセスカウンタ(今でいうユーチューブの再生数、チャンネル登録者数の様なもの)、掲示板、チャット、アンケート、ゲームです。
今は、インターネットサービス事業者が提供するブログサービスをつかうことで一定のセキュリティ品質が保たれた個人サイトが構築できる(不適切なコードをコピーする必要が無い)ので、状況は良くなっているといえます。(コメント欄が荒らされたりはしますが。)
事業者用サイトにしてもワードプレスの自動インストールまでできるあたり、隔世の感であります。
>思い出してみると、恐ろしいというか牧歌的というか……
若さ故ですね。赤ん坊と変わらない。(それなら幼さか?)
残念だ... (スコア:1)
「国立感染症研究所のサーバーが感染」ってめっちゃ言いたいのに、踏み台じゃ言えない。
Re:残念だ... (スコア:1)
Re: (スコア:0)
有害なURIをあちこちに書き込んで感染の拡大に貢献した、てな感じでおなしゃす
Re: (スコア:0)
中国武漢ウイルスが日本を踏み台にして韓国に感染
当時は (スコア:0)
2000年頃か・・この頃はWebアプリ制作でもセキュリティがほとんど考慮されてなくて
「仕様通りに遷移すればいい」
って感じだったからな。
自分が関わったものでも今考えるとXSSやSQL,OSコマンドインジェクションが起きそうで怖い。
「さすがにもう使ってないだろ?」と思ってるのが現役ってことがあるし・・
Re:当時は (スコア:1)
心配だったので相談したら「WAFを通すから大丈夫!」と言われたので、「なーんだ大丈夫なんだー。心配して損しましたよ」って感じで納品した。
その後のことは知らん。
Re: (スコア:0)
2000年頃なら,SQL はまだあまり使われてないから心配いらない。
ウェブサーバが書き込み可能なテキストファイルが公開ディレクトリに置いておくのが主流だったろ?
Re: (スコア:0)
> ウェブサーバが書き込み可能なテキストファイルが公開ディレクトリに置いておくのが主流だったろ?
フォームでIDを入力、そのIDに拡張子 dataをつけてファイル名にしてそれをオープン・・・
はい、そこにOSコマンドインジェクション。
・・・とかね。
Re: (スコア:0)
Perlのopenは超簡単にOSコマンドインジェクションを起こせる恐るべき仕様だったからな(いやリモートシェル上で普通に使う分には便利なんだけど)。
Re:当時は (スコア:2)
perl5導入された3引数openを使えば問題ない。んだけど、
perl5が出たの1994年なのに、CGI全盛期まで長らくperl4がはびこってたし、
互換性を引きずりすぎて、手軽な穴がいっぱい残った印象がある。
taintモードで動かすだけでも、手軽にかなり安全になるのに…
Re: (スコア:0)
ふつーにSQL使ってましたが。
MySQLよりPostgreSQLのほうが多かったと思う。
Re: (スコア:0)
俺のやってた仕事じゃ使ってたぞ。
まだまだオープンソース系DBの評価がいまいちだったから
だいたいDB2かOracleだったな。
ターゲットはWebSphereだけど
開発テストで使ってたのはTomcat ver3の時代・・
Re: (スコア:0)
ps2の予約者漏洩が2000年だったはず。
インジェクションの類はもう知られていたような。
サーバー (スコア:0)
20年前のPerlで書かれたCGIが動いているサーバーって他にもたくさん脆弱性ありそう。
OSは新しくしていたのだろうか。
つーか、今時ファイルサーバーをインターネットからアクセスできるようにしているって研究所のセキュリティ管理やばすぎ。
Re: (スコア:0)
5ちゃん「そだねー」
Re: (スコア:0)
2ちゃんは掲示板荒らしとかの「ストレステスト」に晒されてたからセキュリティに気を付けてある方だぞ。
当時のセキュリティ問題のほとんどは黎明期のphpに手を出した素人が作ってた。
Re: (スコア:0)
OSも普通にバージョンフリーズの概念でそのままに決まってるじゃないですかー
Linux 2.2だったらうれしいぐらいかな?
SAMBAはもちろんSMB1.0しか動かないだろうから、ファイルサーバー=FTPの公開サーバーのことじゃないかな?
Re: (スコア:0)
インターネットはend-to-endですよ。
通信の遮断、制限なんてせずに、全てのインターネットノードがend-to-endで通信できるのが絶対正義なのです。
それが次世代プロトコルであるIPv6の思想なのです。
(だからIPv6はダメなんだよ)
内製だった (スコア:0)
2000年〜2010年ごろだと所内のサーバ/NW機器はハードウェア・OSレベルの保守のみで上物はいわゆる情シス的な立ち位置の先生方が自前で作っていたので、まあそういうこともあるだろうなと。
#絶対AC