連載
» 2008年07月01日 00時00分 公開

セキュリティ対策の「ある視点」(10):SNMPコミュニティ名、そのデフォルトの価値は (2/4)

[辻 伸弘(ソフトバンク・テクノロジー株式会社),@IT]

SNMPで情報はどのように取得できるのか

 SNMPで取得できる情報にはどのようなものがあるのだろうか。今回は、ペネトレーションテストの現場でも使用しているツールを用いて取得される情報の中から重要と思われるものを紹介しよう。

 今回は、「snmpcheck」というツールを紹介する。このツールはPerlで記述されており、基本的にはUNIX系OSでも、Windows系OSでも使用可能である(実行環境によっては適宜モジュールなどをインストールする必要がある)。

 特筆すべき点は、ほかのSNMP情報取得ツールがユーザー自身で取得する 情報を選択するのに対して、このツールではあらかじめ内部にMIB情報を持っており、その中から取得可能な特定のMIBのみを対象システムから取得するように作成されている。

 取得を行うMIBは、ペネトレーションテストを行ううえで「貫通」につながる情報、いい換えれば、悪意のあるユーザーがシステムへ侵入するために有益な情報ということになる。

 ツールの説明に入る前に、このツールで取得できる情報の中でも重要と筆者が判断する情報と、その取得例をいくつか紹介しよう。

snmpcheckでの情報取得例――視点を変えると見えるもの

User accounts

 システム内に存在するユーザーアカウントである。Windows系OS標準のSNMPではデフォルトでこの情報が開示されるようになっている。Windows系OSでの取得例としては以下のとおりである。

ASPNET

Administrator

Guest

IUSR_VICTIM-W2K

IWAM_VICTIM-W2K

TsInternetUser

atsukan

hamu1

karoyamagic

kawashin

popo

reptone

zoom

リスト1 User accountsの取得例

 いままでの記事でユーザー名を知られるということの脅威について触れたが、SNMPからもこのようにユーザー名を知られてしまう可能性があるのだ。ユーザー名を知られることで顕在化する脅威については、過去の記事を参照してほしい。

Processes

 情報取得時にシステム上で稼働しているプロセスのリストである。通信する、しないにかかわらず、そのシステム上でリアルタイムにどのようなアプリケーションが動作しているかということが分かる。

Total processes : 35

Process type : 1 unknown, 2 operating system, 3 device driver, 4 application

Process status : 1 running, 2 runnable, 3 not runnable, 4 invalid

Process id Process name Process type Process status Process path

1 System Idle Process 2 1
1032 winvnc4.exe 4 1
1044 svchost.exe 4 1
1064 inetinfo.exe 4 1
1136 dfssvc.exe 4 1
1152 internat.exe 4 1
1288 snmp.exe 4 1
1296 sqlmangr.exe 4 1
1336 VMwareTray.exe 4 1
1368 VMwareUser.exe 4 1
1388 CMD.EXE 4 1

リスト2 Processesの取得例

TCP connections/Listening UDP ports

 システムのTCP、UDPのポートの状態である。通常、ペネトレーションテストにおいて、オープンポートの状態を外部から知るには、「nmap」などを用いて、ポートスキャンを行う。

 ポートは、TCP、UDPで、それぞれ0〜65535番が存在する。これらを調査するためには、それなりの時間を要することは、容易に想像がつくだろう。

 しかし、この情報を取得することができれば、ローカルでコマンドを実行するようにシステムのオープンポートを正確に知ることができるのである。この情報を効率よく入手できることは、悪意のあるユーザーにとって有益であると考えられる。

 Local Address Port Remote Address Port State

    0.0.0.0 1025 0.0.0.0 2256 (listening)

    0.0.0.0 1026 0.0.0.0 18521 (listening)

    0.0.0.0 1027 0.0.0.0 34923 (listening)

    0.0.0.0 1028 0.0.0.0 10273 (listening)

    0.0.0.0 135 0.0.0.0 2119 (listening)

    0.0.0.0 23 0.0.0.0 18492 (listening)

    0.0.0.0 25 0.0.0.0 26689 (listening)

    0.0.0.0 3372 0.0.0.0 43235 (listening)

    0.0.0.0 4420 0.0.0.0 59623 (listening)

    0.0.0.0 443 0.0.0.0 18625 (listening)

    0.0.0.0 445 0.0.0.0 43117 (listening)

    0.0.0.0 5800 0.0.0.0 10253 (listening)

    0.0.0.0 5900 0.0.0.0 26824 (listening)

    0.0.0.0 80 0.0.0.0 2160 (listening)

 192.168.0.150 139 0.0.0.0 34857 (listening)

 192.168.0.150 3002 0.0.0.0 59412 (listening)

 192.168.0.150 3003 0.0.0.0 2150 (listening)

 192.168.0.150 3004 0.0.0.0 2104 (listening)

