📄 security.txt
字号:
## $XORP: xorp/docs/libxipc/security.txt,v 1.2 2004/07/09 04:40:51 pavlin Exp $# XRL Security: An outline and starting point April 2003 Orion HodsonIntroduction=-=-=-=-=-=-The XRL library provides interprocess communication for XORPprocesses. The exchange of IPC data may happen over any number oftransport protocols: socket based (UDP, TCP, HTTP), Sys-V IPC (sharedmemory, sys-V messages), Unix signals, in-process function calls. TheFinder process provides resolver functionality to XORP processes andallows them to find suitable IPC transports.Since XORP is dependent on the the XRL library for IPC, it had betterbe secure. This document describes what is currently implemented andpresents some directions that we could take. The content is intendedfor discussion purposes and not set in stone.Section 1: Securing the Finder from the outside world=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=o Host based access control to the Finder [Implemented]Processes talk to the Finder with a Finder Transport Protocol. At thetime of writing, the only Finder Transport Protocol implemented usesTCP and a UDP version shall probably follow in future. As a firststep towards security, the Finder and the FinderClient library,support an API that accepts packets from a restricted host list. Thefinder obtains the host list from command line arguments presented atstart-up.o Finder interface binding [Implemented]The Finder also supports binding to a specified interface address, andas will result will filter communication that arrives on unexpectedinterfaces. [ Implemented as Finder -i <ifaddr>, but turned off bydefault ]In the case of a distributed XORP router, it is conceivable that thesignaling traffic, ie the on-the-wire transport protocols and Findercommunication, would use a dedicated network with just the distributedhosts interface per host exposed on the network.Section 2: Securing XORP applications from the outside world=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-o Method name randomization [Implemented]XRL processes implement target specifications and support callinginterfaces. When processes start-up, they register which interfacesthey support and which transport methods are available for eachparticular XRL. The XRL target and interface specificationsare documented in the XRL interface and target files in the projectsource tree (xorp/xrl/interfaces, xorp/xrl/targets) and are publiclyviewable.It is conceivable that a remote attacker with knowledge of an Xrltarget and it's supported interface might send requests to a range ofports on a Xorp router in an attempt to execute an Xrl. To raise thebar on this attack, the Finder tells clients during the registrationprocess a unique name for the XRL being registered. Clientstransparently map the unique name into the methods specified in theinterface and target files. Process A registers processA/interfaceA/method, the Finder accepts the registration and tells Process A that it should interpret requests of processA/interfaceA/method-19292939abfa as a call to processA/interfaceA/method. Process B wishes to invoke processA/interfaceA/method and contacts the Finder. The Finder tells process B that the method exists but should be dispatched as processA/interfaceA/method-19292939abfa An external host without access to the finder not only has todetermine the relevant port to send it's request to, it also has toguess the method name that the relevant process will accept for it'srequest. At present, the munged method name is the original methodname with a generated 16 digit hex number trailer.The generator function is make_cookie() in: xrl/libxipc/finder_ng_xrl_target.ccSection 3: Securing processes within XORP=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=o XRL access control lists [Proposed]One of the goals of XORP is to allow researchers to run experimentalcode on production routers. In the absence of mechanism, thisrequires a degree of trust between the researchers and the routeradministrators. To simplify matters, an administrator would probablywant to restrict access to XRL interfaces on a per process basis. Wecould conceivably implement this as a two step mechanism.Firstly, we need to authenticate processes as they register with thefinder. This could be as simple as providing a shared keys to theFinder and Processes, each process uses the key to generate a hashvalue to authenticate itself with the Finder on start-up.Secondly, the Finder obtains authenticated process access controlinformation from the file system. The access control information wouldindicate which processes could access which XRLs. The starting pointfor permissions could be generated by running a XORP router and seeingwhich processes call which XRLs and then manually editing thosesettings. For new processes the administrator could explicitly statewhich XRL's are permitted to be called. In practice, the researcheswould probably provide an access control file for their process thatthe administrator could review and install at the same time asinstalling their binary.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -