セキュリティ診断の品質向上と効率化を支えるエキスパート:セキュリティエンジニア Takumi Akiyama / akiym

目次
 
——現在のお仕事について教えてください。
 
セキュリティエンジニアとして、セキュリティ診断の見積作成から、診断実施、診断後の報告書作成までを行っています。セキュリティ診断では、Webアプリケーション診断とFirebase診断を主に担当しています。ホワイトボックス形式での診断を担当することが多いですね。
 
また、内製開発のセキュリティ診断プラットフォーム「ORCAs」(オルカス)をはじめとする各種社内ツールの開発も行っています。
 

CTFに熱中し、多数の実績を残した学生時代

——キャリアのスタートは開発エンジニアですが、プログラミングに興味を持ったきっかけは何でしたか?
 
小学生の時、CGIが全盛期で、個人でホームページや掲示板を作るのが流行っていました。KENT-WEBに掲載されていたCGIの掲示板を設置してみたことがきっかけでPerlに興味を持ち、そこからプログラミングの学習を続けてきました。最初は「他の人が書いたコードをコピペするだけ」というところからスタートしましたが、勉強するうちにWeb開発の楽しさを感じるようになり、Perlを使って色々なWebアプリケーションを作っていました。
 
——セキュリティに興味を持ち始めたのはいつでしたか?
 
セキュリティに興味を持ったのは高校生の時で、「徳丸本」(徳丸浩さんによる著作『体系的に学ぶ 安全なWebアプリケーションの作り方』)を読んだのがきっかけです。セキュリティについては、開発エンジニアであればまず意識すべき領域ではないかと考えていたので、基礎知識として勉強してみることにしました。書籍を通じてWebアプリケーションに生まれがちな脆弱性について学び、「セキュリティって結構面白そうだな」と感じました。でも、その時はそのぐらいの興味に留まっていました。
 
大学生になってから、CTFの存在を知ってからはかなりのめり込んでいきました。CTFに参加し始めたことで、バイナリの読み方など、より幅広い領域に触れるようになり、セキュリティについて勉強することがより楽しく感じられました。技術的なノウハウや、具体的な手法についてもCTFを通じて学んでいったように思います。
 
——CTFにはどのぐらい参加していましたか?
 
CTFに参加し始めた頃は個人で参加していました。2013年、大学1年生の時にSECCONの札幌大会に参加するにあたり、セキュリティ・キャンプを通じて知り合った同郷・同世代の方たちとチーム「dodododo」を組みました。弊社CTOのつばめ(米内貴志)さんもメンバーの1人で、Twitter経由で知り合いました。このメンバーで6回ほどオンサイトCTFに出場しましたね。
 
CTFにはパズル的・ゲーム的な要素があり、「問題を解く面白さ」が魅力的だと感じていました。セキュリティに対する「技術的な面白さ」は後から理解できるようになったと思います。
 
——dodododoはSECCON2015学生大会、SECCON2018・2019国内大会で優勝するなど大きな実績を残していますよね。学生時代、CTFに熱中していたんですね。
 
参加歴を見返すと、2015年には年間30回参加していました。人生の中で一番参加回数が多い年です。最近はあまり参加できていないですね。社会人になると、どうしても「土日全てをCTFに使う」ということが難しくなってきます。
 
CTFの作問も行ってきました。必ずしも「参加して強い=面白い問題を作れる」ではないのが面白いところだと感じています。参加する時と作問する時では頭の使い方がかなり違いますね。
 

<akiymさんイチオシの変わり種作問「retro crackme」>
腕に覚えのある方は、ぜひチャレンジしてみてください!

 

憧れの会社に開発エンジニアとして入社

 
——大学卒業後は、開発エンジニアとしてキャリアをスタートされていますね。
 
