FFRIエンジニアブログ

株式会社FFRIセキュリティのエンジニアが執筆する技術者向けブログです

セキュリティ専門企業に非情報系出身者が入社した感想

はじめに

こんにちは。セキュリティエンジニアの田村と千原です。この記事は 2 人で共同執筆しております。

この記事はFFRIセキュリティに興味はあるものの、大学や専門学校で非情報系の事を学んでいる、もしくは、セキュリティやコンピュータの事前知識をあまり持っていない方向けの記事です。

そのような方の中には、セキュリティの事前知識が無いのに選考に応募してもよいのだろうか、入社したとしてその後の業務について行けるのだろうか、といった疑問を持つ方もいらっしゃるのではないでしょうか。

実は当社には、数学・物理をはじめとした非情報系出身の社員がセキュリティエンジニアとして多く在籍しています。本記事を執筆している私たちも、非情報系出身、それどころかセキュリティのセの字も知りませんでした。冒頭の疑問について、私たちは「非情報系出身であったり、セキュリティの事前知識が無かったりしても、ぜひ選考に応募して欲しい」と考えています。また、「そういった方でも、当社での業務に十分取り組むことができる。セキュリティの知識は入社後に研修があるので心配いらない」とも考えています。さらに、当社の雰囲気や当社の業務は、数学・物理などの分野を学んできた方のマインドセットとも親和性が高いと考えておりそういった方にも当社で活躍してもらいたいと思っています。

以下では、選考から入社を経て当社での業務に取り組む中で、なぜ上記の様に考えるに至ったのかを、いくつかの観点から書いてみます。

選考過程について

当社に入るには、他社同様に当たり前ではありますが、まず選考を受ける必要があります。

セキュリティや情報系のバックグラウンドがない方にとっては、特に選考の雰囲気や、選考の内容について不安があるでしょう。

ここでは、私が当社の選考を受けた際の印象等を述べてみます。なお、選考については採用情報もご覧ください。

面接の内容について

私が選考を受けた際には、面接は概ね技術的な質問とコーディングテストで構成されており、主にエンジニアの方が応対をしていました。

募集要項には「※セキュリティに関しての事前知識は必要ありません。ご入社後に社内研修を通じて知識を学んで頂きます」とあります。実際、面接での質問では、必ずしもセキュリティの知識を持っている必要はありませんでした。C 言語や C++ といったプログラミング言語でのプログラミング経験がある方でコンピュータサイエンスの基礎を習得されている方ならば十分です。質問の内容やコーディングテストの問題も応募者のバックグラウンドに応じて変えているそうです。また、最近人事の方から聞いた話によると「入社時点でコンピュータに詳しい必要は必ずしもなく、科学の素養がある人を求めている」ということだそうです。私が面接を受けた際の印象からもこれはその通りだと感じました。

また、面接の中で印象深いことがありました。1つは、大学時代の研究についてしっかり質問されたことです。研究内容だけでなく、どういった雑誌に論文を掲載したか等も聞かれ、当時の私としては「それ聞いてわかるのかな」と思ったのですが、科学の素養を測りたいという意図があったのでしょう。もう1つは、技術的な質問では知識を測る質問だけでなく、「コンピュータを使って〇〇のことがしたいです。どうすればそれを実現できますか」といった、考えることが必要な質問も多かったことです。

このような質問に答えるには、目の前の現象から仮説を立て、それを検証するという能力が必要です。このような能力は科学を学んで身につく能力の1つであり、ここからも科学の素養を重視していることが読み取れます。

コーディングテストに関しては、C 言語や C++ によるコーディングを求められます。ここで出される課題も、応募者のバックグラウンドで異なるようです。私に関しては、非情報系かつコンピュータにも詳しくなかったためか、そこまで難しいことは要求されませんでした。なお、私はこの時点で C 言語に関する知識がほとんど無かったのですが、入社後に聞いたところ「文法的なところよりは考える能力のようなものを見ている」という感じのことを言われました。

面接の雰囲気について

面接の雰囲気についてですが、私の場合は上述のようにエンジニアの方が基本的には話すため、技術的な質疑応答がほとんどでした。私はコンピュータの知識に乏しかったため、質問に対して「知りません」とか「わかりません」と答えることも多かったです。それに対して面接官の方はネガティブな印象を持ったという感じは出しておらず、淡々と次の質問に移って行ったので、受けやすい面接でした。

新人研修について

