Elastic Stack Security

Total Page:16

File Type:pdf, Size:1020Kb

Elastic Stack Security Elastic Stack for Security Monitoring 1 in a Nutshell 2019 Pass the SALT Workshop Overview 2 Introduction to Elastic Stack Beats Logstash Elasticsearch Kibana Elastic Stack Alerting and Security Introductory Workshop! 3 • This is an introductory workshop • You probably won’t hear/see a lot of new things if you have: • Used Elastic Stack in the past; • Took the Elastic training…; • Followed SANS SEC455, SEC555, FOR572, etc.; • If you are stuck, please do not suffer in silence! Workshop VM 4 • ais_workshop_xubuntu-18.04.2-desktop-amd64 • VMware Workstation, Player, or Fusion • You can try VirtualBox too, but you are on your own with that… sorry! • 8 GB RAM • 30-50 GB disk space • Keyboard layout: EN-US !!! • Workshop VM (Ubuntu) user/pass: user / Workshop1234% • Normally, it should not require password for login and sudo About David 5 • Managing partner at Alzette Information Security (@AlzetteInfoSec) • Network penetration testing, security architectures, security monitoring, incident response • Instructor at SANS Institute: FOR572 • BSides Luxembourg organizer https://bsideslux.lu • Twitter: @DavidSzili • E-mail: [email protected] • Blog: http://jumpespjump.blogspot.com About Eva 6 • Managing partner at Alzette Information Security (@AlzetteInfoSec) • Web application penetration testing, source code review, security monitoring • CyberWayFinder • BSides Luxembourg organizer https://bsideslux.lu • Twitter: @EvaSzilagyiSec • E-mail: [email protected] • Blog: http://jumpespjump.blogspot.com Introduction to Elastic Stack 7 2019 Pass the SALT Workshop About Elastic Stack 8 What is Elastic Stack? Why Elastic Stack? • 4 main components: • (Free) Open Source Software • Elasticsearch • Distributed, real-time search and • Logstash analytics (very scalable) • Kibana • Parsing and data enrichment • Beats • Large Community • And several other smaller components • InfoSec Projects built around it: Security Onion • Elastic Stack Features (X-Pack) • • Moloch (Elasticsearch) • APM (Application Performance Monitoring) • SOF-ELK • SELKS • HELK • ROCK NSM Elastic Stack History 9 2019: Core security 2015: "Release 2017: Elastic features (TLS, Early 2000s: Bonanza“, Cloud RBAC) are Shay Banon’s Beats, Elastic Enterprise free, SIEM, Recipe App Cloud (AWS) (ECE) EndGame 2012: 2016: Elastic 2018: Open Elasticsearch Stack 5.0 source X-Pack, Inc. New York Stock Exchange Source: https://www.elastic.co/about/history-of-elasticsearch Elastic Stack (Very) High-Level Overview 10 • Beats: single-purpose data shippers • Logstash: server-side data processing pipeline • Elasticsearch: distributed search and analytics engine • Kibana: visualization and dashboards See also: https://www.elastic.co/assets/blt2614227bb99b9878/architecture-best-practices.pdf Beats 11 2019 Pass the SALT Workshop Beats: Lightweight Data Shippers 12 • Lightweight log agents • Written in Go • Can send to Logstash or directly to Elasticsearch • Beats Family: • Filebeat • Winlogbeat • Auditbeat • Packetbeat • Heartbeat • Metricbeat • Functionbeat • Etc. See also: https://www.elastic.co/guide/en/beats/libbeat/current/index.html Beats Configuration Examples 13 Winlogbeat Filebeat Beats Hands-On 14 2019 Pass the SALT Workshop Logstash 15 2019 Pass the SALT Workshop Logstash Overview 16 • LOTS AND LOTS of plugins! • Input: tcp, udp, syslog, beats, jdbc, kafka, rabbitmq, file, exec, cloudwatch, etc. • Filter: csv, json, xml, kv, grok, date, mutate, split, useragent, ruby, drop, etc. • Output: elasticsearch, graphite, nagios, kafka, rabbitmq, radis, file, email, irc, etc. • Easy to learn and use Input Filter Output See also: https://www.elastic.co/guide/en/logstash/current/index.html Input Plugin Examples 17 Plugin Description input { stdin { beats Events from Elastic Beats } } cloudwatch Events from AWS CloudWatch file Streams events from files input { beats { jdbc Events from JDBC data port => 5044 kafka Reads events from Kafka } } rabbitmq Pulls events from RabbitMQ input { s3 Events from files in S3 syslog { snmp Polls devices using SNMP port => 5514 } syslog Reads syslog messages } See also: https://www.elastic.co/guide/en/logstash/current/input-plugins.html Filter Plugin Examples 18 Plugin Description Plugin Description cidr Check IP against net blocks kv Parses key-value pairs csv Parses CSV data into fields mutate Performs mutations on fields date Parses dates from fields ruby Executes Ruby code dissect Extracts unstructured data split Splits multi-line messages drop Drops all events translate Replaces field contents elasticsearch Gets data from Elasticsearch truncate Truncates fields geoip Geo info about an IP urldecode Decodes URL-encoded fields grok Parses unstructured data useragent Parses user agent strings json Parses JSON data xml Parses XML data See also: https://www.elastic.co/guide/en/logstash/current/filter-plugins.html Filters - The Easy Stuff 19 JSON CSV filter { filter { ... ... json { csv { columns => ["ts", "uid", "id.orig_h", source => "message“ "id.orig_p", "id.resp_h", "id.resp_p", "proto", } "service", "duration", "orig_bytes", ... "resp_bytesconn_state", "local_orig", "local_resp", mutate { "missed_bytes", "history", "orig_pkts", "orig_ip_bytes", remove_field => [ "message" ] "resp_pkts", "resp_ip_bytes", "tunnel_parents"] } separator => " “ } } ... mutate { remove_field => [ "message" ] } } Filters - RegExp vs. Grok, Dissect (1) 20 RegExp Dissect • (?<![0-9])(?:(?:25[0-5]|2[0- • String-based split operation 4][0-9]|[0-1]?[0- • Very fast 9]{1,2})[.](?:25[0-5]|2[0-4][0- Grok 9]|[0-1]?[0-9]{1,2})[.](?:25[0- 5]|2[0-4][0-9]|[0-1]?[0- • %{IPV4:source_ip} 9]{1,2})[.](?:25[0-5]|2[0-4][0- • Pre-cooked RegExp patterns 9]|[0-1]?[0-9]{1,2}))(?![0-9]) • Custom Patterns: • (?<queue_id>[0-9A-F]{10,11}) Grok Debuggers: • Heroku App: http://grokdebug.herokuapp.com • Source: https://github.com/nickethier/grokdebug • Docker: https://hub.docker.com/r/fdrouet/grokdebug • Kibana / Dev Tools / Grok Debugger Filters - RegExp vs. Grok, Dissect (2) 21 dissect grok filter { filter { ... ... dissect { grok { mapping => { match => { "message" => "%{ts} %{+ts} "message" => %{+ts} %{src} %{prog}[%{pid}]: %{msg}“ "%{SYSLOGTIMESTAMP:syslog_timestamp} } %{SYSLOGHOST:syslog_hostname} } %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: ... %{GREEDYDATA:syslog_message}" } #"message" => "%{SYSLOGBASE2} %{GREEDYDATA:message}“ } } ... } Filters - Enrichment Examples 22 ruby geoip filter { filter { ... ... if [program] == "bro_dns" { if [resp_h_routable] == "true" { ruby { geoip { code => "event.set('query_length', source => "id.resp_h“ event.get('query').length)“ target => "geoip“ } default_database_type => "City“ } } ... geoip { } source => "id.resp_h“ target => "geoip“ default_database_type => "ASN“ } } ... } Output Plugin Examples 23 Plugin Description csv Writes events to disk in CSV output { stdout { elasticsearch Stores logs in Elasticsearch codec => rubydebug } email Sends email to an address } exec Runs a command file Writes events to files output { graphite Writes metrics to Graphite elasticsearch { kafka Writes events to Kafka hosts => ["localhost:9200"] } rabbitmq Pushes events to RabbitMQ } redis Sends events to Redis See also: https://www.elastic.co/guide/en/logstash/current/output-plugins.html Elastic Common Schema (ECS) 24 • Specification that provides a Level Description consistent and customizable way to structure your data in ECS Core Fields Fully defined set of field names Elasticsearch that exists under a defined set of • Searches can be created more ECS top-level objects narrowly ECS Extended Fields Partially defined set of field names • Field names are easier to remember that exists under the same set of • ECS Reference: ECS top-level objects https://www.elastic.co/guide/en Custom Fields Undefined and unnamed set of /ecs/current/index.html fields that exists under a user- • ECS GitHub: supplied set of non-ECS top-level https://github.com/elastic/ecs objects that must not conflict with ECS fields or objects Logstash Hands-On 25 2019 Pass the SALT Workshop Elasticsearch 26 2019 Pass the SALT Workshop Elasticsearch Overview 27 • Storage and Search More info: John Hubbard - The Elastic Stack as a SIEM: https://www.youtube.com/watch?v=v69kyU5XMFI • Built on Apache Lucene • “wrapper” written in Java • REST API • JSON over HTTP • Distributed • Real-time Elasticsearch Terms 28 • Cluster: All nodes • Node: Elasticsearch instance Node1 Node2 Node3 • Index: Set of documents (group of shards) • Shard: Index1 • Subset of documents in an index Documents • Apache Lucene instance Index2 Shard • Primary (like RAID 0) and IndexShard Index Replica (like RAID 1) Shard Shard • Document: JSON object in Elasticsearch Index3 Cluster Elasticsearch vs. Relational Database 29 • Mapping: Elasticsearch Relational Database • Defines field names and datatypes Index Database in documents • Can add new fields, but existing Mapping Schema fields cannot be changed! Document Row • Field: Field Column • Key-value pair in a document • Metadata like: _index, _id, etc. • WORM (Write Once Read Many) vs. ACID (Atomicity, Consistency, Isolation, Durability) Data Types (Few Examples) 30 Core Specialized • text • date • keyword • ip • long, integer, short, byte Complex • double, float, half_float, • array scaled_float • object • boolean • nested binary • Multi-fields Geo • Indexed as more one type • geo_point Etc. • geo_shape See also: https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-types.html Text vs. Keyword 31 Text type Keyword type • “Full-text value” • “Exact value”
Recommended publications
  • Build It with Nitrogen the Fast-Off-The-Block Erlang Web Framework
    Build it with Nitrogen The fast-off-the-block Erlang web framework Lloyd R. Prentice & Jesse Gumm dedicated to: Laurie, love of my life— Lloyd Jackie, my best half — Jesse and to: Rusty Klophaus and other giants of Open Source— LRP & JG Contents I. Frying Pan to Fire5 1. You want me to build what?7 2. Enter the lion’s den9 2.1. The big picture........................ 10 2.2. Install Nitrogen........................ 11 2.3. Lay of the land........................ 13 II. Projects 19 3. nitroBoard I 21 3.1. Plan of attack......................... 21 3.2. Create a new project..................... 23 3.3. Prototype welcome page................... 27 3.4. Anatomy of a page...................... 30 3.5. Anatomy of a route...................... 33 3.6. Anatomy of a template.................... 34 3.7. Elements............................ 35 3.8. Actions............................. 38 3.9. Triggers and Targets..................... 39 3.10. Enough theory........................ 40 i 3.11. Visitors............................ 44 3.12. Styling............................. 64 3.13. Debugging........................... 66 3.14. What you’ve learned..................... 66 3.15. Think and do......................... 68 4. nitroBoard II 69 4.1. Plan of attack......................... 69 4.2. Associates........................... 70 4.3. I am in/I am out....................... 78 4.4. Styling............................. 81 4.5. What you’ve learned..................... 82 4.6. Think and do......................... 82 5. A Simple Login System 83 5.1. Getting Started........................ 83 5.2. Dependencies......................... 84 5.2.1. Rebar Dependency: erlpass ............. 84 5.3. The index page........................ 85 5.4. Creating an account..................... 87 5.4.1. db_login module................... 89 5.5. The login form........................ 91 5.5.1.
    [Show full text]
  • Making Story from System Logs with Elastic Stack
    SANOG36 18 - 21 January, 2021 Making story from system logs with stack [email protected] https://imtiazrahman.com https://github.com/imtiazrahman Logs syslog Audit SNMP NETFLOW http METRIC DNS ids What is Elastic Stack ? Store, Analyze Ingest User Interface a full-text based, distributed NoSQL database. Written in Java, built on Apache Lucene Commonly used for log analytics, full-text search, security intelligence, business analytics, and operational intelligence use cases. Use REST API (GET, PUT, POST, and DELETE ) for storing and searching data Data is stored as documents (rows in relational database) Data is separated into fields (columns in relational database) Relational Database Elasticsearch Database Index Table Type Row/Record Document Column Name Field Terminology Cluster: A cluster consists of one or more nodes which share the same cluster name. Node: A node is a running instance of elasticsearch which belongs to a cluster. Terminology Index: Collection of documents Shard: An index is split into elements known as shards that are distributed across multiple nodes. There are two types of shard, Primary and replica. By default elasticsearch creates 1 primary shard and 1 replica shard for each index. Terminology Shard 1 Replica 1 Replica 2 Shard 2 Node 1 Node 2 cluster Terminology Documents { • Indices hold documents in "_index": "netflow-2020.10.08", "_type": "_doc", serialized JSON objects "_id": "ZwkiB3UBULotwSOX3Bdb", "_version": 1, • 1 document = 1 log entry "_score": null, "_source": { • Contains "field : value" pairs
    [Show full text]
  • Learning Javascript Design Patterns
    Learning JavaScript Design Patterns Addy Osmani Beijing • Cambridge • Farnham • Köln • Sebastopol • Tokyo Learning JavaScript Design Patterns by Addy Osmani Copyright © 2012 Addy Osmani. All rights reserved. Revision History for the : 2012-05-01 Early release revision 1 See http://oreilly.com/catalog/errata.csp?isbn=9781449331818 for release details. ISBN: 978-1-449-33181-8 1335906805 Table of Contents Preface ..................................................................... ix 1. Introduction ........................................................... 1 2. What is a Pattern? ...................................................... 3 We already use patterns everyday 4 3. 'Pattern'-ity Testing, Proto-Patterns & The Rule Of Three ...................... 7 4. The Structure Of A Design Pattern ......................................... 9 5. Writing Design Patterns ................................................. 11 6. Anti-Patterns ......................................................... 13 7. Categories Of Design Pattern ............................................ 15 Creational Design Patterns 15 Structural Design Patterns 16 Behavioral Design Patterns 16 8. Design Pattern Categorization ........................................... 17 A brief note on classes 17 9. JavaScript Design Patterns .............................................. 21 The Creational Pattern 22 The Constructor Pattern 23 Basic Constructors 23 Constructors With Prototypes 24 The Singleton Pattern 24 The Module Pattern 27 iii Modules 27 Object Literals 27 The Module Pattern
    [Show full text]
  • Zope Documentation Release 5.3
    Zope Documentation Release 5.3 The Zope developer community Jul 31, 2021 Contents 1 What’s new in Zope 3 1.1 What’s new in Zope 5..........................................4 1.2 What’s new in Zope 4..........................................4 2 Installing Zope 11 2.1 Prerequisites............................................... 11 2.2 Installing Zope with zc.buildout .................................. 12 2.3 Installing Zope with pip ........................................ 13 2.4 Building the documentation with Sphinx ............................... 14 3 Configuring and Running Zope 15 3.1 Creating a Zope instance......................................... 16 3.2 Filesystem Permissions......................................... 17 3.3 Configuring Zope............................................. 17 3.4 Running Zope.............................................. 18 3.5 Running Zope (plone.recipe.zope2instance install)........................... 20 3.6 Logging In To Zope........................................... 21 3.7 Special access user accounts....................................... 22 3.8 Troubleshooting............................................. 22 3.9 Using alternative WSGI server software................................. 22 3.10 Debugging Zope applications under WSGI............................... 26 3.11 Zope configuration reference....................................... 27 4 Migrating between Zope versions 37 4.1 From Zope 2 to Zope 4 or 5....................................... 37 4.2 Migration from Zope 4 to Zope 5.0..................................
    [Show full text]
  • ELK: a Log Files Management Framework
    ELK: a log files management framework Giovanni Bechis <[email protected]> LinuxCon Europe 2016 About Me I sys admin and developer @SNB I OpenBSD developer I Open Source developer in several other projects searching through log files, the old way $ man 1 pflogsumm $ grep [email protected] /var/log/maillog | awk '{print $1 "-" $2 "-" $3;}' $ grep -e 'from=.*@gmail\.com' /var/log/maillog | grep "550" \ | awk {'print $1 "-" $2 "-" $3 " " $7 " " $10 " " $11 " " $13;}' $ vi logparser.sh $ git clone https://github.com/random/parser_that_should_work $ man 1 perltoc $ man 1 python searching through log files, the old way $ cssh -a 'mylogparser.py' host1 host2 host3 host4 | tee -a /tmp/parsedlogs.txt $ man syslogd(8) searching through log files, the new way ELK open source components I Beats: collect, parse and ship I Logstash: collect, enrich and transport data I Elasticsearch: search and analyze data in real time I Kibana: explore and visualize your data ELK closed source components I Watcher: alerting for Elasticsearch I Shield: security for Elasticsearch I Marvel: monitor Elasticsearch I Graph: analyze relationships Elasticsearch I open source search engine based on lucene library I nosql database (document oriented) I queries are based on http/json I APIs for lot of common languages, (or you can write your own framework, is just plain http and json) Elasticsearch: security I not available in open source version, you need Shield I Elasticsearch should not be exposed on the wild, use firewalling to protect your instances I manage security on your
    [Show full text]
  • FULLTEXT01.Pdf
    UPTEC F 18029 Examensarbete 30 hp Juni 2018 Investigation and Implementation of a Log Management and Analysis Framework for the Treatment Planning System RayStation Elias Norrby Abstract Investigation and Implementation of a Log Management and Analysis Framework for the Treatment Planning System RayStation Elias Norrby Teknisk- naturvetenskaplig fakultet UTH-enheten The purpose of this thesis is to investigate and implement a framework for log management and analysis tailored to the treatment planning system (TPS) Besöksadress: RayStation. A TPS is a highly advanced software package used in radiation Ångströmlaboratoriet Lägerhyddsvägen 1 oncology clinics, and the complexity of the software makes writing robust code Hus 4, Plan 0 challenging. Although the product is tested rigorously during development, bugs are present in released software. The purpose of the the framework is to allow the Postadress: RayStation development team insight into errors encountered in clinics by Box 536 751 21 Uppsala centralizing log file data recorded at clinics around the world. Telefon: A framework based on the Elastic stack, a suite of open-source products, is 018 – 471 30 03 proposed, addressing a set of known issues described as the access problem, the Telefax: processing problem, and the analysis problem. Firstly, log files are stored locally on 018 – 471 30 00 each machine running RayStation, some of which may not be connected to the Internet. Gaining access to the data is further complicated by legal frameworks Hemsida: such as HIPAA and GDPR that put constraints on how clinic data can be handled. http://www.teknat.uu.se/student The framework allows for access to the files while respecting these constraints.
    [Show full text]
  • Download Slide (PDF Document)
    When Django is too bloated Specialized Web-Applications with Werkzeug EuroPython 2017 – Rimini, Italy Niklas Meinzer @NiklasMM Gotthard Base Tunnel Photographer: Patrick Neumann Python is amazing for web developers! ● Bottle ● BlueBream ● CherryPy ● CubicWeb ● Grok ● Nagare ● Pyjs ● Pylons ● TACTIC ● Tornado ● TurboGears ● web2py ● Webware ● Zope 2 Why would I want to use less? ● Learn how stuff works Why would I want to use less? ● Avoid over-engineering – Wastes time and resources – Makes updates harder – It’s a security risk. Why would I want to use less? ● You want to do something very specific ● Plan, manage and document chemotherapy treatments ● Built with modern web technology ● Used by hospitals in three European countries Patient Data Lab Data HL7 REST Pharmacy System Database Printers Werkzeug = German for “tool” ● Developed by pocoo team @ pocoo.org – Flask, Sphinx, Jinja2 ● A “WSGI utility” ● Very lightweight ● No ORM, No templating engine, etc ● The basis of Flask and others Werkzeug Features Overview ● WSGI – WSGI 1.0 compatible, WSGI Helpers ● Wrapping of requests and responses ● HTTP Utilities – Header processing, form data parsing, cookies ● Unicode support ● URL routing system ● Testing tools – Testclient, Environment builder ● Interactive Debugger in the Browser A simple Application A simple Application URL Routing Middlewares ● Separate parts of the Application as wsgi apps ● Combine as needed Request Static files DB Part of Application conn with DB access User Dispatcher auth Part of Application without DB access Response HTTP Utilities ● Work with HTTP dates ● Read and dump cookies ● Parse form data Using the test client Using the test client - pytest fixtures Using the test client - pytest fixtures Interactive debugger in the Browser Endless possibilities ● Connect to a database with SQLalchemy ● Use Jinja2 to render documents ● Use Celery to schedule asynchronous tasks ● Talk to 3rd party APIs with requests ● Make syscalls ● Remote control a robot to perform tasks at home Thank you! @NiklasMM NiklasMM Photographer: Patrick Neumann.
    [Show full text]
  • HOWTO Use Python in the Web Release 2.7.9
    HOWTO Use Python in the web Release 2.7.9 Guido van Rossum and the Python development team December 10, 2014 Python Software Foundation Email: [email protected] Contents 1 The Low-Level View 2 1.1 Common Gateway Interface.....................................2 Simple script for testing CGI.....................................2 Setting up CGI on your own server..................................3 Common problems with CGI scripts.................................3 1.2 mod_python..............................................4 1.3 FastCGI and SCGI..........................................4 Setting up FastCGI..........................................5 1.4 mod_wsgi...............................................5 2 Step back: WSGI 5 2.1 WSGI Servers.............................................6 2.2 Case study: MoinMoin........................................6 3 Model-View-Controller 6 4 Ingredients for Websites 7 4.1 Templates...............................................7 4.2 Data persistence............................................8 5 Frameworks 8 5.1 Some notable frameworks......................................9 Django.................................................9 TurboGears..............................................9 Zope.................................................. 10 Other notable frameworks...................................... 10 Index 11 Author Marek Kubica Abstract This document shows how Python fits into the web. It presents some ways to integrate Python with a web server, and general practices useful for developing web
    [Show full text]
  • Repoze Documentation Release 1.0
    Repoze Documentation Release 1.0 Agendaless Consulting, Inc. and Contributors December 12, 2014 Contents 1 Overview of the Repoze Project3 1.1 Problems Addressed...........................................3 1.2 Solutions Provided............................................3 1.3 Software Requirements and Limitations.................................3 1.4 Technology Dependencies........................................3 1.5 Licensing.................................................4 1.6 Resources.................................................4 1.7 Legacy Resources............................................4 1.8 Contributing...............................................4 2 Current Repoze Components5 2.1 WSGI Middleware............................................5 2.2 Libraries.................................................6 3 Obsolete Repoze Components9 3.1 WSGI Applications...........................................9 3.2 WSGI Middleware............................................ 10 3.3 Libraries................................................. 11 3.4 Buildout-related............................................. 11 3.5 Miscellany................................................ 11 3.6 Re-packaged Software.......................................... 12 4 History of the Repoze Project 13 4.1 Early Developments........................................... 13 4.2 Later Developments........................................... 13 5 Hacking on Repoze Components 15 5.1 Coding Standards............................................. 15 5.2 Layout and
    [Show full text]
  • The Pyramid Web Application Development Framework Version 1.4.9
    The Pyramid Web Application Development Framework Version 1.4.9 Chris McDonough Contents Front Matteri Copyright, Trademarks, and Attributions iii Typographical Conventionsv Author Introduction vii I Narrative Documentation1 1 Pyramid Introduction3 2 Installing Pyramid 23 3 Application Configuration 31 4 Creating Your First Pyramid Application 35 5 Creating a Pyramid Project 41 6 Startup 65 7 Request Processing 69 8 URL Dispatch 75 9 Views 99 10 Renderers 111 11 Templates 127 12 View Configuration 141 13 Static Assets 159 14 Request and Response Objects 169 15 Sessions 177 16 Using Events 185 17 Environment Variables and .ini File Settings 189 18 Logging 201 19 PasteDeploy Configuration Files 209 20 Command-Line Pyramid 213 21 Internationalization and Localization 231 22 Virtual Hosting 249 23 Unit, Integration, and Functional Testing 253 24 Resources 261 25 Much Ado About Traversal 273 26 Traversal 281 27 Security 293 28 Combining Traversal and URL Dispatch 305 29 Invoking a Subrequest 315 30 Using Hooks 321 31 Pyramid Configuration Introspection 347 32 Extending An Existing Pyramid Application 361 33 Advanced Configuration 367 34 Extending Pyramid Configuration 375 35 Thread Locals 383 36 Using the Zope Component Architecture in Pyramid 387 II Tutorials 393 37 ZODB + Traversal Wiki Tutorial 395 38 SQLAlchemy + URL Dispatch Wiki Tutorial 445 39 Converting a repoze.bfg Application to Pyramid 505 40 Running a Pyramid Application under mod_wsgi 509 III API Reference 513 41 pyramid.authorization 515 42 pyramid.authentication 517 43 pyramid.config
    [Show full text]
  • Dark Fiber Electronic Culture: History, Theory, Practice Timothy Druckrey, Series Editor
    Dark Fiber Electronic Culture: History, Theory, Practice Timothy Druckrey, series editor Ars Electronica: Facing the Future edited by Timothy Druckrey with Ars Electronica, 1999 net_condition: art and global media edited by Peter Weibel and Timothy Druckrey, 2001 Dark Fiber: Tracking Critical Internet Culture Geert Lovink Dark Fiber Tracking Critical Internet Culture Geert Lovink The MIT Press Cambridge, Massachusetts London, England © 2002 Massachusetts Institute of Technology All rights reserved. No part of this book may be reproduced in any form by any electronic or mechanical means (including photocopying, recording, or information storage and retrieval) without permission in writing from the publisher. Set in Bell Gothic and Courier by The MIT Press. Printed and bound in the United States of America. Library of Congress Cataloging-in-Publication Data Lovink, Geert. Dark fiber : tracking critical internet culture / Geert Lovink. p. cm. — (Electronic culture—history, theory, practice) Includes bibliographical references. ISBN 0-262-12249-9 (hc. : alk. paper) 1. Internet—Social aspects. 2. Information society. 3. Culture. I. Title. II. Series. HM851 .L68 2002 303.48'33—dc21 2001059641 Dark fiber refers to unused fiber-optic cable. Often times companies lay more lines than what’s needed in order to curb costs of having to do it again and again. The dark strands can be leased to individuals or other companies who want to establish optical connections among their own locations. In this case, the fiber is neither controlled by nor connected
    [Show full text]
  • Made with Creative Commons MADE with CREATIVE COMMONS
    ii Made With Creative Commons MADE WITH CREATIVE COMMONS PAUL STACEY AND SARAH HINCHLIFF PEARSON Made With Creative Commons iii Made With Creative Commons by Paul Stacey & Sarah Hinchliff Pearson © 2017, by Creative Commons. Published under a Creative Commons Attribution-ShareAlike license (CC BY-SA), version 4.0. ISBN 978-87-998733-3-3 Cover and interior design by Klaus Nielsen, vinterstille.dk Content editing by Grace Yaginuma Illustrations by Bryan Mathers, bryanmathers.com Downloadable e-book available at madewith.cc Publisher: Ctrl+Alt+Delete Books Husumgade 10, 5. 2200 Copenhagen N Denmark www.cadb.dk [email protected] Printer: Drukarnia POZKAL Spółka z o.o. Spółka komandytowa 88-100 Inowrocław, ul. Cegielna 10/12, Poland This book is published under a CC BY-SA license, which means that you can copy, redistribute, remix, transform, and build upon the content for any purpose, even commercially, as long as you give appropriate credit, provide a link to the license, and indicate if changes were made. If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. License details: creativecommons.org/licenses/by-sa/4.0/ Made With Creative Commons is published with the kind support of Creative Commons and backers of our crowdfunding-campaign on the Kickstarter.com platform. iv Made With Creative Commons “I don’t know a whole lot about non- fiction journalism. The way that I think about these things, and in terms of what I can do is. essays like this are occasions to watch somebody reason- ably bright but also reasonably average pay far closer attention and think at far more length about all sorts of different stuff than most of us have a chance to in our daily lives.” - DAVID FOSTER WALLACE Made With Creative Commons v vi Made With Creative Commons CONTENTS Foreword xi Introduction xv PART 1: THE BIG PICTURE 1 The New World of Digital Commons by Paul Stacey 3 The Commons, the Market, and the State .
    [Show full text]