Posts

Learning Platforms and Courses

 We all need to upskill, but that does not need to come with a hefty pricetag. Here are some great resources to give you training and certification: Open Universities Australia Class Central Google Digital Garage Khan Academy edx Academic Earth MIT

Powershell: Why does my Google Sheet formula have a leading single quote?

I was recently writing a simple Powershell script to automatically create data in Google Sheets. I used the excellent post from  James Chambers  to show me the details of the process. The code is simple enough  1. Import-Module UMN-Google 2. Use Set-GSheetData to populate the data It all works until the Hyperlinks I created were being rendered as strings, with leading single quotes. This means they look pretty awful and I dont intend to manually correct them. #defeatsthepurpose. The solution is to force the Set-GSheetData with  -valueInputOption "USER_ENTERED"  which then overrides the default behaviour of setting the values to a string. Simple when you know how.

CISM Exam Prep - Recommended Learning

 I recently (successfully) completed the CISM exam and its a bit of a monster. Here are a few of my takeaways from the experience: * Read the questions very carefully. This can be a (mental) challenge as the time goes by but I found it was the little things in the exam questions that made the difference. * Choose your most effective study technique. Some people like courses, some people like books. I like using sample exams and examing the answers to understand not only the correct answer, but also why the other options were wrong. I have found this approach highly effective over my 20+ certifications across Microsoft, Google, AWS and now ISACA. I used the following study material: https://www.udemy.com/course/certified-information-systems-security-professional-cissp-k (Paid) https://www.udemy.com/course/certified-information-security-manager-cism-tests/ (Paid) https://examposter.com/isaca/cism-certified-information-security-manager/cism-part-01/ (Free) https://www.itexams.com/exam...

JIRA Data Extract into Google Sheets through an API

function callJIRAPI() { // first, clear the sheet contents           var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet() var range = sheet.getRange("A1:G100"); range.clearContent(); // create the auth token for the API request to JIRA var pair = "firstname.lastname@mydomain.com:<My API Key from JIRA>" var base64 = Utilities.base64Encode(pair) var authHeader = "Basic " + base64 var url = "https://mydomain.atlassian.net/rest/api/3/search?jql=<JQL Query here>" // execute the query and parse the result as JSON var response = UrlFetchApp.fetch(url, { headers: { Authorization: authHeader, ContentType: 'application/json' } }); var dataSet = JSON.parse(response.getContentText()); // Create an array to store the results and push the column headers. These should match to the columns extracted below var rows = [] rows.push(["JiraID","CreatedBy","AssignedTo","Du...

Extract user details into Excel from JIRA API in Powershell

Function Get-JIRAExtract { Param( [Parameter( Mandatory=$true, HelpMessage="JIRA id of the user")] [string]$assigneeId, [Parameter( Mandatory=$true, HelpMessage="Name of user.")] [string]$assigneeName, [Parameter( Mandatory=$false, HelpMessage="Target Folder.")] [string]$targetFolder = "c:\temp2" ) try { $token = "xxx" $pair = "fname.lname@company.com:$token" $bytes = [System.Text.Encoding]::ASCII.GetBytes($pair) $base64 = [System.Convert]::ToBase64String($bytes) $basicAuthValue = "Basic $base64" $headers = @{ Authorization = $basicAuthValue } $url = "https://mycompany.atlassian.net/rest/api/3/search?maxResults=1000&jql=assignee%20in%20($assigneeId)AND created >= -24w AND status in ('Complete', 'In Progress', 'Resolved', 'Closed')" Write-Host "Call url $url" $json = Invoke-RestMethod -Uri $url -Method Get -Headers $headers...

How can I call a JIRA api through Powershell?

 Navigate to https://id.atlassian.com/manage-profile/security/api-tokens and create an API token Then use the following code: $pair = "me@example.com:<My token here>" $bytes = [System.Text.Encoding]::ASCII.GetBytes($pair) $base64 = [System.Convert]::ToBase64String($bytes) $basicAuthValue = "Basic $base64" $headers = @{ Authorization = $basicAuthValue } $json = Invoke-RestMethod -Uri "https://<mydomain>.atlassian.net/rest/api/3/search?jql= <jql here>" -Method Get -Headers $headers

How can I call OWASP ZAP from the command line?

 Adding Dynamic Application Security testing to your CI/CD pipeline can help you identify potential security threats earlier in the development cycle (did someone say 'Shift Left'?). There are many tools available to assist (SonarQube is very popular) but ZAP  (from our friends at OWASP) gives insight into common vulnerabilities. To execute it from a COMMAND line 1. install JAVA 2. download the solution from  here 3. navigate to your install folder on your drive (I used to the default "C:\Program Files\OWASP\Zed Proxy Attack"). 4. Release the hounds java -jar {YOUR ZAP VERSION} -cmd -quickurl {YOUR API TO QUERY} -quickprogress -quickout {FILE LOCATION TO STORE THE RESULTS} -nostdout My example is as follows: java -jar zap-2.11.0.jar -cmd -quickurl http://localhost/api/values -quickprogress -quickout "c:\temp\out.json" -nostdout