rela1470のブログ

rela1470がブログです。

2021年 Kyash コーポレートエンジニアリング振り返り

株式会社Kyash
Information Security Team
Corporate Engineering
所属のわたなべです。

www.kyash.co

今年もやってきました、Kyash アドベントカレンダー!
adventar.org メンバーも職種豊かになってきましたね! ここまで来ると、プロダクト目線ではない自分のブログも浮かなくて良いですね〜。

毎年恒例*1*2*3の今年のお仕事を振り返るブログです。
昨年はこちら。
rela1470.hatenablog.jp

あと夏に書いたプチアドベントカレンダーの記事もこちら。
rela1470.hatenablog.jp

このブログに書かれているアウトプットは色々な方のお力添えの結果ですが、あたかも自分の手柄のように書きます。いつもありがとうございます。

2021年サマリ

Kyashの2021年の社内システムはこんな感じです。

f:id:rela1470:20211208195329p:plain
カオスマップ(すべてを網羅しているわけではありません)

大幅には変わっていないですが、ちょこちょこシステム入れ替えがありました。

さて、その話をする前に...

チームメンバーが増えた

2019年、コーポレートエンジニアチームの立ち上げから早2年。ここまでわたなべ1人でやってきました。*4
rela1470.hatenablog.jp

しかし、いま弊社は大大大拡大フェーズ。入退社の対応で精一杯、という状態がしばらく続いてしまいました。
ディレクトリのメンバー数だけで言うと100人を超えたこともあり、ヘルプデスク業務もどんどん増加傾向。

新規SaaSの検証とか、バージョンアップとか、やりたいことはいっぱいあるのに、やれないジレンマ...。

ということで1人情シスに限界を迎え、メンバー増を検討した結果、6月からユナイトアンドグロウさんのお力添えを頂くようになりました。
www.ug-inc.net

情シス業界ではとても有名な会社さんなので改めて説明する必要もないかと思いますが、このページに書いてある以下の悩みが、まさに直近の悩みなのでした。

  • ブラックボックス化、属人化した社内ITを見える化したい
  • 指示待ちではなく的確に意図を読み取って動く情シス担当者が欲しい
  • 仕事の範囲を区切らず、柔軟に対応する情シス担当者が欲しい
  • 最新の知見や他社事例を知りたい

最初はオンボーディングの負荷等を懸念していたのですが、百戦錬磨の方にJoin頂けたこともあり、まったくの杞憂で終わりました。
お陰で余裕もでき、後述する色々なプロダクトの新規導入の工数も確保出来たのでした。
本当に助かってます!
UGさんが居なかったらどうなっていたんだろう...

2人体制になったこともあり、社内システムの見直し、文章化なども進みました。
課題等もきちんと見えてきたので、来期は更にチームを拡大して、色々なことに取り組めたらいいな、と思っています。

Jamf Connect を導入した

それでは今年導入したプロダクトの1つ目です。
Macのローカルユーザー管理用として、Jamf Connectを導入しました。
www.jamf.com

あれ? と思った方、鋭い。OneLogin Desktop Pro入れてたんじゃないの?っていう。
そうなんです...

実は2019年12月に、こんなブログを書いていました。
rela1470.hatenablog.jp OneLogin Desktop Proは弊社でも2年ほど活用したでしょうか。

しかし、2021年の9月、Jamf Connectに完全移行してしまいました...!
これに関しては色々理由があるのですが、一番の理由は、Jamfのエコシステムに乗るのがものすごく楽で、スマートで、エレガントだから...ですね〜。
さすが業界最大手って感じ。出来が良い。

乗り換えた他の理由としては、

  • OneLogin Desktop ProはWindowsのAzure AD Joinと併用できないので、ちょっと前からMacしか使っていなかった
  • OneLogin Desktop ProはJamfと違ってゼロデイサポートではないので2021/12/13時点でMac OS Montereyに対応してないなど、ちょっと辛い
  • 実は単品だとJamf Connectと値段がそんなに変わらない

といったところでしょうか。
OneLogin Desktop Proも悪いプロダクトではないので、ディレクトリやMDMが無い環境とかだと、また選択肢に入るのではないかな?と思います。
あくまで弊社のフェーズ的にはもういいかな、となっただけなのでね。好きですよOneLogin Desktop Pro。

