Hi everyone, hello Benoît. I'm happy to welcome you for this session of the Alephium Tech Talk with Benoît Peru, who is the CTO of the Analytics Division of Open System, but also the Chief Foundry Officer and the person responsible for Alephium infrastructure. Hello everyone, thanks for having me here, and I think we can get started. Maybe just wait a minute before you get started, I just want to confirm that the video is working properly because... Oh, okay. Okay, it seems everything is fine now. Please go ahead, thank you. Cool, so I have a few slides, I'm sure. I will go through a practical demo of some stuff, and then we'll be open for a Q&A at the end. Let me share my screen first, and let's get started. So, my name is Benoît. I'm graduated from EPFL, so Mastering Computer Science. Graduated in 2007. I have two kids, I'm based in Switzerland, and I'm currently working at Open System, which acquires Kuba, the company I was working for before that, in 2020. I'm building Big Data Analytics Platform since 2010. I went through the cycle of Hadoop and MapReduce, up to now, a three communities, cloud-native type of platform. And what changed through the acquisition is that before I was building Genic, or General Purpose, Analytics Platform, and now I'm building Analytics Platform, mostly targeted for cybersecurity. I have a strong feeling for everything that is Ops, so deploying software, building software, deploying software, operating software.  Let me quickly go through Big Data Analytics Platform, what it is, how it evolves, so that we will all be on the same page and we will be able to understand the rest of the discussion. So, a data platform looks something like that. Basically, we have data source, rational database, customer database, field production database, and so on. The goal is to get into a central place, a common place, and then start doing analytics on top, so transformation and so on. So, the workflow, when we talk about data platform, is always from the data source, we extract the data, we store the raw data into this storage layer, and then we run some transformation. Transformation here could be joining different data sources, changing, aggregating, doing some average, whatever. And then, since the storage layer is not really well optimized for the end user, like data scientist or data analyst, or even data products, once we have the proper transformed data ready, then we load it into what I call here, Sync, which is basically a specific purpose data store. It could be rational database, it could be whatever you have in mind in order to do this. And here, I talk about data platform. I didn't speak at all about the business of the company. From my perspective, a data platform is a big data platform, and what the user is putting on top, so their analytics doesn't change a lot the data platform that we're coming with. If I go a little bit into the capabilities or the duties of a data platform, so data platform should ensure that the data is available at any time. So, the data should be... So, from the data source, the extraction process should be able to write at any time. The data sync should be able to read at any time, and data should be available. And one of the key indicators is the time for availability of the data. So, the data is extracted from the sync until when the data is available for the analyst or the scientist on the data sync, this is a key metric. The data should have integrity. So, the data should not be altered, and the data obviously shouldn't be lost, except if we are doing some time retention and losing the data. And at the end of the day, the data should be complete and correct, but this is not really a duty from a platform. The platform should ensure availability and integrity, and then the team working on the platform should, on their side, ensure completeness and correctness. So, all these properties can be achieved by a lot of different means or ways. So, usually, a data platform is scaling up and down. So, we should be able to add more storage, add more computes. Recent or modern data platforms have a complete separation between storage and computes. So, if there's no job, the compute should go down to zero, and the storage, if there's data that is cleansed or purged, then the storage should also be able, eventually, to go down to zero. In terms of time to availability, traditional or historical data platform were doing batch processing, and in the most recent platform, they're doing stream processing. So, there's a stream, meaning once the data is available from the source, it goes directly through all the stages of the data platform up to the consumer of the data. So, the latency of the data should be down to minutes or even seconds. A good data platform can also provide data provenance, data lineage, so where the data come from, where the data goes, and so on. Then data can be tagged with annotation for classification, like is this PII data, and then this classification can be linked with ACL, so a control list. And if a user is not able to see PII data, then this user should not be able to see transform data coming from a PII field, for instance. All this kind of stuff should be available inside a proper data platform. And at the end, of course, we would like to have encryption and to an encryption of data trust. So, when it's stored in the platform, data in motion, when it's flowing through the network somehow. So, this from a very high level perspective is data platform, so that's basically what I'm building on a daily basis. And I think mode has a question. Yes, I wanted to ask if we can try again to maybe put your presentation full screen for you. Because this, we have people asking if maybe somehow you can go in the presentation mode on your screen, yeah. So, is it like that? Does it help? We still see, we see kind of the, you know, the next slide, the side thing. We don't have the focus on the slide. The other one, so... I'll try... So, I'm trying to change... So, no, I can try to zoom in a little bit. Yeah, if you make it... Is that better already? It has to be better than what it was before, for sure. Let's try like this. For now, thank you. For a little bit more zoom in. Yeah, so data platform is something that evolved a lot since the beginning and I was lucky enough to start quite early in this journey. And I really started with... Not the very first version, but very, very old version of Hadoop. And Hadoop had only MapReduce at that time. So Hadoop version one, sorry, in 2006, which last 2012, something like that. Basically, Hadoop is one of these big data platform, which provides storage and compute for data analytics. And yeah, that's one of the first ones who came out with something usable and the big driver of Hadoop was this data locality. So instead of reading all the data and then doing transformation, the processing was sent to the data in order to execute as close as possible to reduce network consumption. So Hadoop had this data locality built in at the heart of the platform and it worked quite well at the very beginning. The main problem of the first version of Hadoop is that the only programming paradigm available on the platform was MapReduce. I'm not sure if you're familiar with MapReduce, but basically, it's a three-step processing where you will map, shuffle, reduce.  So the primitive or what you can do with such programming paradigm is quite limited. So then Hadoop in 2012 came out with a version two of their processing platform, which was called Yarn. Yarn meant to be a much more general-purpose processing framework allowing you to run more than simple MapReduce jobs. And it went well and it really helped Hadoop to take off and have some other processing framework running on top, the most famous one being Spark. But the problem with Yarn is that there's a really tight dependency between the runtime and the job you're running. So you can't run whatever version of Spark you want. You are tied to a Spark version given the version of the runtime you're running on. And that's pretty much when Kubernetes came out. Kubernetes was released in 2014. People didn't hear a lot about it, but it really started raising into 2017 where a big alliance of initially competitors joined forces around Kubernetes to make it the product it is now. And the big advantage of Kubernetes over other orchestration platform like Yarn is the containerization. And the containerization of an application means it removes completely dependencies of the processing on the runtime version. So it's container that is executing and the container has all dependencies needed. It doesn't get dependencies from the platform. So Kubernetes today is de facto technology because mostly it provides an API which looks like cloud type of API but is really cloud diagnostic. Every time you're here in the market we are cloud diagnostic as any type of application. It usually means it runs on Kubernetes and Kubernetes can run then on any cloud. And the last shift that happens in this space is the S3 shift. S3 is an object storage and this one started replacing HTFS and HTFS is a block storage. Again, it's out of the scope to explain what it is, but the S3 really started to take off and especially the S3 API or interface which is REST based on HTTP protocol and like HTFS. And it makes it very portable and reduce the operational cost of the overall data storage. So modern stack now looks, so we started from Hadoop and MapReduce and modern data platform stack looks pretty much like Kubernetes and processing running on Kubernetes and data stored on S3 or object storage like that. As I said, I was lucky. I went through all this transformation. I really had the impression that the day I really masterized one of these components. So for instance MapReduce, something new came out. So I'm running behind this trend and today it's interesting for me because I have a lot of history and I can really explain you why this works and this didn't work and why Kubernetes is the way it is and so on. So quite an interesting story to follow this history again. So as I mentioned at the beginning, I was doing this data platform for a US based company and then for SCUBA which was a startup doing data, big data analytics for customers and then OpenSystem acquired SCUBA in 2020 and OpenSystem is really focusing towards cybersecurity. So now I'm building data platform but in the cyberspace spec. So what is different? Well, we have different data sources. We have different processing with different data sync, but at the end, as I said, the platform is the same. So it's a three-base, Kubernetes and then all the Spark and type of application you can have on top of that. So if I focus a little bit on the cyberspace, obviously the primary data source of cybersecurity is network traffic, network type of traffic and the network traffic can be split in three different categories. There's one where we have pickup files. So you capture pickup somewhere and then you transport these files into the big data platform and you ingest it here. So extracting things, indexing fields and so on. The second type is network interface. So we have a server like a web server and you have a probe listening to the network interface you want to monitor and you're capturing the pickup and extracting as many information as you want and sending this information in the big data platform. Or the third one is a tab. A tab is basically a mirrored feed of network traffic. So you're not on live network interface but you have a mirrored network interface so you're offline and then you listen to traffic into this. And then this data source is usually enriched and which is joined basically with any other external data source that you can think of. The main data source we're dealing with are Active Directory. So AD logs is proxy logs. If your company has proxy, it's firewall logs, it's honeypots if you have and then it's all these threat intelligent feeds where you have companies like C-Score that publish list of what is called IOC so basically IP address used by malware, attackers and so and so. So you have the data so the network traffic and then these other data feeds logs and threat intelligent feeds and out of this then you're trying to find the needle out of the haystack as always. So if I dig a little bit more into current data platform analytics I'm working on for the cyberspace it would look something like that. So you have the traffic incoming so in this case we have a tap and then the tap is connected to capture nodes. This capture node is listening on the traffic trying to extract the data as much as possible and then the data is is it DNS request is it HTTP request is it whatever type of traffic and then sending all these metadata extracted into the data platform and then you start having the data platform magic so mostly enrichment JYP enrichment, if you have an IP you know which countries this IP come from then you have these threat intelligent feeds so joining with a malware list or whatever else you can apply a custom machine learning model on top and what is interesting at the end is what do you do out of this so one easy thing to do is reporting so you report that today we monitor this many network sessions or network packets that were matching a known malware for instance and when you start gaining into maturity in your platform but people is alerting or then even more mitigations mitigations means out of the platform it does not alert like we detect some unauthorized network traffic to malware for instance the mitigation could directly update firewall rules of the server or the laptop of the user that is impacted and try to stop as early as possible this network communication so here what I would like to do is a quick demo so for here I'm also helping the metapool mining pool team for operating and securing the pool and for this on one of the metapool server we have a tool called Archimi running Archimi is one of this deep packet inspection tool so it listen on the network interface and it tries to recognize the type of packets you might be familiar with this OZ OZ model which details the anatomy of a network packet and the SD is to go as up as possible so if it's HDP traffic what is the request the page you're trying this request is trying to to reach or if it's HDPS traffic what is the certificate that is used in the HDPS Handshake Exchange and so on so for this it can show this here so this is the Archimi tool we can see that it's running it's getting some fresh sessions and all these lines here are actual sessions so network packets entering and leaving this metapool this metapool server so here we can see that there's some TCP standard TCP traffic there's some ECMP so PINX basically coming from some random server, random IPs going into this one that's the IP of this metapool server this POR2032 is the default stratum pool for the mining pool so and here I can then start looking into the details so the details of the packets and here I can even see the payloads of the TCP session between this server and the metapool server so this is a typical stratum session initialization so the metapool the miner connects to the metapool exchange some data and then start mining so this tool here is really interesting to start slicing and dicing so digging into what is happening on the network side so one typical example here is this type of sessions and this port 9973 is the default alephium full nodes port used so if I comment I filter this so I keep only the session that arrived on this port so it means that these are other full nodes that try to so that's the IP of the other full nodes connected to these full nodes and here I can for instance come and on the source on the test IP I can export all the IPs and this is probably the IP of all the full nodes that this metapool full node is connected so it's really powerful it's pretty much way beyond the demo we want to do but what is interesting here is that I have a really nice and slick way of looking at the network traffic entering and leaving these nodes and we can see that some traffic pattern are really easily identifiable so if I again look into this one here it's a session for stratum port there's a lot of packets so it's a big session and if we look at the detail here it's basically the miner getting jobs to try to mine on so this is really easily identifiable so then building the machine learning model out of this is easy to start finding outliers because in cybersecurity what is really interesting is the needle out of the haystack this server is getting few megabits of bandwidth inbound and outbound traffic but what is interesting is the one session that is malicious and this is the one we want to identify and this tool helps really identifying all the normal session or the normal pattern which will then help building a model to start finding the outliers so again that's my daily work slicing, dicing trying to find a needle needle in the haystack this tool for instance helps us to find and to identify attack pattern because mining pool is a quite interesting business where attacks are common because if your pool responds slowly or even is getting your details so it's out of order then the other miners on other mining pool have more profitability so apparently is a game in the mining pool business you have a pool and you probably have a team dedicated to operating the pool and you have a dedicated team you have a team dedicated to attacking or the pool just to maximize the profit of your own miners so that's pretty much it for the demo so as I said I'm working really hands on into the cyber security space helping companies to find outliers find attacks or malicious network traffic on their own network and obviously I'm applying this on my daily basis so now if I switch a little bit to what I'm doing of the Alephium project so an Alephium project you might have understood but what I'm doing is building infrastructure and maintaining the the Alephium infrastructure and as part of the Alephium infrastructure there are few components which are basically listed here all these all these components listed here are open source there's obviously the the Gitter repo here and I have three categories there's the Alephium full nodes that's the one hosting the chain collaborating discovering peers and building really the blockchain network where we have the groups, the charts the transaction happening and so on the second group here is the Alephium Explorer so the Explorer is this nice UI you can go into explorer.alefium.org which helps you navigating through the the wallets and through the transactions the Alephium Explorer is based off three components one is the frontend it's here with the link here the second one is the backend the REST API serving basically and the data is stored into a Postgres database which is an open source component but not really maintained by us the third component out of the Alephium infrastructure is miners and mining pool and here again we have some some repos I pointed to a few the standalone GPU miner or the reference implementation of the stratum mining pool which is here and that's the one listening on port 20 2032 that I showed in the UI before and the fourth part of the Alephium infrastructure is the wallets so like what the end user use and see at the very end so if you think a little bit it looks like an iceberg the wallets being the visible parts from a very end user perspective and the full node explorer and mining mining pools and so on being underwater and seen from the end user and that's usually the case in every development question so if I dig a little bit into all the these components well all the three components composing in infrastructure we have first a full node so the full node is standalone Scala so JVM based application and we have multiple Alephium full nodes running out there some of them being well known and referenced as bootstrap full nodes so when we started the blockchain we started with one full node the bootstrap 0 and this one was the first one setting all the genesis the genesis blocks and then we started the bootstrap 1 2 3 4 5 we have bootstrap nodes and they started forming the the first the first blockchain cluster at the very beginning now every time you start a full node on your own these bootstrap nodes endpoints are hard coded so that's usually the first one into which your full node is connected to and from this one it discover other peers and it start connecting to all these other peers so nothing really fancy here except that we have geo distributed full nodes so we try to have full nodes on every continent of the world and we have like full nodes running almost everywhere on earth which is cool because it's mostly for reliability of the chain and also to be as close as possible from the end user in order to provide good response time to the chain at the very beginning we started some miners alongside the brokers which we then stopped once we reach certain threshold of hash rates so as of today the Alephium team is no longer mining at all it's only community mining at the end of the day on our side I spoke about all these Kubernetes orchestration and so on but the full nodes we wanted to keep it as simple as possible it's running in a Docker container inside the VM but there's no orchestration so it's really keep it simple type of deployment listening on port 9973 in order to find peers, get discovered and so on and that's that's pretty much it so nothing really fancy on the Alephium node except this geodistribution the explorer is what I would call the somehow typical 3 tier HTTP application so there's an endpoint like wallet.mainnet.alephium.org or back end or explorer the explorer one I can quickly show so explorer notalephium.org that's the front end serving an HTTP website and then the website to display the blocks or the number of transactions and so on calling the back end which then look into the database to find the required information the Alephium or the mainnet explorer is using multiple explorer back ends configured as read only so only reading data from Postgres replicas and then we have one specific explorer back end which is configured in read write modes and this one is listening to new transaction and new blocks on the full nodes and synchronizing on the Postgres master. All these are load balanced through multiple instance and the wallet.mainnet is actually an endpoint on top of the full nodes API which is also load balanced the same way than the other so with this we have quite responsive explorer implementation which as of today worked well there were some hiccups here but most of the time it's running smoothly and the last part here is the mining pool so I showed a very brief example of the metapool but basically metapool is based on this reference implementation of the mining pool that will provide as open source the mining pool needs to be connected to full nodes to get shares to mine and then sending the shares to the miners miners can run IOS or any type of mining software and the mining pool is using this as a persistence at the end for itself so not a lot fancy and then here I will not go too much into detail most of the details are really mining pool specific and since I don't speak for them it's really their own internal detail how they implemented, how they protected and so and in addition to all the open source things we have we have some stuff which are more alephium specific and one is the monitoring so we are monitoring the blockchain, we are monitoring the full nodes we are monitoring the explorer and so on all this is visible on the status page we have status page per chain one for the mainnet, one for the testnet and one for the global where everything is summarized and listed and the monitoring is mostly based on the primitive stack and then we have Grafana dashboard IRETS, IRETS manager IRETS dispatched through Slack channels and some other in-house doing in order to mitigate some alerts directly and automatically and one of the last parts of the alephium specific is the archives, we do have archive nodes where we are storing the full nodes data, the rational behind that is to be able to speed up the bootstrap of the full node so we can download from these snapshots like a recent snapshot we are doing a snapshot once a week of the state of the blockchain and then you start syncing from the snapshots which then helps you bootstrapping a full node in minutes like half an hour instead of several hours like it was the case before and that's pretty much it alephium infrastructure and on the cyber security in general I'm very open to any kind of question which are info related topics just for the people watching us you can either ask the question directly on YouTube or you can ask them on Discord and we will relay them for you here if there's no question I'll start with one thank you so much for the presentation my first question is why did you sound like a black hat or maybe are you also a black hat at your free hours well that's an interesting question and if I were a black hat I would probably not tell you that I'm a black hat I actually did my master thesis within the security fields I did some reverse engineering of a set so satellites receivers for a broadcast company and I really felt in love with cyber security it's really exciting to work with this it's a field which is in constant transformation that's one of these theft and police games always it's the hackers find something new and then the defenders have to update and so on at the end of the day it's really in order to be good at cyber security you need to have a very good understanding of every component of the computer and obviously when I was younger I did some black hat related activities I remember in the city I'm living they were appalled to find the name of the theater and it was like a simple web page a simple web page where people can say voting for names there was absolutely no protection into this one and then we had the evening with friends and we started posting a crazy number of votes so at the end one name, one with 1 billion votes was completely crazy like that and at the end the politics to cancel the vote it made quite some big noise in that space but no I'm not really attracted by the dark side of the force I prefer staying under the lights thank you that is interesting, thank you for sharing this I have a very good question from the community what's the postgres table structure that's a very nice question, thanks Nicola for asking actually I'm not the one writing the back end so I'm not the best one to answer this question but it's a typical Russian database where we have blogs, transactions wallets and so on we started adding quite some denormalization in the model in order to speed up some transaction but the best one to answer is Simon or Thomas or the back end dev team I think this question was asked on this course so we can have the team member that is focusing on this answer directly as well thank you so for my next question is when did you join Alephium and what attracted you to the project in the first place I joined Alephium I think was on May-June 2021 if I'm not mistaken so I heard from the network that this team based in Lausanne started a new blockchain and then I started looking at the Github repo and I'm in the crypto space quite some time but I'm mostly interested by the tech around the blockchain I'm not a trader or whatever a speculator in that field and what I found really interesting when I joined is that it was a very early stage which means that everything was feasible everything needs to be built so one of the first thing I built was a 4-set for instance so the 4-set on the testnet is one of the first I built around Alephium and then the core dev team are really great devs but they were lacking all the packaging and the application and another thing I did at the very beginning was building Docker containers in order to smoothen the developer experience of running Alephium through nodes so I started with simple tasks like that and then the trust got established and then I started doing more and more until I would be interested in taking charge of the world infrastructure which I was up for that and we're very grateful that you were it's a pleasure to have you in the team maybe I can ask you a little bit do you have a specific relationship with decentralization? Is it a topic that is important to you and if so how do you start being interested in decentralization? I'm building for quite some time to the Alephium model while distributed is not decentralized and what I was really missing here is this going one extra step and starting into this decentralization so distributed now is good I mean I did my homework into the distributed systems and I wanted to go this extra step to go into decentralization but it really appears that decentralization is harder than distributed because you're not in charge of the world infrastructure so you can have any type of actors and since I come from cybersecurity I'm usually suspicious my first feeling of someone is running or someone is connecting I know the first question is is this authorized or is this suspicious and having this as a concrete something concrete like the Alephium project I found it really really interesting then decentralization is hard because you somehow have to trust even though internet is the Wild Wild West and usually you should not trust so I found this kind of ambiguity in this that I was not able to find the proper answer or to solve it properly yet but I'm working toward this and making some good progress towards that Thank you maybe I think you can stop sharing your presentation I think maybe I'm not sure how it is showing up on YouTube but maybe this we can stop and then to bounce back off of this question this is a question we also asked during our last tech talk and that everyone has a different perspective on this is how does one measure decentralization what is your perspective on this that's a very good one so as I said decentralization is hard and usually actors or established actors try to avoid decentralization as much as possible because decentralization is a sort of losing the power if you want so if you think about banks they are fighting for decentralization why because they want to keep the power and the control over what they're doing so decentralization is really hard here and how can we measure decentralization is from my perspective is looking at the number of full nodes running on the cluster for instance and counting how many are managed by me and how many are managed by someone else and if I take this example for instance we are managing small subsets of the full nodes so the bootstrap nodes and a few others but that's pretty much it and I'm pretty happy to see that that's on the Alephium side that the decentralization works pretty well I would say but adding to this the entry barrier to decentralization is also something is also key because if still the example of the full nodes if it would take a lot of resources or a lot of effort to run a full node then it's a high entry barrier meaning that we will have less people willing to do that on their spur time or as a hobby which means that we only start having big actors running nodes and we will see then a shift towards centralization so centralization for me is a trade between trust but also low entry barrier in order to allow anyone with some good will but not too much skills and time to start contributing with in the ecosystem. Thank you for your perspective and to join a little bit the two topics of this call of this talk which is decentralization but also cyber security do you think that cyber security services can be decentralized efficiently for example could you build a decentralized cloud fair? Yeah that's a tough one so cloud fair is a typical distributed but centralized service and as I said and I'm restating this building a true decentralized system is hard and it doesn't fit all the use case we are running a few nodes on flux for instance that they are doing decentralization but in order to access their service you still need to go through single entry point which is managed by flux so having everything decentralized without any single point of failure or any single bottleneck managed by someone specific it's very hard to put this building a decentralized cloud fair from my perspective is really hard as of today I would love to find the solution to do that and you will have to fight against big actors that will on their side fight to try to bring this back to a centralized model because they want to keep the contract or to gain the contract thank you I think I will ask one last question and we can end this call on time so to follow your previous answer so even decentralized blockchain have to rely on some central infrastructure or services such as bootstrap node like you mentioned wallet backend and knowing kind of these concerns that you expressed just before what Alephium can do to improve decentralization with regard to those those points yeah so the desktop or the wallet end point is something very interesting because as of today we are running to the default but since everything is open source and the level of packaging and then the entry barrier of running these components decrease over time then anyone can have its own or even its personal wallet endpoints so in order to avoid centralization in this kind of topic the entry barrier and the developer experience or the non developer experience should be as good as possible so the entry barrier should be as easy as possible for that and I mean we are working toward direction on a daily basis we are putting a huge effort on packaging writing documentation making this as smooth as possible in order to have even I mean I would love to have my mother running wallet endpoints on her laptop if she would be needed well thank you so much if there's no other question at that point in time I will still ask you if you want to add any topic maybe something you want to add to the conversation no thanks for the time and I mean I'm really proud to be part of the team the team is absolutely awesome we have really really great person everywhere within the team it's a big pleasure to be part of this wide this is a shared feeling we are all very happy that you are part of the team because let's say your main activity and also you worked within LFM and thank you everyone for tuning in for this Tech Talk edition have a nice evening thank you, bye bye


