LoginSignup
2
0

More than 3 years have passed since last update.

snmpでCPENamesを取得する、snmp2cpeを作った

Posted at

概要

SNMPでファームウェアバージョンを取得し、CPENameを作る POC なプログラムを作った。
可能なら、sysDescription の収集に協力いただきたい(sysDescriptionが集まると、CPE変換のためのルールが書ける)

snmp2cpeとは

snmpでsysDescriptionを取得することで、ファームウェアバージョンを取得し、そこからCPENamewo作ります。

  • これにより、ネットワーク機器のファームウェアバージョン管理が楽になる、かもしれない。

既存の監視では、自動でsshを行ってバージョンを取得していた。これは結構危険だと思っており、もう少し安全な方法がないかを検討していた。
ネットワーク機器の運用監視では、SNMPで各ポートのトラフィックなどを取得していることも多い。これが使えないか確認したところ、sysDescriptionにファームウェアバージョンが出ている場合が多いことを確認した。故に、snmpgetでsysDescriptionを確認することで、ファームウェア管理ができそう。

どう使うの?

https://github.com/hogehuga/snmp2cpe に置いたので、これをcloneして実行してみてください。

  • 引数として、snmpgetで利用する SNMPのバージョン, SNMPコミュニティ名, IPアドレスが必要になります。
  • sysNameで名前を、sysDescriptionでファームウェア情報を取るため、アクセスができるようにネットワークおよびSNMPの設計が必要です。

バージョンが取れたとして、CPEにすると何がうれしいかですが、CPE形式であればNVDの脆弱性情報が利用できます。そのため、CPEでNVDとマッチさせることで、残存する脆弱性を検出することができるようになります。

  • 但し、NVDへの登録速度に依存するので、ベンダ発表の方が早いかも
  • というか、そもそもネットワーク機器ベンダは、バージョン管理しやすいようにできていないし、OVALなどの情報も出していないので、無いよりは全然まし。

ツール的にはVulsなどで登録すればいいんじゃないでしょうか。

お願い

で、このツールはsysDescriptionを解析することでバージョン判別していますが、sysDescriptionの書き方が、ベンダごとに、製品ごとに違うみたいです。一括して判定することが不可能のなので、現存する機器のsysDescriptionをもとに推定するための正規表現などを書かないといけない。
その情報はさすがに手に入りにくいので、オープンソースの力を借りて、利用者皆さんからissue等で回収させてもらいたいのです。
自分のsysDescriptionを(機微なところは外したとしても)報告してもらうことで、同じ形式のものはCPE変換ができるようになるので、今後は自動脆弱性判断ができるようになります。
なにとぞ、sysDescriptionを頂ければ…(twitterでメンションでもいいですが、140文字に収まらないのでは…)

あと、CPE変換前のバージョン文字列も出力できるようにする予定なので、エクセルで確認する運用でも安心、になるはず。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0