SNMPで取得できる情報にはどのようなものがあるのだろうか。今回は、ペネトレーションテストの現場でも使用しているツールを用いて取得される情報の中から重要と思われるものを紹介しよう。
今回は、「snmpcheck」というツールを紹介する。このツールはPerlで記述されており、基本的にはUNIX系OSでも、Windows系OSでも使用可能である(実行環境によっては適宜モジュールなどをインストールする必要がある)。
特筆すべき点は、ほかのSNMP情報取得ツールがユーザー自身で取得する 情報を選択するのに対して、このツールではあらかじめ内部にMIB情報を持っており、その中から取得可能な特定のMIBのみを対象システムから取得するように作成されている。
取得を行うMIBは、ペネトレーションテストを行ううえで「貫通」につながる情報、いい換えれば、悪意のあるユーザーがシステムへ侵入するために有益な情報ということになる。
ツールの説明に入る前に、このツールで取得できる情報の中でも重要と筆者が判断する情報と、その取得例をいくつか紹介しよう。
システム内に存在するユーザーアカウントである。Windows系OS標準のSNMPではデフォルトでこの情報が開示されるようになっている。Windows系OSでの取得例としては以下のとおりである。
ASPNET
Administrator
Guest
IUSR_VICTIM-W2K
IWAM_VICTIM-W2K
TsInternetUser
atsukan
hamu1
karoyamagic
kawashin
popo
reptone
zoom
いままでの記事でユーザー名を知られるということの脅威について触れたが、SNMPからもこのようにユーザー名を知られてしまう可能性があるのだ。ユーザー名を知られることで顕在化する脅威については、過去の記事を参照してほしい。
情報取得時にシステム上で稼働しているプロセスのリストである。通信する、しないにかかわらず、そのシステム上でリアルタイムにどのようなアプリケーションが動作しているかということが分かる。
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
システムの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)
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
システムにインストールされているコンポーネントのリストである。取得例にも示すとおり、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
この情報を基に、インターネットを利用し、情報を検索することでそのシステム内に存在する既知の脆弱性を洗い出すことも可能である。今回は、脆弱性情報の検索サイト、「SecurityFocus」を紹介しよう。
この記事をご覧になっている方の中にもご存じの方は多いと思うが、SecurityFocusはセキュリティ情報の提供を行うサイトの中でもかなり老舗の部類に入るサイトである。
SecurityFocusが提供している「bugtraq」などのメーリングリストは、さまざまな意見交換や脆弱性情報が公表されたりということから世界的にも有名である。このサイトの提供するサービスの中には、「Vulnerabilities」というものがあり、そこから、
といった項目からSecurityFocusに登録されている脆弱性情報を検索することが可能である。
これにより、知り得たOSやソフトウェアの名称、バージョン情報を利用して、そのシステム内に存在する脆弱性を調査することが可能となる。下図は、「ImageMagick」のバージョン「6.2.2」の脆弱性を検索した結果である。
マウントとはディスクなどの外部デバイスをコンピュータに認識させ、そのコンピュータ上で操作を行えるようにすることを指し、マウントポイントとは、マウントされたデバイスがどの場所を参照することで操作することができるかを示すものである。このマウントポイントから思わぬ情報が取得できる場合がある。
/home/tsuji
/
/sys
/proc/bus/usb
/boot
/proc/sys/fs/binfmt_misc
上記の取得例の1行目「/home/tsuji」に注目してほしい。
このマウントポイントが示すパス(path)からは、システム内に「tsuji」というユーザーが存在するのではないか、といった推測を行うことができる。このパスから「tsuji」というユーザーの存在が推測できることから発生し得る脅威については、第7回の記事を参照してほしい。
余談ではあるが、過去にペネトレーションテストで、脆弱性スキャナの結果から非常に堅牢ではないかと思われたシステムが、思われたシステムが、このパス情報から侵入されるに至ったというものもあった。
これまで紹介した情報は、確かにシステムを管理するうえでは非常に有用である。しかし裏を返せば、この情報は、一度悪意のあるユーザーに取得されると大きな脅威となり得るのである。
セキュリティを考慮し、システムを運用するうえで覚えておいてほしいことは、システムを管理する際、管理者にとって有用な情報は、悪意のあるユーザーに奪われることで、最も危険な凶器となり得るということである。
それでは、snmpcheckの使用方法を説明しよう。今回の記事では、詳しい使用方法については割愛させていただき、単純な使用例のみを紹介する。
Copyright © ITmedia, Inc. All Rights Reserved.