当社では、4月から4カ月程度の新人研修があります。

新人研修は、採用選考の募集要項にある「C/C++ のプログラミング経験がある方、プログラミングが好きな方」を満たす方なら、セキュリティに関する事前知識がなくても大丈夫なように構成されています。研修では、セキュリティに関連するトピックに関して基本的なことから応用的なことまで、幅広い研修コースが提供されており、研修を受けることで無理なく業務に入っていくことが可能になっています。詳細については、当社ブログの新人研修に関する記事をご覧ください。

私は入社時点では、セキュリティの知識が無く、「C/C++ のプログラミング経験がある方、プログラミングが好きな方」といった最低限の条件を満たすくらいの知識しか持ち合わせていませんでした。

以下では、新人研修を受ける中で、どのように不足している知識が補完されていったか例を挙げて紹介します。

コンピュータやセキュリティのバックグラウンドがない方は、例えば次のようなことについて不安を感じることがあるでしょう。

  1. コーディングに関する経験
  2. ネットワークなどコンピュータに関する基本的な知識
  3. アプリケーションの解析やペンテストなどセキュリティ固有の知識

1について、当社の研修ではこれは「プログラミング研修」および「製品開発研修」が対応しています。プログラミング研修では、C 言語による Windows プログラミングを行います。具体的な課題に取り組むことで、C 言語によるコーディングの基本を理解できます。また、講師の方からコードレビューを受けることができ、C 言語によるコーディングに慣れることができます。さらに、製品開発研修では、C++ によるコーディングを行います。ここでは、チームに分かれて、課題に取り組みます。そのため、チーム開発についてもその雰囲気を知ることができます。私は入社時点では C 言語をほとんど書いたことがなく、基本的なことも正直知らなかったのですが、この研修を経て、抵抗感は無くなりました。

2について、当社の研修ではこれは例えば「ネットワーク基礎」等が対応しています。この研修では、実際のブラウザー操作を通して、HTTP、HTTPS、TCP/IP などの主要なネットワークプロトコルについて理解を深めます。ブラウザーを通してウェブページにアクセスする過程で、リクエストとレスポンスがどのようにやり取りされるか、データがどのように転送されるかについて具体的な例を通して学ぶことができます。私は、ネットワークに関しても、当時はほとんど知識が無かったのですが、この研修を通してある程度の慣れは身に付きました。

3について、当社の研修ではこれは「Windows 解析研修」、「ExpertSeminar」や「IoT ペンテスト」等が対応しています。

「Windows 解析研修」及び「ExpertSeminar」では、Windows におけるマルウェア解析やリバースエンジニアリングを学ぶことができます。「IoT ペンテスト」研修では、IoT 機器のペンテストについて学ぶことができます。こちらは Linux におけるアプリケーションの解析になるため、研修を通してどちらのプラットフォームにも慣れることができます。

仕事の内容・入社後の話

新人研修が終わると、その後に部署配属があります。配属後には、OJT 期間が始まり、各新入社員にメンターという形で先輩社員が付きます。OJT 期間中は、メンターとの定期的なミーティングが行われ、業務における課題や進捗状況、将来のキャリアプランについての相談を行える環境が整えられています。この OJT 期間により、新入社員が部にスムーズに溶け込み、業務において十分な成果を出すためのサポートを得ることができます。

部署配属後は、OJT 期間中から、すでに本格的に業務が始まります。私の部署での業務は主に検証・解析系の業務と技術調査系の業務に分かれます。

検証・解析系の業務には、様々な業務が含まれます。例えば、悪意あるプログラムの動作の解明をするマルウェア解析、クライアントのシステムやアプリケーションの脆弱性を発見し、報告をする脆弱性検査やペンテスト及びアプリケーションの解析業務などがあります。一方で、技術調査系の業務では最新の技術動向やセキュリティ関連トピックを調査します。 各人の適正を鑑みて、どのような業務にアサインされるかが決まります。月に一度ある上司とのミーティングなどで、どのような業務がやりたいか日ごろからアピールしておけば、それにアサインされやすい環境です。