大学卒業後、株式会社はてなに開発エンジニアとして入社しました。Perlをメイン言語としていて、色々なWebサービスの開発をしている会社ということで親近感を持っていました。「自分が日常的に使っているWebサービスの裏側を知りたい」という気持ちもありましたね(笑)。僕は小学生の時からインターネットの世界を見てきているのですが、そんな自分にとって、はてなは憧れの会社でした。
 
——当時はセキュリティエンジニアになろうとは思わなかったのですか?
 
CTFには熱中していましたが、そこから「セキュリティを仕事にしよう」とは考えていませんでしたね。当時は「セキュリティ診断=スキャンを回すだけ」という思い込みがあり、あまり面白くなさそうだなと感じていました。今振り返ると、そもそも「セキュリティエンジニア」「セキュリティ診断」というワードを聞いても、何をするものなのか想像がついていなかったのだと思います。
 
——開発エンジニアとして、どのような仕事をしていましたか?
 
最初はWebサービスの受託開発がメインでしたね。受託開発ではありましたが、仕様や改善点に関する提案がしやすく自由度が高い環境でした。色々なサービスを担当できたので楽しかったです。締切に追われたことも多く、大変でしたが、その分思い入れがあります。
 
その後は、自社サービスの基盤部分の開発を担当していました。
 
——なぜ転職を検討するようになったのでしょうか?
 
何か強い外部要因があったというわけではなく、純粋に「開発以外のことを仕事にしてみたら面白そうだな」と考え始めたのがきっかけです。Webアプリケーションのセキュリティに関する知識は開発の前提知識ですし、CTFを通じてセキュリティに関する知識を深めたという自信もあったので、不安はなかったですね。
 

自由度と技術力の高さに感銘しFlatt Securityへ転職

 
——Flatt Securityを知ったきっかけは何でしたか?
 
2021年6月、dodododoメンバーの米内さんがFlatt SecurityのCTOに就任するというニュースを見たのがきっかけだったと思います。でも、直接会社について話を聞くことはなかったですね。勧誘されたことも一回もないです(笑)。
 
会社について調べてみると、CTF界隈で活躍していたメンバーが在籍していたので、技術力の面では安心できる会社だと思いました。執行役員のGa_ryo_さんとは当時面識はなかったのですが、SECCONなどのCTFでよく姿を見かけていました。
 
——Flatt Securityへ転職した決め手は何でしたか?
 
例えば、大手企業の場合、セキュリティ診断を実施する際のルールが細かく決まっていたり、スキャン中心だったりするケースも少なくないため、少し窮屈な思いをしてしまいそうだなと感じていました。
 
Flatt Securityには「割と自由に働けそう」という印象を持ちました。「自由度が高く自分の技術力を試せる環境」を探していたので、小規模で技術力の高いFlatt Securtityはまさにぴったりな環境だと思いました。とても魅力的に思えたので、他の企業には応募せず、Flatt Security一社だけ応募して、選考を経て入社することになりました。
 

技術面・運用面の両面からセキュリティ診断の質向上に注力

 
——Flatt Securityで仕事を始めて、どうですか?
 
自分が思い描いた理想形にかなり近い環境でした。技術的な面白さを感じたのはもちろんのこと、試してみたいことも色々見つけることができました。
 
——セキュリティ診断の案件リーダーを務めることも多いと思いますが、案件にアサインされたメンバーとやり取りする時に気をつけていることはありますか?
 
メンバーの進捗をガチガチに管理するのではなく、一人ひとりの自律性に委ねています。僕自身、他の人にスケジュールをきっちり管理されるのがあまり好きではないので、「ゆるさ」と「自由さ」を大切にしています。進捗が芳しくないメンバーがいたら、自分から率先して手伝ってあげるような気持ちでいます。
 
「自分が相手の立場だったら、どう感じるだろう」ということは常に念頭に置いていますね。メンバーに対してマイクロマネジメント的な態度で接するより、寛大になってあげることで得られる経験はたくさんあると思うので、そのような姿勢を重視していきたいですね。
 
