Fabio Chiarani - Esame di Stato 2016 Project Cerberus : Portale per la Gestione dei Server Project Cerberus : Portale per la Gestione dei Server JOBMEETING Roberto Endrizzi Paolo Berrera Fabio Chiarani Davide Zanella Marco Bronzini Fabio Chiarani - Esame di Stato 2016 Project Cerberus : Portale per la Gestione dei Server 1 #Quality Of Service SQL </HTML> Fabio Chiarani - Esame di Stato 2016 Project Cerberus : Portale per la Gestione dei Server 2 #WatchDog SQL GET Request XML Response </HTML> Fabio Chiarani - Esame di Stato 2016 Project Cerberus : Portale per la Gestione dei Server TECHNOLOGIES Front End Back End Others Fabio Chiarani - Esame di Stato 2016 RUOLO SVOLTO Project Cerberus : Portale per la Gestione dei Server • Progetto WatchDog • Front End (Login, About, Logs, WatchDog_Details, Recovery, ManageUser, ManageOtherUser, ManageProprieties, ManageServer) • Back End (WD WinService) • Creazione / Gestione del Database • Sicurezza • Develop sul Cloud Fabio Chiarani - Esame di Stato 2016 Due in uno, perché no? Project Cerberus : Portale per la Gestione dei Server WatchDog Quality of Service Fabio Chiarani - Esame di Stato 2016 Project Cerberus : Portale per la Gestione dei Server WatchDog in Dettaglio Server WebService HTTP GET XML <STATUS serverName="TEST SERVER" time="1458203300768"> <RAM> <USED>77</USED> </RAM> <REQUEST> <FOR_MINUTE>888</FOR_MINUTE > </REQUEST> <SESSION> <NUMBER>99</NUMBER> </SESSION> <CONNECTION> <IN_USE>3</IN_USE > </CONNECTION> </STATUS> Fabio Chiarani - Esame di Stato 2016 WatchDog in Dettaglio Project Cerberus : Portale per la Gestione dei Server <STATUS serverName="TEST SERVER" time="1458203300768"> <RAM> <USED>77</USED> </RAM> <REQUEST> <FOR_MINUTE>888</FOR_MINUTE > </REQUEST> <SESSION> <NUMBER>99</NUMBER> </SESSION> <CONNECTION> <IN_USE>3</IN_USE > </CONNECTION> </STATUS> Fabio Chiarani - Esame di Stato 2016 Project Cerberus : Portale per la Gestione dei Server Autenticazione Username, Password Storage Procedure Fabio Chiarani - Esame di Stato 2016 Project Cerberus : Portale per la Gestione dei Server Autenticazione sicura? Storage Procedure Username, Password ASP.NET SESSION Fabio Chiarani - Esame di Stato 2016 SECURITY: Session Fabio Project Cerberus : Portale per la Gestione dei Server Back End if (resp != 0) { //accept login Session["User"] = _userName; //add some logs Response.Redirect("dashboard.aspx"); } Login if (Session["User"] != null) { Session["User"] = "Fabio" Response.Redirect("login.aspx"); } Session["User"] = null Fabio Chiarani - Esame di Stato 2016 Project Cerberus : Portale per la Gestione dei Server Autenticazione sicura? Stored Function Username, Password ASP.NET SESSION Fabio Chiarani - Esame di Stato 2016 Project Cerberus : Portale per la Gestione dei Server SECURITY: SQL Injection Username = Fabio Password = fdsnuend ID = 1 SELECT ID FROM Users WHERE Username = Fabio AND Password = fdsnuend ID Username Password 1 Fabio fdsnuend Fabio Chiarani - Esame di Stato 2016 Project Cerberus : Portale per la Gestione dei Server SECURITY: SQL Injection Username = Mario or 1=1 -- ID = 1 SELECT ID FROM Users WHERE Username = Mario or 1=1 ID Username Password 1 Fabio fdsnuend Fabio Chiarani - Esame di Stato 2016 Project Cerberus : Portale per la Gestione dei Server Client – Side Prevenire l’ SQL Injection HTTP POST <!-- VALIDATORS --> ASP.NET <asp:RegularExpressionValidator ID="regexValidator" runat="server" ControlToValidate="txtUser" ErrorMessage="Caracter not valid in Username!" ForeColor="White" ValidationExpression="([A-z])\w+"> </asp:RegularExpressionValidator> Fabio Chiarani - Esame di Stato 2016 Server – Side Prevenire l’ SQL Injection Project Cerberus : Portale per la Gestione dei Server Stored Function _pwd = Crypto.SHA1(txtPwd.Value); or 1=1 -- 7aa31b35a0968cebb64ae44afbd4f81244776d83 //regex server side: more security regex match = new = Regex(@"([A-z])\w+"); regex.Match(_userName); if (!match.Success) { //injection here return; } Fabio Chiarani - Esame di Stato 2016 Project Cerberus : Portale per la Gestione dei Server Autenticazione sicura! sicura? Stored Function Username, Password ASP.NET SESSION Fabio Chiarani - Esame di Stato 2016 Project Cerberus : Portale per la Gestione dei Server Web.Config <!-- Prevent leaking code information --> <customErrors mode="RemoteOnly" defaultRedirect="~/404.html"> <error statusCode="404" redirect="~/404.html" /> </customErrors> <!-- Disable trace --> <trace enabled="false"/> <!– limit session time --> <sessionState cookieless="false" timeout="30" stateNetworkTimeout="30"/> Fabio Chiarani - Esame di Stato 2016 Users Database Project Cerberus : Portale per la Gestione dei Server USER ADMINISTRATORS SQL Database DEVELOPERS WEBSERVER WEBSERVICE Fabio Chiarani - Esame di Stato 2016 Project Cerberus : Portale per la Gestione dei Server DEMO DEL PROGETTO Fabio Chiarani - Esame di Stato 2016