社内セキュリティハッカソンと脆弱性体験ハンズオンを開催しました

こんにちは! エンジニアの@junkusaです。先日、PLAID社内でKARTEのセキュリティをテーマにしたセキュリティハッカソンを実施しました。

セキュリティハッカソンの目的と背景

PLAIDはKARTEという「リアルタイムユーザー解析プラットフォーム」を提供していますが、KARTEではさまざまな種類のデータを扱います。
KARTEのデータを安全に扱うために、PLAIDでは外部のセキュリティの専門家などとも協力して取り組んでいます。
また“セキュリティ組“というセキュリティ強化に取り組むチームもできました。セキュリティ組では開発者自身がより深くセキュリティに取り組むのを手助けしています。

開発者自身で深くセキュリティに取り組むには、セキュリティについて深く理解する必要があります。
そのため、まず自社のサービスであるKARTEにおいて何を防がなくてはいけなくて、どのようなセキュリティホールが生まれる可能性があるかを知る機会が必要と考えました。
そのセキュリティの知識を得る一つの方法として、セキュリティ組が中心となってKARTEを攻撃、防御したりするハッカソンを開いてみることにしました。

セキュリティハッカソンの開催

セキュリティハッカソンでは、Issueに当日のアジェンダや目的などを共有してから実施しました。
セキュリティハッカソンでは、ローカル環境や試験環境などを使い、本番環境には影響がでないようにするという前提を周知しました。
それ以外については基本的に自由にして、各自がKARTEに対して攻撃方法や防御方法を考え試して、成功失敗どちらの結果もハッカソンの終わりに共有することにしました。

セキュリティハッカソンのIssue
今回のセキュリティハッカソンは試験的なものであっため、短めの時間設定にしました

agenda

セキュリティハッカソンでは各自が考えていた攻撃方法などを試して、実際に問題があるかや対策されているかを確認していました。
他にも、気になっていたセキュリティツールを試したり、普段開発して気になっていた部分を調べてみたりと攻撃以外のことも試されていました。

セキュリティハッカソンの様子

セキュリティハッカソンの結果

セキュリティハッカソンの終了後に、各自(各チーム)が試したことなどを共有しました。
ハッカソンの中で見つけた問題についてはその場でIssueを作成し、ハッカソン後に修正や対策などに取り組んでいます。
また、実際の脆弱性にはつながらなかった攻撃についても共有し、その攻撃からどのような問題につながる可能性があるかを議論しました。
最後に、これらの結果を社内のesaにまとめ、ハッカソンに参加できなかった開発者にも共有しました。
開発者からは「成果を共有されることで勉強になった」、「セキュリティに注目を集めるきっかけにもなるので継続的に開催したい」といった声が上がっていました。

security_result

セキュリティハッカソンの後

セキュリティハッカソンの目的は、開発者自身がどのようなセキュリティの問題がおきるかの可能性を知る機会を作ることでした。
そのため、セキュリティハッカソンで見つかった問題(既に修正済み)を、発見者が実際にどのように見つけたを学ぶハンズオン形式の社内イベントも実施しました。

hands_on

脆弱性の見つけ方を学ぶハンズオンでは、Burp Suiteなどのツールも使いつつ実際にローカル環境に向けて攻撃を行い、
その攻撃によってどのような仕組みで問題が発生するかを体験できるようにしました。

また、流行した攻撃手法や脆弱性によってどのような被害が想定されるかも交えたデモなども行いました。
たとえば、管理画面などログデータが表示される場所を狙ったBlind XSSでは、どのように効率的にデータを集めているかなどを実際に動かしながら見ていきました。

自分自身で攻撃を体験してみることで、脆弱性をもっと身近に感じて貰えるようにして、それらを意識して開発するという目的もあります。

まとめ

「セキュリティ」はとても大事ですが、何かできたから「完成」といったゴールがあるわけではありません。
そのため、「セキュリティ」は継続的に改善していき、リスクを軽減や発見できるようにフィードバックループを回していく必要があると思います。
PLAIDではこれからも開発者を巻き込みながら、「セキュリティ」改善へ向けてのアクションを続けていきます。

最後に

CX(顧客体験)プラットフォーム「KARTE」を運営するプレイドでは、継続的にセキュリティ改善に取り組んでいきたいというエンジニアを募集しています。
詳しくは弊社採用ページまたはWantedlyをご覧ください。 もしくはお気軽に、下記の「話を聞きに行きたい」ボタンを押してください!