LINE新卒エンジニアのしごと〜6月のセキュリティエンジニア編〜

LINEには、今年33名の新卒エンジニアが入社しています。この連載では、新卒で入社したエンジニアがどのように働き始め、どのような仕事をしているのかを月に1回程度の持ち回りで紹介してもらいたいと思います。

2018年秋〜2019年春入社の2回目は、LINEのセキュリティー部門であるアプリケーションセキュリティチームに所属しているKohさんに、仕事の始め方や最初にやった仕事、普段の業務を紹介してもらいました。

イントロダクション

こんにちは!2018年秋にサイバーセキュリティ部門のアプリケーションセキュリティチーム(AST)に正式に配属されたKoh You Liangです。これ以前は、同チームで半年余りアルバイトとして働き、リスクアセスメントチームとバグバウンティチームに所属して主に脆弱性の調査とレポートの検証を行っていました。その後、ゲームセキュリティチームにも参加して、両チームのための自動化ツールの開発とAIR GOなどの社内製品の改良に取り組んでいます。

この記事では、入社からチームのジュニアメンバーになるまでの過程をご紹介します。私の場合は、新卒者向けのトレーニングが1か月で終わったので、すぐに実務に移行しました。

私がこの記事の執筆を楽しんだのと同じくらい、楽しんでお読みいただければ幸いです。

学生からセキュリティエンジニアへ:私個人の体験

前置きとして申し上げておきますが、私の体験は大学新卒者にしか当てはまらないかもしれません。私たちのチームには、実務経験があり、すぐに仕事に取りかかれる人が大勢います。しかし、私個人としては、新卒のこの時期が楽しかったことを覚えています。ほとんどの同僚と同じように、最初にこの会社に入ったときは大学に通いながらアルバイトとして週に3日働いていました。脆弱性とは何かということは知っていましたが、リスクアセスメントの際に実際にどのような方法で脆弱性を発見するのかはまったく知りませんでした。そのため、数か月間はメンターに付いて一緒に実務を行い、アプリケーションのバグを発見するプロセスをそばで見て覚えました。

新人の方のために説明すると、リスクアセスメントとは、サービスのアップデートやリリースに際して、サービスの脆弱性評価のためにASTの大部分のメンバーが参加して行う継続的なプロセスです。通常、ソースコードは提供されますが、アルバイト社員は初めのうちソースコードにアクセスできず、かなりの量のブラックボックステストを行うことになります。

ブラックボックステストでは、攻撃者の視点で考え、フロントエンドを見てバックエンドで実際に実行されていることを推測してバグを見つけなければなりません。幸い多くのアプリケーションはWebベースかコンポーネントベースなので、プログラムでエンドポイントを探して列挙していく作業は、不可能なものではありませんでした。

社内ワークショップでやってたハードウェア診断もそうでした。
回路分析するために色々試してみました。

ただし、Webの場合、一部のソースコードは誰でも入手することができます。コードがすべてWebページ上に記述されるHTMLとJavaScriptがこれにあたります。例えば、ユーザー入力を受け付ける検索機能を調べる場合には、当然、クロスサイトスクリプティング(XSS)攻撃の可能性を疑います。特殊文字を入力して何が表示されるか、またどのようにページに表示されるかを調べることで、エンドポイントが脆弱であるかどうかを判断できます。

もちろん、初めからすぐにこのようなバグを発見できたわけではありません。メンターの方がいくつかの練習用サイトを勧めてくれたので、そこで簡単なXSSから始め、さまざまな脆弱性の連鎖が必要なものに段階的に進みました。チーム全体のバグレポートを約2週間かけて読んで要領を覚えた後、やっとフォーラムサイトで反射型XSSを発見できました。それが、私が見つけた最初のバグでした。そして最終的には、セキュリティ分野と同様に、Webは評価しなければならないカテゴリーの1つに過ぎず、AndroidとiOSの両方のアプリケーションとコードの解析が必要なモバイルカテゴリーもあるということを学びました。

