ICT SEcurity BASICS. Course: Software Defined Radio. Angelo Liguori. SP4TE lab. angelo.liguori@uniroma3.it



Similar documents
Tutorial on Socket Programming

UNIX Sockets. COS 461 Precept 1

Socket Programming. Kameswari Chebrolu Dept. of Electrical Engineering, IIT Kanpur

Introduction to Socket Programming Part I : TCP Clients, Servers; Host information

The POSIX Socket API

Networks. Inter-process Communication. Pipes. Inter-process Communication

ELEN 602: Computer Communications and Networking. Socket Programming Basics

Socket Programming. Srinidhi Varadarajan

Unix Network Programming

Computer Networks Network architecture

Programmation Systèmes Cours 9 UNIX Domain Sockets

Overview. Socket Programming. Using Ports to Identify Services. UNIX Socket API. Knowing What Port Number To Use. Socket: End Point of Communication

Implementing Network Software

IT304 Experiment 2 To understand the concept of IPC, Pipes, Signals, Multi-Threading and Multiprocessing in the context of networking.

Socket Programming. Request. Reply. Figure 1. Client-Server paradigm

Lab 4: Socket Programming: netcat part

Introduction to Socket programming using C

Socket = an interface connection between two (dissimilar) pipes. OS provides this API to connect applications to networks. home.comcast.

Communication Networks. Introduction & Socket Programming Yuval Rochman

VMCI Sockets Programming Guide VMware ESX/ESXi 4.x VMware Workstation 7.x VMware Server 2.0

What is CSG150 about? Fundamentals of Computer Networking. Course Outline. Lecture 1 Outline. Guevara Noubir noubir@ccs.neu.

DESIGN AND IMPLEMENT AND ONLINE EXERCISE FOR TEACHING AND DEVELOPMENT OF A SERVER USING SOCKET PROGRAMMING IN C

Porting applications & DNS issues. socket interface extensions for IPv6. Eva M. Castro. ecastro@dit.upm.es. dit. Porting applications & DNS issues UPM

Socket Programming in C/C++

Operating Systems Design 16. Networking: Sockets

Generalised Socket Addresses for Unix Squeak

Chapter 3. Internet Applications and Network Programming

Network Programming with Sockets. Process Management in UNIX

NS3 Lab 1 TCP/IP Network Programming in C

Limi Kalita / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 5 (3), 2014, Socket Programming

TCP/IP - Socket Programming

Direct Sockets. Christian Leber Lehrstuhl Rechnerarchitektur Universität Mannheim

Session NM059. TCP/IP Programming on VMS. Geoff Bryant Process Software

SSC - Communication and Networking Java Socket Programming (II)

Introduction to Computer Networks

Application Architecture

IP Network Layer. Datagram ID FLAG Fragment Offset. IP Datagrams. IP Addresses. IP Addresses. CSCE 515: Computer Network Programming TCP/IP

Computer Networks/DV2 Lab

BSD Sockets Interface Programmer s Guide

INTRODUCTION UNIX NETWORK PROGRAMMING Vol 1, Third Edition by Richard Stevens

Writing a C-based Client/Server

Network Programming using sockets

Writing Client/Server Programs in C Using Sockets (A Tutorial) Part I. Session Greg Granger grgran@sas. sas.com. SAS/C & C++ Support

Chapter 11. User Datagram Protocol (UDP)

Programming with TCP/IP Best Practices

Concurrent Server Design Alternatives

Network-Oriented Software Development. Course: CSc4360/CSc6360 Instructor: Dr. Beyah Sessions: M-W, 3:00 4:40pm Lecture 2

IPv6 Enabling CIFS/SMB Applications

Networks class CS144 Introduction to Computer Networking Goal: Teach the concepts underlying networks Prerequisites:

Network Programming TDC 561

Overview. Securing TCP/IP. Introduction to TCP/IP (cont d) Introduction to TCP/IP

Basic Networking Concepts. 1. Introduction 2. Protocols 3. Protocol Layers 4. Network Interconnection/Internet

Computer Networks - Xarxes de Computadors

CPS221 Lecture: Layered Network Architecture