でも OneLogin はさ

ただ、JamfさんはいつもOkta推しで、OneLoginユーザーはそっぽ向かれることが多く... Jamf Connectもそんな感じでした。
OneLogin Desktopに嫉妬してるんじゃないの?*5ってくらい。

具体的に言うと、MFAの認証周りがすげー暫定対応*6で、認証周りを走らせるとOneLogin側には以下のエラーメッセージがログに残ります。

f:id:rela1470:20211210174513p:plain
Unauthorized: MFA is required for this user

これ、MFA認証しろよ!ってエラーなんですが、Jamf Connectくん的には、

これが出るってことは、MFA認証ダイアログが出てるよね? じゃあIDとパスワードはあってるよね! 成功!!!

って感じらしく。Success Codesに入れた文字列、ここで言う"MFA" が返り値に入ってた場合は、通ったことにしろ、っていうのが2.4.x系のマニュアルに書いてました。まじかよ。

f:id:rela1470:20211210174711p:plain
Success Codes:にMFAって書いちゃう

と思ったら

とかここまで書いてたら、先日なんか2.7.0が。

f:id:rela1470:20211210174239p:plain
2.7.0で正式対応した!

やったぜ! ちょっとまだ検証してないんですが、頑張ってアップデートします。

OneLogin Smart Access を導入した

廃止したOneLoginのオプションもあれば、追加したオプションもあります。
まだまだ大好きですOneLogin。負けないでOneLogin。*7*8

今年度からセキュリティ向上を目的として、OneLoginのオプションであるSmartFactor Authenticationを追加契約しました。
www.pentio.com

その中でもSmart Accessを主に活用しています。

f:id:rela1470:20211210180746p:plain
pentioさんより。AIだってよ

これはログイン時のリスクを100点満点の加算方式で評価し、高スコア時はアクセスを防ぐ、といったプロダクトです。

f:id:rela1470:20211210180706p:plain
オフィスからアクセスすると6点

試しにコメダ珈琲のフリーWi-Fiから、ゲストブラウザでアクセスしてみます。

f:id:rela1470:20211210175529p:plain
一番厳しいモードにしたら全然ログインできなくてわろた

  • Macintosh上のChromeはあまり使用されません
  • 東京都新宿区が新しい場所になりました
  • Macintosh上のChromeはこれまで使用されていません
  • 新しいブラウザセッションからアクセス
  • 東京都新宿区からのアクセス頻度が低い
  • MacintoshChromeを使用したアクセス頻度が低い
  • セッションに対する信頼度が低い

とボッコボコですね。良き。
なんか同じようなことを何度も言ってるのはなんなんですかね?
まあいいんですけど。

SumoLogic を強化した

コーポレートエンジニアチームでは、業務に関わる監査ログを最低二年保存するようにと規定付けています。
しかし、SaaSによってはそれより短いログしか取れなかったり、アカウントを削除するとそのログが出なくなったりします。
それを補完する目的で、SIEMであるSumoLogicを昨年度導入し、保全すべきログを全て転送するようにシステム設計しました。

www.sumologic.jp

ただ、サクっとSumoLogicに転送できるプロダクトもあれば個別対応するものもあり、正直なところあまり手が回っていませんでした。
そのため、今回ガッツリ1ヶ月掛けて対応する期間を設けて対応することにしました。

1ヶ月ですべての対応をできたわけではないですが、だいぶ理想には近づきました。
直近の平日の24時間当たりのログ数を見ると13万件くらい。
契約は1日3GBで、今は0.3GBくらいなので10倍まで行けますね。まだまだがんばります。

f:id:rela1470:20211210182638p:plain
24時間あたり

SumoLogic を活用して内部監査対応を自動化した

SumoLogicでのログ分析も積極的に行っています。
一例ですが、内部監査の対応として毎月初に、Google Driveの外部共有が適切かどうかを把握して報告する、という重めのタスクがあります。

Google DriveのAuditログをSumoLogicに転送していますので、そこから外部共有が多いオーナーごとに一覧を作成する検索クエリを作り、毎月レポートを担当者にメール送信する、という仕組みを自動化しました。

