LAC WATCH

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

RSS

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

未経験から始まったプログラミング〜できたよ!「anyrun_to_misp」

初めまして。
サイバーグリッドジャパン 次世代セキュリティ技術研究所の前田です。
今回は、突然視力を失いながらも、全くの未経験だったプログラミングに挑戦したことについてお話しします。

まずは自己紹介

前職は小売店の販売員として働いていました。しかし数年前に視力を失い、小売店を退職します。その後、IT業界はまったくの未経験の状態からラックに入社しました。
入社してからは、主にデータの分析と精査、プログラム開発などに取り組んでいます。

趣味は音楽鑑賞と動画鑑賞です。音楽は和ロックが好きでよく聞いています。動画は一般の方が作成する音楽やゲームなどを見ることが多いです。ちなみに、ゲーム動画の中でもTRPG(テーブルトークロールプレイングゲーム)と呼ばれる、進行役とプレイヤーが協力して一つの物語を作っていくゲームの動画が面白くてハマっています。

目が見えなくなってから入社するまで

数年前に突然視力を失ってから、国立障害者リハビリテーションセンターを紹介され、生活訓練を始めました。当時は視力障がいへの理解や知識が足りておらず、生活様式や仕事、歩くことさえ手探りの状態でした。少し前まで見えていることが当たり前だったのに、急に見えなくなってしまったのでどうしていいのやら。

日常生活では、携帯電話や家電製品の操作、お風呂でのシャンプーとリンスの識別などに困り、家族に助けてもらいました。また、駅などで白杖を持っていると「何かお困りでないですか?」と声をかけてもらえることがあり、とても有難く感じています。

そんな生活の中で、視覚障がいを持ちながらも出来ることは無いか探していると、私のような人をサポートしている人たちと出会い、目が見えなくても通える職業訓練校を紹介してもらいました。そこでは視覚障がいを持ちながらどう社会とかかわっていくかを学び、卒業と同時にラックへ入社しました。

ラック入社のきっかけ、入ったばかりの頃の心境

ラックに興味を持ったのは、職業訓練校にいた頃ラック社員からいろいろとお話を聞けたことがきっかけです。視覚障がいをもっていても働きやすい、IT未経験でも挑戦できる場があると知れたことは大きな希望になりました。

入社してからは一人での行動が増え、電車で通勤をするようになりました。混雑した通勤ラッシュの時間帯、他の人にぶつからないよう歩いたり、電車に乗り換えたりしなくてはなりません。実はこれらのことが最も辛く、恐怖がなかなか消えませんでした。目が見えていた頃でさえ、通勤時の殺伐とした空気感にストレスを感じることがあったので、見えなくなってからはなおさらです。今はテレワークになりその面でかなり楽になりました。

また、当時は未経験の職業に就いたばかりということもあり、いろいろと余裕が無かったように思います。しかし、同じように視覚障がいを持ちながらもそれを感じさせずに活躍するメンバーと働く中で、自分もそうなりたいと強く感じるようになっていきました。

最初に担当した仕事

入社して初めて担当した仕事は、当研究所で運用するマルウェア分析システムによって通知された内容の確認、分析精査と、各種システムで実際に動作している開発ツールや分析作業のマニュアル化でした。この作業をしたことで全体の流れを把握でき、業務内容や研究活動で使用するシステムの理解を深められました。仕事にも慣れて徐々にできることが増えてきたころ、大きな転換期が訪れました。

それまで手作業で行っていた作業をプログラムで実行してはどうかとなり、メンバーと一緒に開発作業に携わることになりました。これがきっかけで開発を始めましたが、苦難の連続でした。それでも何とか完成できたのは、周囲の手厚いサポートのおかげです。

開発の苦難を乗り越えられたワケ

完成させたツールは、pythonで作成されたプログラムです。ですが、私が初めて触れたのはシェルスクリプトでした。最初からpythonを学習したのではなかったんです。まずは日常業務と関連を付けやすいシェルスクリプトが良いとアドバイスをもらい、手作業で行っていたシステム情報取得の自動化という課題を設定、プログラム作成の感覚を学ぶ事から始めました。そこで一つ一つの作業の自動化を繰り返し、シェルスクリプトだけでは限界を感じたので、次のステップとしてpythonの勉強を始めました。

pythonの学習を進めるにあたり、初めはインターネットで情報収集していました。しかし、インターネットだけでは当然ながら同じ処理結果を求めるにも表記ゆれが多々あります。表記ゆれ、扱うバージョンや開発環境の違いなどの要因が重なり、トライ&エラーが積み重なってしまいました。にっちもさっちもいかず、個人的には結構な絶望の淵を彷徨っていましたが、一緒に働くメンバーに直接質問したりアドバイスをもらったりするなかで希望の光が差しました。

こちらから何かアクションしても封殺されることがなく、気軽にレビューをしてもらいブラッシュアップしていける。そんな心理的安全性が確保されている環境が大きな励みとなり、小さいながらも以下でご紹介するツールの完成という結果を出せました。メンバーが柔軟にかつ温かく対応してくれる環境がなければ、完成させることはできなかったと思います。

作成したツール「anyrun_to_misp」のご紹介

名称:anyrun_to_misp

[ANY.RUN]という海外のクラウドベースのサンドボックスサービスから、サービス契約者のアカウントに応じて取得できるANY.RUNにアップロードされたファイルの分析情報を、オープンソースの脅威情報共有プラットフォームであるMISPに登録します。

github:https://github.com/LAC-Japan/anyrun_to_misp
ANY.RUN:https://app.any.run/
MISPプロジェクト:https://www.misp-project.org/

* ANY.RUNで分析した情報をMISPに格納出来ます。

ANY.RUNにファイルをアップロードすると、開けるものであれば殆どのものを解析できます。また、通信やファイル、レジストリの書き込みなど、様々なマルウェアの動作振る舞いの記録が可能です。これら特性があるため、解析結果をそのままMISPに登録するとIOC以外の情報がノイズとなり、サーバー容量を圧迫するだけでなくMISPでのデータ確認にも支障がでました。

そこで、私は二つのことを目的にツールを作成しました。一つ目はANY.RUNからダウンロードできるMISPフォーマットファイルをベースとしつつ、分析に不要と思われる情報を省き、IOCと参考情報に絞ってMISPへ登録することです。二つ目は、プログラムを知らなくてもこのスクリプトを実行すれば、今回対象としたANY.RUNのデータをMISPに登録までを行ってくれることです。

今回のツールは、ANY.RUNとMISP両方を利用しているという限られた方向けとはなりますが、ご活用いただけると嬉しいです。

今後の目標

今後は、今回完成したものに関わる中で得られた経験をもとに、さらなるプログラムへの理解と新しいプログラムの開発に挑戦していきたいです。自身のことだけで手いっぱいになってしまうのも改善したいですね......。また、入社してから周囲のメンバーにたくさんサポートしてもらったので、これからは仕事で少しずつお返しができるよう、日々精進していきます!

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

はい いいえ