私の場合には、これまで、IoT 機器の検証、Android アプリの解析、低レイヤーの開発、ファジング関連の技術調査など比較的幅広い種類の案件にアサインされてきました。私は、入社までセキュリティの知識はありませんでしたが、上司や同僚のサポートの元、必要な知識を集めながら業務に取り組めています。また、先述のように、当社の新入社員はセキュリティやコンピュータの知識が必ずしもある者ばかりではありません。ですが、皆さん新人研修を終えて、業務に入るころには、十分業務を行えるようになっています。 また、当社におけるセキュリティエンジニアとしての業務の特徴として、以下があります。

  1. 業務の幅が広い。
  2. セキュリティという分野自体に多くの知識が必要なため、業務の中でわからないことや知らないことを調べつつ解決しなければならない。
  3. 解析系の業務が結構あるので、ある程度コンピュータの仕組み的なことを知っている必要がある。

本記事の冒頭で、セキュリティに興味があるが、専門学校・大学では数学・物理などの科学を学んでいた方が当社に向いていると書いたのも、これらの特徴と関係があります。

特徴の1つ目は、科学を学ぶ際には自分の分野だけでなく、関連分野の知識が必要となります。そのため、科学を学んでいた方はそのように、幅広い知識を身に着ける素養があるのではないかと考えます。また、特徴の2つ目は、専門学校や大学での研究の過程では、当然ながら自分が知らないような問題に遭遇します。場合によっては、そもそも誰にも知られていない問題が現れることもあります。研究を経験して、そのような状況に対応する能力を磨いた方であれば、この2つ目の特徴にもマッチすると考えます。最後に3つ目の特徴ですが、 コンピュータの仕組み的なことを知るには、物事の原理的なことに興味を持てたり、それを理解する能力が有用だと考えます。科学においては、物事の原理的なことを理解する必要があります。また、研究を通して、そのようなことを理解する能力も磨かれます。そのため、数学・物理等の科学の知識が直接役に立つ訳では無いものの、それらを学んできた方は、当社に向いていると考えます。

大学での学習・研究(情報系以外)との関連

私は大学・大学院時代には物理学を専攻し、超伝導現象に代表される極低温の量子多体系に関する理論的な研究をしていました。なので、情報系とは全く関係のない専攻でしたし、実際、学部で受けた情報系の授業は基本的な C 言語プログラミングと数値計算に関する授業だけでした。

そんな中で私がサイバーセキュリティに興味を持った経緯をご紹介します。きっかけは、大学院時代に行った数値計算でした。数値計算とは、解析計算(手計算)で行うことが困難な計算をコンピュータに行わせることです。複雑な微積分やそれらを含む連立方程式を解析的に解くことはほぼ不可能であり、コンピュータによって数値解を得ることがほぼ唯一の手段となります。このような計算はしばしば多大なリソースを必要とし、高価なワークステーションでマルチススレッドプログラミングや GPU プログラミングを行っても結果を得るために数日~数ヶ月を要するものです。Python などのスクリプト言語や既存のライブラリを主としたプログラムでは途方もない時間を必要とします。そのため、C 言語や C++ 、Rust などのいわゆるコンパイル型言語、時にはアセンブリを用いて自作のライブラリを作成して計算をする必要がありました。また、こうした計算環境を構築・維持するのも大学院生の仕事の1つでした。その中で Ubuntu 系・RedHat 系、Arch Linux 等様々な Linux に触れたり、計算用サーバーを管理したりして次第に IT そのものに興味が移っていきました。

そして、サイバーセキュリティに興味を持った理由は、サイバーセキュリティには物理学と共通した側面があると感じたためです。日常生活を送るほとんどの人々にとって、物理学を意識することはほとんどありません。しかし我々の世界では、宇宙全体から素粒子スケールに至るまで物理法則が横たわっており、それらに従って多様で豊かな現象が生じることで我々の世界が構築されています。その仕組を明らかにした上で、人々に有用な側面や利用法を編み出すことで人類の科学技術は発展してきました。

物理学と同じく、日常生活を送るほとんどの人々は、日頃使う IT 機器やサービスの技術的な背景や、その安全性を支えるサイバーセキュリティを意識することはほとんどないでしょう。しかしその背後には論理回路から巨大サーバー群によって提供されるサービスに至るまで、様々なレイヤーで技術の積み重ねが存在します。そしてそこには様々な穴や歪み・綻び(脆弱性)が存在し、残念ながらそれらが悪用されることで人々の生活や安全が脅かされることもあります。普段人々が意識することのない細部を理解しそれらを有益に利用するという点で、物理学とサイバーセキュリティは非常に親和性が高いと感じています。こうした経緯から、私はサイバーセキュリティに自然と興味を持つようになりました。

