Skip to content

Implementation of covert communication channel using disk reads through direct load generation and SSH load

Notifications You must be signed in to change notification settings

akumarkk/covert_channel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Covert channel is a hidden communication in which two Virtual Machine(VM) instances cooperate to send messages via shared resources. Covert channel communication is used to extract information from the target VM running on the same physical machine. This can also be used to verify the correctness of network-based co-residence checks as demonstrated in the work ~\cite{covertchannel.wp}. \par VMs on the same physical machine share the computing resources such as CPU, disks and memory. Hypervisor arbitrates the VM resource contention and provides sequential access to the shared resources. A VM can observe the latency in accessing shared resources to predict the allocation of the same to other VMs. Two processes running on two different VMs use these latency in accessing shared resources to establish covert communication channel.\par In Disk-based covert channel, sender(target) VM does nothing to send ~\emph{0} bit, but it reads from random locations on a shared disk volume to send \emph{1} bit. Listener VM observes the latency for reading from fixed location on the disk volume. Higher latency indicates \emph{1} bit and lower latency indicates \emph{0} bit.

Co-residence of VMs on the same physical machine can be detected using network-based techniques and load based techniques. In Network based co-residency, Dom0 IP address, small packet RTT and numerically close internal IP addresses are used to detect co-residency. A cloud provider can obfuscate this co-residence by making Dom0 not to respond to traceroute and assign random IP addresses during instance creation. In this case, load based co-residency can be used. An attacker instance can check for co-residence with target instance by observing the differences in load samples taken when externally inducing load on the target versus when not. In my implementation, I have used scp protocol to create variation in load in the target VM.

About

Implementation of covert communication channel using disk reads through direct load generation and SSH load

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages