19番目の日記

情報系よわよわ高専生がやったことや思ったことをつらつらと.

K-SEC 和歌山大セキュリティ演習に参加してきた

 お久しぶりです。SIGMAです。毎日ブログ書くと言う意気込みはどこへいったのやら、いつの間にか年が明けましたね。おめでとうございました。 さて、今回は、高知高専で行われた和歌山大セキュリティ演習に参加してきました。  「和歌山大」セキュリティ演習ですが高知です。何故ですかね。

きっかけ

 僕のクラスの教室には、前と後ろに二つ黒板があるのですが、ある日、後ろの黒板にこんな文が。
「K-SEC講習会 @高知 交通費でます」

行くしかない

 え?だって講習会に参加して学べるうえに観光できるんですよ?交通費と宿泊費を使わずに。 最高じゃないですか。秒でそれ担当の先生にメールしましたよ。 実は石川のウインターキャンプも募集しててそれも申し込んだんですけどそっちは落ちちゃいました。 と言うわけで1月10日(金)、授業は特欠で新千歳空港から羽田で乗り継ぎ高知へ。 先生が一人と先輩が一人の三人での移動です。

金曜日と土曜日の午前はせっかくの高知ですので観光してました。それにしても高知あったかいですね。冬は氷点下の北海道民からすれば、この季節に10度超えとか信じられません。

 セキュリティ演習は土曜の午後からのスタートでした。高知高専は空港の近くにあるとのことなのでまずは連絡バスではりやま橋から高知龍馬空港に行き、少し歩けばつきました。

f:id:sigma1425:20200113195909j:plainf:id:sigma1425:20200113195915j:plain

 受付をして名札を受け取り、会場となる教室へ。演習はA~Eの5グループに別れてて、僕はEグループでしたのでEグループの机へ、同じグループの人が来るたびに軽く挨拶して少々雑談をしていると演習が始まりました。みんな話しやすい方々でよかったです。

セキュリティ演習の開始

 まずは高知高専校長のお話、演習内容の説明と和歌山大の先生のお話があり、演習内容を簡単にまとめると

  • 自分たちはホスティングサービスの会社の社員
  • 2台のサーバが稼働している。
  • お客様などからサイトの異常などインシデントの報告を受けるのでその原因究明や修正、対策を行う。
  • 勝手に修正してはいけない。設定の変更やファイルの削除などを行う時はお客様やCEO(今回の演習ではDEOはセオさんという名前)に電話してその操作を行って良いか確認しなければいけない。

といった内容でした。  その後自己紹介タイムがありました。Eグループには苫小牧高専の僕の他、香川高専詫間キャンパス、米子高専、長野高専、そして開催地である高知高専の方の5人でした。

1つ目の問題(不正ログイン)

 演習が始まると、早速電話がきました。
「イノウエさんと言う方のサイトにアクセスすると登録完了と書かれたページに飛ばされる」
というものでした。サーバ内のイノウエさんのディレクトリのドキュメントルートを見てみると、なにやらindex.phpが最近書き換えているらしいことがわかり、本来のサイトの内容らしいHTMLの記述と共に、header関数でリダイレクトして登録完了ページに飛ばすコードが書かれていました。CEOのセオさんにイノウエさんの連絡先を聞き、イノウエさんに最近index.phpを変更したかどうかを確認したところ、最近変更はしてないしそんなコードが書いた覚えがないとのことでしたので、問題のコードを削除して良いか確認をとり、index.phpのheader関数を削除しました。再びイノウエさんのページにアクセスすると、正常にページが表示されて一件落着...ではありません。

 確かにイノウエさんのページは元に戻りましたが、なぜindex.phpが書き換えられていたのかはわかっていません。このままでは再び同じことが起こる可能性があります。誰かが不正にログインしたかもしれないのでauth.logでsshの認証記録を確認したところ、 

Failed password for inoue 

という文が短時間に大量に記録されいるんですね。しかも同じIPアドレスから。そうです。ブルートフォースです。イノウエさんの設定していたパスワードがブルートフォースによって突破され不正にログインされていたのです。そこで、イノウエさんにパスワードを変更するよう伝えたところ、今手が離せないのでパスワードを変更できないと。そこでセオさんにも確認をとりルートユーザーに切り替えpasswdコマンドでパスワードを変更し変更後のパスワードをイノウエさんに伝えログインの確認をしてもらって終了。なんやかんやあって最終的に超簡単なパスワードになりました。
これイノウエさんの突破されたパスワードより簡単なのではと思ったり
 ログインの確認がとれ、この問題は終了しました。

 問題が解決して一息ついたのも束の間、すぐに次の電話が...
 ここで1日目が終了しました。この問題は2日目(僕の高知遠征というくくりでは3日目ですが)にやることになります。その日の最後はJPCERTの説明がEmotetなどの被害についてのお話がありました。