もちろんこれは物理学に限ったことではないでしょう。化学や数学、機械工学等、理数系分野の多くでは、その目的の1つとして根源的な法則の理解と利用がある、ということは間違いないと考えます。当然、理学と工学で目指す方向性は違いますが、今起きている現象を理解し、法則性を探り出して利用するという点では共通点があります。

何かアプリケーションを作ったり、ビジネスとしての面白さを追求したりすることももちろん魅力的です。しかし、ソフトウェアやハードウェア製品の脆弱性・不正機能の調査や、攻撃・不正機能の技法・脆弱性の理解、悪用可能性の調査には理数系の学問と似た探究的・論理的かつ構造的なアプローチが求められます。そのため、理数系出身の人と相性がよいと考えます。

実際、当社には情報系以外にも私のように理論物理出身の社員のほか、数学系・機械工学系・電子工学系・応用物理系等の幅広いバックグラウンドを持つ社員が在籍しています。また、専門学校の出身者から博士課程の出身者・中途入社まで幅広い出身の社員がおり、日々サイバーセキュリティや業務に関連するスキルや知識をキャッチアップしつつ情報交換・切磋琢磨しながら業務を行っています。

もちろんサイバーセキュリティやその他の IT を体系的に学んできた人は、その分最初から持っている知識や場数が多いことは間違いありません。しかし、サイバーセキュリティは日々新たな脅威や技術が現れ、継続的なキャッチアップが不可欠でもあります。そのため、理数系の研究をしっかりと行って科学の根底に流れるコンセプトを理解・遂行してきた人であれば、十二分にその能力を発揮し、そのために必要なスキルを獲得できると考えます。

会社の雰囲気の話

会社の雰囲気はとてもフラットです。部署ではリモートワーク・出社問わず同期や先輩社員と雑談などもよく行いますし、業務上わからないことのある際やアドバイスの欲しい際には気軽に質問し、社員同士で活発に情報交換が行われています。また、部署をまたいでの交流の機会も定期的に設けられており、技術的な話題から趣味に至るまで話し込むことがよくあります。

仕事をする上での雰囲気としては、私個人としては研究室に近い雰囲気だと感じています。悪い意味での上下関係や部署間の壁・年齢の壁・バックグラウンドの壁等を感じることは全くなく、互いが信頼・尊重しあって仕事に向き合っているイメージです。上司に適切にアドバイス・マネジメントを行ってもらえているため放任というわけでもなく、とても良い環境で仕事ができていると感じています。また、時には部署を跨いで相談したり、年齢や入社年次等の隔たりなく情報交換する雰囲気もあるので、仕事をする上でわからないことがあったとしても万策尽きてしまうことはほとんどありません。もちろんお給料をもらって仕事をしているわけですし、ひいてはお客様から信頼されて業務を依頼されているわけですから、プロ意識を持つことは重要です。仕事の内容についてダメなものはダメ、不十分なものは不十分と上司に言われることもあります。しかしそれは個人の人格とは無関係であり、仕事の内容についての的確な鋭い指摘・アドバイスで、結局は自分の知見・スキルにとっても建設的なものだと感じています。

また、直接的な業務以外での社員同士の関わりとしては月次の懇親会が開催されており、普段リモートワークであっても定期的に対面で顔を合わせることができる点も嬉しいと感じています。個人的には、やはりたまには対面で話をしたいなという気持ちもあり、毎月参加しています。特に懇親会ではほぼ完全にオフの状態で社員同士話ができるので、互いのことをよく知る機会としても有効に機能していると感じます。月次懇親会では同期や先輩はもちろんのこと、社長や上司、管理・営業部門の社員ともフランクに話すことができるので、日頃の業務のストレスの軽減と信頼関係の構築にも繋がっています。更に、部署を跨いで数人で雑談する“シャッフルミーティング”等の取り組みも一部の部署で行われており、業務以外の話題を通じて親睦を深めることもできます。

更に、業務内外問わず各社員の考え方が尊重されるのも当社の雰囲気の特徴です。業務外でいえば上記のような社交的な場が苦手な場合でも特段困ることはないですし、業務内でも休暇の取得や仕事の進め方は上長と相談の上でかなり自由度をもって決めることができています。業務の上でも、改善点や意見等があれば忌憚なく発言できる雰囲気があり、社員皆がお互いを尊重しつつ、会社に貢献しより良いものにしていこうという雰囲気を感じています。