Okay. Well, as most of you probably know, CTF-1 had about five difficult challenges that few people solved. We covered one of those solutions in the last recitation, and I thought it might be useful since so much is focused upon the CTFs, that we might as well go over some more of the CTF solutions. To find that past, again, was covered, I'm basically going to try to knock out or show you how to solve some of the other ones, or a few of the more difficult ones. So, again, if you have any questions, please post, and I'll hopefully be able to answer them as we go. If anything's not clear, again, just let me know as well. First of all, here is a check password. Basically, you're given this little hint. What's the correct password? Whatever the password is, that's the flag. Just checking if all of you guys see my screen. Is it working from that side? Okay. As you can tell, the hint's not terribly useful. It doesn't really tell you too much. You can run a couple quick checks. Basically, Linux has a nice file command. It tells you exactly what the file type is, of course. Basically, you run a file of check password. It says, yes, this is an L file, which means it isn't executable. If you execute it, you don't really get too much. You can also run strings, which is somewhat useful as well. But again, not terribly useful. Here's all the strings in the password file. Again, you see it has something to do with accepting and rejecting passwords, valid password, correct password, but nothing really useful here either. There's two different approaches you can take for examining Elf executables. Let me show you object dump first. I'm going to run object dump, and again, I'm going to choose the Intel coding, not AT&T encoding, for assembly language. Object dump with disassembly is a slash D. And I run this through the less, so it will let it scroll up and down. And you see basically disassembly of all the different sections of this Elf executable. Normally your main goal would be to look up the main function. You've got knit, text, and one problem you run into scrolling up down here is there's no main function. You really can't see exactly what's going on here, where it's going, what it's doing. The assembly code here is not terribly useful. You're seeing more or less just, again, you can sit and trace the assembly code. That's one approach, but there's also a much better approach. What a few people did to solve this basically attacked this by running Ghidra. Ghidra has some tools, again, it does not have, it can do some more, some better disassembly. And for speed, I already opened up the check password. Okay, yes, I'd like to analyze it now. It's useful to put this little check box in to compile a parameter ID. So I'm going to go ahead and do that. Okay, Ghidra, the main thing again is to pull up functions. And as mentioned before, here are all the functions in this file. There's no main function.  You've got, looks like entry and exit. And you've got some library functions up above. I'm going to jump down to look at entry. If there's no main entries, usually what gets called. Here is the assembly code for entry. And here's a bit easier to read, compile code. Basically, entry calls libc start main and gives you an address. 8048516, just happened to be a library called, what's that address? So let me pull that one up. Here's 516. And this actually looks like some useful code. Scanning over this doesn't tell you too much. But again, you notice this is a password checking code. It's taking input. And it seems to run function. This thing and dumping the correct password into I variable three. So it looks like the password checking code itself. Here is in a different function. So I pull this one up. This code is short enough where you can simply page through this course. Find anything useful as well. This function has a nice complicated convoluted if statement. And this is exactly the password check we're looking for. That surface results. This looks horrible. Looks like it's a very complicated function. Really doesn't tell you too much. But this is a password check. Let me cut and paste this in the notepad or something to show it up here. And basically, you see the password check is looking at each of the characters individually. You split this up and make it a little bit more readable. You're checking again for speed. Let me just do this quickly. So again, a lot of convoluted code here. First one's pretty obvious as if parameter one is not equal to C. So we know that the first parameter is C. Unfortunately, this is all of you should be computer scientists. Parameter one, the very first parameter is actually position zero. So we know that position zero is a capital C. Parameter two, or parameter seven, the second item on the list. The seventh item should be dollar sign. Skipping the more difficult ones, let's go through if you got the rest first. Now we know what parameter zero is. Parameter one is hex seven, 73. If you pull up an ASCII table, look up what 73 represents. That's lowercase s. So one is lowercase s, which is again 0x73. Other easy ones you can find. Parameter three, basically dollar sign. Parameter four is a character, just a number four by itself. And the rest are a little bit more difficult to figure out. We've got parameter two, and we've got parameter five and parameter six. Let me tackle five and six first. It's a little bit easier. Parameter six is this particular line here. It says short, parameter plus five. Look at the code here. If you use just parameter by itself, this represents parameter zero. Since this is all inside the cast, we're not adding five to the value of parameter. We're actually shifting over whatever the address or parameter one is by five. So again, if you have a string, you're shifting over parameters zero, five over. You're basically doing the equivalent of looking at parameter five. Nothing more complicated than that. Next thing we're doing is we're putting in a short. This is not a byte like up here. A short is, if you don't know this or Google this is two bytes in size, not one byte, which is very useful since we need to know what five and six are. So you also see the value here is two bytes in size. Final trick here is to make sure you know that this is stored in little Indian mode. So it's reversed. Parameter five is basically stored as parameter five itself is the zero x73. And we also saw that earlier, which is s parameter six is the zero x5 e, which you looked that up on the ASCII table is the at character giving us only parameter two. Parameter two is a little bit more tricky. Basically says take parameter two. And you have this interesting function here and parameter one. Make sure it's not equal to 40. Looking up this function, you see that this is basically an XOR procedure. Benefit of XOR is obviously you know what parameter one is already. You know what this value is already. If you're missing parameter two, just XOR these two. And then you'll get the first value. So again, you can Google online XOR calculator for you. Basically XOR zero x40. And we already know one is zero x73. And that gives us a parameter of zero x33, which just happens to be the number three on the ASCII table. So read this down from top to bottom. That is the key of the password for first check password function. Any questions about this one? I'll try to go a little faster for these other ones, Rolf. Basically the other ones I want to cover are encrypted pick. Let me just start there. Encrypted picture basically give you this hint. This one says I got to hold the picture that should have a flag in it. I have no idea what to do with it. Can you find a flag? The only hint you have is that the key is six bytes in length. And you're also given, given besides the picture itself is this encrypt function. So let's look at the encrypt function first. See what that tells us. Basically you have a lot of generic statements. You want to pass parameters. The next thing useful here is to know what the encryption algorithm is. Again, since you remember from the last problem we went over. Notice it goes byte by byte has a for loop running on B. Reads one pixel, one character, one symbol. And it encodes it by this particular statement, which again is XOR. And it's modding the key. So as you've seen earlier in the semester, what this means is if you have a key of something simple like ABC, the key is repeated again and again, and you're encoding it with this key repeated again and again. So it's ABC, ABC, ABC, ABC. We know the key is length six. Since the problem tells us it's length six. So if you want to find what that six characters are of the key, then you can decrypt the entire picture. I'm not going to go through all the steps for this one. But the trick for this is same as the one for last time. If you have a copy of the photograph, which is encoded, which provided. And you have a decrypted copy of the photograph. You can XOR both those together. In other words, you've got the key. You got encrypted photograph, and you can get the decrypted photograph. Or if you have the key, you can use the key on the decrypted photograph and get the encrypted photograph. Or in our case, what if we have an encrypted photograph and a decrypted photograph and run XOR on it? We're given that the flag has this file extension, H-E-I-C. So the first thing you can do is, you know, this is encoded. Try to create or try to find a unencrypted picture or photograph. You can do this with various picture editing tools. GIMP works well, for example. And basically what I did here is just create a blank file. I won't try to pull it up in this, but you have a blank file which has basically nothing in it whatsoever, but has a decoded H-E-I-C file. This doesn't really seem to do much for you because, of course, you have the picture which you don't know anything about the picture. How does a blank file help you? What happens is there's usually a encoding header that's standardized in different file formats. Like zip files, if you pull up a zip file, you'll see the first initials pk in every single zip file. It stands for Phil Katz, the original author of pkzip or zip files. Same thing happens with H-E-I-C. If you do some googling, looking up H-E-I-C headers or H-E-I-C encoding, you'll see that it has an interesting signature, roughly six offsets in, that is a standardized header magic number that's standard on every single H-E-I-C files. So if you've got two things you know are identical for any decoded files, you basically can XOR and look for those six positions since they're going to be the same in this flag file and the same in the blank file. Again, I'm not going to show you the exact steps, but you'll need to find some sort of XOR function, a Python script. You can Google some Python scripts to do this. You can Google some C functions to do this. There's no good clean way to do XORing of files from the command prompt. But again, you can find a command prompt tool to run XOR of these two files. XOR them together and look for a key or part of a key at a certain offset. Final step is to simply take that key and then XOR your encoded file with that key. That key might, again, if you keep in mind this is a sequence, other it's A, B, C, A, B, C, A, B, C. You might have to shift the key a number of times. You might have to look at symbols 2, 3, 4, 5, 6 and 1 or maybe 3, 4, 5, 6, 7, 1, 2, maybe 6, 1, 2, 3, 4, 5. Some shifting values of that key should give you the correct key. Basically, decrypt the entire file with the correct key. And you know you have a solution when your file actually works, actually it's visible as an actual real picture. Again, I don't have the viewer set up in this version of Linux Mint, so I can't show you any more steps of this on this side. When you get the final picture, when it's visible, and again we apologize that this last step was not functional with CTF1. The final key was available with any hex viewer at the very end of the file. You can view it and it was fairly obvious. Any questions about encrypted picture? Let me hit knock knock real fast. Knock is a networking challenge. Think criminal hacked into my computer. Exfiltrated my secret password. Luckily I ran a packet capture and found exfiltration software. So, you know from this description that the information your password was secretly extracted. It was secretly removed or secretly encoded in a very non-obvious way. Somehow someone sent this password over the network and you have a nice good packet capture containing that information. So your job of course is to try to dig through the packet capture and figure out exactly how this information was transmitted. Same thing like before. You've got a packet capture file and you've also got source code. Source code exists entirely just to give you hints what to look for. You do have to do most of the work in the packet capture using Wireshark. So first of all here is the source code. The main point again is the source code is to understand exactly what's going on here. What the source code is actually doing. You don't need to actually run the source code, you don't need to modify the source code, do anything with it. That's how most of these challenges will work. First thing you see is that this function is very simple. Basically it passes three parameters. The person running this, the criminal stealing your password, gave an IP address, gave it a message and gave it a max delay. This tells you that again you're not going to get this revealed by the source code. This was sent to a single IP address. You've sent the message somewhere and that destination I guess is the criminal, whoever is trying to receive or capture your, this hidden message. The message itself is probably the key or the password for this challenge. That's what you're trying to encode. And max delay and also this comment about random sleep means that the packets are going to be randomly distributed through the packet capture file. So you basically say for M in message, meaning for every single character of the message, you're sending one packet with one letter of the key encoded. So if the key is 100 characters long, you're going to have to look for 100 messages. If it's 50 characters long, you'll have to look for 50 messages and so forth. Flag doesn't seem to be doing much. The message itself is in M. So where is M encoded? M is being sent, it's sent to an IP address, which is what the user entered. It's saying source port is random. The thing there, destination port is M. This is the critical part of this code saying that the destination port is the actual location where the message is going to be encoded. Let me pull the packet capture. Pulling this up in Wireshark, you get 44,000 packets. Every packet you look at, you notice there is a destination port. Most of these you might recognize from networking theory, either very high numbers, or maybe 443, port 80, and so forth. The first thing you can tell is that you're encoding, again, looking at the source code, a message in the port numbers. So the first thing you can do is say, what are valid messages? You're encoding it, say, something which I'm assuming is text. So pulling up an ASCII, okay, well, avoiding Googling it for now, pulling up an ASCII table tells you that possible characters are probably between hex value 20 and hex value 7F. So you know that extremely high port numbers, most normal port numbers are not really that useful. So what if you exclude all port numbers that are outside the ASCII range? Can you can Google this? Look it up under Wireshark filters. I'm just going to cut and paste the solution here. Look up TCP destination port, anything greater than hex value 20 TCP destination port, anything less than 07F. That cuts to 44,000 packets down to 97. And from here, you can basically do some browsing. You know that the packets are all going to one single destination. So what ones do you have? You have maybe this 1352, maybe it's 888, maybe it's a 123. You know, one destination probably has all of these encoded packets being sent to it. If you check a couple of these, like all these messages sent to this address are in destination port 80. So this is probably a web server. There's nothing encoded with all these 80 addresses. If you pull up same thing here, this looks a little bit more suspicious. 1.1.8 destination port 90, 0.80, 0.80, 0.80, 0.80. Also just a lot of 80s. If you look up the destination <IP_ADDRESS>, which is actually the Google DNS server, suddenly you start seeing some interesting, more interesting patterns. And I'm just going to sort by destination port here to see those exclusively. Destination port 51, destination port 54, 53, 67, 84, 70, 123. You notice the destination ports jumping all over the place and it's staying right in that range. You take all of these values for destination port, convert them into hex values, look up your ASCII table, 0x51 is the letter 3. This is 6. This is 5. This is C. This is T. This is F. You notice a certain pattern comes through. You'll go through and find, again, looking up all these ones under <IP_ADDRESS>. It'll spell out the 33 character password. And that password is the solution to this CTF challenge. Okay, any questions on this one? Yeah, let me stop here, actually, for CTF material. The last difficult one, broken fence, was a cryptographic challenge. And I don't have as much prepared for that one. It does take more to go into and I don't want to use up the entire time with CTF solutions. Does anyone have any questions either about CTF or homework six? The homework six, I'm assuming most of you know, is having a 10% or 10 point extra credit. If you get, I believe, five of them done by tonight. So I'm assuming more of you are interested in that particular challenge. Okay, let me close this down first. Actually, let me just jump out of here entirely. Okay, search. Search is a very interesting one. Let me see if I can share my screen one more time. Let me give you a couple hints just to get you started. Okay, here's a nice terminal window. Search has, let's just go into the directory first. Search has source code and an executable.  You notice it says find and starts looking in everyone's directories, all the users on the server and searching for something gives a permission denied message. And not much else. Here's what you can do. Try to get some hints for this program is look at the source code. If you scavenge through this, you notice it has some exclusions saying do not allow any of these symbols to go through. If there's any prohibited characters, if there's no prohibited characters, what it does is take a variable known as buff. And puts this command at the buff. Basically copies find slash home. I name and s and anything else. You put an RV gets put into this command line. Then it runs system above. So the trick here is search has SU ID flag set, which means search can break run elite can give you the points for this level. Search is calling system, which is running this command. So your hints are to try to find. Pardon upon some way for find to run something for you. You want for all these challenges, of course, to run the elite command. Since you're excluded from using and or an easy pipe symbols, you have to find some executable way to run this. My hint for this one is look at find search runs SU ID principles. Find will also run with elevated principle. Elevated privileges, dig through the fine pages. See if you can find some way for fine to run a command for you. There's a couple steps beyond this you'll need to do. Find is very, very lengthy has tons of help pages, tons of parameters. You'll have to do something so find can run something. You have to have something for it to find and you have to have something for it to execute. Again, most of you know what exactly you want to execute again, meaning this command and so forth. Any other questions or any of the questions on this one and pull up read secret real quick. Read secret. I can't give too many hints without really giving it away. It's not a tremendously difficult one. Basically, can't hint for here, of course, is if you're successful, it's going to run read secret, which is elevated privileges, and it's going to run a bin SH or run a shell command. And what is it comparing is comparing two files, the secret file, which you have no access to the dot secret, and it's also going to compare to a file in your home directory. Basically, tilde slash dot secret, and these two files must be identical for this to run. So I'll give you a hint, you're not doing a directory traversal attack, you do need to find some other attack some other technique to make these two files equal. Again, I can't really tell you too much more than that without giving it away. One other hint is that you're not going to actually be able to read the dots you could file this file is set as not available to you as read as basically no permissions for your account on purpose. You have to find some alternative way to make these two files equal. Okay, advanced overflow. Basic one for advanced overflow and basic overflow is to know your GDP code very well and do lots of experimentation with with GDP. I want to show one interesting thing was at first. If you run check sec on advanced overflow, I guess I'll type it in manually. And if you also run check sec on basic overflow, you can see the again pardon upon the basic difference between two source code for advanced overflow and basic overflow are identical. So it's identical source code means you should be able to use of very similar attack keyword being you should be able to the most important thing to see here is PIE PIE is disabled for basic overflow PIE is enabled for advanced overflow. If you do some googling. This means that your addresses that run your code is loaded into a randomized every single salt or time you execute your program. This makes it a little bit difficult to trace because I'm assuming most of you who did be basic overflow beat it by looking at GDP, looking at addresses figuring out the addresses and then running it outside of GDP so you have the permissions. If it changes address every single time. Then you could be running it GDP running outside of GDP all the addresses become invalid again. So, again, the only hint I can give you for advanced overflow is you have to find some attack some method of determining address when you don't know the address. This is actually easier than it actually sounds advanced overflow is one of the more advanced challenges. I'll just suggest that you try to figure out techniques to hit random addresses what would you do if you have an unknown or random address that you can't predict. How could you possibly hit it. The other questions. Okay, and again, as always, if you have beaten quite a few stages of one of these challenges, and you're just absolutely stuck cannot get any further. The best way to maybe get some hints of course is to send the private message to the TAs on Piazza. Just explain how far you've gotten what you've tried and will try to give you some sort of hint to get you one additional step in the challenge. Stephen, I'm here too. I've also posted. And if you look at the GDP information session I kind of go over how to understand an overflow and should help you with that challenge. Okay, yes, again, that's highly recommended the undergraduate TA session is very valuable. We're trying to collaborate and not discuss the exact same things in both sessions so you'll find both sessions useful. So you'll definitely attend and look up for more information on the tools, a lot of phone tools, information, etc. things that you'll definitely find useful, as well as GDP. And also, if you have any private questions, you are welcome to text message me privately here as well. Okay, one other general hint for all of the challenges for assignment six. Keep in mind that the main program, the one SU ID code is the only thing that has elevated privileges. If you execute the elite command for you, you can sometimes get things to do something such as give you an elevator privilege shell, which can run the code for you. But don't look for two stage attacks. You're looking for something that you can run or modify or trick the program to actually run that code directly for you.