The TCP/IP Reference Model

Computer Networks. Chapter 5 Transport Protocols

Lecture 28: Internet Protocols

Transport Layer. Chapter 3.4. Think about

The OSI Model and the TCP/IP Protocol Suite PROTOCOL LAYERS. Hierarchy. Services THE OSI MODEL

Computer Networks Practicum 2015

Transport layer protocols. Message destination: Socket +Port. Asynchronous vs. Synchronous. Operations of Request-Reply. Sockets

First Workshop on Open Source and Internet Technology for Scientific Environment: with case studies from Environmental Monitoring

Overview of Computer Networks

transmission media and network topologies client/server architecture layers, protocols, and sockets

CS 213, Fall 2000 Lab Assignment L5: Logging Web Proxy Assigned: Nov. 28, Due: Mon. Dec. 11, 11:59PM

virtio-vsock Zero-configuration host/guest communication Stefan Hajnoczi KVM Forum 2015 KVM FORUM 2015 STEFAN HAJNOCZI

Objectives of Lecture. Network Architecture. Protocols. Contents

Computer Networks/DV2 Lab

Distributed Systems. 2. Application Layer

Application Development with TCP/IP. Brian S. Mitchell Drexel University

The exam has 110 possible points, 10 of which are extra credit. There is a Word Bank on Page 8. Pages 7-8 can be removed from the exam.

Access Control: Firewalls (1)

>>> SOLUTIONS <<< c) The OSI Reference Model has two additional layers. Where are these layers in the stack and what services do they provide?

Lecture 7: Introduction to Sockets

Network Communication

TFTP Usage and Design. Diskless Workstation Booting 1. TFTP Usage and Design (cont.) CSCE 515: Computer Network Programming TFTP + Errors

Linux Kernel Architecture

Socket programming. Socket Programming. Languages and Platforms. Sockets. Rohan Murty Hitesh Ballani. Last Modified: 2/8/2004 8:30:45 AM

UNIX. Sockets. mgr inż. Marcin Borkowski

EITF25 Internet Techniques and Applications L5: Wide Area Networks (WAN) Stefan Höst

Transport and Network Layer

CSIS CSIS 3230 Spring Networking, its all about the apps! Apps on the Edge. Application Architectures. Pure P2P Architecture

Domain Name System (1)! gethostbyname (2)! gethostbyaddr (2)!

How do I get to

Network Applications

Lectures on distributed systems: Client-server communication. Paul Krzyzanowski

From Centralization to Distribution: A Comparison of File Sharing Protocols

CS335 Sample Questions for Exam #2

Transport Layer Protocols

Note! The problem set consists of two parts: Part I: The problem specifications pages Part II: The answer pages

Note! The problem set consists of two parts: Part I: The problem specifications pages Part II: The answer pages

Transcription:

Course: Software Defined Radio ICT SEcurity BASICS Angelo Liguori angelo.liguori@uniroma3.it SP4TE lab 1

Simple Timing Covert Channel Unintended information about data gets leaked through observing the timing of event ON-OFF scheme 2

SIMPLE Timing Covert Channels The sender/receiver agree beforehand on a timing interval and a starting protocol to signal the start of transmission The starting protocol may be a time or a network event, or a special packet could be used to signal transmission Once established if a packet is received within the time interval then this signifies a binary 1 and silence during the period signifies a 0 3

SIMPLE Timing Covert Channels Rather than creating a continuous stream of bits one method could be to create a frame. This could consist of a pre-determined number of bits within each frame. The capacity of the channel is determined by the timing interval chosen, that is: the smaller the interval the higher the transmission rate 4

Simple Timing Covert Channel 2 Levels Client-Server Architecture Active Timing Covert Channel Sender (entity that sends the message -licit and covert- and starts the connection) Receiver (entity that receives the messages -licit and covert- and waits for connections) Sender and Receiver use a TCP connection on port 20001 5

Network Service Operating system provides Application Programming Interface (API) for network application C, C++, Java offer sockets to send data over a TCP or UDP connection Stream sockets for connection oriented protocols (i.e. TCP) Datagram sockets for connectionless protocol (i.e.udp) 6