このような雰囲気が醸成されている要因としては、専門学校や大学院・様々な企業出身の中途入社等の多様なバックグラウンドの社員が多いこともあると考えます。お互いのバックグラウンドや知見・スキルを尊重し、互いに学んでいく姿勢がエンジニアの間で広く浸透していると私は感じています。もちろん営業や管理系の部署に所属する社員も多くいますが、技術的・エンジニア的視点を持っている方がとても多く、私個人としても違和感を持つことはありません。

更に社長の鵜飼もバリバリのエンジニア出身であり、会社全体の気風がエンジニアファーストであることと、エンジニアの視点や意識が共有されている点もエンジニアの働きやすさに繋がっています。懇親会等で社長の鵜飼と話をする機会があるのですが、技術的な話題はもちろんのこと、日常の出来事から趣味、科学や哲学に関する話題まで大変懐が深く、私の話をしている時にも大変勉強になることが多くあります。

働き始めるうえで必要だと考えることやマインド。逆に心配する必要がないこと

今私が思い返してみて、当社で働き始めるにあたって必要だったと感じることがいくつかあります。それは、IT・サイバーセキュリティに関する興味関心、未知の事柄に対する情報収集能力・探究力・共有能力・解決力・粘り強さ、論理的・体系的な思考力・表現力、チャレンジ精神、自律心、倫理観です。逆に入社前の杞憂だったと感じていることは、サイバーセキュリティや IT の高度な専門知識を持っていないこと、情報系専門の人々対する劣等意識、社会人としてやっていけるのかという不安です。

もちろん IT やサイバーセキュリティに関する知識やスキルはあるに越したことはないです。しかし、基本的な IT スキルとして何らかのプログラミング言語に触れたことがあり、コマンドラインインターフェースに抵抗感がなければ知識としては十分です。それよりも IT やサイバーセキュリティに興味を持っているかどうかが何より重要です。興味のない事柄を毎日続けることはできませんし、好きこそものの上手なれという言葉もあります。また、業務では世には出回っていないような情報や知識が多く必要とされます。そのため、既存の知識というよりも未知の事柄に対して逃げずにチャレンジし、自分で情報を収集したり周囲の力を借りたりしながら血肉に変え、問題の本質を明らかにして解決していく力が求められます。問題を解決するためには論理的に結論まで這ってでもたどり着く思考力と粘り強さが必要ですし、自分の意見や考えを周囲に伝え、協力して目的を達成する能力も重要です。

情報系出身ではない人々にとっては、情報系の人々よりもスキルや知識が少ないことは、入社にあたっての不安の1つでしょう。しかし、入社後にはみっちりと研修が行われるため必要な基礎知識・スキルを学ぶことができますし、何より業務の上で学ぶことのほうが遥かに多いのでその点は心配無用です。また、仕事は一人で行うものではなく上司やプロジェクトのメンバーと協力して行うものなので、メンバー間で情報や知見を共有しながら進めていけば、たとえ困難な状況でも打開できると考えます。

また、サイバーセキュリティという業務の性質上、一定程度の自律心・倫理観を備えている必要があります。業務を進める上で獲得するスキルや知識は、ともすればサイバー犯罪に繋がってしまうような諸刃の剣でもあります。“大いなる力を持つ者には大いなる責任が伴う。”という言葉がありますが、こうしたスキルや知識を得たうえでも決して暗黒面に引き込まれることなく志を持って業務にあたることが必要であり、それは日常生活レベルで染み付いているべきものだと考えます。

おわりに

当記事では、当社やサイバーセキュリティに興味があるが選考応募を迷っている方、特に非情報系を選考する方を対象として、実際に非情報系出身の社員が感じていることを書き綴りました。当記事を執筆した2名の社員はいずれも情報系の出身ではありません。しかし、選考過程での体験や入社後の研修、実際の業務での経験を通して、数学や物理学などで培った考え方を活かして必要な知識やスキルをキャッチアップし日々の業務に役立てることができていると感じています。また、当社の風土や雰囲気は理系学問を勉強・研究してきた人にとっては馴染みやすいものです。IT・サイバーセキュリティに興味がある理系出身者・情報系出身者であれば、当社で強みを活かして働く機会を得られると考えます。 本記事が当社への選考応募を検討する材料の1つとなれば幸いです。非情報系専攻の皆様におかれましては、ぜひ奮っての選考応募をお待ちしております。もちろん情報系・サイバーセキュリティを専門とする方々の応募も歓迎いたします。採用に関しては採用ページをご覧ください。