As a result of a fatal accident involving a minor who was pulled into a conveyor belt roller while cleaning up spilled material, the Mines Safety and Health Administration is suggesting an idea that emphasizes safety and convenience, a drip pan that makes cleaning easy and accessible. IMSA hopes you can utilize this or variations of this idea. Keep up the good work, young fella. Are you all right there, buddy? Are you all right? Yeah, I'm okay. Scared me more than hurt me. You are lucky. Clean up around and under belt drives, take-ups and tail pieces is inconvenient and hazardous due to the confined space and running belt. This type of accident occurs all too frequently in the mining industry every year. Maintenance is generally neglected until the spillage actually interferes with and fouls the operation of the belt. I was just thinking, pick up that conveyor there and pull it under there and it will save you a lot of work. Give me a hand with that. Okay. What else you can do is, if you get one of your friends at the shop, make you a pan, a large pan and we can slip that in there, pull it out easy, make your job a lot easier. Yeah, a pan. Maybe put some wheels on it. That sounds like a pretty good idea. The pan can be fitted with handles or ropes and could include wheels or rollers if desired. This pan would be strategically placed under the point where spillage occurs, drives, take-ups, tail pieces and transfer points. The mining industry is strongly encouraged to adopt this suggestion. Imshah believes that a significant number of unnecessary injuries and fatalities could be avoided in the future as a result. You were right. That does work. Thanks old timer. Who says you can't talk to young kids anymore? Who's he calling old timer? The drip pan suggests the method to promote convenience and, more importantly, promote safety on the job. Another related hazard is the requirement to frequently lubricate moving machinery parts and conveyor belt systems. Now, here's an idea to make that a safer procedure. Greasing elevated conveyors, the underside of large mobile vehicles and other equipment can be made safer and easier for maintenance workers. Use an automated lubrication system, sometimes called an octopus. This consists of a grease pump and grease distribution lines. Provide a catwalk or other means of access to the head pulley. Use a centralized lubrication system supplying lubricant to a single grease fitting. It then feeds a number of grease distribution lines to many loop points. Use a single point automatic lubricator which automatically lubricates a single point for weeks or months at a time. Maintenance work like lubricating equipment can be made safer while also increasing productivity. No more removing and reinstalling guards or shutting down equipment in order to lubricate it. Installing drip pans to clean up spilled material around conveyor belts and an octopus to lubricate machinery and conveyor belt systems are ideas that can easily and quickly be put to use. Since 1998, statistics show that at least 10 miners have lost their lives in accidents where these two simple devices would have prevented their exposure. The Mind Safety and Health Administration encourages you to consider implementing these suggestions to ensure safety and to avoid hazards. For more information on these ideas and other accident remedies, visit the Mind Safety and Health Administration's homepage at www.msha.gov. In a recent fatal accident, a miner was using the remote control to turn the cutter head on a continuous mining machine in order to change the bits. In the past 10 years, three miners have died while attempting to change bits on a continuous miner using this method. The Mind Safety and Health Administration strongly suggests an idea that makes turning the cutter head safe and easy without requiring power on the machine. It is recommended that the machine power be removed by turning off the machine's main circuit breaker, unplug, lock out, and tag the plug. Position and block the cutter head at a convenient height. Hey old timer, do me a favor and check to make sure the power is turned off to this machine or something I want to check on. What are you checking for anyway? Well, I noticed they replaced the bits on the front here, the ones that are easy to reach, but the ones around the back, they're still worn down.  You never changed the bits with the power on. That's dangerous and you never know where it's going to stop. Hmm, you just give me an idea. I'm going to take a look around the shop area. I'll be right back. Mount a bracket or shoe to which a removable hand crank can be positioned on the minor frame behind the cutter head. Wow, what is this? The hand crank should crank up a reinforced nylon strap, similar to the hand cranks used to pull boats out of the water onto trailers. Hey, look what I found. Let's see if we could use this to our advantage. Take this strap and wrap it around that cutter head. Make sure this end is on real tight. Oh yeah, I think I'm getting the idea now. Now watch this. By cranking the handle, the cutter head can be rotated safely to the desired position to change the cutter bits. Wow, it turns slowly, it turns easily, and you don't even have to turn the power onto the machine to use it. You know, this will work really great in tight spots. Gee, thanks old timer. All right. Using a remote control device to bump or jog the cutter head during maintenance is a dangerous practice. Manually rotating the cutter head to change bits is a method proven to minimize your chances for injury. For more information on accident prevention, check our webpage at www.msha.gov. With the use of proper ventilation and the other means for control and dust, such as water sprays, a miner's environment can be made a safer place to work. But water sprays on mining equipment can become clogged, reducing their effectiveness to control the dust. Water sprays on a continuous miner clogged due to the problems of water traveling through the corrodeable fittings, motor housings, control panels, and into steel manifolds. This was dramatically demonstrated when several spray manifolds were dissected. They showed massive buildups of foreign material, most notably rust, which clogged the sprays. There are alternatives, including a new system especially designed to solve this problem. This is just a demonstration cart so we can take it in the offices of people and show them how it works. We developed this system because we saw a real need because the existing water systems that were out there were not doing the job properly. This system is called the Dust Doctor 2. Also this system here is easy to change. Just pull this clip, lift the spray out, and now you've got it changed. Now one thing I want you to bear in mind. This material here is non-corrosive because it's made out of aluminum, whereas it doesn't oxidize like normal spray blocks that have historically been used in this industry. This thing here, if you've got an extra spray, just take it back to the inner hole, clean it out, bring it back to the machine. If you get a clogged spray, just go ahead and replace the whole manifold. Makes it much easier. Also in this manifold we've got a 30 mesh screen. This screens out everything going into the manifold itself. It's a 30 mesh which is half the size of a number 2 spray. Theoretically anything that would go through this screen should go through that spray. But these vertical sprays are very similar to these right here. In fact they can be the same but they don't have to be the same. So you try to make as many of these manifolds consistent with what's on the machine so you don't have to carry very many spares. But this thing changes real easily just like the other ones do. Pop it like so and you pop it out. And it also has the 30 mesh strainer in it. In this strainer we can pull it out, put it back in, clean it, and off you go again. We have incorporated a couple of ideas in this vertical as time has gone on. Like we've got a rope pin right here. This rope pin is actually, so when we put this clip in, we hit this rope pin with a hammer, it drives it past this clip. And that assures that the clip won't come out. So we've got another backup to keep from losing that vertical spray. We've got a set screw here that we can just crank that and it goes underneath this water spray and there's no way that that water spray can come out. If the clip would come loose it'll catch it right here. Let me talk to you about the rear spray. The one that goes across the throat of the conveyor. This is a spray that has historically kept people in harm's way to change it. Consequently it wasn't changed. It plugged up and it stayed plugged up because nobody wanted to get in to throw that machine to change those sprays. Well, we knew this had to be addressed and here's how we addressed it. We still soft piped, we put a quick disconnect on it. We make a housing that's 41 inches long, 39 in the manifold itself. And we also, we still use the old style quick disconnect because we have access to a hose that's pliable and we can change it. We just still just quick disconnect it, pull it out, stick it out of one end, put it back together and we're back in business. There, as you see, we keep people out of harm's way in changing that spray. That's very important. Also, the rest of the system though is hard piped. This one is soft piped, so you can move the hose. But the ones up here, they're covered, hard piped and you never have to mess with them unless you'd get some tremendous, horrendous fall on top of that machine with mash dumping up here. But normally, you just have to quick change the sprays as we exhibited a while ago. Thanks. This is the Repair Keen Quick Change Water Spray System. Very easy installation to remove. To remove it, all you have to do is remove a roll pin. Taking a hammer, knock the roll pin back. Once you get past the keeper, just remove the keeper. Once the keeper's removed, you'll be able to remove the spray. By removing the spray, you can clean it out real easy. And sometimes you can have another one ready to go back in. It's already clean, so you can get back in the cold quick to install the spray. All you have to do is just slide it back in, lightly tap on it. Your keeper should be aligned.  This will keep your spray from coming back in. For more information about this and other solutions, visit the Mind Safety and Health Administration webpage at www.msha.gov. Seven miners have died in the past year as a result of not using safety props or blocks while working on equipment that required their full attention. In some instances, the props were not available. Other times, blocks were either not used or were ineffective. These fatalities might have been prevented if mechanical safety props had been installed on the equipment they were using. It's great to get a break from work. Let's go kick some tires and see what's new. It's a beautiful day to go shopping. Look at this model, old timer. It's loaded with extras. Can you raise that bucket up for us? I wonder how high it goes. Hey, can you jog that lever a little bit? I want to see how dangerous that bucket can be. Now that he's raised this thing, we have to make sure that it's propped up, then we can take a closer look and still be safe. Hey, old timer, where are you going with that thing? We have to prop up that bucket. I'll show you. Wait a minute. Wait a minute. You don't need that. This time, let me show you something. Wow. Okay. Look at this old timer. It makes life a lot easier. Could you lower that down a little bit? That's it. That's it. How's that for simple, effective, and totally safe? I guess you're never too old to learn something. Who says you can't teach an old timer new tricks? If you thought that was something, I bet you never saw anything like this before. See here? Same thing. Prop goes in place, one, two, three. Here, you try it. Can you raise this bucket up for us too? I see it. Safe, stable, and secure. I like that. When installing a permanent hinged safety prop, remember to size the prop correctly, attach the prop to ensure that it can handle the expected load, design the receiving end of the prop so it cannot kick free or slip out of position when it's being deployed, install props permanently on mobile and stationary equipment so that they are always ready to be used.  So take steps now to equip your mobile and stationary equipment with permanently mounted safety props. If the boom or bucket on a piece of equipment is in the raised position, it should be there for service or repair. Otherwise, the rule to remember is to have it touch the ground. And if it's raised, if it's in the air, prop it securely. For more information, visit our webpage at www.msha.gov. Sometimes the best remedy to solve a problem or to eliminate a potential hazard might be a simple procedure that effectively enhances safety. The Mind Safety and Health Administration highly recommends putting in place a policy that eliminates taking chances, keeping control of a vehicle's keys. Now that the safety meeting is over, we'll have to check you out on some safety items. Oh, I forgot to tell you. I asked the mechanic to check the brakes on this while we were at the safety meeting. I know I get a mechanic the keys. Did you check to see if he's done? He must be done. I didn't see him. Wait just a minute. Is he done for sure or not? Oh, I suppose so. He said it was only going to take a few minutes. That's not good enough. We need to make certain that he's absolutely done and we have to do that before you start this thing. Now, let's do it the right way. Never assume you're in the clear until you've checked it out yourself. The next time someone works on your truck, give the mechanic your keys. Why? Because then he'll have to give them back to you whenever he's done and you can't go far without those keys. Gee, that makes a lot of sense. Thanks old timer. Been there, done that. Now we start at the beginning. First we need to do a pre-op inspection. MSHA encourages all mine operators to adopt the practice of the maintenance person insisting on taking the keys from the operator prior to maintenance on any mobile piece of equipment and not returning them until the work is finished. This new practice would be in addition to standard operating procedures that mines follow before moving mobile equipment such as sounding a horn or alarm, checking mirrors and camera monitors if available, making eye contact and communicating intentions directly to the equipment operator and receiving an audible response using radio communications. Since 1987 there have been 58 fatalities in the mining industry involving large haulage trucks where an adequate visibility was determined to be a contributing factor. The Mine Safety and Health Administration strongly encourages the implementation of a procedure as simple as controlling the keys to a gear and strive for safety at all times.