Sockets Sockets are APIs used to allow to developers the inter-process communication between different hosts A way to communicate to other programs using a descriptor that is like a file descriptor. You must: open it read/write or send/recv close it 7

Sockets Berkeley sockets is the most popular Internet Socket runs on Linux, FreeBSD, OS X, Windows fed by the popularity of TCP/IP Sockets hide the details of transport layer (ISO-OSI) 8

TCP Sockets TCP = Transmission Control Protocol reliable, connection-oriented two-way connection messages sent in order arrive in order like the telephone system a connection must be established between the sender and the receiver a conversation takes place the connection must be ended 9

Client-Server Model CLIENT Starts second Contacts a server with a request Waits for response from server SERVER Starts first Waits for contact from a client Responds to requests 10

Typical Client Program Prepare to communicate Create a socket Determine server address and port number Initiate the connection to the server (TCP) Exchange data with the server Write data to the socket Read data from the socket Note, a single socket supports both reading and writing Manipulate the data (i.e., display email, etc.) Close the socket 11

Typical server Program Prepare to communicate Create a socket Associate local address and port with the socket Wait to hear from a client Indicate how many clients-in-waiting to permit Accept an incoming connection from a client Exchange data with the client over new socket Receive data from the socket Do stuff to handle the request (i.e., get a file) Send data to the socket Close the socket Repeat with the next connection request 12

Basics Socket Calls SERVER CALLS socket() bind() listen() while (whatever) { accept() read() / recv() write() / send() CLIENT CALLs gethostbyname() socket() connect() write() / send() read() / recv() close() close() } 13

Simple Client-Server SERVER CLIENT socket() connect() send() recv() close() Connection establishment Data request Data response End-of-file notification socket() bind() listen() accept() recv() send() recv() close() 14

Socket Calls int socket(int domain, int type, int protocol) int connect(int sockfd, struct sockaddr *server_address, socketlen_t addrlen) ssize_t send(int sockfd, const void *buf, size_t len, int flags) ssize_t recv(int sockfd, void *buf, size_t len, int flags) int bind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen) int listen(int sockfd, int backlog) int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen) int bind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen) int close(int sockfd) 15

Socket creation Operation to create a socket int socket(int domain, int type, int protocol) Return a descriptor (or handle) for the socket Originally designed to support any protocol suite Domain: protocol family Use PF_INET for the Internet Type: semantics of the communication SOCK_STREAM: reliable byte stream SOCK_DGRAM: message-oriented service Protocol: specific protocol UNSPEC: unspecified. No need for us to specify, since PF_INET plus SOCK_STREAM already implies TCP, or SOCK_DGRAM implies UDP Used by both server and client to create socket 16

Simple Timing Covert Channel - CLient Function that calculates the current time Function that sends the overt message Function that sends the COVERT message using the ON- OFF scheme NOTE: after each covert bit sent, we wait for the covert message interval time. Synchro: each 3 covert bytes we send a synchronization symbol In Main we create and manage the socket 17

Simple Timing Covert Channel - Server Function that calculates the current time 2 threads: Thread 1 reads the overt message and centers the time in the middle of the covert message interval time Thread 2 manages the time sampling and builds the covert message In Main we create and manage the socket 18

Webografia http://www.sans.org/information-security http://resources.sei.cmu.edu/library/asset-view.cfm?assetid=53114 http://public.dhe.ibm.com/common/ssi/ecm/en/wgl03045usen/wgl03045usen.pdf www.cisco.com/web/offer/gist_ty2_asset/cisco_2014_asr.pdf http://www.trendmicro.com/cloud-content/us/pdfs/security-intelligence/reports/rpt-trendlabs-3q- 2013-security-roundup.pdf http://www.commoncriteriaportal.org/ https://tools.ietf.org/html/rfc4949 http://web.eecs.umich.edu/~yunjing/papers/ccsw11_xu.pdf http://www.cs.uit.no/~daniels/pingtunnel/ http://www.byteboss.com/view.aspx?id=243972&name=lemay http://www.gianvecchio.com/uploads/1/0/7/8/10784991/tdsc10.pdf 19