リスト3 TCP connectionsの取得例

 Local Address Port

    0.0.0.0 135

    0.0.0.0 161

    0.0.0.0 162

    0.0.0.0 3001

    0.0.0.0 3005

    0.0.0.0 3006

    0.0.0.0 3456

    0.0.0.0 445

 192.168.0.150 137

 192.168.0.150 138

 192.168.0.150 500

 192.168.0.150 53

 192.168.0.150 67

 192.168.0.150 68

192.168.112.128 137

192.168.112.128 138

リスト4 Listening UDP portsの取得例

Software components

 システムにインストールされているコンポーネントのリストである。取得例にも示すとおり、Windows系OSでは、修正プログラムの適用状況を知ることが可能である。UNIX系OSでも、現在インストールされているパッケージの種類、バージョンを知ることが可能である。

【Windows系OS】

  AVG Free Edition

  Adobe Download Manager 2.0 (solo rimozione)

  Adobe Flash Player 9 ActiveX

  Adobe Reader 7.0.8

  Adobe Shockwave Player

  Aggiornamento della protezione per Windows XP (KB893756)

  Aggiornamento della protezione per Windows XP (KB896358)

  Aggiornamento della protezione per Windows XP (KB896423)

  Aggiornamento della protezione per Windows XP (KB896424)

【UNIX系OS】

  4Suite-1.0-8.b1

  GConf2-2.10.0-4

  ImageMagick-6.2.2.0-3.fc4.2

  ImageMagick-c++-6.2.2.0-3.fc4.2

  MAKEDEV-3.19-1

  MyODBC-2.50.39-25.FC4.1

  MySQL-python-1.2.0-1

  Nessus-3.0.3-fc4

  NetworkManager-0.5.1-1.FC4.4

リスト5  Software componentsの取得例

 この情報を基に、インターネットを利用し、情報を検索することでそのシステム内に存在する既知の脆弱性を洗い出すことも可能である。今回は、脆弱性情報の検索サイト、「SecurityFocus」を紹介しよう。

 この記事をご覧になっている方の中にもご存じの方は多いと思うが、SecurityFocusはセキュリティ情報の提供を行うサイトの中でもかなり老舗の部類に入るサイトである。

 SecurityFocusが提供している「bugtraq」などのメーリングリストは、さまざまな意見交換や脆弱性情報が公表されたりということから世界的にも有名である。このサイトの提供するサービスの中には、「Vulnerabilities」というものがあり、そこから、

  • Vendor(提供者)
  • Title(製品名)
  • Version(バージョン)

といった項目からSecurityFocusに登録されている脆弱性情報を検索することが可能である。

図3 SecurityFocusに登録されている脆弱性情報の例 図3 SecurityFocusに登録されている脆弱性情報の例

 これにより、知り得たOSやソフトウェアの名称、バージョン情報を利用して、そのシステム内に存在する脆弱性を調査することが可能となる。下図は、「ImageMagick」のバージョン「6.2.2」の脆弱性を検索した結果である。

図4 ImageMagick 6.2.2の脆弱性情報検索結果 図4 ImageMagick 6.2.2の脆弱性情報検索結果

Mountpoints

 マウントとはディスクなどの外部デバイスをコンピュータに認識させ、そのコンピュータ上で操作を行えるようにすることを指し、マウントポイントとは、マウントされたデバイスがどの場所を参照することで操作することができるかを示すものである。このマウントポイントから思わぬ情報が取得できる場合がある。

/home/tsuji
/
/sys
/proc/bus/usb
/boot
/proc/sys/fs/binfmt_misc

リスト6 Mountpointsの取得例

 上記の取得例の1行目「/home/tsuji」に注目してほしい。

 このマウントポイントが示すパス(path)からは、システム内に「tsuji」というユーザーが存在するのではないか、といった推測を行うことができる。このパスから「tsuji」というユーザーの存在が推測できることから発生し得る脅威については、第7回の記事を参照してほしい。

 余談ではあるが、過去にペネトレーションテストで、脆弱性スキャナの結果から非常に堅牢ではないかと思われたシステムが、思われたシステムが、このパス情報から侵入されるに至ったというものもあった。


 これまで紹介した情報は、確かにシステムを管理するうえでは非常に有用である。しかし裏を返せば、この情報は、一度悪意のあるユーザーに取得されると大きな脅威となり得るのである。

 セキュリティを考慮し、システムを運用するうえで覚えておいてほしいことは、システムを管理する際、管理者にとって有用な情報は、悪意のあるユーザーに奪われることで、最も危険な凶器となり得るということである。

 それでは、snmpcheckの使用方法を説明しよう。今回の記事では、詳しい使用方法については割愛させていただき、単純な使用例のみを紹介する。

Copyright © ITmedia, Inc. All Rights Reserved.

編集部からのお知らせ

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。