In Sudan, Prime Minister Abdallah Hamdok resigns as security forces kill three in protests against the military's move to take control of the government. In Brazil, President Jair Bolsonaro is hospitalized with an intestinal problem, the president said in a message from the hospital that he is doing well. In South Africa, a fire damages the parliament building complex, police say they have detained a suspect. And in Hong Kong, the stock of one of China's biggest property companies, Evergrande, is suspended from trading on concerns about one of its developments.


Hey folks, it's Hari Swaminathan from optiontiger.com. Just wanted to recap the day trades today did a great trade on Chipotle in the morning and this one went up. It was about a 30% return of $500 and Google nice recovery there and you can see the Google charts We were able to come back and you know get $12.99. So that was very good The Nvidia is down, but we've converted it into a debit spread and taking it into Tomorrow on the swing trades Did very well on Google Google made a beautiful charge today. And so this is the and yesterday's there was about 900 so totally about $2,400 profit on Google and we opened a new trade on Amazon That is up 500 the rest of it We've booked quite a bit of profits on these but they're still down. We are managing it These are swing trades. Of course, all of them have several days or several weeks to expiring So that's the recap for today On the day trades as well as the swing trades. Thank you


What is the TAPIF program for teaching English in France? The TAPIF program, short for Teaching Assistant Program in France, is a government initiative that places applicants into French state schools to work as teaching assistants. The program provides a great opportunity to live and work in a country where long-stay visas can be difficult to secure for non-EU citizens. For those who meet the necessary criteria, the TAPIF program could be the perfect way to fulfill your dream of living and working in France. The basics The program is open to those aged between 20 and 35. Participants work 12 hours per week in up to three different elementary or secondary schools for a period of seven months, running from October 1st to April 30th. During the application process, you can submit preferences for where you would like to be assigned, but your destination cannot be guaranteed. The majority are located on the French mainland, while a few positions are also available in the overseas regions of French Guiana, Guadeloupe, Martinique, and Reunion. Each position comes with a work visa and is valid for the length of the contract, plus health insurance and a monthly stipend of 790 euros. Acceptance onto the program is by no means guaranteed. Each applicant's suitability is evaluated via the following criteria. French language skills A level equivalent to B1 under common European framework of reference for languages is required. Level of university education Previous teaching experience Experience working with children Experience living abroad Tefl or Tesla qualification Not compulsory but highly beneficial How to apply As the requirements are subject to change, you should visit the TEPIF program website www.tepif.org for the most up-to-date information. As well as being evaluated on the criteria stated above, applicants are also required to submit the following 500 words Statement of Purpose in French Scan of valid passport Scan of university transcripts Language evaluation from university French professor Letter of recommendation from academic or professional $60 application fee Tefl Tesla certification Although not an official requirement, completing a Tefl or Tesla certification course before submitting your application is highly recommended. As competition for places on the program can be strong, having an internationally certified teaching qualification will greatly improve your chances of acceptance. The course will also provide you with a better understanding of key teaching skills, such as classroom management, that will help to ensure that your teaching experience is both enjoyable and rewarding. Thank you.


