[Applause]
hi thank you so much for having us we're
very excited to be here so first of all
some context to this project because I'm
definitely not a blockchain evangelist
I'm kind of the opposite so people were
like why are you talking about that so
in the fall of 2018 like was mentioned
both of us are students at Rowan College
of Burlington County and in fall of 2018
Lockheed Martin started with sponsoring
our cybersecurity undergraduate research
project and the prompt to that group was
take two nascent technologies
specifically blockchain and Adina tools
which is automated detection of
anomalous network activity so take these
two tools and tell us about them if you
find a way to combine them great now
Jeff and I had not yet been part of this
research project we heard about it okay
that's cool
the next semester spring 2019 we said we
really want to join this project now
alongside with us were rebecca de joseph
christopher hendricks christopher hurley
joy then GOC dalton Gravette and hannah
martha lair so we are only one-fourth of
an amazing team of people who are back
home now when we joined the project it
was great this project the plan exists
and now is the execution so for anyone
who may you know roll their eyes at
blockchain I do that too um anyway this
this turned into our research project
for the semester titled validating data
integrity with hyper ledger fabric and
it was like I mentioned sponsored by
Lockheed Martin and advised by Professor
Paul Warner these are the members these
are some of the members of our group
from left to right we have Christopher
Hendrix myself
Jordan GOC Hannah Martha Lou and Jeff
not pictured our Rebecca de Joseph
Christopher Hurley and Dalton Gravett so
one of the technologies on which this is
based are smart contracts that's all
nice but what does that actually mean
this is a self-executing and managing
contract that is built upon the
blockchain infrastructure basically what
that means is you have the integrity
that comes along with blockchain where
you can't edit former blocks because
everything is based on each other and
there's the visibility however unlike
cryptocurrency there's no mining
involved so you don't need to you don't
need to complete ever complex
mathematical processes just to create
another block now smart contract is just
a type of blockchain that is not it is
just the format itself and what we ended
up using was hyper ledger which is a
project of the Linux Foundation it's
what's called a permission distributed
ledger framework the permissioned means
that not just anyone can take part in it
or can view it but that you need
permission that's given by Business
Network cards so those need to be
actively granted by whoever is
attempting to connect or interact within
that network because it is created by
the Linux Foundation and also backed by
IBM it's completely open-source and
enterprise grade and underneath hyper
ledger there are actually sub projects
and frameworks so there is hyper ledger
fabric which is a framework composer
which is a tool for fabric and to roja
which is another framework the second
tool which was the basis of this
experiment were a dana tools the
automated detection of anomalous network
activity and what the data tools do is
they take in logs that get created
across the network by systems by
machines and it takes them and
establishes a baseline now when it gets
any logs that say hmm this this doesn't
fit with what we're used to it raises an
alert this is anomalous behavior not
only does it raise that alert but it
actually tries to investigate is this
malicious anomalous behavior or is it
anomalous behavior for some legitimate
or benign reason and at that point it's
able to to tell you know the owner of
hey you may want to check this out
syslog-ng is great for collecting logs
it is able to collect logs from any
system as well as docker which is what
we were using it's application level
virtualization that we were using on all
of our machines and even better than
that
Splunk which is a well-known oedema tool
that's used for security monitoring
software was in alpha testing for a new
feature that integrated hyper ledger
fabric logs one of our team members
reached out to the team at Splunk in
charge of that and said hey we're
students can we test this out for you
and they were wonderful gave at us
access to that and it is now full public
mode so it was really nice getting to
have alpha testing for that and giving
them feedback on it so based off of
those two things the first thing that
comes to mind is what the project goal
was so the project goal was to build a
secure messaging network based off of
those smart contracts and the smart
contracts are pretty much the inter
communication between the computers and
then all of that is fed to the Dana tool
looking at the network to go about
seeing for any anomalous traffic just to
give a little bit of explanation about
this picture here the original idea was
to have four computer nodes that all
communicated on the hyper ledger server
which was the one that was hosting the
actual the smart contract software on
top of that it was also hosting a
syslog-ng client as long also with all
four the nodes all that information
would be fed into the syslog-ng server
which the logs would be collected and
then fed to the Splunk server also known
as the Dana tool on top of that we
wanted to see if this would actually
work as far as demonstrating its
security abilities so we created Eve
over here the bad guy who's pretty much
going to be attempting to eavesdrop on
message traffic and see what he can go
about getting so with all of that there
was a set of challenges especially since
we are college students some of those
being that we were using decommissioned
college computers at a community college
we were constrained to a thirteen
I'm weak period based off the semester
we're also all college students who are
working part-time jobs at the same time
and the other parts were we had no clear
path for this project as far as like
people have worked on this before us so
it was kind of trial by fire for a lot
of us on both blockchain and the other
very tools that we used as far as those
challenges we learned a lot throughout
the journey some of those things was
attempting to use raspberry pies as the
nudes instead of computers themselves
seeing if we can add some IOT or other
devices into the network and see if it
worked we've quickly found out that the
system architecture for most your PI's
your especially your PI zero w's did was
not compatible with docker so we quickly
found out and had to switch off back to
using the decommissioned pcs
additionally like I mentioned before
there are a lot of frameworks for
blockchain and smart contract so we
played around with those for a while
before we settled on the right one first
we tried writing a blockchain from
scratch and C++ based on the tutorial
online from Dave Nash tutorial was great
highly do not recommend doing that if
you only have 13 weeks yeah maybe if we
had more time we also tried using hyper
ledger Aroha which like I said is also
one of the frameworks created by the
Linux project it was wonderful however
Iroha and fabric both have different
uses and focuses and for our purposes we
found that hyper ledger fabric was a
little bit better for our shorter time
period also we tried to grant each node
explicit permission so you know only
node one could send a certain type of
message to node 2 and node 3 couldn't
send messages however like I said like
we said there is we didn't really have
much experience prior to this so we we
didn't have the time nor a lot of the
knowledge to take advantage of a lot of
the advanced features in in the
framework now following on on the
challenges and some of the things we
tried this is
a reality that our project ended up
being so we have a total of six machines
two servers that you have Oh two servers
you have up here and here so our top
server here is our hyper it hosts the
hyper ledger itself and underneath the
hyper ledger we have the composer
playground tool now based on that we
have the REST API which lets web
services interface with the blockchain
an anger opera an angular application
created using yeoman runs against the
API and allows users to easily use and
interact within the hyper ledger network
from a web platform so it allows us to
get around the need to distribute
Business Network cards to give those
permissions out now from there we had
four nodes all machines running a bun -
and those nodes each were also running
docker that is the application level
virtualization and they were each able
to communicate with the hyper ledger and
run transactions simultaneously we had
all of them we had all of their logs
sent over to the secondary server was
collected by syslog-ng now using a
universal Foer there on port 1050 we're
able to send them back to the original
hyper ledger fabric server which was
also hosting Splunk now that we had the
logs from the machines being fed back to
Splunk as well as Splunk monitoring
hyper ledger fabric spunk was able to
detect any anomalous behavior so even if
something did go wrong it was something
we were able to detect additionally we
had a node 3 we had WS cat running the
loud node 3 to act as a WebSocket client
so it could subscribe to any
transactions or exchanges occur within
the overall blockchain network so we
were able to add on top of that even
another layer of human authorization
they could tell if anything was was
acting kind of funny
so so this is what it really ended up
being so for as far as moving forward we
talked about the the future of this the
applications everything else that comes
of it and there's a few things that we
definitely need to add on to it for sure
one of those being that we needed to add
the minor minor modification of the
hyper ledger fabric which was recently
deprecated in late August so a matter of
rewriting the code for moving forward
which is perfectly fine the other things
that we wanted to do is go about
expanding the compatibility I don't know
if it you we mentioned it before but
most of the machines that we had running
initially we're using just plain old a
boon to 16.4 I believe so we want to
expand to Windows and some of the other
mobile OS is to be allowed to be used in
way greater networks some of the other
things is the manual or the
communication was all done manually
using the WebSocket and the rest API
will be adding the automation so that
way this can happen seamlessly in the
background for whatever communication
you want to be implemented and going
about that refining the code to be used
in the relevant industry that it would
be used for so being able to use it with
whatever program wherever the data is
stored so we're you know we're very
thankful for hackaday and everyone
having us and like we say that we're
we're only a quarter of a wonderful
group of people back at home we were
definitely thankful for for being part
of that group and getting to build upon
you know a concept that they really
developed and we're really the driving
force behind but if you have any
questions feel free to find us and thank
you very much
[Applause]