True Delete機能のご紹介

こんにちは。LINEでアプリケーションのセキュリティを担当しているH2spiceです。今回の記事では、スマートフォンを紛失したときにユーザーが削除したトーク履歴が流出する仕組み、そしてそれを防止するためのLINEの新機能「True Delete」についてご紹介します。

はじめに

多くの人はスマートフォンを紛失したり、時には人通りの多い公共の場所にスマートフォンを放置したりします。もし紛失したスマートフォンを他人が拾った場合、スマートフォンに保存されているデータにアクセスして流出することができるので、かなり深刻な問題が起こる可能性があります。スマートフォンには通話履歴、メッセージ、電話帳、カレンダー、インターネット検索履歴、移動履歴、写真、メモなどたくさんの個人情報が詰まっているので、プライバシーの漏洩はもちろん、会社の業務上の機密が外部に流出する問題も発生しかねません。さらに、そのような情報を狙ってスマートフォンを盗む場合もあります。スマートフォンは便利な道具ですが、管理の不注意やちょっとした油断によって個人のプライバシーの侵害につながる危険な道具にもなり得ます。

LINEでは、このようなリスクからユーザーのプライバシーを保護するために、パスコードロックやデータの暗号化のような機能を追加するなど、さまざまな努力をしています。しかし、いくつかの問題のため、一部のリスクは依然として存在しています。「削除」という一般的なプログラム手法上の限界によって、削除されたデータを復元できてしまうことも問題の一つです。では、一般的な削除方法における問題点とそれを補うためにLINEが開発した「True Delete」機能をご紹介します。

LINE Bug Bountyを公開いたしました

こんにちは。LINEでセキュリティを担当しているMJです。今回の記事では、LINEのBug Bountyプログラムについてご紹介させていただきます。

Bug Bountyとは

Bug Bountyとは、自社の製品やサービスのキュリティ上の脆弱性を発見した人に報奨金を支払うプログラムで、グローバル企業では製品・サービスのセキュリティ強化策として積極的に取り入れられています。実際、多数の企業がこのプログラムを活用して自社のサービスの品質改善とセキュリティ向上を図り、セキュリティ問題を解決しています。

LINEは、毎月の実ユーザー数が2億人以上に達するグローバル企業に成長しました。この成長過程で、数多くのアプリケーションと増えたユーザーをセキュリティーの脅威から保護することが求められるようになりました。そのため、LINEはBug Bountyプログラムを実施することで、より安心・安全なサービスの提供を目指してまいります。

Spark、Mesos、Zeppelin、HDFSを活用した大容量セキュリティデータの解析

LINE Plusでゲームセキュリティ開発を担当しているWJ、KHです。

莫大なユーザーがモバイルからアクセスするLINEゲームにおいて、データの迅速な解析と対応はそう容易なものではありません。LINEゲームへのアクセスと海外ユーザーの大幅な増加に伴い、様々なアビューズ(不正とされる操作を通じて不当な利益を得る行為)行為が次々と観察されています。アビューズ行為は、正常にゲームを利用する善意のユーザーに迷惑を掛けることはもとより、ゲームサービスそのものにも直接的な影響を及ぼします。ゲームの安定性を守り善意のユーザーを保護するためには、アビューズ行為に迅速に対処することがとても大事です。

アビューズ行為が探知されたら、異なった形式のログを関連付けて解析しその問題の原因を洗い出して修正する必要がありますが、このとき一番の障壁は、大容量のログデータの速やかな処理でした。LINEで扱う各種データ量の増加により、従来の伝統的なビッグデータ処理方式では現象が発生してから事象を確認するまで数十分、数時間が掛かってしまいます。また、データ形式(RDB、NoSQL、File、API)や大容量サービスのためのData Shardingのような技術導入などの理由から、すべてのデータを連携することも容易ではありませんでした。何よりも、人気ゲームの場合は流入されるデータ自体が非常に多いのです。いろんな観点から迅速なデータの処理を可能にする多彩なオープンソースを組合せ、その可能性をチェックしてみました。結果として、作業の分配とリソースの活用にはApache MesosとApache Sparkを活用し、データのビジュアライズ(可視化)にはApache Zeppelinを採用することが希望のデータ処理要件に最も近いことが分かり、適切な構成を試みることになりました。

LINE DEVELOPER DAY 2015 Tokyo 動画と資料を公開

こんにちは、カンファレンス担当の櫛井です。

LINE DEVELOPER DAY_2015 Tokyo 開催のお知らせ « LINE Engineers’ Blogにてお知らせしておりました、LINE DEVELOPER DAY_2015 を開催いたしました。

イベント当日は応募者多数のため抽選となりましたが、沢山のエンジニアの皆さまにご来場いただき盛況となりました。ありがとうございました!

細かな部分を含めイベント全体の企画や運営を担当しました。「社外のエンジニアの皆さんにLINEを深く知っていただきたい」という主旨で企画をおこない、イベント準備等なかなか苦労した点もありましたが、ご参加いただいた皆さんに大変好評だったり、当日はTwitterのトレンド入りをしたりと評判が大変よかったので次回も是非開催できればと考えています。

イベントレポート等、また別の機会に行いたいと思いますが、まずは動画と資料を公開いたしますので是非ご覧いただければと思います。

B612における動画コーデックの採用と最適化オプション

こんにちは。LINE+でB612 Android開発を担当しているHTです。今回のブログでご紹介するB612は、小説『星の王子さま』に登場する王子さまが住んでいた星の名前にちなんで名付けられた自撮り専用アプリです。セルフィーアプリでは初めて撮影前フィルターと3~6秒の分割動画撮影に対応しています。今回のブログでは、B612アプリ開発においてMediaCodecを活用してコラージュ形式のビデオを作成し、最終的にMP4ファイルに仕上げるまでの過程についてお話したいと思います。

Apple Watch、新たな地平を拓く。

こんにちは。LINE iOS開発を担当しているRoyです。Apple Watchの公開に足並みを揃え、Apple Watchの機能についての簡単なレビューとApple Watch向けのアプリ開発、そしてLINEでのApple Watch対応について紹介したいと思います。

(注:現在はLINEのApple Watch向けアプリは非公開です)

Apple Watch

Apple Watchは、2014年9月9日の発表会ではじめて公開されました。この日、iPhone6、iPhone6+、Apple Payが次々と紹介され、終盤のOne More Thingで38mm42mmサイズのWatch、Watch Sport、Watch Editionの3種が発表されました。 Apple Watchではユーザーの動きの測定はもちろん、iPhoneで受信した通知も確認できます。また、Apple以外の3rd party企業のためのSDKも公開されました。1

Apple Watchには、タッチスクリーンとデジタルクラウン、サイドボタンがあります。右サイドのデジタルクラウンでは画面をスクロールしたり、ズームイン/ズームアウトでき、そのすぐ下のサイドボタンでは、よく連絡を取る友達を表示することができます。時計の下部にはユーザーがApple Watchを着けているかどうかをチェックしたり、ユーザーのバイオ情報を確認できるセンサーが付着されています。スピーカーと振動センサーが内臓されていて、通知が届くとアラーム音が聞こえたり、振動で感じ取ることができます。 2Apple-Watch-Heart-Rate-Sensor-337x400

LINE DEVELOPER DAY_2015 Tokyo 開催のお知らせ

こんにちは、今回のカンファレンスを担当している櫛井です。

LINE DEVELOPER DAY_2015 Tokyo では、弊社エンジニアチームの様々な経験を未解決の課題も含めて共有させていただきますので、ご来場のエンジニアの皆さまと共に知見を深めることができれ ば幸いです。皆さまのご来場を心からお待ちしております。
LINE DEVELOPER DAY_2015 公式サイト

LINE DEVELOPER DAY 2015

文字数をカウントする7つの方法

こんにちは、LINE+開発室のパク・サンジン(SJ)です。

今回は、文字数をカウントする方法についてお話したいと思います。LINEサービスではプロフィール名やグループ名、ひとことなど様々なところで文字数をカウントしていますが、画面で文字が短すぎたり長すぎないようにし、ストレージ容量を正しく割り当てるためには、文字数を正確にカウントすることがとても重要です。特に、LINEは全世界で使っているサービスなだけに他言語の文字数も正確にカウントできなければなりません。 ある日、BTS(Bug Track System)のプロフィール名にemojiを入力すると1字が2字で表示されるといった、文字数が正確にカウントされないという課題が登録されました。emojiとは、日本で使い始めたもので、今ではUnicode標準に含まれ世界的に広く使われるようになった絵文字セットのことです。最初は、単純にSurrogateカウントエラーの問題だと思い分析し始めました。Surrogateとは、UTF-16エンコードを16ビット以上に拡張させる文字セットのことですが、emojiにはSurrogateで表現する文字があるからです。しかしよく見ると、実際にはSurrogateとは関係のない2文字が入力されていることが確認できました。ということは、「emojiの後ろに共通的に追加されるcharacterがあるのでは」と思い、そのルールを探し出して例外処理をしようと考えていました。が、さらに他の課題が登録されてきました。

LINE Developer Workshop & Hackathon 2015

こんにちは、新米ソフトウェア開発者のJamesです。

今回は今年1月に開催された開発者向けワークショップ「2015 LINE Developer Workshop」についてレポートしたいと思います。