メンバーには、インターネットや社内の問題追跡システムあるいはWikiで検索する能力があるという前提なので、体系的なトレーニングは存在しません。エンジニアリングは数学のようなもので「習うより慣れろ」が基本であるためです。仮説を立てているよりも実行した方がより速いペースでより多くのことを学べるのです。

アルバイトの全期間を通じて主にブラックボックステストを行っていたおかげで、私はWebがとても好きになりました。そしてそれがきっかけとなり、同僚の多くがやっていたキャプチャーザフラッグ(CTF)を始めました。

キャプチャーザフラッグ(CTF)

CTFは、通常、競技会形式で行われるイベントであり、セキュリティの専門家や学生が参加しています。自分のチームのシステムを防御しながら相手チームのシステムを攻撃することで2つのチームが競うAttack-Defend(攻防戦形式)と、多数のチームが参加し、制限時間内にセキュリティに関する一連の問題を解いて競うジェパディ(クイズ形式)という2つのカテゴリーがあります。

有名チームに現在所属している同僚や、かつて所属していたという同僚が大勢います。LINEは、CTFへの参加を積極的に支援しています。CTFは世界中で開催されていますが、決勝戦の出場資格を得た場合、出張として会社が支援します。宿泊費や航空運賃は通常、主催者側が負担しますので、世界中のどこで開催される競技会であってもそれらの費用を心配する必要はありません。同僚の1人に日本のトップチーム「TokyoWesterns」のメンバーがいますが、このチームは世界中のメジャーなCTFの決勝大会にほぼ毎回出場しています。このチームの存在が私にとって励みとなっているのです。私は、彼らに追いつくことを目指して「OpenToAll」というチームに参加しました。初心者歓迎のこのチームでは、毎週末にCTFが開催されています。

1年間の活動の末に私の努力は実りました。賞金総額400万円のBCTFが開催されるDefcon Chinaに所属チームが招待されたのです。私たちは、16チーム中9位に進出し、同僚のいる有名チームと対戦しました。私は、このチームと直接対面するだけでなく、同じステージ上でプレイできることに興奮しました。次に私が出場する決勝大会の開催地はベトナムで、今からとても楽しみにしています。

最近、社内の別のチームが楽しんで学べる新人向けのトレーニングを作成しました。これは、下のスクリーンショットのようなCTF形式のトレーニングです。何問かに挑戦してみただけですが、非常に面白い問題でした。

これは、当社のWebベースの採用試験問題と組み合わせると、新人向けの良いトレーニングになると思います。セキュリティエンジニア以外の人もチャレンジしてみることを強くお勧めします。

セキュリティコミュニティ

■カンファレンス

昨年、正社員になって2か月目に偶然見つけたカンファレンスのトレーニングコースに興味をひかれました。そこで、私は1週間の日程でドバイに出張し、Hack in The Boxカンファレンスと、モノのインターネット(IoT)のエクスプロイトに関するトレーニングコースに参加しました。

LINEは海外のカンファレンスへの参加費用を支援しており、世界中のあらゆる場所で開催されるカンファレンスに、社員が自分で選んで参加することができます。またセキュリティ部門では、SECCONやCODE BLUEといったさまざまなカンファレンスの支援も行っています。このようなイベントの際には、必ずASTのメンバーが何人か会場入りしてブースに立ち、イベント中に行われる個々の競技会のCTFを管理します。

CODE BLUEのときのASTメンバーです!目を閉じてしまいました…

■Becks

LINEでは、今年からLINE社内のカフェで、「Beer」と「Hacks」という言葉を組み合わせた「Becks」という名称のミートアップも主催しています。このミートアップでは、社内外のセキュリティ専門家を招き、参加者と一緒にビールを楽しみながらセキュリティに関するさまざまなトピックについて話し合います。

台湾のOrangeさん。メタプログラミングを不正利用してJenkinsをハッキングした方法を説明しています。

3回目のセッションが6月に開催されたばかりですが、次回のセッションは9月頃に予定されていますのでBecks.ioの情報に引き続きご注目ください。

終わりに

昨年撮影されたASTチームのメンバー(一部)の写真です。

皆さんの入社を楽しみにしています!

Related Post