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