——セキュリティ診断の魅力はどこにあると思いますか?
 
多種多様なWebサービスのコードを読めることに加え、その中から脆弱性を発見するという作業に面白さを感じますね。入社してから「全く同じ仕事」はないです(笑)。開発環境は会社によって様々ですし、セキュリティ診断では案件ごとにアドリブ的な対応をすることが多いです。でも、そういったところも含めて、やっていて楽しいなと感じています。
 
——仕事をしていて辛いと思ったことはありますか?
 
納期が近い案件が重なると仕事が詰まってくるので、業務量が多くなって大変だと感じることはありますね。
 
ただ、Flatt Securityがブラックだと感じたことは全くありません。「毎日残業しなければいけない」という環境ではありませんし、1日の労働時間が長いわけでもありません。体力的に大変だと思うことは全然ないですね。
 
——入社してから身についたスキルがあれば教えてください。
 
毎日が学びの連続です。色々なものに触れることができ、試せる環境なので、自分が習得した知識をさらに深掘りして学べているような感覚があります。セキュリティ診断の中でRFCを読んだり、見つけた脆弱性について報告書を書いたりすることを通じて、これまで学習しきれていなかった細かい技術的な知識が身についているという実感があります。
 
——セキュリティ診断プラットフォーム「ORCAs」の開発にも注力されていますね。
 
最近は、開発エンジニア出身のOsakiさんと一緒に開発をしています。セキュリティ診断を実施する中での困りごとや、改善要望などを投稿してもらうためのSlackのチャンネルがあるので、そのチャンネルに集まった意見を元に、GitHubのIssue上で改修の仕様などを議論するという流れで進めています。コードはGitHubのプルリクエストでレビューし合っています。
 
普段の診断業務への影響が強いものや、改修することで診断業務の効率化を図ることができるものについては優先度を高く設定しています。優先度の高い改修については、セキュリティ診断の技術統括をしているGa_ryo_さんと確認して進めることが多いですが、優先度がそれほど高くないものについては隙間時間などで割と自由に進めていますね。
 
Ga_ryo_さんとは、ツール改修のようなセキュリティ診断の技術面の改善についてだけでなく、診断の評価基準をはじめとする診断の運用面の改善についても定期的に話し合っています。
 
——セキュリティ診断の効率化を支えるツール類も独自に開発いただいています。
 
業務量に余裕がある時は、趣味のような感じでツール類の開発をしています。
 
診断とは少し離れた部分だと、最近では「raku2calender」を作りました。セキュリティ診断に携わるセキュリティエンジニアの工数実績の出力を半自動化するツールです。利用方法は社内ドキュメントにまとめてあり、Slackで機能要望やバグ報告を受けた都度改修を続けています。
 
akiymさんが開発した工数実績入力サポートアプリ「raku2calender」
akiymさんが開発した工数実績入力サポートアプリ「raku2calender」
 

「チラシの裏宣言」で連鎖的なノウハウ共有の場を形成

 
——akiymさんは「チラシの裏宣言」と題して、エンジニアが自由に情報共有できるスペースを作るなど、エンジニア間の情報共有・ノウハウ共有にも積極的に取り組まれていますよね。
 
技術の横展開はかなり重視しています。セキュリティ診断は基本的にセキュリティエンジニア一人ひとりが取り組むものです。開発の場合は「他の人が書いたコードを見て学ぶ」「コードレビューを受けて学ぶ」ということが日常業務の中で当たり前にありますが、セキュリティ診断の場合「他の人が診断を行っているところを見て学ぶ」ということはほぼありません。また、自分が担当していない案件の詳細については把握が難しいという特徴もあります。そのため、診断業務でどのような技術を活用するのか、日々の診断業務を効率化できるかはセキュリティエンジニア個人の能力に依存してしまうという課題がありました。
 
