技術部門のBlog

Code & Daily thoughts.

FireHOLで公開されているIPブラックリストを楽に適用する話

夏休み明けに考えたいセキュリティ強化の話です。

インターネット上にサーバを公開すると、ものの数時間で大量の攻撃を受け始めます。 攻撃を受けていることは、サーバのログを見ると確認できます。 例えばsshサーバに大量の認証失敗ログが残っている場合、それはsshにブルートフォース攻撃を受けている証拠です。 長いパスワードや公開鍵認証、脆弱性のないサーバやWebアプリケーションを使っていればこのような攻撃が成功する可能性はきわめて低いのですが、攻撃のログを見るのは全く気持ちの良いものではありません。

そのような攻撃を手軽に防ぐ方法としてIPブラックリストがあります。 FireHOLプロジェクトで提供されている良質なIPブラックリストを簡単に適用できるDocker imageを作成しましたので、今回はそれを紹介します。

暗号化されたパスワードを含むアカウント情報が漏洩した、らどうすればよいか?

新春に考えたいセキュリティの話です。

去年「暗号化されたパスワードを含むアカウント情報が漏洩した」というニュースを多く聞きました。 このニュースを聞いてどう思うでしょうか?

「漏洩したからといって、暗号化されているのだからまだ安全なはずだ」と考えるのは危険です。 この記事ではGPUを使ったブルートフォース攻撃で、いとも簡単に暗号化されたパスワード(=パスワードハッシュ)を解読できることをデモを通して示します。

セキュリティの基本的な仕組みと問題、守り方を復習して新年の業務に備えましょう。

Jupyter(ipython) Notebookをgettext翻訳するツールを公開します

jupyter(ipython) notebookのコンテンツをgettext翻訳するツールを作りましたので公開します。

このツールを使うことで以下のようなコンテンツが

http://devrt.tk/note/github/devrt/inverse-kinematics-primer/blob/master/notebooks/inverse-kinematics-primer-ja.ipynb

このように翻訳できます。

http://devrt.tk/note/github/devrt/inverse-kinematics-primer/blob/master/notebooks/inverse-kinematics-primer-en.ipynb

上記は日本語から英語の例ですが、任意の言語間で翻訳ができます。

JVRC優勝モデルMIDJAXONのソースコードを公開します

10月7日から10日の日程でJVRC(Japan Virtual Robotics Challenge)が開催され、MIDとして参戦してきました。

利用したロボットはCreative Commonsライセンスで公開されているJAXONを改変(派生)させたMIDJAXONというロボットで上半身はヒューマノイド型、下半身はクローラー型の形をしています。

成績はというと、全チーム中最高得点をとり総合優勝、更にチャレンジタスクへのチャレンジが認められJVRC賞も同時受賞、ということで最高の結果を残すことができました。

以下のサイトで競技終了後の技術交流会の様子を見ることができます。

http://www.ustream.tv/recorded/75191534

技術交流会でも言っているのですが、結果から見ると1位下半身クローラー型、2位クローラー型、3位ヒューマノイド型、でクローラー型が有利かと思われがちなのですが、公式の順位からは実はAIST-NEDO、NEDO-JSK、NEDO-HydraのDRC参加組が外されており、DRC参加組も含めた「裏順位」は、1位下半身クローラー型(MID)、2位ヒューマノイド型(AIST-NEDO)、3位ヒューマノイド型(NEDO-JSK)と初日に僅差でAIST-NEDOに勝っていたMIDがヒューマノイド勢の猛追を逃げ切ったという形になっており、まったくもってクローラー型が有利というわけではありません。制御しきることができればヒューマノイド型の勝ち、そこからクローラー型の安定性を活かした操縦で逃げ切った、というのが本当のところですので、今後のロボット設計の参考にしていただければと思います。

ともあれ、大会出場前に大会で使ったソースコードの公開を約束していたので、以下に公開します。

OpenJSCADを使ったシミュレーションモデル開発

OpenJSCADは、プログラミング感覚で3Dモデルを作成できるOpenSCADをWebGL技術を使ってブラウザ上で動くようにしたライブラリです。

OpenSCAD言語以外にもJavaScriptを使ってモデル開発することができます。

今回、OpenJSCADを使ってロボットシミュレーションモデルが作成できるようにVRMLモデル出力機能を実装したものを以下のURLで公開開始しました。

http://devrt.tk/openjscad/

キャタピラらしきモデルを作成中の図

VRMLへのエクスポートは以下のボタンから

Choreonoidに読み込んだ図(モデルの寸法が大きすぎた、、、)

勢いでジャパンバーチャルロボティクスチャレンジ(https://jvrc.org/)に申し込んでしまい、今頃いそいそとモデルを作っているわけです。

手を動かしながら学ぶ画像からの位置姿勢推定

工場でのピッキング作業を想定したシミュレーションモデルの公開を開始しました。

Build Status

この教材を使って今回は画像処理を使った位置姿勢推定について解説します。

ipython notebookを使って実際に手を動かしながら学べる解説になっていますので、ぜひ遊んでみてください。

では、以下のURLへ飛んでください。 http://devrt.tk/note/github/devrt/world-robot-picking/blob/master/noteboooks/object-segmentation-ja.ipynb

Dockerで実現するリアルタイムシステムのためのプロセスパーティショニング

「パーティショニング」はリアルタイムシステムや高信頼システムを構築する上で、あると便利なプロセスを隔離する機能です。

今回は「Docker」の内部で使われているLinux軽量コンテナ技術を使って簡易的なパーティショニングを実現します。

DockerはWebの世界で極めて高い注目を集めている強力なコンテナ構築環境です。知能ロボットなど複雑なソフトウェアの組み合わせからなるリアルタイムシステム構築でもその強力な機能が使える可能性を示すことができればと思います。

制御の基本 PID制御パラメータの調整法とRTMによる開発について

前回のブログでは、「Vagrant」と「watchdog」を使ってシミュレータ上のロボットを動作させるための環境作りをしました。

今回はPID制御とRTMによる開発の詳細について解説します。

「PID制御」とはロボットに限らず様々な制御分野で用いられる制御方式で以下の式によって表されます。