IP Library Granted Patent US 9,736,251
Granted Patent B1
US 9,736,251 · App. 12/657,981 · Granted Aug 15, 2017

Capture and replay of RDP session packets

Inventors: Nilesh Nandakumar Samant (Woodbridge, VA); Marek Samulka (Jersey City, NJ)
Assignee: CA, Inc.
H04L67/22G06F11/3006H04L67/025H04L67/14H04L67/2804
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,736,251
App. No.
12/657,981
Granted
Aug 15, 2017
Kind
B1
Abstract

Capture and replay of RDP session packets is disclosed. A packet associated with the session is received from one of a first client and a first destination node. The node is caused to be stored. If the packet is received from the client, forward the packet to the destination node. If the packet is received from the destination node, forward the packet to the client.

Claims (110)

1. A system for capturing, using a gatekeeper device, a Remote Desktop Protocol (RDP) session, comprising:

a set of one or more processors configured to, using a set of one or more interfaces:

receive an indication that the session should be captured, wherein during the session, a remote computing resource is remotely administered, over a network, from a client, wherein a user associated with the client was previously authorized to administer the remote computing resource, and wherein connection between the remote computing resource and the client is supported via a particular protocol;

in response to receiving the indication, establish a session record associated with the remote administration session in a data store;

intercept an RDP session packet associated with the remote administration session and transmitted during the remote administration session, wherein the packet is intercepted from one of the client and the remote computing resource being remotely administered from the client;

cause a copy of the intercepted packet to be stored to the established session record associated with the remote administration session;

write a file header that is associated with the established session record, the header comprising:

a date and a time that the RDP session packet was intercepted,

an identity of the user,

an Internet Protocol (IP) address of the user,

a length of the session,

a start time of the session, and

a stop time of the session;

write a file footer that is associated with the established session record;

in the event that the packet is intercepted from the client and the remote computing resource being remotely administered is the intended destination of the intercepted packet, forward, from the gatekeeper device, the intercepted packet to the remote computing resource;

in the event that the packet is intercepted from the remote computing resource being remotely administered and the client is the intended destination of the intercepted packet, forward, from the gatekeeper device, the intercepted packet to the client;

perform post-processing, wherein the post-processing includes:

reading a set of intercepted and copied packets associated with the session record including the copy of the intercepted packet stored to the session record;

generating one or more key frames; and

writing the one or more key frames to a key frame list included in the written file footer associated with the established session record;

receiving a request to replay at least a portion of the remote administration session; and

in response to receiving the request:

retrieving, from the session record associated with the remote administration session, the stored copy of the intercepted packet from the session record;

providing the retrieved copy of the intercepted packet to a session player, wherein the session player is configured to replay the at least portion of the remote administration session at least in part by interpreting the provided packet; and

loading the key frame list, wherein seek functionality is provided at least in part by using the one or more generated key frames written to the key frame list included in the file footer associated with the session record; and

a memory coupled to the second set of one or more processors and configured to provide the set of one or more processors with instructions.

2. The system of claim 1 , wherein the set of one or more processors is further configured to detect that an access policy violation has occurred, wherein the access policy violation is one or more of:

the user lacks access rights to any session and attempts to authenticate to the RDP session;

the user has access rights during a first time period and attempts to authenticate to the RDP session outside of the first time period;

the user has access rights to a non-RDP session and attempts to authenticate to the RDP session; and

the user has access rights to the RDP session and attempts to authenticate with a device that does not have access rights.

3. The system of claim 2 , wherein the set of one or more processors is further configured to record an indication of the access policy violation in the data store.

4. The system of claim 2 , wherein the set of one or more processors is further configured to:

generate an alert; and

transmit the alert to a system administrator.

5. The system of claim 1 , wherein the set of one or more processors is further configured to map a port on an external device with the RDP session.

6. The system of claim 1 , wherein the set of one or more processors is further configured to:

receive from a second user an annotation associated with the session record; and

store the annotation in the data store.

7. A method for capturing, using a gatekeeper device, a Remote Desktop Protocol (RDP) session, comprising:

receiving, via a set of one or more interfaces, an indication that the session should be captured, wherein during the session, a remote computing resource is remotely administered, over a network, from a client, wherein a user associated with the client was previously authorized to administer the remote computing resource, and wherein connection between the remote computing resource and the client is supported via a particular protocol;

in response to receiving the indication, establishing, using a set of one or more processors, and session record associated with remote administration session in a data store;

intercepting an RDP session packet associated with the remote administration session and transmitted during the remote administration session, wherein the packet is intercepted from one of the client and the remote computing resource being remotely administered from the client;

causing a copy of the intercepted packet to be stored to the established session record associated with the remote administration session;

writing a file header that is associated with the established session record, the header comprising:

a date and a time that the RDP session packet was intercepted,

an identity of the user,

an Internet Protocol (IP) address of the user,

a length of the session,

a start time of the session, and

a stop time of the session;

writing a file footer that is associated with the established session record;

in the event the packet is intercepted from the client and the remote computing resource is the intended destination of the intercepted packet, forwarding, from the gatekeeper device, the intercepted packet to the remote computing resource;

in the event that the packet is intercepted from the remote computing resource and the client is the intended destination of the intercepted packet, forwarding, from the gatekeeper device, the intercepted packet to the client;

performing post-processing, wherein the post-processing includes:

reading a set of intercepted and copied packets associated with the session record including the copy of the intercepted packet stored to the session record;

generating one or more key frames; and