2つ目の問題(DoS攻撃

 セキュリティ演習2日目です。この日は朝からのスタートです。再び前日の最後にかかってきた電話と同じ内容の電話がかかってきました。
ホスティングページが見れない」
ホスティングページにアクセスしたところ、ずっとくるくるしたままページが読み込まれませんでした。グループに一台与えられているレッツノートルーターを接続し、ワイヤーシャークでパケットをキャプチャし、フィルタをかけたところ何者か攻撃を受けていることがわかりました。その時和歌山大の先生からのヒントタイムがありました。この攻撃はSlow HTTP DoSというそうです。また、サーバでnetstatコマンドどwcコマンドを用いると同一ユーザーからの通信が256行出てるんですよね。この256というのはapacheの最大プロセス数だそうです。apacheの設定で攻撃者のIPからの通信を遮断しようと試みましたが失敗。ヤマハルーターtelnetで接続するなどしてipfilterを使って攻撃者のIPアドレスを遮断しました。

実はこのインシデント、なんとなくはわかったのですがワイヤーシャークやらルーターやら初見の知識が多すぎて充分に理解できてない感が一番強いんですよね...

3つ目の問題(権限不備)

はい、またお電話です。
 「ヒラタさんという方のサイトにアクセスすると、不審なサイトに飛ばされる」
1日目のイノウエさんの件と似てますね。ちなみになのですがヒラタさんのページにアクセスすと和歌山大のサイトに飛ばされました。僕は不審なページじゃなくね?と思ってたのですが、ファシリテーターさんが、「これは不審ですねぇ〜」などと言うものですから不審なのでしょう。イノウエさんの件と同様indexの書き換えを疑いましたが今回はHTMLファイルでしたし特に不審なコードなどありませんでした。僕は見落としてたのですがドキュメントルートに所有者がyamashitaとなっている.htaccessファイルを発見。そこにはリダイレクトの記述がありました。また、ドキュメントルートの権限がなんと777、つまり誰でもなんでもできるようになっていたわけですね。ヒラタさんに確認すると友達も編集できるように権限を変更したらしいです。この電話は僕がしたのですが超コミュ障発揮しました。グループのみなさん、お見苦しいところを見せてごめんなさい。というわけで権限を変更し.htaccessを削除して解決です。

 .htaccessというディレクトリ単位で適用される設定ファイルがあるんですね。初めて知りました。まだまだ勉強不足だなと。

4つ目の問題(memcachedリフレクション、IPスプーフィング)

 はいまたまたお電話です。
「管理用サーバに大量のトラフィックが発生している」
だそうです。今までは顧客用サーバでのトラブルでしたが今回は管理用サーバに問題発生です。nloadコマンドでネットワークをモニタリングしてみると、管理サーバから顧客サーバにパケットが送られているようです。ワイヤーシャークで確認すると、顧客サーバから管理サーバのmemcachedに「get test test test test test test test test test test 」という問い合わせが1パケットで2つ送られていることが確認できました。管理サーバのmemcachedtelnetで接続し、「get test (ry」を打ち込むと、なんとtest1つあたりに2万文字の文字列が返されているではありませんか。問い合わせ43文字に対し40万文字返ってくることになりそりゃトラフィックが発生しますねという感じです。memcachedリフレクションと言うらしいです。
 また、そのパケットはルーターで監視したわけですが、顧客サーバと管理サーバで通信するのであればルーターを通らなくても良いのですよね。ではなぜルーターで監視できるかですが、UDPだと送信元が偽装できるようで、外から送信元を偽装し、顧客サーバとして問い合わせを送ることで管理サーバは勘違いして顧客サーバに返すそうです。IPスプーフィングというそうです。
 解決法としては、testに対応付けられている2万文字の文字列を削除することで解決しました。これは一時的な解決法でしかなく、永続的な解決法としてはUDPを無効化すれば良いようです。UDPの無効化の方法を見つけた頃には時間がほとんどなく、セオさんに確認する暇も無かったため、終了時間をすぎてからこっそりやることに。無事トラフィックがなくなりました。

 これで演習がすべて終了しました。最後は解説があったり写真撮影などがあった後、高知高専を後にしました。すごく楽しかったです。

まとめ

 文章をまとめる力が足りなく、かなり長々と書いてしまいました。今回の演習で対処した攻撃をまとめると、

 僕の知識が及んだのがブルートフォースと権限の不備くらいしかなく、ほとんどが新しく知ったものでした。それでも、なんとか吸収しようとひたすらメモをとりまくってたので今回の演習で学んだことをこれからの学習に活かせていけたらなと思いました。高知という、北海道民からすれば遥か遠くの地でしたが、交通費宿泊費支給でこのような演習に参加できたのはすごく貴重な体験でしたし、グループのみなさんやファシリテーターさんがとても話しやすい方達で、とても楽しく学ぶことができました。このように楽しく学ぶことができる演習は、楽しい思い出としてかなり記憶に残りやすいので、これからもこのようなイベントには積極的に参加していきたいものです。

 かなり拙い文章になってしまいましたが、読んでくれた方ありがとうございました。これからも気の向くままにブログを書いていこうと思いますので、暇な時にでも読んで戴けたらなとおもいます。それでは!