Okay everybody, Dr. O. In this video, we're going to talk about ATP or adenosine triphosphate. So it's pretty quick to describe it. So you're going to see throughout these metabolism videos, I'm going to try to give examples of why they're significant, maybe in the real world, right? Because you always wonder, why do I have to know metabolic pathways, ATP production, et cetera. So of course we need ATP, but we'll start there. So adenosine triphosphate, like the name implies, it's actually built from a ribose with an adenine, a nucleotide, that's where the adenosine comes from. And there are three phosphates, adenosine triphosphate. But as you can see here, you can also have adenosine monophosphate and adenosine diphosphate. So we usually talk about the last two. We usually talk about ADP or adenosine diphosphate being used energy, right? We spent it and it has to now be recycled into ATP, adenosine triphosphate. And that's fine. But the first thing you might ask is why there's so much energy here. The number one energy source in your body is those two red lines there. The unstable or high energy bonds that hold that third phosphate onto ATP, but then also the one that holds the second phosphate onto ADP. We don't talk about that as much, but we'll hear in just a moment. Let's just talk about ATP for now. As the third phosphate is removed from ATP, the phosphate's going to be needed too, but it's also going to transfer its energy. So think about ATP has its energy and it can hand it off. It can give it away to some metabolic pathway, some metabolic process. That's how ATP works. But the phosphates are needed too. They might be needed in some sort of pumping mechanism or all throughout the body, but they're not wasted. And if they aren't needed, then they're going to be recycled as you turn ADP back into ATP, which is the function of our entire cellular respiration system. But that second phosphate can also pop off. So if you're in a state of very low energy where you're using up ATP faster than you can make it, you will start to turn ADP into AMP or adenosine monophosphate. And the reason that's important is because adenosine monophosphate or more importantly something called AMPK, adenosine monophosphate kinase is an enzyme that's basically a fuel gauge. So if your body starts to see way too much AMP around, it turns on this enzyme that basically says, okay, we need to stop making glucose. We need to stop making cholesterol, stop making triglycerides. We have to stop making stuff because we're running out of fuel. And we have to burn fat. So this AMPK kinase basically says it makes your cells more sensitive to insulin, which is why it's actually activated by the drug metformin. So metformin is a very common hypoglycemic drug that you'd give to a type 2 diabetic. Well, the reason it works is it fools the body into thinking you're in this starvation mode, which makes insulin more sensitive. So hopefully you should bring glucose levels down.  We got all these fuel stores. Let's use them. And again, this could be a topic for another day. This is also why AMP kinase as this fuel gauge activates fasting mechanisms. So a lot of the health benefits of fasting appear to come from this, from this loss of energy that occurs if you're not eating. What else? It'll lead to recycling processes in the body called autophagy. It'll lead to the cleaning up of old proteins and old cells you don't need like apoptosis as well as this autophagy process. So as you can see, people are talking a lot about when we should eat, should be fast, these kind of things. Well, the health benefits actually come from this. You see right here, AMP, adenosine monophosphate. So just want to know that this stuff is significant. You might have to understand the biochemistry behind it. But if you have type 2 diabetic patients taking metformin, well, you now know that it's using this metabolic process and then the same thing with the health benefits of fasting. So I'm not going to ask you now. I just want you to see why it does matter, why you do have to know this stuff. So here we see ATP becoming ADP. We said ATP was our primary energy currency. As ATP releases that third phosphate and releases that energy that was in that bond, that's what allows it to do work. And then it becomes ADP. Then when we have more energy, we can use that energy in our electron transport system to take ADP and reattach that third phosphate making ATP. And this happens constantly. Now in the unit on muscle metabolism, I'll also show you where something called creatine phosphate comes into play. But I don't want to overwhelm you right now. Okay, so that is ATP adenosine triphosphate and then just a few interesting things about it. I hopefully at least appreciate a little bit more than you did a few minutes ago. I hope this helps. Have a wonderful day. Be blessed.


Hello, this is LaptopMedia and today we will show you how to open the MSI Vector GP7713V. To remove the bottom panel, you need to undo 13 Philips head screws. You need to start prying the panel with a plastic tool from the back and then from the sides. Then, you need to push the plate slightly from the back in order to remove it safely without breaking something. Please remember, it would be of great help to us if you just hit the like button and subscribe to our channel. That would motivate us to make even more and better videos for you. The cooling solution looks massive. And since we are fans of the fans, we can spot two cooling fans as well. It has five large heat pipes in total. The two big ones are shared between the CPU and the GPU and there is a dedicated heat pipe for each of them. The smallest heat pipe is for cooling the VRMs and the GPU memory. The battery is a 65 watt hour unit. If you want to remove it, you have to undo 5 Philips head screws and then unplug the battery connector. It lasts around 6 hours and 40 minutes of web browsing or 7 hours and 9 minutes of video playback. The upgrade options are definitely on the bright side, 2 RAM Sodums for up to 64 GB of DDR5 5200 MHz memory. For storage, you can rely on 2 M.2 PCIe X4 slots compatible with Gen4 SSDs. There is a metal shroud that protects the RAM modules and the NVMe has two cooling pads on its bottom.