writing the one or more key frames to a key frame list included in the written file footer associated with the established session record;

receiving a request to replay at least a portion of the remote administration session; and

in response to receiving the request:

retrieving the stored copy of the intercepted packet from the session record;

providing the retrieved copy of the intercepted packet to a session player, wherein the session player is configured to replay the at least portion of the remote administration session at least in part by interpreting the provided packet; and

loading the key frame list, wherein seek functionality is provided at least in part by using the one or more generated key frames written to the key frame list included in the file footer associated with the session record.

8. The method of claim 7 , further comprising detecting that an access policy violation has occurred, wherein the access policy violation is one or more of:

the user lacks access rights to any session and attempts to authenticate to the RDP session;

the user has access rights during a first time period and attempts to authenticate to the RDP session outside of the first time period;

the user has access rights to a non-RDP session and attempts to authenticate to the RDP session; and

the user has access rights to the RDP session and attempts to authenticate with a device that does not have access rights.

9. The method of claim 8 , wherein the set of one or more processors is further configured to record an indication of the access policy violation in the data store.

10. The method of claim 8 , further comprising:

generating an alert;

transmitting the alert to a system administrator.

11. The method of claim 7 , further comprising mapping a port on an external device with the RDP session.

12. The method of claim 7 , further comprising:

receiving from a second user an annotation associated with the session record; and

storing the annotation in the data store.

13. A computer program product for capturing, using a gatekeeper device, a Remote Desktop Protocol (RDP) session, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

receiving, via a set of one or more interfaces, and indication that the session should be captured, wherein during the session, a remote computing resource is remotely administered, over a network, from a client, wherein a user associated with the client was previously authorized to administer the remote computing resource, and wherein connection between the remote computing resource and the client is supported via a particular protocol;

in response to receiving the indication, establishing, using a set of one or more processors, a session record associated with the remote administration session in a data store;

intercepting an RDP session packet associated with the remote administration session and transmitted during the remote administration session, wherein the packet is intercepted from one of the client and the remote computing resource being administered;

causing a copy of the intercepted packet to be stored to the established session record associated with the remote administration session;

writing a file header that is associated with the established session record, the header comprising:

a date and a time that the RDP session packet was intercepted,

an identity of the user,

an Internet Protocol (IP) address of the user,

a length of the session,

a start time of the session, and

a stop time of the session;

writing a file footer that is associated with the established session record;

in the event that the packet is intercepted from the client and the remote computing resource is the intended destination of the intercepted packet, forwarding, from the gatekeeper device, the intercepted packet to the remote computing resource;

in the event that the packet is intercepted from the remote computing resource and the client is the intended destination of the intercepted packet, forwarding, from the gatekeeper device, the intercepted packet to the client;

performing post-processing, wherein the post-processing includes:

reading a set of intercepted and copied packets associated with the session record including the copy of the intercepted packet stored to the session record;

generating one or more key frames; and

writing the one or more key frames to a key frame list included in the written file footer associated with the established session record;

receiving a request to replay at least a portion of the remote administration session; and

in response to the request:

retrieving the stored copy of the intercepted packet from the session record;

providing the retrieved copy of the intercepted packet to a session player, wherein the session player is configured to replay the at least portion of the remote administration session at least in party by interpreting the provided packet; and

loading the frame list, wherein seek functionality is provided at least in part by using the one or more generated key frames written to the key frame list included in the file footer associated with the session record.

14. The computer program product of claim 13 , further comprising computer instructions for detecting that an access policy violation has occurred, wherein the access policy violation is one or more of:

the user lacks access rights to any session and attempts to authenticate to the RDP session;

the user has access rights during a first time period and attempts to authenticate to the RDP session outside of the first time period;

the user has access rights to a non-RDP session and attempts to authenticate to the RDP session; and

the user has access rights to the RDP session and attempts to authenticate with a device that does not have access rights.

15. The computer program product of claim 14 , further comprising computer instructions for recording an indication of the access policy violation in the data store.

16. The computer program product of claim 14 , further comprising computer instructions for:

generating an alert; and

transmitting the alert to a system administrator.

17. The computer program product of claim 13 , further comprising computer instructions for mapping a port on an external device with the RDP session.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 25, 2016
From: XCEEDIUM, INC.
To: CA, INC.
Reel/Frame 037830/0705 →
RELEASE OF SECURITY INTEREST Recorded Jun 4, 2015
From: VENTURE LENDING & LEASING VI, INC.
To: XCEEDIUM, INC.
Reel/Frame 035787/0202 →
SECURITY INTEREST Recorded May 31, 2015
From: XCEEDIUM, INC.
To: HORIZON TECHNOLOGY FINANCE CORPORATION
Reel/Frame 035750/0371 →
SECURITY AGREEMENT Recorded Feb 24, 2014
From: XCEEDIUM, INC.
To: HARMONY PARTNERS II, L.P.; ARROWPATH FUND II LP; ARROWPATH ENTREPRENEUR FUND LP
Reel/Frame 032332/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 25, 2013
From: SAMULKA, MAREK
To: XCEEDIUM, INC.
Reel/Frame 030076/0177 →
SECURITY AGREEMENT Recorded Jun 21, 2012
From: XCEEDIUM, INC.
To: VENTURE LENDING & LEASING VI, INC.
Reel/Frame 028418/0354 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 22, 2010
From: SAMANT, NILESH NANDAKUMAR
To: XCEEDIUM, INC.
Reel/Frame 024577/0141 →
Continuity (1)
Provisional Application 61212926 · Apr 17, 2009