Tag Archives: OpenSource

GitHub Contributions グラフを緑豊かにしてみましょう(feat. Armeria Sprint)

こんにちは。この記事を読んでいる方の中に、GitHub contribution graphが日照り状態の方はいませんか。この記事では、その日照りの解消につながるArmeria Sprintイベントとその感想を紹介します。

今回のイベントは、LINEで働く開発者から参加者を募集しました。メンターとメンティーの割合を考慮し、先着順10名とお知らせしました。募集を開始するとすぐに定員に達し、さらに10名がキャンセル待ちになるなど想定以上の反響があり非常に驚きました。参加申し込みから分かるように、みんな熱意に溢れる方でした。イベントは2日間にわたって開かれました。初日は歓迎セッションが2時間、2日目はスプリントが4時間行われました。

オープンソース「Armeria」のコントリビュータのためのイベントを開催しました

Armeriaは、LINEで開発してオープンソースとして公開したプロジェクトです。LINEの社内プロジェクトだったArmeriaが現在のような形になったのは、社外の多くのコントリビュータが積極的に参加してくださったためです。私たちは、そのコントリビュータの方々に感謝の気持ちをお伝えしたく、今回のイベントを企画しました。

VoIPのオープンソースライブラリPJSIPにおけるバッファオーバーフロー

こんにちは。セキュリティ室(アプリケーションセキュリティチーム)で主にLINEサービスのセキュリティ診断を担当しているYoungsung Kim(Facebookアカウント/Twitterアカウント)です。

これはLINE Advent Calendar 2017の24日目の記事です。

今日はVoIPのオープンソースライブラリであるPJSIPの脆弱性(CVE-2017-16872およびAST-2017-009)について書かせていただきます。PJSIPは、標準プロトコル(SIP、SDP、RTP、STUN、TURN、ICE)を実装したオープンソースのマルチメディア通信ライブラリです。たとえばIP PBXやVoIPゲートウェイなどで広く使用されているAsteriskフレームワークは、PJSIPを使用してSIPスタックを実装しています。

はじめに

今回発見した脆弱性は、64ビット環境においてクライアントから受け取ったデータを処理する際にsigned intからunsigned longへの暗黙的な型変換(型キャスト)が行われており、そこで整数型の符号拡張を考慮していないことが原因でバッファオーバーフローが発生するというものでした。この脆弱性についての詳細は、「(Security) Function in PJSIP 2.7 miscalculates the length of an unsigned long variable in 64bit machines」を参照してください。

社内プロジェクト「Armeria」をオープンソース化するために行った6つのステップ

Armeriaは、Java 8およびNetty上に非同期RPC/APIクライアントサーバを実装したものです。LINEは昨年11月、ArmeriaをApache License 2.0のもと、オープンソースとして公開しました。Armeriaは、HTTP/2をセッションレイヤプロトコルとして使用する高性能の非同期Thriftクライアントサーバを構築するために立ち上げたプロジェクトですが、基本的にプロトコル非依存型で拡張性に優れています(例えば、HTTP/2によって静的ファイルを処理すると同時に、Java EE Webアプリケーションを起動することができます)。

今回の記事では、技術的な面にフォーカスするよりは、社内プロジェクトをオープンソース化する過程についてご紹介したいと思います。Armeriaの技術的な情報が知りたい方は、2月にLINE福岡オフィスにて開催された第14回LINE Developer Meetupで発表した資料をご参考ください。