LAC WATCH

セキュリティとITの最新情報

RSS

株式会社ラック
ラックピープル | 

未経験でプログラミングとRansomWatchの通知機能の拡張に挑戦

初めまして。
サイバーグリッドジャパン 次世代セキュリティ技術研究所の手嶋です。

生まれつき視覚障がいがある私が、IT業界未経験でラックに入社し、プログラミングとRansomWatchの通知機能の拡張に挑戦したことについてお話しします。

ラックなら、未経験でもプログラム開発に挑戦できる

前職は事務職として働いていましたが、結婚とそれに伴う引っ越しのため退職しました。2020年6月、再び就職するため、四谷にある日本視覚障害者職能開発センターで、職業訓練を受けることになりました。最初のうちは漠然と事務職として再就職することを考えていましたが、「どういう仕事をしたいですか?」という指導員の言葉で、初めて事務職以外の選択肢があることに思い当たりました。

「何ができるか」ではなく「何を仕事にしたいか」を考えたとき浮かんだのが、「プログラム開発をしてみたい」ということでした。しかし私にプログラム開発の経験はなく、PCスキルもOfficeソフトが使える程度です。このような初心者を雇ってくれるところはないだろうとあきらめていました。しかしそんなとき、ラックという会社では視覚障がいの方が活躍している、さらに未経験からプログラム開発をスタートさせた方もいると知ったのです。ぜひこの会社で働きたいと、強く思いました。

未経験の分野に踏み出す不安はありましたが、多くの方に背中を押していただいて前に進めました。何よりラックで、一つずつ学びながら働けることが嬉しいです。

未経験の分野で働くということ

覚悟はしていたものの、未経験の分野で働くことは、予想以上に大変でした。まず開発をするための環境を整えることに苦労しました。基本となるLinuxの操作や、Gitをインストールする方法・使い方を覚えることなど、すべてがゼロからのスタートでした。やっとPythonを書き始めたもののエラーばかりの毎日で、質問しようにも分からないことが分からない状態でした。

そんな中、細かく手順を教えてくれたり、参考になる情報を教えてくれたりと先輩方のサポートのおかげで、少しずつ業務に必要なツールやPythonを使えるようになってきました。日々苦労の連続ではありますが、現在はPythonを使用したプログラム開発などに取り組んでいます。

RansomWatchの通知機能を拡張する

入社から3か月ほど経った頃、RansomWatchというオープンソースツールの機能拡張に携わることになりました。RansomWatchはGitHubに公開されているツールで、ランサムウェアのリークサイトを自動で監視し、情報が更新されると通知してくれるというものです。

このRansomWatchのメッセージ通知は、もともとSlackまたはDiscordに対応していました。一方ラックではMicrosoft 365が全社導入されており、チャットツール Microsoft Teamsへの対応ニーズが強くあったため、今回Teamsに通知できるようにオリジナルのRansomWatchをベースに機能を追加する開発にチャレンジしました。

GitHub - LAC-Japan/ransomwatch: Ransomware leak site monitoring

この開発に着手した頃には、インターネットから情報を取得し、ある程度はPythonを書けるようになっていました。しかし、入社してから、簡単なスクリプトを書いたことはありましたが、人が作成したものに手を加えることは、それとはまったく違う苦労の連続でした。変数やクラスにどのような値が入っているのか分からず、全体像を理解するのにかなりの時間がかかってしまいました。Teams通知機能の開発を行い、テストを繰り返し、社内向けに通知できたときには大変うれしかったことを覚えています。

Pull Requestしてみた

ランサムウェアのリーク情報を社内向けに通知できるようになると、Pull Requestをしてみようということになりました。Pull Requestは、RansomWatchを作った開発者に「Teamsに通知できるようにしたので本家にも取り込んでいただけませんか」と依頼することです。もちろんこちらも初めての経験でした。すべて英語でのやり取りに加え、開発者から修正依頼も届き、「社外の開発者とやりとりをしている」という緊張感を感じました。開発の中で、最新バージョンが行き違ってしまったり、通知メッセージ部分に全角の記号を使ってしまっていたりと、小さなトラブルはあったものの、無事Teams通知機能を採用していただきました。

これからの目標

今後は業務で頻繁に使用するPythonを習得し、分かりやすく正確なプログラムであることを意識して開発を進めていきたいと考えています。社内で運用されているプログラムやRansomWatchを見ていて、正しく動くだけではなく、正確で分かりやすいプログラムの重要性を実感しました。特に複数の人が使用する可能性のあるものについては、ルールに則り正しく記述することで、業務の効率化が図れます。

また当研究所では、脅威情報をMISPに蓄積しており、現在はRansomWatchで収集した情報を登録するプログラムの開発を進めています。将来的には、皆様のお役に立てるような情報やツールを公開できるよう、業務に取り組んでいきたいです。

この記事は役に立ちましたか?

はい いいえ