12/21(火)は、SOC エンジニア 加藤光平の記事です。SOC でオペレーション業務の自動化開発エンジニアを目指した話です。
---
こんにちは。SOCで開発エンジニアをしている加藤と申します。SOCといえばアナリストのイメージが強いと思いますが、分析業務以外のもう1つの柱としてオペレーション業務があります。これはお客様へ提供しているセキュリティ製品・サービスのリアルタイム監視やマネジメントといった保守・運用を行い、安定したセキュリティシステム環境を実現するための業務です(詳しくは本ブログ「最先端のSOC(セキュリティオペレーションセンター)では何が行われているのか?」をご覧ください)。
私はSOCへ着任して1年半ほどオペレーション業務に従事したのちに開発チームへ異動となり、現在では主にPythonを使用した自動化ツールを開発しています。今回は私がオペレーターから開発チームへ異動した際の経緯や、実際に取り組んでいる自動化といったアナリスト以外のキャリアについてお話したいと思います。
SOCへ来たきっかけ
SOCへ着任する以前は、特にセキュリティが専門という訳ではなく、お客様のネットワークで障害が発生したら機器交換を手配したり、あるいは電話やメールでお客様からの問い合わせにお答えしたりといった一般的なネットワークオペレーターの業務を担当していました。当時の現場ではある程度経験を積むとより専門的な業務を行う部署に異動していくキャリアパスがあり、私は開発をしてみたいとぼんやり描いていたのですが、残念ながらそのような機会がなく、さてどうしたものかと考えていた時に声を掛けられSOCへ来たという経緯があります。
開発希望でやってきたSOCですが、まずは業務内容を知る目的で1年半ほどオペレーション業務に従事しました。SOCでのオペレーターの仕事は以前の現場のような一般的なものに加えて、お客様のセキュリティ製品の設定変更といった専門的な作業も含まれます。日々様々なセキュリティ製品やサービスに触れながら、少しずつそれらの仕様や動作についての知識を増やしていきました。オペレーターとして右と左くらいはわかるようになった頃から並行して開発の業務にも関わるようになり、1年半を過ぎたあたりで完全に開発チームへ異動となりました。
開発をはじめるにあたって
さて、いざ開発チームへ異動となったとて「プログラミングをしたことありません」では業務ができません。開発チームから「今後はPythonをメインにしていきたい」という話を聞いていたので、異動の前後にかけてプログラミング関係の書籍を何冊か読んでから業務に臨みました。素人でも理解できるレベルの本から読みはじめて、次に少し応用的な内容の本、それも読んだらさらに高度な内容の本と順々にステップアップしていきました。参考書を読むにあたっては基本的にすべての例題コードを実際に書いて動かす、いわゆる写経も行いました。賛否両論はあると思いますが、初心者がプログラミングの感覚をつかむという点で個人的にはとても役に立ったと感じています。また開発チームへ異動してからは本番環境で使われているコードに触れる機会も増え、そこから参考書で得た知識をどうやって業務に活用していくかを学んでいきました。
オペレーション業務の自動化
開発チームで最初に手掛けたのは定型作業の自動化です。SOCでは月に数回ベンダーから不定期で配信されるシグネチャの情報をお客様へ通知する業務があります。配信のタイミングが読めないため、それまでは1日1回手動でベンダーサイトを確認して更新があれば情報をダウンロード、手動で整形してメール送信という対応をとっていました。個々の作業は単純かもしれませんが、何度も繰り返されることで長期的に現場の負担にもなり得るため、これらの作業をPythonで自動化することで稼働の削減を図りました。Webサイトのスクレイピングにはじまり、テンプレートを使った文字列整形、メール送信など異なる要求に対してBeautifulSoup4やRequests、Jinja2といったライブラリを活用しながら段階的に自動化を進めました。なかなか思い通りに動作しないこともありましたが、そんな時は先輩へ相談すれば一緒になって考えてくれます(みなさん優しい方ばかりです)。モジュールがある程度増えてきたあたりからはPytestを導入してテストの自動化を図ったり、Pylintでコードのリンティングを行ったりしました。ツールはまもなく最終段階のリリースを迎える予定で、この実装を通してコーディングの基本的な進め方を身に着けることができました。
他にもエクセル形式の申請書をもとにREST API経由でセキュリティ製品の設定を変更するツールや、最近ではオペレーションチームで使用しているスタンドアロンのツールをFlaskベースのWebアプリとしてリニューアルするためのプロジェクトも進めています。
さいごに
SOCにはプログラミングやセキュリティをバックグラウンドに持たない人でも活躍できる場があります。本記事が、セキュリティ企業において「あ、こういうキャリアもあるんだ」という参考になれば幸いです。