このような課題を解決するために、技術やノウハウをオープンにしていく場を作ることにしました。メモ程度でも良いので、業務の効率化や技術的なスキルの向上に役立つ情報を共有していくと、それへの反応という形で他のエンジニアから+αの知見を得られることもあると思います。連鎖的なノウハウ共有の場としても機能するといいな、という思いも込めて「チラシの裏宣言」を書いて情報共有用のスペースを作りました。
 
ちょっとしたことでもいいので共有できれば、誰かに見てもらえてそれがきっかけにちょっとした議論ができる、ちょっとでも世界が良くなればそれだけでいいんです。
外部に公開するようなブログ記事を書くような、ちょっと気合を入れなくてはという気持ちで文章を書き始めたはよいものの、途中で疲れてしまって放置された下書きの数々。それをメモ帳に眠らせるよりはここに書いてみませんか。
ここでチラシの裏宣言としまして、雑に好き勝手に自由に書ける場を作ろうと思います。エンジニアリングの話だったり、昨日使って便利だった機能を紹介したり、ポエムの場です。
 
(akiymさんによる「チラシの裏宣言」より引用)
 
——Flatt Securityにはどのようなカルチャーがあると感じていますか?
 
自由に改善のサイクルを回せる環境ですし、「自由さ」は一つの特徴じゃないかと考えています。「チラシの裏宣言」を書いて、社内に情報共有を呼びかけた時も周りの人はその思いを受け止めてくれて、一緒に取り組みを進めてくれました。誰かがチャレンジすることに対して、寛容さを持って受け入れてくれる文化はあると思います。
 
——これからの目標について教えてください。
 
今後、Flatt Securityでやっていきたいことは無限にあります(笑)。常に改善のサイクルを回していけるようになりたいですし、少しでも非効率的なことがあればどんどん直していきたいです。それによって、より質の高いセキュリティ診断をより早く提供できるようになりたいですね。
 
セキュリティ診断を担当する時は見積対応から始まるのですが、そういった診断にまつわる各種作業についても自動化できるようになるとかなり効率的になると思います。もちろん自動化することはそこまで簡単な話ではないのですが、こうした取り組みを進めることで、診断開始までの期間と診断期間の両方を短縮できる可能性があります。メリットは大きいと思うので、今後取り組んでいきたいですね。
 
——今後、Flatt Securityでどのような人と働いてみたいですか?
 
Flatt Securityは「なんでもできる」環境です。「セキュリティ診断だけでなく、色々なものに触れてみたい」と考えているセキュリティエンジニアの方は、一緒に仕事をして面白いのではないかと思います。ちょっとしたツールの開発や、小さな改善の積み重ねをしていくのが好きな方は活躍できる環境です。色々な経験ができるので、ぜひご入社ください!
 

ある1日のスケジュール

 
12:00      出勤
「12:00-17:00がコアタイムとなっているので、出勤は遅めのことが多いです」
 
12:00-12:30   Slackチェック
「1日のタスクやスケジュールをまずチェックします」
 
12:30-13:30   休憩
 
13:30-17:00   セキュリティ診断
「他の人が書いた報告書のレビューや、診断に使うツールの開発なども行っています」
 
17:00-18:00   ORCAs開発
 
18:00-19:30   セキュリティ診断
 
19:30-20:00   休憩
 
20:00-22:00   セキュリティ診断
 
22:00      退勤

プロフィール

2013年、SECCON札幌大会への出場に向けCTFチーム「dodododo」を結成し、SECCON2015学生大会、SECCON2018・2019国内大会で優勝するなど、以降多数の実績を納める。2017年、新卒で株式会社はてなに開発エンジニアとして入社し、受託系のWeb開発等を担当。2021年9月、Flatt Securityに入社し、セキュリティエンジニアにキャリアチェンジ。セキュリティ診断の中でも主にWebアプリケーション診断とFirebase診断を担当しているほか、内製開発のセキュリティ診断プラットフォーム「ORCAs」をはじめとする社内ツールの開発も行っている。