Skip to content

Commit 86fe091

Browse files
authored
Merge pull request #4 from ablwr/digipres2
Digipres2
2 parents 9c26a8e + a271202 commit 86fe091

18 files changed

+783
-70
lines changed

_presentations/bash-scripting.html

+1
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@
138138
- [ExplainShell.com](https://explainshell.com/)
139139
- [Script Ahoy](http://dd388.github.io/crals/)
140140
- [the sourcecaster](https://datapraxis.github.io/sourcecaster/)
141+
- [Backing Up Using Expect and Rsync](http://www.sitepoint.com/backing-up-using-expect-and-rsync/)
141142

142143
---
143144
# Learning more

_presentations/cli.html

+1
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,7 @@
183183
---
184184
# Additional Resources
185185

186+
- [awesome-shell](https://github.com/alebcay/awesome-shell)
186187
- [Command Line Cheat Sheet](https://www.git-tower.com/blog/posts/command-line-cheat-sheet)
187188
- [Command Prompt Cheat Sheet](http://simplyadvanced.net/blog/cheat-sheet-for-windows-command-prompt/)
188189
- [Software Carpentry Course](http://swcarpentry.github.io/shell-novice/)

_presentations/computers.html

+2
Original file line numberDiff line numberDiff line change
@@ -128,13 +128,15 @@
128128

129129
- [baseCS](https://medium.com/basecs)
130130
- [baseCS podcast](https://www.codenewbie.org/basecs)
131+
- [Corkami Basics of Computing visualizations](https://github.com/corkami/pics/blob/master/binary/README.md)
131132
- [CS50: Introduction to Computer Science](https://www.edx.org/course/introduction-computer-science-harvardx-cs50x#!)
132133
- [Hack the Kernal](https://www.ops-class.org/)
133134
- [Open Source Society University: CS Degree](https://github.com/ossu/computer-science)
134135
- [Information Technologies at Pratt Syllabus](https://github.com/hadro/654fa17)
135136
- [The Programming Historian](https://programminghistorian.org/lessons/)
136137
- [Python for Librarians](https://data-lessons.github.io/library-python/)
137138
- [What is Code? by Paul Ford](http://www.bloomberg.com/graphics/2015-paul-ford-what-is-code/)
139+
- [What is a digital file? by Nicole Martin](https://twobitpreservation.com/bits-blog/2017/5/15/what-is-a-digital-file)
138140

139141
---
140142
# Hacking games

_presentations/databases.html

+116-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
---
22
layout: presentation
33
title: Databases
4-
published: false
54
---
65
This page intentionally left blank. ⬇️, ➡️, or spacebar 🛰 to start slidedeck.
76
---
@@ -10,19 +9,130 @@
109
# Databases 🥞
1110

1211
---
13-
# Things Databases Do
12+
# Databases
1413

14+
A database is an organized collection of data that can easily be accessed and modified.
15+
16+
By this broad definition, a list is a database. An Excel spreadsheet is a database. Everything is a database!
17+
18+
---
19+
# DBMS
20+
21+
*Database Management System*
22+
23+
But usually, when using the word "database," someone is referring to an entire database system.
24+
25+
Examples of DBMS are Microsoft Access, FileMaker, or Oracle, MySQL, PostgreSQL and Microsoft SQL Server
26+
---
27+
# Relational Databases
28+
29+
All of the previous examples were types of relational database framework. This relational model has been extremely popular since it was invented in the 1970s and is probably what people mean or are using when they talk about a database.
30+
31+
A relational database is a collection of schemas, tables, queries, reports, views, and other elements.
32+
33+
---
34+
# How do databases work?
35+
36+
[This article](http://coding-geek.com/how-databases-work/) does a great job at in-depth explanations of how databases work. Here is an overview of some of the significant components of a database:
37+
38+
- Process manager
39+
- Network manager
40+
- File system manager
41+
- Memory manager
42+
- Security manager
43+
- Client manager
44+
- Backup manager
45+
- Recovery manager
46+
- Monitor manager
47+
- Administration manager
48+
- Query manager
49+
- Data manager
50+
51+
---
52+
# How do databases work?
53+
54+
That's a lot of management! And many of the components do multiple tasks. Databases are doing a lot of work so that you don't have to.
55+
56+
# (Very) basic pattern of interaction
57+
58+
- You deliver a command to the database, probably written or parsed down into SQL (more on that later)
59+
- The client manager determines if you are allowed to do that
60+
- The query manager checks your statement and optimizes it (determines the fastest way to get the answer)
61+
- The hunt begins! (A lot of complex things happen here, computers doing computer stuff)
62+
- The answer is returned to you, the user
63+
64+
---
65+
# CRUD
66+
67+
The four basic functions of persistent storage.
68+
69+
**C** reate
70+
**R** ead
71+
**U** pdate
72+
**D** elete
1573

1674
---
17-
# Database Types
75+
# ACID
76+
77+
*Atomicity, Consistency, Isolation, Durability*
78+
79+
**A** tomicity: each transaction be complete fully or not at all; no partial transactions.
80+
**C** onsistency: any transaction will bring the database from one valid state to another.
81+
**I** solation: if multiple transactions occur, they must have the same result regardless of order.
82+
**D** urability: once a transaction has been committed, it will remain so, even if there's a crash or error.
83+
84+
---
85+
# SQL
86+
87+
*Structured Query Language*
88+
89+
A way to talk to databases using simple but powerful, declarative statements.
90+
91+
It can be very finicky and frustrating, but appreciate all the work a database is doing for you!
92+
93+
Here are some major elements used in composing statements:
94+
95+
- SELECT
96+
- FROM
97+
- WHERE
98+
- ORDER BY
99+
100+
---
101+
# SQL
102+
Commands look like this:
103+
104+
`SELECT * FROM Cats`: returns everything in the Cat table.
105+
106+
`SELECT Name FROM Cats WHERE Status = 'Kitten'`: returns the names of all cats with a kitten status.
107+
108+
Maybe you forgot to make a kitten status when you designed your database, but you do have all the cat birthdays. You can do something like this:
109+
110+
`SELECT Name FROM Cats WHERE BirthDate >= 2018-01-01` to find all cats born in the year 2018.
111+
112+
---
113+
# SQL
114+
115+
Honestly, I find writing raw SQL statements to be a total nightmare and it feels impossible to get the syntax exactly right, which is made more frustrating by the syntax seeming to be so simple. A lot of database systems or interaction languages exist to translate SQL on your behalf, so you can more naturally tell the computer what you want.
116+
117+
---
118+
# NoSQL
119+
120+
Some databases are "NoSQL" and work differently from relational databases.
121+
122+
Example frameworks:
18123

19-
- Relational
20-
- Object-oriented
21-
- NoSQL
124+
- CouchDB
125+
- MongoDB
126+
- Redis
22127

23128
---
24129
# Additional Resources
25130

131+
- [Codecademy: Intro to SQL](https://www.codecademy.com/learn/learn-sql)
132+
- [Database Design for Mere Mortals](https://www.goodreads.com/book/show/31159597-database-design-for-mere-mortals)
133+
- [How Databases Work](http://coding-geek.com/how-databases-work/)
134+
- [GalaXQL](http://sol.gfxile.net/g3/) (a browser-based SQL learning game)
135+
- [Khan Academy: Intro to SQL](https://www.khanacademy.org/computing/computer-programming/sql)
26136

27137
---
28138
# Learning more

_presentations/digital-forensics.html

+119
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
---
2+
layout: presentation
3+
title: Digital Forensics
4+
---
5+
This page intentionally left blank. ⬇️, ➡️, or spacebar 🛰 to start slidedeck.
6+
---
7+
class: center, middle
8+
9+
# 💿 📀 💿
10+
# Digital Forensics
11+
# 📀 💿 📀
12+
13+
---
14+
# Digital Forensics
15+
16+
- Imaging
17+
- Write blockers
18+
- Virtualization
19+
- Data recovery
20+
- Tools
21+
22+
---
23+
# Imaging
24+
25+
Imaging is making a complete copy of everything on a storage device. Imaging is a fundamental part of digital forensics -- whether migrating optical media off of fragile medium or copying a partition of an acquired hard drive without tampering with the content. It is usually a complete clone of the original content, but stored differently.
26+
27+
---
28+
# Write blockers
29+
30+
Write blockers prevent the computer for writing anything on the content -- this saves the original material from having technical/descriptive metadata overwritten. A notable example is the "last modified" date stored within files.
31+
32+
---
33+
# Virtualization
34+
35+
Virtualization is the creation of a "virtual" version of something. It is a way for a computer to interpret and read an image as if it were being presented as its original format. Platform virtualization allows an operating system to be run inside of an already-running operating system.
36+
37+
Software emulation is a form of virtualization.
38+
39+
---
40+
# Data recovery
41+
42+
Data recovery practices are anything involved with the restoration of data thought to be lost. Digital storage tends to "suppress memories" rather than actually wipe data clean. When you delete something from your computer (and also "empty the trash can"), it is gone according to you, but the data could still be held on the drive. The computer's file system has merely decided that the place where this data was stored can acceptably be written over. But it remains there until it needs to use that part of the storage system; you just cannot access it via the operating system any longer.
43+
44+
---
45+
# Tools
46+
47+
There are many, many software and hardware tools. See a comprehensive table at the pages 72-80 of [this document](https://www.clir.org/wp-content/uploads/sites/6/pub149.pdf). Here are a few:
48+
49+
Machines
50+
- [Kryoflux](https://kryoflux.com/)
51+
- [Forensic Recovery of Evidence Device (FRED)](https://www.digitalintelligence.com/forensicsystems.php)
52+
53+
Software
54+
- [Binwalk](https://tools.kali.org/forensics/binwalk)
55+
- [BitCurator](https://www.bitcurator.net/)
56+
- [Sleuth Kit](http://www.sleuthkit.org/)
57+
58+
---
59+
# FRED
60+
61+
.left[![fred-small]({{ site.baseurl }}/img/fred-small.gif)]
62+
.center[A computer designed for forensic analysis.]
63+
.right[![fred-small]({{ site.baseurl }}/img/fred-small2.gif)]
64+
65+
---
66+
# Kryoflux
67+
68+
For 3.5" and 5.25" floppy disk imaging, featuring a write blocker and a GUI with data visualization.
69+
70+
.center[![kryoflux]({{ site.baseurl }}/img/kryoflux.png)]
71+
72+
---
73+
# Binwalk
74+
75+
Binwalk is a tool for searching a given binary image for embedded files and executable code. Specifically, it is designed for identifying files and code embedded inside of firmware images.
76+
77+
---
78+
# BitCurator
79+
80+
An open source digital forensics environment that incorporates a variety of functionality and processing for born-digital materials.
81+
82+
- Pre-imaging data triage
83+
- Forensic disk imaging
84+
- File system analysis and reporting
85+
- Identification of private and individually identifying information
86+
- Export of technical and other metadata
87+
88+
---
89+
# Sleuth Kit and Autopsy
90+
91+
Open source digital investigation tools.
92+
93+
Sleuth Kit is a series of command-line tools. Autopsy is a graphical user interface to support Sleuth Kit.
94+
---
95+
# Optical disk tools 📀
96+
97+
- [Dvdisaster](http://dvdisaster.net/en/index.html): "a computer program aimed to enhance data survivability on optical discs by creating error detection and correction data, which is used for data recovery. dvdisaster works exclusively at the image level."
98+
- [disktype](http://disktype.sourceforge.net/): "detects the content format of a disk or disk image"
99+
- [Guymager](http://guymager.sourceforge.net/): "a free forensic imager for media acquisition"
100+
- [Handbrake](https://handbrake.fr/): "a free and open-source transcoder for digital video files"
101+
- [Isolyzer](https://github.com/KBNLresearch/isolyzer): "verifies size of ISO 9660 image against Volume Descriptor fields"
102+
103+
---
104+
# Additional Resources
105+
106+
- [An Introduction to Optical Media Preservation](http://journal.code4lib.org/articles/9581)
107+
- [Denver Art Museum Disk Imaging Workflow](https://docs.google.com/document/d/1Z4LP8shWtdRYTkZrq1Q7nPomPWzJeoV369WC87kj0rM/edit)
108+
- [Forensics Wiki](http://forensicswiki.org/wiki/Main_Page)
109+
- [Extending Digital Repository Architectures to Support Disk Image Preservation and Access](https://ils.unc.edu/callee/p57-woods.pdf)
110+
- [CLIR Digital Forensics and Born-Digital Content in Cultural Heritage Collections](https://www.clir.org/wp-content/uploads/sites/6/pub149.pdf)
111+
112+
---
113+
# Learning more
114+
115+
- [Digital Preservation]({{ site.baseurl }}/presentations/digital-preservation.html)
116+
- [Storage]({{ site.baseurl }}/presentations/storage.html)
117+
- [Other Analysis Tools]({{ site.baseurl }}/presentations/other-analysis-tools.html)
118+
119+
[Home]({{ site.baseurl}}/)

0 commit comments

Comments
 (0)