f:id:rela1470:20211210183303p:plain
クエリを頑張って書いてcsvを作る

その他にも色々なアラートだったりサマリーを出すツールとして、とても便利に活用出来ています!

PPAP問題対応として mxHero を導入した

2021年で一番たいへんだったのはこれですね...
PPAP問題。mxHeroを導入しました。

blog.cloudnative.co.jp

f:id:rela1470:20211210185506p:plain
添付ファイルを普通に送ると
f:id:rela1470:20211210191024p:plain
いい感じにゴニョゴニョしてくれる

URL漏洩の可能性も考え、パスワードは一応掛けておきたかった*9ので、ファイルストレージにはBoxを採用しました。

また、mxHeroだけではエンドユーザー側の機能がちょっと物足りないため、BotとしてmxHeroちゃんを爆誕させました。

mxHeroちゃんは結果をSlackで通知してくれます。

f:id:rela1470:20211210191310p:plain
いま気づいたけどmxHeroがそもそも人のアイコンなのに新たに手足を生やしちゃったわ

機能としてはこんな感じ。

  • 送信先がmxHero(Box)を受信できる取引先なのかを判別する
  • ファイルリンクが届かなかったという問い合わせに備え、送ったメールのプレビューを受け取る
  • 送付先を間違った際の無効化が出来る

mxHero側にはWebHookやAPIの用意がなく、これはすべてBox側でのWebHook、APIでの実現です。
mxHero、もう少し頑張ってほしい。

www.mxhero.com 日本向けの公式サイトもできたらしいですよ。

mxHeroちゃんの仕組み

さて、もう少し具体的に説明すると、PHPでごりごり書いたWebスクリプトが、AWSのLambda上でServerless Frameworkを経由して*10動いています。
なんでPHPなの?っていうとわたなべがPHPしか書けないからです。弊社はGoの会社です。Goエンジニア絶賛募集中です。よろしくお願いします。

f:id:rela1470:20211210192315p:plain
ごりごり

mxHeroがBoxに添付ファイルをアップロードする際に、Box側にメタデータとしてメールの内容を保存します。
mxHeroちゃんはBox側のフォルダ作成イベントのWebHookを受信し、メタデータが保存されるまで待機します。*11

メタデータの作成を確認次第、ファイル無効化リンクとメール本文のPDFへの共有リンクを作成し、Slackで通知する、といった仕組みです。

ファイル無効化リンクは社外の人に押されても困るので、AWSのELBルール内で、OneLoginのOpenID Connect認証を掛けています。サクッと出来て便利ですよ。

f:id:rela1470:20211210192659p:plain
URLのパラメータ内にauth=trueってあった時だけ認証

mxHero導入してどうだった?

ツール自体はシンプルで、社内からの問い合わせも使い方がわからない! といった内容は特にありませんでした。

ただ、導入時に社内アナウンスはしっかりしていたものの、取引先に対してのアナウンスを完全に失念してしまい、結果ご迷惑をお掛けしてしまいました。
弊社は取引先に金融系の企業が多いため、求められるセキュリティレベルが高くてBoxの利用許可が降りない、といったパターンもかなりの数発生しました。

これに関しては添付ファイル直送信のデメリットとBoxのメリット、セキュリティレベルの天秤ですので、これからも頑張って広報していきたく存じます...

官公庁界隈も最近盛り上がってきたので、来年度は期待してます。 www.mext.go.jp

まとめ

ということで、毎年同じこと言ってますが、2021年も怒涛の1年でした。
これからもセキュリティ担保を第一に、会社全体を縁の下から支えたいと思います!

We are Hiring!

絶賛大採用中〜!わいわい! www.wantedly.com

*1:2019年から数えて3年目

*2:3回目はまさにもう恒例です

*3:諸説あります

*4:姉妹チームとして規約類の制定などを行うチームは別にありますが

*5:個人の感想です

*6:っていうか対応してない

*7:誰にアピールしてるんだ?

*8:でもみんなOktaばっかりだからさ~

*9:メールアドレス認証は先方がメーリングリストだと非対応

*10:ネイティブではPHPをサポートしてないので

*11:30秒くらい掛かるときもある